From 02235676488328f2ff6a01d81bbecf7da21f93bc Mon Sep 17 00:00:00 2001 From: jief666 Date: Wed, 28 Apr 2021 21:30:34 +0300 Subject: [PATCH] New parser XML. New ConfigManager. A lot of refactoring... --- .gitignore | 17 +- Include/Library/HdaModels.h | 6 +- Xcode/CloverConfigPlistValidator/.cproject | 570 + Xcode/CloverConfigPlistValidator/.gitignore | 2 + Xcode/CloverConfigPlistValidator/.project | 54 + .../.settings/compilation/clang-ar | 25 + .../.settings/compilation/clang-g++ | 44 + .../.settings/compilation/clang-gcc | 44 + .../.settings/compilation/clang-path | 7 + .../.settings/compilation/gcc49-as | 24 + .../.settings/compilation/gcc49-g++ | 44 + .../.settings/compilation/gcc49-gcc | 44 + .../.settings/compilation/gcc49-gcc-ar | 24 + .../.settings/compilation/gcc49-gcc-path | 7 + .../.settings/compilation/gcc49-path | 7 + .../.settings/compilation/gcc92-as | 24 + .../.settings/compilation/gcc92-g++ | 44 + .../.settings/compilation/gcc92-gcc | 44 + .../.settings/compilation/gcc92-gcc-ar | 24 + .../.settings/compilation/gcc92-gcc-path | 7 + .../.settings/compilation/gcc92-path | 8 + .../.settings/compilation/generic-compiler | 44 + .../all-all-all-includelist | 12 + .../all-all-all-macrolist | 5 + .../clang-c-c++flags | 10 + .../clang-g++flags | 5 + .../clang-gccflags | 5 + .../clang-ldflags | 5 + .../gcc49-c-c++flags | 7 + .../gcc49-g++flags | 5 + .../gcc49-gccflags | 5 + .../gcc92-c-c++flags | 6 + .../gcc92-g++flags | 5 + .../gcc92-gccflags | 5 + .../.settings/language.settings.xml | 48 + .../org.eclipse.cdt.codan.core.prefs | 73 + .../.settings/org.eclipse.cdt.core.prefs | 164 + .../org.eclipse.cdt.managedbuilder.core.prefs | 25 + .../.settings/org.eclipse.cdt.ui.prefs | 3 + .../project.pbxproj | 16193 ++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/WorkspaceSettings.xcsettings | 8 + .../CloverConfigPlistValidator.xcscheme | 100 + ...loverConfigPlistValidator_Release.xcscheme | 100 + .../Include/poolprint-test-cpp_conf.h} | 5 +- .../Include/poolprintfloat-test-cpp_conf.h} | 6 +- .../config-nowarning-noerror.plist | 1042 + .../config-test1.plist | 1723 ++ .../config-test2.plist | 55 + .../old/poolprintfloat-test-cpp_conf.h | 12 + .../old/poolprintfloat-test.cpp | 135 + .../old/poolprintfloat-test.h | 1 + .../src/ConfigSample1.h | 933 + .../src/Platform.cpp | 27 + Xcode/CloverConfigPlistValidator/src/main.cpp | 116 + .../CloverX64.xcodeproj/project.pbxproj | 636 +- Xcode/CloverX64TestNewParser/.cproject | 324 +- Xcode/CloverX64TestNewParser/.project | 20 +- .../.settings/compilation/gcc102-as | 24 + .../.settings/compilation/gcc102-g++ | 44 + .../.settings/compilation/gcc102-gcc | 44 + .../.settings/compilation/gcc102-gcc-ar | 24 + .../.settings/compilation/gcc102-gcc-path | 7 + .../.settings/compilation/gcc102-ld | 38 + .../.settings/compilation/gcc102-path | 7 + .../.settings/compilation/gcc92-ld | 38 + .../all-all-all-includelist | 17 +- .../all-all-all-liblist | 7 + .../all-all-all-macrolist | 10 + .../clang-c-c++flags | 10 +- .../gcc102-c-c++flags | 7 + .../gcc102-g++flags | 5 + .../gcc102-gccflags | 5 + .../gcc102-ldflags | 6 + .../compilation_project_specific/gcc102-slink | 106 + .../gcc92-c-c++flags | 2 +- .../gcc92-ldflags | 6 + .../.settings/language.settings.xml | 30 +- .../org.eclipse.cdt.codan.core.prefs | 36 + .../.settings/org.eclipse.cdt.core.prefs | 5 + .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../CloverMock/Include/printf_lite-conf.h | 42 - .../Library/MemLogLibDefault/MemLogLib.c | 207 - .../CloverMock/guids_from_autogen.c | 216 - .../CloverMock/guids_from_autogen.h | 221 - .../rEFIt_UEFI/Platform/BasicIO.cpp | 94 - .../rEFIt_UEFI/Platform/BootLog.cpp | 138 - .../CloverMock/rEFIt_UEFI/Platform/Platform.h | 86 - .../rEFIt_UEFI/Platform/Posix/BootLog.h.dis | 41 - .../rEFIt_UEFI/Platform/Posix/posix.h | 35 - .../Platform/Posix/posix_additions.cpp | 51 - .../Platform/Posix/posix_additions.h | 16 - .../rEFIt_UEFI/Platform/xBootLog.h,dis | 40 - .../CloverMock/rEFIt_UEFI/include/Efi.h | 122 - .../rEFIt_UEFI/include/OneLinerMacros.h | 9 - .../rEFIt_UEFI/include/XToolsConf.h | 32 - .../project.pbxproj | 2387 ++- ...overX64TestNewParser_UTF16_signed.xcscheme | 119 + ...estNewParser_UTF16_signed_RELEASE.xcscheme | 105 + .../Include/Library/xOcConfigurationLib.h | 39 - .../OCMock/OcAppleBootPolicyLib.c | 20 - .../OCMock/OcAppleBootPolicyLib.h | 14 - .../CloverX64TestNewParser/OCMock/OpenCore.c | 15 - .../CloverX64TestNewParser/OCMock/OpenCore.h | 14 - Xcode/CloverX64TestNewParser/UefiMock/Base.h | 1143 -- .../UefiMock/Globals.cpp | 27 - .../UefiMock/Library/BaseLib.c | 231 - .../UefiMock/Library/BaseMemoryLib.c | 174 - .../UefiMock/Library/DebugLib.c | 113 - .../UefiMock/Library/DebugLib.h.dis | 102 - .../UefiMock/Library/DevicePathLib.c | 38 - .../UefiMock/Library/DevicePathUtilities.h | 13 - .../UefiMock/Library/MemoryAllocationLib.c | 84 - .../Library/MemoryAllocationLib.h.dis | 126 - .../UefiMock/Library/OcMiscLib.h | 13 - .../UefiMock/Library/PrintLib.c | 93 - .../UefiMock/Library/PrintLib.h | 60 - .../UefiMock/Library/xBaseLib.h | 177 - .../UefiMock/Library/xBaseMemoryLib.h | 507 - .../UefiMock/Uefi.h.dis | 131 - .../CloverX64TestNewParser/config-small.plist | 9 + .../CloverX64TestNewParser/config-test1.plist | 71 +- Xcode/CloverX64TestNewParser/config.plist | 1723 ++ .../src/Assign/AssignField.cpp | 217 + .../src/Assign/AssignField.h | 61 + .../src/Assign/AssignSettings.cpp | 56 + .../src/Assign/AssignSettings.h | 19 + .../src/Assign/AssignSettingsACPI.cpp | 131 + .../src/Assign/AssignSettingsACPI.h | 18 + .../src/Assign/AssignSettingsBoot.cpp | 42 + .../src/Assign/AssignSettingsBoot.h | 18 + .../src/Assign/AssignSettingsBootGraphics.cpp | 19 + .../src/Assign/AssignSettingsBootGraphics.h | 18 + .../src/Assign/AssignSettingsCPU.cpp | 31 + .../src/Assign/AssignSettingsCPU.h | 18 + .../src/Assign/AssignSettingsDevices.cpp | 177 + .../src/Assign/AssignSettingsDevices.h | 18 + .../src/Assign/AssignSettingsGUI.cpp | 174 + .../src/Assign/AssignSettingsGUI.h | 18 + .../src/Assign/AssignSettingsGraphics.cpp | 101 + .../src/Assign/AssignSettingsGraphics.h | 18 + .../AssignSettingsKernelAndKextPatches.cpp | 111 + .../AssignSettingsKernelAndKextPatches.h | 18 + .../src/Assign/AssignSettingsQuirks.cpp | 80 + .../src/Assign/AssignSettingsQuirks.h | 18 + .../src/Assign/AssignSettingsRtVariables.cpp | 41 + .../src/Assign/AssignSettingsRtVariables.h | 18 + .../src/Assign/AssignSettingsSmbios.cpp | 99 + .../src/Assign/AssignSettingsSmbios.h | 18 + .../Assign/AssignSettingsSystemParameters.cpp | 23 + .../Assign/AssignSettingsSystemParameters.h | 18 + .../src/Compare/CompareField.cpp | 217 + .../src/Compare/CompareField.h | 58 + .../src/Compare/CompareSettings.cpp | 56 + .../src/Compare/CompareSettings.h | 18 + .../src/Compare/CompareSettingsACPI.cpp | 128 + .../src/Compare/CompareSettingsACPI.h | 18 + .../src/Compare/CompareSettingsBoot.cpp | 42 + .../src/Compare/CompareSettingsBoot.h | 18 + .../Compare/CompareSettingsBootGraphics.cpp | 19 + .../src/Compare/CompareSettingsBootGraphics.h | 18 + .../src/Compare/CompareSettingsCPU.cpp | 31 + .../src/Compare/CompareSettingsCPU.h | 18 + .../src/Compare/CompareSettingsDevices.cpp | 181 + .../src/Compare/CompareSettingsDevices.h | 18 + .../src/Compare/CompareSettingsGUI.cpp | 171 + .../src/Compare/CompareSettingsGUI.h | 18 + .../src/Compare/CompareSettingsGraphics.cpp | 97 + .../src/Compare/CompareSettingsGraphics.h | 18 + .../CompareSettingsKernelAndKextPatches.cpp | 106 + .../CompareSettingsKernelAndKextPatches.h | 18 + .../src/Compare/CompareSettingsQuirks.cpp | 79 + .../src/Compare/CompareSettingsQuirks.h | 18 + .../Compare/CompareSettingsRtVariables.cpp | 41 + .../src/Compare/CompareSettingsRtVariables.h | 18 + .../src/Compare/CompareSettingsSmbios.cpp | 95 + .../src/Compare/CompareSettingsSmbios.h | 18 + .../CompareSettingsSystemParameters.cpp | 23 + .../Compare/CompareSettingsSystemParameters.h | 18 + .../src/ConfigSample1.h | 2 +- .../src/OldSettings/Settings.cpp | 5559 ++++++ .../src/OldSettings/Settings.h | 16 + Xcode/CloverX64TestNewParser/src/Platform.cpp | 2 +- .../CloverX64TestNewParser/src/ReadmeJief.txt | 2 - Xcode/CloverX64TestNewParser/src/main.cpp | 622 +- Xcode/cpp_tests/.cproject | 296 +- Xcode/cpp_tests/.gitignore | 5 +- Xcode/cpp_tests/.project | 17 +- .../cpp_tests/.settings/compilation/gcc102-as | 24 + .../.settings/compilation/gcc102-g++ | 44 + .../.settings/compilation/gcc102-gcc | 44 + .../.settings/compilation/gcc102-gcc-ar | 24 + .../.settings/compilation/gcc102-gcc-path | 7 + .../cpp_tests/.settings/compilation/gcc102-ld | 38 + .../.settings/compilation/gcc102-path | 7 + .../cpp_tests/.settings/compilation/gcc92-ld | 38 + .../all-all-all-includelist | 17 +- .../all-all-all-liblist | 7 + .../all-all-all-macrolist | 10 + .../clang-c-c++flags | 10 +- .../gcc102-c-c++flags | 6 + .../gcc102-g++flags | 5 + .../gcc102-gccflags | 5 + .../gcc102-ldflags | 6 + .../compilation_project_specific/gcc102-slink | 106 + .../gcc92-c-c++flags | 2 +- .../gcc92-ldflags | 6 + .../cpp_tests/.settings/language.settings.xml | 30 +- .../org.eclipse.cdt.managedbuilder.core.prefs | 12 + .../cpp_tests.xcodeproj/project.pbxproj | 328 +- .../cpp_tests UTF16 signed char.xcscheme | 2 +- Xcode/cpp_tests/src/BaseLib.c | 2 + Xcode/cpp_tests/src/main.cpp | 6 +- rEFIt_UEFI/Platform/AcpiPatcher.cpp | 5 +- rEFIt_UEFI/Platform/AcpiPatcher.h | 3 +- rEFIt_UEFI/Platform/CloverVersion.cpp | 33 + rEFIt_UEFI/Platform/CloverVersion.h | 26 + rEFIt_UEFI/Platform/DataHubCpu.cpp | 14 +- rEFIt_UEFI/Platform/DevicePath.cpp | 1621 -- rEFIt_UEFI/Platform/FixBiosDsdt.cpp | 5 +- rEFIt_UEFI/Platform/HdaCodecDump.cpp | 2 +- rEFIt_UEFI/Platform/Hibernate.cpp | 6 +- rEFIt_UEFI/Platform/KERNEL_AND_KEXT_PATCHES.h | 78 +- rEFIt_UEFI/Platform/KextList.cpp | 2 +- rEFIt_UEFI/Platform/LegacyBoot.cpp | 3 +- rEFIt_UEFI/Platform/Net.cpp | 233 - rEFIt_UEFI/Platform/Net.h | 23 - rEFIt_UEFI/Platform/Settings.cpp | 7135 +------ rEFIt_UEFI/Platform/Settings.h | 1285 +- rEFIt_UEFI/Platform/SettingsUtils.cpp | 8 + rEFIt_UEFI/Platform/SettingsUtils.h | 63 + .../Platform/SmbiosFillPatchingValues.cpp | 150 + .../Platform/SmbiosFillPatchingValues.h | 19 + rEFIt_UEFI/Platform/StateGenerator.cpp | 1 + rEFIt_UEFI/Platform/Volume.cpp | 107 + rEFIt_UEFI/Platform/Volume.h | 79 + rEFIt_UEFI/Platform/Volumes.h | 65 +- rEFIt_UEFI/Platform/ati.cpp | 21 +- rEFIt_UEFI/Platform/ati.h | 9 +- rEFIt_UEFI/Platform/ati2.h | 321 + rEFIt_UEFI/Platform/card_vlist.cpp | 85 +- rEFIt_UEFI/Platform/card_vlist.h | 2 - rEFIt_UEFI/Platform/cpu.cpp | 13 +- rEFIt_UEFI/Platform/cpu.h | 7 +- rEFIt_UEFI/Platform/device_inject.h | 3 +- rEFIt_UEFI/Platform/gma.cpp | 64 +- rEFIt_UEFI/Platform/gma.h | 10 +- rEFIt_UEFI/Platform/guid.cpp | 21 +- rEFIt_UEFI/Platform/guid.h | 36 +- rEFIt_UEFI/Platform/hda.cpp | 90 +- rEFIt_UEFI/Platform/hda.h | 21 +- rEFIt_UEFI/Platform/kext_inject.cpp | 2 +- rEFIt_UEFI/Platform/memvendors.h | 3 +- rEFIt_UEFI/Platform/nvidia.cpp | 48 +- rEFIt_UEFI/Platform/nvidia.h | 18 +- rEFIt_UEFI/Platform/platformdata.cpp | 490 +- rEFIt_UEFI/Platform/platformdata.h | 14 +- rEFIt_UEFI/Platform/plist/TagArray.cpp | 19 +- rEFIt_UEFI/Platform/smbios.cpp | 689 +- rEFIt_UEFI/Platform/smbios.h | 213 +- rEFIt_UEFI/Platform/spd.cpp | 15 +- rEFIt_UEFI/PlatformEFI/BootLog.cpp | 2 +- rEFIt_UEFI/PlatformEFI/include/Platform.h | 2 +- rEFIt_UEFI/Settings/ConfigManager.cpp | 1070 + rEFIt_UEFI/Settings/ConfigManager.h | 197 + .../ConfigPlist/ConfigPlistAbstract.cpp | 42 + .../ConfigPlist/ConfigPlistAbstract.h | 28 + .../Settings/ConfigPlist/ConfigPlistClass.cpp | 13 + .../Settings/ConfigPlist/ConfigPlistClass.h | 113 + .../Settings/ConfigPlist/Config_ACPI.cpp | 27 + rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.h | 188 + .../Settings/ConfigPlist/Config_ACPI_DSDT.cpp | 51 + .../Settings/ConfigPlist/Config_ACPI_DSDT.h | 201 + .../Settings/ConfigPlist/Config_ACPI_SSDT.h | 179 + rEFIt_UEFI/Settings/ConfigPlist/Config_Boot.h | 232 + .../ConfigPlist/Config_BootGraphics.h | 42 + rEFIt_UEFI/Settings/ConfigPlist/Config_CPU.h | 92 + .../Settings/ConfigPlist/Config_Devices.h | 135 + .../Config_Devices_AddProperties.h | 55 + .../ConfigPlist/Config_Devices_Arbitrary.h | 62 + .../ConfigPlist/Config_Devices_Audio.h | 77 + .../ConfigPlist/Config_Devices_FakeID.h | 50 + .../ConfigPlist/Config_Devices_Properties.h | 76 + .../Settings/ConfigPlist/Config_Devices_USB.h | 46 + .../Settings/ConfigPlist/Config_GUI.cpp | 25 + rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.h | 812 + .../Settings/ConfigPlist/Config_Graphics.h | 289 + .../ConfigPlist/Config_KernelAndKextPatches.h | 350 + .../Settings/ConfigPlist/Config_Quirks.cpp | 13 + .../Settings/ConfigPlist/Config_Quirks.h | 200 + .../Settings/ConfigPlist/Config_RtVariables.h | 176 + .../ConfigPlist/Config_SystemParameters.h | 84 + rEFIt_UEFI/Settings/ConfigPlist/README.md | 344 + .../Settings/ConfigPlist/SMBIOSPlist.cpp | 15 + rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.h | 648 + rEFIt_UEFI/Settings/Readme.md | 8 + rEFIt_UEFI/{Platform => Settings}/Self.cpp | 2 +- rEFIt_UEFI/{Platform => Settings}/Self.h | 0 rEFIt_UEFI/{Platform => Settings}/SelfOem.cpp | 29 +- rEFIt_UEFI/{Platform => Settings}/SelfOem.h | 7 +- rEFIt_UEFI/cpp_foundation/XArray.h | 16 +- rEFIt_UEFI/cpp_foundation/XBuffer.cpp | 12 +- rEFIt_UEFI/cpp_foundation/XBuffer.h | 15 +- rEFIt_UEFI/cpp_foundation/XObjArray.h | 16 +- rEFIt_UEFI/cpp_foundation/XRBuffer.cpp | 12 +- rEFIt_UEFI/cpp_foundation/XRBuffer.h | 14 +- rEFIt_UEFI/cpp_foundation/XString.cpp | 16 +- rEFIt_UEFI/cpp_foundation/XString.h | 17 +- rEFIt_UEFI/cpp_foundation/XStringAbstract.h | 25 +- rEFIt_UEFI/cpp_foundation/XStringArray.cpp | 12 +- rEFIt_UEFI/cpp_foundation/XStringArray.h | 14 +- rEFIt_UEFI/cpp_foundation/XToolsCommon.h | 14 +- .../cpp_foundation/unicode_conversions.cpp | 6 +- .../cpp_foundation/unicode_conversions.h | 12 +- rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.cpp | 12 + rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.h | 185 + rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.cpp | 83 + rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.h | 92 + rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.cpp | 230 + rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.h | 431 + rEFIt_UEFI/cpp_lib/XmlLiteParser.cpp | 544 + rEFIt_UEFI/cpp_lib/XmlLiteParser.h | 180 + rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.cpp | 555 + rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.h | 485 + rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.cpp | 88 + rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.h | 189 + rEFIt_UEFI/cpp_lib/undefinable.h | 15 +- .../cpp_unit_test/XStringArray_test.cpp | 20 + rEFIt_UEFI/cpp_unit_test/all_tests.cpp | 31 +- rEFIt_UEFI/cpp_unit_test/config-test.cpp | 2 +- .../xml_lite-reapeatingdict-test.cpp | 4 +- rEFIt_UEFI/cpp_unit_test/xml_lite-test.cpp | 712 +- rEFIt_UEFI/entry_scan/loader.cpp | 521 +- rEFIt_UEFI/entry_scan/loader.h | 10 + rEFIt_UEFI/entry_scan/lockedgraphics.cpp | 2 +- rEFIt_UEFI/entry_scan/secureboot.cpp | 2 +- rEFIt_UEFI/entry_scan/securemenu.cpp | 2 +- rEFIt_UEFI/entry_scan/tool.cpp | 2 +- rEFIt_UEFI/generate_source_list.sh | 5 + rEFIt_UEFI/gui/REFIT_MAINMENU_SCREEN.cpp | 7 +- rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp | 2 +- rEFIt_UEFI/include/Net.h | 38 + rEFIt_UEFI/libeg/VectorGraphics.cpp | 2 +- rEFIt_UEFI/libeg/XTheme.cpp | 6 +- rEFIt_UEFI/libeg/XTheme.h | 2 +- rEFIt_UEFI/libeg/libscreen.cpp | 2 +- rEFIt_UEFI/libeg/text.cpp | 2 +- rEFIt_UEFI/refit.inf | 75 +- rEFIt_UEFI/refit/lib.cpp | 4 +- rEFIt_UEFI/refit/lib.h | 4 + rEFIt_UEFI/refit/main.cpp | 575 +- rEFIt_UEFI/refit/menu.cpp | 134 +- rEFIt_UEFI/refit/screen.cpp | 1 + 354 files changed, 51364 insertions(+), 16079 deletions(-) create mode 100644 Xcode/CloverConfigPlistValidator/.cproject create mode 100644 Xcode/CloverConfigPlistValidator/.gitignore create mode 100644 Xcode/CloverConfigPlistValidator/.project create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/clang-ar create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/clang-g++ create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/clang-gcc create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/clang-path create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-as create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-g++ create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-ar create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-path create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-path create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-as create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-g++ create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-ar create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-path create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-path create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation/generic-compiler create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-includelist create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-macrolist create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-c-c++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-g++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-gccflags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-ldflags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-c-c++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-g++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-gccflags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-c-c++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-g++flags create mode 100755 Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-gccflags create mode 100644 Xcode/CloverConfigPlistValidator/.settings/language.settings.xml create mode 100644 Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.codan.core.prefs create mode 100644 Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.core.prefs create mode 100644 Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.managedbuilder.core.prefs create mode 100644 Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.ui.prefs create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.pbxproj create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator.xcscheme create mode 100644 Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator_Release.xcscheme rename Xcode/{CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printlib-test-cpp_conf.h => CloverConfigPlistValidator/Include/poolprint-test-cpp_conf.h} (66%) rename Xcode/{CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printf_lite-test-cpp_conf.h => CloverConfigPlistValidator/Include/poolprintfloat-test-cpp_conf.h} (63%) create mode 100644 Xcode/CloverConfigPlistValidator/config-nowarning-noerror.plist create mode 100644 Xcode/CloverConfigPlistValidator/config-test1.plist create mode 100644 Xcode/CloverConfigPlistValidator/config-test2.plist create mode 100644 Xcode/CloverConfigPlistValidator/old/poolprintfloat-test-cpp_conf.h create mode 100644 Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.cpp create mode 100644 Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.h create mode 100644 Xcode/CloverConfigPlistValidator/src/ConfigSample1.h create mode 100755 Xcode/CloverConfigPlistValidator/src/Platform.cpp create mode 100755 Xcode/CloverConfigPlistValidator/src/main.cpp create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-as create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-g++ create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-ar create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-path create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-ld create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-path create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation/gcc92-ld create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-liblist create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-c-c++flags create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-g++flags create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-gccflags create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-ldflags create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-slink create mode 100755 Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-ldflags delete mode 100755 Xcode/CloverX64TestNewParser/CloverMock/Include/printf_lite-conf.h delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/Library/MemLogLibDefault/MemLogLib.c delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.c delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.h delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BasicIO.cpp delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BootLog.cpp delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Platform.h delete mode 100755 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/BootLog.h.dis delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix.h delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.cpp delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.h delete mode 100755 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/xBootLog.h,dis delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/Efi.h delete mode 100644 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/OneLinerMacros.h delete mode 100755 Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/XToolsConf.h create mode 100644 Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed.xcscheme create mode 100644 Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed_RELEASE.xcscheme delete mode 100644 Xcode/CloverX64TestNewParser/OCMock/Include/Library/xOcConfigurationLib.h delete mode 100644 Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.c delete mode 100644 Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.h delete mode 100644 Xcode/CloverX64TestNewParser/OCMock/OpenCore.c delete mode 100644 Xcode/CloverX64TestNewParser/OCMock/OpenCore.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Base.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Globals.cpp delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/BaseLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/BaseMemoryLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.h.dis delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathUtilities.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.h.dis delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/OcMiscLib.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.c delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseLib.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseMemoryLib.h delete mode 100644 Xcode/CloverX64TestNewParser/UefiMock/Uefi.h.dis create mode 100644 Xcode/CloverX64TestNewParser/config-small.plist create mode 100644 Xcode/CloverX64TestNewParser/config.plist create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignField.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignField.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.h create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareField.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareField.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsDevices.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsDevices.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGUI.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGUI.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.h create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.h create mode 100755 Xcode/CloverX64TestNewParser/src/OldSettings/Settings.cpp create mode 100644 Xcode/CloverX64TestNewParser/src/OldSettings/Settings.h delete mode 100644 Xcode/CloverX64TestNewParser/src/ReadmeJief.txt create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-as create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-g++ create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-gcc create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-gcc-ar create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-gcc-path create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-ld create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc102-path create mode 100755 Xcode/cpp_tests/.settings/compilation/gcc92-ld create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-liblist create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-c-c++flags create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-g++flags create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-gccflags create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-ldflags create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-slink create mode 100755 Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-ldflags create mode 100644 rEFIt_UEFI/Platform/CloverVersion.cpp create mode 100644 rEFIt_UEFI/Platform/CloverVersion.h delete mode 100644 rEFIt_UEFI/Platform/DevicePath.cpp delete mode 100644 rEFIt_UEFI/Platform/Net.cpp delete mode 100644 rEFIt_UEFI/Platform/Net.h create mode 100644 rEFIt_UEFI/Platform/SettingsUtils.cpp create mode 100644 rEFIt_UEFI/Platform/SettingsUtils.h create mode 100644 rEFIt_UEFI/Platform/SmbiosFillPatchingValues.cpp create mode 100644 rEFIt_UEFI/Platform/SmbiosFillPatchingValues.h create mode 100644 rEFIt_UEFI/Platform/Volume.cpp create mode 100644 rEFIt_UEFI/Platform/Volume.h create mode 100644 rEFIt_UEFI/Platform/ati2.h create mode 100644 rEFIt_UEFI/Settings/ConfigManager.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigManager.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_SSDT.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Boot.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_BootGraphics.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_CPU.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_AddProperties.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Arbitrary.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Audio.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_FakeID.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Properties.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_USB.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Graphics.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_KernelAndKextPatches.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_RtVariables.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/Config_SystemParameters.h create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/README.md create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.cpp create mode 100644 rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.h create mode 100644 rEFIt_UEFI/Settings/Readme.md rename rEFIt_UEFI/{Platform => Settings}/Self.cpp (99%) rename rEFIt_UEFI/{Platform => Settings}/Self.h (100%) rename rEFIt_UEFI/{Platform => Settings}/SelfOem.cpp (88%) rename rEFIt_UEFI/{Platform => Settings}/SelfOem.h (92%) create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.cpp create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.h create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.cpp create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.h create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.cpp create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.h create mode 100755 rEFIt_UEFI/cpp_lib/XmlLiteParser.cpp create mode 100755 rEFIt_UEFI/cpp_lib/XmlLiteParser.h create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.cpp create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.h create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.cpp create mode 100644 rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.h create mode 100644 rEFIt_UEFI/include/Net.h diff --git a/.gitignore b/.gitignore index 79f6a2caf..deded3650 100644 --- a/.gitignore +++ b/.gitignore @@ -7,7 +7,7 @@ *~ .cache /Conf -toolchain/ +/toolchain/ # /CloverPackage/ /CloverPackage/sym/ @@ -24,6 +24,7 @@ toolchain/ /CloverPackage/CloverV2/BootSectors/Installation.txt /CloverPackage/CloverV2/Bootloaders/ia32/ /CloverPackage/CloverV2/Bootloaders/x64/ +/CloverPackage/CloverV2/Bootloaders/X64/ /CloverPackage/CloverV2/EFI/BOOT/BOOTIA32.efi /CloverPackage/CloverV2/EFI/BOOT/BOOTX64.efi /CloverPackage/CloverV2/EFI/CLOVER/CLOVERX64.efi @@ -92,9 +93,6 @@ toolchain/ # / /Version.h -# /rEFIt_UEFI/ -/rEFIt_UEFI/Version.h - # XCode files/directories *~.nib DerivedData/ @@ -122,9 +120,14 @@ CloverPackage/version tools +#EdkII build folder +/Build + #Eclipse build folder -/DEBUG_*/ -/RELEASE_*/ +DEBUG-*/ +DEBUG_*/ +RELEASE_*/ #copy I make sometimes -/rEFIt_UEFI copy*/ +*copy +*copy [0-9]* diff --git a/Include/Library/HdaModels.h b/Include/Library/HdaModels.h index 2d8ad593b..ca3c3f9b8 100644 --- a/Include/Library/HdaModels.h +++ b/Include/Library/HdaModels.h @@ -103,8 +103,8 @@ VOID EFIAPI HdaCodecGetName(IN UINT32 CodecID, IN UINT16 RevisionId, OUT CHAR16 **Name); -BOOLEAN -EFIAPI -IsHDMIAudio(EFI_HANDLE PciDevHandle); +//BOOLEAN +//EFIAPI +//IsHDMIAudio(EFI_HANDLE PciDevHandle); #endif diff --git a/Xcode/CloverConfigPlistValidator/.cproject b/Xcode/CloverConfigPlistValidator/.cproject new file mode 100644 index 000000000..bb1d01954 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.cproject @@ -0,0 +1,570 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverConfigPlistValidator/.gitignore b/Xcode/CloverConfigPlistValidator/.gitignore new file mode 100644 index 000000000..680c8ed03 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.gitignore @@ -0,0 +1,2 @@ +/Gcc92-Debug/ +/Clang-Debug/ \ No newline at end of file diff --git a/Xcode/CloverConfigPlistValidator/.project b/Xcode/CloverConfigPlistValidator/.project new file mode 100644 index 000000000..98d3d5b50 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.project @@ -0,0 +1,54 @@ + + + CloverX64TestNewParser + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + org.eclipse.cdt.core.cnature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + org.eclipse.cdt.core.ccnature + + + + MemLogLibDefault + 2 + PARENT-2-PROJECT_LOC/Library/MemLogLibDefault + + + Posix + 2 + PARENT-2-PROJECT_LOC/rEFIt_UEFI/Platform/Posix + + + cpp_foundation + 2 + PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_foundation + + + cpp_unit_test + 2 + PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_unit_test + + + cpp_util + 2 + PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_util + + + diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-ar b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-ar new file mode 100755 index 000000000..95258c2c8 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-ar @@ -0,0 +1,25 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "libtool" #we use libtool as a linker, so let's ignore $name +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-ldflags) "$@" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-g++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-g++ new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-g++ @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-gcc b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-gcc new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-gcc @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-path b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-path new file mode 100755 index 000000000..b8beeb64f --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/clang-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path=/usr +gcc_prefix= +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-as b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-as new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-as @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-g++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-g++ new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-g++ @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-ar b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-ar new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-ar @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-path b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-path new file mode 100755 index 000000000..761cf20d2 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-gcc-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path="$SCRIPT_DIR"/../../../../toolchain.gcc49/cross +gcc_prefix=x86_64-clover-linux-gnu-gcc- +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-path b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-path new file mode 100755 index 000000000..ed58b1f6a --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc49-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path="$SCRIPT_DIR"/../../../../toolchain.gcc49/cross +gcc_prefix=x86_64-clover-linux-gnu- +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-as b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-as new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-as @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-g++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-g++ new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-g++ @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-ar b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-ar new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-ar @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-path b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-path new file mode 100755 index 000000000..f4749473e --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-gcc-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path="$SCRIPT_DIR"/../../../../toolchain.gcc92/cross +gcc_prefix=x86_64-clover-linux-gnu-gcc- +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-path b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-path new file mode 100755 index 000000000..8e64830e7 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/gcc92-path @@ -0,0 +1,8 @@ +#this is sourced. + +#gcc_path="$SCRIPT_DIR"/../../../../../../toolchain.gcc92/cross +gcc_path=/Volumes/Build-gcc-710-osx/x86_64-apple-darwin +gcc_prefix=x86_64-apple-darwin14.5.0- +gcc_suffix=-7.1.0 +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation/generic-compiler b/Xcode/CloverConfigPlistValidator/.settings/compilation/generic-compiler new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation/generic-compiler @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-includelist b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-includelist new file mode 100755 index 000000000..20c7435c8 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-includelist @@ -0,0 +1,12 @@ +prefix=$1 +#>&2 echo prefix="$prefix" + + +echo " + +../src + +" | awk '$0!=""{ printf " -I'"${prefix}"'%s", $0; }' + + +#../StdLib/Include diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-macrolist b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-macrolist new file mode 100755 index 000000000..87b306cfa --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/all-all-all-macrolist @@ -0,0 +1,5 @@ +echo " + + +" | awk '$0!=""{ printf " -D%s", $0; }' + diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-c-c++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-c-c++flags new file mode 100755 index 000000000..39eacc5c8 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-c-c++flags @@ -0,0 +1,10 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin \ + -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers \ + -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang \ + -D NO_MSABI_VA_FUNCS -fsigned-char -fno-omit-frame-pointer -fno-unwind-tables -Wno-msvc-include \ + +# -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-label diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-g++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-g++flags new file mode 100755 index 000000000..7b46afc04 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-g++flags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c++11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-gccflags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-gccflags new file mode 100755 index 000000000..9a64f95ad --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-gccflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-ldflags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-ldflags new file mode 100755 index 000000000..290fd2c4e --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/clang-ldflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-c-c++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-c-c++flags new file mode 100755 index 000000000..573960bdc --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-c-c++flags @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Wno-array-bounds -ffunction-sections -fdata-sections \ + -fno-common -m64 -fno-stack-protector -mabi=ms -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables \ + -Wno-address -flto -Wno-unused-but-set-variable -fno-omit-frame-pointer -Wno-unknown-pragmas -Wno-unused-label diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-g++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-g++flags new file mode 100755 index 000000000..7b46afc04 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-g++flags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c++11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-gccflags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-gccflags new file mode 100755 index 000000000..9a64f95ad --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc49-gccflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-c-c++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-c-c++flags new file mode 100755 index 000000000..45219f1b8 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-c-c++flags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -g -fshort-wchar + diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-g++flags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-g++flags new file mode 100755 index 000000000..7b46afc04 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-g++flags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c++11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-gccflags b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-gccflags new file mode 100755 index 000000000..9a64f95ad --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/compilation_project_specific/gcc92-gccflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c11 diff --git a/Xcode/CloverConfigPlistValidator/.settings/language.settings.xml b/Xcode/CloverConfigPlistValidator/.settings/language.settings.xml new file mode 100644 index 000000000..283ea0745 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/language.settings.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.codan.core.prefs b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.codan.core.prefs new file mode 100644 index 000000000..067d6fd2b --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.codan.core.prefs @@ -0,0 +1,73 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.codan.checkers.errnoreturn=Warning +org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} +org.eclipse.cdt.codan.checkers.errreturnvalue=Error +org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} +org.eclipse.cdt.codan.checkers.nocommentinside=-Error +org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} +org.eclipse.cdt.codan.checkers.nolinecomment=-Error +org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"} +org.eclipse.cdt.codan.checkers.noreturn=Error +org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false} +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error +org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"} +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error +org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error +org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning +org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} +org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning +org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error +org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning +org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} +org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error +org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error +org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error +org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error +org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info +org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning +org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"} +org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error +org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"} +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"} +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error +org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"} +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning +org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning +org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning +org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error +org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} diff --git a/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.core.prefs b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.core.prefs new file mode 100644 index 000000000..e6c77dd01 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.core.prefs @@ -0,0 +1,164 @@ +eclipse.preferences.version=1 +org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.cdt.core.formatter.alignment_for_assignment=16 +org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80 +org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.cdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34 +org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18 +org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=0 +org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16 +org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=48 +org.eclipse.cdt.core.formatter.alignment_for_expression_list=0 +org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.cdt.core.formatter.alignment_for_member_access=0 +org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=16 +org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_block=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_switch=end_of_line +org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=end_of_line +org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false +org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1 +org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true +org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true +org.eclipse.cdt.core.formatter.compact_else_if=true +org.eclipse.cdt.core.formatter.continuation_indentation=2 +org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false +org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0 +org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true +org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false +org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false +org.eclipse.cdt.core.formatter.indent_empty_lines=false +org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.cdt.core.formatter.indentation.size=2 +org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=insert +org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert +org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert +org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert +org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert +org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert +org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert +org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert +org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.cdt.core.formatter.join_wrapped_lines=true +org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false +org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false +org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=true +org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false +org.eclipse.cdt.core.formatter.lineSplit=80 +org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1 +org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true +org.eclipse.cdt.core.formatter.tabulation.char=tab +org.eclipse.cdt.core.formatter.tabulation.size=2 +org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=true diff --git a/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.managedbuilder.core.prefs new file mode 100644 index 000000000..5342e06d1 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -0,0 +1,25 @@ +eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPLUS_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPLUS_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/C_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/appendContributed=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/CPATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/CPLUS_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/CPLUS_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/C_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/delimiter=\: +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/LIBRARY_PATH/delimiter=\: +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/appendContributed=true diff --git a/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.ui.prefs b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.ui.prefs new file mode 100644 index 000000000..7cbd22144 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/.settings/org.eclipse.cdt.ui.prefs @@ -0,0 +1,3 @@ +eclipse.preferences.version=1 +formatter_profile=_Clover +formatter_settings_version=1 diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.pbxproj b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.pbxproj new file mode 100644 index 000000000..da0f05ee6 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.pbxproj @@ -0,0 +1,16193 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 9A071C47261A44080007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9A071C48261A44080007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C49261A44080007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */; }; + 9A0B085E240300E000E2B470 /* Platform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B085D240300E000E2B470 /* Platform.cpp */; }; + 9A0D113825FF58420040555F /* strcasecmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */; }; + 9A2755742639E0500095D456 /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755532639E04F0095D456 /* Config_GUI.cpp */; }; + 9A2755752639E0500095D456 /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755572639E04F0095D456 /* Config_Quirks.cpp */; }; + 9A2755762639E0500095D456 /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755612639E04F0095D456 /* ConfigPlistClass.cpp */; }; + 9A2755772639E0500095D456 /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755632639E04F0095D456 /* Config_ACPI.cpp */; }; + 9A2755782639E0500095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755672639E0500095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2755792639E0500095D456 /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755682639E0500095D456 /* Config_ACPI_DSDT.cpp */; }; + 9A27557A2639E0500095D456 /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27556C2639E0500095D456 /* SMBIOSPlist.cpp */; }; + 9A358B3D25CF117A00A3850D /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */; }; + 9A358B3E25CF117A00A3850D /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */; }; + 9A36E4F024F3B537007A1107 /* TagString8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DB24F3B536007A1107 /* TagString8.cpp */; }; + 9A36E4F424F3B537007A1107 /* plist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DD24F3B536007A1107 /* plist.cpp */; }; + 9A36E4F824F3B537007A1107 /* xml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DF24F3B536007A1107 /* xml.cpp */; }; + 9A36E4FC24F3B537007A1107 /* TagBool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E024F3B537007A1107 /* TagBool.cpp */; }; + 9A36E50024F3B537007A1107 /* TagDict.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E124F3B537007A1107 /* TagDict.cpp */; }; + 9A36E50424F3B537007A1107 /* TagInt64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E224F3B537007A1107 /* TagInt64.cpp */; }; + 9A36E50824F3B537007A1107 /* TagDate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E424F3B537007A1107 /* TagDate.cpp */; }; + 9A36E50C24F3B537007A1107 /* TagData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E524F3B537007A1107 /* TagData.cpp */; }; + 9A36E51024F3B537007A1107 /* TagArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E624F3B537007A1107 /* TagArray.cpp */; }; + 9A36E51424F3B537007A1107 /* TagFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4EA24F3B537007A1107 /* TagFloat.cpp */; }; + 9A36E51824F3B537007A1107 /* TagKey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4EC24F3B537007A1107 /* TagKey.cpp */; }; + 9A36E53C24F3EDED007A1107 /* base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E53B24F3EDED007A1107 /* base64.cpp */; }; + 9A3BA372261E7931009E8B0F /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923CE25CD5B2200BD5E8B /* platformdata.cpp */; }; + 9A3BA373261E794F009E8B0F /* DataPatcher.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA91BB525CD597F00BD5E8B /* DataPatcher.c */; }; + 9A3BA374261E7A3F009E8B0F /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E50025CD2FF400BD5E8B /* Utils.cpp */; }; + 9A3BA375261E7A5E009E8B0F /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923C325CD5B1F00BD5E8B /* guid.cpp */; }; + 9A3BA376261E7AF7009E8B0F /* b64cdecode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E51E24F3B82A007A1107 /* b64cdecode.cpp */; }; + 9A3BA377261E7BA6009E8B0F /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E52424F3BB6B007A1107 /* FloatLib.cpp */; }; + 9A3BA378261E7C69009E8B0F /* SafeString.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CE225CD451700BD5E8B /* SafeString.c */; }; + 9A3BA379261E7C85009E8B0F /* String.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CDC25CD451700BD5E8B /* String.c */; }; + 9A3BA37A261E7CCE009E8B0F /* LShiftU64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CE125CD451700BD5E8B /* LShiftU64.c */; }; + 9A3BA37B261E7CD9009E8B0F /* LRotU32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DDC25CD451700BD5E8B /* LRotU32.c */; }; + 9A3BA37C261E7CD9009E8B0F /* LRotU64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CD625CD451700BD5E8B /* LRotU64.c */; }; + 9A3BA37D261E7CD9009E8B0F /* Math64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DA225CD451700BD5E8B /* Math64.c */; }; + 9A3BA37E261E7CD9009E8B0F /* ModU64x32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DDD25CD451700BD5E8B /* ModU64x32.c */; }; + 9A3BA37F261E7CD9009E8B0F /* MultS64x64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CE325CD451700BD5E8B /* MultS64x64.c */; }; + 9A3BA380261E7CD9009E8B0F /* MultU64x32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CDB25CD451700BD5E8B /* MultU64x32.c */; }; + 9A3BA381261E7CD9009E8B0F /* MultU64x64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DC625CD451700BD5E8B /* MultU64x64.c */; }; + 9A3BA382261E7CD9009E8B0F /* RRotU32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DA325CD451700BD5E8B /* RRotU32.c */; }; + 9A3BA383261E7CD9009E8B0F /* RRotU64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90C7325CD451700BD5E8B /* RRotU64.c */; }; + 9A3BA384261E7CD9009E8B0F /* RShiftU64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DA825CD451700BD5E8B /* RShiftU64.c */; }; + 9A3BA385261E7CE8009E8B0F /* SwapBytes16.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DAE25CD451700BD5E8B /* SwapBytes16.c */; }; + 9A3BA386261E7CE8009E8B0F /* SwapBytes32.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90C6625CD451700BD5E8B /* SwapBytes32.c */; }; + 9A3BA387261E7CE8009E8B0F /* SwapBytes64.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90DA725CD451700BD5E8B /* SwapBytes64.c */; }; + 9A3BA388261E7D10009E8B0F /* CpuDeadLoop.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CD425CD451700BD5E8B /* CpuDeadLoop.c */; }; + 9A3BA389261E7D4A009E8B0F /* MemLogLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87920B261882D9000B9362 /* MemLogLib.c */; }; + 9A4185C02439F73A00BEAFB8 /* XStringArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */; }; + 9A4FFA7E2451C8330050B38B /* XString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4FFA7C2451C8330050B38B /* XString.cpp */; }; + 9A7D518424FC32F700FA1CC3 /* XBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518124FC32F700FA1CC3 /* XBuffer.cpp */; }; + 9A7D518524FC32F700FA1CC3 /* XRBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */; }; + 9A838CB425347C36008303F5 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A838CB325347C36008303F5 /* MemoryOperation.c */; }; + 9A8792C9261882DA000B9362 /* BaseMemoryLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926C261882D9000B9362 /* BaseMemoryLib.c */; }; + 9A8792CA261882DA000B9362 /* MemoryAllocationLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */; }; + 9A8792CB261882DA000B9362 /* PrintLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926E261882D9000B9362 /* PrintLib.c */; }; + 9A8792CC261882DA000B9362 /* DebugLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926F261882D9000B9362 /* DebugLib.c */; }; + 9A8792F6261886F6000B9362 /* posix_additions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E6261886F5000B9362 /* posix_additions.cpp */; }; + 9A8792F7261886F6000B9362 /* abort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E7261886F5000B9362 /* abort.cpp */; }; + 9A8792F8261886F6000B9362 /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F0261886F5000B9362 /* BootLog.cpp */; }; + 9A8792F9261886F6000B9362 /* BasicIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F1261886F5000B9362 /* BasicIO.cpp */; }; + 9A9037E625CFE7D100F14179 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */; }; + 9A9037E725CFE7D100F14179 /* config-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E425CFE7D000F14179 /* config-test.cpp */; }; + 9A9223312402FD1000483CBA /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; + 9A9AEB8D243F73CE00FBD7D8 /* unicode_conversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */; }; + 9AA925B325CD79AB00BD5E8B /* icns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AB25CD79AA00BD5E8B /* icns.cpp */; }; + 9AB67BE4261834F300CC853A /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */; }; + 9AD0EB24260A497600093F23 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */; }; + 9AF4D9CF2632D23500487D15 /* OcDataHubLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9752632D23400487D15 /* OcDataHubLib.lib */; }; + 9AF4D9D02632D23500487D15 /* OcXmlLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9762632D23400487D15 /* OcXmlLib.lib */; }; + 9AF4D9D12632D23500487D15 /* OcConfigurationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9772632D23400487D15 /* OcConfigurationLib.lib */; }; + 9AF4D9D22632D23600487D15 /* OcFirmwareVolumeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9782632D23400487D15 /* OcFirmwareVolumeLib.lib */; }; + 9AF4D9D32632D23600487D15 /* OcStorageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9792632D23400487D15 /* OcStorageLib.lib */; }; + 9AF4D9D42632D23600487D15 /* OcVirtualFsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97A2632D23400487D15 /* OcVirtualFsLib.lib */; }; + 9AF4D9D52632D23600487D15 /* OcAppleEventLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97B2632D23400487D15 /* OcAppleEventLib.lib */; }; + 9AF4D9D62632D23600487D15 /* OcCryptoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97C2632D23400487D15 /* OcCryptoLib.lib */; }; + 9AF4D9D72632D23600487D15 /* OcAudioLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97D2632D23400487D15 /* OcAudioLib.lib */; }; + 9AF4D9D82632D23600487D15 /* OcDevicePropertyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97E2632D23400487D15 /* OcDevicePropertyLib.lib */; }; + 9AF4D9D92632D23600487D15 /* OcAppleChunklistLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D97F2632D23400487D15 /* OcAppleChunklistLib.lib */; }; + 9AF4D9DA2632D23600487D15 /* OcStringLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9802632D23500487D15 /* OcStringLib.lib */; }; + 9AF4D9DB2632D23600487D15 /* OcTemplateLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9812632D23500487D15 /* OcTemplateLib.lib */; }; + 9AF4D9DC2632D23600487D15 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9822632D23500487D15 /* OcUnicodeCollationEngGenericLib.lib */; }; + 9AF4D9DD2632D23600487D15 /* ControlMsrE2.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9832632D23500487D15 /* ControlMsrE2.lib */; }; + 9AF4D9DE2632D23600487D15 /* OcAppleKeyMapLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9842632D23500487D15 /* OcAppleKeyMapLib.lib */; }; + 9AF4D9DF2632D23600487D15 /* OcConsoleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9852632D23500487D15 /* OcConsoleLib.lib */; }; + 9AF4D9E02632D23600487D15 /* OcRtcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9862632D23500487D15 /* OcRtcLib.lib */; }; + 9AF4D9E12632D23600487D15 /* OcDebugLogLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9872632D23500487D15 /* OcDebugLogLib.lib */; }; + 9AF4D9E22632D23600487D15 /* OcCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9882632D23500487D15 /* OcCpuLib.lib */; }; + 9AF4D9E32632D23600487D15 /* OcGuardLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9892632D23500487D15 /* OcGuardLib.lib */; }; + 9AF4D9E42632D23600487D15 /* OcDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98A2632D23500487D15 /* OcDevicePathLib.lib */; }; + 9AF4D9E52632D23600487D15 /* OcAppleKernelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98B2632D23500487D15 /* OcAppleKernelLib.lib */; }; + 9AF4D9E62632D23600487D15 /* OcAppleKeysLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98C2632D23500487D15 /* OcAppleKeysLib.lib */; }; + 9AF4D9E72632D23600487D15 /* OcInputLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98D2632D23500487D15 /* OcInputLib.lib */; }; + 9AF4D9E82632D23600487D15 /* OpenRuntime.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98E2632D23500487D15 /* OpenRuntime.lib */; }; + 9AF4D9E92632D23600487D15 /* OcAppleRamDiskLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D98F2632D23500487D15 /* OcAppleRamDiskLib.lib */; }; + 9AF4D9EA2632D23600487D15 /* OcPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9902632D23500487D15 /* OcPeCoffLib.lib */; }; + 9AF4D9EB2632D23600487D15 /* OcApfsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9912632D23500487D15 /* OcApfsLib.lib */; }; + 9AF4D9EC2632D23600487D15 /* OcSmbiosLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9922632D23500487D15 /* OcSmbiosLib.lib */; }; + 9AF4D9ED2632D23600487D15 /* OcSerializeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9932632D23500487D15 /* OcSerializeLib.lib */; }; + 9AF4D9EE2632D23600487D15 /* OcRngLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9942632D23500487D15 /* OcRngLib.lib */; }; + 9AF4D9EF2632D23600487D15 /* OcAfterBootCompatLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9952632D23500487D15 /* OcAfterBootCompatLib.lib */; }; + 9AF4D9F02632D23600487D15 /* OcCompressionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9962632D23500487D15 /* OcCompressionLib.lib */; }; + 9AF4D9F12632D23600487D15 /* OcAppleImageVerificationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9972632D23500487D15 /* OcAppleImageVerificationLib.lib */; }; + 9AF4D9F22632D23600487D15 /* OcMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9982632D23500487D15 /* OcMemoryLib.lib */; }; + 9AF4D9F32632D23600487D15 /* OcMacInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9992632D23500487D15 /* OcMacInfoLib.lib */; }; + 9AF4D9F42632D23600487D15 /* OcBootManagementLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99A2632D23500487D15 /* OcBootManagementLib.lib */; }; + 9AF4D9F52632D23600487D15 /* OcAppleImg4Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99B2632D23500487D15 /* OcAppleImg4Lib.lib */; }; + 9AF4D9F62632D23600487D15 /* OcAcpiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99C2632D23500487D15 /* OcAcpiLib.lib */; }; + 9AF4D9F72632D23600487D15 /* OcAppleDiskImageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99D2632D23500487D15 /* OcAppleDiskImageLib.lib */; }; + 9AF4D9F82632D23600487D15 /* OcMachoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99E2632D23500487D15 /* OcMachoLib.lib */; }; + 9AF4D9F92632D23600487D15 /* OcSmcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D99F2632D23500487D15 /* OcSmcLib.lib */; }; + 9AF4D9FA2632D23600487D15 /* OcFileLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A02632D23500487D15 /* OcFileLib.lib */; }; + 9AF4D9FB2632D23600487D15 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A12632D23500487D15 /* OcAppleUserInterfaceThemeLib.lib */; }; + 9AF4D9FC2632D23600487D15 /* OcDeviceTreeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A22632D23500487D15 /* OcDeviceTreeLib.lib */; }; + 9AF4D9FD2632D23600487D15 /* OcOSInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A32632D23500487D15 /* OcOSInfoLib.lib */; }; + 9AF4D9FE2632D23600487D15 /* OcDriverConnectionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A42632D23500487D15 /* OcDriverConnectionLib.lib */; }; + 9AF4D9FF2632D23600487D15 /* OpenCore.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A52632D23500487D15 /* OpenCore.lib */; }; + 9AF4DA002632D23600487D15 /* OcHashServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A62632D23500487D15 /* OcHashServicesLib.lib */; }; + 9AF4DA012632D23600487D15 /* OcMiscLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A72632D23500487D15 /* OcMiscLib.lib */; }; + 9AF4DA022632D23600487D15 /* OcAppleBootPolicyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A82632D23500487D15 /* OcAppleBootPolicyLib.lib */; }; + 9AF4DA032632D23600487D15 /* OcAppleSecureBootLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9A92632D23500487D15 /* OcAppleSecureBootLib.lib */; }; + 9AF4DA042632D23600487D15 /* VideoBiosPatchLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9AB2632D23500487D15 /* VideoBiosPatchLib.lib */; }; + 9AF4DA052632D23600487D15 /* VBoxPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9AC2632D23500487D15 /* VBoxPeCoffLib.lib */; }; + 9AF4DA062632D23600487D15 /* DuetTimerLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9AD2632D23500487D15 /* DuetTimerLib.lib */; }; + 9AF4DA072632D23600487D15 /* OpensslLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9AE2632D23500487D15 /* OpensslLib.lib */; }; + 9AF4DA082632D23600487D15 /* HdaDevicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9AF2632D23500487D15 /* HdaDevicesLib.lib */; }; + 9AF4DA092632D23600487D15 /* WaveLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B02632D23500487D15 /* WaveLib.lib */; }; + 9AF4DA0A2632D23600487D15 /* BasePciCf8Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B22632D23500487D15 /* BasePciCf8Lib.lib */; }; + 9AF4DA0B2632D23600487D15 /* UefiApplicationEntryPoint.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B32632D23500487D15 /* UefiApplicationEntryPoint.lib */; }; + 9AF4DA0C2632D23600487D15 /* BaseLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B42632D23500487D15 /* BaseLib.lib */; }; + 9AF4DA0D2632D23600487D15 /* UefiRuntimeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B52632D23500487D15 /* UefiRuntimeServicesTableLib.lib */; }; + 9AF4DA0E2632D23600487D15 /* BaseMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B62632D23500487D15 /* BaseMemoryLib.lib */; }; + 9AF4DA0F2632D23600487D15 /* BaseIoLibIntrinsic.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B72632D23500487D15 /* BaseIoLibIntrinsic.lib */; }; + 9AF4DA102632D23600487D15 /* DxeServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B82632D23500487D15 /* DxeServicesLib.lib */; }; + 9AF4DA112632D23600487D15 /* BaseCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9B92632D23500487D15 /* BaseCpuLib.lib */; }; + 9AF4DA122632D23600487D15 /* UefiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BA2632D23500487D15 /* UefiLib.lib */; }; + 9AF4DA132632D23600487D15 /* PeCoffExtraActionLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BB2632D23500487D15 /* PeCoffExtraActionLibNull.lib */; }; + 9AF4DA142632D23600487D15 /* UefiMemoryAllocationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BC2632D23500487D15 /* UefiMemoryAllocationLib.lib */; }; + 9AF4DA152632D23600487D15 /* UefiFileHandleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BD2632D23500487D15 /* UefiFileHandleLib.lib */; }; + 9AF4DA162632D23600487D15 /* DxeHobLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BE2632D23500487D15 /* DxeHobLib.lib */; }; + 9AF4DA172632D23600487D15 /* UefiBootServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9BF2632D23500487D15 /* UefiBootServicesTableLib.lib */; }; + 9AF4DA182632D23600487D15 /* BaseDebugLibSerialPort.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C02632D23500487D15 /* BaseDebugLibSerialPort.lib */; }; + 9AF4DA192632D23600487D15 /* DxeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C12632D23500487D15 /* DxeServicesTableLib.lib */; }; + 9AF4DA1A2632D23600487D15 /* BasePciLibCf8.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C22632D23500487D15 /* BasePciLibCf8.lib */; }; + 9AF4DA1B2632D23600487D15 /* BasePrintLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C32632D23500487D15 /* BasePrintLib.lib */; }; + 9AF4DA1C2632D23600487D15 /* UefiDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C42632D23500487D15 /* UefiDevicePathLib.lib */; }; + 9AF4DA1D2632D23600487D15 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C52632D23500487D15 /* BaseDebugPrintErrorLevelLib.lib */; }; + 9AF4DA1E2632D23600487D15 /* MtrrLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C72632D23500487D15 /* MtrrLib.lib */; }; + 9AF4DA1F2632D23600487D15 /* BasePlatformHookLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9C92632D23500487D15 /* BasePlatformHookLibNull.lib */; }; + 9AF4DA202632D23600487D15 /* BaseSerialPortLib16550.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9CA2632D23500487D15 /* BaseSerialPortLib16550.lib */; }; + 9AF4DA212632D23600487D15 /* FrameBufferBltLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4D9CB2632D23500487D15 /* FrameBufferBltLib.lib */; }; + 9AF4DA222632D23600487D15 /* AutoGen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D9CE2632D23500487D15 /* AutoGen.c */; }; + 9AFDD05425CDBC1800EEAF06 /* printf_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA91E2625CD59F100BD5E8B /* printf_lite.c */; }; + 9AFDD07D25CE731000EEAF06 /* global_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD05C25CE730F00EEAF06 /* global_test.cpp */; }; + 9AFDD08125CE731000EEAF06 /* XBuffer_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06025CE730F00EEAF06 /* XBuffer_tests.cpp */; }; + 9AFDD08525CE731000EEAF06 /* LoadOptions_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06125CE730F00EEAF06 /* LoadOptions_test.cpp */; }; + 9AFDD08925CE731000EEAF06 /* printf_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06325CE730F00EEAF06 /* printf_lite-test.cpp */; }; + 9AFDD08D25CE731000EEAF06 /* plist_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06825CE730F00EEAF06 /* plist_tests.cpp */; }; + 9AFDD09125CE731000EEAF06 /* MacOsVersion_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06925CE730F00EEAF06 /* MacOsVersion_test.cpp */; }; + 9AFDD09525CE731000EEAF06 /* strcmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06A25CE730F00EEAF06 /* strcmp_test.cpp */; }; + 9AFDD09925CE731000EEAF06 /* printlib-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06B25CE730F00EEAF06 /* printlib-test.cpp */; }; + 9AFDD09D25CE731000EEAF06 /* XStringArray_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06C25CE730F00EEAF06 /* XStringArray_test.cpp */; }; + 9AFDD0A125CE731000EEAF06 /* find_replace_mask_Clover_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06E25CE730F00EEAF06 /* find_replace_mask_Clover_tests.cpp */; }; + 9AFDD0A525CE731000EEAF06 /* all_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07125CE730F00EEAF06 /* all_tests.cpp */; }; + 9AFDD0A925CE731000EEAF06 /* XObjArray_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07325CE730F00EEAF06 /* XObjArray_tests.cpp */; }; + 9AFDD0AD25CE731000EEAF06 /* XArray_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07425CE730F00EEAF06 /* XArray_tests.cpp */; }; + 9AFDD0B125CE731000EEAF06 /* strncmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07525CE730F00EEAF06 /* strncmp_test.cpp */; }; + 9AFDD0B525CE731000EEAF06 /* XString_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */; }; + 9AFDD0B925CE731000EEAF06 /* XToolsCommon_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */; }; + 9AFDD0BD25CE731000EEAF06 /* strlen_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */; }; + 9AFDD0C125CE731000EEAF06 /* find_replace_mask_OC_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 9A92232B2402FD1000483CBA /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteArrayTypes.cpp; sourceTree = ""; }; + 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteUnionTypes.cpp; sourceTree = ""; }; + 9A071C43261A44080007CC44 /* XmlLiteDictTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteDictTypes.h; sourceTree = ""; }; + 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteDictTypes.cpp; sourceTree = ""; }; + 9A071C45261A44080007CC44 /* XmlLiteUnionTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteUnionTypes.h; sourceTree = ""; }; + 9A071C46261A44080007CC44 /* XmlLiteArrayTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteArrayTypes.h; sourceTree = ""; }; + 9A0B084A2402FE9300E2B470 /* XArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XArray.h; sourceTree = ""; }; + 9A0B084B2402FE9300E2B470 /* XObjArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XObjArray.h; sourceTree = ""; }; + 9A0B085D240300E000E2B470 /* Platform.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Platform.cpp; sourceTree = ""; }; + 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strcasecmp_test.cpp; sourceTree = ""; }; + 9A0D113725FF58400040555F /* strcasecmp_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strcasecmp_test.h; sourceTree = ""; }; + 9A272A7C25D5062D00F03E19 /* DataHubExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataHubExt.h; sourceTree = ""; }; + 9A272A7D25D5062D00F03E19 /* DataHub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataHub.cpp; sourceTree = ""; }; + 9A272A7E25D5062E00F03E19 /* DataHub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataHub.h; sourceTree = ""; }; + 9A27554C2639E04F0095D456 /* SelfOem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelfOem.cpp; sourceTree = ""; }; + 9A27554D2639E04F0095D456 /* ConfigManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigManager.h; sourceTree = ""; }; + 9A27554E2639E04F0095D456 /* Readme.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Readme.md; sourceTree = ""; }; + 9A27554F2639E04F0095D456 /* SelfOem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfOem.h; sourceTree = ""; }; + 9A2755502639E04F0095D456 /* ConfigManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigManager.cpp; sourceTree = ""; }; + 9A2755522639E04F0095D456 /* SMBIOSPlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMBIOSPlist.h; sourceTree = ""; }; + 9A2755532639E04F0095D456 /* Config_GUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_GUI.cpp; sourceTree = ""; }; + 9A2755542639E04F0095D456 /* Config_KernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_KernelAndKextPatches.h; sourceTree = ""; }; + 9A2755552639E04F0095D456 /* Config_Graphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Graphics.h; sourceTree = ""; }; + 9A2755562639E04F0095D456 /* Config_ACPI_DSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_DSDT.h; sourceTree = ""; }; + 9A2755572639E04F0095D456 /* Config_Quirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Quirks.cpp; sourceTree = ""; }; + 9A2755582639E04F0095D456 /* Config_Devices_Audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Audio.h; sourceTree = ""; }; + 9A2755592639E04F0095D456 /* Config_Quirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Quirks.h; sourceTree = ""; }; + 9A27555A2639E04F0095D456 /* ConfigPlistClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistClass.h; sourceTree = ""; }; + 9A27555B2639E04F0095D456 /* Config_ACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI.h; sourceTree = ""; }; + 9A27555C2639E04F0095D456 /* Config_Devices_Properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Properties.h; sourceTree = ""; }; + 9A27555D2639E04F0095D456 /* Config_Boot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Boot.h; sourceTree = ""; }; + 9A27555E2639E04F0095D456 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9A27555F2639E04F0095D456 /* Config_Devices_Arbitrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Arbitrary.h; sourceTree = ""; }; + 9A2755602639E04F0095D456 /* ConfigPlistAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistAbstract.h; sourceTree = ""; }; + 9A2755612639E04F0095D456 /* ConfigPlistClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistClass.cpp; sourceTree = ""; }; + 9A2755622639E04F0095D456 /* Config_SystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SystemParameters.h; sourceTree = ""; }; + 9A2755632639E04F0095D456 /* Config_ACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI.cpp; sourceTree = ""; }; + 9A2755642639E04F0095D456 /* Config_Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices.h; sourceTree = ""; }; + 9A2755652639E0500095D456 /* Config_CPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_CPU.h; sourceTree = ""; }; + 9A2755662639E0500095D456 /* Config_BootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_BootGraphics.h; sourceTree = ""; }; + 9A2755672639E0500095D456 /* ConfigPlistAbstract.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistAbstract.cpp; sourceTree = ""; }; + 9A2755682639E0500095D456 /* Config_ACPI_DSDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI_DSDT.cpp; sourceTree = ""; }; + 9A2755692639E0500095D456 /* Config_ACPI_SSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_SSDT.h; sourceTree = ""; }; + 9A27556A2639E0500095D456 /* Config_GUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_GUI.h; sourceTree = ""; }; + 9A27556B2639E0500095D456 /* Config_RtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_RtVariables.h; sourceTree = ""; }; + 9A27556C2639E0500095D456 /* SMBIOSPlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMBIOSPlist.cpp; sourceTree = ""; }; + 9A27556D2639E0500095D456 /* Config_Devices_FakeID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_FakeID.h; sourceTree = ""; }; + 9A27556E2639E0500095D456 /* Config_Devices_USB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_USB.h; sourceTree = ""; }; + 9A27556F2639E0500095D456 /* Config_Devices_AddProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_AddProperties.h; sourceTree = ""; }; + 9A2755702639E0500095D456 /* Self.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Self.h; sourceTree = ""; }; + 9A2755712639E0500095D456 /* Self.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Self.cpp; sourceTree = ""; }; + 9A358B3725CF117A00A3850D /* XmlLiteParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteParser.h; sourceTree = ""; }; + 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteCompositeTypes.cpp; sourceTree = ""; }; + 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteParser.cpp; sourceTree = ""; }; + 9A358B3C25CF117A00A3850D /* XmlLiteCompositeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteCompositeTypes.h; sourceTree = ""; }; + 9A36E4DA24F3B536007A1107 /* TagBool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagBool.h; sourceTree = ""; }; + 9A36E4DB24F3B536007A1107 /* TagString8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagString8.cpp; sourceTree = ""; }; + 9A36E4DC24F3B536007A1107 /* plist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plist.h; sourceTree = ""; }; + 9A36E4DD24F3B536007A1107 /* plist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plist.cpp; sourceTree = ""; }; + 9A36E4DE24F3B536007A1107 /* TagInt64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagInt64.h; sourceTree = ""; }; + 9A36E4DF24F3B536007A1107 /* xml.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xml.cpp; sourceTree = ""; }; + 9A36E4E024F3B537007A1107 /* TagBool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagBool.cpp; sourceTree = ""; }; + 9A36E4E124F3B537007A1107 /* TagDict.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagDict.cpp; sourceTree = ""; }; + 9A36E4E224F3B537007A1107 /* TagInt64.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagInt64.cpp; sourceTree = ""; }; + 9A36E4E324F3B537007A1107 /* xml.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xml.h; sourceTree = ""; }; + 9A36E4E424F3B537007A1107 /* TagDate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagDate.cpp; sourceTree = ""; }; + 9A36E4E524F3B537007A1107 /* TagData.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagData.cpp; sourceTree = ""; }; + 9A36E4E624F3B537007A1107 /* TagArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagArray.cpp; sourceTree = ""; }; + 9A36E4E724F3B537007A1107 /* TagDate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagDate.h; sourceTree = ""; }; + 9A36E4E824F3B537007A1107 /* TagData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagData.h; sourceTree = ""; }; + 9A36E4E924F3B537007A1107 /* TagArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagArray.h; sourceTree = ""; }; + 9A36E4EA24F3B537007A1107 /* TagFloat.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagFloat.cpp; sourceTree = ""; }; + 9A36E4EB24F3B537007A1107 /* TagFloat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagFloat.h; sourceTree = ""; }; + 9A36E4EC24F3B537007A1107 /* TagKey.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TagKey.cpp; sourceTree = ""; }; + 9A36E4ED24F3B537007A1107 /* TagDict.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagDict.h; sourceTree = ""; }; + 9A36E4EE24F3B537007A1107 /* TagKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagKey.h; sourceTree = ""; }; + 9A36E4EF24F3B537007A1107 /* TagString8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TagString8.h; sourceTree = ""; }; + 9A36E51D24F3B82A007A1107 /* b64cdecode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = b64cdecode.h; sourceTree = ""; }; + 9A36E51E24F3B82A007A1107 /* b64cdecode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = b64cdecode.cpp; sourceTree = ""; }; + 9A36E52424F3BB6B007A1107 /* FloatLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FloatLib.cpp; sourceTree = ""; }; + 9A36E52524F3BB6B007A1107 /* FloatLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FloatLib.h; sourceTree = ""; }; + 9A36E53A24F3EDED007A1107 /* base64.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = base64.h; sourceTree = ""; }; + 9A36E53B24F3EDED007A1107 /* base64.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = base64.cpp; sourceTree = ""; }; + 9A4147662604F82900440186 /* undefinable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = undefinable.h; sourceTree = ""; }; + 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XStringArray.cpp; sourceTree = ""; }; + 9A4185BF2439F73A00BEAFB8 /* XStringArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XStringArray.h; sourceTree = ""; }; + 9A4C5769255AAD07004F0B21 /* MacOsVersion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacOsVersion.cpp; sourceTree = ""; }; + 9A4C576A255AAD07004F0B21 /* MacOsVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacOsVersion.h; sourceTree = ""; }; + 9A4FFA7C2451C8330050B38B /* XString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XString.cpp; sourceTree = ""; }; + 9A57C266241A799B0029A39F /* XString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XString.h; sourceTree = ""; }; + 9A6BA73C2449977300BDA52C /* XStringAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XStringAbstract.h; sourceTree = ""; }; + 9A78DF7E260A531100FE811A /* Languages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Languages.h; sourceTree = ""; }; + 9A7AEDE82459696C003AAD04 /* XToolsCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsCommon.h; sourceTree = ""; }; + 9A7D518024FC32F700FA1CC3 /* XBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBuffer.h; sourceTree = ""; }; + 9A7D518124FC32F700FA1CC3 /* XBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBuffer.cpp; sourceTree = ""; }; + 9A7D518224FC32F700FA1CC3 /* XRBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XRBuffer.h; sourceTree = ""; }; + 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XRBuffer.cpp; sourceTree = ""; }; + 9A838CAA25342626008303F5 /* MemoryOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryOperation.h; sourceTree = ""; }; + 9A838CB325347C36008303F5 /* MemoryOperation.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = MemoryOperation.c; sourceTree = ""; }; + 9A852C0D25CC39E900C5662E /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = ""; }; + 9A852C0E25CC39E900C5662E /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = ""; }; + 9A879208261882D9000B9362 /* printf_lite-conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-conf.h"; sourceTree = ""; }; + 9A87920B261882D9000B9362 /* MemLogLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MemLogLib.c; sourceTree = ""; }; + 9A87920C261882D9000B9362 /* ReadmeJief.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadmeJief.txt; sourceTree = ""; }; + 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xcode_utf_fixed.cpp; sourceTree = ""; }; + 9A87926C261882D9000B9362 /* BaseMemoryLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BaseMemoryLib.c; sourceTree = ""; }; + 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9A87926E261882D9000B9362 /* PrintLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PrintLib.c; sourceTree = ""; }; + 9A87926F261882D9000B9362 /* DebugLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9A879270261882D9000B9362 /* Globals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Globals.cpp; sourceTree = ""; }; + 9A879271261882D9000B9362 /* Base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base.h; sourceTree = ""; }; + 9A879272261882D9000B9362 /* xcode_utf_fixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_utf_fixed.h; sourceTree = ""; }; + 9A8792E6261886F5000B9362 /* posix_additions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = posix_additions.cpp; sourceTree = ""; }; + 9A8792E7261886F5000B9362 /* abort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = abort.cpp; sourceTree = ""; }; + 9A8792E8261886F5000B9362 /* posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix.h; sourceTree = ""; }; + 9A8792E9261886F5000B9362 /* posix_additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_additions.h; sourceTree = ""; }; + 9A8792EA261886F5000B9362 /* abort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abort.h; sourceTree = ""; }; + 9A8792EC261886F5000B9362 /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = ""; }; + 9A8792ED261886F5000B9362 /* printf_lite-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test-cpp_conf.h"; sourceTree = ""; }; + 9A8792EE261886F5000B9362 /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; + 9A8792EF261886F5000B9362 /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; + 9A8792F0261886F5000B9362 /* BootLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BootLog.cpp; sourceTree = ""; }; + 9A8792F1261886F5000B9362 /* BasicIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BasicIO.cpp; sourceTree = ""; }; + 9A8792F3261886F5000B9362 /* globals_dtor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals_dtor.h; sourceTree = ""; }; + 9A8792F4261886F5000B9362 /* operatorNewDelete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operatorNewDelete.h; sourceTree = ""; }; + 9A8792F5261886F5000B9362 /* globals_ctor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals_ctor.h; sourceTree = ""; }; + 9A9037E225CFE7CD00F14179 /* config-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "config-test.h"; sourceTree = ""; }; + 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xml_lite-test.cpp"; sourceTree = ""; }; + 9A9037E425CFE7D000F14179 /* config-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "config-test.cpp"; sourceTree = ""; }; + 9A9037E525CFE7D000F14179 /* xml_lite-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xml_lite-test.h"; sourceTree = ""; }; + 9A92232D2402FD1000483CBA /* CloverConfigPlistValidator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CloverConfigPlistValidator; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A9223302402FD1000483CBA /* main.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = main.cpp; sourceTree = ""; }; + 9A9AEB8B243F73CE00FBD7D8 /* unicode_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unicode_conversions.h; sourceTree = ""; }; + 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unicode_conversions.cpp; sourceTree = ""; }; + 9AA3911825CC56840099DC1F /* FixBiosDsdt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixBiosDsdt.h; sourceTree = ""; }; + 9AA3911A25CC56E60099DC1F /* Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Devices.h; sourceTree = ""; }; + 9AA3911B25CC56E60099DC1F /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = ""; }; + 9AA3911C25CC56E60099DC1F /* syslinux_mbr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = syslinux_mbr.h; sourceTree = ""; }; + 9AA3911D25CC56E60099DC1F /* printf_lite-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test-cpp_conf.h"; sourceTree = ""; }; + 9AA3911E25CC56E60099DC1F /* rename_helper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = rename_helper.h; sourceTree = ""; }; + 9AA3911F25CC56E60099DC1F /* Handle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Handle.h; sourceTree = ""; }; + 9AA3912025CC56E60099DC1F /* OneLinerMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OneLinerMacros.h; sourceTree = ""; }; + 9AA3912225CC56E60099DC1F /* Pci.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Pci.h; sourceTree = ""; }; + 9AA3912325CC56E60099DC1F /* Efi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Efi.h; sourceTree = ""; }; + 9AA3912425CC56E60099DC1F /* OC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OC.h; sourceTree = ""; }; + 9AA3912525CC56E60099DC1F /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; + 9AA909EA25CD451500BD5E8B /* PiPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPei.h; sourceTree = ""; }; + 9AA909EB25CD451500BD5E8B /* PiMm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiMm.h; sourceTree = ""; }; + 9AA909EC25CD451500BD5E8B /* Uefi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Uefi.h; sourceTree = ""; }; + 9AA909EE25CD451500BD5E8B /* Nasm.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; path = Nasm.inc; sourceTree = ""; }; + 9AA909EF25CD451500BD5E8B /* ProcessorBind.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProcessorBind.h; sourceTree = ""; }; + 9AA909F125CD451500BD5E8B /* UefiAcpiDataTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiAcpiDataTable.h; sourceTree = ""; }; + 9AA909F225CD451500BD5E8B /* UefiPxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiPxe.h; sourceTree = ""; }; + 9AA909F325CD451500BD5E8B /* UefiSpec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiSpec.h; sourceTree = ""; }; + 9AA909F425CD451500BD5E8B /* UefiGpt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiGpt.h; sourceTree = ""; }; + 9AA909F525CD451500BD5E8B /* UefiBaseType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiBaseType.h; sourceTree = ""; }; + 9AA909F625CD451500BD5E8B /* UefiInternalFormRepresentation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiInternalFormRepresentation.h; sourceTree = ""; }; + 9AA909F725CD451500BD5E8B /* UefiMultiPhase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiMultiPhase.h; sourceTree = ""; }; + 9AA909F925CD451500BD5E8B /* IpmiNetFnFirmware.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnFirmware.h; sourceTree = ""; }; + 9AA909FA25CD451500BD5E8B /* SdramSpdLpDdr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdramSpdLpDdr.h; sourceTree = ""; }; + 9AA909FB25CD451500BD5E8B /* ElTorito.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ElTorito.h; sourceTree = ""; }; + 9AA909FC25CD451500BD5E8B /* SdramSpdDdr3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdramSpdDdr3.h; sourceTree = ""; }; + 9AA909FD25CD451500BD5E8B /* Acpi62.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi62.h; sourceTree = ""; }; + 9AA909FE25CD451500BD5E8B /* WindowsSmmSecurityMitigationTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WindowsSmmSecurityMitigationTable.h; sourceTree = ""; }; + 9AA909FF25CD451500BD5E8B /* Nvme.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Nvme.h; sourceTree = ""; }; + 9AA90A0025CD451500BD5E8B /* IoRemappingTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IoRemappingTable.h; sourceTree = ""; }; + 9AA90A0125CD451500BD5E8B /* LowPowerIdleTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LowPowerIdleTable.h; sourceTree = ""; }; + 9AA90A0225CD451500BD5E8B /* Emmc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Emmc.h; sourceTree = ""; }; + 9AA90A0325CD451500BD5E8B /* WatchdogActionTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchdogActionTable.h; sourceTree = ""; }; + 9AA90A0425CD451500BD5E8B /* DmaRemappingReportingTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DmaRemappingReportingTable.h; sourceTree = ""; }; + 9AA90A0525CD451500BD5E8B /* AlertStandardFormatTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AlertStandardFormatTable.h; sourceTree = ""; }; + 9AA90A0625CD451500BD5E8B /* Acpi40.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi40.h; sourceTree = ""; }; + 9AA90A0725CD451500BD5E8B /* Bmp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bmp.h; sourceTree = ""; }; + 9AA90A0825CD451500BD5E8B /* UefiTcgPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiTcgPlatform.h; sourceTree = ""; }; + 9AA90A0925CD451500BD5E8B /* SerialPortConsoleRedirectionTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SerialPortConsoleRedirectionTable.h; sourceTree = ""; }; + 9AA90A0A25CD451500BD5E8B /* Pci22.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pci22.h; sourceTree = ""; }; + 9AA90A0B25CD451500BD5E8B /* Mbr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mbr.h; sourceTree = ""; }; + 9AA90A0C25CD451500BD5E8B /* Acpi61.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi61.h; sourceTree = ""; }; + 9AA90A0D25CD451500BD5E8B /* SdramSpdDdr4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdramSpdDdr4.h; sourceTree = ""; }; + 9AA90A0E25CD451500BD5E8B /* TcgStorageOpal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcgStorageOpal.h; sourceTree = ""; }; + 9AA90A0F25CD451500BD5E8B /* IpmiNetFnChassis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnChassis.h; sourceTree = ""; }; + 9AA90A1025CD451500BD5E8B /* Acpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi.h; sourceTree = ""; }; + 9AA90A1125CD451500BD5E8B /* Tpm2Acpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tpm2Acpi.h; sourceTree = ""; }; + 9AA90A1225CD451500BD5E8B /* PeImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeImage.h; sourceTree = ""; }; + 9AA90A1325CD451500BD5E8B /* PciExpress30.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpress30.h; sourceTree = ""; }; + 9AA90A1425CD451500BD5E8B /* SdramSpd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdramSpd.h; sourceTree = ""; }; + 9AA90A1525CD451500BD5E8B /* Acpi10.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi10.h; sourceTree = ""; }; + 9AA90A1625CD451500BD5E8B /* MemoryMappedConfigurationSpaceAccessTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryMappedConfigurationSpaceAccessTable.h; sourceTree = ""; }; + 9AA90A1725CD451500BD5E8B /* IpmiFruInformationStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiFruInformationStorage.h; sourceTree = ""; }; + 9AA90A1825CD451500BD5E8B /* IpmiNetFnStorage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnStorage.h; sourceTree = ""; }; + 9AA90A1925CD451500BD5E8B /* IScsiBootFirmwareTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IScsiBootFirmwareTable.h; sourceTree = ""; }; + 9AA90A1A25CD451500BD5E8B /* Bluetooth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bluetooth.h; sourceTree = ""; }; + 9AA90A1B25CD451500BD5E8B /* AcpiAml.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiAml.h; sourceTree = ""; }; + 9AA90A1C25CD451500BD5E8B /* Acpi50.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi50.h; sourceTree = ""; }; + 9AA90A1D25CD451500BD5E8B /* Tpm20.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tpm20.h; sourceTree = ""; }; + 9AA90A1E25CD451500BD5E8B /* PciCodeId.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCodeId.h; sourceTree = ""; }; + 9AA90A1F25CD451500BD5E8B /* IpmiNetFnTransport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnTransport.h; sourceTree = ""; }; + 9AA90A2025CD451500BD5E8B /* Dhcp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dhcp.h; sourceTree = ""; }; + 9AA90A2125CD451500BD5E8B /* TpmPtp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TpmPtp.h; sourceTree = ""; }; + 9AA90A2225CD451500BD5E8B /* Acpi20.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi20.h; sourceTree = ""; }; + 9AA90A2325CD451500BD5E8B /* Pci23.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pci23.h; sourceTree = ""; }; + 9AA90A2425CD451500BD5E8B /* IpmiNetFnApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnApp.h; sourceTree = ""; }; + 9AA90A2525CD451500BD5E8B /* PciExpress40.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpress40.h; sourceTree = ""; }; + 9AA90A2625CD451500BD5E8B /* IpmiNetFnSensorEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnSensorEvent.h; sourceTree = ""; }; + 9AA90A2725CD451500BD5E8B /* Acpi60.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi60.h; sourceTree = ""; }; + 9AA90A2825CD451500BD5E8B /* PciExpress21.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpress21.h; sourceTree = ""; }; + 9AA90A2925CD451500BD5E8B /* PciExpress31.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpress31.h; sourceTree = ""; }; + 9AA90A2A25CD451500BD5E8B /* TcgStorageCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcgStorageCore.h; sourceTree = ""; }; + 9AA90A2B25CD451500BD5E8B /* HighPrecisionEventTimerTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HighPrecisionEventTimerTable.h; sourceTree = ""; }; + 9AA90A2C25CD451500BD5E8B /* Usb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Usb.h; sourceTree = ""; }; + 9AA90A2D25CD451500BD5E8B /* Acpi51.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi51.h; sourceTree = ""; }; + 9AA90A2E25CD451500BD5E8B /* Sd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Sd.h; sourceTree = ""; }; + 9AA90A2F25CD451500BD5E8B /* WatchdogResourceTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchdogResourceTable.h; sourceTree = ""; }; + 9AA90A3025CD451500BD5E8B /* Acpi30.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi30.h; sourceTree = ""; }; + 9AA90A3125CD451500BD5E8B /* Udf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Udf.h; sourceTree = ""; }; + 9AA90A3225CD451500BD5E8B /* DebugPortTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugPortTable.h; sourceTree = ""; }; + 9AA90A3325CD451500BD5E8B /* SmBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmBios.h; sourceTree = ""; }; + 9AA90A3425CD451500BD5E8B /* MemoryOverwriteRequestControlLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryOverwriteRequestControlLock.h; sourceTree = ""; }; + 9AA90A3525CD451500BD5E8B /* Atapi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Atapi.h; sourceTree = ""; }; + 9AA90A3625CD451500BD5E8B /* TcpaAcpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcpaAcpi.h; sourceTree = ""; }; + 9AA90A3725CD451500BD5E8B /* LegacyBiosMpTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyBiosMpTable.h; sourceTree = ""; }; + 9AA90A3825CD451500BD5E8B /* TpmTis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TpmTis.h; sourceTree = ""; }; + 9AA90A3925CD451500BD5E8B /* Acpi63.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi63.h; sourceTree = ""; }; + 9AA90A3A25CD451500BD5E8B /* SmBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmBus.h; sourceTree = ""; }; + 9AA90A3B25CD451500BD5E8B /* Http11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Http11.h; sourceTree = ""; }; + 9AA90A3C25CD451500BD5E8B /* TcgPhysicalPresence.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcgPhysicalPresence.h; sourceTree = ""; }; + 9AA90A3D25CD451500BD5E8B /* IpmiNetFnGroupExtension.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnGroupExtension.h; sourceTree = ""; }; + 9AA90A3E25CD451500BD5E8B /* Tls1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tls1.h; sourceTree = ""; }; + 9AA90A3F25CD451500BD5E8B /* Pci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pci.h; sourceTree = ""; }; + 9AA90A4025CD451500BD5E8B /* DebugPort2Table.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugPort2Table.h; sourceTree = ""; }; + 9AA90A4125CD451500BD5E8B /* Scsi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Scsi.h; sourceTree = ""; }; + 9AA90A4225CD451500BD5E8B /* Pci30.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pci30.h; sourceTree = ""; }; + 9AA90A4325CD451500BD5E8B /* Hsti.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Hsti.h; sourceTree = ""; }; + 9AA90A4425CD451500BD5E8B /* WindowsUxCapsule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WindowsUxCapsule.h; sourceTree = ""; }; + 9AA90A4525CD451500BD5E8B /* Tpm12.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tpm12.h; sourceTree = ""; }; + 9AA90A4625CD451500BD5E8B /* Ipmi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ipmi.h; sourceTree = ""; }; + 9AA90A4725CD451500BD5E8B /* IpmiNetFnBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiNetFnBridge.h; sourceTree = ""; }; + 9AA90A4825CD451500BD5E8B /* ServiceProcessorManagementInterfaceTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ServiceProcessorManagementInterfaceTable.h; sourceTree = ""; }; + 9AA90A4A25CD451500BD5E8B /* OrderedCollectionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OrderedCollectionLib.h; sourceTree = ""; }; + 9AA90A4B25CD451500BD5E8B /* TimerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TimerLib.h; sourceTree = ""; }; + 9AA90A4C25CD451500BD5E8B /* PeiServicesTablePointerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiServicesTablePointerLib.h; sourceTree = ""; }; + 9AA90A4D25CD451500BD5E8B /* SmiHandlerProfileLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmiHandlerProfileLib.h; sourceTree = ""; }; + 9AA90A4E25CD451500BD5E8B /* UefiUsbLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiUsbLib.h; sourceTree = ""; }; + 9AA90A4F25CD451500BD5E8B /* UefiDecompressLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiDecompressLib.h; sourceTree = ""; }; + 9AA90A5025CD451500BD5E8B /* UefiRuntimeServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiRuntimeServicesTableLib.h; sourceTree = ""; }; + 9AA90A5125CD451500BD5E8B /* PeimEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeimEntryPoint.h; sourceTree = ""; }; + 9AA90A5225CD451500BD5E8B /* RngLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RngLib.h; sourceTree = ""; }; + 9AA90A5325CD451500BD5E8B /* PciCf8Lib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCf8Lib.h; sourceTree = ""; }; + 9AA90A5425CD451500BD5E8B /* SmmPeriodicSmiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmPeriodicSmiLib.h; sourceTree = ""; }; + 9AA90A5525CD451500BD5E8B /* PeiCoreEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiCoreEntryPoint.h; sourceTree = ""; }; + 9AA90A5625CD451500BD5E8B /* S3PciLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3PciLib.h; sourceTree = ""; }; + 9AA90A5725CD451500BD5E8B /* PciSegmentLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciSegmentLib.h; sourceTree = ""; }; + 9AA90A5825CD451500BD5E8B /* DebugLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugLib.h; sourceTree = ""; }; + 9AA90A5925CD451500BD5E8B /* SynchronizationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SynchronizationLib.h; sourceTree = ""; }; + 9AA90A5A25CD451500BD5E8B /* SafeIntLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SafeIntLib.h; sourceTree = ""; }; + 9AA90A5B25CD451500BD5E8B /* S3SmbusLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3SmbusLib.h; sourceTree = ""; }; + 9AA90A5C25CD451500BD5E8B /* DevicePathLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathLib.h; sourceTree = ""; }; + 9AA90A5D25CD451500BD5E8B /* PcdLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcdLib.h; sourceTree = ""; }; + 9AA90A5E25CD451500BD5E8B /* FileHandleLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileHandleLib.h; sourceTree = ""; }; + 9AA90A5F25CD451500BD5E8B /* UefiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiLib.h; sourceTree = ""; }; + 9AA90A6025CD451500BD5E8B /* SmmMemLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmMemLib.h; sourceTree = ""; }; + 9AA90A6125CD451500BD5E8B /* PostCodeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PostCodeLib.h; sourceTree = ""; }; + 9AA90A6225CD451500BD5E8B /* S3StallLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3StallLib.h; sourceTree = ""; }; + 9AA90A6325CD451500BD5E8B /* PciLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciLib.h; sourceTree = ""; }; + 9AA90A6425CD451500BD5E8B /* UefiBootServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiBootServicesTableLib.h; sourceTree = ""; }; + 9AA90A6525CD451500BD5E8B /* MmServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmServicesTableLib.h; sourceTree = ""; }; + 9AA90A6625CD451500BD5E8B /* PeCoffExtraActionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeCoffExtraActionLib.h; sourceTree = ""; }; + 9AA90A6725CD451600BD5E8B /* PciExpressLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpressLib.h; sourceTree = ""; }; + 9AA90A6825CD451600BD5E8B /* S3IoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3IoLib.h; sourceTree = ""; }; + 9AA90A6925CD451600BD5E8B /* ReportStatusCodeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeLib.h; sourceTree = ""; }; + 9AA90A6A25CD451600BD5E8B /* UefiScsiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiScsiLib.h; sourceTree = ""; }; + 9AA90A6B25CD451600BD5E8B /* UefiRuntimeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiRuntimeLib.h; sourceTree = ""; }; + 9AA90A6C25CD451600BD5E8B /* SmmServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmServicesTableLib.h; sourceTree = ""; }; + 9AA90A6D25CD451600BD5E8B /* SerialPortLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SerialPortLib.h; sourceTree = ""; }; + 9AA90A6E25CD451600BD5E8B /* DxeCoreEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCoreEntryPoint.h; sourceTree = ""; }; + 9AA90A6F25CD451600BD5E8B /* PeCoffGetEntryPointLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeCoffGetEntryPointLib.h; sourceTree = ""; }; + 9AA90A7025CD451600BD5E8B /* UefiDriverEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiDriverEntryPoint.h; sourceTree = ""; }; + 9AA90A7125CD451600BD5E8B /* BaseMemoryLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseMemoryLib.h; sourceTree = ""; }; + 9AA90A7225CD451600BD5E8B /* DxeServicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeServicesLib.h; sourceTree = ""; }; + 9AA90A7325CD451600BD5E8B /* PeCoffLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeCoffLib.h; sourceTree = ""; }; + 9AA90A7425CD451600BD5E8B /* S3PciSegmentLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3PciSegmentLib.h; sourceTree = ""; }; + 9AA90A7525CD451600BD5E8B /* BaseLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseLib.h; sourceTree = ""; }; + 9AA90A7625CD451600BD5E8B /* SmmLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmLib.h; sourceTree = ""; }; + 9AA90A7725CD451600BD5E8B /* PeiServicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiServicesLib.h; sourceTree = ""; }; + 9AA90A7825CD451600BD5E8B /* DxeServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeServicesTableLib.h; sourceTree = ""; }; + 9AA90A7925CD451600BD5E8B /* SmbusLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmbusLib.h; sourceTree = ""; }; + 9AA90A7A25CD451600BD5E8B /* MemoryAllocationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryAllocationLib.h; sourceTree = ""; }; + 9AA90A7B25CD451600BD5E8B /* HstiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HstiLib.h; sourceTree = ""; }; + 9AA90A7C25CD451600BD5E8B /* ExtractGuidedSectionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtractGuidedSectionLib.h; sourceTree = ""; }; + 9AA90A7D25CD451600BD5E8B /* ResourcePublicationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResourcePublicationLib.h; sourceTree = ""; }; + 9AA90A7E25CD451600BD5E8B /* S3BootScriptLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3BootScriptLib.h; sourceTree = ""; }; + 9AA90A7F25CD451600BD5E8B /* CacheMaintenanceLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CacheMaintenanceLib.h; sourceTree = ""; }; + 9AA90A8025CD451600BD5E8B /* CpuLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuLib.h; sourceTree = ""; }; + 9AA90A8125CD451600BD5E8B /* StandaloneMmDriverEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StandaloneMmDriverEntryPoint.h; sourceTree = ""; }; + 9AA90A8225CD451600BD5E8B /* SmmIoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmIoLib.h; sourceTree = ""; }; + 9AA90A8325CD451600BD5E8B /* IoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IoLib.h; sourceTree = ""; }; + 9AA90A8425CD451600BD5E8B /* PrintLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrintLib.h; sourceTree = ""; }; + 9AA90A8525CD451600BD5E8B /* UefiApplicationEntryPoint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiApplicationEntryPoint.h; sourceTree = ""; }; + 9AA90A8625CD451600BD5E8B /* PerformanceLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PerformanceLib.h; sourceTree = ""; }; + 9AA90A8725CD451600BD5E8B /* HobLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HobLib.h; sourceTree = ""; }; + 9AA90A8825CD451600BD5E8B /* DebugPrintErrorLevelLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugPrintErrorLevelLib.h; sourceTree = ""; }; + 9AA90A8925CD451600BD5E8B /* PciSegmentInfoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciSegmentInfoLib.h; sourceTree = ""; }; + 9AA90A8B25CD451600BD5E8B /* LegacySpiController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacySpiController.h; sourceTree = ""; }; + 9AA90A8C25CD451600BD5E8B /* SpiHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiHc.h; sourceTree = ""; }; + 9AA90A8D25CD451600BD5E8B /* Tcp4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tcp4.h; sourceTree = ""; }; + 9AA90A8E25CD451600BD5E8B /* DriverFamilyOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverFamilyOverride.h; sourceTree = ""; }; + 9AA90A8F25CD451600BD5E8B /* MmSxDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmSxDispatch.h; sourceTree = ""; }; + 9AA90A9025CD451600BD5E8B /* MmCpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmCpu.h; sourceTree = ""; }; + 9AA90A9125CD451600BD5E8B /* TcgService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcgService.h; sourceTree = ""; }; + 9AA90A9225CD451600BD5E8B /* WiFi2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WiFi2.h; sourceTree = ""; }; + 9AA90A9325CD451600BD5E8B /* PartitionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PartitionInfo.h; sourceTree = ""; }; + 9AA90A9425CD451600BD5E8B /* SmmReportStatusCodeHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmReportStatusCodeHandler.h; sourceTree = ""; }; + 9AA90A9525CD451600BD5E8B /* UgaDraw.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UgaDraw.h; sourceTree = ""; }; + 9AA90A9625CD451600BD5E8B /* Bis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bis.h; sourceTree = ""; }; + 9AA90A9725CD451600BD5E8B /* SmartCardEdge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartCardEdge.h; sourceTree = ""; }; + 9AA90A9825CD451600BD5E8B /* EapConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EapConfiguration.h; sourceTree = ""; }; + 9AA90A9925CD451600BD5E8B /* ShellDynamicCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShellDynamicCommand.h; sourceTree = ""; }; + 9AA90A9A25CD451600BD5E8B /* Rest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Rest.h; sourceTree = ""; }; + 9AA90A9B25CD451600BD5E8B /* NvdimmLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvdimmLabel.h; sourceTree = ""; }; + 9AA90A9C25CD451600BD5E8B /* Udp4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Udp4.h; sourceTree = ""; }; + 9AA90A9D25CD451600BD5E8B /* LoadedImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadedImage.h; sourceTree = ""; }; + 9AA90A9E25CD451600BD5E8B /* WiFi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WiFi.h; sourceTree = ""; }; + 9AA90A9F25CD451600BD5E8B /* SmmSwDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmSwDispatch2.h; sourceTree = ""; }; + 9AA90AA025CD451600BD5E8B /* FormBrowser2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormBrowser2.h; sourceTree = ""; }; + 9AA90AA125CD451600BD5E8B /* I2cHost.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cHost.h; sourceTree = ""; }; + 9AA90AA225CD451600BD5E8B /* DevicePathFromText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathFromText.h; sourceTree = ""; }; + 9AA90AA325CD451600BD5E8B /* Shell.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Shell.h; sourceTree = ""; }; + 9AA90AA425CD451600BD5E8B /* IpSec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpSec.h; sourceTree = ""; }; + 9AA90AA525CD451600BD5E8B /* SimpleTextInEx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleTextInEx.h; sourceTree = ""; }; + 9AA90AA625CD451600BD5E8B /* CpuIo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuIo2.h; sourceTree = ""; }; + 9AA90AA725CD451600BD5E8B /* Ip4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip4.h; sourceTree = ""; }; + 9AA90AA825CD451600BD5E8B /* DriverConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverConfiguration.h; sourceTree = ""; }; + 9AA90AA925CD451600BD5E8B /* SpiSmmConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiSmmConfiguration.h; sourceTree = ""; }; + 9AA90AAA25CD451600BD5E8B /* DiskIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskIo.h; sourceTree = ""; }; + 9AA90AAB25CD451600BD5E8B /* Tls.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tls.h; sourceTree = ""; }; + 9AA90AAC25CD451600BD5E8B /* MmReadyToLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmReadyToLock.h; sourceTree = ""; }; + 9AA90AAD25CD451600BD5E8B /* SimpleFileSystem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleFileSystem.h; sourceTree = ""; }; + 9AA90AAE25CD451600BD5E8B /* MmStatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmStatusCode.h; sourceTree = ""; }; + 9AA90AAF25CD451600BD5E8B /* Http.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Http.h; sourceTree = ""; }; + 9AA90AB025CD451600BD5E8B /* ScsiPassThruExt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScsiPassThruExt.h; sourceTree = ""; }; + 9AA90AB125CD451600BD5E8B /* HiiConfigAccess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiConfigAccess.h; sourceTree = ""; }; + 9AA90AB225CD451600BD5E8B /* SmbusHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmbusHc.h; sourceTree = ""; }; + 9AA90AB325CD451600BD5E8B /* DevicePathToText.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathToText.h; sourceTree = ""; }; + 9AA90AB425CD451600BD5E8B /* MmCpuIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmCpuIo.h; sourceTree = ""; }; + 9AA90AB525CD451600BD5E8B /* ServiceBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ServiceBinding.h; sourceTree = ""; }; + 9AA90AB625CD451600BD5E8B /* DriverConfiguration2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverConfiguration2.h; sourceTree = ""; }; + 9AA90AB725CD451600BD5E8B /* Usb2HostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Usb2HostController.h; sourceTree = ""; }; + 9AA90AB825CD451600BD5E8B /* FirmwareManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareManagement.h; sourceTree = ""; }; + 9AA90AB925CD451600BD5E8B /* EdidDiscovered.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdidDiscovered.h; sourceTree = ""; }; + 9AA90ABA25CD451600BD5E8B /* MmEndOfDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmEndOfDxe.h; sourceTree = ""; }; + 9AA90ABB25CD451600BD5E8B /* BootManagerPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootManagerPolicy.h; sourceTree = ""; }; + 9AA90ABC25CD451600BD5E8B /* RealTimeClock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RealTimeClock.h; sourceTree = ""; }; + 9AA90ABD25CD451600BD5E8B /* SimplePointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimplePointer.h; sourceTree = ""; }; + 9AA90ABE25CD451600BD5E8B /* Ip6Config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip6Config.h; sourceTree = ""; }; + 9AA90ABF25CD451600BD5E8B /* I2cIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cIo.h; sourceTree = ""; }; + 9AA90AC025CD451600BD5E8B /* Dns6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dns6.h; sourceTree = ""; }; + 9AA90AC125CD451600BD5E8B /* UfsDeviceConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsDeviceConfig.h; sourceTree = ""; }; + 9AA90AC225CD451600BD5E8B /* DeviceIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceIo.h; sourceTree = ""; }; + 9AA90AC325CD451600BD5E8B /* ReportStatusCodeHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeHandler.h; sourceTree = ""; }; + 9AA90AC425CD451600BD5E8B /* TlsConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TlsConfig.h; sourceTree = ""; }; + 9AA90AC525CD451600BD5E8B /* ScsiIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScsiIo.h; sourceTree = ""; }; + 9AA90AC625CD451600BD5E8B /* Security.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Security.h; sourceTree = ""; }; + 9AA90AC725CD451600BD5E8B /* SmmSxDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmSxDispatch2.h; sourceTree = ""; }; + 9AA90AC825CD451600BD5E8B /* MmControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmControl.h; sourceTree = ""; }; + 9AA90AC925CD451600BD5E8B /* NetworkInterfaceIdentifier.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetworkInterfaceIdentifier.h; sourceTree = ""; }; + 9AA90ACA25CD451600BD5E8B /* MmPowerButtonDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmPowerButtonDispatch.h; sourceTree = ""; }; + 9AA90ACB25CD451600BD5E8B /* Security2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Security2.h; sourceTree = ""; }; + 9AA90ACC25CD451600BD5E8B /* EdidActive.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdidActive.h; sourceTree = ""; }; + 9AA90ACD25CD451600BD5E8B /* UserCredential.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserCredential.h; sourceTree = ""; }; + 9AA90ACE25CD451600BD5E8B /* MmAccess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmAccess.h; sourceTree = ""; }; + 9AA90ACF25CD451600BD5E8B /* UnicodeCollation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UnicodeCollation.h; sourceTree = ""; }; + 9AA90AD025CD451600BD5E8B /* MonotonicCounter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MonotonicCounter.h; sourceTree = ""; }; + 9AA90AD125CD451600BD5E8B /* BluetoothHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BluetoothHc.h; sourceTree = ""; }; + 9AA90AD225CD451600BD5E8B /* PlatformDriverOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformDriverOverride.h; sourceTree = ""; }; + 9AA90AD325CD451600BD5E8B /* ManagedNetwork.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ManagedNetwork.h; sourceTree = ""; }; + 9AA90AD425CD451600BD5E8B /* DriverDiagnostics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverDiagnostics.h; sourceTree = ""; }; + 9AA90AD525CD451600BD5E8B /* HiiImageDecoder.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiImageDecoder.h; sourceTree = ""; }; + 9AA90AD625CD451600BD5E8B /* SimpleNetwork.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleNetwork.h; sourceTree = ""; }; + 9AA90AD725CD451600BD5E8B /* HiiString.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiString.h; sourceTree = ""; }; + 9AA90AD825CD451600BD5E8B /* TrEEProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TrEEProtocol.h; sourceTree = ""; }; + 9AA90AD925CD451600BD5E8B /* VariableWrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VariableWrite.h; sourceTree = ""; }; + 9AA90ADA25CD451600BD5E8B /* BluetoothLeConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BluetoothLeConfig.h; sourceTree = ""; }; + 9AA90ADB25CD451600BD5E8B /* Ip4Config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip4Config.h; sourceTree = ""; }; + 9AA90ADC25CD451600BD5E8B /* MmMp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmMp.h; sourceTree = ""; }; + 9AA90ADD25CD451600BD5E8B /* HiiPopup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiPopup.h; sourceTree = ""; }; + 9AA90ADE25CD451600BD5E8B /* GraphicsOutput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GraphicsOutput.h; sourceTree = ""; }; + 9AA90ADF25CD451600BD5E8B /* IScsiInitiatorName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IScsiInitiatorName.h; sourceTree = ""; }; + 9AA90AE025CD451600BD5E8B /* Ftp4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ftp4.h; sourceTree = ""; }; + 9AA90AE125CD451600BD5E8B /* AtaPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaPassThru.h; sourceTree = ""; }; + 9AA90AE225CD451600BD5E8B /* SimpleTextOut.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleTextOut.h; sourceTree = ""; }; + 9AA90AE325CD451600BD5E8B /* HiiConfigKeyword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiConfigKeyword.h; sourceTree = ""; }; + 9AA90AE425CD451600BD5E8B /* PciOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciOverride.h; sourceTree = ""; }; + 9AA90AE525CD451600BD5E8B /* DiskIo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskIo2.h; sourceTree = ""; }; + 9AA90AE625CD451600BD5E8B /* IsaHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IsaHc.h; sourceTree = ""; }; + 9AA90AE725CD451600BD5E8B /* ComponentName2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName2.h; sourceTree = ""; }; + 9AA90AE825CD451600BD5E8B /* SmmStatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmStatusCode.h; sourceTree = ""; }; + 9AA90AE925CD451600BD5E8B /* PciPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciPlatform.h; sourceTree = ""; }; + 9AA90AEA25CD451600BD5E8B /* DriverDiagnostics2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverDiagnostics2.h; sourceTree = ""; }; + 9AA90AEB25CD451600BD5E8B /* Rng.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Rng.h; sourceTree = ""; }; + 9AA90AEC25CD451600BD5E8B /* Dhcp4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dhcp4.h; sourceTree = ""; }; + 9AA90AED25CD451600BD5E8B /* PxeBaseCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PxeBaseCode.h; sourceTree = ""; }; + 9AA90AEE25CD451600BD5E8B /* GuidedSectionExtraction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuidedSectionExtraction.h; sourceTree = ""; }; + 9AA90AEF25CD451600BD5E8B /* Variable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Variable.h; sourceTree = ""; }; + 9AA90AF025CD451600BD5E8B /* MmReportStatusCodeHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmReportStatusCodeHandler.h; sourceTree = ""; }; + 9AA90AF125CD451600BD5E8B /* DxeMmReadyToLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeMmReadyToLock.h; sourceTree = ""; }; + 9AA90AF225CD451600BD5E8B /* DriverBinding.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverBinding.h; sourceTree = ""; }; + 9AA90AF325CD451600BD5E8B /* FirmwareVolume2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolume2.h; sourceTree = ""; }; + 9AA90AF425CD451600BD5E8B /* BlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIo.h; sourceTree = ""; }; + 9AA90AF525CD451600BD5E8B /* MmBase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmBase.h; sourceTree = ""; }; + 9AA90AF625CD451600BD5E8B /* SmmCpuIo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCpuIo2.h; sourceTree = ""; }; + 9AA90AF725CD451600BD5E8B /* SmmUsbDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmUsbDispatch2.h; sourceTree = ""; }; + 9AA90AF825CD451600BD5E8B /* Mtftp6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mtftp6.h; sourceTree = ""; }; + 9AA90AF925CD451600BD5E8B /* S3SmmSaveState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3SmmSaveState.h; sourceTree = ""; }; + 9AA90AFA25CD451600BD5E8B /* SpiNorFlash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiNorFlash.h; sourceTree = ""; }; + 9AA90AFB25CD451600BD5E8B /* Metronome.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Metronome.h; sourceTree = ""; }; + 9AA90AFC25CD451600BD5E8B /* SmmPowerButtonDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmPowerButtonDispatch2.h; sourceTree = ""; }; + 9AA90AFD25CD451600BD5E8B /* Runtime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Runtime.h; sourceTree = ""; }; + 9AA90AFE25CD451600BD5E8B /* LegacySpiSmmFlash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacySpiSmmFlash.h; sourceTree = ""; }; + 9AA90AFF25CD451600BD5E8B /* PlatformToDriverConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformToDriverConfiguration.h; sourceTree = ""; }; + 9AA90B0025CD451600BD5E8B /* Timer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Timer.h; sourceTree = ""; }; + 9AA90B0125CD451600BD5E8B /* DevicePathUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathUtilities.h; sourceTree = ""; }; + 9AA90B0225CD451600BD5E8B /* PxeBaseCodeCallBack.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PxeBaseCodeCallBack.h; sourceTree = ""; }; + 9AA90B0325CD451600BD5E8B /* LegacySpiSmmController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacySpiSmmController.h; sourceTree = ""; }; + 9AA90B0425CD451600BD5E8B /* LegacyRegion2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyRegion2.h; sourceTree = ""; }; + 9AA90B0525CD451600BD5E8B /* DebugPort.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugPort.h; sourceTree = ""; }; + 9AA90B0625CD451600BD5E8B /* Tcp6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tcp6.h; sourceTree = ""; }; + 9AA90B0725CD451600BD5E8B /* PciRootBridgeIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciRootBridgeIo.h; sourceTree = ""; }; + 9AA90B0825CD451600BD5E8B /* Pcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pcd.h; sourceTree = ""; }; + 9AA90B0925CD451600BD5E8B /* UgaIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UgaIo.h; sourceTree = ""; }; + 9AA90B0A25CD451600BD5E8B /* SpiSmmNorFlash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiSmmNorFlash.h; sourceTree = ""; }; + 9AA90B0B25CD451600BD5E8B /* Hash2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Hash2.h; sourceTree = ""; }; + 9AA90B0C25CD451600BD5E8B /* SpiConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiConfiguration.h; sourceTree = ""; }; + 9AA90B0D25CD451600BD5E8B /* SuperIoControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SuperIoControl.h; sourceTree = ""; }; + 9AA90B0E25CD451600BD5E8B /* DevicePath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePath.h; sourceTree = ""; }; + 9AA90B0F25CD451600BD5E8B /* TapeIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TapeIo.h; sourceTree = ""; }; + 9AA90B1025CD451600BD5E8B /* SmmCpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCpu.h; sourceTree = ""; }; + 9AA90B1125CD451600BD5E8B /* DriverSupportedEfiVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverSupportedEfiVersion.h; sourceTree = ""; }; + 9AA90B1225CD451600BD5E8B /* StorageSecurityCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StorageSecurityCommand.h; sourceTree = ""; }; + 9AA90B1325CD451600BD5E8B /* UserManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserManager.h; sourceTree = ""; }; + 9AA90B1425CD451600BD5E8B /* PiPcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPcd.h; sourceTree = ""; }; + 9AA90B1525CD451600BD5E8B /* SecurityPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecurityPolicy.h; sourceTree = ""; }; + 9AA90B1625CD451600BD5E8B /* UsbFunctionIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbFunctionIo.h; sourceTree = ""; }; + 9AA90B1725CD451600BD5E8B /* BusSpecificDriverOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BusSpecificDriverOverride.h; sourceTree = ""; }; + 9AA90B1825CD451600BD5E8B /* MmSwDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmSwDispatch.h; sourceTree = ""; }; + 9AA90B1925CD451600BD5E8B /* Supplicant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Supplicant.h; sourceTree = ""; }; + 9AA90B1A25CD451600BD5E8B /* Udp6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Udp6.h; sourceTree = ""; }; + 9AA90B1B25CD451600BD5E8B /* SmmReadyToLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmReadyToLock.h; sourceTree = ""; }; + 9AA90B1C25CD451600BD5E8B /* PciHotPlugRequest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHotPlugRequest.h; sourceTree = ""; }; + 9AA90B1D25CD451600BD5E8B /* AuthenticationInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthenticationInfo.h; sourceTree = ""; }; + 9AA90B1E25CD451600BD5E8B /* Ip4Config2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip4Config2.h; sourceTree = ""; }; + 9AA90B1F25CD451600BD5E8B /* MmCommunication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmCommunication.h; sourceTree = ""; }; + 9AA90B2025CD451600BD5E8B /* EapManagement2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EapManagement2.h; sourceTree = ""; }; + 9AA90B2125CD451600BD5E8B /* Decompress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Decompress.h; sourceTree = ""; }; + 9AA90B2225CD451600BD5E8B /* PiPcdInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPcdInfo.h; sourceTree = ""; }; + 9AA90B2325CD451600BD5E8B /* PciHostBridgeResourceAllocation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHostBridgeResourceAllocation.h; sourceTree = ""; }; + 9AA90B2425CD451600BD5E8B /* HiiPackageList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiPackageList.h; sourceTree = ""; }; + 9AA90B2525CD451600BD5E8B /* SpiIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiIo.h; sourceTree = ""; }; + 9AA90B2625CD451600BD5E8B /* HiiImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiImage.h; sourceTree = ""; }; + 9AA90B2725CD451600BD5E8B /* Pkcs7Verify.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pkcs7Verify.h; sourceTree = ""; }; + 9AA90B2825CD451600BD5E8B /* SmmGpiDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmGpiDispatch2.h; sourceTree = ""; }; + 9AA90B2925CD451600BD5E8B /* SmmCommunication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCommunication.h; sourceTree = ""; }; + 9AA90B2A25CD451600BD5E8B /* NvmExpressPassthru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPassthru.h; sourceTree = ""; }; + 9AA90B2B25CD451600BD5E8B /* IpSecConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpSecConfig.h; sourceTree = ""; }; + 9AA90B2C25CD451600BD5E8B /* DeferredImageLoad.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeferredImageLoad.h; sourceTree = ""; }; + 9AA90B2D25CD451600BD5E8B /* MmUsbDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmUsbDispatch.h; sourceTree = ""; }; + 9AA90B2E25CD451600BD5E8B /* SmmStandbyButtonDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmStandbyButtonDispatch2.h; sourceTree = ""; }; + 9AA90B2F25CD451600BD5E8B /* Capsule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Capsule.h; sourceTree = ""; }; + 9AA90B3025CD451600BD5E8B /* SuperIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SuperIo.h; sourceTree = ""; }; + 9AA90B3125CD451600BD5E8B /* RegularExpressionProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RegularExpressionProtocol.h; sourceTree = ""; }; + 9AA90B3225CD451600BD5E8B /* IdeControllerInit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdeControllerInit.h; sourceTree = ""; }; + 9AA90B3325CD451600BD5E8B /* Cpu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cpu.h; sourceTree = ""; }; + 9AA90B3425CD451600BD5E8B /* AbsolutePointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AbsolutePointer.h; sourceTree = ""; }; + 9AA90B3525CD451600BD5E8B /* UsbHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHostController.h; sourceTree = ""; }; + 9AA90B3625CD451600BD5E8B /* UsbIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbIo.h; sourceTree = ""; }; + 9AA90B3725CD451600BD5E8B /* HiiConfigRouting.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiConfigRouting.h; sourceTree = ""; }; + 9AA90B3825CD451600BD5E8B /* BluetoothAttribute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BluetoothAttribute.h; sourceTree = ""; }; + 9AA90B3925CD451600BD5E8B /* Ip6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip6.h; sourceTree = ""; }; + 9AA90B3A25CD451600BD5E8B /* BlockIo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIo2.h; sourceTree = ""; }; + 9AA90B3B25CD451600BD5E8B /* Dns4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dns4.h; sourceTree = ""; }; + 9AA90B3C25CD451600BD5E8B /* HiiDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiDatabase.h; sourceTree = ""; }; + 9AA90B3D25CD451600BD5E8B /* HiiImageEx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiImageEx.h; sourceTree = ""; }; + 9AA90B3E25CD451600BD5E8B /* PciIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciIo.h; sourceTree = ""; }; + 9AA90B3F25CD451600BD5E8B /* MmPeriodicTimerDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmPeriodicTimerDispatch.h; sourceTree = ""; }; + 9AA90B4025CD451600BD5E8B /* RamDisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RamDisk.h; sourceTree = ""; }; + 9AA90B4125CD451600BD5E8B /* ScsiPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScsiPassThru.h; sourceTree = ""; }; + 9AA90B4225CD451600BD5E8B /* DiskInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskInfo.h; sourceTree = ""; }; + 9AA90B4325CD451600BD5E8B /* Bds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bds.h; sourceTree = ""; }; + 9AA90B4425CD451600BD5E8B /* SerialIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SerialIo.h; sourceTree = ""; }; + 9AA90B4525CD451600BD5E8B /* DriverHealth.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverHealth.h; sourceTree = ""; }; + 9AA90B4625CD451600BD5E8B /* Arp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Arp.h; sourceTree = ""; }; + 9AA90B4725CD451600BD5E8B /* ShellParameters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ShellParameters.h; sourceTree = ""; }; + 9AA90B4825CD451600BD5E8B /* IncompatiblePciDeviceSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IncompatiblePciDeviceSupport.h; sourceTree = ""; }; + 9AA90B4925CD451600BD5E8B /* LegacySpiFlash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacySpiFlash.h; sourceTree = ""; }; + 9AA90B4A25CD451600BD5E8B /* I2cMaster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cMaster.h; sourceTree = ""; }; + 9AA90B4B25CD451600BD5E8B /* Smbios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Smbios.h; sourceTree = ""; }; + 9AA90B4C25CD451600BD5E8B /* EapManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EapManagement.h; sourceTree = ""; }; + 9AA90B4D25CD451600BD5E8B /* EraseBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EraseBlock.h; sourceTree = ""; }; + 9AA90B4E25CD451600BD5E8B /* Tcg2Protocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Tcg2Protocol.h; sourceTree = ""; }; + 9AA90B4F25CD451600BD5E8B /* AcpiSystemDescriptionTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiSystemDescriptionTable.h; sourceTree = ""; }; + 9AA90B5025CD451600BD5E8B /* PciEnumerationComplete.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciEnumerationComplete.h; sourceTree = ""; }; + 9AA90B5125CD451600BD5E8B /* ResetNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResetNotification.h; sourceTree = ""; }; + 9AA90B5225CD451600BD5E8B /* PciHotPlugInit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHotPlugInit.h; sourceTree = ""; }; + 9AA90B5325CD451600BD5E8B /* Kms.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Kms.h; sourceTree = ""; }; + 9AA90B5425CD451600BD5E8B /* MmPciRootBridgeIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmPciRootBridgeIo.h; sourceTree = ""; }; + 9AA90B5525CD451600BD5E8B /* I2cBusConfigurationManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cBusConfigurationManagement.h; sourceTree = ""; }; + 9AA90B5625CD451600BD5E8B /* LoadFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadFile.h; sourceTree = ""; }; + 9AA90B5725CD451600BD5E8B /* PcdInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcdInfo.h; sourceTree = ""; }; + 9AA90B5825CD451600BD5E8B /* WatchdogTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchdogTimer.h; sourceTree = ""; }; + 9AA90B5925CD451600BD5E8B /* SmmEndOfDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmEndOfDxe.h; sourceTree = ""; }; + 9AA90B5A25CD451600BD5E8B /* MmConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmConfiguration.h; sourceTree = ""; }; + 9AA90B5B25CD451600BD5E8B /* SmmPeriodicTimerDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmPeriodicTimerDispatch2.h; sourceTree = ""; }; + 9AA90B5C25CD451600BD5E8B /* S3SaveState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3SaveState.h; sourceTree = ""; }; + 9AA90B5D25CD451600BD5E8B /* SdMmcPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcPassThru.h; sourceTree = ""; }; + 9AA90B5E25CD451600BD5E8B /* Reset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Reset.h; sourceTree = ""; }; + 9AA90B5F25CD451600BD5E8B /* Dhcp6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dhcp6.h; sourceTree = ""; }; + 9AA90B6025CD451600BD5E8B /* DxeSmmReadyToLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeSmmReadyToLock.h; sourceTree = ""; }; + 9AA90B6125CD451600BD5E8B /* MpService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MpService.h; sourceTree = ""; }; + 9AA90B6225CD451600BD5E8B /* SmmConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmConfiguration.h; sourceTree = ""; }; + 9AA90B6325CD451600BD5E8B /* MmGpiDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmGpiDispatch.h; sourceTree = ""; }; + 9AA90B6425CD451600BD5E8B /* SmmControl2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmControl2.h; sourceTree = ""; }; + 9AA90B6525CD451600BD5E8B /* StatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCode.h; sourceTree = ""; }; + 9AA90B6625CD451600BD5E8B /* Timestamp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Timestamp.h; sourceTree = ""; }; + 9AA90B6725CD451600BD5E8B /* BlockIoCrypto.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIoCrypto.h; sourceTree = ""; }; + 9AA90B6825CD451600BD5E8B /* SmartCardReader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmartCardReader.h; sourceTree = ""; }; + 9AA90B6925CD451600BD5E8B /* FirmwareVolumeBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolumeBlock.h; sourceTree = ""; }; + 9AA90B6A25CD451600BD5E8B /* HttpBootCallback.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HttpBootCallback.h; sourceTree = ""; }; + 9AA90B6B25CD451600BD5E8B /* SimpleTextIn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleTextIn.h; sourceTree = ""; }; + 9AA90B6C25CD451600BD5E8B /* MmIoTrapDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmIoTrapDispatch.h; sourceTree = ""; }; + 9AA90B6D25CD451600BD5E8B /* Hash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Hash.h; sourceTree = ""; }; + 9AA90B6E25CD451600BD5E8B /* VlanConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VlanConfig.h; sourceTree = ""; }; + 9AA90B6F25CD451600BD5E8B /* HiiFont.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiFont.h; sourceTree = ""; }; + 9AA90B7025CD451600BD5E8B /* SmmAccess2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmAccess2.h; sourceTree = ""; }; + 9AA90B7125CD451600BD5E8B /* UserCredential2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserCredential2.h; sourceTree = ""; }; + 9AA90B7225CD451600BD5E8B /* AcpiTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiTable.h; sourceTree = ""; }; + 9AA90B7325CD451600BD5E8B /* EdidOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdidOverride.h; sourceTree = ""; }; + 9AA90B7425CD451600BD5E8B /* I2cEnumerate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cEnumerate.h; sourceTree = ""; }; + 9AA90B7525CD451600BD5E8B /* BluetoothConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BluetoothConfig.h; sourceTree = ""; }; + 9AA90B7625CD451600BD5E8B /* BluetoothIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BluetoothIo.h; sourceTree = ""; }; + 9AA90B7725CD451600BD5E8B /* MmStandbyButtonDispatch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmStandbyButtonDispatch.h; sourceTree = ""; }; + 9AA90B7825CD451600BD5E8B /* Mtftp4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mtftp4.h; sourceTree = ""; }; + 9AA90B7925CD451600BD5E8B /* SmmIoTrapDispatch2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmIoTrapDispatch2.h; sourceTree = ""; }; + 9AA90B7A25CD451600BD5E8B /* SpiSmmHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SpiSmmHc.h; sourceTree = ""; }; + 9AA90B7B25CD451600BD5E8B /* Ebc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ebc.h; sourceTree = ""; }; + 9AA90B7C25CD451600BD5E8B /* DebugSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugSupport.h; sourceTree = ""; }; + 9AA90B7D25CD451600BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA90B7E25CD451600BD5E8B /* Eap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Eap.h; sourceTree = ""; }; + 9AA90B7F25CD451600BD5E8B /* AdapterInformation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AdapterInformation.h; sourceTree = ""; }; + 9AA90B8025CD451600BD5E8B /* SmmBase2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmBase2.h; sourceTree = ""; }; + 9AA90B8125CD451600BD5E8B /* SmmPciRootBridgeIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmPciRootBridgeIo.h; sourceTree = ""; }; + 9AA90B8225CD451600BD5E8B /* HttpUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HttpUtilities.h; sourceTree = ""; }; + 9AA90B8325CD451600BD5E8B /* LoadFile2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadFile2.h; sourceTree = ""; }; + 9AA90B8525CD451600BD5E8B /* PiFirmwareVolume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiFirmwareVolume.h; sourceTree = ""; }; + 9AA90B8625CD451600BD5E8B /* PiMmCis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiMmCis.h; sourceTree = ""; }; + 9AA90B8725CD451600BD5E8B /* PiDxeCis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiDxeCis.h; sourceTree = ""; }; + 9AA90B8825CD451600BD5E8B /* PiStatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiStatusCode.h; sourceTree = ""; }; + 9AA90B8925CD451600BD5E8B /* PiBootMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiBootMode.h; sourceTree = ""; }; + 9AA90B8A25CD451600BD5E8B /* PiHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiHob.h; sourceTree = ""; }; + 9AA90B8B25CD451600BD5E8B /* PiPeiCis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPeiCis.h; sourceTree = ""; }; + 9AA90B8C25CD451600BD5E8B /* PiSmmCis.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCis.h; sourceTree = ""; }; + 9AA90B8D25CD451600BD5E8B /* PiDependency.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiDependency.h; sourceTree = ""; }; + 9AA90B8E25CD451600BD5E8B /* PiS3BootScript.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiS3BootScript.h; sourceTree = ""; }; + 9AA90B8F25CD451600BD5E8B /* PiMultiPhase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiMultiPhase.h; sourceTree = ""; }; + 9AA90B9025CD451600BD5E8B /* PiFirmwareFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiFirmwareFile.h; sourceTree = ""; }; + 9AA90B9125CD451600BD5E8B /* PiI2c.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiI2c.h; sourceTree = ""; }; + 9AA90B9225CD451600BD5E8B /* PiSmm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmm.h; sourceTree = ""; }; + 9AA90B9525CD451600BD5E8B /* Microcode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Microcode.h; sourceTree = ""; }; + 9AA90B9625CD451600BD5E8B /* SmramSaveStateMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmramSaveStateMap.h; sourceTree = ""; }; + 9AA90B9825CD451600BD5E8B /* Pentium4Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pentium4Msr.h; sourceTree = ""; }; + 9AA90B9925CD451600BD5E8B /* GoldmontPlusMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GoldmontPlusMsr.h; sourceTree = ""; }; + 9AA90B9A25CD451600BD5E8B /* IvyBridgeMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IvyBridgeMsr.h; sourceTree = ""; }; + 9AA90B9B25CD451600BD5E8B /* BroadwellMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BroadwellMsr.h; sourceTree = ""; }; + 9AA90B9C25CD451600BD5E8B /* HaswellEMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HaswellEMsr.h; sourceTree = ""; }; + 9AA90B9D25CD451600BD5E8B /* XeonE7Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XeonE7Msr.h; sourceTree = ""; }; + 9AA90B9E25CD451600BD5E8B /* Core2Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Core2Msr.h; sourceTree = ""; }; + 9AA90B9F25CD451600BD5E8B /* NehalemMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NehalemMsr.h; sourceTree = ""; }; + 9AA90BA025CD451600BD5E8B /* SandyBridgeMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SandyBridgeMsr.h; sourceTree = ""; }; + 9AA90BA125CD451600BD5E8B /* P6Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = P6Msr.h; sourceTree = ""; }; + 9AA90BA225CD451600BD5E8B /* PentiumMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PentiumMsr.h; sourceTree = ""; }; + 9AA90BA325CD451600BD5E8B /* SilvermontMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SilvermontMsr.h; sourceTree = ""; }; + 9AA90BA425CD451600BD5E8B /* Xeon5600Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xeon5600Msr.h; sourceTree = ""; }; + 9AA90BA525CD451600BD5E8B /* SkylakeMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SkylakeMsr.h; sourceTree = ""; }; + 9AA90BA625CD451600BD5E8B /* CoreMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CoreMsr.h; sourceTree = ""; }; + 9AA90BA725CD451600BD5E8B /* XeonDMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XeonDMsr.h; sourceTree = ""; }; + 9AA90BA825CD451600BD5E8B /* XeonPhiMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XeonPhiMsr.h; sourceTree = ""; }; + 9AA90BA925CD451600BD5E8B /* PentiumMMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PentiumMMsr.h; sourceTree = ""; }; + 9AA90BAA25CD451600BD5E8B /* GoldmontMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GoldmontMsr.h; sourceTree = ""; }; + 9AA90BAB25CD451600BD5E8B /* HaswellMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HaswellMsr.h; sourceTree = ""; }; + 9AA90BAC25CD451600BD5E8B /* AtomMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtomMsr.h; sourceTree = ""; }; + 9AA90BAD25CD451600BD5E8B /* Cpuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cpuid.h; sourceTree = ""; }; + 9AA90BAE25CD451600BD5E8B /* StmStatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StmStatusCode.h; sourceTree = ""; }; + 9AA90BAF25CD451600BD5E8B /* StmResourceDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StmResourceDescriptor.h; sourceTree = ""; }; + 9AA90BB025CD451600BD5E8B /* LocalApic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LocalApic.h; sourceTree = ""; }; + 9AA90BB125CD451600BD5E8B /* StmApi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StmApi.h; sourceTree = ""; }; + 9AA90BB225CD451600BD5E8B /* ArchitecturalMsr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ArchitecturalMsr.h; sourceTree = ""; }; + 9AA90BB325CD451600BD5E8B /* Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Msr.h; sourceTree = ""; }; + 9AA90BB525CD451600BD5E8B /* Cpuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cpuid.h; sourceTree = ""; }; + 9AA90BB625CD451600BD5E8B /* Fam17Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Fam17Msr.h; sourceTree = ""; }; + 9AA90BB725CD451600BD5E8B /* Msr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Msr.h; sourceTree = ""; }; + 9AA90BB825CD451600BD5E8B /* PiDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiDxe.h; sourceTree = ""; }; + 9AA90BBA25CD451600BD5E8B /* MdePkgTokenSpace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MdePkgTokenSpace.h; sourceTree = ""; }; + 9AA90BBB25CD451600BD5E8B /* SmramMemoryReserve.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmramMemoryReserve.h; sourceTree = ""; }; + 9AA90BBC25CD451600BD5E8B /* FileInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileInfo.h; sourceTree = ""; }; + 9AA90BBD25CD451600BD5E8B /* SystemResourceTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SystemResourceTable.h; sourceTree = ""; }; + 9AA90BBE25CD451600BD5E8B /* AprioriFileName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AprioriFileName.h; sourceTree = ""; }; + 9AA90BBF25CD451600BD5E8B /* PropertiesTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PropertiesTable.h; sourceTree = ""; }; + 9AA90BC025CD451600BD5E8B /* MemoryAllocationHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryAllocationHob.h; sourceTree = ""; }; + 9AA90BC125CD451600BD5E8B /* EventGroup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EventGroup.h; sourceTree = ""; }; + 9AA90BC225CD451600BD5E8B /* FirmwareFileSystem3.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareFileSystem3.h; sourceTree = ""; }; + 9AA90BC325CD451600BD5E8B /* Cper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Cper.h; sourceTree = ""; }; + 9AA90BC425CD451600BD5E8B /* MemoryOverwriteControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryOverwriteControl.h; sourceTree = ""; }; + 9AA90BC525CD451600BD5E8B /* Gpt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Gpt.h; sourceTree = ""; }; + 9AA90BC625CD451600BD5E8B /* MemoryAttributesTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryAttributesTable.h; sourceTree = ""; }; + 9AA90BC725CD451600BD5E8B /* EventLegacyBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EventLegacyBios.h; sourceTree = ""; }; + 9AA90BC825CD451600BD5E8B /* FmpCapsule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FmpCapsule.h; sourceTree = ""; }; + 9AA90BC925CD451600BD5E8B /* FirmwareContentsSigned.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareContentsSigned.h; sourceTree = ""; }; + 9AA90BCA25CD451600BD5E8B /* Acpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Acpi.h; sourceTree = ""; }; + 9AA90BCB25CD451600BD5E8B /* Apriori.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Apriori.h; sourceTree = ""; }; + 9AA90BCC25CD451600BD5E8B /* DxeServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeServices.h; sourceTree = ""; }; + 9AA90BCD25CD451600BD5E8B /* Btt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Btt.h; sourceTree = ""; }; + 9AA90BCE25CD451600BD5E8B /* HobList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HobList.h; sourceTree = ""; }; + 9AA90BCF25CD451600BD5E8B /* GraphicsInfoHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GraphicsInfoHob.h; sourceTree = ""; }; + 9AA90BD025CD451600BD5E8B /* HiiFormMapMethodGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiFormMapMethodGuid.h; sourceTree = ""; }; + 9AA90BD125CD451600BD5E8B /* FileSystemVolumeLabelInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileSystemVolumeLabelInfo.h; sourceTree = ""; }; + 9AA90BD225CD451600BD5E8B /* FirmwareFileSystem2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareFileSystem2.h; sourceTree = ""; }; + 9AA90BD325CD451600BD5E8B /* StatusCodeDataTypeId.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeDataTypeId.h; sourceTree = ""; }; + 9AA90BD425CD451600BD5E8B /* DebugImageInfoTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugImageInfoTable.h; sourceTree = ""; }; + 9AA90BD525CD451600BD5E8B /* HiiKeyBoardLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiKeyBoardLayout.h; sourceTree = ""; }; + 9AA90BD625CD451600BD5E8B /* WinCertificate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WinCertificate.h; sourceTree = ""; }; + 9AA90BD725CD451600BD5E8B /* SmBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmBios.h; sourceTree = ""; }; + 9AA90BD825CD451600BD5E8B /* ImageAuthentication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ImageAuthentication.h; sourceTree = ""; }; + 9AA90BD925CD451600BD5E8B /* VectorHandoffTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VectorHandoffTable.h; sourceTree = ""; }; + 9AA90BDA25CD451600BD5E8B /* FileSystemInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileSystemInfo.h; sourceTree = ""; }; + 9AA90BDB25CD451600BD5E8B /* HardwareErrorVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HardwareErrorVariable.h; sourceTree = ""; }; + 9AA90BDC25CD451600BD5E8B /* Mps.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Mps.h; sourceTree = ""; }; + 9AA90BDD25CD451600BD5E8B /* PcAnsi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcAnsi.h; sourceTree = ""; }; + 9AA90BDE25CD451600BD5E8B /* GlobalVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GlobalVariable.h; sourceTree = ""; }; + 9AA90BDF25CD451600BD5E8B /* HiiPlatformSetupFormset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiPlatformSetupFormset.h; sourceTree = ""; }; + 9AA90BE025CD451600BD5E8B /* CapsuleReport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleReport.h; sourceTree = ""; }; + 9AA90BE225CD451600BD5E8B /* PeiCoreFvLocation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiCoreFvLocation.h; sourceTree = ""; }; + 9AA90BE325CD451600BD5E8B /* SecHobData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecHobData.h; sourceTree = ""; }; + 9AA90BE425CD451600BD5E8B /* VectorHandoffInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VectorHandoffInfo.h; sourceTree = ""; }; + 9AA90BE525CD451600BD5E8B /* ReadOnlyVariable2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReadOnlyVariable2.h; sourceTree = ""; }; + 9AA90BE625CD451600BD5E8B /* ReportStatusCodeHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeHandler.h; sourceTree = ""; }; + 9AA90BE725CD451600BD5E8B /* S3Resume2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3Resume2.h; sourceTree = ""; }; + 9AA90BE825CD451600BD5E8B /* MmControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmControl.h; sourceTree = ""; }; + 9AA90BE925CD451600BD5E8B /* Reset2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Reset2.h; sourceTree = ""; }; + 9AA90BEA25CD451600BD5E8B /* Security2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Security2.h; sourceTree = ""; }; + 9AA90BEB25CD451600BD5E8B /* MmAccess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MmAccess.h; sourceTree = ""; }; + 9AA90BEC25CD451600BD5E8B /* EndOfPeiPhase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EndOfPeiPhase.h; sourceTree = ""; }; + 9AA90BED25CD451600BD5E8B /* Smbus2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Smbus2.h; sourceTree = ""; }; + 9AA90BEE25CD451600BD5E8B /* BootInRecoveryMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootInRecoveryMode.h; sourceTree = ""; }; + 9AA90BEF25CD451600BD5E8B /* IsaHc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IsaHc.h; sourceTree = ""; }; + 9AA90BF025CD451600BD5E8B /* DxeIpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeIpl.h; sourceTree = ""; }; + 9AA90BF125CD451600BD5E8B /* GuidedSectionExtraction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuidedSectionExtraction.h; sourceTree = ""; }; + 9AA90BF225CD451600BD5E8B /* MemoryDiscovered.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryDiscovered.h; sourceTree = ""; }; + 9AA90BF325CD451600BD5E8B /* BlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIo.h; sourceTree = ""; }; + 9AA90BF425CD451600BD5E8B /* Pcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pcd.h; sourceTree = ""; }; + 9AA90BF525CD451600BD5E8B /* LoadImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadImage.h; sourceTree = ""; }; + 9AA90BF625CD451600BD5E8B /* FirmwareVolumeInfo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolumeInfo2.h; sourceTree = ""; }; + 9AA90BF725CD451600BD5E8B /* PiPcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPcd.h; sourceTree = ""; }; + 9AA90BF825CD451600BD5E8B /* Stall.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Stall.h; sourceTree = ""; }; + 9AA90BF925CD451600BD5E8B /* PciCfg2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCfg2.h; sourceTree = ""; }; + 9AA90BFA25CD451600BD5E8B /* Decompress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Decompress.h; sourceTree = ""; }; + 9AA90BFB25CD451600BD5E8B /* PiPcdInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPcdInfo.h; sourceTree = ""; }; + 9AA90BFC25CD451600BD5E8B /* MasterBootMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MasterBootMode.h; sourceTree = ""; }; + 9AA90BFD25CD451600BD5E8B /* Capsule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Capsule.h; sourceTree = ""; }; + 9AA90BFE25CD451600BD5E8B /* SuperIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SuperIo.h; sourceTree = ""; }; + 9AA90BFF25CD451600BD5E8B /* BlockIo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIo2.h; sourceTree = ""; }; + 9AA90C0025CD451600BD5E8B /* FirmwareVolumeInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolumeInfo.h; sourceTree = ""; }; + 9AA90C0125CD451600BD5E8B /* I2cMaster.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cMaster.h; sourceTree = ""; }; + 9AA90C0225CD451600BD5E8B /* RecoveryModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecoveryModule.h; sourceTree = ""; }; + 9AA90C0325CD451600BD5E8B /* SecPlatformInformation2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecPlatformInformation2.h; sourceTree = ""; }; + 9AA90C0425CD451600BD5E8B /* Graphics.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Graphics.h; sourceTree = ""; }; + 9AA90C0525CD451700BD5E8B /* MpServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MpServices.h; sourceTree = ""; }; + 9AA90C0625CD451700BD5E8B /* TemporaryRamSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TemporaryRamSupport.h; sourceTree = ""; }; + 9AA90C0725CD451700BD5E8B /* TemporaryRamDone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TemporaryRamDone.h; sourceTree = ""; }; + 9AA90C0825CD451700BD5E8B /* DeviceRecoveryModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceRecoveryModule.h; sourceTree = ""; }; + 9AA90C0925CD451700BD5E8B /* LoadFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadFile.h; sourceTree = ""; }; + 9AA90C0A25CD451700BD5E8B /* PcdInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcdInfo.h; sourceTree = ""; }; + 9AA90C0B25CD451700BD5E8B /* Reset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Reset.h; sourceTree = ""; }; + 9AA90C0C25CD451700BD5E8B /* StatusCode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCode.h; sourceTree = ""; }; + 9AA90C0D25CD451700BD5E8B /* SecPlatformInformation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecPlatformInformation.h; sourceTree = ""; }; + 9AA90C0E25CD451700BD5E8B /* CpuIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuIo.h; sourceTree = ""; }; + 9AA90C0F25CD451700BD5E8B /* FirmwareVolume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolume.h; sourceTree = ""; }; + 9AA90C1025CD451700BD5E8B /* Base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base.h; sourceTree = ""; }; + 9AA90C1325CD451700BD5E8B /* PeiServicesTablePointerLibIdt.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesTablePointerLibIdt.uni; sourceTree = ""; }; + 9AA90C1425CD451700BD5E8B /* PeiServicesTablePointerLibIdt.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesTablePointerLibIdt.inf; sourceTree = ""; }; + 9AA90C1525CD451700BD5E8B /* PeiServicesTablePointer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiServicesTablePointer.c; sourceTree = ""; }; + 9AA90C1725CD451700BD5E8B /* StandaloneMmServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StandaloneMmServicesTableLib.c; sourceTree = ""; }; + 9AA90C1825CD451700BD5E8B /* StandaloneMmServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = StandaloneMmServicesTableLib.inf; sourceTree = ""; }; + 9AA90C1925CD451700BD5E8B /* StandaloneMmServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StandaloneMmServicesTableLib.uni; sourceTree = ""; }; + 9AA90C1B25CD451700BD5E8B /* PeiPciLibPciCfg2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPciLibPciCfg2.uni; sourceTree = ""; }; + 9AA90C1C25CD451700BD5E8B /* PeiPciLibPciCfg2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPciLibPciCfg2.inf; sourceTree = ""; }; + 9AA90C1D25CD451700BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA90C1F25CD451700BD5E8B /* SmbusLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbusLib.c; sourceTree = ""; }; + 9AA90C2025CD451700BD5E8B /* InternalSmbusLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalSmbusLib.h; sourceTree = ""; }; + 9AA90C2125CD451700BD5E8B /* PeiSmbusLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiSmbusLib.c; sourceTree = ""; }; + 9AA90C2225CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiSmbusLibSmbus2Ppi.inf; sourceTree = ""; }; + 9AA90C2325CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiSmbusLibSmbus2Ppi.uni; sourceTree = ""; }; + 9AA90C2525CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseDebugPrintErrorLevelLib.c; sourceTree = ""; }; + 9AA90C2625CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugPrintErrorLevelLib.inf; sourceTree = ""; }; + 9AA90C2725CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugPrintErrorLevelLib.uni; sourceTree = ""; }; + 9AA90C2925CD451700BD5E8B /* BaseCacheMaintenanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseCacheMaintenanceLib.inf; sourceTree = ""; }; + 9AA90C2A25CD451700BD5E8B /* BaseCacheMaintenanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseCacheMaintenanceLib.uni; sourceTree = ""; }; + 9AA90C2B25CD451700BD5E8B /* X86Cache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86Cache.c; sourceTree = ""; }; + 9AA90C2C25CD451700BD5E8B /* ArmCache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ArmCache.c; sourceTree = ""; }; + 9AA90C2D25CD451700BD5E8B /* EbcCache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcCache.c; sourceTree = ""; }; + 9AA90C2F25CD451700BD5E8B /* IoLibMmioBuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibMmioBuffer.c; sourceTree = ""; }; + 9AA90C3025CD451700BD5E8B /* IoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLib.c; sourceTree = ""; }; + 9AA90C3125CD451700BD5E8B /* IoHighLevel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoHighLevel.c; sourceTree = ""; }; + 9AA90C3225CD451700BD5E8B /* DxeIoLibCpuIo2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIoLibCpuIo2.uni; sourceTree = ""; }; + 9AA90C3325CD451700BD5E8B /* DxeCpuIo2LibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCpuIo2LibInternal.h; sourceTree = ""; }; + 9AA90C3425CD451700BD5E8B /* DxeIoLibCpuIo2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIoLibCpuIo2.inf; sourceTree = ""; }; + 9AA90C3625CD451700BD5E8B /* BasePciLibCf8.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciLibCf8.inf; sourceTree = ""; }; + 9AA90C3725CD451700BD5E8B /* BasePciLibCf8.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciLibCf8.uni; sourceTree = ""; }; + 9AA90C3825CD451700BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA90C3A25CD451700BD5E8B /* PeiServicesTablePointerLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesTablePointerLib.uni; sourceTree = ""; }; + 9AA90C3B25CD451700BD5E8B /* PeiServicesTablePointerLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesTablePointerLib.inf; sourceTree = ""; }; + 9AA90C3C25CD451700BD5E8B /* PeiServicesTablePointer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiServicesTablePointer.c; sourceTree = ""; }; + 9AA90C3E25CD451700BD5E8B /* BaseDebugLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugLibNull.inf; sourceTree = ""; }; + 9AA90C3F25CD451700BD5E8B /* BaseDebugLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugLibNull.uni; sourceTree = ""; }; + 9AA90C4025CD451700BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA90C4225CD451700BD5E8B /* PciSegmentLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciSegmentLib.h; sourceTree = ""; }; + 9AA90C4325CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiPciSegmentLibPciRootBridgeIo.inf; sourceTree = ""; }; + 9AA90C4425CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiPciSegmentLibPciRootBridgeIo.uni; sourceTree = ""; }; + 9AA90C4525CD451700BD5E8B /* PciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciSegmentLib.c; sourceTree = ""; }; + 9AA90C4725CD451700BD5E8B /* PeiServicesLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesLib.inf; sourceTree = ""; }; + 9AA90C4825CD451700BD5E8B /* PeiServicesLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiServicesLib.c; sourceTree = ""; }; + 9AA90C4925CD451700BD5E8B /* PeiServicesLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiServicesLib.uni; sourceTree = ""; }; + 9AA90C4B25CD451700BD5E8B /* BasePciExpressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciExpressLib.uni; sourceTree = ""; }; + 9AA90C4C25CD451700BD5E8B /* BasePciExpressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciExpressLib.inf; sourceTree = ""; }; + 9AA90C4D25CD451700BD5E8B /* PciExpressLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciExpressLib.c; sourceTree = ""; }; + 9AA90C4F25CD451700BD5E8B /* BaseS3SmbusLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3SmbusLib.inf; sourceTree = ""; }; + 9AA90C5025CD451700BD5E8B /* BaseS3SmbusLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3SmbusLib.uni; sourceTree = ""; }; + 9AA90C5125CD451700BD5E8B /* S3SmbusLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3SmbusLib.c; sourceTree = ""; }; + 9AA90C5325CD451700BD5E8B /* Allocate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Allocate.c; sourceTree = ""; }; + 9AA90C5425CD451700BD5E8B /* DxeServicesLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeServicesLib.c; sourceTree = ""; }; + 9AA90C5625CD451700BD5E8B /* Allocate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Allocate.c; sourceTree = ""; }; + 9AA90C5725CD451700BD5E8B /* DxeServicesLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeServicesLib.uni; sourceTree = ""; }; + 9AA90C5825CD451700BD5E8B /* DxeServicesLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeServicesLib.inf; sourceTree = ""; }; + 9AA90C5A25CD451700BD5E8B /* X86TimerLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86TimerLib.c; sourceTree = ""; }; + 9AA90C5B25CD451700BD5E8B /* SecPeiDxeTimerLibCpu.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SecPeiDxeTimerLibCpu.inf; sourceTree = ""; }; + 9AA90C5C25CD451700BD5E8B /* SecPeiDxeTimerLibCpu.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SecPeiDxeTimerLibCpu.uni; sourceTree = ""; }; + 9AA90C5E25CD451700BD5E8B /* StandaloneMmDriverEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = StandaloneMmDriverEntryPoint.inf; sourceTree = ""; }; + 9AA90C5F25CD451700BD5E8B /* StandaloneMmDriverEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StandaloneMmDriverEntryPoint.uni; sourceTree = ""; }; + 9AA90C6025CD451700BD5E8B /* StandaloneMmDriverEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StandaloneMmDriverEntryPoint.c; sourceTree = ""; }; + 9AA90C6225CD451700BD5E8B /* SmmPciLibPciRootBridgeIo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPciLibPciRootBridgeIo.uni; sourceTree = ""; }; + 9AA90C6325CD451700BD5E8B /* SmmPciLibPciRootBridgeIo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPciLibPciRootBridgeIo.inf; sourceTree = ""; }; + 9AA90C6425CD451700BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA90C6625CD451700BD5E8B /* SwapBytes32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwapBytes32.c; sourceTree = ""; }; + 9AA90C6725CD451700BD5E8B /* X86ReadIdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86ReadIdtr.c; sourceTree = ""; }; + 9AA90C6925CD451700BD5E8B /* CpuBreakpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuBreakpoint.c; sourceTree = ""; }; + 9AA90C6A25CD451700BD5E8B /* SwitchStack.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwitchStack.c; sourceTree = ""; }; + 9AA90C6B25CD451700BD5E8B /* SetJumpLongJump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetJumpLongJump.c; sourceTree = ""; }; + 9AA90C6C25CD451700BD5E8B /* SpeculationBarrier.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SpeculationBarrier.c; sourceTree = ""; }; + 9AA90C6D25CD451700BD5E8B /* BaseLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseLibInternals.h; sourceTree = ""; }; + 9AA90C6E25CD451700BD5E8B /* DivS64x64Remainder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivS64x64Remainder.c; sourceTree = ""; }; + 9AA90C6F25CD451700BD5E8B /* X86WriteIdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86WriteIdtr.c; sourceTree = ""; }; + 9AA90C7025CD451700BD5E8B /* FilePaths.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FilePaths.c; sourceTree = ""; }; + 9AA90C7125CD451700BD5E8B /* BaseLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseLib.uni; sourceTree = ""; }; + 9AA90C7225CD451700BD5E8B /* X86FxRestore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86FxRestore.c; sourceTree = ""; }; + 9AA90C7325CD451700BD5E8B /* RRotU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RRotU64.c; sourceTree = ""; }; + 9AA90C7425CD451700BD5E8B /* LongJump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LongJump.c; sourceTree = ""; }; + 9AA90C7525CD451700BD5E8B /* Cpu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Cpu.c; sourceTree = ""; }; + 9AA90C7625CD451700BD5E8B /* BaseLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseLib.inf; sourceTree = ""; }; + 9AA90C7725CD451700BD5E8B /* GetPowerOfTwo64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GetPowerOfTwo64.c; sourceTree = ""; }; + 9AA90C7925CD451700BD5E8B /* WriteMm4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm4.nasm; sourceTree = ""; }; + 9AA90C7A25CD451700BD5E8B /* WriteDr6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr6.nasm; sourceTree = ""; }; + 9AA90C7B25CD451700BD5E8B /* Nasm.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; path = Nasm.inc; sourceTree = ""; }; + 9AA90C7C25CD451700BD5E8B /* WriteTr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteTr.nasm; sourceTree = ""; }; + 9AA90C7D25CD451700BD5E8B /* WriteCr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr4.nasm; sourceTree = ""; }; + 9AA90C7E25CD451700BD5E8B /* Mwait.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Mwait.nasm; sourceTree = ""; }; + 9AA90C7F25CD451700BD5E8B /* ReadFs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadFs.nasm; sourceTree = ""; }; + 9AA90C8025CD451700BD5E8B /* ReadDs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDs.nasm; sourceTree = ""; }; + 9AA90C8125CD451700BD5E8B /* FxRestore.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FxRestore.nasm; sourceTree = ""; }; + 9AA90C8225CD451700BD5E8B /* ReadMm4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm4.nasm; sourceTree = ""; }; + 9AA90C8325CD451700BD5E8B /* ReadDr6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr6.nasm; sourceTree = ""; }; + 9AA90C8425CD451700BD5E8B /* CpuPause.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuPause.nasm; sourceTree = ""; }; + 9AA90C8525CD451700BD5E8B /* ReadCr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr4.nasm; sourceTree = ""; }; + 9AA90C8625CD451700BD5E8B /* WriteLdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteLdtr.nasm; sourceTree = ""; }; + 9AA90C8725CD451700BD5E8B /* ReadDr7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr7.nasm; sourceTree = ""; }; + 9AA90C8825CD451700BD5E8B /* SwitchStack.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SwitchStack.nasm; sourceTree = ""; }; + 9AA90C8925CD451700BD5E8B /* ReadMm5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm5.nasm; sourceTree = ""; }; + 9AA90C8A25CD451700BD5E8B /* WriteMsr64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMsr64.nasm; sourceTree = ""; }; + 9AA90C8B25CD451700BD5E8B /* ReadIdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadIdtr.nasm; sourceTree = ""; }; + 9AA90C8C25CD451700BD5E8B /* WriteDr7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr7.nasm; sourceTree = ""; }; + 9AA90C8D25CD451700BD5E8B /* WriteMm5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm5.nasm; sourceTree = ""; }; + 9AA90C8E25CD451700BD5E8B /* ReadMm2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm2.nasm; sourceTree = ""; }; + 9AA90C8F25CD451700BD5E8B /* ReadDr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr0.nasm; sourceTree = ""; }; + 9AA90C9025CD451700BD5E8B /* ReadEs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadEs.nasm; sourceTree = ""; }; + 9AA90C9125CD451700BD5E8B /* ReadCr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr2.nasm; sourceTree = ""; }; + 9AA90C9225CD451700BD5E8B /* EnableCache.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableCache.nasm; sourceTree = ""; }; + 9AA90C9325CD451700BD5E8B /* CpuIdEx.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuIdEx.nasm; sourceTree = ""; }; + 9AA90C9425CD451700BD5E8B /* SetJump.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetJump.nasm; sourceTree = ""; }; + 9AA90C9525CD451700BD5E8B /* WriteMm2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm2.nasm; sourceTree = ""; }; + 9AA90C9625CD451700BD5E8B /* EnableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableInterrupts.nasm; sourceTree = ""; }; + 9AA90C9725CD451700BD5E8B /* RdRand.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RdRand.nasm; sourceTree = ""; }; + 9AA90C9825CD451700BD5E8B /* WriteDr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr0.nasm; sourceTree = ""; }; + 9AA90C9925CD451700BD5E8B /* DisableCache.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisableCache.nasm; sourceTree = ""; }; + 9AA90C9A25CD451700BD5E8B /* WriteCr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr2.nasm; sourceTree = ""; }; + 9AA90C9B25CD451700BD5E8B /* ReadGs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadGs.nasm; sourceTree = ""; }; + 9AA90C9C25CD451700BD5E8B /* WriteGdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteGdtr.nasm; sourceTree = ""; }; + 9AA90C9D25CD451700BD5E8B /* ReadCs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCs.nasm; sourceTree = ""; }; + 9AA90C9E25CD451700BD5E8B /* EnableDisableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableDisableInterrupts.nasm; sourceTree = ""; }; + 9AA90C9F25CD451700BD5E8B /* WriteCr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr3.nasm; sourceTree = ""; }; + 9AA90CA025CD451700BD5E8B /* WriteDr1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr1.nasm; sourceTree = ""; }; + 9AA90CA125CD451700BD5E8B /* ReadMsr64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMsr64.c; sourceTree = ""; }; + 9AA90CA225CD451700BD5E8B /* WriteMm3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm3.nasm; sourceTree = ""; }; + 9AA90CA325CD451700BD5E8B /* Thunk16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Thunk16.nasm; sourceTree = ""; }; + 9AA90CA425CD451700BD5E8B /* ReadCr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr3.nasm; sourceTree = ""; }; + 9AA90CA525CD451700BD5E8B /* ReadDr1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr1.nasm; sourceTree = ""; }; + 9AA90CA625CD451700BD5E8B /* ReadMm3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm3.nasm; sourceTree = ""; }; + 9AA90CA725CD451700BD5E8B /* ReadCr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr0.nasm; sourceTree = ""; }; + 9AA90CA825CD451700BD5E8B /* DisableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisableInterrupts.nasm; sourceTree = ""; }; + 9AA90CA925CD451700BD5E8B /* ReadDr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr2.nasm; sourceTree = ""; }; + 9AA90CAA25CD451700BD5E8B /* Lfence.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Lfence.nasm; sourceTree = ""; }; + 9AA90CAB25CD451700BD5E8B /* ReadMm0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm0.nasm; sourceTree = ""; }; + 9AA90CAC25CD451700BD5E8B /* DisablePaging64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisablePaging64.nasm; sourceTree = ""; }; + 9AA90CAD25CD451700BD5E8B /* WriteCr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr0.nasm; sourceTree = ""; }; + 9AA90CAE25CD451700BD5E8B /* WriteDr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr2.nasm; sourceTree = ""; }; + 9AA90CAF25CD451700BD5E8B /* WriteMm0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm0.nasm; sourceTree = ""; }; + 9AA90CB025CD451700BD5E8B /* GccInline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GccInline.c; sourceTree = ""; }; + 9AA90CB125CD451700BD5E8B /* CpuBreakpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuBreakpoint.c; sourceTree = ""; }; + 9AA90CB225CD451700BD5E8B /* WriteMm1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm1.nasm; sourceTree = ""; }; + 9AA90CB325CD451700BD5E8B /* ReadTr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadTr.nasm; sourceTree = ""; }; + 9AA90CB425CD451700BD5E8B /* WriteDr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr3.nasm; sourceTree = ""; }; + 9AA90CB525CD451700BD5E8B /* ReadMm1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm1.nasm; sourceTree = ""; }; + 9AA90CB625CD451700BD5E8B /* ReadDr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr3.nasm; sourceTree = ""; }; + 9AA90CB725CD451700BD5E8B /* CpuBreakpoint.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuBreakpoint.nasm; sourceTree = ""; }; + 9AA90CB825CD451700BD5E8B /* Invd.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Invd.nasm; sourceTree = ""; }; + 9AA90CB925CD451700BD5E8B /* LongJump.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = LongJump.nasm; sourceTree = ""; }; + 9AA90CBA25CD451700BD5E8B /* ReadGdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadGdtr.nasm; sourceTree = ""; }; + 9AA90CBB25CD451700BD5E8B /* Wbinvd.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Wbinvd.nasm; sourceTree = ""; }; + 9AA90CBC25CD451700BD5E8B /* ReadEflags.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadEflags.nasm; sourceTree = ""; }; + 9AA90CBD25CD451700BD5E8B /* WriteMsr64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMsr64.c; sourceTree = ""; }; + 9AA90CBE25CD451700BD5E8B /* Non-existing.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "Non-existing.c"; sourceTree = ""; }; + 9AA90CBF25CD451700BD5E8B /* WriteDr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr4.nasm; sourceTree = ""; }; + 9AA90CC025CD451700BD5E8B /* FlushCacheLine.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FlushCacheLine.nasm; sourceTree = ""; }; + 9AA90CC125CD451700BD5E8B /* WriteMm6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm6.nasm; sourceTree = ""; }; + 9AA90CC225CD451700BD5E8B /* ReadLdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadLdtr.nasm; sourceTree = ""; }; + 9AA90CC325CD451700BD5E8B /* WriteIdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteIdtr.nasm; sourceTree = ""; }; + 9AA90CC425CD451700BD5E8B /* FxSave.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FxSave.nasm; sourceTree = ""; }; + 9AA90CC525CD451700BD5E8B /* Monitor.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Monitor.nasm; sourceTree = ""; }; + 9AA90CC625CD451700BD5E8B /* ReadDr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr4.nasm; sourceTree = ""; }; + 9AA90CC725CD451700BD5E8B /* ReadMm6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm6.nasm; sourceTree = ""; }; + 9AA90CC825CD451700BD5E8B /* ReadMsr64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMsr64.nasm; sourceTree = ""; }; + 9AA90CC925CD451700BD5E8B /* ReadMm7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm7.nasm; sourceTree = ""; }; + 9AA90CCA25CD451700BD5E8B /* ReadDr5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr5.nasm; sourceTree = ""; }; + 9AA90CCB25CD451700BD5E8B /* ReadSs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadSs.nasm; sourceTree = ""; }; + 9AA90CCC25CD451700BD5E8B /* WriteMm7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm7.nasm; sourceTree = ""; }; + 9AA90CCD25CD451700BD5E8B /* CpuId.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuId.nasm; sourceTree = ""; }; + 9AA90CCE25CD451700BD5E8B /* WriteDr5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr5.nasm; sourceTree = ""; }; + 9AA90CCF25CD451700BD5E8B /* ReadPmc.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadPmc.nasm; sourceTree = ""; }; + 9AA90CD025CD451700BD5E8B /* ReadTsc.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadTsc.nasm; sourceTree = ""; }; + 9AA90CD125CD451700BD5E8B /* X86Msr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86Msr.c; sourceTree = ""; }; + 9AA90CD225CD451700BD5E8B /* DivU64x64Remainder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivU64x64Remainder.c; sourceTree = ""; }; + 9AA90CD325CD451700BD5E8B /* X86Thunk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86Thunk.c; sourceTree = ""; }; + 9AA90CD425CD451700BD5E8B /* CpuDeadLoop.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuDeadLoop.c; sourceTree = ""; }; + 9AA90CD525CD451700BD5E8B /* LowBitSet64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LowBitSet64.c; sourceTree = ""; }; + 9AA90CD625CD451700BD5E8B /* LRotU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LRotU64.c; sourceTree = ""; }; + 9AA90CD725CD451700BD5E8B /* X86PatchInstruction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86PatchInstruction.c; sourceTree = ""; }; + 9AA90CD825CD451700BD5E8B /* X86FxSave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86FxSave.c; sourceTree = ""; }; + 9AA90CD925CD451700BD5E8B /* X86GetInterruptState.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86GetInterruptState.c; sourceTree = ""; }; + 9AA90CDA25CD451700BD5E8B /* CheckSum.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CheckSum.c; sourceTree = ""; }; + 9AA90CDB25CD451700BD5E8B /* MultU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MultU64x32.c; sourceTree = ""; }; + 9AA90CDC25CD451700BD5E8B /* String.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = String.c; sourceTree = ""; }; + 9AA90CDD25CD451700BD5E8B /* X86DisablePaging32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86DisablePaging32.c; sourceTree = ""; }; + 9AA90CDE25CD451700BD5E8B /* BitField.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BitField.c; sourceTree = ""; }; + 9AA90CDF25CD451700BD5E8B /* X86EnablePaging64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86EnablePaging64.c; sourceTree = ""; }; + 9AA90CE025CD451700BD5E8B /* HighBitSet64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HighBitSet64.c; sourceTree = ""; }; + 9AA90CE125CD451700BD5E8B /* LShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LShiftU64.c; sourceTree = ""; }; + 9AA90CE225CD451700BD5E8B /* SafeString.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SafeString.c; sourceTree = ""; }; + 9AA90CE325CD451700BD5E8B /* MultS64x64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MultS64x64.c; sourceTree = ""; }; + 9AA90CE425CD451700BD5E8B /* Unaligned.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Unaligned.c; sourceTree = ""; }; + 9AA90CE625CD451700BD5E8B /* EnablePaging32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnablePaging32.c; sourceTree = ""; }; + 9AA90CE725CD451700BD5E8B /* WriteMm4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm4.nasm; sourceTree = ""; }; + 9AA90CE825CD451700BD5E8B /* WriteDr3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr3.c; sourceTree = ""; }; + 9AA90CE925CD451700BD5E8B /* ReadGdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadGdtr.c; sourceTree = ""; }; + 9AA90CEA25CD451700BD5E8B /* WriteDr6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr6.nasm; sourceTree = ""; }; + 9AA90CEB25CD451700BD5E8B /* WriteTr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteTr.nasm; sourceTree = ""; }; + 9AA90CEC25CD451700BD5E8B /* WriteCr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr4.nasm; sourceTree = ""; }; + 9AA90CED25CD451700BD5E8B /* ReadDr2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr2.c; sourceTree = ""; }; + 9AA90CEE25CD451700BD5E8B /* Mwait.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Mwait.nasm; sourceTree = ""; }; + 9AA90CEF25CD451700BD5E8B /* ReadFs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadFs.nasm; sourceTree = ""; }; + 9AA90CF025CD451700BD5E8B /* ReadDs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDs.nasm; sourceTree = ""; }; + 9AA90CF125CD451700BD5E8B /* FxRestore.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FxRestore.nasm; sourceTree = ""; }; + 9AA90CF225CD451700BD5E8B /* ReadSs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadSs.c; sourceTree = ""; }; + 9AA90CF325CD451700BD5E8B /* ReadMm4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm4.nasm; sourceTree = ""; }; + 9AA90CF425CD451700BD5E8B /* DivS64x64Remainder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivS64x64Remainder.c; sourceTree = ""; }; + 9AA90CF525CD451700BD5E8B /* Monitor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Monitor.c; sourceTree = ""; }; + 9AA90CF625CD451700BD5E8B /* ReadDr6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr6.nasm; sourceTree = ""; }; + 9AA90CF725CD451700BD5E8B /* WriteGdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteGdtr.c; sourceTree = ""; }; + 9AA90CF825CD451700BD5E8B /* CpuPause.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuPause.nasm; sourceTree = ""; }; + 9AA90CF925CD451700BD5E8B /* ReadDr6.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr6.c; sourceTree = ""; }; + 9AA90CFA25CD451700BD5E8B /* ReadPmc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadPmc.c; sourceTree = ""; }; + 9AA90CFB25CD451700BD5E8B /* Wbinvd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Wbinvd.c; sourceTree = ""; }; + 9AA90CFC25CD451700BD5E8B /* DisablePaging32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DisablePaging32.c; sourceTree = ""; }; + 9AA90CFD25CD451700BD5E8B /* RShiftU64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RShiftU64.nasm; sourceTree = ""; }; + 9AA90CFE25CD451700BD5E8B /* ReadCr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr4.nasm; sourceTree = ""; }; + 9AA90CFF25CD451700BD5E8B /* Invd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Invd.c; sourceTree = ""; }; + 9AA90D0025CD451700BD5E8B /* WriteDr7.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr7.c; sourceTree = ""; }; + 9AA90D0125CD451700BD5E8B /* WriteMm7.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm7.c; sourceTree = ""; }; + 9AA90D0225CD451700BD5E8B /* RRotU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RRotU64.c; sourceTree = ""; }; + 9AA90D0325CD451700BD5E8B /* ReadCr2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadCr2.c; sourceTree = ""; }; + 9AA90D0425CD451700BD5E8B /* LShiftU64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = LShiftU64.nasm; sourceTree = ""; }; + 9AA90D0525CD451700BD5E8B /* ReadTr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadTr.c; sourceTree = ""; }; + 9AA90D0625CD451700BD5E8B /* ReadMm6.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm6.c; sourceTree = ""; }; + 9AA90D0725CD451700BD5E8B /* WriteLdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteLdtr.nasm; sourceTree = ""; }; + 9AA90D0825CD451700BD5E8B /* ReadDr7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr7.nasm; sourceTree = ""; }; + 9AA90D0925CD451700BD5E8B /* ReadMm5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm5.nasm; sourceTree = ""; }; + 9AA90D0A25CD451700BD5E8B /* WriteCr3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteCr3.c; sourceTree = ""; }; + 9AA90D0B25CD451700BD5E8B /* WriteMsr64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMsr64.nasm; sourceTree = ""; }; + 9AA90D0C25CD451700BD5E8B /* CpuPause.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuPause.c; sourceTree = ""; }; + 9AA90D0D25CD451700BD5E8B /* ReadMm2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm2.c; sourceTree = ""; }; + 9AA90D0E25CD451700BD5E8B /* ReadIdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadIdtr.nasm; sourceTree = ""; }; + 9AA90D0F25CD451700BD5E8B /* WriteDr7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr7.nasm; sourceTree = ""; }; + 9AA90D1025CD451700BD5E8B /* CpuIdEx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuIdEx.c; sourceTree = ""; }; + 9AA90D1125CD451700BD5E8B /* WriteMm3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm3.c; sourceTree = ""; }; + 9AA90D1225CD451700BD5E8B /* WriteMm5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm5.nasm; sourceTree = ""; }; + 9AA90D1325CD451700BD5E8B /* ReadDr1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr1.c; sourceTree = ""; }; + 9AA90D1425CD451700BD5E8B /* ReadMm2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm2.nasm; sourceTree = ""; }; + 9AA90D1525CD451700BD5E8B /* ReadDr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr0.nasm; sourceTree = ""; }; + 9AA90D1625CD451700BD5E8B /* ReadEs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadEs.nasm; sourceTree = ""; }; + 9AA90D1725CD451700BD5E8B /* ReadEs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadEs.c; sourceTree = ""; }; + 9AA90D1825CD451700BD5E8B /* FlushCacheLine.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FlushCacheLine.c; sourceTree = ""; }; + 9AA90D1925CD451700BD5E8B /* ReadCr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr2.nasm; sourceTree = ""; }; + 9AA90D1A25CD451700BD5E8B /* WriteDr0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr0.c; sourceTree = ""; }; + 9AA90D1B25CD451700BD5E8B /* DisableInterrupts.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DisableInterrupts.c; sourceTree = ""; }; + 9AA90D1C25CD451700BD5E8B /* EnableCache.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableCache.nasm; sourceTree = ""; }; + 9AA90D1D25CD451700BD5E8B /* CpuIdEx.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuIdEx.nasm; sourceTree = ""; }; + 9AA90D1E25CD451700BD5E8B /* SetJump.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetJump.nasm; sourceTree = ""; }; + 9AA90D1F25CD451700BD5E8B /* WriteMm2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm2.nasm; sourceTree = ""; }; + 9AA90D2025CD451700BD5E8B /* EnableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableInterrupts.nasm; sourceTree = ""; }; + 9AA90D2125CD451700BD5E8B /* RdRand.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RdRand.nasm; sourceTree = ""; }; + 9AA90D2225CD451700BD5E8B /* WriteDr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr0.nasm; sourceTree = ""; }; + 9AA90D2325CD451700BD5E8B /* DisableCache.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisableCache.nasm; sourceTree = ""; }; + 9AA90D2425CD451700BD5E8B /* LRotU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LRotU64.c; sourceTree = ""; }; + 9AA90D2525CD451700BD5E8B /* WriteDr4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr4.c; sourceTree = ""; }; + 9AA90D2625CD451700BD5E8B /* WriteCr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr2.nasm; sourceTree = ""; }; + 9AA90D2725CD451700BD5E8B /* ReadGs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadGs.nasm; sourceTree = ""; }; + 9AA90D2825CD451700BD5E8B /* WriteGdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteGdtr.nasm; sourceTree = ""; }; + 9AA90D2925CD451700BD5E8B /* ReadDr5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr5.c; sourceTree = ""; }; + 9AA90D2A25CD451700BD5E8B /* EnableCache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnableCache.c; sourceTree = ""; }; + 9AA90D2B25CD451700BD5E8B /* ReadMm5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm5.c; sourceTree = ""; }; + 9AA90D2C25CD451700BD5E8B /* ReadCs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCs.nasm; sourceTree = ""; }; + 9AA90D2D25CD451700BD5E8B /* EnableInterrupts.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnableInterrupts.c; sourceTree = ""; }; + 9AA90D2E25CD451700BD5E8B /* WriteCr0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteCr0.c; sourceTree = ""; }; + 9AA90D2F25CD451700BD5E8B /* EnableDisableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnableDisableInterrupts.nasm; sourceTree = ""; }; + 9AA90D3025CD451700BD5E8B /* MultU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MultU64x32.c; sourceTree = ""; }; + 9AA90D3125CD451700BD5E8B /* WriteCr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr3.nasm; sourceTree = ""; }; + 9AA90D3225CD451700BD5E8B /* DivU64x64Remainder.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DivU64x64Remainder.nasm; sourceTree = ""; }; + 9AA90D3325CD451700BD5E8B /* WriteMm4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm4.c; sourceTree = ""; }; + 9AA90D3425CD451700BD5E8B /* WriteDr1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr1.nasm; sourceTree = ""; }; + 9AA90D3525CD451700BD5E8B /* WriteLdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteLdtr.c; sourceTree = ""; }; + 9AA90D3625CD451700BD5E8B /* ReadMsr64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMsr64.c; sourceTree = ""; }; + 9AA90D3725CD451700BD5E8B /* WriteMm3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm3.nasm; sourceTree = ""; }; + 9AA90D3825CD451700BD5E8B /* Thunk16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Thunk16.nasm; sourceTree = ""; }; + 9AA90D3925CD451700BD5E8B /* ReadCr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr3.nasm; sourceTree = ""; }; + 9AA90D3A25CD451700BD5E8B /* WriteMm0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm0.c; sourceTree = ""; }; + 9AA90D3B25CD451700BD5E8B /* ReadDs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDs.c; sourceTree = ""; }; + 9AA90D3C25CD451700BD5E8B /* FxSave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FxSave.c; sourceTree = ""; }; + 9AA90D3D25CD451700BD5E8B /* WriteCr4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteCr4.c; sourceTree = ""; }; + 9AA90D3E25CD451700BD5E8B /* ReadDr1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr1.nasm; sourceTree = ""; }; + 9AA90D3F25CD451700BD5E8B /* ReadMm1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm1.c; sourceTree = ""; }; + 9AA90D4025CD451700BD5E8B /* ReadMm3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm3.nasm; sourceTree = ""; }; + 9AA90D4125CD451700BD5E8B /* ReadLdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadLdtr.c; sourceTree = ""; }; + 9AA90D4225CD451700BD5E8B /* ARShiftU64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ARShiftU64.nasm; sourceTree = ""; }; + 9AA90D4325CD451700BD5E8B /* LShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LShiftU64.c; sourceTree = ""; }; + 9AA90D4425CD451700BD5E8B /* ReadCr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadCr0.nasm; sourceTree = ""; }; + 9AA90D4525CD451700BD5E8B /* ReadDr0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr0.c; sourceTree = ""; }; + 9AA90D4625CD451700BD5E8B /* DisableInterrupts.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisableInterrupts.nasm; sourceTree = ""; }; + 9AA90D4725CD451700BD5E8B /* SwapBytes64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SwapBytes64.nasm; sourceTree = ""; }; + 9AA90D4825CD451700BD5E8B /* ReadCs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadCs.c; sourceTree = ""; }; + 9AA90D4925CD451700BD5E8B /* ReadDr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr2.nasm; sourceTree = ""; }; + 9AA90D4A25CD451700BD5E8B /* Lfence.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Lfence.nasm; sourceTree = ""; }; + 9AA90D4B25CD451700BD5E8B /* ReadMm0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm0.nasm; sourceTree = ""; }; + 9AA90D4C25CD451700BD5E8B /* WriteDr1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr1.c; sourceTree = ""; }; + 9AA90D4D25CD451700BD5E8B /* MultU64x64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = MultU64x64.nasm; sourceTree = ""; }; + 9AA90D4E25CD451700BD5E8B /* WriteDr5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr5.c; sourceTree = ""; }; + 9AA90D4F25CD451700BD5E8B /* LRotU64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = LRotU64.nasm; sourceTree = ""; }; + 9AA90D5025CD451700BD5E8B /* Mwait.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Mwait.c; sourceTree = ""; }; + 9AA90D5125CD451700BD5E8B /* WriteCr0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteCr0.nasm; sourceTree = ""; }; + 9AA90D5225CD451700BD5E8B /* RRotU64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RRotU64.nasm; sourceTree = ""; }; + 9AA90D5325CD451700BD5E8B /* ReadDr4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr4.c; sourceTree = ""; }; + 9AA90D5425CD451700BD5E8B /* ReadGs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadGs.c; sourceTree = ""; }; + 9AA90D5525CD451700BD5E8B /* WriteDr2.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr2.nasm; sourceTree = ""; }; + 9AA90D5625CD451700BD5E8B /* WriteMm0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm0.nasm; sourceTree = ""; }; + 9AA90D5725CD451700BD5E8B /* GccInline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GccInline.c; sourceTree = ""; }; + 9AA90D5825CD451700BD5E8B /* CpuBreakpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuBreakpoint.c; sourceTree = ""; }; + 9AA90D5925CD451700BD5E8B /* WriteMm1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm1.nasm; sourceTree = ""; }; + 9AA90D5A25CD451700BD5E8B /* ReadTr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadTr.nasm; sourceTree = ""; }; + 9AA90D5B25CD451700BD5E8B /* InternalSwitchStack.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InternalSwitchStack.c; sourceTree = ""; }; + 9AA90D5C25CD451700BD5E8B /* DivU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivU64x32.c; sourceTree = ""; }; + 9AA90D5D25CD451700BD5E8B /* ReadMm4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm4.c; sourceTree = ""; }; + 9AA90D5E25CD451700BD5E8B /* DivU64x32Remainder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivU64x32Remainder.c; sourceTree = ""; }; + 9AA90D5F25CD451700BD5E8B /* WriteDr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr3.nasm; sourceTree = ""; }; + 9AA90D6025CD451700BD5E8B /* ReadFs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadFs.c; sourceTree = ""; }; + 9AA90D6125CD451700BD5E8B /* ReadCr0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadCr0.c; sourceTree = ""; }; + 9AA90D6225CD451700BD5E8B /* CpuId.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuId.c; sourceTree = ""; }; + 9AA90D6325CD451700BD5E8B /* MultU64x32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = MultU64x32.nasm; sourceTree = ""; }; + 9AA90D6425CD451700BD5E8B /* WriteMm5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm5.c; sourceTree = ""; }; + 9AA90D6525CD451700BD5E8B /* DisablePaging32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DisablePaging32.nasm; sourceTree = ""; }; + 9AA90D6625CD451700BD5E8B /* SwapBytes64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwapBytes64.c; sourceTree = ""; }; + 9AA90D6725CD451700BD5E8B /* RShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RShiftU64.c; sourceTree = ""; }; + 9AA90D6825CD451700BD5E8B /* ReadMm1.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm1.nasm; sourceTree = ""; }; + 9AA90D6925CD451700BD5E8B /* WriteMm1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm1.c; sourceTree = ""; }; + 9AA90D6A25CD451700BD5E8B /* ReadDr3.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr3.nasm; sourceTree = ""; }; + 9AA90D6B25CD451700BD5E8B /* ReadCr4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadCr4.c; sourceTree = ""; }; + 9AA90D6C25CD451700BD5E8B /* DivU64x32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DivU64x32.nasm; sourceTree = ""; }; + 9AA90D6D25CD451700BD5E8B /* CpuBreakpoint.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuBreakpoint.nasm; sourceTree = ""; }; + 9AA90D6E25CD451700BD5E8B /* Invd.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Invd.nasm; sourceTree = ""; }; + 9AA90D6F25CD451700BD5E8B /* ReadMm0.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm0.c; sourceTree = ""; }; + 9AA90D7025CD451700BD5E8B /* LongJump.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = LongJump.nasm; sourceTree = ""; }; + 9AA90D7125CD451700BD5E8B /* DisableCache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DisableCache.c; sourceTree = ""; }; + 9AA90D7225CD451700BD5E8B /* ReadGdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadGdtr.nasm; sourceTree = ""; }; + 9AA90D7325CD451700BD5E8B /* Wbinvd.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Wbinvd.nasm; sourceTree = ""; }; + 9AA90D7425CD451700BD5E8B /* ReadEflags.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadEflags.nasm; sourceTree = ""; }; + 9AA90D7525CD451700BD5E8B /* FxRestore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FxRestore.c; sourceTree = ""; }; + 9AA90D7625CD451700BD5E8B /* WriteMsr64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMsr64.c; sourceTree = ""; }; + 9AA90D7725CD451700BD5E8B /* Non-existing.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = "Non-existing.c"; sourceTree = ""; }; + 9AA90D7825CD451700BD5E8B /* WriteDr2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr2.c; sourceTree = ""; }; + 9AA90D7925CD451700BD5E8B /* EnablePaging64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnablePaging64.nasm; sourceTree = ""; }; + 9AA90D7A25CD451700BD5E8B /* WriteDr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr4.nasm; sourceTree = ""; }; + 9AA90D7B25CD451700BD5E8B /* FlushCacheLine.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FlushCacheLine.nasm; sourceTree = ""; }; + 9AA90D7C25CD451700BD5E8B /* WriteIdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteIdtr.c; sourceTree = ""; }; + 9AA90D7D25CD451700BD5E8B /* ReadDr3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr3.c; sourceTree = ""; }; + 9AA90D7E25CD451700BD5E8B /* WriteMm6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm6.nasm; sourceTree = ""; }; + 9AA90D7F25CD451700BD5E8B /* ReadLdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadLdtr.nasm; sourceTree = ""; }; + 9AA90D8025CD451700BD5E8B /* ReadDr7.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadDr7.c; sourceTree = ""; }; + 9AA90D8125CD451700BD5E8B /* ReadEflags.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadEflags.c; sourceTree = ""; }; + 9AA90D8225CD451700BD5E8B /* WriteIdtr.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteIdtr.nasm; sourceTree = ""; }; + 9AA90D8325CD451700BD5E8B /* MultU64x64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MultU64x64.c; sourceTree = ""; }; + 9AA90D8425CD451700BD5E8B /* DivU64x32Remainder.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = DivU64x32Remainder.nasm; sourceTree = ""; }; + 9AA90D8525CD451700BD5E8B /* FxSave.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = FxSave.nasm; sourceTree = ""; }; + 9AA90D8625CD451700BD5E8B /* Monitor.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Monitor.nasm; sourceTree = ""; }; + 9AA90D8725CD451700BD5E8B /* WriteDr6.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteDr6.c; sourceTree = ""; }; + 9AA90D8825CD451700BD5E8B /* ReadDr4.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr4.nasm; sourceTree = ""; }; + 9AA90D8925CD451700BD5E8B /* ReadMm6.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm6.nasm; sourceTree = ""; }; + 9AA90D8A25CD451700BD5E8B /* ReadMsr64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMsr64.nasm; sourceTree = ""; }; + 9AA90D8B25CD451700BD5E8B /* ReadIdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadIdtr.c; sourceTree = ""; }; + 9AA90D8C25CD451700BD5E8B /* ARShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ARShiftU64.c; sourceTree = ""; }; + 9AA90D8D25CD451700BD5E8B /* ReadCr3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadCr3.c; sourceTree = ""; }; + 9AA90D8E25CD451700BD5E8B /* ReadMm7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadMm7.nasm; sourceTree = ""; }; + 9AA90D8F25CD451700BD5E8B /* ReadDr5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadDr5.nasm; sourceTree = ""; }; + 9AA90D9025CD451700BD5E8B /* WriteMm6.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm6.c; sourceTree = ""; }; + 9AA90D9125CD451700BD5E8B /* ReadTsc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadTsc.c; sourceTree = ""; }; + 9AA90D9225CD451700BD5E8B /* WriteCr2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteCr2.c; sourceTree = ""; }; + 9AA90D9325CD451700BD5E8B /* ModU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ModU64x32.c; sourceTree = ""; }; + 9AA90D9425CD451700BD5E8B /* ReadSs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadSs.nasm; sourceTree = ""; }; + 9AA90D9525CD451700BD5E8B /* ReadMm7.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm7.c; sourceTree = ""; }; + 9AA90D9625CD451700BD5E8B /* EnableDisableInterrupts.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnableDisableInterrupts.c; sourceTree = ""; }; + 9AA90D9725CD451700BD5E8B /* WriteMm7.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteMm7.nasm; sourceTree = ""; }; + 9AA90D9825CD451700BD5E8B /* ReadMm3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadMm3.c; sourceTree = ""; }; + 9AA90D9925CD451700BD5E8B /* CpuId.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuId.nasm; sourceTree = ""; }; + 9AA90D9A25CD451700BD5E8B /* InternalSwitchStack.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InternalSwitchStack.nasm; sourceTree = ""; }; + 9AA90D9B25CD451700BD5E8B /* WriteDr5.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = WriteDr5.nasm; sourceTree = ""; }; + 9AA90D9C25CD451700BD5E8B /* ReadPmc.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadPmc.nasm; sourceTree = ""; }; + 9AA90D9D25CD451700BD5E8B /* WriteMm2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WriteMm2.c; sourceTree = ""; }; + 9AA90D9E25CD451700BD5E8B /* ModU64x32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ModU64x32.nasm; sourceTree = ""; }; + 9AA90D9F25CD451700BD5E8B /* ReadTsc.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ReadTsc.nasm; sourceTree = ""; }; + 9AA90DA025CD451700BD5E8B /* EnablePaging32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EnablePaging32.nasm; sourceTree = ""; }; + 9AA90DA125CD451700BD5E8B /* GetPowerOfTwo32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GetPowerOfTwo32.c; sourceTree = ""; }; + 9AA90DA225CD451700BD5E8B /* Math64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Math64.c; sourceTree = ""; }; + 9AA90DA325CD451700BD5E8B /* RRotU32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RRotU32.c; sourceTree = ""; }; + 9AA90DA425CD451700BD5E8B /* DivU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivU64x32.c; sourceTree = ""; }; + 9AA90DA525CD451700BD5E8B /* DivU64x32Remainder.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DivU64x32Remainder.c; sourceTree = ""; }; + 9AA90DA625CD451700BD5E8B /* X86MemoryFence.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86MemoryFence.c; sourceTree = ""; }; + 9AA90DA725CD451700BD5E8B /* SwapBytes64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwapBytes64.c; sourceTree = ""; }; + 9AA90DA825CD451700BD5E8B /* RShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RShiftU64.c; sourceTree = ""; }; + 9AA90DA925CD451700BD5E8B /* SwitchStack.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwitchStack.c; sourceTree = ""; }; + 9AA90DAA25CD451700BD5E8B /* ChkStkGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ChkStkGcc.c; sourceTree = ""; }; + 9AA90DAB25CD451700BD5E8B /* SetJump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetJump.c; sourceTree = ""; }; + 9AA90DAC25CD451700BD5E8B /* X86EnablePaging32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86EnablePaging32.c; sourceTree = ""; }; + 9AA90DAD25CD451700BD5E8B /* X86WriteGdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86WriteGdtr.c; sourceTree = ""; }; + 9AA90DAE25CD451700BD5E8B /* SwapBytes16.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SwapBytes16.c; sourceTree = ""; }; + 9AA90DAF25CD451700BD5E8B /* HighBitSet32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HighBitSet32.c; sourceTree = ""; }; + 9AA90DB025CD451700BD5E8B /* X86RdRand.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86RdRand.c; sourceTree = ""; }; + 9AA90DB225CD451700BD5E8B /* Math64.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = Math64.S; sourceTree = ""; }; + 9AA90DB325CD451700BD5E8B /* CpuPause.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuPause.asm; sourceTree = ""; }; + 9AA90DB425CD451700BD5E8B /* EnableInterrupts.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = EnableInterrupts.asm; sourceTree = ""; }; + 9AA90DB525CD451700BD5E8B /* SwitchStack.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SwitchStack.S; sourceTree = ""; }; + 9AA90DB625CD451700BD5E8B /* CpuBreakpoint.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuBreakpoint.S; sourceTree = ""; }; + 9AA90DB725CD451700BD5E8B /* SetJumpLongJump.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SetJumpLongJump.asm; sourceTree = ""; }; + 9AA90DB825CD451700BD5E8B /* CpuBreakpoint.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuBreakpoint.asm; sourceTree = ""; }; + 9AA90DB925CD451700BD5E8B /* GetInterruptsState.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = GetInterruptsState.S; sourceTree = ""; }; + 9AA90DBA25CD451700BD5E8B /* MemoryFence.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = MemoryFence.asm; sourceTree = ""; }; + 9AA90DBB25CD451700BD5E8B /* SpeculationBarrier.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SpeculationBarrier.S; sourceTree = ""; }; + 9AA90DBC25CD451700BD5E8B /* DisableInterrupts.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = DisableInterrupts.asm; sourceTree = ""; }; + 9AA90DBD25CD451700BD5E8B /* SetJumpLongJump.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SetJumpLongJump.S; sourceTree = ""; }; + 9AA90DBE25CD451700BD5E8B /* GetInterruptsState.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = GetInterruptsState.asm; sourceTree = ""; }; + 9AA90DBF25CD451700BD5E8B /* Unaligned.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Unaligned.c; sourceTree = ""; }; + 9AA90DC025CD451700BD5E8B /* InternalSwitchStack.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InternalSwitchStack.c; sourceTree = ""; }; + 9AA90DC125CD451700BD5E8B /* SpeculationBarrier.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SpeculationBarrier.asm; sourceTree = ""; }; + 9AA90DC225CD451700BD5E8B /* MemoryFence.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = MemoryFence.S; sourceTree = ""; }; + 9AA90DC325CD451700BD5E8B /* DisableInterrupts.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = DisableInterrupts.S; sourceTree = ""; }; + 9AA90DC425CD451700BD5E8B /* SwitchStack.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SwitchStack.asm; sourceTree = ""; }; + 9AA90DC525CD451700BD5E8B /* EnableInterrupts.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = EnableInterrupts.S; sourceTree = ""; }; + 9AA90DC625CD451700BD5E8B /* MultU64x64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MultU64x64.c; sourceTree = ""; }; + 9AA90DC725CD451700BD5E8B /* X86DisablePaging64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86DisablePaging64.c; sourceTree = ""; }; + 9AA90DC825CD451700BD5E8B /* X86ReadGdtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86ReadGdtr.c; sourceTree = ""; }; + 9AA90DC925CD451700BD5E8B /* ARShiftU64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ARShiftU64.c; sourceTree = ""; }; + 9AA90DCB25CD451700BD5E8B /* EnableInterrupts.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = EnableInterrupts.asm; sourceTree = ""; }; + 9AA90DCC25CD451700BD5E8B /* SwitchStack.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SwitchStack.S; sourceTree = ""; }; + 9AA90DCD25CD451700BD5E8B /* CpuBreakpoint.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuBreakpoint.S; sourceTree = ""; }; + 9AA90DCE25CD451700BD5E8B /* SetJumpLongJump.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SetJumpLongJump.asm; sourceTree = ""; }; + 9AA90DCF25CD451700BD5E8B /* CpuBreakpoint.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuBreakpoint.asm; sourceTree = ""; }; + 9AA90DD025CD451700BD5E8B /* GetInterruptsState.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = GetInterruptsState.S; sourceTree = ""; }; + 9AA90DD125CD451700BD5E8B /* MemoryFence.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = MemoryFence.asm; sourceTree = ""; }; + 9AA90DD225CD451700BD5E8B /* SpeculationBarrier.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SpeculationBarrier.S; sourceTree = ""; }; + 9AA90DD325CD451700BD5E8B /* DisableInterrupts.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = DisableInterrupts.asm; sourceTree = ""; }; + 9AA90DD425CD451700BD5E8B /* SetJumpLongJump.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SetJumpLongJump.S; sourceTree = ""; }; + 9AA90DD525CD451700BD5E8B /* GetInterruptsState.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = GetInterruptsState.asm; sourceTree = ""; }; + 9AA90DD625CD451700BD5E8B /* SpeculationBarrier.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SpeculationBarrier.asm; sourceTree = ""; }; + 9AA90DD725CD451700BD5E8B /* MemoryFence.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = MemoryFence.S; sourceTree = ""; }; + 9AA90DD825CD451700BD5E8B /* DisableInterrupts.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = DisableInterrupts.S; sourceTree = ""; }; + 9AA90DD925CD451700BD5E8B /* SwitchStack.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SwitchStack.asm; sourceTree = ""; }; + 9AA90DDA25CD451700BD5E8B /* EnableInterrupts.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = EnableInterrupts.S; sourceTree = ""; }; + 9AA90DDB25CD451700BD5E8B /* LowBitSet32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LowBitSet32.c; sourceTree = ""; }; + 9AA90DDC25CD451700BD5E8B /* LRotU32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LRotU32.c; sourceTree = ""; }; + 9AA90DDD25CD451700BD5E8B /* ModU64x32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ModU64x32.c; sourceTree = ""; }; + 9AA90DDE25CD451700BD5E8B /* LinkedList.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LinkedList.c; sourceTree = ""; }; + 9AA90DDF25CD451700BD5E8B /* X86SpeculationBarrier.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86SpeculationBarrier.c; sourceTree = ""; }; + 9AA90DE125CD451800BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90DE225CD451800BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90DE325CD451800BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90DE425CD451800BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90DE625CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90DE725CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90DE825CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90DE925CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90DEA25CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90DEB25CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90DEC25CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90DED25CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90DEE25CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90DEF25CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90DF025CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90DF125CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90DF225CD451800BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90DF325CD451800BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90DF525CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90DF625CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90DF725CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90DF825CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90DF925CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90DFA25CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90DFB25CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90DFC25CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90DFD25CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90DFE25CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90DFF25CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90E0025CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90E0125CD451800BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90E0225CD451800BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90E0325CD451800BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90E0425CD451800BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90E0525CD451800BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90E0625CD451800BD5E8B /* BaseMemoryLibRepStr.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibRepStr.uni; sourceTree = ""; }; + 9AA90E0725CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90E0825CD451800BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90E0925CD451800BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90E0A25CD451800BD5E8B /* BaseMemoryLibRepStr.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibRepStr.inf; sourceTree = ""; }; + 9AA90E0C25CD451800BD5E8B /* BaseSynchronizationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSynchronizationLib.uni; sourceTree = ""; }; + 9AA90E0E25CD451800BD5E8B /* Synchronization.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Synchronization.c; sourceTree = ""; }; + 9AA90E0F25CD451800BD5E8B /* BaseSynchronizationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSynchronizationLib.inf; sourceTree = ""; }; + 9AA90E1125CD451800BD5E8B /* InterlockedCompareExchange64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange64.c; sourceTree = ""; }; + 9AA90E1225CD451800BD5E8B /* InterlockedIncrement.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedIncrement.nasm; sourceTree = ""; }; + 9AA90E1325CD451800BD5E8B /* InterlockedCompareExchange16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange16.nasm; sourceTree = ""; }; + 9AA90E1425CD451800BD5E8B /* InterlockedCompareExchange16.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange16.c; sourceTree = ""; }; + 9AA90E1525CD451800BD5E8B /* GccInline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GccInline.c; sourceTree = ""; }; + 9AA90E1625CD451800BD5E8B /* InterlockedCompareExchange32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange32.c; sourceTree = ""; }; + 9AA90E1725CD451800BD5E8B /* InterlockedCompareExchange64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange64.nasm; sourceTree = ""; }; + 9AA90E1825CD451800BD5E8B /* InterlockedCompareExchange32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange32.nasm; sourceTree = ""; }; + 9AA90E1925CD451800BD5E8B /* InterlockedDecrement.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedDecrement.nasm; sourceTree = ""; }; + 9AA90E1A25CD451800BD5E8B /* InterlockedIncrementMsc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedIncrementMsc.c; sourceTree = ""; }; + 9AA90E1C25CD451800BD5E8B /* InterlockedCompareExchange64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange64.c; sourceTree = ""; }; + 9AA90E1D25CD451800BD5E8B /* InternalGetSpinLockProperties.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InternalGetSpinLockProperties.c; sourceTree = ""; }; + 9AA90E1E25CD451800BD5E8B /* InterlockedIncrement.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedIncrement.nasm; sourceTree = ""; }; + 9AA90E1F25CD451800BD5E8B /* InterlockedCompareExchange16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange16.nasm; sourceTree = ""; }; + 9AA90E2025CD451800BD5E8B /* InterlockedCompareExchange16.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange16.c; sourceTree = ""; }; + 9AA90E2125CD451800BD5E8B /* GccInline.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GccInline.c; sourceTree = ""; }; + 9AA90E2225CD451800BD5E8B /* InterlockedCompareExchange32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedCompareExchange32.c; sourceTree = ""; }; + 9AA90E2325CD451800BD5E8B /* InterlockedCompareExchange64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange64.nasm; sourceTree = ""; }; + 9AA90E2425CD451800BD5E8B /* InterlockedCompareExchange32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedCompareExchange32.nasm; sourceTree = ""; }; + 9AA90E2525CD451800BD5E8B /* InterlockedDecrement.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = InterlockedDecrement.nasm; sourceTree = ""; }; + 9AA90E2625CD451800BD5E8B /* BaseSynchronizationLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseSynchronizationLibInternals.h; sourceTree = ""; }; + 9AA90E2725CD451800BD5E8B /* SynchronizationMsc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SynchronizationMsc.c; sourceTree = ""; }; + 9AA90E2825CD451800BD5E8B /* Synchronization.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Synchronization.c; sourceTree = ""; }; + 9AA90E2A25CD451800BD5E8B /* Synchronization.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = Synchronization.S; sourceTree = ""; }; + 9AA90E2B25CD451800BD5E8B /* Synchronization.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = Synchronization.asm; sourceTree = ""; }; + 9AA90E2D25CD451800BD5E8B /* Synchronization.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = Synchronization.S; sourceTree = ""; }; + 9AA90E2E25CD451800BD5E8B /* Synchronization.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = Synchronization.asm; sourceTree = ""; }; + 9AA90E2F25CD451800BD5E8B /* SynchronizationGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SynchronizationGcc.c; sourceTree = ""; }; + 9AA90E3025CD451800BD5E8B /* InterlockedDecrementMsc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InterlockedDecrementMsc.c; sourceTree = ""; }; + 9AA90E3225CD451800BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90E3325CD451800BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90E3425CD451800BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90E3525CD451800BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90E3625CD451800BD5E8B /* MemLibGeneric.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGeneric.c; sourceTree = ""; }; + 9AA90E3725CD451800BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90E3825CD451800BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90E3925CD451800BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90E3A25CD451800BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90E3B25CD451800BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90E3C25CD451800BD5E8B /* MemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLib.c; sourceTree = ""; }; + 9AA90E3D25CD451800BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90E3E25CD451800BD5E8B /* UefiMemoryLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryLib.inf; sourceTree = ""; }; + 9AA90E3F25CD451800BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90E4025CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90E4125CD451800BD5E8B /* UefiMemoryLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryLib.uni; sourceTree = ""; }; + 9AA90E4225CD451800BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90E4325CD451800BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90E4525CD451800BD5E8B /* PciSegmentLibCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciSegmentLibCommon.h; sourceTree = ""; }; + 9AA90E4625CD451800BD5E8B /* DxeRuntimePciSegmentLibSegmentInfo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimePciSegmentLibSegmentInfo.inf; sourceTree = ""; }; + 9AA90E4725CD451800BD5E8B /* BasePciSegmentLibSegmentInfo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentLibSegmentInfo.inf; sourceTree = ""; }; + 9AA90E4825CD451800BD5E8B /* DxeRuntimePciSegmentLibSegmentInfo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimePciSegmentLibSegmentInfo.uni; sourceTree = ""; }; + 9AA90E4925CD451800BD5E8B /* BasePciSegmentLibSegmentInfo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentLibSegmentInfo.uni; sourceTree = ""; }; + 9AA90E4A25CD451800BD5E8B /* BasePciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BasePciSegmentLib.c; sourceTree = ""; }; + 9AA90E4B25CD451800BD5E8B /* PciSegmentLibCommon.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciSegmentLibCommon.c; sourceTree = ""; }; + 9AA90E4C25CD451800BD5E8B /* DxeRuntimePciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeRuntimePciSegmentLib.c; sourceTree = ""; }; + 9AA90E4F25CD451800BD5E8B /* CpuSleepFlushTlb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuSleepFlushTlb.c; sourceTree = ""; }; + 9AA90E5125CD451800BD5E8B /* CpuSleep.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuSleep.nasm; sourceTree = ""; }; + 9AA90E5225CD451800BD5E8B /* CpuFlushTlb.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuFlushTlb.nasm; sourceTree = ""; }; + 9AA90E5325CD451800BD5E8B /* BaseCpuLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseCpuLib.uni; sourceTree = ""; }; + 9AA90E5425CD451800BD5E8B /* BaseCpuLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseCpuLib.inf; sourceTree = ""; }; + 9AA90E5625CD451800BD5E8B /* CpuSleep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuSleep.c; sourceTree = ""; }; + 9AA90E5725CD451800BD5E8B /* CpuFlushTlbGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuFlushTlbGcc.c; sourceTree = ""; }; + 9AA90E5825CD451800BD5E8B /* CpuFlushTlb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuFlushTlb.c; sourceTree = ""; }; + 9AA90E5925CD451800BD5E8B /* CpuSleep.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuSleep.nasm; sourceTree = ""; }; + 9AA90E5A25CD451800BD5E8B /* CpuFlushTlb.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuFlushTlb.nasm; sourceTree = ""; }; + 9AA90E5B25CD451800BD5E8B /* CpuSleepGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuSleepGcc.c; sourceTree = ""; }; + 9AA90E5D25CD451800BD5E8B /* CpuFlushTlb.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuFlushTlb.S; sourceTree = ""; }; + 9AA90E5E25CD451800BD5E8B /* CpuFlushTlb.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuFlushTlb.asm; sourceTree = ""; }; + 9AA90E5F25CD451800BD5E8B /* CpuSleep.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuSleep.asm; sourceTree = ""; }; + 9AA90E6025CD451800BD5E8B /* CpuSleep.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuSleep.S; sourceTree = ""; }; + 9AA90E6225CD451800BD5E8B /* CpuFlushTlb.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuFlushTlb.S; sourceTree = ""; }; + 9AA90E6325CD451800BD5E8B /* CpuFlushTlb.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuFlushTlb.asm; sourceTree = ""; }; + 9AA90E6425CD451800BD5E8B /* CpuSleep.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CpuSleep.asm; sourceTree = ""; }; + 9AA90E6525CD451800BD5E8B /* CpuSleep.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CpuSleep.S; sourceTree = ""; }; + 9AA90E6725CD451800BD5E8B /* PeiExtractGuidedSectionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiExtractGuidedSectionLib.c; sourceTree = ""; }; + 9AA90E6825CD451800BD5E8B /* PeiExtractGuidedSectionLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiExtractGuidedSectionLib.uni; sourceTree = ""; }; + 9AA90E6925CD451800BD5E8B /* PeiExtractGuidedSectionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiExtractGuidedSectionLib.inf; sourceTree = ""; }; + 9AA90E6B25CD451800BD5E8B /* DriverEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DriverEntryPoint.c; sourceTree = ""; }; + 9AA90E6C25CD451800BD5E8B /* UefiDriverEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDriverEntryPoint.inf; sourceTree = ""; }; + 9AA90E6D25CD451800BD5E8B /* UefiDriverEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDriverEntryPoint.uni; sourceTree = ""; }; + 9AA90E6F25CD451800BD5E8B /* DebugLibConstructor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLibConstructor.c; sourceTree = ""; }; + 9AA90E7025CD451800BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA90E7125CD451800BD5E8B /* UefiDebugLibDebugPortProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibDebugPortProtocol.uni; sourceTree = ""; }; + 9AA90E7225CD451800BD5E8B /* UefiDebugLibDebugPortProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibDebugPortProtocol.inf; sourceTree = ""; }; + 9AA90E7425CD451800BD5E8B /* SmmPciExpressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPciExpressLib.inf; sourceTree = ""; }; + 9AA90E7525CD451800BD5E8B /* PciExpressLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciExpressLib.c; sourceTree = ""; }; + 9AA90E7725CD451800BD5E8B /* DxeRuntimePciExpressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimePciExpressLib.uni; sourceTree = ""; }; + 9AA90E7825CD451800BD5E8B /* DxeRuntimePciExpressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimePciExpressLib.inf; sourceTree = ""; }; + 9AA90E7925CD451800BD5E8B /* PciExpressLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciExpressLib.c; sourceTree = ""; }; + 9AA90E7B25CD451800BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90E7C25CD451800BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90E7D25CD451800BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90E7E25CD451800BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90E8025CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90E8125CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90E8225CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90E8325CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90E8425CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90E8525CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90E8625CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90E8725CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90E8825CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90E8925CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90E8A25CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90E8B25CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90E8C25CD451800BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90E8D25CD451800BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90E8F25CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90E9025CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90E9125CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90E9225CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90E9325CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90E9425CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90E9525CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90E9625CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90E9725CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90E9825CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90E9925CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90E9A25CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90E9B25CD451800BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90E9C25CD451800BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90E9D25CD451800BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90E9E25CD451800BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90EA025CD451800BD5E8B /* ScanMemGeneric.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMemGeneric.c; sourceTree = ""; }; + 9AA90EA125CD451800BD5E8B /* CompareMem.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CompareMem.asm; sourceTree = ""; }; + 9AA90EA225CD451800BD5E8B /* CopyMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CopyMem.S; sourceTree = ""; }; + 9AA90EA325CD451800BD5E8B /* SetMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SetMem.S; sourceTree = ""; }; + 9AA90EA425CD451800BD5E8B /* ScanMem.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = ScanMem.asm; sourceTree = ""; }; + 9AA90EA525CD451800BD5E8B /* CopyMem.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CopyMem.asm; sourceTree = ""; }; + 9AA90EA625CD451800BD5E8B /* CompareMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CompareMem.S; sourceTree = ""; }; + 9AA90EA725CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90EA825CD451800BD5E8B /* SetMem.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = SetMem.asm; sourceTree = ""; }; + 9AA90EA925CD451800BD5E8B /* CompareGuid.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = CompareGuid.asm; sourceTree = ""; }; + 9AA90EAA25CD451800BD5E8B /* CompareGuid.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CompareGuid.S; sourceTree = ""; }; + 9AA90EAB25CD451800BD5E8B /* ScanMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ScanMem.S; sourceTree = ""; }; + 9AA90EAC25CD451800BD5E8B /* BaseMemoryLibOptDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibOptDxe.uni; sourceTree = ""; }; + 9AA90EAD25CD451800BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90EAE25CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90EB025CD451800BD5E8B /* CopyMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CopyMem.S; sourceTree = ""; }; + 9AA90EB125CD451800BD5E8B /* SetMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = SetMem.S; sourceTree = ""; }; + 9AA90EB225CD451800BD5E8B /* CompareMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CompareMem.S; sourceTree = ""; }; + 9AA90EB325CD451800BD5E8B /* CompareGuid.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = CompareGuid.S; sourceTree = ""; }; + 9AA90EB425CD451800BD5E8B /* ScanMem.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ScanMem.S; sourceTree = ""; }; + 9AA90EB525CD451800BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90EB625CD451800BD5E8B /* BaseMemoryLibOptDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibOptDxe.inf; sourceTree = ""; }; + 9AA90EB725CD451800BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90EB925CD451800BD5E8B /* PerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PerformanceLib.c; sourceTree = ""; }; + 9AA90EBA25CD451800BD5E8B /* BasePerformanceLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePerformanceLibNull.inf; sourceTree = ""; }; + 9AA90EBB25CD451800BD5E8B /* BasePerformanceLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePerformanceLibNull.uni; sourceTree = ""; }; + 9AA90EBD25CD451800BD5E8B /* BasePciSegmentLibPci.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentLibPci.inf; sourceTree = ""; }; + 9AA90EBE25CD451800BD5E8B /* BasePciSegmentLibPci.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentLibPci.uni; sourceTree = ""; }; + 9AA90EBF25CD451800BD5E8B /* PciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciSegmentLib.c; sourceTree = ""; }; + 9AA90EC125CD451800BD5E8B /* PostCode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PostCode.c; sourceTree = ""; }; + 9AA90EC225CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDxePostCodeLibReportStatusCode.inf; sourceTree = ""; }; + 9AA90EC325CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDxePostCodeLibReportStatusCode.uni; sourceTree = ""; }; + 9AA90EC525CD451800BD5E8B /* BasePcdLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePcdLibNull.uni; sourceTree = ""; }; + 9AA90EC625CD451800BD5E8B /* BasePcdLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePcdLibNull.inf; sourceTree = ""; }; + 9AA90EC725CD451800BD5E8B /* PcdLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PcdLib.c; sourceTree = ""; }; + 9AA90EC925CD451800BD5E8B /* BaseStackCheckGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseStackCheckGcc.c; sourceTree = ""; }; + 9AA90ECA25CD451800BD5E8B /* BaseStackCheckLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseStackCheckLib.uni; sourceTree = ""; }; + 9AA90ECB25CD451800BD5E8B /* BaseStackCheckNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseStackCheckNull.c; sourceTree = ""; }; + 9AA90ECC25CD451800BD5E8B /* BaseStackCheckLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseStackCheckLib.inf; sourceTree = ""; }; + 9AA90ECE25CD451800BD5E8B /* BaseRngLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseRngLib.uni; sourceTree = ""; }; + 9AA90ECF25CD451800BD5E8B /* BaseRngLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseRngLib.inf; sourceTree = ""; }; + 9AA90ED025CD451800BD5E8B /* BaseRng.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseRng.c; sourceTree = ""; }; + 9AA90ED225CD451800BD5E8B /* DxeCoreEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCoreEntryPoint.c; sourceTree = ""; }; + 9AA90ED325CD451800BD5E8B /* DxeCoreEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreEntryPoint.uni; sourceTree = ""; }; + 9AA90ED425CD451800BD5E8B /* DxeCoreEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreEntryPoint.inf; sourceTree = ""; }; + 9AA90ED625CD451800BD5E8B /* PostCode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PostCode.c; sourceTree = ""; }; + 9AA90ED725CD451800BD5E8B /* BasePostCodeLibPort80.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePostCodeLibPort80.inf; sourceTree = ""; }; + 9AA90ED825CD451800BD5E8B /* BasePostCodeLibPort80.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePostCodeLibPort80.uni; sourceTree = ""; }; + 9AA90EDA25CD451800BD5E8B /* PeiCoreEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCoreEntryPoint.uni; sourceTree = ""; }; + 9AA90EDB25CD451800BD5E8B /* PeiCoreEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCoreEntryPoint.inf; sourceTree = ""; }; + 9AA90EDC25CD451800BD5E8B /* PeiCoreEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiCoreEntryPoint.c; sourceTree = ""; }; + 9AA90EDE25CD451800BD5E8B /* BasePeCoffLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BasePeCoffLibInternals.h; sourceTree = ""; }; + 9AA90EDF25CD451800BD5E8B /* BasePeCoff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BasePeCoff.c; sourceTree = ""; }; + 9AA90EE025CD451800BD5E8B /* PeCoffLoaderEx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeCoffLoaderEx.c; sourceTree = ""; }; + 9AA90EE225CD451800BD5E8B /* PeCoffLoaderEx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeCoffLoaderEx.c; sourceTree = ""; }; + 9AA90EE325CD451800BD5E8B /* BasePeCoffLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePeCoffLib.uni; sourceTree = ""; }; + 9AA90EE425CD451800BD5E8B /* BasePeCoffLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePeCoffLib.inf; sourceTree = ""; }; + 9AA90EE625CD451800BD5E8B /* SmmLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLibNull.uni; sourceTree = ""; }; + 9AA90EE725CD451800BD5E8B /* SmmLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLibNull.inf; sourceTree = ""; }; + 9AA90EE825CD451800BD5E8B /* SmmLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmLibNull.c; sourceTree = ""; }; + 9AA90EEA25CD451800BD5E8B /* BasePciCf8Lib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciCf8Lib.uni; sourceTree = ""; }; + 9AA90EEB25CD451800BD5E8B /* BasePciCf8Lib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciCf8Lib.inf; sourceTree = ""; }; + 9AA90EEC25CD451800BD5E8B /* PciCf8Lib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciCf8Lib.c; sourceTree = ""; }; + 9AA90EEE25CD451800BD5E8B /* MmServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MmServicesTableLib.uni; sourceTree = ""; }; + 9AA90EEF25CD451800BD5E8B /* MmServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = MmServicesTableLib.inf; sourceTree = ""; }; + 9AA90EF025CD451800BD5E8B /* MmServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MmServicesTableLib.c; sourceTree = ""; }; + 9AA90EF225CD451800BD5E8B /* SafeIntLib64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SafeIntLib64.c; sourceTree = ""; }; + 9AA90EF325CD451800BD5E8B /* SafeIntLibEbc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SafeIntLibEbc.c; sourceTree = ""; }; + 9AA90EF425CD451800BD5E8B /* BaseSafeIntLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSafeIntLib.inf; sourceTree = ""; }; + 9AA90EF525CD451800BD5E8B /* SafeIntLib32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SafeIntLib32.c; sourceTree = ""; }; + 9AA90EF625CD451800BD5E8B /* SafeIntLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SafeIntLib.c; sourceTree = ""; }; + 9AA90EF825CD451800BD5E8B /* SmmServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmServicesTableLib.c; sourceTree = ""; }; + 9AA90EF925CD451800BD5E8B /* SmmServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmServicesTableLib.inf; sourceTree = ""; }; + 9AA90EFA25CD451800BD5E8B /* SmmServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmServicesTableLib.uni; sourceTree = ""; }; + 9AA90EFC25CD451800BD5E8B /* DxeExtractGuidedSectionLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeExtractGuidedSectionLib.uni; sourceTree = ""; }; + 9AA90EFD25CD451800BD5E8B /* DxeExtractGuidedSectionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeExtractGuidedSectionLib.inf; sourceTree = ""; }; + 9AA90EFE25CD451800BD5E8B /* DxeExtractGuidedSectionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeExtractGuidedSectionLib.c; sourceTree = ""; }; + 9AA90F0025CD451800BD5E8B /* UefiApplicationEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiApplicationEntryPoint.uni; sourceTree = ""; }; + 9AA90F0125CD451800BD5E8B /* UefiApplicationEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiApplicationEntryPoint.inf; sourceTree = ""; }; + 9AA90F0225CD451800BD5E8B /* ApplicationEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ApplicationEntryPoint.c; sourceTree = ""; }; + 9AA90F0425CD451800BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90F0525CD451800BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90F0625CD451800BD5E8B /* BaseMemoryLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLib.inf; sourceTree = ""; }; + 9AA90F0725CD451800BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90F0825CD451800BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90F0925CD451800BD5E8B /* BaseMemoryLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLib.uni; sourceTree = ""; }; + 9AA90F0A25CD451800BD5E8B /* MemLibGeneric.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGeneric.c; sourceTree = ""; }; + 9AA90F0B25CD451800BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90F0C25CD451800BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90F0D25CD451800BD5E8B /* CopyMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMem.c; sourceTree = ""; }; + 9AA90F0E25CD451800BD5E8B /* SetMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem.c; sourceTree = ""; }; + 9AA90F0F25CD451800BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90F1025CD451800BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90F1125CD451800BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90F1225CD451800BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90F1325CD451800BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90F1425CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90F1525CD451800BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90F1625CD451800BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90F1825CD451800BD5E8B /* IoLibMmioBuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibMmioBuffer.c; sourceTree = ""; }; + 9AA90F1925CD451800BD5E8B /* IoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLib.c; sourceTree = ""; }; + 9AA90F1A25CD451800BD5E8B /* IoHighLevel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoHighLevel.c; sourceTree = ""; }; + 9AA90F1B25CD451800BD5E8B /* SmmCpuIoLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCpuIoLibInternal.h; sourceTree = ""; }; + 9AA90F1C25CD451800BD5E8B /* SmmIoLibSmmCpuIo2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIoLibSmmCpuIo2.uni; sourceTree = ""; }; + 9AA90F1D25CD451800BD5E8B /* SmmIoLibSmmCpuIo2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIoLibSmmCpuIo2.inf; sourceTree = ""; }; + 9AA90F1F25CD451800BD5E8B /* DxeSmbusLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeSmbusLib.c; sourceTree = ""; }; + 9AA90F2025CD451800BD5E8B /* SmbusLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbusLib.c; sourceTree = ""; }; + 9AA90F2125CD451800BD5E8B /* InternalSmbusLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalSmbusLib.h; sourceTree = ""; }; + 9AA90F2225CD451800BD5E8B /* DxeSmbusLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeSmbusLib.inf; sourceTree = ""; }; + 9AA90F2325CD451800BD5E8B /* DxeSmbusLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeSmbusLib.uni; sourceTree = ""; }; + 9AA90F2525CD451800BD5E8B /* BaseSmbusLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseSmbusLibNull.c; sourceTree = ""; }; + 9AA90F2625CD451800BD5E8B /* BaseSmbusLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSmbusLibNull.uni; sourceTree = ""; }; + 9AA90F2725CD451800BD5E8B /* BaseSmbusLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSmbusLibNull.inf; sourceTree = ""; }; + 9AA90F2925CD451800BD5E8B /* BaseTimerLibNullTemplate.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseTimerLibNullTemplate.uni; sourceTree = ""; }; + 9AA90F2A25CD451800BD5E8B /* BaseTimerLibNullTemplate.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseTimerLibNullTemplate.inf; sourceTree = ""; }; + 9AA90F2B25CD451800BD5E8B /* TimerLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TimerLibNull.c; sourceTree = ""; }; + 9AA90F2D25CD451800BD5E8B /* BaseS3IoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3IoLib.inf; sourceTree = ""; }; + 9AA90F2E25CD451800BD5E8B /* BaseS3IoLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3IoLib.uni; sourceTree = ""; }; + 9AA90F2F25CD451800BD5E8B /* S3IoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3IoLib.c; sourceTree = ""; }; + 9AA90F3125CD451800BD5E8B /* BaseDebugLibSerialPort.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugLibSerialPort.uni; sourceTree = ""; }; + 9AA90F3225CD451800BD5E8B /* BaseDebugLibSerialPort.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseDebugLibSerialPort.inf; sourceTree = ""; }; + 9AA90F3325CD451800BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA90F3525CD451800BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90F3625CD451800BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90F3725CD451800BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90F3825CD451800BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90F3A25CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90F3B25CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90F3C25CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90F3D25CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90F3E25CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90F3F25CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90F4025CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90F4125CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90F4225CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90F4325CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90F4425CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90F4525CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90F4625CD451800BD5E8B /* BaseMemoryLibSse2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibSse2.uni; sourceTree = ""; }; + 9AA90F4725CD451800BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90F4825CD451800BD5E8B /* BaseMemoryLibSse2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibSse2.inf; sourceTree = ""; }; + 9AA90F4925CD451800BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90F4B25CD451800BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA90F4C25CD451800BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA90F4D25CD451800BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA90F4E25CD451800BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA90F4F25CD451800BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA90F5025CD451800BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA90F5125CD451800BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA90F5225CD451800BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA90F5325CD451800BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA90F5425CD451800BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA90F5525CD451800BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA90F5625CD451800BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA90F5725CD451800BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90F5825CD451800BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90F5925CD451800BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90F5A25CD451800BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90F5B25CD451800BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90F5C25CD451800BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90F5D25CD451800BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90F5E25CD451800BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90F6025CD451800BD5E8B /* BaseUefiDecompressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseUefiDecompressLib.uni; sourceTree = ""; }; + 9AA90F6125CD451800BD5E8B /* BaseUefiDecompressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseUefiDecompressLib.inf; sourceTree = ""; }; + 9AA90F6225CD451800BD5E8B /* BaseUefiDecompressLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseUefiDecompressLibInternals.h; sourceTree = ""; }; + 9AA90F6325CD451800BD5E8B /* BaseUefiTianoCustomDecompressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseUefiTianoCustomDecompressLib.inf; sourceTree = ""; }; + 9AA90F6425CD451800BD5E8B /* BaseUefiDecompressLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseUefiDecompressLib.c; sourceTree = ""; }; + 9AA90F6525CD451800BD5E8B /* BaseUefiTianoCustomDecompressLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseUefiTianoCustomDecompressLib.c; sourceTree = ""; }; + 9AA90F6725CD451800BD5E8B /* BaseSerialPortLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSerialPortLibNull.uni; sourceTree = ""; }; + 9AA90F6825CD451800BD5E8B /* BaseSerialPortLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSerialPortLibNull.inf; sourceTree = ""; }; + 9AA90F6925CD451800BD5E8B /* BaseSerialPortLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseSerialPortLibNull.c; sourceTree = ""; }; + 9AA90F6B25CD451800BD5E8B /* BaseS3BootScriptLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3BootScriptLibNull.inf; sourceTree = ""; }; + 9AA90F6C25CD451800BD5E8B /* BootScriptLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootScriptLib.c; sourceTree = ""; }; + 9AA90F6D25CD451800BD5E8B /* BaseS3BootScriptLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3BootScriptLibNull.uni; sourceTree = ""; }; + 9AA90F6F25CD451800BD5E8B /* DxePcdLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxePcdLib.c; sourceTree = ""; }; + 9AA90F7025CD451800BD5E8B /* DxePcdLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePcdLib.uni; sourceTree = ""; }; + 9AA90F7125CD451800BD5E8B /* DxePcdLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePcdLib.inf; sourceTree = ""; }; + 9AA90F7325CD451800BD5E8B /* SmmPeriodicSmiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPeriodicSmiLib.inf; sourceTree = ""; }; + 9AA90F7425CD451800BD5E8B /* SmmPeriodicSmiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPeriodicSmiLib.uni; sourceTree = ""; }; + 9AA90F7525CD451800BD5E8B /* SmmPeriodicSmiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmPeriodicSmiLib.c; sourceTree = ""; }; + 9AA90F7725CD451800BD5E8B /* UefiScsiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiScsiLib.c; sourceTree = ""; }; + 9AA90F7825CD451800BD5E8B /* UefiScsiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiScsiLib.uni; sourceTree = ""; }; + 9AA90F7925CD451800BD5E8B /* UefiScsiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiScsiLib.inf; sourceTree = ""; }; + 9AA90F7B25CD451800BD5E8B /* PeiResourcePublicationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiResourcePublicationLib.c; sourceTree = ""; }; + 9AA90F7C25CD451800BD5E8B /* PeiResourcePublicationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiResourcePublicationLib.inf; sourceTree = ""; }; + 9AA90F7D25CD451800BD5E8B /* PeiResourcePublicationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiResourcePublicationLib.uni; sourceTree = ""; }; + 9AA90F7F25CD451800BD5E8B /* DxeHobLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHobLib.inf; sourceTree = ""; }; + 9AA90F8025CD451800BD5E8B /* DxeHobLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHobLib.uni; sourceTree = ""; }; + 9AA90F8125CD451800BD5E8B /* HobLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HobLib.c; sourceTree = ""; }; + 9AA90F8325CD451800BD5E8B /* S3PciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3PciSegmentLib.c; sourceTree = ""; }; + 9AA90F8425CD451800BD5E8B /* BaseS3PciSegmentLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3PciSegmentLib.uni; sourceTree = ""; }; + 9AA90F8525CD451800BD5E8B /* BaseS3PciSegmentLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3PciSegmentLib.inf; sourceTree = ""; }; + 9AA90F8725CD451800BD5E8B /* BasePciSegmentInfoLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentInfoLibNull.inf; sourceTree = ""; }; + 9AA90F8825CD451800BD5E8B /* BasePciSegmentInfoLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciSegmentInfoLibNull.uni; sourceTree = ""; }; + 9AA90F8925CD451800BD5E8B /* PciSegmentInfoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciSegmentInfoLib.c; sourceTree = ""; }; + 9AA90F8B25CD451800BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA90F8C25CD451800BD5E8B /* SmmMemoryAllocationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemoryAllocationLib.uni; sourceTree = ""; }; + 9AA90F8D25CD451800BD5E8B /* SmmMemoryAllocationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemoryAllocationLib.inf; sourceTree = ""; }; + 9AA90F8F25CD451900BD5E8B /* BaseExtractGuidedSectionLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseExtractGuidedSectionLib.uni; sourceTree = ""; }; + 9AA90F9025CD451900BD5E8B /* BaseExtractGuidedSectionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseExtractGuidedSectionLib.inf; sourceTree = ""; }; + 9AA90F9125CD451900BD5E8B /* BaseExtractGuidedSectionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseExtractGuidedSectionLib.c; sourceTree = ""; }; + 9AA90F9325CD451900BD5E8B /* UefiBootServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiBootServicesTableLib.uni; sourceTree = ""; }; + 9AA90F9425CD451900BD5E8B /* UefiBootServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiBootServicesTableLib.inf; sourceTree = ""; }; + 9AA90F9525CD451900BD5E8B /* UefiBootServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiBootServicesTableLib.c; sourceTree = ""; }; + 9AA90F9725CD451900BD5E8B /* DebugLibConstructor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLibConstructor.c; sourceTree = ""; }; + 9AA90F9825CD451900BD5E8B /* UefiDebugLibStdErr.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibStdErr.uni; sourceTree = ""; }; + 9AA90F9925CD451900BD5E8B /* UefiDebugLibStdErr.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibStdErr.inf; sourceTree = ""; }; + 9AA90F9A25CD451900BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA90F9C25CD451900BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA90F9D25CD451900BD5E8B /* PeiMemoryAllocationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiMemoryAllocationLib.uni; sourceTree = ""; }; + 9AA90F9E25CD451900BD5E8B /* PeiMemoryAllocationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiMemoryAllocationLib.inf; sourceTree = ""; }; + 9AA90FA025CD451900BD5E8B /* DevicePathUtilities.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePathUtilities.c; sourceTree = ""; }; + 9AA90FA125CD451900BD5E8B /* UefiDevicePathLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiDevicePathLib.c; sourceTree = ""; }; + 9AA90FA225CD451900BD5E8B /* DevicePathFromText.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePathFromText.c; sourceTree = ""; }; + 9AA90FA325CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLibOptionalDevicePathProtocol.uni; sourceTree = ""; }; + 9AA90FA425CD451900BD5E8B /* DevicePathToText.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePathToText.c; sourceTree = ""; }; + 9AA90FA525CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiDevicePathLibOptionalDevicePathProtocol.c; sourceTree = ""; }; + 9AA90FA625CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLibOptionalDevicePathProtocol.inf; sourceTree = ""; }; + 9AA90FA725CD451900BD5E8B /* UefiDevicePathLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLib.uni; sourceTree = ""; }; + 9AA90FA825CD451900BD5E8B /* UefiDevicePathLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLib.inf; sourceTree = ""; }; + 9AA90FA925CD451900BD5E8B /* UefiDevicePathLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiDevicePathLib.h; sourceTree = ""; }; + 9AA90FAB25CD451900BD5E8B /* PeiHobLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiHobLib.uni; sourceTree = ""; }; + 9AA90FAC25CD451900BD5E8B /* PeiHobLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiHobLib.inf; sourceTree = ""; }; + 9AA90FAD25CD451900BD5E8B /* HobLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HobLib.c; sourceTree = ""; }; + 9AA90FAF25CD451900BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA90FB025CD451900BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA90FB125CD451900BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA90FB225CD451900BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA90FB325CD451900BD5E8B /* MemLibGeneric.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGeneric.c; sourceTree = ""; }; + 9AA90FB425CD451900BD5E8B /* PeiMemoryLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiMemoryLib.inf; sourceTree = ""; }; + 9AA90FB525CD451900BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA90FB625CD451900BD5E8B /* PeiMemoryLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiMemoryLib.uni; sourceTree = ""; }; + 9AA90FB725CD451900BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA90FB825CD451900BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA90FB925CD451900BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA90FBA25CD451900BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA90FBB25CD451900BD5E8B /* MemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLib.c; sourceTree = ""; }; + 9AA90FBC25CD451900BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA90FBD25CD451900BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA90FBE25CD451900BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA90FBF25CD451900BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA90FC025CD451900BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA90FC225CD451900BD5E8B /* BaseIoLibIntrinsic.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIoLibIntrinsic.inf; sourceTree = ""; }; + 9AA90FC325CD451900BD5E8B /* IoLibEbc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibEbc.c; sourceTree = ""; }; + 9AA90FC425CD451900BD5E8B /* BaseIoLibIntrinsic.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIoLibIntrinsic.uni; sourceTree = ""; }; + 9AA90FC525CD451900BD5E8B /* IoLibGcc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibGcc.c; sourceTree = ""; }; + 9AA90FC625CD451900BD5E8B /* BaseIoLibIntrinsicSev.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIoLibIntrinsicSev.inf; sourceTree = ""; }; + 9AA90FC725CD451900BD5E8B /* BaseIoLibIntrinsicInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BaseIoLibIntrinsicInternal.h; sourceTree = ""; }; + 9AA90FC825CD451900BD5E8B /* IoLibMmioBuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibMmioBuffer.c; sourceTree = ""; }; + 9AA90FCA25CD451900BD5E8B /* IoFifo.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IoFifo.nasm; sourceTree = ""; }; + 9AA90FCB25CD451900BD5E8B /* IoFifoSev.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IoFifoSev.nasm; sourceTree = ""; }; + 9AA90FCC25CD451900BD5E8B /* IoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLib.c; sourceTree = ""; }; + 9AA90FCD25CD451900BD5E8B /* IoHighLevel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoHighLevel.c; sourceTree = ""; }; + 9AA90FCE25CD451900BD5E8B /* IoLibMsc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibMsc.c; sourceTree = ""; }; + 9AA90FD025CD451900BD5E8B /* IoFifo.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IoFifo.nasm; sourceTree = ""; }; + 9AA90FD125CD451900BD5E8B /* IoFifoSev.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IoFifoSev.nasm; sourceTree = ""; }; + 9AA90FD225CD451900BD5E8B /* IoLibArm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibArm.c; sourceTree = ""; }; + 9AA90FD425CD451900BD5E8B /* ArmVirtMmio.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ArmVirtMmio.S; sourceTree = ""; }; + 9AA90FD525CD451900BD5E8B /* ArmVirtMmio.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = ArmVirtMmio.asm; sourceTree = ""; }; + 9AA90FD625CD451900BD5E8B /* BaseIoLibIntrinsicArmVirt.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIoLibIntrinsicArmVirt.inf; sourceTree = ""; }; + 9AA90FD825CD451900BD5E8B /* ArmVirtMmio.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = ArmVirtMmio.S; sourceTree = ""; }; + 9AA90FD925CD451900BD5E8B /* ArmVirtMmio.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = ArmVirtMmio.asm; sourceTree = ""; }; + 9AA90FDA25CD451900BD5E8B /* IoLibArmVirt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibArmVirt.c; sourceTree = ""; }; + 9AA90FDB25CD451900BD5E8B /* BaseIoLibIntrinsicArmVirt.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIoLibIntrinsicArmVirt.uni; sourceTree = ""; }; + 9AA90FDD25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPciSegmentLibPciCfg2.inf; sourceTree = ""; }; + 9AA90FDE25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPciSegmentLibPciCfg2.uni; sourceTree = ""; }; + 9AA90FDF25CD451900BD5E8B /* PciSegmentLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciSegmentLib.c; sourceTree = ""; }; + 9AA90FE125CD451900BD5E8B /* BasePeCoffGetEntryPointLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePeCoffGetEntryPointLib.uni; sourceTree = ""; }; + 9AA90FE225CD451900BD5E8B /* BasePeCoffGetEntryPointLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePeCoffGetEntryPointLib.inf; sourceTree = ""; }; + 9AA90FE325CD451900BD5E8B /* PeCoffGetEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeCoffGetEntryPoint.c; sourceTree = ""; }; + 9AA90FE525CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLibDevicePathProtocol.inf; sourceTree = ""; }; + 9AA90FE625CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDevicePathLibDevicePathProtocol.uni; sourceTree = ""; }; + 9AA90FE725CD451900BD5E8B /* UefiDevicePathLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiDevicePathLib.c; sourceTree = ""; }; + 9AA90FE925CD451900BD5E8B /* SmmIoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmIoLib.c; sourceTree = ""; }; + 9AA90FEA25CD451900BD5E8B /* SmmIoLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIoLib.uni; sourceTree = ""; }; + 9AA90FEB25CD451900BD5E8B /* SmmIoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIoLib.inf; sourceTree = ""; }; + 9AA90FED25CD451900BD5E8B /* HobLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HobLib.c; sourceTree = ""; }; + 9AA90FEE25CD451900BD5E8B /* DxeCoreHobLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreHobLib.inf; sourceTree = ""; }; + 9AA90FEF25CD451900BD5E8B /* DxeCoreHobLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreHobLib.uni; sourceTree = ""; }; + 9AA90FF125CD451900BD5E8B /* UefiRuntimeServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiRuntimeServicesTableLib.uni; sourceTree = ""; }; + 9AA90FF225CD451900BD5E8B /* UefiRuntimeServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiRuntimeServicesTableLib.inf; sourceTree = ""; }; + 9AA90FF325CD451900BD5E8B /* UefiRuntimeServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiRuntimeServicesTableLib.c; sourceTree = ""; }; + 9AA90FF525CD451900BD5E8B /* PeiPcdLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiPcdLib.c; sourceTree = ""; }; + 9AA90FF625CD451900BD5E8B /* PeiPcdLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPcdLib.inf; sourceTree = ""; }; + 9AA90FF725CD451900BD5E8B /* PeiPcdLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPcdLib.uni; sourceTree = ""; }; + 9AA90FF925CD451900BD5E8B /* SmmMemLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemLib.uni; sourceTree = ""; }; + 9AA90FFA25CD451900BD5E8B /* SmmMemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmMemLib.c; sourceTree = ""; }; + 9AA90FFB25CD451900BD5E8B /* SmmMemLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemLib.inf; sourceTree = ""; }; + 9AA90FFD25CD451900BD5E8B /* UefiFileHandleLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiFileHandleLib.inf; sourceTree = ""; }; + 9AA90FFE25CD451900BD5E8B /* UefiFileHandleLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiFileHandleLib.uni; sourceTree = ""; }; + 9AA90FFF25CD451900BD5E8B /* UefiFileHandleLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiFileHandleLib.c; sourceTree = ""; }; + 9AA9100125CD451900BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA9100225CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimeDebugLibSerialPort.inf; sourceTree = ""; }; + 9AA9100325CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimeDebugLibSerialPort.uni; sourceTree = ""; }; + 9AA9100525CD451900BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA9100625CD451900BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA9100725CD451900BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA9100825CD451900BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA9100A25CD451900BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA9100B25CD451900BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA9100C25CD451900BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA9100D25CD451900BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA9100E25CD451900BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA9100F25CD451900BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA9101025CD451900BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA9101125CD451900BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA9101225CD451900BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA9101325CD451900BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA9101425CD451900BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA9101525CD451900BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA9101625CD451900BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA9101725CD451900BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA9101925CD451900BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA9101A25CD451900BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA9101B25CD451900BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA9101C25CD451900BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA9101D25CD451900BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA9101E25CD451900BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA9101F25CD451900BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA9102025CD451900BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA9102125CD451900BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA9102225CD451900BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA9102325CD451900BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA9102425CD451900BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA9102525CD451900BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA9102625CD451900BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA9102725CD451900BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA9102825CD451900BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA9102925CD451900BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA9102A25CD451900BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA9102B25CD451900BD5E8B /* BaseMemoryLibMmx.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibMmx.inf; sourceTree = ""; }; + 9AA9102C25CD451900BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA9102D25CD451900BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA9102E25CD451900BD5E8B /* BaseMemoryLibMmx.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibMmx.uni; sourceTree = ""; }; + 9AA9103025CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseOrderedCollectionRedBlackTreeLib.inf; sourceTree = ""; }; + 9AA9103125CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseOrderedCollectionRedBlackTreeLib.uni; sourceTree = ""; }; + 9AA9103225CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseOrderedCollectionRedBlackTreeLib.c; sourceTree = ""; }; + 9AA9103425CD451900BD5E8B /* UefiMemoryAllocationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryAllocationLib.inf; sourceTree = ""; }; + 9AA9103525CD451900BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA9103625CD451900BD5E8B /* UefiMemoryAllocationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryAllocationLib.uni; sourceTree = ""; }; + 9AA9103825CD451900BD5E8B /* UefiRuntimeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiRuntimeLib.uni; sourceTree = ""; }; + 9AA9103925CD451900BD5E8B /* UefiRuntimeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiRuntimeLib.inf; sourceTree = ""; }; + 9AA9103A25CD451900BD5E8B /* RuntimeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RuntimeLib.c; sourceTree = ""; }; + 9AA9103C25CD451900BD5E8B /* UefiDebugLibConOut.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibConOut.inf; sourceTree = ""; }; + 9AA9103D25CD451900BD5E8B /* UefiDebugLibConOut.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiDebugLibConOut.uni; sourceTree = ""; }; + 9AA9103E25CD451900BD5E8B /* DebugLibConstructor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLibConstructor.c; sourceTree = ""; }; + 9AA9103F25CD451900BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA9104125CD451900BD5E8B /* BasePciLibPciExpress.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciLibPciExpress.uni; sourceTree = ""; }; + 9AA9104225CD451900BD5E8B /* BasePciLibPciExpress.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePciLibPciExpress.inf; sourceTree = ""; }; + 9AA9104325CD451900BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA9104525CD451900BD5E8B /* UefiLibPrint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiLibPrint.c; sourceTree = ""; }; + 9AA9104625CD451900BD5E8B /* UefiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiLib.uni; sourceTree = ""; }; + 9AA9104725CD451900BD5E8B /* UefiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiLib.inf; sourceTree = ""; }; + 9AA9104825CD451900BD5E8B /* UefiDriverModel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiDriverModel.c; sourceTree = ""; }; + 9AA9104925CD451900BD5E8B /* UefiNotTiano.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiNotTiano.c; sourceTree = ""; }; + 9AA9104A25CD451900BD5E8B /* Console.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Console.c; sourceTree = ""; }; + 9AA9104B25CD451900BD5E8B /* UefiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiLib.c; sourceTree = ""; }; + 9AA9104C25CD451900BD5E8B /* UefiLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiLibInternal.h; sourceTree = ""; }; + 9AA9104D25CD451900BD5E8B /* Acpi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Acpi.c; sourceTree = ""; }; + 9AA9104F25CD451900BD5E8B /* DxeHstiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHstiLib.uni; sourceTree = ""; }; + 9AA9105025CD451900BD5E8B /* HstiDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HstiDxe.c; sourceTree = ""; }; + 9AA9105125CD451900BD5E8B /* DxeHstiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHstiLib.inf; sourceTree = ""; }; + 9AA9105225CD451900BD5E8B /* HstiAip.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HstiAip.c; sourceTree = ""; }; + 9AA9105325CD451900BD5E8B /* HstiDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HstiDxe.h; sourceTree = ""; }; + 9AA9105525CD451900BD5E8B /* PostCode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PostCode.c; sourceTree = ""; }; + 9AA9105625CD451900BD5E8B /* BasePostCodeLibDebug.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePostCodeLibDebug.uni; sourceTree = ""; }; + 9AA9105725CD451900BD5E8B /* BasePostCodeLibDebug.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePostCodeLibDebug.inf; sourceTree = ""; }; + 9AA9105925CD451900BD5E8B /* BaseS3StallLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3StallLib.inf; sourceTree = ""; }; + 9AA9105A25CD451900BD5E8B /* BaseS3StallLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3StallLib.uni; sourceTree = ""; }; + 9AA9105B25CD451900BD5E8B /* S3StallLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3StallLib.c; sourceTree = ""; }; + 9AA9105D25CD451900BD5E8B /* SetMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem64Wrapper.c; sourceTree = ""; }; + 9AA9105E25CD451900BD5E8B /* ZeroMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ZeroMemWrapper.c; sourceTree = ""; }; + 9AA9105F25CD451900BD5E8B /* BaseMemoryLibOptPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibOptPei.uni; sourceTree = ""; }; + 9AA9106025CD451900BD5E8B /* CopyMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CopyMemWrapper.c; sourceTree = ""; }; + 9AA9106125CD451900BD5E8B /* ScanMem64Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem64Wrapper.c; sourceTree = ""; }; + 9AA9106225CD451900BD5E8B /* BaseMemoryLibOptPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryLibOptPei.inf; sourceTree = ""; }; + 9AA9106425CD451900BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA9106525CD451900BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA9106625CD451900BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA9106725CD451900BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA9106825CD451900BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA9106925CD451900BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA9106A25CD451900BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA9106B25CD451900BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA9106C25CD451900BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA9106D25CD451900BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA9106E25CD451900BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA9106F25CD451900BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA9107025CD451900BD5E8B /* ScanMem8Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem8Wrapper.c; sourceTree = ""; }; + 9AA9107125CD451900BD5E8B /* SetMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem32Wrapper.c; sourceTree = ""; }; + 9AA9107325CD451900BD5E8B /* ZeroMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ZeroMem.nasm; sourceTree = ""; }; + 9AA9107425CD451900BD5E8B /* CompareMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CompareMem.nasm; sourceTree = ""; }; + 9AA9107525CD451900BD5E8B /* SetMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem16.nasm; sourceTree = ""; }; + 9AA9107625CD451900BD5E8B /* ScanMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem64.nasm; sourceTree = ""; }; + 9AA9107725CD451900BD5E8B /* ScanMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem32.nasm; sourceTree = ""; }; + 9AA9107825CD451900BD5E8B /* SetMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem.nasm; sourceTree = ""; }; + 9AA9107925CD451900BD5E8B /* IsZeroBuffer.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IsZeroBuffer.nasm; sourceTree = ""; }; + 9AA9107A25CD451900BD5E8B /* SetMem64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem64.nasm; sourceTree = ""; }; + 9AA9107B25CD451900BD5E8B /* ScanMem8.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem8.nasm; sourceTree = ""; }; + 9AA9107C25CD451900BD5E8B /* SetMem32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = SetMem32.nasm; sourceTree = ""; }; + 9AA9107D25CD451900BD5E8B /* ScanMem16.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ScanMem16.nasm; sourceTree = ""; }; + 9AA9107E25CD451900BD5E8B /* CopyMem.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CopyMem.nasm; sourceTree = ""; }; + 9AA9107F25CD451900BD5E8B /* ScanMem32Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem32Wrapper.c; sourceTree = ""; }; + 9AA9108025CD451900BD5E8B /* IsZeroBufferWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsZeroBufferWrapper.c; sourceTree = ""; }; + 9AA9108125CD451900BD5E8B /* SetMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMemWrapper.c; sourceTree = ""; }; + 9AA9108225CD451900BD5E8B /* CompareMemWrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CompareMemWrapper.c; sourceTree = ""; }; + 9AA9108325CD451900BD5E8B /* SetMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetMem16Wrapper.c; sourceTree = ""; }; + 9AA9108425CD451900BD5E8B /* MemLibGuid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemLibGuid.c; sourceTree = ""; }; + 9AA9108525CD451900BD5E8B /* MemLibInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLibInternals.h; sourceTree = ""; }; + 9AA9108625CD451900BD5E8B /* ScanMem16Wrapper.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScanMem16Wrapper.c; sourceTree = ""; }; + 9AA9108825CD451900BD5E8B /* UefiPciLibPciRootBridgeIo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiPciLibPciRootBridgeIo.uni; sourceTree = ""; }; + 9AA9108925CD451900BD5E8B /* UefiPciLibPciRootBridgeIo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiPciLibPciRootBridgeIo.inf; sourceTree = ""; }; + 9AA9108A25CD451900BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA9108C25CD451900BD5E8B /* PeimEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeimEntryPoint.c; sourceTree = ""; }; + 9AA9108D25CD451900BD5E8B /* PeimEntryPoint.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeimEntryPoint.uni; sourceTree = ""; }; + 9AA9108E25CD451900BD5E8B /* PeimEntryPoint.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeimEntryPoint.inf; sourceTree = ""; }; + 9AA9109025CD451900BD5E8B /* SmiHandlerProfileLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmiHandlerProfileLibNull.c; sourceTree = ""; }; + 9AA9109125CD451900BD5E8B /* SmiHandlerProfileLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmiHandlerProfileLibNull.inf; sourceTree = ""; }; + 9AA9109225CD451900BD5E8B /* SmiHandlerProfileLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmiHandlerProfileLibNull.uni; sourceTree = ""; }; + 9AA9109425CD451900BD5E8B /* S3PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3PciLib.c; sourceTree = ""; }; + 9AA9109525CD451900BD5E8B /* BaseS3PciLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3PciLib.uni; sourceTree = ""; }; + 9AA9109625CD451900BD5E8B /* BaseS3PciLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseS3PciLib.inf; sourceTree = ""; }; + 9AA9109825CD451900BD5E8B /* PrintLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrintLibInternal.h; sourceTree = ""; }; + 9AA9109925CD451900BD5E8B /* PrintLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrintLib.c; sourceTree = ""; }; + 9AA9109A25CD451900BD5E8B /* BasePrintLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePrintLib.inf; sourceTree = ""; }; + 9AA9109B25CD451900BD5E8B /* BasePrintLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePrintLib.uni; sourceTree = ""; }; + 9AA9109C25CD451900BD5E8B /* PrintLibInternal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrintLibInternal.c; sourceTree = ""; }; + 9AA9109E25CD451900BD5E8B /* IoLibMmioBuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLibMmioBuffer.c; sourceTree = ""; }; + 9AA9109F25CD451900BD5E8B /* IoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoLib.c; sourceTree = ""; }; + 9AA910A025CD451900BD5E8B /* IoHighLevel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IoHighLevel.c; sourceTree = ""; }; + 9AA910A125CD451900BD5E8B /* PeiIoLibCpuIo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiIoLibCpuIo.uni; sourceTree = ""; }; + 9AA910A225CD451900BD5E8B /* PeiIoLibCpuIo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiIoLibCpuIo.inf; sourceTree = ""; }; + 9AA910A425CD451900BD5E8B /* BaseReportStatusCodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseReportStatusCodeLib.c; sourceTree = ""; }; + 9AA910A525CD451900BD5E8B /* BaseReportStatusCodeLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseReportStatusCodeLibNull.uni; sourceTree = ""; }; + 9AA910A625CD451900BD5E8B /* BaseReportStatusCodeLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseReportStatusCodeLibNull.inf; sourceTree = ""; }; + 9AA910A825CD451900BD5E8B /* DxeServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeServicesTableLib.c; sourceTree = ""; }; + 9AA910A925CD451900BD5E8B /* DxeServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeServicesTableLib.inf; sourceTree = ""; }; + 9AA910AA25CD451900BD5E8B /* DxeServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeServicesTableLib.uni; sourceTree = ""; }; + 9AA910AC25CD451900BD5E8B /* BasePeCoffExtraActionLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePeCoffExtraActionLibNull.inf; sourceTree = ""; }; + 9AA910AD25CD451900BD5E8B /* PeCoffExtraActionLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeCoffExtraActionLibNull.uni; sourceTree = ""; }; + 9AA910AE25CD451900BD5E8B /* PeCoffExtraActionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeCoffExtraActionLib.c; sourceTree = ""; }; + 9AA910B025CD451900BD5E8B /* UsbDxeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbDxeLib.c; sourceTree = ""; }; + 9AA910B125CD451900BD5E8B /* UefiUsbLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiUsbLib.inf; sourceTree = ""; }; + 9AA910B225CD451900BD5E8B /* UefiUsbLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiUsbLib.uni; sourceTree = ""; }; + 9AA910B325CD451900BD5E8B /* Hid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Hid.c; sourceTree = ""; }; + 9AA910B425CD451900BD5E8B /* UefiUsbLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiUsbLibInternal.h; sourceTree = ""; }; + 9AA910B525CD451900BD5E8B /* MdePkg.dec */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdePkg.dec; sourceTree = ""; }; + 9AA910B625CD451900BD5E8B /* MdePkg.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdePkg.uni; sourceTree = ""; }; + 9AA910B725CD451900BD5E8B /* MdePkgExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdePkgExtra.uni; sourceTree = ""; }; + 9AA910B825CD451900BD5E8B /* MdePkg.dsc */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdePkg.dsc; sourceTree = ""; }; + 9AA910BC25CD452900BD5E8B /* Runtime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Runtime.c; sourceTree = ""; }; + 9AA910BD25CD452900BD5E8B /* RuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeDxe.inf; sourceTree = ""; }; + 9AA910BE25CD452900BD5E8B /* RuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeDxe.uni; sourceTree = ""; }; + 9AA910BF25CD452900BD5E8B /* Crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Crc32.c; sourceTree = ""; }; + 9AA910C025CD452900BD5E8B /* Runtime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Runtime.h; sourceTree = ""; }; + 9AA910C125CD452900BD5E8B /* RuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA910C425CD452900BD5E8B /* Stall.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Stall.c; sourceTree = ""; }; + 9AA910C525CD452900BD5E8B /* MemoryProtection.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryProtection.c; sourceTree = ""; }; + 9AA910C625CD452900BD5E8B /* DebugImageInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugImageInfo.c; sourceTree = ""; }; + 9AA910C725CD452900BD5E8B /* InstallConfigurationTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InstallConfigurationTable.c; sourceTree = ""; }; + 9AA910C825CD452900BD5E8B /* SetWatchdogTimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetWatchdogTimer.c; sourceTree = ""; }; + 9AA910C925CD452900BD5E8B /* PropertiesTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PropertiesTable.c; sourceTree = ""; }; + 9AA910CA25CD452900BD5E8B /* MemoryAttributesTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAttributesTable.c; sourceTree = ""; }; + 9AA910CC25CD452900BD5E8B /* Handle.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Handle.c; sourceTree = ""; }; + 9AA910CD25CD452900BD5E8B /* Handle.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Handle.h; sourceTree = ""; }; + 9AA910CE25CD452900BD5E8B /* Locate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Locate.c; sourceTree = ""; }; + 9AA910CF25CD452900BD5E8B /* DriverSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DriverSupport.c; sourceTree = ""; }; + 9AA910D025CD452900BD5E8B /* Notify.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Notify.c; sourceTree = ""; }; + 9AA910D125CD452900BD5E8B /* DxeMain.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeMain.inf; sourceTree = ""; }; + 9AA910D325CD452900BD5E8B /* FwVolBlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVolBlock.c; sourceTree = ""; }; + 9AA910D425CD452900BD5E8B /* FwVolBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FwVolBlock.h; sourceTree = ""; }; + 9AA910D625CD452900BD5E8B /* Dispatcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dispatcher.c; sourceTree = ""; }; + 9AA910D725CD452900BD5E8B /* Dependency.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dependency.c; sourceTree = ""; }; + 9AA910D925CD452900BD5E8B /* FwVolAttrib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVolAttrib.c; sourceTree = ""; }; + 9AA910DA25CD452900BD5E8B /* FwVolRead.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVolRead.c; sourceTree = ""; }; + 9AA910DB25CD452900BD5E8B /* FwVolDriver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FwVolDriver.h; sourceTree = ""; }; + 9AA910DC25CD452900BD5E8B /* Ffs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ffs.c; sourceTree = ""; }; + 9AA910DD25CD452900BD5E8B /* FwVolWrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVolWrite.c; sourceTree = ""; }; + 9AA910DE25CD452900BD5E8B /* FwVol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVol.c; sourceTree = ""; }; + 9AA910E025CD452900BD5E8B /* DxeProtocolNotify.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeProtocolNotify.c; sourceTree = ""; }; + 9AA910E125CD452900BD5E8B /* DxeMain.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeMain.c; sourceTree = ""; }; + 9AA910E325CD452900BD5E8B /* Library.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Library.c; sourceTree = ""; }; + 9AA910E525CD452900BD5E8B /* Gcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Gcd.c; sourceTree = ""; }; + 9AA910E625CD452900BD5E8B /* Gcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Gcd.h; sourceTree = ""; }; + 9AA910E825CD452900BD5E8B /* Image.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Image.c; sourceTree = ""; }; + 9AA910E925CD452900BD5E8B /* Image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Image.h; sourceTree = ""; }; + 9AA910EA25CD452900BD5E8B /* DxeMain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeMain.h; sourceTree = ""; }; + 9AA910EB25CD452900BD5E8B /* DxeCore.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCore.uni; sourceTree = ""; }; + 9AA910ED25CD452900BD5E8B /* CoreSectionExtraction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CoreSectionExtraction.c; sourceTree = ""; }; + 9AA910EF25CD452900BD5E8B /* Timer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Timer.c; sourceTree = ""; }; + 9AA910F025CD452900BD5E8B /* Event.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Event.h; sourceTree = ""; }; + 9AA910F125CD452900BD5E8B /* Event.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Event.c; sourceTree = ""; }; + 9AA910F225CD452900BD5E8B /* Tpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Tpl.c; sourceTree = ""; }; + 9AA910F325CD452900BD5E8B /* DxeCoreExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreExtra.uni; sourceTree = ""; }; + 9AA910F525CD452900BD5E8B /* HeapGuard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HeapGuard.c; sourceTree = ""; }; + 9AA910F625CD452900BD5E8B /* MemData.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemData.c; sourceTree = ""; }; + 9AA910F725CD452900BD5E8B /* MemoryProfileRecord.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryProfileRecord.c; sourceTree = ""; }; + 9AA910F825CD452900BD5E8B /* Page.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Page.c; sourceTree = ""; }; + 9AA910F925CD452900BD5E8B /* HeapGuard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HeapGuard.h; sourceTree = ""; }; + 9AA910FA25CD452900BD5E8B /* Imem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Imem.h; sourceTree = ""; }; + 9AA910FB25CD452900BD5E8B /* Pool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Pool.c; sourceTree = ""; }; + 9AA910FD25CD452900BD5E8B /* Smi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Smi.c; sourceTree = ""; }; + 9AA910FE25CD452900BD5E8B /* SmiHandlerProfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmiHandlerProfile.c; sourceTree = ""; }; + 9AA910FF25CD452900BD5E8B /* HeapGuard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HeapGuard.c; sourceTree = ""; }; + 9AA9110025CD452900BD5E8B /* PiSmmCore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PiSmmCore.c; sourceTree = ""; }; + 9AA9110125CD452900BD5E8B /* Dispatcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dispatcher.c; sourceTree = ""; }; + 9AA9110225CD452900BD5E8B /* PiSmmIplExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmIplExtra.uni; sourceTree = ""; }; + 9AA9110325CD452900BD5E8B /* SmramProfileRecord.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmramProfileRecord.c; sourceTree = ""; }; + 9AA9110425CD452900BD5E8B /* Handle.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Handle.c; sourceTree = ""; }; + 9AA9110525CD452900BD5E8B /* PiSmmCoreExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreExtra.uni; sourceTree = ""; }; + 9AA9110625CD452900BD5E8B /* InstallConfigurationTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InstallConfigurationTable.c; sourceTree = ""; }; + 9AA9110725CD452900BD5E8B /* PiSmmCorePrivateData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCorePrivateData.h; sourceTree = ""; }; + 9AA9110825CD452900BD5E8B /* PiSmmIpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PiSmmIpl.c; sourceTree = ""; }; + 9AA9110925CD452900BD5E8B /* Page.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Page.c; sourceTree = ""; }; + 9AA9110A25CD452900BD5E8B /* PiSmmCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCore.h; sourceTree = ""; }; + 9AA9110B25CD452900BD5E8B /* HeapGuard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HeapGuard.h; sourceTree = ""; }; + 9AA9110C25CD452900BD5E8B /* PiSmmCore.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCore.inf; sourceTree = ""; }; + 9AA9110D25CD452900BD5E8B /* Locate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Locate.c; sourceTree = ""; }; + 9AA9110E25CD452900BD5E8B /* Dependency.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dependency.c; sourceTree = ""; }; + 9AA9110F25CD452900BD5E8B /* Pool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Pool.c; sourceTree = ""; }; + 9AA9111025CD452900BD5E8B /* PiSmmCore.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCore.uni; sourceTree = ""; }; + 9AA9111125CD452900BD5E8B /* MemoryAttributesTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAttributesTable.c; sourceTree = ""; }; + 9AA9111225CD452900BD5E8B /* PiSmmIpl.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmIpl.uni; sourceTree = ""; }; + 9AA9111325CD452900BD5E8B /* Notify.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Notify.c; sourceTree = ""; }; + 9AA9111425CD452900BD5E8B /* PiSmmIpl.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmIpl.inf; sourceTree = ""; }; + 9AA9111625CD452900BD5E8B /* PeiMain.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiMain.inf; sourceTree = ""; }; + 9AA9111825CD452900BD5E8B /* PciCfg2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciCfg2.c; sourceTree = ""; }; + 9AA9111A25CD452900BD5E8B /* MemoryServices.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryServices.c; sourceTree = ""; }; + 9AA9111C25CD452900BD5E8B /* Hob.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Hob.c; sourceTree = ""; }; + 9AA9111E25CD452900BD5E8B /* Security.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Security.c; sourceTree = ""; }; + 9AA9112025CD452900BD5E8B /* Reset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Reset.c; sourceTree = ""; }; + 9AA9112225CD452900BD5E8B /* Dispatcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dispatcher.c; sourceTree = ""; }; + 9AA9112425CD452900BD5E8B /* FwVol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FwVol.h; sourceTree = ""; }; + 9AA9112525CD452900BD5E8B /* FwVol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FwVol.c; sourceTree = ""; }; + 9AA9112725CD452900BD5E8B /* Dependency.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Dependency.h; sourceTree = ""; }; + 9AA9112825CD452900BD5E8B /* Dependency.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Dependency.c; sourceTree = ""; }; + 9AA9112A25CD452900BD5E8B /* Image.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Image.c; sourceTree = ""; }; + 9AA9112C25CD452900BD5E8B /* PeiMain.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiMain.c; sourceTree = ""; }; + 9AA9112E25CD452900BD5E8B /* StatusCode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StatusCode.c; sourceTree = ""; }; + 9AA9113025CD452900BD5E8B /* BootMode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootMode.c; sourceTree = ""; }; + 9AA9113225CD452900BD5E8B /* CpuIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuIo.c; sourceTree = ""; }; + 9AA9113425CD452900BD5E8B /* Ppi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ppi.c; sourceTree = ""; }; + 9AA9113525CD452900BD5E8B /* PeiCoreExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCoreExtra.uni; sourceTree = ""; }; + 9AA9113625CD452900BD5E8B /* PeiMain.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiMain.h; sourceTree = ""; }; + 9AA9113725CD452900BD5E8B /* PeiCore.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCore.uni; sourceTree = ""; }; + 9AA9113925CD452900BD5E8B /* DxeIpl.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIpl.uni; sourceTree = ""; }; + 9AA9113B25CD452900BD5E8B /* DxeLoadFunc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeLoadFunc.c; sourceTree = ""; }; + 9AA9113C25CD452900BD5E8B /* DxeLoad.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeLoad.c; sourceTree = ""; }; + 9AA9113D25CD452900BD5E8B /* DxeIpl.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIpl.inf; sourceTree = ""; }; + 9AA9113F25CD452900BD5E8B /* VirtualMemory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualMemory.c; sourceTree = ""; }; + 9AA9114025CD452900BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA9114125CD452900BD5E8B /* DxeLoadFunc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeLoadFunc.c; sourceTree = ""; }; + 9AA9114225CD452900BD5E8B /* DxeIpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeIpl.h; sourceTree = ""; }; + 9AA9114425CD452900BD5E8B /* IdtVectorAsm.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = IdtVectorAsm.nasm; sourceTree = ""; }; + 9AA9114525CD452900BD5E8B /* DxeLoadFunc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeLoadFunc.c; sourceTree = ""; }; + 9AA9114725CD452900BD5E8B /* DxeLoadFunc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeLoadFunc.c; sourceTree = ""; }; + 9AA9114825CD452900BD5E8B /* DxeIplExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIplExtra.uni; sourceTree = ""; }; + 9AA9114B25CD452900BD5E8B /* DebugPort.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugPort.c; sourceTree = ""; }; + 9AA9114C25CD452900BD5E8B /* DebugPortDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugPortDxeExtra.uni; sourceTree = ""; }; + 9AA9114D25CD452900BD5E8B /* DebugPortDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugPortDxe.inf; sourceTree = ""; }; + 9AA9114E25CD452900BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9114F25CD452900BD5E8B /* DebugPortDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugPortDxe.uni; sourceTree = ""; }; + 9AA9115025CD452900BD5E8B /* DebugPort.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugPort.h; sourceTree = ""; }; + 9AA9115225CD452900BD5E8B /* EsrtFmpDebugPrint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EsrtFmpDebugPrint.c; sourceTree = ""; }; + 9AA9115325CD452900BD5E8B /* EsrtFmpDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtFmpDxeExtra.uni; sourceTree = ""; }; + 9AA9115425CD452900BD5E8B /* EsrtFmpDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtFmpDxe.inf; sourceTree = ""; }; + 9AA9115525CD452900BD5E8B /* EsrtFmpDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtFmpDxe.uni; sourceTree = ""; }; + 9AA9115625CD452900BD5E8B /* EsrtFmp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EsrtFmp.c; sourceTree = ""; }; + 9AA9115925CD452900BD5E8B /* PlDebugSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlDebugSupport.h; sourceTree = ""; }; + 9AA9115A25CD452900BD5E8B /* PlDebugSupportX64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlDebugSupportX64.c; sourceTree = ""; }; + 9AA9115B25CD452900BD5E8B /* AsmFuncs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = AsmFuncs.nasm; sourceTree = ""; }; + 9AA9115C25CD452900BD5E8B /* DebugSupportDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugSupportDxeExtra.uni; sourceTree = ""; }; + 9AA9115D25CD452900BD5E8B /* DebugSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugSupport.c; sourceTree = ""; }; + 9AA9115F25CD452900BD5E8B /* PlDebugSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlDebugSupport.h; sourceTree = ""; }; + 9AA9116025CD452900BD5E8B /* AsmFuncs.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = AsmFuncs.nasm; sourceTree = ""; }; + 9AA9116125CD452900BD5E8B /* PlDebugSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlDebugSupport.c; sourceTree = ""; }; + 9AA9116225CD452900BD5E8B /* PlDebugSupportIa32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlDebugSupportIa32.c; sourceTree = ""; }; + 9AA9116325CD452900BD5E8B /* DebugSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugSupport.h; sourceTree = ""; }; + 9AA9116425CD452900BD5E8B /* DebugSupportDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugSupportDxe.uni; sourceTree = ""; }; + 9AA9116525CD452900BD5E8B /* DebugSupportDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugSupportDxe.inf; sourceTree = ""; }; + 9AA9116825CD452900BD5E8B /* AmlNamespace.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AmlNamespace.c; sourceTree = ""; }; + 9AA9116925CD452900BD5E8B /* AcpiTableDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiTableDxeExtra.uni; sourceTree = ""; }; + 9AA9116A25CD452900BD5E8B /* AcpiTableProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiTableProtocol.c; sourceTree = ""; }; + 9AA9116B25CD452900BD5E8B /* AmlOption.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AmlOption.c; sourceTree = ""; }; + 9AA9116C25CD452900BD5E8B /* AmlString.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AmlString.c; sourceTree = ""; }; + 9AA9116D25CD452900BD5E8B /* AcpiSdt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiSdt.c; sourceTree = ""; }; + 9AA9116E25CD452900BD5E8B /* AcpiTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiTable.c; sourceTree = ""; }; + 9AA9116F25CD452900BD5E8B /* AcpiTableDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiTableDxe.uni; sourceTree = ""; }; + 9AA9117025CD452900BD5E8B /* AmlChild.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AmlChild.c; sourceTree = ""; }; + 9AA9117125CD452900BD5E8B /* AcpiTableDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiTableDxe.inf; sourceTree = ""; }; + 9AA9117225CD452900BD5E8B /* AcpiSdt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiSdt.h; sourceTree = ""; }; + 9AA9117325CD452900BD5E8B /* Aml.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Aml.c; sourceTree = ""; }; + 9AA9117425CD452900BD5E8B /* AcpiTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiTable.h; sourceTree = ""; }; + 9AA9117625CD452900BD5E8B /* AcpiS3ContextSave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiS3ContextSave.c; sourceTree = ""; }; + 9AA9117725CD452900BD5E8B /* S3SaveStateDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = S3SaveStateDxeExtra.uni; sourceTree = ""; }; + 9AA9117825CD452900BD5E8B /* S3SaveState.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = S3SaveState.c; sourceTree = ""; }; + 9AA9117925CD452900BD5E8B /* S3SaveStateDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = S3SaveStateDxe.uni; sourceTree = ""; }; + 9AA9117A25CD452900BD5E8B /* S3SaveStateDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = S3SaveStateDxe.inf; sourceTree = ""; }; + 9AA9117B25CD452900BD5E8B /* InternalS3SaveState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalS3SaveState.h; sourceTree = ""; }; + 9AA9117D25CD452900BD5E8B /* BootGraphicsResourceTableDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootGraphicsResourceTableDxeExtra.uni; sourceTree = ""; }; + 9AA9117E25CD452900BD5E8B /* BootGraphicsResourceTableDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootGraphicsResourceTableDxe.c; sourceTree = ""; }; + 9AA9117F25CD452900BD5E8B /* BootGraphicsResourceTableDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootGraphicsResourceTableDxe.inf; sourceTree = ""; }; + 9AA9118025CD452900BD5E8B /* BootGraphicsResourceTableDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootGraphicsResourceTableDxe.uni; sourceTree = ""; }; + 9AA9118225CD452900BD5E8B /* FirmwarePerformanceSmm.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceSmm.uni; sourceTree = ""; }; + 9AA9118325CD452900BD5E8B /* FirmwarePerformanceSmm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceSmm.inf; sourceTree = ""; }; + 9AA9118425CD452900BD5E8B /* FirmwarePerformanceSmmExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceSmmExtra.uni; sourceTree = ""; }; + 9AA9118525CD452900BD5E8B /* FirmwarePerformanceSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FirmwarePerformanceSmm.c; sourceTree = ""; }; + 9AA9118725CD452900BD5E8B /* FirmwarePerformancePei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FirmwarePerformancePei.c; sourceTree = ""; }; + 9AA9118825CD452900BD5E8B /* FirmwarePerformancePeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformancePeiExtra.uni; sourceTree = ""; }; + 9AA9118925CD452900BD5E8B /* FirmwarePerformancePei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformancePei.inf; sourceTree = ""; }; + 9AA9118A25CD452900BD5E8B /* FirmwarePerformancePei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformancePei.uni; sourceTree = ""; }; + 9AA9118C25CD452900BD5E8B /* AcpiPlatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiPlatform.c; sourceTree = ""; }; + 9AA9118D25CD452900BD5E8B /* AcpiPlatformDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiPlatformDxe.inf; sourceTree = ""; }; + 9AA9118E25CD452900BD5E8B /* AcpiPlatformExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiPlatformExtra.uni; sourceTree = ""; }; + 9AA9118F25CD452900BD5E8B /* AcpiPlatform.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiPlatform.uni; sourceTree = ""; }; + 9AA9119125CD452900BD5E8B /* BootScriptExecutorDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootScriptExecutorDxe.inf; sourceTree = ""; }; + 9AA9119225CD452900BD5E8B /* BootScriptExecutorDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootScriptExecutorDxe.uni; sourceTree = ""; }; + 9AA9119425CD452900BD5E8B /* S3Asm.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = S3Asm.nasm; sourceTree = ""; }; + 9AA9119525CD452900BD5E8B /* SetIdtEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetIdtEntry.c; sourceTree = ""; }; + 9AA9119625CD452900BD5E8B /* ScriptExecute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScriptExecute.h; sourceTree = ""; }; + 9AA9119725CD452900BD5E8B /* BootScriptExecutorDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootScriptExecutorDxeExtra.uni; sourceTree = ""; }; + 9AA9119925CD452900BD5E8B /* S3Asm.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = S3Asm.nasm; sourceTree = ""; }; + 9AA9119A25CD452900BD5E8B /* SetIdtEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SetIdtEntry.c; sourceTree = ""; }; + 9AA9119B25CD452900BD5E8B /* ScriptExecute.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScriptExecute.c; sourceTree = ""; }; + 9AA9119D25CD452900BD5E8B /* SmmS3SaveStateExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmS3SaveStateExtra.uni; sourceTree = ""; }; + 9AA9119E25CD452900BD5E8B /* SmmS3SaveState.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmS3SaveState.inf; sourceTree = ""; }; + 9AA9119F25CD452900BD5E8B /* SmmS3SaveState.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmS3SaveState.uni; sourceTree = ""; }; + 9AA911A025CD452900BD5E8B /* InternalSmmSaveState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalSmmSaveState.h; sourceTree = ""; }; + 9AA911A125CD452900BD5E8B /* SmmS3SaveState.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmS3SaveState.c; sourceTree = ""; }; + 9AA911A325CD452900BD5E8B /* FirmwarePerformanceDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceDxe.inf; sourceTree = ""; }; + 9AA911A425CD452900BD5E8B /* FirmwarePerformanceDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceDxe.uni; sourceTree = ""; }; + 9AA911A525CD452900BD5E8B /* FirmwarePerformanceDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FirmwarePerformanceDxeExtra.uni; sourceTree = ""; }; + 9AA911A625CD452900BD5E8B /* FirmwarePerformanceDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FirmwarePerformanceDxe.c; sourceTree = ""; }; + 9AA911A825CD452900BD5E8B /* EbcDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDxe.uni; sourceTree = ""; }; + 9AA911A925CD452900BD5E8B /* EbcInt.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EbcInt.h; sourceTree = ""; }; + 9AA911AA25CD452900BD5E8B /* EbcExecute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EbcExecute.h; sourceTree = ""; }; + 9AA911AB25CD452900BD5E8B /* EbcDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDxe.inf; sourceTree = ""; }; + 9AA911AD25CD452900BD5E8B /* EbcSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcSupport.c; sourceTree = ""; }; + 9AA911AE25CD452900BD5E8B /* EbcLowLevel.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EbcLowLevel.nasm; sourceTree = ""; }; + 9AA911AF25CD452900BD5E8B /* EbcDebugger.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebugger.inf; sourceTree = ""; }; + 9AA911B025CD452900BD5E8B /* EbcDebuggerHook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcDebuggerHook.c; sourceTree = ""; }; + 9AA911B225CD452900BD5E8B /* EdbCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbCommand.h; sourceTree = ""; }; + 9AA911B325CD452900BD5E8B /* EdbDisasm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbDisasm.h; sourceTree = ""; }; + 9AA911B425CD452900BD5E8B /* EdbDisasmSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbDisasmSupport.c; sourceTree = ""; }; + 9AA911B525CD452900BD5E8B /* EdbSymbol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbSymbol.c; sourceTree = ""; }; + 9AA911B625CD452900BD5E8B /* EdbSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbSupport.h; sourceTree = ""; }; + 9AA911B725CD452900BD5E8B /* EdbCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbCommon.h; sourceTree = ""; }; + 9AA911B825CD452900BD5E8B /* EdbHook.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbHook.c; sourceTree = ""; }; + 9AA911B925CD452900BD5E8B /* EdbSupportUI.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbSupportUI.c; sourceTree = ""; }; + 9AA911BA25CD452900BD5E8B /* EdbSupportString.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbSupportString.c; sourceTree = ""; }; + 9AA911BB25CD452900BD5E8B /* EdbCmdExtIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdExtIo.c; sourceTree = ""; }; + 9AA911BC25CD452900BD5E8B /* Edb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Edb.c; sourceTree = ""; }; + 9AA911BD25CD452900BD5E8B /* EdbCmdMemory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdMemory.c; sourceTree = ""; }; + 9AA911BE25CD452900BD5E8B /* EbcDebuggerConfig.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcDebuggerConfig.c; sourceTree = ""; }; + 9AA911BF25CD452900BD5E8B /* EdbDisasmSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbDisasmSupport.h; sourceTree = ""; }; + 9AA911C025CD452900BD5E8B /* EdbSymbol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbSymbol.h; sourceTree = ""; }; + 9AA911C125CD452900BD5E8B /* EdbSupportFile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbSupportFile.c; sourceTree = ""; }; + 9AA911C225CD452900BD5E8B /* EdbCommand.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCommand.c; sourceTree = ""; }; + 9AA911C325CD452900BD5E8B /* EdbCmdStep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdStep.c; sourceTree = ""; }; + 9AA911C425CD452900BD5E8B /* EdbDisasm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbDisasm.c; sourceTree = ""; }; + 9AA911C525CD452900BD5E8B /* EdbCmdRegister.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdRegister.c; sourceTree = ""; }; + 9AA911C625CD452900BD5E8B /* EdbHook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EdbHook.h; sourceTree = ""; }; + 9AA911C725CD452900BD5E8B /* EdbCmdGo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdGo.c; sourceTree = ""; }; + 9AA911C825CD452900BD5E8B /* EdbCmdScope.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdScope.c; sourceTree = ""; }; + 9AA911C925CD452900BD5E8B /* EdbCmdQuit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdQuit.c; sourceTree = ""; }; + 9AA911CA25CD452900BD5E8B /* EdbCmdHelp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdHelp.c; sourceTree = ""; }; + 9AA911CB25CD452900BD5E8B /* EdbCmdExtPci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdExtPci.c; sourceTree = ""; }; + 9AA911CC25CD452900BD5E8B /* EdbCmdBranch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdBranch.c; sourceTree = ""; }; + 9AA911CD25CD452900BD5E8B /* Edb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Edb.h; sourceTree = ""; }; + 9AA911CE25CD452900BD5E8B /* EdbCmdBreak.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdBreak.c; sourceTree = ""; }; + 9AA911CF25CD452900BD5E8B /* EdbCmdSymbol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdSymbol.c; sourceTree = ""; }; + 9AA911D025CD452900BD5E8B /* EdbCmdBreakpoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EdbCmdBreakpoint.c; sourceTree = ""; }; + 9AA911D125CD452900BD5E8B /* EbcDebugger.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebugger.uni; sourceTree = ""; }; + 9AA911D225CD452900BD5E8B /* EbcDebuggerConfig.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebuggerConfig.uni; sourceTree = ""; }; + 9AA911D425CD452900BD5E8B /* EbcSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcSupport.c; sourceTree = ""; }; + 9AA911D525CD452900BD5E8B /* EbcLowLevel.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = EbcLowLevel.nasm; sourceTree = ""; }; + 9AA911D625CD452900BD5E8B /* EbcInt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcInt.c; sourceTree = ""; }; + 9AA911D725CD452900BD5E8B /* EbcDebuggerConfig.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebuggerConfig.inf; sourceTree = ""; }; + 9AA911D825CD452900BD5E8B /* EbcExecute.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcExecute.c; sourceTree = ""; }; + 9AA911D925CD452900BD5E8B /* EbcDebuggerHook.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EbcDebuggerHook.h; sourceTree = ""; }; + 9AA911DB25CD452900BD5E8B /* EbcSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EbcSupport.c; sourceTree = ""; }; + 9AA911DC25CD452900BD5E8B /* EbcLowLevel.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; path = EbcLowLevel.S; sourceTree = ""; }; + 9AA911DD25CD452900BD5E8B /* EbcDebuggerConfigExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebuggerConfigExtra.uni; sourceTree = ""; }; + 9AA911DE25CD452900BD5E8B /* EbcDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDxeExtra.uni; sourceTree = ""; }; + 9AA911DF25CD452900BD5E8B /* EbcDebuggerExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EbcDebuggerExtra.uni; sourceTree = ""; }; + 9AA911E125CD452900BD5E8B /* EsrtDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EsrtDxe.c; sourceTree = ""; }; + 9AA911E225CD452900BD5E8B /* EsrtImpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EsrtImpl.c; sourceTree = ""; }; + 9AA911E325CD452900BD5E8B /* EsrtDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtDxe.uni; sourceTree = ""; }; + 9AA911E425CD452900BD5E8B /* EsrtImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EsrtImpl.h; sourceTree = ""; }; + 9AA911E525CD452900BD5E8B /* EsrtDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtDxe.inf; sourceTree = ""; }; + 9AA911E625CD452900BD5E8B /* EsrtDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EsrtDxeExtra.uni; sourceTree = ""; }; + 9AA911E825CD452900BD5E8B /* SmbiosDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmbiosDxe.h; sourceTree = ""; }; + 9AA911E925CD452900BD5E8B /* SmbiosDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosDxe.c; sourceTree = ""; }; + 9AA911EA25CD452900BD5E8B /* SmbiosDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosDxe.inf; sourceTree = ""; }; + 9AA911EB25CD452900BD5E8B /* SmbiosDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosDxe.uni; sourceTree = ""; }; + 9AA911EC25CD452900BD5E8B /* SmbiosDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosDxeExtra.uni; sourceTree = ""; }; + 9AA911EE25CD452900BD5E8B /* SectionExtractionDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionDxe.uni; sourceTree = ""; }; + 9AA911EF25CD452900BD5E8B /* SectionExtractionDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionDxe.inf; sourceTree = ""; }; + 9AA911F025CD452900BD5E8B /* SectionExtractionDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SectionExtractionDxe.c; sourceTree = ""; }; + 9AA911F125CD452900BD5E8B /* SectionExtractionDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionDxeExtra.uni; sourceTree = ""; }; + 9AA911F325CD452900BD5E8B /* RegularExpressionDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RegularExpressionDxe.inf; sourceTree = ""; }; + 9AA911F425CD452900BD5E8B /* RegularExpressionDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RegularExpressionDxe.h; sourceTree = ""; }; + 9AA911F625CD452900BD5E8B /* unicode_property_data_posix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_property_data_posix.c; sourceTree = ""; }; + 9AA911F725CD452900BD5E8B /* unicode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode.c; sourceTree = ""; }; + 9AA911F825CD452900BD5E8B /* st.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = st.h; sourceTree = ""; }; + 9AA911F925CD452900BD5E8B /* ascii.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ascii.c; sourceTree = ""; }; + 9AA911FA25CD452900BD5E8B /* unicode_fold2_key.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_fold2_key.c; sourceTree = ""; }; + 9AA911FB25CD452900BD5E8B /* regparse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = regparse.h; sourceTree = ""; }; + 9AA911FC25CD452900BD5E8B /* AUTHORS */ = {isa = PBXFileReference; lastKnownFileType = text; path = AUTHORS; sourceTree = ""; }; + 9AA911FD25CD452900BD5E8B /* unicode_fold3_key.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_fold3_key.c; sourceTree = ""; }; + 9AA911FE25CD452900BD5E8B /* regposix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regposix.c; sourceTree = ""; }; + 9AA911FF25CD452900BD5E8B /* unicode_fold1_key.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_fold1_key.c; sourceTree = ""; }; + 9AA9120025CD452900BD5E8B /* unicode_wb_data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_wb_data.c; sourceTree = ""; }; + 9AA9120125CD452900BD5E8B /* regexec.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regexec.c; sourceTree = ""; }; + 9AA9120225CD452900BD5E8B /* regint.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = regint.h; sourceTree = ""; }; + 9AA9120325CD452900BD5E8B /* regenc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = regenc.h; sourceTree = ""; }; + 9AA9120425CD452900BD5E8B /* regcomp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regcomp.c; sourceTree = ""; }; + 9AA9120525CD452900BD5E8B /* unicode_egcb_data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_egcb_data.c; sourceTree = ""; }; + 9AA9120625CD452900BD5E8B /* regtrav.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regtrav.c; sourceTree = ""; }; + 9AA9120725CD452900BD5E8B /* regsyntax.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regsyntax.c; sourceTree = ""; }; + 9AA9120825CD452900BD5E8B /* OnigurumaIntrinsics.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OnigurumaIntrinsics.c; sourceTree = ""; }; + 9AA9120925CD452900BD5E8B /* regversion.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regversion.c; sourceTree = ""; }; + 9AA9120A25CD452900BD5E8B /* OnigurumaUefiPort.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OnigurumaUefiPort.c; sourceTree = ""; }; + 9AA9120B25CD452900BD5E8B /* unicode_property_data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_property_data.c; sourceTree = ""; }; + 9AA9120C25CD452900BD5E8B /* README */ = {isa = PBXFileReference; lastKnownFileType = text; path = README; sourceTree = ""; }; + 9AA9120D25CD452900BD5E8B /* st.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = st.c; sourceTree = ""; }; + 9AA9120E25CD452900BD5E8B /* oniggnu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = oniggnu.h; sourceTree = ""; }; + 9AA9120F25CD452900BD5E8B /* onigposix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = onigposix.h; sourceTree = ""; }; + 9AA9121025CD452900BD5E8B /* COPYING */ = {isa = PBXFileReference; lastKnownFileType = text; path = COPYING; sourceTree = ""; }; + 9AA9121125CD452900BD5E8B /* utf16_le.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = utf16_le.c; sourceTree = ""; }; + 9AA9121225CD452900BD5E8B /* oniguruma.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = oniguruma.h; sourceTree = ""; }; + 9AA9121325CD452900BD5E8B /* regposerr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regposerr.c; sourceTree = ""; }; + 9AA9121425CD452900BD5E8B /* regparse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regparse.c; sourceTree = ""; }; + 9AA9121525CD452900BD5E8B /* onig_init.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = onig_init.c; sourceTree = ""; }; + 9AA9121625CD452900BD5E8B /* regenc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regenc.c; sourceTree = ""; }; + 9AA9121725CD452900BD5E8B /* regerror.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = regerror.c; sourceTree = ""; }; + 9AA9121825CD452900BD5E8B /* OnigurumaUefiPort.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OnigurumaUefiPort.h; sourceTree = ""; }; + 9AA9121925CD452900BD5E8B /* unicode_unfold_key.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_unfold_key.c; sourceTree = ""; }; + 9AA9121A25CD452900BD5E8B /* reggnu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = reggnu.c; sourceTree = ""; }; + 9AA9121B25CD452900BD5E8B /* unicode_fold_data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unicode_fold_data.c; sourceTree = ""; }; + 9AA9121C25CD452900BD5E8B /* RegularExpressionDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RegularExpressionDxe.c; sourceTree = ""; }; + 9AA9121F25CD452900BD5E8B /* Measurement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Measurement.c; sourceTree = ""; }; + 9AA9122025CD452900BD5E8B /* SpeculationBarrierDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SpeculationBarrierDxe.c; sourceTree = ""; }; + 9AA9122125CD452900BD5E8B /* VariableStandaloneMm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableStandaloneMm.inf; sourceTree = ""; }; + 9AA9122225CD452900BD5E8B /* VariableSmm.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmm.uni; sourceTree = ""; }; + 9AA9122325CD452900BD5E8B /* VariableSmmRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmmRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA9122425CD452900BD5E8B /* SpeculationBarrierSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SpeculationBarrierSmm.c; sourceTree = ""; }; + 9AA9122525CD452900BD5E8B /* VariableSmm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmm.inf; sourceTree = ""; }; + 9AA9122625CD452900BD5E8B /* VariableTraditionalMm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableTraditionalMm.c; sourceTree = ""; }; + 9AA9122725CD452900BD5E8B /* PrivilegePolymorphic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrivilegePolymorphic.h; sourceTree = ""; }; + 9AA9122825CD452900BD5E8B /* VariableExLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableExLib.c; sourceTree = ""; }; + 9AA9122925CD452900BD5E8B /* Variable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Variable.h; sourceTree = ""; }; + 9AA9122A25CD452900BD5E8B /* VariableSmmRuntimeDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableSmmRuntimeDxe.c; sourceTree = ""; }; + 9AA9122B25CD452900BD5E8B /* VariableSmmRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmmRuntimeDxe.inf; sourceTree = ""; }; + 9AA9122C25CD452900BD5E8B /* VariableStandaloneMm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableStandaloneMm.c; sourceTree = ""; }; + 9AA9122D25CD452900BD5E8B /* VariableSmmExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmmExtra.uni; sourceTree = ""; }; + 9AA9122E25CD452900BD5E8B /* VariableSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableSmm.c; sourceTree = ""; }; + 9AA9122F25CD452900BD5E8B /* TcgMorLockSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TcgMorLockSmm.c; sourceTree = ""; }; + 9AA9123025CD452900BD5E8B /* Reclaim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Reclaim.c; sourceTree = ""; }; + 9AA9123125CD452900BD5E8B /* VariableDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableDxe.c; sourceTree = ""; }; + 9AA9123225CD452900BD5E8B /* VariableSmmRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableSmmRuntimeDxe.uni; sourceTree = ""; }; + 9AA9123325CD452900BD5E8B /* TcgMorLockDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TcgMorLockDxe.c; sourceTree = ""; }; + 9AA9123425CD452900BD5E8B /* VarCheck.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheck.c; sourceTree = ""; }; + 9AA9123525CD452900BD5E8B /* VariableRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableRuntimeDxe.inf; sourceTree = ""; }; + 9AA9123625CD452900BD5E8B /* VariableRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA9123725CD452900BD5E8B /* VariableRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableRuntimeDxe.uni; sourceTree = ""; }; + 9AA9123825CD452900BD5E8B /* Variable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Variable.c; sourceTree = ""; }; + 9AA9123A25CD452900BD5E8B /* PeiVariableExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiVariableExtra.uni; sourceTree = ""; }; + 9AA9123B25CD452900BD5E8B /* PeiVariable.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiVariable.uni; sourceTree = ""; }; + 9AA9123C25CD452900BD5E8B /* Variable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Variable.h; sourceTree = ""; }; + 9AA9123D25CD452900BD5E8B /* VariablePei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariablePei.inf; sourceTree = ""; }; + 9AA9123E25CD452900BD5E8B /* Variable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Variable.c; sourceTree = ""; }; + 9AA9124025CD452900BD5E8B /* InputHandler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InputHandler.c; sourceTree = ""; }; + 9AA9124125CD452900BD5E8B /* FormDisplay.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FormDisplay.c; sourceTree = ""; }; + 9AA9124225CD452900BD5E8B /* DisplayEngine.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayEngine.uni; sourceTree = ""; }; + 9AA9124325CD452900BD5E8B /* FormDisplayStr.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FormDisplayStr.uni; sourceTree = ""; }; + 9AA9124425CD452900BD5E8B /* FormDisplay.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormDisplay.h; sourceTree = ""; }; + 9AA9124525CD452900BD5E8B /* Popup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Popup.c; sourceTree = ""; }; + 9AA9124625CD452900BD5E8B /* ProcessOptions.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ProcessOptions.c; sourceTree = ""; }; + 9AA9124725CD452900BD5E8B /* DisplayEngineDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayEngineDxe.inf; sourceTree = ""; }; + 9AA9124825CD452900BD5E8B /* DisplayEngineExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayEngineExtra.uni; sourceTree = ""; }; + 9AA9124A25CD452900BD5E8B /* CapsuleOnDiskLoadPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleOnDiskLoadPeiExtra.uni; sourceTree = ""; }; + 9AA9124B25CD452900BD5E8B /* CapsuleOnDiskLoadPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleOnDiskLoadPei.c; sourceTree = ""; }; + 9AA9124C25CD452900BD5E8B /* CapsuleOnDiskLoadPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleOnDiskLoadPei.inf; sourceTree = ""; }; + 9AA9124D25CD452900BD5E8B /* CapsuleOnDiskLoadPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleOnDiskLoadPei.uni; sourceTree = ""; }; + 9AA9124F25CD452900BD5E8B /* DriverHealthManagerDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthManagerDxeExtra.uni; sourceTree = ""; }; + 9AA9125025CD452900BD5E8B /* DriverHealthManagerDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverHealthManagerDxe.h; sourceTree = ""; }; + 9AA9125125CD452900BD5E8B /* DriverHealthManagerVfr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverHealthManagerVfr.h; sourceTree = ""; }; + 9AA9125225CD452900BD5E8B /* DriverHealthManagerStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthManagerStrings.uni; sourceTree = ""; }; + 9AA9125325CD452900BD5E8B /* DriverHealthManagerVfr.Vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthManagerVfr.Vfr; sourceTree = ""; }; + 9AA9125425CD452900BD5E8B /* DriverHealthManagerDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthManagerDxe.uni; sourceTree = ""; }; + 9AA9125525CD452A00BD5E8B /* DriverHealthConfigureVfr.Vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthConfigureVfr.Vfr; sourceTree = ""; }; + 9AA9125625CD452A00BD5E8B /* DriverHealthManagerDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DriverHealthManagerDxe.c; sourceTree = ""; }; + 9AA9125725CD452A00BD5E8B /* DriverHealthManagerDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverHealthManagerDxe.inf; sourceTree = ""; }; + 9AA9125925CD452A00BD5E8B /* MonotonicCounterRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MonotonicCounterRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA9125A25CD452A00BD5E8B /* MonotonicCounterRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = MonotonicCounterRuntimeDxe.inf; sourceTree = ""; }; + 9AA9125B25CD452A00BD5E8B /* MonotonicCounter.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MonotonicCounter.c; sourceTree = ""; }; + 9AA9125C25CD452A00BD5E8B /* MonotonicCounterRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MonotonicCounterRuntimeDxe.uni; sourceTree = ""; }; + 9AA9125E25CD452A00BD5E8B /* LegacyRegion2Dxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LegacyRegion2Dxe.uni; sourceTree = ""; }; + 9AA9125F25CD452A00BD5E8B /* LegacyRegion2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyRegion2.c; sourceTree = ""; }; + 9AA9126025CD452A00BD5E8B /* LegacyRegion2Dxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LegacyRegion2Dxe.inf; sourceTree = ""; }; + 9AA9126125CD452A00BD5E8B /* LegacyRegion2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyRegion2.h; sourceTree = ""; }; + 9AA9126225CD452A00BD5E8B /* LegacyRegion2DxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LegacyRegion2DxeExtra.uni; sourceTree = ""; }; + 9AA9126425CD452A00BD5E8B /* WatchdogTimer.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = WatchdogTimer.inf; sourceTree = ""; }; + 9AA9126525CD452A00BD5E8B /* WatchdogTimer.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = WatchdogTimer.uni; sourceTree = ""; }; + 9AA9126625CD452A00BD5E8B /* WatchdogTimer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = WatchdogTimer.c; sourceTree = ""; }; + 9AA9126725CD452A00BD5E8B /* WatchdogTimerExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = WatchdogTimerExtra.uni; sourceTree = ""; }; + 9AA9126825CD452A00BD5E8B /* WatchdogTimer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WatchdogTimer.h; sourceTree = ""; }; + 9AA9126A25CD452A00BD5E8B /* FaultTolerantWriteSmmDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteSmmDxeExtra.uni; sourceTree = ""; }; + 9AA9126B25CD452A00BD5E8B /* FaultTolerantWriteSmmCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FaultTolerantWriteSmmCommon.h; sourceTree = ""; }; + 9AA9126C25CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FaultTolerantWriteSmmDxe.h; sourceTree = ""; }; + 9AA9126D25CD452A00BD5E8B /* FaultTolerantWriteStandaloneMm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteStandaloneMm.inf; sourceTree = ""; }; + 9AA9126E25CD452A00BD5E8B /* SmmFaultTolerantWriteDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmFaultTolerantWriteDxeExtra.uni; sourceTree = ""; }; + 9AA9126F25CD452A00BD5E8B /* FaultTolerantWrite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWrite.c; sourceTree = ""; }; + 9AA9127025CD452A00BD5E8B /* FaultTolerantWriteDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteDxe.inf; sourceTree = ""; }; + 9AA9127125CD452A00BD5E8B /* FaultTolerantWriteStandaloneMm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWriteStandaloneMm.c; sourceTree = ""; }; + 9AA9127225CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWriteSmmDxe.c; sourceTree = ""; }; + 9AA9127325CD452A00BD5E8B /* FaultTolerantWriteDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteDxeExtra.uni; sourceTree = ""; }; + 9AA9127425CD452A00BD5E8B /* FaultTolerantWriteDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteDxe.uni; sourceTree = ""; }; + 9AA9127525CD452A00BD5E8B /* FaultTolerantWriteSmm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteSmm.inf; sourceTree = ""; }; + 9AA9127625CD452A00BD5E8B /* FaultTolerantWriteTraditionalMm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWriteTraditionalMm.c; sourceTree = ""; }; + 9AA9127725CD452A00BD5E8B /* FaultTolerantWriteDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWriteDxe.c; sourceTree = ""; }; + 9AA9127825CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteSmmDxe.uni; sourceTree = ""; }; + 9AA9127925CD452A00BD5E8B /* FaultTolerantWriteSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWriteSmm.c; sourceTree = ""; }; + 9AA9127A25CD452A00BD5E8B /* FtwMisc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FtwMisc.c; sourceTree = ""; }; + 9AA9127B25CD452A00BD5E8B /* SmmFaultTolerantWriteDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmFaultTolerantWriteDxe.uni; sourceTree = ""; }; + 9AA9127C25CD452A00BD5E8B /* UpdateWorkingBlock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UpdateWorkingBlock.c; sourceTree = ""; }; + 9AA9127D25CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWriteSmmDxe.inf; sourceTree = ""; }; + 9AA9127E25CD452A00BD5E8B /* FaultTolerantWrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FaultTolerantWrite.h; sourceTree = ""; }; + 9AA9128025CD452A00BD5E8B /* DevicePath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePath.c; sourceTree = ""; }; + 9AA9128125CD452A00BD5E8B /* DevicePathDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DevicePathDxe.inf; sourceTree = ""; }; + 9AA9128225CD452A00BD5E8B /* DevicePathDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DevicePathDxeExtra.uni; sourceTree = ""; }; + 9AA9128325CD452A00BD5E8B /* DevicePathDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DevicePathDxe.uni; sourceTree = ""; }; + 9AA9128525CD452A00BD5E8B /* NVDataStruc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NVDataStruc.h; sourceTree = ""; }; + 9AA9128625CD452A00BD5E8B /* DriverSample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DriverSample.c; sourceTree = ""; }; + 9AA9128725CD452A00BD5E8B /* DriverSampleDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverSampleDxe.inf; sourceTree = ""; }; + 9AA9128825CD452A00BD5E8B /* Inventory.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = Inventory.vfr; sourceTree = ""; }; + 9AA9128925CD452A00BD5E8B /* Vfr.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = Vfr.vfr; sourceTree = ""; }; + 9AA9128A25CD452A00BD5E8B /* DriverSample.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverSample.uni; sourceTree = ""; }; + 9AA9128B25CD452A00BD5E8B /* InventoryStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = InventoryStrings.uni; sourceTree = ""; }; + 9AA9128C25CD452A00BD5E8B /* DriverSampleExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DriverSampleExtra.uni; sourceTree = ""; }; + 9AA9128D25CD452A00BD5E8B /* DriverSample.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverSample.h; sourceTree = ""; }; + 9AA9128E25CD452A00BD5E8B /* VfrStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VfrStrings.uni; sourceTree = ""; }; + 9AA9129025CD452A00BD5E8B /* SmbiosMeasurementDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosMeasurementDxeExtra.uni; sourceTree = ""; }; + 9AA9129125CD452A00BD5E8B /* SmbiosMeasurementDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosMeasurementDxe.c; sourceTree = ""; }; + 9AA9129225CD452A00BD5E8B /* SmbiosMeasurementDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosMeasurementDxe.inf; sourceTree = ""; }; + 9AA9129325CD452A00BD5E8B /* SmbiosMeasurementDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosMeasurementDxe.uni; sourceTree = ""; }; + 9AA9129525CD452A00BD5E8B /* HiiResourcesSample.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiResourcesSample.c; sourceTree = ""; }; + 9AA9129625CD452A00BD5E8B /* HiiResourcesSample.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiResourcesSample.uni; sourceTree = ""; }; + 9AA9129725CD452A00BD5E8B /* HiiResourcesSampleDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiResourcesSampleDxe.inf; sourceTree = ""; }; + 9AA9129825CD452A00BD5E8B /* HiiResourcesSampleExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiResourcesSampleExtra.uni; sourceTree = ""; }; + 9AA9129925CD452A00BD5E8B /* SampleStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SampleStrings.uni; sourceTree = ""; }; + 9AA9129A25CD452A00BD5E8B /* Sample.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = Sample.vfr; sourceTree = ""; }; + 9AA9129C25CD452A00BD5E8B /* InternalPlatDriOverrideDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalPlatDriOverrideDxe.h; sourceTree = ""; }; + 9AA9129D25CD452A00BD5E8B /* Vfr.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = Vfr.vfr; sourceTree = ""; }; + 9AA9129E25CD452A00BD5E8B /* PlatOverMngr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatOverMngr.h; sourceTree = ""; }; + 9AA9129F25CD452A00BD5E8B /* PlatformDriOverrideDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformDriOverrideDxe.inf; sourceTree = ""; }; + 9AA912A025CD452A00BD5E8B /* PlatDriOverrideLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatDriOverrideLib.c; sourceTree = ""; }; + 9AA912A125CD452A00BD5E8B /* PlatDriOverrideDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatDriOverrideDxe.uni; sourceTree = ""; }; + 9AA912A225CD452A00BD5E8B /* PlatDriOverrideDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatDriOverrideDxeExtra.uni; sourceTree = ""; }; + 9AA912A325CD452A00BD5E8B /* PlatDriOverrideDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatDriOverrideDxe.c; sourceTree = ""; }; + 9AA912A425CD452A00BD5E8B /* VfrStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VfrStrings.uni; sourceTree = ""; }; + 9AA912A625CD452A00BD5E8B /* LoadFileOnFv2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LoadFileOnFv2.c; sourceTree = ""; }; + 9AA912A725CD452A00BD5E8B /* LoadFileOnFv2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LoadFileOnFv2.inf; sourceTree = ""; }; + 9AA912A825CD452A00BD5E8B /* LoadFileOnFv2.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LoadFileOnFv2.uni; sourceTree = ""; }; + 9AA912A925CD452A00BD5E8B /* LoadFileOnFv2Extra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LoadFileOnFv2Extra.uni; sourceTree = ""; }; + 9AA912AB25CD452A00BD5E8B /* BootManagerPolicyDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerPolicyDxe.uni; sourceTree = ""; }; + 9AA912AC25CD452A00BD5E8B /* BootManagerPolicyDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerPolicyDxe.inf; sourceTree = ""; }; + 9AA912AD25CD452A00BD5E8B /* BootManagerPolicyDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerPolicyDxeExtra.uni; sourceTree = ""; }; + 9AA912AE25CD452A00BD5E8B /* BootManagerPolicyDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootManagerPolicyDxe.c; sourceTree = ""; }; + 9AA912B125CD452A00BD5E8B /* Pcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Pcd.c; sourceTree = ""; }; + 9AA912B225CD452A00BD5E8B /* PcdDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcdDxeExtra.uni; sourceTree = ""; }; + 9AA912B325CD452A00BD5E8B /* Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Service.h; sourceTree = ""; }; + 9AA912B425CD452A00BD5E8B /* Pcd.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Pcd.inf; sourceTree = ""; }; + 9AA912B525CD452A00BD5E8B /* Service.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Service.c; sourceTree = ""; }; + 9AA912B625CD452A00BD5E8B /* PcdDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcdDxe.uni; sourceTree = ""; }; + 9AA912B825CD452A00BD5E8B /* Pcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Pcd.c; sourceTree = ""; }; + 9AA912B925CD452A00BD5E8B /* Service.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Service.h; sourceTree = ""; }; + 9AA912BA25CD452A00BD5E8B /* Pcd.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Pcd.inf; sourceTree = ""; }; + 9AA912BB25CD452A00BD5E8B /* PcdPeim.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcdPeim.uni; sourceTree = ""; }; + 9AA912BC25CD452A00BD5E8B /* PcdPeimExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcdPeimExtra.uni; sourceTree = ""; }; + 9AA912BD25CD452A00BD5E8B /* Service.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Service.c; sourceTree = ""; }; + 9AA912BF25CD452A00BD5E8B /* SectionExtractionPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SectionExtractionPei.c; sourceTree = ""; }; + 9AA912C025CD452A00BD5E8B /* SectionExtractionPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionPeiExtra.uni; sourceTree = ""; }; + 9AA912C125CD452A00BD5E8B /* SectionExtractionPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionPei.uni; sourceTree = ""; }; + 9AA912C225CD452A00BD5E8B /* SectionExtractionPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SectionExtractionPei.inf; sourceTree = ""; }; + 9AA912C525CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StatusCodeHandlerRuntimeDxe.c; sourceTree = ""; }; + 9AA912C625CD452A00BD5E8B /* MemoryStatusCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryStatusCodeWorker.c; sourceTree = ""; }; + 9AA912C725CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA912C825CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerRuntimeDxe.uni; sourceTree = ""; }; + 9AA912C925CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerRuntimeDxe.inf; sourceTree = ""; }; + 9AA912CA25CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeHandlerRuntimeDxe.h; sourceTree = ""; }; + 9AA912CB25CD452A00BD5E8B /* SerialStatusCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SerialStatusCodeWorker.c; sourceTree = ""; }; + 9AA912CD25CD452A00BD5E8B /* StatusCodeHandlerPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerPei.uni; sourceTree = ""; }; + 9AA912CE25CD452A00BD5E8B /* StatusCodeHandlerPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerPeiExtra.uni; sourceTree = ""; }; + 9AA912CF25CD452A00BD5E8B /* StatusCodeHandlerPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerPei.inf; sourceTree = ""; }; + 9AA912D025CD452A00BD5E8B /* StatusCodeHandlerPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeHandlerPei.h; sourceTree = ""; }; + 9AA912D125CD452A00BD5E8B /* MemoryStausCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryStausCodeWorker.c; sourceTree = ""; }; + 9AA912D225CD452A00BD5E8B /* SerialStatusCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SerialStatusCodeWorker.c; sourceTree = ""; }; + 9AA912D325CD452A00BD5E8B /* StatusCodeHandlerPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StatusCodeHandlerPei.c; sourceTree = ""; }; + 9AA912D525CD452A00BD5E8B /* MemoryStatusCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryStatusCodeWorker.c; sourceTree = ""; }; + 9AA912D625CD452A00BD5E8B /* StatusCodeHandlerSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = StatusCodeHandlerSmm.c; sourceTree = ""; }; + 9AA912D725CD452A00BD5E8B /* StatusCodeHandlerSmmExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerSmmExtra.uni; sourceTree = ""; }; + 9AA912D825CD452A00BD5E8B /* StatusCodeHandlerSmm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerSmm.inf; sourceTree = ""; }; + 9AA912D925CD452A00BD5E8B /* SerialStatusCodeWorker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SerialStatusCodeWorker.c; sourceTree = ""; }; + 9AA912DA25CD452A00BD5E8B /* StatusCodeHandlerSmm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeHandlerSmm.h; sourceTree = ""; }; + 9AA912DB25CD452A00BD5E8B /* StatusCodeHandlerSmm.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = StatusCodeHandlerSmm.uni; sourceTree = ""; }; + 9AA912DD25CD452A00BD5E8B /* DebugServicePei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugServicePei.c; sourceTree = ""; }; + 9AA912DE25CD452A00BD5E8B /* DebugService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugService.h; sourceTree = ""; }; + 9AA912DF25CD452A00BD5E8B /* DebugServicePei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugServicePei.inf; sourceTree = ""; }; + 9AA912E025CD452A00BD5E8B /* DebugServicePei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugServicePei.uni; sourceTree = ""; }; + 9AA912E225CD452A00BD5E8B /* TimestampDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TimestampDxe.c; sourceTree = ""; }; + 9AA912E325CD452A00BD5E8B /* TimestampDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = TimestampDxe.uni; sourceTree = ""; }; + 9AA912E425CD452A00BD5E8B /* TimestampDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = TimestampDxe.inf; sourceTree = ""; }; + 9AA912E525CD452A00BD5E8B /* TimestampDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = TimestampDxeExtra.uni; sourceTree = ""; }; + 9AA912E725CD452A00BD5E8B /* ResetSystemPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemPeiExtra.uni; sourceTree = ""; }; + 9AA912E825CD452A00BD5E8B /* ResetSystem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResetSystem.h; sourceTree = ""; }; + 9AA912E925CD452A00BD5E8B /* ResetSystemPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemPei.inf; sourceTree = ""; }; + 9AA912EA25CD452A00BD5E8B /* ResetSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ResetSystem.c; sourceTree = ""; }; + 9AA912EB25CD452A00BD5E8B /* ResetSystemPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemPei.uni; sourceTree = ""; }; + 9AA912ED25CD452A00BD5E8B /* FvSimpleFileSystemEntryPoint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FvSimpleFileSystemEntryPoint.c; sourceTree = ""; }; + 9AA912EE25CD452A00BD5E8B /* FvSimpleFileSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FvSimpleFileSystem.c; sourceTree = ""; }; + 9AA912EF25CD452A00BD5E8B /* FvSimpleFileSystemDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FvSimpleFileSystemDxe.inf; sourceTree = ""; }; + 9AA912F025CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA912F125CD452A00BD5E8B /* FvSimpleFileSystemInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FvSimpleFileSystemInternal.h; sourceTree = ""; }; + 9AA912F225CD452A00BD5E8B /* FvSimpleFileSystem.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FvSimpleFileSystem.uni; sourceTree = ""; }; + 9AA912F325CD452A00BD5E8B /* FvSimpleFileSystemExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FvSimpleFileSystemExtra.uni; sourceTree = ""; }; + 9AA912F525CD452A00BD5E8B /* Defer3rdPartyImageLoad.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Defer3rdPartyImageLoad.c; sourceTree = ""; }; + 9AA912F625CD452A00BD5E8B /* SecurityStubDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SecurityStubDxe.uni; sourceTree = ""; }; + 9AA912F725CD452A00BD5E8B /* SecurityStub.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SecurityStub.c; sourceTree = ""; }; + 9AA912F825CD452A00BD5E8B /* SecurityStubDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SecurityStubDxe.inf; sourceTree = ""; }; + 9AA912F925CD452A00BD5E8B /* SecurityStubDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SecurityStubDxeExtra.uni; sourceTree = ""; }; + 9AA912FA25CD452A00BD5E8B /* Defer3rdPartyImageLoad.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Defer3rdPartyImageLoad.h; sourceTree = ""; }; + 9AA912FD25CD452A00BD5E8B /* DiskIoDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DiskIoDxe.uni; sourceTree = ""; }; + 9AA912FE25CD452A00BD5E8B /* DiskIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DiskIo.h; sourceTree = ""; }; + 9AA912FF25CD452A00BD5E8B /* DiskIoDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DiskIoDxe.inf; sourceTree = ""; }; + 9AA9130025CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9130125CD452A00BD5E8B /* DiskIoDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DiskIoDxeExtra.uni; sourceTree = ""; }; + 9AA9130225CD452A00BD5E8B /* DiskIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DiskIo.c; sourceTree = ""; }; + 9AA9130425CD452A00BD5E8B /* CdExpressPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CdExpressPei.inf; sourceTree = ""; }; + 9AA9130525CD452A00BD5E8B /* PeiCdExpress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiCdExpress.c; sourceTree = ""; }; + 9AA9130625CD452A00BD5E8B /* CdExpressPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CdExpressPei.uni; sourceTree = ""; }; + 9AA9130725CD452A00BD5E8B /* PeiCdExpress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiCdExpress.h; sourceTree = ""; }; + 9AA9130825CD452A00BD5E8B /* CdExpressPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CdExpressPeiExtra.uni; sourceTree = ""; }; + 9AA9130A25CD452A00BD5E8B /* Partition.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Partition.c; sourceTree = ""; }; + 9AA9130B25CD452A00BD5E8B /* Udf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Udf.c; sourceTree = ""; }; + 9AA9130C25CD452A00BD5E8B /* PartitionDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PartitionDxeExtra.uni; sourceTree = ""; }; + 9AA9130D25CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9130E25CD452A00BD5E8B /* ElTorito.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ElTorito.c; sourceTree = ""; }; + 9AA9130F25CD452A00BD5E8B /* PartitionDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PartitionDxe.uni; sourceTree = ""; }; + 9AA9131025CD452A00BD5E8B /* Partition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Partition.h; sourceTree = ""; }; + 9AA9131125CD452A00BD5E8B /* PartitionDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PartitionDxe.inf; sourceTree = ""; }; + 9AA9131225CD452A00BD5E8B /* Mbr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Mbr.c; sourceTree = ""; }; + 9AA9131325CD452A00BD5E8B /* Gpt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Gpt.c; sourceTree = ""; }; + 9AA9131525CD452A00BD5E8B /* RamDiskImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RamDiskImpl.h; sourceTree = ""; }; + 9AA9131625CD452A00BD5E8B /* RamDiskFileExplorer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RamDiskFileExplorer.c; sourceTree = ""; }; + 9AA9131725CD452A00BD5E8B /* RamDiskNVData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RamDiskNVData.h; sourceTree = ""; }; + 9AA9131825CD452A00BD5E8B /* RamDiskHiiStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RamDiskHiiStrings.uni; sourceTree = ""; }; + 9AA9131925CD452A00BD5E8B /* RamDiskImpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RamDiskImpl.c; sourceTree = ""; }; + 9AA9131A25CD452A00BD5E8B /* RamDiskBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RamDiskBlockIo.c; sourceTree = ""; }; + 9AA9131B25CD452A00BD5E8B /* RamDiskProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RamDiskProtocol.c; sourceTree = ""; }; + 9AA9131C25CD452A00BD5E8B /* RamDiskHii.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = RamDiskHii.vfr; sourceTree = ""; }; + 9AA9131D25CD452A00BD5E8B /* RamDisk.asl */ = {isa = PBXFileReference; lastKnownFileType = text; path = RamDisk.asl; sourceTree = ""; }; + 9AA9131E25CD452A00BD5E8B /* RamDiskDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RamDiskDxe.inf; sourceTree = ""; }; + 9AA9131F25CD452A00BD5E8B /* RamDiskDriver.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RamDiskDriver.c; sourceTree = ""; }; + 9AA9132025CD452A00BD5E8B /* RamDiskDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RamDiskDxe.uni; sourceTree = ""; }; + 9AA9132325CD452A00BD5E8B /* EnglishDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EnglishDxe.uni; sourceTree = ""; }; + 9AA9132425CD452A00BD5E8B /* EnglishDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EnglishDxeExtra.uni; sourceTree = ""; }; + 9AA9132525CD452A00BD5E8B /* UnicodeCollationEng.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UnicodeCollationEng.c; sourceTree = ""; }; + 9AA9132625CD452A00BD5E8B /* EnglishDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EnglishDxe.inf; sourceTree = ""; }; + 9AA9132725CD452A00BD5E8B /* UnicodeCollationEng.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UnicodeCollationEng.h; sourceTree = ""; }; + 9AA9132925CD452A00BD5E8B /* FileName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileName.c; sourceTree = ""; }; + 9AA9132A25CD452A00BD5E8B /* Udf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Udf.c; sourceTree = ""; }; + 9AA9132B25CD452A00BD5E8B /* FileSystemOperations.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileSystemOperations.c; sourceTree = ""; }; + 9AA9132C25CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9132D25CD452A00BD5E8B /* UdfDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UdfDxe.inf; sourceTree = ""; }; + 9AA9132E25CD452A00BD5E8B /* Udf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Udf.h; sourceTree = ""; }; + 9AA9132F25CD452A00BD5E8B /* File.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = File.c; sourceTree = ""; }; + 9AA9133225CD452A00BD5E8B /* LightMemoryTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LightMemoryTest.c; sourceTree = ""; }; + 9AA9133325CD452A00BD5E8B /* GenericMemoryTestDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = GenericMemoryTestDxe.inf; sourceTree = ""; }; + 9AA9133425CD452A00BD5E8B /* GenericMemoryTestDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = GenericMemoryTestDxeExtra.uni; sourceTree = ""; }; + 9AA9133525CD452A00BD5E8B /* GenericMemoryTestDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = GenericMemoryTestDxe.uni; sourceTree = ""; }; + 9AA9133625CD452A00BD5E8B /* LightMemoryTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LightMemoryTest.h; sourceTree = ""; }; + 9AA9133825CD452A00BD5E8B /* NullMemoryTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NullMemoryTest.h; sourceTree = ""; }; + 9AA9133925CD452A00BD5E8B /* NullMemoryTestDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NullMemoryTestDxeExtra.uni; sourceTree = ""; }; + 9AA9133A25CD452A00BD5E8B /* NullMemoryTestDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = NullMemoryTestDxe.inf; sourceTree = ""; }; + 9AA9133B25CD452A00BD5E8B /* NullMemoryTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NullMemoryTest.c; sourceTree = ""; }; + 9AA9133C25CD452A00BD5E8B /* NullMemoryTestDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NullMemoryTestDxe.uni; sourceTree = ""; }; + 9AA9133E25CD452A00BD5E8B /* HiiDatabaseDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiDatabaseDxe.inf; sourceTree = ""; }; + 9AA9133F25CD452A00BD5E8B /* HiiDatabase.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiDatabase.uni; sourceTree = ""; }; + 9AA9134025CD452A00BD5E8B /* Database.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Database.c; sourceTree = ""; }; + 9AA9134125CD452A00BD5E8B /* ConfigRouting.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConfigRouting.c; sourceTree = ""; }; + 9AA9134225CD452A00BD5E8B /* Font.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Font.c; sourceTree = ""; }; + 9AA9134325CD452A00BD5E8B /* String.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = String.c; sourceTree = ""; }; + 9AA9134425CD452A00BD5E8B /* Image.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Image.c; sourceTree = ""; }; + 9AA9134525CD452A00BD5E8B /* HiiDatabaseExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HiiDatabaseExtra.uni; sourceTree = ""; }; + 9AA9134625CD452A00BD5E8B /* HiiDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiDatabase.h; sourceTree = ""; }; + 9AA9134725CD452A00BD5E8B /* ConfigKeywordHandler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConfigKeywordHandler.c; sourceTree = ""; }; + 9AA9134825CD452A00BD5E8B /* HiiDatabaseEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiDatabaseEntry.c; sourceTree = ""; }; + 9AA9134925CD452A00BD5E8B /* ImageEx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ImageEx.c; sourceTree = ""; }; + 9AA9134B25CD452A00BD5E8B /* PciCfg2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciCfg2.c; sourceTree = ""; }; + 9AA9134C25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcatSingleSegmentPciCfg2Pei.inf; sourceTree = ""; }; + 9AA9134D25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcatSingleSegmentPciCfg2Pei.uni; sourceTree = ""; }; + 9AA9134E25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2PeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PcatSingleSegmentPciCfg2PeiExtra.uni; sourceTree = ""; }; + 9AA9135025CD452A00BD5E8B /* FaultTolerantWritePei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWritePei.inf; sourceTree = ""; }; + 9AA9135125CD452A00BD5E8B /* FaultTolerantWritePei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWritePei.uni; sourceTree = ""; }; + 9AA9135225CD452A00BD5E8B /* FaultTolerantWritePei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FaultTolerantWritePei.c; sourceTree = ""; }; + 9AA9135325CD452A00BD5E8B /* FaultTolerantWritePeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FaultTolerantWritePeiExtra.uni; sourceTree = ""; }; + 9AA9135525CD452A00BD5E8B /* Language.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Language.h; sourceTree = ""; }; + 9AA9135625CD452A00BD5E8B /* BdsEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsEntry.c; sourceTree = ""; }; + 9AA9135725CD452A00BD5E8B /* HwErrRecSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HwErrRecSupport.c; sourceTree = ""; }; + 9AA9135825CD452A00BD5E8B /* BdsDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BdsDxe.inf; sourceTree = ""; }; + 9AA9135925CD452A00BD5E8B /* BdsDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BdsDxeExtra.uni; sourceTree = ""; }; + 9AA9135A25CD452A00BD5E8B /* BdsDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BdsDxe.uni; sourceTree = ""; }; + 9AA9135B25CD452A00BD5E8B /* Bds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bds.h; sourceTree = ""; }; + 9AA9135C25CD452A00BD5E8B /* Language.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Language.c; sourceTree = ""; }; + 9AA9135D25CD452A00BD5E8B /* HwErrRecSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HwErrRecSupport.h; sourceTree = ""; }; + 9AA9135F25CD452A00BD5E8B /* SmmCommunicationBufferExtraDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCommunicationBufferExtraDxe.uni; sourceTree = ""; }; + 9AA9136025CD452A00BD5E8B /* SmmCommunicationBufferDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmCommunicationBufferDxe.c; sourceTree = ""; }; + 9AA9136125CD452A00BD5E8B /* SmmCommunicationBufferDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCommunicationBufferDxe.uni; sourceTree = ""; }; + 9AA9136225CD452A00BD5E8B /* SmmCommunicationBufferDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCommunicationBufferDxe.inf; sourceTree = ""; }; + 9AA9136425CD452A00BD5E8B /* CapsulePei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsulePei.uni; sourceTree = ""; }; + 9AA9136525CD452A00BD5E8B /* CapsulePei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsulePei.inf; sourceTree = ""; }; + 9AA9136625CD452A00BD5E8B /* CapsuleX64Extra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleX64Extra.uni; sourceTree = ""; }; + 9AA9136725CD452A00BD5E8B /* CapsulePeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsulePeiExtra.uni; sourceTree = ""; }; + 9AA9136925CD452A00BD5E8B /* X64Entry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X64Entry.c; sourceTree = ""; }; + 9AA9136A25CD452A00BD5E8B /* PageFaultHandler.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = PageFaultHandler.nasm; sourceTree = ""; }; + 9AA9136C25CD452A00BD5E8B /* CapsuleCoalesce.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleCoalesce.c; sourceTree = ""; }; + 9AA9136D25CD452A00BD5E8B /* CommonHeader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommonHeader.h; sourceTree = ""; }; + 9AA9136E25CD452A00BD5E8B /* CapsuleX64.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleX64.uni; sourceTree = ""; }; + 9AA9136F25CD452A00BD5E8B /* Capsule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Capsule.h; sourceTree = ""; }; + 9AA9137025CD452A00BD5E8B /* CapsuleX64.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleX64.inf; sourceTree = ""; }; + 9AA9137125CD452A00BD5E8B /* UefiCapsule.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiCapsule.c; sourceTree = ""; }; + 9AA9137325CD452A00BD5E8B /* ResetSystem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResetSystem.h; sourceTree = ""; }; + 9AA9137425CD452A00BD5E8B /* ResetSystemRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA9137525CD452A00BD5E8B /* ResetSystemRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemRuntimeDxe.uni; sourceTree = ""; }; + 9AA9137625CD452A00BD5E8B /* ResetSystemRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystemRuntimeDxe.inf; sourceTree = ""; }; + 9AA9137725CD452A00BD5E8B /* ResetSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ResetSystem.c; sourceTree = ""; }; + 9AA9137925CD452A00BD5E8B /* Print.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Print.c; sourceTree = ""; }; + 9AA9137A25CD452A00BD5E8B /* PrintDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PrintDxeExtra.uni; sourceTree = ""; }; + 9AA9137B25CD452A00BD5E8B /* PrintDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PrintDxe.uni; sourceTree = ""; }; + 9AA9137C25CD452A00BD5E8B /* PrintDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PrintDxe.inf; sourceTree = ""; }; + 9AA9137E25CD452A00BD5E8B /* SerialIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SerialIo.c; sourceTree = ""; }; + 9AA9137F25CD452A00BD5E8B /* SerialDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SerialDxe.inf; sourceTree = ""; }; + 9AA9138025CD452A00BD5E8B /* SerialDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SerialDxe.uni; sourceTree = ""; }; + 9AA9138125CD452A00BD5E8B /* SerialDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SerialDxeExtra.uni; sourceTree = ""; }; + 9AA9138425CD452A00BD5E8B /* SmmLockBoxExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxExtra.uni; sourceTree = ""; }; + 9AA9138525CD452A00BD5E8B /* SmmLockBox.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBox.inf; sourceTree = ""; }; + 9AA9138625CD452A00BD5E8B /* SmmLockBox.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBox.uni; sourceTree = ""; }; + 9AA9138725CD452A00BD5E8B /* SmmLockBox.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmLockBox.c; sourceTree = ""; }; + 9AA9138925CD452A00BD5E8B /* FileExplorerDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileExplorerDxe.c; sourceTree = ""; }; + 9AA9138A25CD452A00BD5E8B /* FileExplorerDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerDxe.uni; sourceTree = ""; }; + 9AA9138B25CD452A00BD5E8B /* FileExplorerDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerDxeExtra.uni; sourceTree = ""; }; + 9AA9138C25CD452A00BD5E8B /* FileExplorerDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerDxe.inf; sourceTree = ""; }; + 9AA9138F25CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeRouterRuntimeDxe.c; sourceTree = ""; }; + 9AA9139025CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA9139125CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterRuntimeDxe.uni; sourceTree = ""; }; + 9AA9139225CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterRuntimeDxe.inf; sourceTree = ""; }; + 9AA9139325CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeRouterRuntimeDxe.h; sourceTree = ""; }; + 9AA9139525CD452A00BD5E8B /* ReportStatusCodeRouterPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterPei.inf; sourceTree = ""; }; + 9AA9139625CD452A00BD5E8B /* ReportStatusCodeRouterPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterPei.uni; sourceTree = ""; }; + 9AA9139725CD452A00BD5E8B /* ReportStatusCodeRouterPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterPeiExtra.uni; sourceTree = ""; }; + 9AA9139825CD452A00BD5E8B /* ReportStatusCodeRouterPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeRouterPei.h; sourceTree = ""; }; + 9AA9139925CD452A00BD5E8B /* ReportStatusCodeRouterPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeRouterPei.c; sourceTree = ""; }; + 9AA9139B25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeRouterSmm.c; sourceTree = ""; }; + 9AA9139C25CD452A00BD5E8B /* ReportStatusCodeRouterSmmExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterSmmExtra.uni; sourceTree = ""; }; + 9AA9139D25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterSmm.uni; sourceTree = ""; }; + 9AA9139E25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ReportStatusCodeRouterSmm.h; sourceTree = ""; }; + 9AA9139F25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReportStatusCodeRouterSmm.inf; sourceTree = ""; }; + 9AA913A125CD452A00BD5E8B /* CapsuleCache.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleCache.c; sourceTree = ""; }; + 9AA913A225CD452A00BD5E8B /* CapsuleCacheNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleCacheNull.c; sourceTree = ""; }; + 9AA913A425CD452A00BD5E8B /* SaveLongModeContext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SaveLongModeContext.c; sourceTree = ""; }; + 9AA913A525CD452A00BD5E8B /* CapsuleService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleService.h; sourceTree = ""; }; + 9AA913A625CD452A00BD5E8B /* CapsuleRuntimeDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleRuntimeDxe.uni; sourceTree = ""; }; + 9AA913A725CD452A00BD5E8B /* CapsuleRuntimeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleRuntimeDxe.inf; sourceTree = ""; }; + 9AA913A825CD452A00BD5E8B /* CapsuleRuntimeDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleRuntimeDxeExtra.uni; sourceTree = ""; }; + 9AA913A925CD452A00BD5E8B /* CapsuleReset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleReset.c; sourceTree = ""; }; + 9AA913AA25CD452A00BD5E8B /* SaveLongModeContext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SaveLongModeContext.c; sourceTree = ""; }; + 9AA913AC25CD452A00BD5E8B /* CapsuleReset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleReset.c; sourceTree = ""; }; + 9AA913AD25CD452A00BD5E8B /* CapsuleService.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleService.c; sourceTree = ""; }; + 9AA913AF25CD452A00BD5E8B /* Expression.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Expression.c; sourceTree = ""; }; + 9AA913B025CD452A00BD5E8B /* SetupBrowserExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SetupBrowserExtra.uni; sourceTree = ""; }; + 9AA913B125CD452A00BD5E8B /* Setup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Setup.h; sourceTree = ""; }; + 9AA913B225CD452A00BD5E8B /* Presentation.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Presentation.c; sourceTree = ""; }; + 9AA913B325CD452A00BD5E8B /* SetupBrowserDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SetupBrowserDxe.inf; sourceTree = ""; }; + 9AA913B425CD452A00BD5E8B /* Setup.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Setup.c; sourceTree = ""; }; + 9AA913B525CD452A00BD5E8B /* Expression.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Expression.h; sourceTree = ""; }; + 9AA913B625CD452A00BD5E8B /* IfrParse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IfrParse.c; sourceTree = ""; }; + 9AA913B725CD452A00BD5E8B /* SetupBrowser.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SetupBrowser.uni; sourceTree = ""; }; + 9AA913BA25CD452A00BD5E8B /* GraphicsConsoleDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = GraphicsConsoleDxeExtra.uni; sourceTree = ""; }; + 9AA913BB25CD452A00BD5E8B /* GraphicsConsole.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GraphicsConsole.h; sourceTree = ""; }; + 9AA913BC25CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA913BD25CD452A00BD5E8B /* GraphicsConsoleDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = GraphicsConsoleDxe.inf; sourceTree = ""; }; + 9AA913BE25CD452A00BD5E8B /* GraphicsConsoleDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = GraphicsConsoleDxe.uni; sourceTree = ""; }; + 9AA913BF25CD452A00BD5E8B /* LaffStd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LaffStd.c; sourceTree = ""; }; + 9AA913C025CD452A00BD5E8B /* GraphicsConsole.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GraphicsConsole.c; sourceTree = ""; }; + 9AA913C225CD452A00BD5E8B /* TerminalDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = TerminalDxeExtra.uni; sourceTree = ""; }; + 9AA913C325CD452A00BD5E8B /* TerminalDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = TerminalDxe.uni; sourceTree = ""; }; + 9AA913C425CD452A00BD5E8B /* TerminalConOut.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TerminalConOut.c; sourceTree = ""; }; + 9AA913C525CD452A00BD5E8B /* TerminalConIn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TerminalConIn.c; sourceTree = ""; }; + 9AA913C625CD452A00BD5E8B /* TerminalDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = TerminalDxe.inf; sourceTree = ""; }; + 9AA913C725CD452A00BD5E8B /* Terminal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Terminal.c; sourceTree = ""; }; + 9AA913C825CD452A00BD5E8B /* Vtutf8.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Vtutf8.c; sourceTree = ""; }; + 9AA913C925CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA913CA25CD452A00BD5E8B /* Terminal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Terminal.h; sourceTree = ""; }; + 9AA913CB25CD452A00BD5E8B /* Ansi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ansi.c; sourceTree = ""; }; + 9AA913CD25CD452A00BD5E8B /* ConPlatformDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConPlatformDxeExtra.uni; sourceTree = ""; }; + 9AA913CE25CD452A00BD5E8B /* ConPlatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConPlatform.c; sourceTree = ""; }; + 9AA913CF25CD452A00BD5E8B /* ConPlatformDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConPlatformDxe.inf; sourceTree = ""; }; + 9AA913D025CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA913D125CD452A00BD5E8B /* ConPlatformDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConPlatformDxe.uni; sourceTree = ""; }; + 9AA913D225CD452A00BD5E8B /* ConPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConPlatform.h; sourceTree = ""; }; + 9AA913D425CD452A00BD5E8B /* ConSplitter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConSplitter.h; sourceTree = ""; }; + 9AA913D525CD452A00BD5E8B /* ConSplitterGraphics.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConSplitterGraphics.c; sourceTree = ""; }; + 9AA913D625CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA913D725CD452A00BD5E8B /* ConSplitter.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConSplitter.c; sourceTree = ""; }; + 9AA913D825CD452A00BD5E8B /* ConSplitterDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConSplitterDxe.uni; sourceTree = ""; }; + 9AA913D925CD452A00BD5E8B /* ConSplitterDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConSplitterDxeExtra.uni; sourceTree = ""; }; + 9AA913DA25CD452A00BD5E8B /* ConSplitterDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ConSplitterDxe.inf; sourceTree = ""; }; + 9AA913DC25CD452A00BD5E8B /* GraphicsOutput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GraphicsOutput.h; sourceTree = ""; }; + 9AA913DD25CD452A00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA913DE25CD452A00BD5E8B /* GraphicsOutputDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = GraphicsOutputDxe.inf; sourceTree = ""; }; + 9AA913DF25CD452A00BD5E8B /* GraphicsOutput.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GraphicsOutput.c; sourceTree = ""; }; + 9AA913E125CD452A00BD5E8B /* Metronome.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Metronome.inf; sourceTree = ""; }; + 9AA913E225CD452A00BD5E8B /* Metronome.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Metronome.c; sourceTree = ""; }; + 9AA913E325CD452A00BD5E8B /* Metronome.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Metronome.uni; sourceTree = ""; }; + 9AA913E425CD452A00BD5E8B /* MetronomeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MetronomeExtra.uni; sourceTree = ""; }; + 9AA913E525CD452A00BD5E8B /* Metronome.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Metronome.h; sourceTree = ""; }; + 9AA913E825CD452A00BD5E8B /* FmpAuthenticationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FmpAuthenticationLib.h; sourceTree = ""; }; + 9AA913E925CD452A00BD5E8B /* PlatformHookLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformHookLib.h; sourceTree = ""; }; + 9AA913EA25CD452A00BD5E8B /* UefiBootManagerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiBootManagerLib.h; sourceTree = ""; }; + 9AA913EB25CD452A00BD5E8B /* HttpLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HttpLib.h; sourceTree = ""; }; + 9AA913EC25CD452A00BD5E8B /* TpmMeasurementLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TpmMeasurementLib.h; sourceTree = ""; }; + 9AA913ED25CD452A00BD5E8B /* PciHostBridgeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHostBridgeLib.h; sourceTree = ""; }; + 9AA913EE25CD452A00BD5E8B /* SecurityManagementLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecurityManagementLib.h; sourceTree = ""; }; + 9AA913EF25CD452A00BD5E8B /* DisplayUpdateProgressLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DisplayUpdateProgressLib.h; sourceTree = ""; }; + 9AA913F025CD452A00BD5E8B /* IpmiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiLib.h; sourceTree = ""; }; + 9AA913F125CD452A00BD5E8B /* DebugAgentLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugAgentLib.h; sourceTree = ""; }; + 9AA913F225CD452A00BD5E8B /* UefiHiiServicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiHiiServicesLib.h; sourceTree = ""; }; + 9AA913F325CD452A00BD5E8B /* PlatformBootManagerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformBootManagerLib.h; sourceTree = ""; }; + 9AA913F425CD452A00BD5E8B /* UdpIoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UdpIoLib.h; sourceTree = ""; }; + 9AA913F525CD452A00BD5E8B /* MemoryProfileLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryProfileLib.h; sourceTree = ""; }; + 9AA913F625CD452A00BD5E8B /* SmmCorePlatformHookLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCorePlatformHookLib.h; sourceTree = ""; }; + 9AA913F725CD452A00BD5E8B /* CustomizedDisplayLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomizedDisplayLib.h; sourceTree = ""; }; + 9AA913F825CD452A00BD5E8B /* ResetUtilityLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResetUtilityLib.h; sourceTree = ""; }; + 9AA913F925CD452A00BD5E8B /* SortLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SortLib.h; sourceTree = ""; }; + 9AA913FA25CD452A00BD5E8B /* FrameBufferBltLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrameBufferBltLib.h; sourceTree = ""; }; + 9AA913FB25CD452A00BD5E8B /* NetLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NetLib.h; sourceTree = ""; }; + 9AA913FC25CD452A00BD5E8B /* OemHookStatusCodeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OemHookStatusCodeLib.h; sourceTree = ""; }; + 9AA913FD25CD452A00BD5E8B /* BmpSupportLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BmpSupportLib.h; sourceTree = ""; }; + 9AA913FE25CD452A00BD5E8B /* LockBoxLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LockBoxLib.h; sourceTree = ""; }; + 9AA913FF25CD452A00BD5E8B /* ResetSystemLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ResetSystemLib.h; sourceTree = ""; }; + 9AA9140025CD452A00BD5E8B /* VarCheckLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarCheckLib.h; sourceTree = ""; }; + 9AA9140125CD452A00BD5E8B /* RecoveryLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecoveryLib.h; sourceTree = ""; }; + 9AA9140225CD452A00BD5E8B /* AuthVariableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AuthVariableLib.h; sourceTree = ""; }; + 9AA9140325CD452A00BD5E8B /* HiiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiLib.h; sourceTree = ""; }; + 9AA9140425CD452A00BD5E8B /* NonDiscoverableDeviceRegistrationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NonDiscoverableDeviceRegistrationLib.h; sourceTree = ""; }; + 9AA9140525CD452A00BD5E8B /* TcpIoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TcpIoLib.h; sourceTree = ""; }; + 9AA9140625CD452A00BD5E8B /* BootLogoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootLogoLib.h; sourceTree = ""; }; + 9AA9140725CD452A00BD5E8B /* PlatformVarCleanupLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformVarCleanupLib.h; sourceTree = ""; }; + 9AA9140825CD452A00BD5E8B /* CpuExceptionHandlerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuExceptionHandlerLib.h; sourceTree = ""; }; + 9AA9140925CD452A00BD5E8B /* CapsuleLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleLib.h; sourceTree = ""; }; + 9AA9140A25CD452A00BD5E8B /* S3Lib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3Lib.h; sourceTree = ""; }; + 9AA9140B25CD452A00BD5E8B /* FileExplorerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileExplorerLib.h; sourceTree = ""; }; + 9AA9140D25CD452A00BD5E8B /* Ps2Policy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ps2Policy.h; sourceTree = ""; }; + 9AA9140E25CD452A00BD5E8B /* FileExplorer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileExplorer.h; sourceTree = ""; }; + 9AA9140F25CD452A00BD5E8B /* UfsHostControllerPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsHostControllerPlatform.h; sourceTree = ""; }; + 9AA9141025CD452A00BD5E8B /* EsrtManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EsrtManagement.h; sourceTree = ""; }; + 9AA9141125CD452A00BD5E8B /* NonDiscoverableDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NonDiscoverableDevice.h; sourceTree = ""; }; + 9AA9141225CD452A00BD5E8B /* PlatformSpecificResetFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificResetFilter.h; sourceTree = ""; }; + 9AA9141325CD452A00BD5E8B /* IpmiProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiProtocol.h; sourceTree = ""; }; + 9AA9141425CD452A00BD5E8B /* SwapAddressRange.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SwapAddressRange.h; sourceTree = ""; }; + 9AA9141525CD452A00BD5E8B /* DebuggerConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebuggerConfiguration.h; sourceTree = ""; }; + 9AA9141625CD452A00BD5E8B /* IoMmu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IoMmu.h; sourceTree = ""; }; + 9AA9141725CD452A00BD5E8B /* PlatformSpecificResetHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificResetHandler.h; sourceTree = ""; }; + 9AA9141825CD452A00BD5E8B /* LoadPe32Image.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadPe32Image.h; sourceTree = ""; }; + 9AA9141925CD452A00BD5E8B /* VarCheck.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarCheck.h; sourceTree = ""; }; + 9AA9141A25CD452A00BD5E8B /* FirmwareManagementProgress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareManagementProgress.h; sourceTree = ""; }; + 9AA9141B25CD452A00BD5E8B /* AtaAtapiPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaAtapiPolicy.h; sourceTree = ""; }; + 9AA9141C25CD452A00BD5E8B /* SmmMemoryAttribute.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmMemoryAttribute.h; sourceTree = ""; }; + 9AA9141D25CD452A00BD5E8B /* SdMmcOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcOverride.h; sourceTree = ""; }; + 9AA9141E25CD452A00BD5E8B /* FormBrowserEx2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormBrowserEx2.h; sourceTree = ""; }; + 9AA9141F25CD452A00BD5E8B /* SmmSwapAddressRange.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmSwapAddressRange.h; sourceTree = ""; }; + 9AA9142025CD452A00BD5E8B /* UfsHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsHostController.h; sourceTree = ""; }; + 9AA9142125CD452A00BD5E8B /* SmmFirmwareVolumeBlock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmFirmwareVolumeBlock.h; sourceTree = ""; }; + 9AA9142225CD452A00BD5E8B /* EbcVmTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EbcVmTest.h; sourceTree = ""; }; + 9AA9142325CD452A00BD5E8B /* PlatformLogo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformLogo.h; sourceTree = ""; }; + 9AA9142425CD452A00BD5E8B /* PeCoffImageEmulator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeCoffImageEmulator.h; sourceTree = ""; }; + 9AA9142525CD452A00BD5E8B /* Print2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Print2.h; sourceTree = ""; }; + 9AA9142625CD452B00BD5E8B /* BootLogo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootLogo.h; sourceTree = ""; }; + 9AA9142725CD452B00BD5E8B /* SmmReadyToBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmReadyToBoot.h; sourceTree = ""; }; + 9AA9142825CD452B00BD5E8B /* SmmLegacyBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmLegacyBoot.h; sourceTree = ""; }; + 9AA9142925CD452B00BD5E8B /* SmmVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmVariable.h; sourceTree = ""; }; + 9AA9142A25CD452B00BD5E8B /* SmmFaultTolerantWrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmFaultTolerantWrite.h; sourceTree = ""; }; + 9AA9142B25CD452B00BD5E8B /* LockBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LockBox.h; sourceTree = ""; }; + 9AA9142C25CD452B00BD5E8B /* GenericMemoryTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GenericMemoryTest.h; sourceTree = ""; }; + 9AA9142D25CD452B00BD5E8B /* DisplayProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DisplayProtocol.h; sourceTree = ""; }; + 9AA9142E25CD452B00BD5E8B /* BootLogo2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootLogo2.h; sourceTree = ""; }; + 9AA9142F25CD452B00BD5E8B /* FormBrowserEx.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormBrowserEx.h; sourceTree = ""; }; + 9AA9143025CD452B00BD5E8B /* VariableLock.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VariableLock.h; sourceTree = ""; }; + 9AA9143125CD452B00BD5E8B /* EbcSimpleDebugger.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EbcSimpleDebugger.h; sourceTree = ""; }; + 9AA9143225CD452B00BD5E8B /* SmmVarCheck.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmVarCheck.h; sourceTree = ""; }; + 9AA9143325CD452B00BD5E8B /* SmmExitBootServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmExitBootServices.h; sourceTree = ""; }; + 9AA9143425CD452B00BD5E8B /* FaultTolerantWrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FaultTolerantWrite.h; sourceTree = ""; }; + 9AA9143625CD452B00BD5E8B /* EndOfS3Resume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EndOfS3Resume.h; sourceTree = ""; }; + 9AA9143725CD452B00BD5E8B /* MdeModulePkgTokenSpace.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MdeModulePkgTokenSpace.h; sourceTree = ""; }; + 9AA9143825CD452B00BD5E8B /* LoadModuleAtFixedAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LoadModuleAtFixedAddress.h; sourceTree = ""; }; + 9AA9143925CD452B00BD5E8B /* SystemNvDataGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SystemNvDataGuid.h; sourceTree = ""; }; + 9AA9143A25CD452B00BD5E8B /* ExtendedFirmwarePerformance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ExtendedFirmwarePerformance.h; sourceTree = ""; }; + 9AA9143B25CD452B00BD5E8B /* MdeModuleHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MdeModuleHii.h; sourceTree = ""; }; + 9AA9143C25CD452B00BD5E8B /* NonDiscoverableDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NonDiscoverableDevice.h; sourceTree = ""; }; + 9AA9143D25CD452B00BD5E8B /* PlatformHasAcpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformHasAcpi.h; sourceTree = ""; }; + 9AA9143E25CD452B00BD5E8B /* SmmVariableCommon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmVariableCommon.h; sourceTree = ""; }; + 9AA9143F25CD452B00BD5E8B /* MemoryProfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryProfile.h; sourceTree = ""; }; + 9AA9144025CD452B00BD5E8B /* RamDiskHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RamDiskHii.h; sourceTree = ""; }; + 9AA9144125CD452B00BD5E8B /* PcdDataBaseSignatureGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcdDataBaseSignatureGuid.h; sourceTree = ""; }; + 9AA9144225CD452B00BD5E8B /* VariableIndexTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VariableIndexTable.h; sourceTree = ""; }; + 9AA9144325CD452B00BD5E8B /* ConsoleInDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsoleInDevice.h; sourceTree = ""; }; + 9AA9144425CD452B00BD5E8B /* SerialPortLibVendor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SerialPortLibVendor.h; sourceTree = ""; }; + 9AA9144525CD452B00BD5E8B /* RecoveryDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RecoveryDevice.h; sourceTree = ""; }; + 9AA9144625CD452B00BD5E8B /* IdleLoopEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdleLoopEvent.h; sourceTree = ""; }; + 9AA9144725CD452B00BD5E8B /* Performance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Performance.h; sourceTree = ""; }; + 9AA9144825CD452B00BD5E8B /* UsbKeyBoardLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbKeyBoardLayout.h; sourceTree = ""; }; + 9AA9144925CD452B00BD5E8B /* ZeroGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ZeroGuid.h; sourceTree = ""; }; + 9AA9144A25CD452B00BD5E8B /* PcdDataBaseHobGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcdDataBaseHobGuid.h; sourceTree = ""; }; + 9AA9144B25CD452B00BD5E8B /* LzmaDecompress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzmaDecompress.h; sourceTree = ""; }; + 9AA9144C25CD452B00BD5E8B /* Ip4Config2Hii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip4Config2Hii.h; sourceTree = ""; }; + 9AA9144D25CD452B00BD5E8B /* PiSmmMemoryAttributesTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmMemoryAttributesTable.h; sourceTree = ""; }; + 9AA9144E25CD452B00BD5E8B /* VarErrorFlag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarErrorFlag.h; sourceTree = ""; }; + 9AA9144F25CD452B00BD5E8B /* ConsoleOutDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsoleOutDevice.h; sourceTree = ""; }; + 9AA9145025CD452B00BD5E8B /* SmmLockBox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmLockBox.h; sourceTree = ""; }; + 9AA9145125CD452B00BD5E8B /* BootScriptExecutorVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootScriptExecutorVariable.h; sourceTree = ""; }; + 9AA9145225CD452B00BD5E8B /* MtcVendor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MtcVendor.h; sourceTree = ""; }; + 9AA9145325CD452B00BD5E8B /* DriverSampleHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DriverSampleHii.h; sourceTree = ""; }; + 9AA9145425CD452B00BD5E8B /* StandardErrorDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StandardErrorDevice.h; sourceTree = ""; }; + 9AA9145525CD452B00BD5E8B /* MemoryStatusCodeRecord.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryStatusCodeRecord.h; sourceTree = ""; }; + 9AA9145625CD452B00BD5E8B /* S3SmmInitDone.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3SmmInitDone.h; sourceTree = ""; }; + 9AA9145725CD452B00BD5E8B /* StatusCodeDataTypeDebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeDataTypeDebug.h; sourceTree = ""; }; + 9AA9145825CD452B00BD5E8B /* EventExitBootServiceFailed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EventExitBootServiceFailed.h; sourceTree = ""; }; + 9AA9145925CD452B00BD5E8B /* S3StorageDeviceInitList.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = S3StorageDeviceInitList.h; sourceTree = ""; }; + 9AA9145A25CD452B00BD5E8B /* CapsuleVendor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleVendor.h; sourceTree = ""; }; + 9AA9145B25CD452B00BD5E8B /* ConnectConInEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConnectConInEvent.h; sourceTree = ""; }; + 9AA9145C25CD452B00BD5E8B /* VlanConfigHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VlanConfigHii.h; sourceTree = ""; }; + 9AA9145D25CD452B00BD5E8B /* SmiHandlerProfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmiHandlerProfile.h; sourceTree = ""; }; + 9AA9145E25CD452B00BD5E8B /* PerformanceMeasurement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PerformanceMeasurement.h; sourceTree = ""; }; + 9AA9145F25CD452B00BD5E8B /* HiiBootMaintenanceFormset.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiBootMaintenanceFormset.h; sourceTree = ""; }; + 9AA9146025CD452B00BD5E8B /* PlatDriOverrideHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatDriOverrideHii.h; sourceTree = ""; }; + 9AA9146125CD452B00BD5E8B /* DebugMask.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugMask.h; sourceTree = ""; }; + 9AA9146225CD452B00BD5E8B /* VariableFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VariableFormat.h; sourceTree = ""; }; + 9AA9146325CD452B00BD5E8B /* AcpiS3Context.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiS3Context.h; sourceTree = ""; }; + 9AA9146425CD452B00BD5E8B /* StatusCodeDataTypeVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeDataTypeVariable.h; sourceTree = ""; }; + 9AA9146525CD452B00BD5E8B /* Ip4IScsiConfigHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ip4IScsiConfigHii.h; sourceTree = ""; }; + 9AA9146625CD452B00BD5E8B /* Crc32GuidedSectionExtraction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Crc32GuidedSectionExtraction.h; sourceTree = ""; }; + 9AA9146725CD452B00BD5E8B /* TtyTerm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TtyTerm.h; sourceTree = ""; }; + 9AA9146825CD452B00BD5E8B /* PiSmmCommunicationRegionTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCommunicationRegionTable.h; sourceTree = ""; }; + 9AA9146925CD452B00BD5E8B /* StatusCodeCallbackGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StatusCodeCallbackGuid.h; sourceTree = ""; }; + 9AA9146A25CD452B00BD5E8B /* HiiResourceSampleHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiResourceSampleHii.h; sourceTree = ""; }; + 9AA9146B25CD452B00BD5E8B /* MemoryTypeInformation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemoryTypeInformation.h; sourceTree = ""; }; + 9AA9146C25CD452B00BD5E8B /* FirmwarePerformance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwarePerformance.h; sourceTree = ""; }; + 9AA9146D25CD452B00BD5E8B /* FaultTolerantWrite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FaultTolerantWrite.h; sourceTree = ""; }; + 9AA9146F25CD452B00BD5E8B /* SerialPortPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SerialPortPei.h; sourceTree = ""; }; + 9AA9147025CD452B00BD5E8B /* PlatformSpecificResetFilter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificResetFilter.h; sourceTree = ""; }; + 9AA9147125CD452B00BD5E8B /* Debug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Debug.h; sourceTree = ""; }; + 9AA9147225CD452B00BD5E8B /* SdMmcHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcHostController.h; sourceTree = ""; }; + 9AA9147325CD452B00BD5E8B /* IoMmu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IoMmu.h; sourceTree = ""; }; + 9AA9147425CD452B00BD5E8B /* Usb2HostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Usb2HostController.h; sourceTree = ""; }; + 9AA9147525CD452B00BD5E8B /* AtaController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaController.h; sourceTree = ""; }; + 9AA9147625CD452B00BD5E8B /* AtaAhciController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaAhciController.h; sourceTree = ""; }; + 9AA9147725CD452B00BD5E8B /* PlatformSpecificResetHandler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificResetHandler.h; sourceTree = ""; }; + 9AA9147825CD452B00BD5E8B /* AtaPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaPassThru.h; sourceTree = ""; }; + 9AA9147925CD452B00BD5E8B /* IpmiPpi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IpmiPpi.h; sourceTree = ""; }; + 9AA9147A25CD452B00BD5E8B /* UfsHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsHostController.h; sourceTree = ""; }; + 9AA9147B25CD452B00BD5E8B /* PlatformSpecificResetNotification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatformSpecificResetNotification.h; sourceTree = ""; }; + 9AA9147C25CD452B00BD5E8B /* StorageSecurityCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = StorageSecurityCommand.h; sourceTree = ""; }; + 9AA9147D25CD452B00BD5E8B /* SmmControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmControl.h; sourceTree = ""; }; + 9AA9147E25CD452B00BD5E8B /* SmmCommunication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCommunication.h; sourceTree = ""; }; + 9AA9147F25CD452B00BD5E8B /* NvmExpressPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPassThru.h; sourceTree = ""; }; + 9AA9148025CD452B00BD5E8B /* UsbHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHostController.h; sourceTree = ""; }; + 9AA9148125CD452B00BD5E8B /* UsbIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbIo.h; sourceTree = ""; }; + 9AA9148225CD452B00BD5E8B /* NvmExpressHostController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressHostController.h; sourceTree = ""; }; + 9AA9148325CD452B00BD5E8B /* UsbController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbController.h; sourceTree = ""; }; + 9AA9148425CD452B00BD5E8B /* SmmAccess.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmAccess.h; sourceTree = ""; }; + 9AA9148525CD452B00BD5E8B /* CapsuleOnDisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleOnDisk.h; sourceTree = ""; }; + 9AA9148625CD452B00BD5E8B /* PostBootScriptTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PostBootScriptTable.h; sourceTree = ""; }; + 9AA9148725CD452B00BD5E8B /* SecPerformance.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SecPerformance.h; sourceTree = ""; }; + 9AA9148825CD452B00BD5E8B /* MdeModulePkgExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdeModulePkgExtra.uni; sourceTree = ""; }; + 9AA9148C25CD452B00BD5E8B /* SdBlockIoPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdBlockIoPei.c; sourceTree = ""; }; + 9AA9148D25CD452B00BD5E8B /* SdHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdHcMem.c; sourceTree = ""; }; + 9AA9148E25CD452B00BD5E8B /* SdBlockIoPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdBlockIoPeiExtra.uni; sourceTree = ""; }; + 9AA9148F25CD452B00BD5E8B /* SdHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdHci.h; sourceTree = ""; }; + 9AA9149025CD452B00BD5E8B /* SdBlockIoPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdBlockIoPei.uni; sourceTree = ""; }; + 9AA9149125CD452B00BD5E8B /* SdBlockIoPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdBlockIoPei.inf; sourceTree = ""; }; + 9AA9149225CD452B00BD5E8B /* SdHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdHcMem.h; sourceTree = ""; }; + 9AA9149325CD452B00BD5E8B /* SdBlockIoPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdBlockIoPei.h; sourceTree = ""; }; + 9AA9149425CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9149525CD452B00BD5E8B /* SdHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdHci.c; sourceTree = ""; }; + 9AA9149725CD452B00BD5E8B /* EmmcHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcHcMem.c; sourceTree = ""; }; + 9AA9149825CD452B00BD5E8B /* EmmcHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcHci.c; sourceTree = ""; }; + 9AA9149925CD452B00BD5E8B /* EmmcBlockIoPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcBlockIoPei.c; sourceTree = ""; }; + 9AA9149A25CD452B00BD5E8B /* EmmcBlockIoPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcBlockIoPeiExtra.uni; sourceTree = ""; }; + 9AA9149B25CD452B00BD5E8B /* EmmcHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcHcMem.h; sourceTree = ""; }; + 9AA9149C25CD452B00BD5E8B /* EmmcHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcHci.h; sourceTree = ""; }; + 9AA9149D25CD452B00BD5E8B /* EmmcBlockIoPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcBlockIoPei.h; sourceTree = ""; }; + 9AA9149E25CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9149F25CD452B00BD5E8B /* EmmcBlockIoPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcBlockIoPei.uni; sourceTree = ""; }; + 9AA914A025CD452B00BD5E8B /* EmmcBlockIoPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcBlockIoPei.inf; sourceTree = ""; }; + 9AA914A225CD452B00BD5E8B /* SdBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdBlockIo.c; sourceTree = ""; }; + 9AA914A325CD452B00BD5E8B /* SdDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdDxe.uni; sourceTree = ""; }; + 9AA914A425CD452B00BD5E8B /* SdDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdDxe.c; sourceTree = ""; }; + 9AA914A525CD452B00BD5E8B /* SdDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdDxe.inf; sourceTree = ""; }; + 9AA914A625CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA914A725CD452B00BD5E8B /* SdDiskInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdDiskInfo.h; sourceTree = ""; }; + 9AA914A825CD452B00BD5E8B /* SdBlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdBlockIo.h; sourceTree = ""; }; + 9AA914A925CD452B00BD5E8B /* SdDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdDxe.h; sourceTree = ""; }; + 9AA914AA25CD452B00BD5E8B /* SdDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdDxeExtra.uni; sourceTree = ""; }; + 9AA914AB25CD452B00BD5E8B /* SdDiskInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdDiskInfo.c; sourceTree = ""; }; + 9AA914AD25CD452B00BD5E8B /* EmmcDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcDxe.h; sourceTree = ""; }; + 9AA914AE25CD452B00BD5E8B /* EmmcDiskInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcDiskInfo.h; sourceTree = ""; }; + 9AA914AF25CD452B00BD5E8B /* EmmcDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcDxe.uni; sourceTree = ""; }; + 9AA914B025CD452B00BD5E8B /* EmmcBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcBlockIo.c; sourceTree = ""; }; + 9AA914B125CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA914B225CD452B00BD5E8B /* EmmcDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcDxe.inf; sourceTree = ""; }; + 9AA914B325CD452B00BD5E8B /* EmmcDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcDxe.c; sourceTree = ""; }; + 9AA914B425CD452B00BD5E8B /* EmmcDiskInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcDiskInfo.c; sourceTree = ""; }; + 9AA914B525CD452B00BD5E8B /* EmmcBlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmmcBlockIo.h; sourceTree = ""; }; + 9AA914B625CD452B00BD5E8B /* EmmcDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EmmcDxeExtra.uni; sourceTree = ""; }; + 9AA914B925CD452B00BD5E8B /* AtapiPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtapiPeim.h; sourceTree = ""; }; + 9AA914BA25CD452B00BD5E8B /* IdeBusPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdeBusPei.uni; sourceTree = ""; }; + 9AA914BB25CD452B00BD5E8B /* IdeBusPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdeBusPeiExtra.uni; sourceTree = ""; }; + 9AA914BC25CD452B00BD5E8B /* IdeBusPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = IdeBusPei.inf; sourceTree = ""; }; + 9AA914BD25CD452B00BD5E8B /* AtapiPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AtapiPeim.c; sourceTree = ""; }; + 9AA914BF25CD452B00BD5E8B /* SdMmcPciHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdMmcPciHci.c; sourceTree = ""; }; + 9AA914C025CD452B00BD5E8B /* SdMmcPciHcDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcDxeExtra.uni; sourceTree = ""; }; + 9AA914C125CD452B00BD5E8B /* SdDevice.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdDevice.c; sourceTree = ""; }; + 9AA914C225CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA914C325CD452B00BD5E8B /* SdMmcPciHcDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcPciHcDxe.h; sourceTree = ""; }; + 9AA914C425CD452B00BD5E8B /* SdMmcPciHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcPciHci.h; sourceTree = ""; }; + 9AA914C525CD452B00BD5E8B /* EmmcDevice.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EmmcDevice.c; sourceTree = ""; }; + 9AA914C625CD452B00BD5E8B /* SdMmcPciHcDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcDxe.inf; sourceTree = ""; }; + 9AA914C725CD452B00BD5E8B /* SdMmcPciHcDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcDxe.uni; sourceTree = ""; }; + 9AA914C825CD452B00BD5E8B /* SdMmcPciHcDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdMmcPciHcDxe.c; sourceTree = ""; }; + 9AA914CA25CD452B00BD5E8B /* IncompatiblePciDeviceSupportDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = IncompatiblePciDeviceSupportDxe.inf; sourceTree = ""; }; + 9AA914CB25CD452B00BD5E8B /* IncompatiblePciDeviceSupportExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IncompatiblePciDeviceSupportExtra.uni; sourceTree = ""; }; + 9AA914CC25CD452B00BD5E8B /* IncompatiblePciDeviceSupport.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IncompatiblePciDeviceSupport.uni; sourceTree = ""; }; + 9AA914CD25CD452B00BD5E8B /* IncompatiblePciDeviceSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IncompatiblePciDeviceSupport.c; sourceTree = ""; }; + 9AA914CF25CD452B00BD5E8B /* PciEnumerator.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciEnumerator.c; sourceTree = ""; }; + 9AA914D025CD452B00BD5E8B /* PciDriverOverride.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciDriverOverride.c; sourceTree = ""; }; + 9AA914D125CD452B00BD5E8B /* PciResourceSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciResourceSupport.c; sourceTree = ""; }; + 9AA914D225CD452B00BD5E8B /* PciDeviceSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciDeviceSupport.c; sourceTree = ""; }; + 9AA914D325CD452B00BD5E8B /* PciIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciIo.c; sourceTree = ""; }; + 9AA914D425CD452B00BD5E8B /* PciCommand.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciCommand.c; sourceTree = ""; }; + 9AA914D525CD452B00BD5E8B /* PciHotPlugSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciHotPlugSupport.c; sourceTree = ""; }; + 9AA914D625CD452B00BD5E8B /* PciOptionRomSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciOptionRomSupport.h; sourceTree = ""; }; + 9AA914D725CD452B00BD5E8B /* PciRomTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciRomTable.h; sourceTree = ""; }; + 9AA914D825CD452B00BD5E8B /* PciEnumeratorSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciEnumeratorSupport.c; sourceTree = ""; }; + 9AA914D925CD452B00BD5E8B /* PciLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciLib.h; sourceTree = ""; }; + 9AA914DA25CD452B00BD5E8B /* PciBusDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciBusDxeExtra.uni; sourceTree = ""; }; + 9AA914DB25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA914DC25CD452B00BD5E8B /* PciBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciBus.c; sourceTree = ""; }; + 9AA914DD25CD452B00BD5E8B /* PciPowerManagement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciPowerManagement.c; sourceTree = ""; }; + 9AA914DE25CD452B00BD5E8B /* PciResourceSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciResourceSupport.h; sourceTree = ""; }; + 9AA914DF25CD452B00BD5E8B /* PciDriverOverride.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciDriverOverride.h; sourceTree = ""; }; + 9AA914E025CD452B00BD5E8B /* PciEnumerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciEnumerator.h; sourceTree = ""; }; + 9AA914E125CD452B00BD5E8B /* PciCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCommand.h; sourceTree = ""; }; + 9AA914E225CD452B00BD5E8B /* PciIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciIo.h; sourceTree = ""; }; + 9AA914E325CD452B00BD5E8B /* PciDeviceSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciDeviceSupport.h; sourceTree = ""; }; + 9AA914E425CD452B00BD5E8B /* PciRomTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciRomTable.c; sourceTree = ""; }; + 9AA914E525CD452B00BD5E8B /* PciBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciBusDxe.inf; sourceTree = ""; }; + 9AA914E625CD452B00BD5E8B /* PciOptionRomSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciOptionRomSupport.c; sourceTree = ""; }; + 9AA914E725CD452B00BD5E8B /* PciHotPlugSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHotPlugSupport.h; sourceTree = ""; }; + 9AA914E825CD452B00BD5E8B /* PciPowerManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciPowerManagement.h; sourceTree = ""; }; + 9AA914E925CD452B00BD5E8B /* PciBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciBus.h; sourceTree = ""; }; + 9AA914EA25CD452B00BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA914EB25CD452B00BD5E8B /* PciBusDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciBusDxe.uni; sourceTree = ""; }; + 9AA914EC25CD452B00BD5E8B /* PciEnumeratorSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciEnumeratorSupport.h; sourceTree = ""; }; + 9AA914ED25CD452B00BD5E8B /* PciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciLib.c; sourceTree = ""; }; + 9AA914EF25CD452B00BD5E8B /* XhciSched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XhciSched.h; sourceTree = ""; }; + 9AA914F025CD452B00BD5E8B /* XhciPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciPei.inf; sourceTree = ""; }; + 9AA914F125CD452B00BD5E8B /* XhcPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XhcPeim.h; sourceTree = ""; }; + 9AA914F225CD452B00BD5E8B /* XhciPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciPei.uni; sourceTree = ""; }; + 9AA914F325CD452B00BD5E8B /* UsbHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHcMem.h; sourceTree = ""; }; + 9AA914F425CD452B00BD5E8B /* XhciSched.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = XhciSched.c; sourceTree = ""; }; + 9AA914F525CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA914F625CD452B00BD5E8B /* XhciPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciPeiExtra.uni; sourceTree = ""; }; + 9AA914F725CD452B00BD5E8B /* UsbHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHcMem.c; sourceTree = ""; }; + 9AA914F825CD452B00BD5E8B /* XhciReg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XhciReg.h; sourceTree = ""; }; + 9AA914F925CD452B00BD5E8B /* XhcPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = XhcPeim.c; sourceTree = ""; }; + 9AA914FB25CD452B00BD5E8B /* EhciPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciPeiExtra.uni; sourceTree = ""; }; + 9AA914FC25CD452B00BD5E8B /* EhciUrb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciUrb.h; sourceTree = ""; }; + 9AA914FD25CD452B00BD5E8B /* EhcPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhcPeim.h; sourceTree = ""; }; + 9AA914FE25CD452B00BD5E8B /* UsbHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHcMem.h; sourceTree = ""; }; + 9AA914FF25CD452B00BD5E8B /* EhciSched.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciSched.c; sourceTree = ""; }; + 9AA9150025CD452B00BD5E8B /* EhciPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciPei.uni; sourceTree = ""; }; + 9AA9150125CD452B00BD5E8B /* EhciPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciPei.inf; sourceTree = ""; }; + 9AA9150225CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9150325CD452B00BD5E8B /* EhciReg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciReg.h; sourceTree = ""; }; + 9AA9150425CD452B00BD5E8B /* EhcPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhcPeim.c; sourceTree = ""; }; + 9AA9150525CD452B00BD5E8B /* EhciUrb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciUrb.c; sourceTree = ""; }; + 9AA9150625CD452B00BD5E8B /* EhciSched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciSched.h; sourceTree = ""; }; + 9AA9150725CD452B00BD5E8B /* UsbHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHcMem.c; sourceTree = ""; }; + 9AA9150925CD452B00BD5E8B /* UfsPciHcDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcDxeExtra.uni; sourceTree = ""; }; + 9AA9150A25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9150B25CD452B00BD5E8B /* UfsPciHcDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsPciHcDxe.c; sourceTree = ""; }; + 9AA9150C25CD452B00BD5E8B /* UfsPciHcDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcDxe.uni; sourceTree = ""; }; + 9AA9150D25CD452B00BD5E8B /* UfsPciHcDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsPciHcDxe.h; sourceTree = ""; }; + 9AA9150E25CD452B00BD5E8B /* UfsPciHcDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcDxe.inf; sourceTree = ""; }; + 9AA9151025CD452B00BD5E8B /* UhciSched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UhciSched.h; sourceTree = ""; }; + 9AA9151125CD452B00BD5E8B /* UhciReg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UhciReg.h; sourceTree = ""; }; + 9AA9151225CD452B00BD5E8B /* UhciDebug.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UhciDebug.c; sourceTree = ""; }; + 9AA9151325CD452B00BD5E8B /* UhciQueue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UhciQueue.h; sourceTree = ""; }; + 9AA9151425CD452B00BD5E8B /* Uhci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Uhci.c; sourceTree = ""; }; + 9AA9151525CD452B00BD5E8B /* UhciDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciDxeExtra.uni; sourceTree = ""; }; + 9AA9151625CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9151725CD452B00BD5E8B /* UsbHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHcMem.h; sourceTree = ""; }; + 9AA9151825CD452B00BD5E8B /* UhciSched.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UhciSched.c; sourceTree = ""; }; + 9AA9151925CD452B00BD5E8B /* UhciDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciDxe.inf; sourceTree = ""; }; + 9AA9151A25CD452B00BD5E8B /* UhciDebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UhciDebug.h; sourceTree = ""; }; + 9AA9151B25CD452B00BD5E8B /* UhciReg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UhciReg.c; sourceTree = ""; }; + 9AA9151C25CD452B00BD5E8B /* UhciDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciDxe.uni; sourceTree = ""; }; + 9AA9151D25CD452B00BD5E8B /* UhciQueue.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UhciQueue.c; sourceTree = ""; }; + 9AA9151E25CD452B00BD5E8B /* UsbHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHcMem.c; sourceTree = ""; }; + 9AA9151F25CD452B00BD5E8B /* Uhci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Uhci.h; sourceTree = ""; }; + 9AA9152025CD452B00BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA9152225CD452B00BD5E8B /* DevicePath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePath.c; sourceTree = ""; }; + 9AA9152325CD452B00BD5E8B /* NvmExpressPeiHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPeiHci.h; sourceTree = ""; }; + 9AA9152425CD452B00BD5E8B /* NvmExpressPeiStorageSecurity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPeiStorageSecurity.h; sourceTree = ""; }; + 9AA9152525CD452B00BD5E8B /* NvmExpressPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPei.c; sourceTree = ""; }; + 9AA9152625CD452B00BD5E8B /* NvmExpressPeiBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPeiBlockIo.c; sourceTree = ""; }; + 9AA9152725CD452B00BD5E8B /* NvmExpressPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressPeiExtra.uni; sourceTree = ""; }; + 9AA9152825CD452B00BD5E8B /* NvmExpressPeiPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPeiPassThru.h; sourceTree = ""; }; + 9AA9152925CD452B00BD5E8B /* NvmExpressPeiS3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPeiS3.c; sourceTree = ""; }; + 9AA9152A25CD452B00BD5E8B /* NvmExpressPeiStorageSecurity.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPeiStorageSecurity.c; sourceTree = ""; }; + 9AA9152B25CD452B00BD5E8B /* NvmExpressPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPei.h; sourceTree = ""; }; + 9AA9152C25CD452B00BD5E8B /* NvmExpressPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressPei.inf; sourceTree = ""; }; + 9AA9152D25CD452B00BD5E8B /* NvmExpressPeiHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPeiHci.c; sourceTree = ""; }; + 9AA9152E25CD452B00BD5E8B /* NvmExpressPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressPei.uni; sourceTree = ""; }; + 9AA9152F25CD452B00BD5E8B /* NvmExpressPeiBlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressPeiBlockIo.h; sourceTree = ""; }; + 9AA9153025CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9153125CD452B00BD5E8B /* NvmExpressPeiPassThru.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPeiPassThru.c; sourceTree = ""; }; + 9AA9153325CD452B00BD5E8B /* SdMmcPciHcPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcPei.inf; sourceTree = ""; }; + 9AA9153425CD452B00BD5E8B /* SdMmcPciHcPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SdMmcPciHcPei.c; sourceTree = ""; }; + 9AA9153525CD452B00BD5E8B /* SdMmcPciHcPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcPei.uni; sourceTree = ""; }; + 9AA9153625CD452B00BD5E8B /* SdMmcPciHcPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SdMmcPciHcPeiExtra.uni; sourceTree = ""; }; + 9AA9153725CD452B00BD5E8B /* SdMmcPciHcPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SdMmcPciHcPei.h; sourceTree = ""; }; + 9AA9153925CD452B00BD5E8B /* SataController.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SataController.c; sourceTree = ""; }; + 9AA9153A25CD452B00BD5E8B /* SataControllerDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SataControllerDxe.uni; sourceTree = ""; }; + 9AA9153B25CD452B00BD5E8B /* SataControllerDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SataControllerDxeExtra.uni; sourceTree = ""; }; + 9AA9153C25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9153D25CD452B00BD5E8B /* SataControllerDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SataControllerDxe.inf; sourceTree = ""; }; + 9AA9153E25CD452B00BD5E8B /* SataController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SataController.h; sourceTree = ""; }; + 9AA9154025CD452B00BD5E8B /* PciSioSerialDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciSioSerialDxe.inf; sourceTree = ""; }; + 9AA9154125CD452B00BD5E8B /* Serial.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Serial.c; sourceTree = ""; }; + 9AA9154225CD452B00BD5E8B /* SerialIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SerialIo.c; sourceTree = ""; }; + 9AA9154325CD452B00BD5E8B /* PciSioSerialDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciSioSerialDxe.uni; sourceTree = ""; }; + 9AA9154425CD452B00BD5E8B /* PciSioSerialDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciSioSerialDxeExtra.uni; sourceTree = ""; }; + 9AA9154525CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9154625CD452B00BD5E8B /* Serial.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Serial.h; sourceTree = ""; }; + 9AA9154825CD452B00BD5E8B /* PciRootBridgeIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciRootBridgeIo.c; sourceTree = ""; }; + 9AA9154925CD452B00BD5E8B /* PciHostResource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHostResource.h; sourceTree = ""; }; + 9AA9154A25CD452B00BD5E8B /* PciHostBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciHostBridge.h; sourceTree = ""; }; + 9AA9154B25CD452B00BD5E8B /* PciRootBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciRootBridge.h; sourceTree = ""; }; + 9AA9154C25CD452B00BD5E8B /* PciHostBridgeDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciHostBridgeDxe.inf; sourceTree = ""; }; + 9AA9154D25CD452B00BD5E8B /* PciHostBridge.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciHostBridge.c; sourceTree = ""; }; + 9AA9154F25CD452B00BD5E8B /* XhciDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciDxeExtra.uni; sourceTree = ""; }; + 9AA9155025CD452B00BD5E8B /* XhciSched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XhciSched.h; sourceTree = ""; }; + 9AA9155125CD452B00BD5E8B /* Xhci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Xhci.c; sourceTree = ""; }; + 9AA9155225CD452B00BD5E8B /* XhciReg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = XhciReg.c; sourceTree = ""; }; + 9AA9155325CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9155425CD452B00BD5E8B /* UsbHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHcMem.h; sourceTree = ""; }; + 9AA9155525CD452B00BD5E8B /* XhciSched.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = XhciSched.c; sourceTree = ""; }; + 9AA9155625CD452B00BD5E8B /* XhciDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciDxe.inf; sourceTree = ""; }; + 9AA9155725CD452B00BD5E8B /* XhciDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = XhciDxe.uni; sourceTree = ""; }; + 9AA9155825CD452B00BD5E8B /* Xhci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Xhci.h; sourceTree = ""; }; + 9AA9155925CD452B00BD5E8B /* UsbHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHcMem.c; sourceTree = ""; }; + 9AA9155A25CD452B00BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA9155B25CD452B00BD5E8B /* XhciReg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XhciReg.h; sourceTree = ""; }; + 9AA9155D25CD452B00BD5E8B /* UhcPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UhcPeim.c; sourceTree = ""; }; + 9AA9155E25CD452B00BD5E8B /* UhciPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciPei.inf; sourceTree = ""; }; + 9AA9155F25CD452B00BD5E8B /* UhciPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciPei.uni; sourceTree = ""; }; + 9AA9156025CD452B00BD5E8B /* UhciPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UhciPeiExtra.uni; sourceTree = ""; }; + 9AA9156125CD452B00BD5E8B /* UhcPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UhcPeim.h; sourceTree = ""; }; + 9AA9156225CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9156425CD452B00BD5E8B /* NvmExpressHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressHci.c; sourceTree = ""; }; + 9AA9156525CD452B00BD5E8B /* NvmExpressPassthru.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressPassthru.c; sourceTree = ""; }; + 9AA9156625CD452B00BD5E8B /* NvmExpressBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressBlockIo.c; sourceTree = ""; }; + 9AA9156725CD452B00BD5E8B /* NvmExpressDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressDxe.inf; sourceTree = ""; }; + 9AA9156825CD452B00BD5E8B /* NvmExpressDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressDxe.uni; sourceTree = ""; }; + 9AA9156925CD452B00BD5E8B /* NvmExpress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpress.c; sourceTree = ""; }; + 9AA9156A25CD452B00BD5E8B /* NvmExpressDiskInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressDiskInfo.h; sourceTree = ""; }; + 9AA9156B25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9156C25CD452B00BD5E8B /* NvmExpressBlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressBlockIo.h; sourceTree = ""; }; + 9AA9156D25CD452B00BD5E8B /* NvmExpressHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpressHci.h; sourceTree = ""; }; + 9AA9156E25CD452B00BD5E8B /* NvmExpressDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = NvmExpressDxeExtra.uni; sourceTree = ""; }; + 9AA9156F25CD452B00BD5E8B /* NvmExpressDiskInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NvmExpressDiskInfo.c; sourceTree = ""; }; + 9AA9157025CD452B00BD5E8B /* NvmExpress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NvmExpress.h; sourceTree = ""; }; + 9AA9157225CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDiscoverablePciDeviceDxe.inf; sourceTree = ""; }; + 9AA9157325CD452B00BD5E8B /* NonDiscoverablePciDeviceIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NonDiscoverablePciDeviceIo.c; sourceTree = ""; }; + 9AA9157425CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9157525CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NonDiscoverablePciDeviceDxe.c; sourceTree = ""; }; + 9AA9157625CD452B00BD5E8B /* NonDiscoverablePciDeviceIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NonDiscoverablePciDeviceIo.h; sourceTree = ""; }; + 9AA9157825CD452B00BD5E8B /* EhciReg.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciReg.c; sourceTree = ""; }; + 9AA9157925CD452B00BD5E8B /* EhciUrb.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciUrb.h; sourceTree = ""; }; + 9AA9157A25CD452B00BD5E8B /* EhciDebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciDebug.h; sourceTree = ""; }; + 9AA9157B25CD452B00BD5E8B /* EhciDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciDxe.uni; sourceTree = ""; }; + 9AA9157C25CD452B00BD5E8B /* Ehci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ehci.h; sourceTree = ""; }; + 9AA9157D25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9157E25CD452B00BD5E8B /* EhciDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciDxe.inf; sourceTree = ""; }; + 9AA9157F25CD452B00BD5E8B /* UsbHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHcMem.h; sourceTree = ""; }; + 9AA9158025CD452B00BD5E8B /* EhciSched.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciSched.c; sourceTree = ""; }; + 9AA9158125CD452B00BD5E8B /* EhciDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = EhciDxeExtra.uni; sourceTree = ""; }; + 9AA9158225CD452B00BD5E8B /* Ehci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ehci.c; sourceTree = ""; }; + 9AA9158325CD452B00BD5E8B /* EhciDebug.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciDebug.c; sourceTree = ""; }; + 9AA9158425CD452B00BD5E8B /* EhciReg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciReg.h; sourceTree = ""; }; + 9AA9158525CD452B00BD5E8B /* EhciUrb.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EhciUrb.c; sourceTree = ""; }; + 9AA9158625CD452B00BD5E8B /* EhciSched.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EhciSched.h; sourceTree = ""; }; + 9AA9158725CD452B00BD5E8B /* UsbHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHcMem.c; sourceTree = ""; }; + 9AA9158825CD452B00BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA9158A25CD452B00BD5E8B /* UfsPciHcPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcPei.uni; sourceTree = ""; }; + 9AA9158B25CD452B00BD5E8B /* UfsPciHcPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcPei.inf; sourceTree = ""; }; + 9AA9158C25CD452B00BD5E8B /* UfsPciHcPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsPciHcPei.h; sourceTree = ""; }; + 9AA9158D25CD452B00BD5E8B /* UfsPciHcPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPciHcPeiExtra.uni; sourceTree = ""; }; + 9AA9158E25CD452B00BD5E8B /* UfsPciHcPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsPciHcPei.c; sourceTree = ""; }; + 9AA9159125CD452B00BD5E8B /* IsaBusDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IsaBusDxeExtra.uni; sourceTree = ""; }; + 9AA9159225CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9159325CD452B00BD5E8B /* IsaBusDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IsaBusDxe.h; sourceTree = ""; }; + 9AA9159425CD452B00BD5E8B /* IsaBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = IsaBusDxe.inf; sourceTree = ""; }; + 9AA9159525CD452B00BD5E8B /* IsaBusDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = IsaBusDxe.uni; sourceTree = ""; }; + 9AA9159625CD452B00BD5E8B /* IsaBusDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IsaBusDxe.c; sourceTree = ""; }; + 9AA9159725CD452B00BD5E8B /* ComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComponentName.h; sourceTree = ""; }; + 9AA9159925CD452B00BD5E8B /* Ps2KbdTextIn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ps2KbdTextIn.c; sourceTree = ""; }; + 9AA9159A25CD452B00BD5E8B /* Ps2KeyboardDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2KeyboardDxeExtra.uni; sourceTree = ""; }; + 9AA9159B25CD452B00BD5E8B /* Ps2Keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ps2Keyboard.c; sourceTree = ""; }; + 9AA9159C25CD452B00BD5E8B /* Ps2KbdCtrller.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ps2KbdCtrller.c; sourceTree = ""; }; + 9AA9159D25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9159E25CD452B00BD5E8B /* Ps2KeyboardDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2KeyboardDxe.inf; sourceTree = ""; }; + 9AA9159F25CD452B00BD5E8B /* Ps2KeyboardDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2KeyboardDxe.uni; sourceTree = ""; }; + 9AA915A025CD452B00BD5E8B /* Ps2Keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ps2Keyboard.h; sourceTree = ""; }; + 9AA915A225CD452B00BD5E8B /* Ps2Mouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ps2Mouse.c; sourceTree = ""; }; + 9AA915A325CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915A425CD452B00BD5E8B /* CommPs2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CommPs2.h; sourceTree = ""; }; + 9AA915A525CD452B00BD5E8B /* Ps2Mouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ps2Mouse.h; sourceTree = ""; }; + 9AA915A625CD452B00BD5E8B /* Ps2MouseDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2MouseDxeExtra.uni; sourceTree = ""; }; + 9AA915A725CD452B00BD5E8B /* Ps2MouseDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2MouseDxe.inf; sourceTree = ""; }; + 9AA915A825CD452B00BD5E8B /* CommPs2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CommPs2.c; sourceTree = ""; }; + 9AA915A925CD452B00BD5E8B /* Ps2MouseDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Ps2MouseDxe.uni; sourceTree = ""; }; + 9AA915AC25CD452B00BD5E8B /* ScsiDiskDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiDiskDxe.inf; sourceTree = ""; }; + 9AA915AD25CD452B00BD5E8B /* ScsiDisk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScsiDisk.c; sourceTree = ""; }; + 9AA915AE25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915AF25CD452B00BD5E8B /* ScsiDisk.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiDisk.uni; sourceTree = ""; }; + 9AA915B025CD452B00BD5E8B /* ScsiDiskExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiDiskExtra.uni; sourceTree = ""; }; + 9AA915B125CD452B00BD5E8B /* ScsiDisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScsiDisk.h; sourceTree = ""; }; + 9AA915B325CD452B00BD5E8B /* ScsiBusExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiBusExtra.uni; sourceTree = ""; }; + 9AA915B425CD452B00BD5E8B /* ScsiBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ScsiBus.c; sourceTree = ""; }; + 9AA915B525CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915B625CD452B00BD5E8B /* ScsiBus.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiBus.uni; sourceTree = ""; }; + 9AA915B725CD452B00BD5E8B /* ScsiBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ScsiBusDxe.inf; sourceTree = ""; }; + 9AA915B825CD452B00BD5E8B /* ScsiBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ScsiBus.h; sourceTree = ""; }; + 9AA915BB25CD452B00BD5E8B /* UfsBlockIoPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsBlockIoPei.inf; sourceTree = ""; }; + 9AA915BC25CD452B00BD5E8B /* UfsHcMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsHcMem.c; sourceTree = ""; }; + 9AA915BD25CD452B00BD5E8B /* UfsBlockIoPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsBlockIoPeiExtra.uni; sourceTree = ""; }; + 9AA915BE25CD452B00BD5E8B /* UfsHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsHci.c; sourceTree = ""; }; + 9AA915BF25CD452B00BD5E8B /* UfsBlockIoPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsBlockIoPei.uni; sourceTree = ""; }; + 9AA915C025CD452B00BD5E8B /* UfsBlockIoPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsBlockIoPei.c; sourceTree = ""; }; + 9AA915C125CD452B00BD5E8B /* UfsHcMem.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsHcMem.h; sourceTree = ""; }; + 9AA915C225CD452B00BD5E8B /* UfsHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsHci.h; sourceTree = ""; }; + 9AA915C325CD452B00BD5E8B /* UfsBlockIoPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsBlockIoPei.h; sourceTree = ""; }; + 9AA915C425CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA915C625CD452B00BD5E8B /* UfsPassThru.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPassThru.uni; sourceTree = ""; }; + 9AA915C725CD452B00BD5E8B /* UfsPassThruHci.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsPassThruHci.c; sourceTree = ""; }; + 9AA915C825CD452B00BD5E8B /* UfsPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsPassThru.h; sourceTree = ""; }; + 9AA915C925CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915CA25CD452B00BD5E8B /* UfsDevConfigProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsDevConfigProtocol.c; sourceTree = ""; }; + 9AA915CB25CD452B00BD5E8B /* UfsPassThruHci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UfsPassThruHci.h; sourceTree = ""; }; + 9AA915CC25CD452B00BD5E8B /* UfsPassThruDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPassThruDxe.inf; sourceTree = ""; }; + 9AA915CD25CD452B00BD5E8B /* UfsPassThruExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UfsPassThruExtra.uni; sourceTree = ""; }; + 9AA915CE25CD452B00BD5E8B /* UfsPassThru.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UfsPassThru.c; sourceTree = ""; }; + 9AA915D125CD452B00BD5E8B /* I2cBusDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cBusDxeExtra.uni; sourceTree = ""; }; + 9AA915D225CD452B00BD5E8B /* I2cDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cDxeExtra.uni; sourceTree = ""; }; + 9AA915D325CD452B00BD5E8B /* I2cDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cDxe.inf; sourceTree = ""; }; + 9AA915D425CD452B00BD5E8B /* I2cBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = I2cBus.c; sourceTree = ""; }; + 9AA915D525CD452B00BD5E8B /* I2cDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = I2cDxe.h; sourceTree = ""; }; + 9AA915D625CD452B00BD5E8B /* I2cDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cDxe.uni; sourceTree = ""; }; + 9AA915D725CD452B00BD5E8B /* I2cHost.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = I2cHost.c; sourceTree = ""; }; + 9AA915D825CD452B00BD5E8B /* I2cBusDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cBusDxe.uni; sourceTree = ""; }; + 9AA915D925CD452B00BD5E8B /* I2cBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cBusDxe.inf; sourceTree = ""; }; + 9AA915DA25CD452B00BD5E8B /* I2cHostDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cHostDxe.inf; sourceTree = ""; }; + 9AA915DB25CD452B00BD5E8B /* I2cHostDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cHostDxeExtra.uni; sourceTree = ""; }; + 9AA915DC25CD452B00BD5E8B /* I2cDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = I2cDxe.c; sourceTree = ""; }; + 9AA915DD25CD452B00BD5E8B /* I2cHostDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = I2cHostDxe.uni; sourceTree = ""; }; + 9AA915E025CD452B00BD5E8B /* UsbMouseDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseDxeExtra.uni; sourceTree = ""; }; + 9AA915E125CD452B00BD5E8B /* UsbMouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMouse.h; sourceTree = ""; }; + 9AA915E225CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915E325CD452B00BD5E8B /* UsbMouseDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseDxe.inf; sourceTree = ""; }; + 9AA915E425CD452B00BD5E8B /* UsbMouse.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMouse.c; sourceTree = ""; }; + 9AA915E525CD452B00BD5E8B /* MouseHid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MouseHid.c; sourceTree = ""; }; + 9AA915E625CD452B00BD5E8B /* UsbMouseDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseDxe.uni; sourceTree = ""; }; + 9AA915E825CD452B00BD5E8B /* UsbMouseAbsolutePointerDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseAbsolutePointerDxeExtra.uni; sourceTree = ""; }; + 9AA915E925CD452B00BD5E8B /* UsbMouseAbsolutePointer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMouseAbsolutePointer.c; sourceTree = ""; }; + 9AA915EA25CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseAbsolutePointerDxe.inf; sourceTree = ""; }; + 9AA915EB25CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915EC25CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMouseAbsolutePointerDxe.uni; sourceTree = ""; }; + 9AA915ED25CD452B00BD5E8B /* UsbMouseAbsolutePointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMouseAbsolutePointer.h; sourceTree = ""; }; + 9AA915EE25CD452B00BD5E8B /* MouseHid.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MouseHid.c; sourceTree = ""; }; + 9AA915F025CD452B00BD5E8B /* UsbEnumer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbEnumer.h; sourceTree = ""; }; + 9AA915F125CD452B00BD5E8B /* UsbBusDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusDxe.uni; sourceTree = ""; }; + 9AA915F225CD452B00BD5E8B /* UsbDesc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbDesc.c; sourceTree = ""; }; + 9AA915F325CD452B00BD5E8B /* UsbBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusDxe.inf; sourceTree = ""; }; + 9AA915F425CD452B00BD5E8B /* UsbHub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHub.h; sourceTree = ""; }; + 9AA915F525CD452B00BD5E8B /* UsbBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbBus.c; sourceTree = ""; }; + 9AA915F625CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA915F725CD452B00BD5E8B /* UsbUtility.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbUtility.h; sourceTree = ""; }; + 9AA915F825CD452B00BD5E8B /* UsbEnumer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbEnumer.c; sourceTree = ""; }; + 9AA915F925CD452B00BD5E8B /* UsbBusDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusDxeExtra.uni; sourceTree = ""; }; + 9AA915FA25CD452B00BD5E8B /* UsbDesc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbDesc.h; sourceTree = ""; }; + 9AA915FB25CD452B00BD5E8B /* UsbHub.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbHub.c; sourceTree = ""; }; + 9AA915FC25CD452B00BD5E8B /* UsbUtility.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbUtility.c; sourceTree = ""; }; + 9AA915FD25CD452B00BD5E8B /* UsbBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbBus.h; sourceTree = ""; }; + 9AA915FF25CD452B00BD5E8B /* UsbKbDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxeExtra.uni; sourceTree = ""; }; + 9AA9160025CD452B00BD5E8B /* KeyBoard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KeyBoard.c; sourceTree = ""; }; + 9AA9160125CD452B00BD5E8B /* UsbKbDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxe.inf; sourceTree = ""; }; + 9AA9160225CD452B00BD5E8B /* EfiKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiKey.h; sourceTree = ""; }; + 9AA9160325CD452B00BD5E8B /* UsbKbDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxe.uni; sourceTree = ""; }; + 9AA9160425CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9160525CD452B00BD5E8B /* KeyBoard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyBoard.h; sourceTree = ""; }; + 9AA9160625CD452B00BD5E8B /* EfiKey.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EfiKey.c; sourceTree = ""; }; + 9AA9160825CD452B00BD5E8B /* PeiUsbLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiUsbLib.c; sourceTree = ""; }; + 9AA9160925CD452B00BD5E8B /* HubPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HubPeim.h; sourceTree = ""; }; + 9AA9160A25CD452B00BD5E8B /* UsbBusPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusPeiExtra.uni; sourceTree = ""; }; + 9AA9160B25CD452B00BD5E8B /* UsbPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbPeim.h; sourceTree = ""; }; + 9AA9160C25CD452B00BD5E8B /* UsbIoPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbIoPeim.c; sourceTree = ""; }; + 9AA9160D25CD452B00BD5E8B /* PeiUsbLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiUsbLib.h; sourceTree = ""; }; + 9AA9160E25CD452B00BD5E8B /* HubPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HubPeim.c; sourceTree = ""; }; + 9AA9160F25CD452B00BD5E8B /* UsbBusPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusPei.uni; sourceTree = ""; }; + 9AA9161025CD452B00BD5E8B /* UsbPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbPeim.c; sourceTree = ""; }; + 9AA9161125CD452B00BD5E8B /* UsbBusPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBusPei.inf; sourceTree = ""; }; + 9AA9161325CD452B00BD5E8B /* PeiUsbLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiUsbLib.c; sourceTree = ""; }; + 9AA9161425CD452B00BD5E8B /* UsbBotPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBotPeiExtra.uni; sourceTree = ""; }; + 9AA9161525CD452B00BD5E8B /* UsbBotPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbBotPeim.h; sourceTree = ""; }; + 9AA9161625CD452B00BD5E8B /* UsbPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbPeim.h; sourceTree = ""; }; + 9AA9161725CD452B00BD5E8B /* BotPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BotPeim.c; sourceTree = ""; }; + 9AA9161825CD452B00BD5E8B /* UsbBotPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBotPei.inf; sourceTree = ""; }; + 9AA9161925CD452B00BD5E8B /* PeiUsbLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeiUsbLib.h; sourceTree = ""; }; + 9AA9161A25CD452B00BD5E8B /* PeiAtapi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiAtapi.c; sourceTree = ""; }; + 9AA9161B25CD452B00BD5E8B /* UsbBotPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbBotPei.uni; sourceTree = ""; }; + 9AA9161C25CD452B00BD5E8B /* UsbBotPeim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbBotPeim.c; sourceTree = ""; }; + 9AA9161D25CD452B00BD5E8B /* BotPeim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BotPeim.h; sourceTree = ""; }; + 9AA9161F25CD452B00BD5E8B /* UsbMassDiskInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMassDiskInfo.c; sourceTree = ""; }; + 9AA9162025CD452B00BD5E8B /* UsbMassCbi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassCbi.h; sourceTree = ""; }; + 9AA9162125CD452B00BD5E8B /* UsbMassImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassImpl.h; sourceTree = ""; }; + 9AA9162225CD452B00BD5E8B /* UsbMassBoot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMassBoot.c; sourceTree = ""; }; + 9AA9162325CD452B00BD5E8B /* UsbMassBot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassBot.h; sourceTree = ""; }; + 9AA9162425CD452B00BD5E8B /* UsbMassStorageDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMassStorageDxe.uni; sourceTree = ""; }; + 9AA9162525CD452B00BD5E8B /* UsbMassStorageDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMassStorageDxeExtra.uni; sourceTree = ""; }; + 9AA9162625CD452B00BD5E8B /* UsbMassStorageDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbMassStorageDxe.inf; sourceTree = ""; }; + 9AA9162725CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9162825CD452B00BD5E8B /* UsbMassCbi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMassCbi.c; sourceTree = ""; }; + 9AA9162925CD452B00BD5E8B /* UsbMass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMass.h; sourceTree = ""; }; + 9AA9162A25CD452B00BD5E8B /* UsbMassImpl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMassImpl.c; sourceTree = ""; }; + 9AA9162B25CD452B00BD5E8B /* UsbMassDiskInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassDiskInfo.h; sourceTree = ""; }; + 9AA9162C25CD452B00BD5E8B /* UsbMassBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassBoot.h; sourceTree = ""; }; + 9AA9162D25CD452B00BD5E8B /* UsbMassBot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UsbMassBot.c; sourceTree = ""; }; + 9AA9163025CD452B00BD5E8B /* DevicePath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePath.c; sourceTree = ""; }; + 9AA9163125CD452B00BD5E8B /* AhciPei.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AhciPei.inf; sourceTree = ""; }; + 9AA9163225CD452B00BD5E8B /* AhciPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AhciPei.h; sourceTree = ""; }; + 9AA9163325CD452B00BD5E8B /* AhciPeiBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciPeiBlockIo.c; sourceTree = ""; }; + 9AA9163425CD452B00BD5E8B /* AhciPei.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AhciPei.uni; sourceTree = ""; }; + 9AA9163525CD452B00BD5E8B /* AhciPeiPassThru.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciPeiPassThru.c; sourceTree = ""; }; + 9AA9163625CD452B00BD5E8B /* AhciPeiExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AhciPeiExtra.uni; sourceTree = ""; }; + 9AA9163725CD452B00BD5E8B /* AhciPeiStorageSecurity.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciPeiStorageSecurity.c; sourceTree = ""; }; + 9AA9163825CD452B00BD5E8B /* AhciPeiBlockIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AhciPeiBlockIo.h; sourceTree = ""; }; + 9AA9163925CD452B00BD5E8B /* AhciPei.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciPei.c; sourceTree = ""; }; + 9AA9163A25CD452B00BD5E8B /* AhciPeiPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AhciPeiPassThru.h; sourceTree = ""; }; + 9AA9163B25CD452B00BD5E8B /* DmaMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmaMem.c; sourceTree = ""; }; + 9AA9163C25CD452B00BD5E8B /* AhciPeiStorageSecurity.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AhciPeiStorageSecurity.h; sourceTree = ""; }; + 9AA9163D25CD452B00BD5E8B /* AhciMode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciMode.c; sourceTree = ""; }; + 9AA9163E25CD452B00BD5E8B /* AhciPeiS3.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciPeiS3.c; sourceTree = ""; }; + 9AA9164025CD452B00BD5E8B /* AtaAtapiPassThru.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaAtapiPassThru.h; sourceTree = ""; }; + 9AA9164125CD452B00BD5E8B /* AhciMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AhciMode.h; sourceTree = ""; }; + 9AA9164225CD452B00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9164325CD452C00BD5E8B /* AtaAtapiPassThru.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaAtapiPassThru.inf; sourceTree = ""; }; + 9AA9164425CD452C00BD5E8B /* IdeMode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = IdeMode.c; sourceTree = ""; }; + 9AA9164525CD452C00BD5E8B /* AtaAtapiPassThruDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaAtapiPassThruDxeExtra.uni; sourceTree = ""; }; + 9AA9164625CD452C00BD5E8B /* AtaAtapiPassThru.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AtaAtapiPassThru.c; sourceTree = ""; }; + 9AA9164725CD452C00BD5E8B /* AtaAtapiPassThruDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaAtapiPassThruDxe.uni; sourceTree = ""; }; + 9AA9164825CD452C00BD5E8B /* IdeMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = IdeMode.h; sourceTree = ""; }; + 9AA9164925CD452C00BD5E8B /* AhciMode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AhciMode.c; sourceTree = ""; }; + 9AA9164B25CD452C00BD5E8B /* AtaBusDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaBusDxe.inf; sourceTree = ""; }; + 9AA9164C25CD452C00BD5E8B /* AtaPassThruExecute.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AtaPassThruExecute.c; sourceTree = ""; }; + 9AA9164D25CD452C00BD5E8B /* AtaBusDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaBusDxe.uni; sourceTree = ""; }; + 9AA9164E25CD452C00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA9164F25CD452C00BD5E8B /* AtaBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtaBus.h; sourceTree = ""; }; + 9AA9165025CD452C00BD5E8B /* AtaBusDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AtaBusDxeExtra.uni; sourceTree = ""; }; + 9AA9165125CD452C00BD5E8B /* AtaBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AtaBus.c; sourceTree = ""; }; + 9AA9165425CD452C00BD5E8B /* DxeCapsuleRuntime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleRuntime.c; sourceTree = ""; }; + 9AA9165525CD452C00BD5E8B /* CapsuleOnDisk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleOnDisk.c; sourceTree = ""; }; + 9AA9165625CD452C00BD5E8B /* DxeCapsuleProcessLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleProcessLibNull.c; sourceTree = ""; }; + 9AA9165725CD452C00BD5E8B /* DxeCapsuleReportLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleReportLibNull.c; sourceTree = ""; }; + 9AA9165825CD452C00BD5E8B /* DxeCapsuleProcessLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleProcessLib.c; sourceTree = ""; }; + 9AA9165925CD452C00BD5E8B /* DxeCapsuleReportLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleReportLib.c; sourceTree = ""; }; + 9AA9165A25CD452C00BD5E8B /* CapsuleOnDisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleOnDisk.h; sourceTree = ""; }; + 9AA9165B25CD452C00BD5E8B /* DxeRuntimeCapsuleLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimeCapsuleLib.inf; sourceTree = ""; }; + 9AA9165C25CD452C00BD5E8B /* DxeCapsuleLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCapsuleLib.uni; sourceTree = ""; }; + 9AA9165D25CD452C00BD5E8B /* DxeCapsuleLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleLib.c; sourceTree = ""; }; + 9AA9165E25CD452C00BD5E8B /* DxeRuntimeCapsuleLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeRuntimeCapsuleLib.uni; sourceTree = ""; }; + 9AA9165F25CD452C00BD5E8B /* DxeCapsuleLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCapsuleLib.inf; sourceTree = ""; }; + 9AA9166125CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmIpmiLibSmmIpmiProtocol.c; sourceTree = ""; }; + 9AA9166225CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIpmiLibSmmIpmiProtocol.inf; sourceTree = ""; }; + 9AA9166325CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmIpmiLibSmmIpmiProtocol.uni; sourceTree = ""; }; + 9AA9166525CD452C00BD5E8B /* OemHookStatusCodeLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OemHookStatusCodeLibNull.inf; sourceTree = ""; }; + 9AA9166625CD452C00BD5E8B /* OemHookStatusCodeLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OemHookStatusCodeLibNull.c; sourceTree = ""; }; + 9AA9166725CD452C00BD5E8B /* OemHookStatusCodeLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = OemHookStatusCodeLibNull.uni; sourceTree = ""; }; + 9AA9166925CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCrc32GuidedSectionExtractLib.c; sourceTree = ""; }; + 9AA9166A25CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCrc32GuidedSectionExtractLib.inf; sourceTree = ""; }; + 9AA9166B25CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCrc32GuidedSectionExtractLib.uni; sourceTree = ""; }; + 9AA9166D25CD452C00BD5E8B /* BootLogoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootLogoLib.c; sourceTree = ""; }; + 9AA9166E25CD452C00BD5E8B /* BootLogoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootLogoLib.inf; sourceTree = ""; }; + 9AA9166F25CD452C00BD5E8B /* BootLogoLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootLogoLib.uni; sourceTree = ""; }; + 9AA9167125CD452C00BD5E8B /* LockBoxNullLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LockBoxNullLib.inf; sourceTree = ""; }; + 9AA9167225CD452C00BD5E8B /* LockBoxNullLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LockBoxNullLib.c; sourceTree = ""; }; + 9AA9167325CD452C00BD5E8B /* LockBoxNullLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LockBoxNullLib.uni; sourceTree = ""; }; + 9AA9167525CD452C00BD5E8B /* FmpAuthenticationLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FmpAuthenticationLibNull.c; sourceTree = ""; }; + 9AA9167625CD452C00BD5E8B /* FmpAuthenticationLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FmpAuthenticationLibNull.inf; sourceTree = ""; }; + 9AA9167725CD452C00BD5E8B /* FmpAuthenticationLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FmpAuthenticationLibNull.uni; sourceTree = ""; }; + 9AA9167925CD452C00BD5E8B /* PlatVarCleanup.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatVarCleanup.vfr; sourceTree = ""; }; + 9AA9167A25CD452C00BD5E8B /* PlatVarCleanupLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatVarCleanupLib.c; sourceTree = ""; }; + 9AA9167B25CD452C00BD5E8B /* PlatVarCleanup.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatVarCleanup.h; sourceTree = ""; }; + 9AA9167C25CD452C00BD5E8B /* PlatformVarCleanupLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformVarCleanupLib.inf; sourceTree = ""; }; + 9AA9167D25CD452C00BD5E8B /* PlatVarCleanupHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlatVarCleanupHii.h; sourceTree = ""; }; + 9AA9167E25CD452C00BD5E8B /* VfrStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VfrStrings.uni; sourceTree = ""; }; + 9AA9167F25CD452C00BD5E8B /* PlatformVarCleanupLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformVarCleanupLib.uni; sourceTree = ""; }; + 9AA9168125CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiIpmiLibIpmiPpi.c; sourceTree = ""; }; + 9AA9168225CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiIpmiLibIpmiPpi.inf; sourceTree = ""; }; + 9AA9168325CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiIpmiLibIpmiPpi.uni; sourceTree = ""; }; + 9AA9168525CD452C00BD5E8B /* LzmaArchCustomDecompressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LzmaArchCustomDecompressLib.inf; sourceTree = ""; }; + 9AA9168625CD452C00BD5E8B /* F86GuidedSectionExtraction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = F86GuidedSectionExtraction.c; sourceTree = ""; }; + 9AA9168725CD452C00BD5E8B /* LzmaCustomDecompressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LzmaCustomDecompressLib.inf; sourceTree = ""; }; + 9AA9168A25CD452C00BD5E8B /* lzma-sdk.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "lzma-sdk.txt"; sourceTree = ""; }; + 9AA9168B25CD452C00BD5E8B /* lzma-history.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "lzma-history.txt"; sourceTree = ""; }; + 9AA9168D25CD452C00BD5E8B /* LzHash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzHash.h; sourceTree = ""; }; + 9AA9168E25CD452C00BD5E8B /* 7zTypes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 7zTypes.h; sourceTree = ""; }; + 9AA9168F25CD452C00BD5E8B /* Compiler.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Compiler.h; sourceTree = ""; }; + 9AA9169025CD452C00BD5E8B /* LzFind.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LzFind.c; sourceTree = ""; }; + 9AA9169125CD452C00BD5E8B /* Precomp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Precomp.h; sourceTree = ""; }; + 9AA9169225CD452C00BD5E8B /* CpuArch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuArch.h; sourceTree = ""; }; + 9AA9169325CD452C00BD5E8B /* Bra86.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Bra86.c; sourceTree = ""; }; + 9AA9169425CD452C00BD5E8B /* LzmaDec.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LzmaDec.c; sourceTree = ""; }; + 9AA9169525CD452C00BD5E8B /* LzFind.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzFind.h; sourceTree = ""; }; + 9AA9169625CD452C00BD5E8B /* 7zVersion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 7zVersion.h; sourceTree = ""; }; + 9AA9169725CD452C00BD5E8B /* Bra.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bra.h; sourceTree = ""; }; + 9AA9169825CD452C00BD5E8B /* LzmaDec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzmaDec.h; sourceTree = ""; }; + 9AA9169925CD452C00BD5E8B /* LzmaDecompressLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzmaDecompressLibInternal.h; sourceTree = ""; }; + 9AA9169A25CD452C00BD5E8B /* LZMA-SDK-README.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "LZMA-SDK-README.txt"; sourceTree = ""; }; + 9AA9169B25CD452C00BD5E8B /* LzmaArchDecompressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LzmaArchDecompressLib.uni; sourceTree = ""; }; + 9AA9169C25CD452C00BD5E8B /* LzmaDecompress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LzmaDecompress.c; sourceTree = ""; }; + 9AA9169D25CD452C00BD5E8B /* LzmaDecompressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LzmaDecompressLib.uni; sourceTree = ""; }; + 9AA9169E25CD452C00BD5E8B /* GuidedSectionExtraction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GuidedSectionExtraction.c; sourceTree = ""; }; + 9AA9169F25CD452C00BD5E8B /* UefiLzma.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiLzma.h; sourceTree = ""; }; + 9AA916A125CD452C00BD5E8B /* DeviceManagerUiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DeviceManagerUiLib.uni; sourceTree = ""; }; + 9AA916A225CD452C00BD5E8B /* DeviceManagerStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DeviceManagerStrings.uni; sourceTree = ""; }; + 9AA916A325CD452C00BD5E8B /* DeviceManagerUiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DeviceManagerUiLib.inf; sourceTree = ""; }; + 9AA916A425CD452C00BD5E8B /* DeviceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceManager.h; sourceTree = ""; }; + 9AA916A525CD452C00BD5E8B /* DeviceManagerVfr.Vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = DeviceManagerVfr.Vfr; sourceTree = ""; }; + 9AA916A625CD452C00BD5E8B /* DeviceManager.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DeviceManager.c; sourceTree = ""; }; + 9AA916A825CD452C00BD5E8B /* BaseIpmiLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseIpmiLibNull.c; sourceTree = ""; }; + 9AA916A925CD452C00BD5E8B /* BaseIpmiLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIpmiLibNull.inf; sourceTree = ""; }; + 9AA916AA25CD452C00BD5E8B /* BaseIpmiLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseIpmiLibNull.uni; sourceTree = ""; }; + 9AA916AC25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCrc32GuidedSectionExtractLib.uni; sourceTree = ""; }; + 9AA916AD25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiCrc32GuidedSectionExtractLib.inf; sourceTree = ""; }; + 9AA916AE25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiCrc32GuidedSectionExtractLib.c; sourceTree = ""; }; + 9AA916B025CD452C00BD5E8B /* BmConnect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmConnect.c; sourceTree = ""; }; + 9AA916B125CD452C00BD5E8B /* BmConsole.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmConsole.c; sourceTree = ""; }; + 9AA916B225CD452C00BD5E8B /* BmHotkey.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmHotkey.c; sourceTree = ""; }; + 9AA916B325CD452C00BD5E8B /* InternalBm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalBm.h; sourceTree = ""; }; + 9AA916B425CD452C00BD5E8B /* UefiBootManagerLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiBootManagerLib.inf; sourceTree = ""; }; + 9AA916B525CD452C00BD5E8B /* BmLoadOption.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmLoadOption.c; sourceTree = ""; }; + 9AA916B625CD452C00BD5E8B /* BmBootDescription.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmBootDescription.c; sourceTree = ""; }; + 9AA916B725CD452C00BD5E8B /* UefiBootManagerLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiBootManagerLib.uni; sourceTree = ""; }; + 9AA916B825CD452C00BD5E8B /* BmDriverHealth.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmDriverHealth.c; sourceTree = ""; }; + 9AA916B925CD452C00BD5E8B /* BmBoot.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmBoot.c; sourceTree = ""; }; + 9AA916BA25CD452C00BD5E8B /* BmMisc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmMisc.c; sourceTree = ""; }; + 9AA916BC25CD452C00BD5E8B /* DxeNetLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeNetLib.inf; sourceTree = ""; }; + 9AA916BD25CD452C00BD5E8B /* DxeNetLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeNetLib.uni; sourceTree = ""; }; + 9AA916BE25CD452C00BD5E8B /* NetBuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NetBuffer.c; sourceTree = ""; }; + 9AA916BF25CD452C00BD5E8B /* DxeNetLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeNetLib.c; sourceTree = ""; }; + 9AA916C125CD452C00BD5E8B /* FileExplorer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FileExplorer.h; sourceTree = ""; }; + 9AA916C225CD452C00BD5E8B /* FileExplorerString.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerString.uni; sourceTree = ""; }; + 9AA916C325CD452C00BD5E8B /* FormGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormGuid.h; sourceTree = ""; }; + 9AA916C425CD452C00BD5E8B /* FileExplorer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileExplorer.c; sourceTree = ""; }; + 9AA916C525CD452C00BD5E8B /* FileExplorerVfr.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerVfr.vfr; sourceTree = ""; }; + 9AA916C625CD452C00BD5E8B /* FileExplorerLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerLib.inf; sourceTree = ""; }; + 9AA916C725CD452C00BD5E8B /* FileExplorerLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FileExplorerLib.uni; sourceTree = ""; }; + 9AA916C925CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIpmiLibIpmiProtocol.uni; sourceTree = ""; }; + 9AA916CA25CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIpmiLibIpmiProtocol.inf; sourceTree = ""; }; + 9AA916CB25CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeIpmiLibIpmiProtocol.c; sourceTree = ""; }; + 9AA916CD25CD452C00BD5E8B /* VarCheckLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckLib.c; sourceTree = ""; }; + 9AA916CE25CD452C00BD5E8B /* VarCheckLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckLib.inf; sourceTree = ""; }; + 9AA916CF25CD452C00BD5E8B /* VarCheckLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckLib.uni; sourceTree = ""; }; + 9AA916D125CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayUpdateProgressLibGraphics.uni; sourceTree = ""; }; + 9AA916D225CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayUpdateProgressLibGraphics.inf; sourceTree = ""; }; + 9AA916D325CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DisplayUpdateProgressLibGraphics.c; sourceTree = ""; }; + 9AA916D525CD452C00BD5E8B /* AuthVariableLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = AuthVariableLibNull.uni; sourceTree = ""; }; + 9AA916D625CD452C00BD5E8B /* AuthVariableLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AuthVariableLibNull.inf; sourceTree = ""; }; + 9AA916D725CD452C00BD5E8B /* AuthVariableLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AuthVariableLibNull.c; sourceTree = ""; }; + 9AA916D925CD452C00BD5E8B /* SmmReportStatusCodeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmReportStatusCodeLib.uni; sourceTree = ""; }; + 9AA916DA25CD452C00BD5E8B /* ReportStatusCodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeLib.c; sourceTree = ""; }; + 9AA916DB25CD452C00BD5E8B /* SmmReportStatusCodeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmReportStatusCodeLib.inf; sourceTree = ""; }; + 9AA916DD25CD452C00BD5E8B /* PeiReportStatusCodeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiReportStatusCodeLib.uni; sourceTree = ""; }; + 9AA916DE25CD452C00BD5E8B /* PeiReportStatusCodeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiReportStatusCodeLib.inf; sourceTree = ""; }; + 9AA916DF25CD452C00BD5E8B /* ReportStatusCodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeLib.c; sourceTree = ""; }; + 9AA916E125CD452C00BD5E8B /* PeiPerformanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPerformanceLib.uni; sourceTree = ""; }; + 9AA916E225CD452C00BD5E8B /* PeiPerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiPerformanceLib.c; sourceTree = ""; }; + 9AA916E325CD452C00BD5E8B /* PeiPerformanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiPerformanceLib.inf; sourceTree = ""; }; + 9AA916E525CD452C00BD5E8B /* SmmLockBoxSmmLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmLockBoxSmmLib.c; sourceTree = ""; }; + 9AA916E625CD452C00BD5E8B /* SmmLockBoxPeiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxPeiLib.uni; sourceTree = ""; }; + 9AA916E725CD452C00BD5E8B /* SmmLockBoxDxeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxDxeLib.uni; sourceTree = ""; }; + 9AA916E825CD452C00BD5E8B /* SmmLockBoxPeiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxPeiLib.inf; sourceTree = ""; }; + 9AA916E925CD452C00BD5E8B /* SmmLockBoxDxeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxDxeLib.inf; sourceTree = ""; }; + 9AA916EA25CD452C00BD5E8B /* SmmLockBoxSmmLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxSmmLib.inf; sourceTree = ""; }; + 9AA916EB25CD452C00BD5E8B /* SmmLockBoxSmmLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmLockBoxSmmLib.uni; sourceTree = ""; }; + 9AA916EC25CD452C00BD5E8B /* SmmLockBoxPeiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmLockBoxPeiLib.c; sourceTree = ""; }; + 9AA916ED25CD452C00BD5E8B /* SmmLockBoxLibPrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmLockBoxLibPrivate.h; sourceTree = ""; }; + 9AA916EE25CD452C00BD5E8B /* SmmLockBoxDxeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmLockBoxDxeLib.c; sourceTree = ""; }; + 9AA916F025CD452C00BD5E8B /* DxePerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxePerformanceLib.c; sourceTree = ""; }; + 9AA916F125CD452C00BD5E8B /* DxePerformanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePerformanceLib.uni; sourceTree = ""; }; + 9AA916F225CD452C00BD5E8B /* DxePerformanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePerformanceLib.inf; sourceTree = ""; }; + 9AA916F425CD452C00BD5E8B /* SmmMemoryAllocationProfileLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemoryAllocationProfileLib.uni; sourceTree = ""; }; + 9AA916F525CD452C00BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA916F625CD452C00BD5E8B /* SmmMemoryAllocationProfileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmMemoryAllocationProfileLib.inf; sourceTree = ""; }; + 9AA916F725CD452C00BD5E8B /* SmmMemoryProfileLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmMemoryProfileLib.c; sourceTree = ""; }; + 9AA916F925CD452C00BD5E8B /* PlatformBootManager.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatformBootManager.c; sourceTree = ""; }; + 9AA916FA25CD452C00BD5E8B /* PlatformBootManagerLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformBootManagerLibNull.inf; sourceTree = ""; }; + 9AA916FB25CD452C00BD5E8B /* PlatformBootManagerLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformBootManagerLibNull.uni; sourceTree = ""; }; + 9AA916FD25CD452C00BD5E8B /* DxeFileExplorerProtocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeFileExplorerProtocol.inf; sourceTree = ""; }; + 9AA916FE25CD452C00BD5E8B /* DxeFileExplorerProtocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeFileExplorerProtocol.uni; sourceTree = ""; }; + 9AA916FF25CD452C00BD5E8B /* DxeFileExplorerProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeFileExplorerProtocol.c; sourceTree = ""; }; + 9AA9170125CD452C00BD5E8B /* InternalBootScriptLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalBootScriptLib.h; sourceTree = ""; }; + 9AA9170225CD452C00BD5E8B /* BootScriptInternalFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootScriptInternalFormat.h; sourceTree = ""; }; + 9AA9170325CD452C00BD5E8B /* BootScriptSave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootScriptSave.c; sourceTree = ""; }; + 9AA9170425CD452C00BD5E8B /* BootScriptExecute.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootScriptExecute.c; sourceTree = ""; }; + 9AA9170525CD452C00BD5E8B /* DxeS3BootScriptLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeS3BootScriptLib.inf; sourceTree = ""; }; + 9AA9170625CD452C00BD5E8B /* DxeS3BootScriptLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeS3BootScriptLib.uni; sourceTree = ""; }; + 9AA9170825CD452C00BD5E8B /* DxeHttpLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeHttpLib.c; sourceTree = ""; }; + 9AA9170925CD452C00BD5E8B /* DxeHttpLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHttpLib.inf; sourceTree = ""; }; + 9AA9170A25CD452C00BD5E8B /* DxeHttpLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeHttpLib.uni; sourceTree = ""; }; + 9AA9170B25CD452C00BD5E8B /* DxeHttpLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeHttpLib.h; sourceTree = ""; }; + 9AA9170D25CD452C00BD5E8B /* BasePlatformHookLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePlatformHookLibNull.inf; sourceTree = ""; }; + 9AA9170E25CD452C00BD5E8B /* BasePlatformHookLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BasePlatformHookLibNull.uni; sourceTree = ""; }; + 9AA9170F25CD452C00BD5E8B /* BasePlatformHookLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BasePlatformHookLibNull.c; sourceTree = ""; }; + 9AA9171125CD452C00BD5E8B /* BaseResetSystemLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseResetSystemLibNull.uni; sourceTree = ""; }; + 9AA9171225CD452C00BD5E8B /* BaseResetSystemLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseResetSystemLibNull.inf; sourceTree = ""; }; + 9AA9171325CD452C00BD5E8B /* BaseResetSystemLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseResetSystemLibNull.c; sourceTree = ""; }; + 9AA9171525CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NonDiscoverableDeviceRegistrationLib.c; sourceTree = ""; }; + 9AA9171625CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = NonDiscoverableDeviceRegistrationLib.inf; sourceTree = ""; }; + 9AA9171825CD452C00BD5E8B /* FrameBufferBltLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FrameBufferBltLib.c; sourceTree = ""; }; + 9AA9171925CD452C00BD5E8B /* FrameBufferBltLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = FrameBufferBltLib.inf; sourceTree = ""; }; + 9AA9171B25CD452C00BD5E8B /* PciHostBridgeLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciHostBridgeLibNull.uni; sourceTree = ""; }; + 9AA9171C25CD452C00BD5E8B /* PciHostBridgeLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciHostBridgeLibNull.inf; sourceTree = ""; }; + 9AA9171D25CD452C00BD5E8B /* PciHostBridgeLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciHostBridgeLibNull.c; sourceTree = ""; }; + 9AA9171F25CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDxeDebugLibReportStatusCode.uni; sourceTree = ""; }; + 9AA9172025CD452C00BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA9172125CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDxeDebugLibReportStatusCode.inf; sourceTree = ""; }; + 9AA9172325CD452C00BD5E8B /* TpmMeasurementLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = TpmMeasurementLibNull.uni; sourceTree = ""; }; + 9AA9172425CD452C00BD5E8B /* TpmMeasurementLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TpmMeasurementLibNull.c; sourceTree = ""; }; + 9AA9172525CD452C00BD5E8B /* TpmMeasurementLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = TpmMeasurementLibNull.inf; sourceTree = ""; }; + 9AA9172725CD452C00BD5E8B /* PeiDebugPrintHobLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDebugPrintHobLib.uni; sourceTree = ""; }; + 9AA9172825CD452C00BD5E8B /* PeiDebugPrintHobLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiDebugPrintHobLib.c; sourceTree = ""; }; + 9AA9172925CD452C00BD5E8B /* PeiDebugPrintHobLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDebugPrintHobLib.inf; sourceTree = ""; }; + 9AA9172B25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeDxeReportStatusCodeLib.inf; sourceTree = ""; }; + 9AA9172C25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeDxeReportStatusCodeLib.uni; sourceTree = ""; }; + 9AA9172D25CD452C00BD5E8B /* ReportStatusCodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeLib.c; sourceTree = ""; }; + 9AA9172F25CD452C00BD5E8B /* UefiSortLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiSortLib.inf; sourceTree = ""; }; + 9AA9173025CD452C00BD5E8B /* UefiSortLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiSortLib.c; sourceTree = ""; }; + 9AA9173125CD452C00BD5E8B /* UefiSortLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiSortLib.uni; sourceTree = ""; }; + 9AA9173325CD452C00BD5E8B /* VarCheckHiiGen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckHiiGen.c; sourceTree = ""; }; + 9AA9173425CD452C00BD5E8B /* VarCheckHii.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarCheckHii.h; sourceTree = ""; }; + 9AA9173525CD452C00BD5E8B /* VarCheckHiiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckHiiLib.uni; sourceTree = ""; }; + 9AA9173625CD452C00BD5E8B /* VarCheckHiiGenFromFv.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckHiiGenFromFv.c; sourceTree = ""; }; + 9AA9173725CD452C00BD5E8B /* VarCheckHiiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckHiiLib.inf; sourceTree = ""; }; + 9AA9173825CD452C00BD5E8B /* InternalVarCheckStructure.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalVarCheckStructure.h; sourceTree = ""; }; + 9AA9173925CD452C00BD5E8B /* VarCheckHiiGenFromHii.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckHiiGenFromHii.c; sourceTree = ""; }; + 9AA9173A25CD452C00BD5E8B /* VarCheckHiiLibNullClass.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckHiiLibNullClass.c; sourceTree = ""; }; + 9AA9173B25CD452C00BD5E8B /* VarCheckHiiGen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarCheckHiiGen.h; sourceTree = ""; }; + 9AA9173D25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseMemoryAllocationLibNull.c; sourceTree = ""; }; + 9AA9173E25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryAllocationLibNull.inf; sourceTree = ""; }; + 9AA9173F25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseMemoryAllocationLibNull.uni; sourceTree = ""; }; + 9AA9174125CD452C00BD5E8B /* DisplayUpdateProgressLibText.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DisplayUpdateProgressLibText.c; sourceTree = ""; }; + 9AA9174225CD452C00BD5E8B /* DisplayUpdateProgressLibText.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayUpdateProgressLibText.inf; sourceTree = ""; }; + 9AA9174325CD452C00BD5E8B /* DisplayUpdateProgressLibText.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DisplayUpdateProgressLibText.uni; sourceTree = ""; }; + 9AA9174525CD452C00BD5E8B /* CustomizedDisplayLibModStrs.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CustomizedDisplayLibModStrs.uni; sourceTree = ""; }; + 9AA9174625CD452C00BD5E8B /* Colors.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Colors.h; sourceTree = ""; }; + 9AA9174725CD452C00BD5E8B /* CustomizedDisplayLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CustomizedDisplayLibInternal.h; sourceTree = ""; }; + 9AA9174825CD452C00BD5E8B /* CustomizedDisplayLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CustomizedDisplayLib.inf; sourceTree = ""; }; + 9AA9174925CD452C00BD5E8B /* CustomizedDisplayLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CustomizedDisplayLib.uni; sourceTree = ""; }; + 9AA9174A25CD452C00BD5E8B /* CustomizedDisplayLibInternal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CustomizedDisplayLibInternal.c; sourceTree = ""; }; + 9AA9174B25CD452C00BD5E8B /* CustomizedDisplayLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CustomizedDisplayLib.c; sourceTree = ""; }; + 9AA9174D25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCorePlatformHookLibNull.inf; sourceTree = ""; }; + 9AA9174E25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCorePlatformHookLibNull.uni; sourceTree = ""; }; + 9AA9174F25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmCorePlatformHookLibNull.c; sourceTree = ""; }; + 9AA9175125CD452C00BD5E8B /* DebugAgentLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugAgentLibNull.uni; sourceTree = ""; }; + 9AA9175225CD452C00BD5E8B /* DebugAgentLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DebugAgentLibNull.inf; sourceTree = ""; }; + 9AA9175325CD452C00BD5E8B /* DebugAgentLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugAgentLibNull.c; sourceTree = ""; }; + 9AA9175525CD452C00BD5E8B /* UefiHiiServicesLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiHiiServicesLib.inf; sourceTree = ""; }; + 9AA9175625CD452C00BD5E8B /* UefiHiiServicesLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiHiiServicesLib.uni; sourceTree = ""; }; + 9AA9175725CD452C00BD5E8B /* UefiHiiServicesLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiHiiServicesLib.c; sourceTree = ""; }; + 9AA9175925CD452C00BD5E8B /* BmLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmLib.c; sourceTree = ""; }; + 9AA9175A25CD452C00BD5E8B /* BootMaintenanceManagerUiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootMaintenanceManagerUiLib.inf; sourceTree = ""; }; + 9AA9175B25CD452C00BD5E8B /* BootOption.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootOption.c; sourceTree = ""; }; + 9AA9175C25CD452C00BD5E8B /* BootMaintenanceManagerUiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootMaintenanceManagerUiLib.uni; sourceTree = ""; }; + 9AA9175D25CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUiSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootMaintenanceManagerCustomizedUiSupport.c; sourceTree = ""; }; + 9AA9175E25CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootMaintenanceManagerCustomizedUi.c; sourceTree = ""; }; + 9AA9175F25CD452C00BD5E8B /* BootMaintenanceManager.vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootMaintenanceManager.vfr; sourceTree = ""; }; + 9AA9176025CD452C00BD5E8B /* BootMaintenanceManagerStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootMaintenanceManagerStrings.uni; sourceTree = ""; }; + 9AA9176125CD452C00BD5E8B /* BootMaintenanceManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootMaintenanceManager.h; sourceTree = ""; }; + 9AA9176225CD452C00BD5E8B /* BootMaintenance.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootMaintenance.c; sourceTree = ""; }; + 9AA9176325CD452C00BD5E8B /* FormGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FormGuid.h; sourceTree = ""; }; + 9AA9176425CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUiSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootMaintenanceManagerCustomizedUiSupport.h; sourceTree = ""; }; + 9AA9176525CD452C00BD5E8B /* UpdatePage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UpdatePage.c; sourceTree = ""; }; + 9AA9176625CD452C00BD5E8B /* Data.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Data.c; sourceTree = ""; }; + 9AA9176725CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootMaintenanceManagerCustomizedUi.h; sourceTree = ""; }; + 9AA9176825CD452C00BD5E8B /* ConsoleOption.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConsoleOption.c; sourceTree = ""; }; + 9AA9176925CD452C00BD5E8B /* Variable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Variable.c; sourceTree = ""; }; + 9AA9176B25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformHookLibSerialPortPpi.inf; sourceTree = ""; }; + 9AA9176C25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PlatformHookLibSerialPortPpi.uni; sourceTree = ""; }; + 9AA9176D25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatformHookLibSerialPortPpi.c; sourceTree = ""; }; + 9AA9176F25CD452C00BD5E8B /* BaseSerialPortLib16550.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseSerialPortLib16550.c; sourceTree = ""; }; + 9AA9177025CD452C00BD5E8B /* BaseSerialPortLib16550.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSerialPortLib16550.inf; sourceTree = ""; }; + 9AA9177125CD452C00BD5E8B /* BaseSerialPortLib16550.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSerialPortLib16550.uni; sourceTree = ""; }; + 9AA9177325CD452C00BD5E8B /* BaseHobLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseHobLibNull.c; sourceTree = ""; }; + 9AA9177425CD452C00BD5E8B /* BaseHobLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseHobLibNull.inf; sourceTree = ""; }; + 9AA9177525CD452C00BD5E8B /* BaseHobLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseHobLibNull.uni; sourceTree = ""; }; + 9AA9177725CD452C00BD5E8B /* SmmPerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmPerformanceLib.c; sourceTree = ""; }; + 9AA9177825CD452C00BD5E8B /* SmmPerformanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPerformanceLib.inf; sourceTree = ""; }; + 9AA9177925CD452C00BD5E8B /* SmmPerformanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmPerformanceLib.uni; sourceTree = ""; }; + 9AA9177B25CD452C00BD5E8B /* DxeCapsuleLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCapsuleLibNull.inf; sourceTree = ""; }; + 9AA9177C25CD452C00BD5E8B /* DxeCapsuleLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCapsuleLibNull.uni; sourceTree = ""; }; + 9AA9177D25CD452C00BD5E8B /* DxeCapsuleLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCapsuleLibNull.c; sourceTree = ""; }; + 9AA9177F25CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeDebugPrintErrorLevelLib.inf; sourceTree = ""; }; + 9AA9178025CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeDebugPrintErrorLevelLib.uni; sourceTree = ""; }; + 9AA9178125CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeDebugPrintErrorLevelLib.c; sourceTree = ""; }; + 9AA9178325CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreSmmServicesTableLib.uni; sourceTree = ""; }; + 9AA9178425CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreSmmServicesTableLib.inf; sourceTree = ""; }; + 9AA9178525CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PiSmmCoreSmmServicesTableLib.c; sourceTree = ""; }; + 9AA9178725CD452C00BD5E8B /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 9AA9178825CD452C00BD5E8B /* BrotliDecompressLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BrotliDecompressLibInternal.h; sourceTree = ""; }; + 9AA9178A25CD452C00BD5E8B /* port.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = port.h; sourceTree = ""; }; + 9AA9178B25CD452C00BD5E8B /* types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = types.h; sourceTree = ""; }; + 9AA9178C25CD452C00BD5E8B /* decode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = decode.h; sourceTree = ""; }; + 9AA9178D25CD452C00BD5E8B /* BrotliDecompress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BrotliDecompress.c; sourceTree = ""; }; + 9AA9178F25CD452C00BD5E8B /* brotli-comparison-study-2015-09-22.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = "brotli-comparison-study-2015-09-22.pdf"; sourceTree = ""; }; + 9AA9179025CD452C00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA9179225CD452C00BD5E8B /* dictionary.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dictionary.c; sourceTree = ""; }; + 9AA9179325CD452C00BD5E8B /* version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = ""; }; + 9AA9179425CD452C00BD5E8B /* transform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = transform.c; sourceTree = ""; }; + 9AA9179525CD452C00BD5E8B /* context.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = context.h; sourceTree = ""; }; + 9AA9179625CD452C00BD5E8B /* constants.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = constants.h; sourceTree = ""; }; + 9AA9179725CD452C00BD5E8B /* dictionary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dictionary.h; sourceTree = ""; }; + 9AA9179825CD452C00BD5E8B /* transform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = transform.h; sourceTree = ""; }; + 9AA9179925CD452C00BD5E8B /* platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; }; + 9AA9179B25CD452C00BD5E8B /* state.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = state.c; sourceTree = ""; }; + 9AA9179C25CD452C00BD5E8B /* bit_reader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bit_reader.h; sourceTree = ""; }; + 9AA9179D25CD452C00BD5E8B /* decode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = decode.c; sourceTree = ""; }; + 9AA9179E25CD452C00BD5E8B /* huffman.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = huffman.c; sourceTree = ""; }; + 9AA9179F25CD452C00BD5E8B /* bit_reader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bit_reader.c; sourceTree = ""; }; + 9AA917A025CD452C00BD5E8B /* prefix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = prefix.h; sourceTree = ""; }; + 9AA917A125CD452C00BD5E8B /* state.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = state.h; sourceTree = ""; }; + 9AA917A225CD452C00BD5E8B /* huffman.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = huffman.h; sourceTree = ""; }; + 9AA917A325CD452C00BD5E8B /* ReadMe.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReadMe.txt; sourceTree = ""; }; + 9AA917A425CD452C00BD5E8B /* BrotliDecompressLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BrotliDecompressLib.uni; sourceTree = ""; }; + 9AA917A525CD452C00BD5E8B /* BrotliCustomDecompressLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BrotliCustomDecompressLib.inf; sourceTree = ""; }; + 9AA917A625CD452C00BD5E8B /* GuidedSectionExtraction.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GuidedSectionExtraction.c; sourceTree = ""; }; + 9AA917A825CD452C00BD5E8B /* ResetUtility.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ResetUtility.c; sourceTree = ""; }; + 9AA917A925CD452C00BD5E8B /* ResetUtilityLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetUtilityLib.inf; sourceTree = ""; }; + 9AA917AB25CD452C00BD5E8B /* SmmCorePerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmCorePerformanceLib.c; sourceTree = ""; }; + 9AA917AC25CD452C00BD5E8B /* SmmCorePerformanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCorePerformanceLib.uni; sourceTree = ""; }; + 9AA917AD25CD452C00BD5E8B /* SmmCorePerformanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmCorePerformanceLib.inf; sourceTree = ""; }; + 9AA917AE25CD452C00BD5E8B /* SmmCorePerformanceLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmmCorePerformanceLibInternal.h; sourceTree = ""; }; + 9AA917B025CD452C00BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA917B125CD452C00BD5E8B /* UefiMemoryAllocationProfileLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryAllocationProfileLib.uni; sourceTree = ""; }; + 9AA917B225CD452C00BD5E8B /* UefiMemoryAllocationProfileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiMemoryAllocationProfileLib.inf; sourceTree = ""; }; + 9AA917B325CD452C00BD5E8B /* DxeMemoryProfileLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeMemoryProfileLib.c; sourceTree = ""; }; + 9AA917B525CD452C00BD5E8B /* PeiDebugLibDebugPpi.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiDebugLibDebugPpi.inf; sourceTree = ""; }; + 9AA917B625CD452C00BD5E8B /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9AA917B825CD452C00BD5E8B /* SmmSmiHandlerProfileLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmmSmiHandlerProfileLib.c; sourceTree = ""; }; + 9AA917B925CD452C00BD5E8B /* SmmSmiHandlerProfileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmSmiHandlerProfileLib.inf; sourceTree = ""; }; + 9AA917BA25CD452C00BD5E8B /* SmmSmiHandlerProfileLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmmSmiHandlerProfileLib.uni; sourceTree = ""; }; + 9AA917BC25CD452C00BD5E8B /* DxeReportStatusCodeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeReportStatusCodeLib.inf; sourceTree = ""; }; + 9AA917BD25CD452C00BD5E8B /* DxeReportStatusCodeLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeReportStatusCodeLib.uni; sourceTree = ""; }; + 9AA917BE25CD452C00BD5E8B /* ReportStatusCodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReportStatusCodeLib.c; sourceTree = ""; }; + 9AA917C025CD452C00BD5E8B /* VarCheckUefiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckUefiLib.inf; sourceTree = ""; }; + 9AA917C125CD452C00BD5E8B /* VarCheckUefiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckUefiLib.uni; sourceTree = ""; }; + 9AA917C225CD452C00BD5E8B /* VarCheckUefiLibNullClass.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckUefiLibNullClass.c; sourceTree = ""; }; + 9AA917C425CD452C00BD5E8B /* RuntimeResetSystemLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeResetSystemLib.inf; sourceTree = ""; }; + 9AA917C525CD452C00BD5E8B /* RuntimeResetSystemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RuntimeResetSystemLib.c; sourceTree = ""; }; + 9AA917C625CD452C00BD5E8B /* RuntimeResetSystemLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = RuntimeResetSystemLib.uni; sourceTree = ""; }; + 9AA917C825CD452C00BD5E8B /* VarCheckPcdLibNullClass.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VarCheckPcdLibNullClass.c; sourceTree = ""; }; + 9AA917C925CD452C00BD5E8B /* VarCheckPcdStructure.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VarCheckPcdStructure.h; sourceTree = ""; }; + 9AA917CA25CD452C00BD5E8B /* VarCheckPcdLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckPcdLib.uni; sourceTree = ""; }; + 9AA917CB25CD452C00BD5E8B /* VarCheckPcdLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VarCheckPcdLib.inf; sourceTree = ""; }; + 9AA917CD25CD452C00BD5E8B /* DxeSecurityManagementLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeSecurityManagementLib.c; sourceTree = ""; }; + 9AA917CE25CD452C00BD5E8B /* DxeSecurityManagementLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeSecurityManagementLib.uni; sourceTree = ""; }; + 9AA917CF25CD452C00BD5E8B /* DxeSecurityManagementLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeSecurityManagementLib.inf; sourceTree = ""; }; + 9AA917D125CD452C00BD5E8B /* PiSmmCoreMemoryProfileLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PiSmmCoreMemoryProfileLib.c; sourceTree = ""; }; + 9AA917D225CD452C00BD5E8B /* PiSmmCoreMemoryAllocationServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCoreMemoryAllocationServices.h; sourceTree = ""; }; + 9AA917D325CD452C00BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA917D425CD452C00BD5E8B /* PiSmmCoreMemoryProfileServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiSmmCoreMemoryProfileServices.h; sourceTree = ""; }; + 9AA917D525CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreMemoryAllocationLib.uni; sourceTree = ""; }; + 9AA917D625CD452C00BD5E8B /* PiSmmCoreMemoryAllocationProfileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreMemoryAllocationProfileLib.inf; sourceTree = ""; }; + 9AA917D725CD452C00BD5E8B /* PiSmmCoreMemoryProfileLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PiSmmCoreMemoryProfileLibNull.c; sourceTree = ""; }; + 9AA917D825CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreMemoryAllocationLib.inf; sourceTree = ""; }; + 9AA917D925CD452C00BD5E8B /* PiSmmCoreMemoryAllocationProfileLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PiSmmCoreMemoryAllocationProfileLib.uni; sourceTree = ""; }; + 9AA917DB25CD452C00BD5E8B /* DxePrintLibPrint2Protocol.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePrintLibPrint2Protocol.uni; sourceTree = ""; }; + 9AA917DC25CD452C00BD5E8B /* PrintLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrintLib.c; sourceTree = ""; }; + 9AA917DD25CD452C00BD5E8B /* DxePrintLibPrint2Protocol.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxePrintLibPrint2Protocol.inf; sourceTree = ""; }; + 9AA917DF25CD452C00BD5E8B /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9AA917E025CD452C00BD5E8B /* DxeCoreMemoryAllocationServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCoreMemoryAllocationServices.h; sourceTree = ""; }; + 9AA917E125CD452C00BD5E8B /* DxeCoreMemoryProfileServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCoreMemoryProfileServices.h; sourceTree = ""; }; + 9AA917E225CD452C00BD5E8B /* DxeCoreMemoryAllocationProfileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreMemoryAllocationProfileLib.inf; sourceTree = ""; }; + 9AA917E325CD452C00BD5E8B /* DxeCoreMemoryAllocationProfileLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreMemoryAllocationProfileLib.uni; sourceTree = ""; }; + 9AA917E425CD452C00BD5E8B /* DxeCoreMemoryProfileLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCoreMemoryProfileLib.c; sourceTree = ""; }; + 9AA917E525CD452C00BD5E8B /* DxeCoreMemoryAllocationLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreMemoryAllocationLib.uni; sourceTree = ""; }; + 9AA917E625CD452C00BD5E8B /* DxeCoreMemoryAllocationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCoreMemoryAllocationLib.inf; sourceTree = ""; }; + 9AA917E725CD452C00BD5E8B /* DxeCoreMemoryProfileLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCoreMemoryProfileLibNull.c; sourceTree = ""; }; + 9AA917E925CD452C00BD5E8B /* BootManagerStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerStrings.uni; sourceTree = ""; }; + 9AA917EA25CD452C00BD5E8B /* BootManager.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootManager.h; sourceTree = ""; }; + 9AA917EB25CD452C00BD5E8B /* BootManagerUiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerUiLib.uni; sourceTree = ""; }; + 9AA917EC25CD452C00BD5E8B /* BootManagerVfr.Vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerVfr.Vfr; sourceTree = ""; }; + 9AA917ED25CD452C00BD5E8B /* BootManagerUiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerUiLib.inf; sourceTree = ""; }; + 9AA917EE25CD452C00BD5E8B /* BootManager.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootManager.c; sourceTree = ""; }; + 9AA917F025CD452C00BD5E8B /* BmpSupportLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BmpSupportLib.c; sourceTree = ""; }; + 9AA917F125CD452C00BD5E8B /* BaseBmpSupportLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseBmpSupportLib.inf; sourceTree = ""; }; + 9AA917F225CD452C00BD5E8B /* BaseBmpSupportLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseBmpSupportLib.uni; sourceTree = ""; }; + 9AA917F425CD452C00BD5E8B /* CpuExceptionHandlerLibNull.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CpuExceptionHandlerLibNull.uni; sourceTree = ""; }; + 9AA917F525CD452C00BD5E8B /* CpuExceptionHandlerLibNull.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CpuExceptionHandlerLibNull.inf; sourceTree = ""; }; + 9AA917F625CD452C00BD5E8B /* CpuExceptionHandlerLibNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuExceptionHandlerLibNull.c; sourceTree = ""; }; + 9AA917F825CD452C00BD5E8B /* HiiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiLib.c; sourceTree = ""; }; + 9AA917F925CD452C00BD5E8B /* UefiHiiLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiHiiLib.uni; sourceTree = ""; }; + 9AA917FA25CD452C00BD5E8B /* UefiHiiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiHiiLib.inf; sourceTree = ""; }; + 9AA917FB25CD452C00BD5E8B /* HiiString.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiString.c; sourceTree = ""; }; + 9AA917FC25CD452C00BD5E8B /* HiiLanguage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiLanguage.c; sourceTree = ""; }; + 9AA917FD25CD452C00BD5E8B /* InternalHiiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InternalHiiLib.h; sourceTree = ""; }; + 9AA917FF25CD452C00BD5E8B /* BaseSortLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSortLib.inf; sourceTree = ""; }; + 9AA9180025CD452C00BD5E8B /* BaseSortLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BaseSortLib.uni; sourceTree = ""; }; + 9AA9180125CD452C00BD5E8B /* BaseSortLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseSortLib.c; sourceTree = ""; }; + 9AA9180325CD452C00BD5E8B /* DxeCorePerformanceLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeCorePerformanceLib.c; sourceTree = ""; }; + 9AA9180425CD452C00BD5E8B /* DxeCorePerformanceLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCorePerformanceLibInternal.h; sourceTree = ""; }; + 9AA9180525CD452C00BD5E8B /* DxeCorePerformanceLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCorePerformanceLib.inf; sourceTree = ""; }; + 9AA9180625CD452C00BD5E8B /* DxeCorePerformanceLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeCorePerformanceLib.uni; sourceTree = ""; }; + 9AA9180825CD452C00BD5E8B /* DxeResetSystemLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeResetSystemLib.uni; sourceTree = ""; }; + 9AA9180925CD452C00BD5E8B /* DxeResetSystemLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeResetSystemLib.inf; sourceTree = ""; }; + 9AA9180A25CD452C00BD5E8B /* DxeResetSystemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeResetSystemLib.c; sourceTree = ""; }; + 9AA9180C25CD452C00BD5E8B /* PeiResetSystemLib.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiResetSystemLib.uni; sourceTree = ""; }; + 9AA9180D25CD452C00BD5E8B /* PeiResetSystemLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PeiResetSystemLib.inf; sourceTree = ""; }; + 9AA9180E25CD452C00BD5E8B /* PeiResetSystemLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeiResetSystemLib.c; sourceTree = ""; }; + 9AA9180F25CD452C00BD5E8B /* MdeModulePkgSample.dec */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdeModulePkgSample.dec; sourceTree = ""; }; + 9AA9181125CD452D00BD5E8B /* LogoDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LogoDxe.uni; sourceTree = ""; }; + 9AA9181225CD452D00BD5E8B /* LogoDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LogoDxe.inf; sourceTree = ""; }; + 9AA9181325CD452D00BD5E8B /* Logo.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = Logo.bmp; sourceTree = ""; }; + 9AA9181425CD452D00BD5E8B /* Logo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = Logo.uni; sourceTree = ""; }; + 9AA9181525CD452D00BD5E8B /* LogoDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LogoDxeExtra.uni; sourceTree = ""; }; + 9AA9181625CD452D00BD5E8B /* LogoExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = LogoExtra.uni; sourceTree = ""; }; + 9AA9181725CD452D00BD5E8B /* Logo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Logo.inf; sourceTree = ""; }; + 9AA9181825CD452D00BD5E8B /* Logo.idf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Logo.idf; sourceTree = ""; }; + 9AA9181925CD452D00BD5E8B /* Logo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Logo.c; sourceTree = ""; }; + 9AA9181A25CD452D00BD5E8B /* MdeModulePkg.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdeModulePkg.uni; sourceTree = ""; }; + 9AA9181B25CD452D00BD5E8B /* MdeModulePkg.dec */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdeModulePkg.dec; sourceTree = ""; }; + 9AA9181E25CD452D00BD5E8B /* FrontPage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrontPage.h; sourceTree = ""; }; + 9AA9181F25CD452D00BD5E8B /* FrontPageCustomizedUi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrontPageCustomizedUi.h; sourceTree = ""; }; + 9AA9182025CD452D00BD5E8B /* Ui.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ui.h; sourceTree = ""; }; + 9AA9182125CD452D00BD5E8B /* FrontPageCustomizedUiSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FrontPageCustomizedUiSupport.c; sourceTree = ""; }; + 9AA9182225CD452D00BD5E8B /* FrontPageVfr.Vfr */ = {isa = PBXFileReference; lastKnownFileType = text; path = FrontPageVfr.Vfr; sourceTree = ""; }; + 9AA9182325CD452D00BD5E8B /* String.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = String.c; sourceTree = ""; }; + 9AA9182425CD452D00BD5E8B /* FrontPageCustomizedUi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FrontPageCustomizedUi.c; sourceTree = ""; }; + 9AA9182525CD452D00BD5E8B /* UiApp.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UiApp.uni; sourceTree = ""; }; + 9AA9182625CD452D00BD5E8B /* FrontPage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FrontPage.c; sourceTree = ""; }; + 9AA9182725CD452D00BD5E8B /* FrontPageStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = FrontPageStrings.uni; sourceTree = ""; }; + 9AA9182825CD452D00BD5E8B /* UiAppExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UiAppExtra.uni; sourceTree = ""; }; + 9AA9182925CD452D00BD5E8B /* UiApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UiApp.inf; sourceTree = ""; }; + 9AA9182A25CD452D00BD5E8B /* FrontPageCustomizedUiSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrontPageCustomizedUiSupport.h; sourceTree = ""; }; + 9AA9182B25CD452D00BD5E8B /* String.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = String.h; sourceTree = ""; }; + 9AA9182D25CD452D00BD5E8B /* HelloWorldStr.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HelloWorldStr.uni; sourceTree = ""; }; + 9AA9182E25CD452D00BD5E8B /* HelloWorld.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HelloWorld.uni; sourceTree = ""; }; + 9AA9182F25CD452D00BD5E8B /* HelloWorld.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = HelloWorld.inf; sourceTree = ""; }; + 9AA9183025CD452D00BD5E8B /* HelloWorld.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HelloWorld.c; sourceTree = ""; }; + 9AA9183125CD452D00BD5E8B /* HelloWorldExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = HelloWorldExtra.uni; sourceTree = ""; }; + 9AA9183325CD452D00BD5E8B /* BootManagerMenu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootManagerMenu.c; sourceTree = ""; }; + 9AA9183425CD452D00BD5E8B /* BootManagerMenuAppExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerMenuAppExtra.uni; sourceTree = ""; }; + 9AA9183525CD452D00BD5E8B /* BootManagerMenuStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerMenuStrings.uni; sourceTree = ""; }; + 9AA9183625CD452D00BD5E8B /* BootManagerMenu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootManagerMenu.h; sourceTree = ""; }; + 9AA9183725CD452D00BD5E8B /* BootManagerMenuApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerMenuApp.inf; sourceTree = ""; }; + 9AA9183825CD452D00BD5E8B /* BootManagerMenuApp.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootManagerMenuApp.uni; sourceTree = ""; }; + 9AA9183A25CD452D00BD5E8B /* CapsuleApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CapsuleApp.h; sourceTree = ""; }; + 9AA9183B25CD452D00BD5E8B /* CapsuleApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleApp.inf; sourceTree = ""; }; + 9AA9183C25CD452D00BD5E8B /* AppSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppSupport.c; sourceTree = ""; }; + 9AA9183D25CD452D00BD5E8B /* CapsuleApp.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleApp.uni; sourceTree = ""; }; + 9AA9183E25CD452D00BD5E8B /* CapsuleAppExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = CapsuleAppExtra.uni; sourceTree = ""; }; + 9AA9183F25CD452D00BD5E8B /* CapsuleOnDisk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleOnDisk.c; sourceTree = ""; }; + 9AA9184025CD452D00BD5E8B /* CapsuleApp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleApp.c; sourceTree = ""; }; + 9AA9184125CD452D00BD5E8B /* CapsuleDump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CapsuleDump.c; sourceTree = ""; }; + 9AA9184325CD452D00BD5E8B /* MemoryProfileInfo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = MemoryProfileInfo.inf; sourceTree = ""; }; + 9AA9184425CD452D00BD5E8B /* MemoryProfileInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryProfileInfo.c; sourceTree = ""; }; + 9AA9184525CD452D00BD5E8B /* MemoryProfileInfo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MemoryProfileInfo.uni; sourceTree = ""; }; + 9AA9184625CD452D00BD5E8B /* MemoryProfileInfoExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = MemoryProfileInfoExtra.uni; sourceTree = ""; }; + 9AA9184825CD452D00BD5E8B /* DumpDynPcd.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DumpDynPcd.inf; sourceTree = ""; }; + 9AA9184925CD452D00BD5E8B /* DumpDynPcdStr.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = DumpDynPcdStr.uni; sourceTree = ""; }; + 9AA9184A25CD452D00BD5E8B /* DumpDynPcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DumpDynPcd.c; sourceTree = ""; }; + 9AA9184C25CD452D00BD5E8B /* VariableInfoExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableInfoExtra.uni; sourceTree = ""; }; + 9AA9184D25CD452D00BD5E8B /* VariableInfo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableInfo.inf; sourceTree = ""; }; + 9AA9184E25CD452D00BD5E8B /* VariableInfo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = VariableInfo.uni; sourceTree = ""; }; + 9AA9184F25CD452D00BD5E8B /* VariableInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableInfo.c; sourceTree = ""; }; + 9AA9185125CD452D00BD5E8B /* SmiHandlerProfileInfoExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmiHandlerProfileInfoExtra.uni; sourceTree = ""; }; + 9AA9185225CD452D00BD5E8B /* SmiHandlerProfileInfo.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmiHandlerProfileInfo.uni; sourceTree = ""; }; + 9AA9185325CD452D00BD5E8B /* SmiHandlerProfileInfo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmiHandlerProfileInfo.inf; sourceTree = ""; }; + 9AA9185425CD452D00BD5E8B /* SmiHandlerProfileInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmiHandlerProfileInfo.c; sourceTree = ""; }; + 9AA9185525CD452D00BD5E8B /* MdeModulePkg.dsc */ = {isa = PBXFileReference; lastKnownFileType = text; path = MdeModulePkg.dsc; sourceTree = ""; }; + 9AA9185925CD468F00BD5E8B /* AppleMacEfiSpec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMacEfiSpec.h; sourceTree = ""; }; + 9AA9185B25CD468F00BD5E8B /* VesaBiosExtensions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VesaBiosExtensions.h; sourceTree = ""; }; + 9AA9185C25CD468F00BD5E8B /* GenericIch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GenericIch.h; sourceTree = ""; }; + 9AA9185D25CD468F00BD5E8B /* CpuId.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuId.h; sourceTree = ""; }; + 9AA9185E25CD468F00BD5E8B /* AppleSmBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSmBios.h; sourceTree = ""; }; + 9AA9185F25CD468F00BD5E8B /* AppleRtc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleRtc.h; sourceTree = ""; }; + 9AA9186025CD468F00BD5E8B /* AppleDiskImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskImage.h; sourceTree = ""; }; + 9AA9186125CD468F00BD5E8B /* PiBootMode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiBootMode.h; sourceTree = ""; }; + 9AA9186225CD468F00BD5E8B /* PeImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeImage.h; sourceTree = ""; }; + 9AA9186325CD468F00BD5E8B /* AppleChunklist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleChunklist.h; sourceTree = ""; }; + 9AA9186425CD468F00BD5E8B /* Riff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Riff.h; sourceTree = ""; }; + 9AA9186525CD468F00BD5E8B /* AppleFatBinaryImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFatBinaryImage.h; sourceTree = ""; }; + 9AA9186625CD468F00BD5E8B /* HdaCodec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodec.h; sourceTree = ""; }; + 9AA9186725CD468F00BD5E8B /* AppleHibernate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHibernate.h; sourceTree = ""; }; + 9AA9186825CD468F00BD5E8B /* AppleFeatures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFeatures.h; sourceTree = ""; }; + 9AA9186925CD468F00BD5E8B /* AppleMachoImage.h.dis */ = {isa = PBXFileReference; lastKnownFileType = text; path = AppleMachoImage.h.dis; sourceTree = ""; }; + 9AA9186A25CD468F00BD5E8B /* AppleCsrConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCsrConfig.h; sourceTree = ""; }; + 9AA9186B25CD468F00BD5E8B /* PciCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCommand.h; sourceTree = ""; }; + 9AA9186C25CD468F00BD5E8B /* AppleDiskLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskLabel.h; sourceTree = ""; }; + 9AA9186D25CD468F00BD5E8B /* MachO-loader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "MachO-loader.h"; sourceTree = ""; }; + 9AA9186E25CD468F00BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA9186F25CD468F00BD5E8B /* AppleHid.h.disabled */ = {isa = PBXFileReference; lastKnownFileType = text; path = AppleHid.h.disabled; sourceTree = ""; }; + 9AA9187025CD468F00BD5E8B /* AppleBootArgs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleBootArgs.h; sourceTree = ""; }; + 9AA9187125CD468F00BD5E8B /* AtomBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AtomBios.h; sourceTree = ""; }; + 9AA9187225CD468F00BD5E8B /* UsbHid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHid.h; sourceTree = ""; }; + 9AA9187325CD468F00BD5E8B /* AppleIntelCpuInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleIntelCpuInfo.h; sourceTree = ""; }; + 9AA9187425CD468F00BD5E8B /* ProcessorInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProcessorInfo.h; sourceTree = ""; }; + 9AA9187525CD468F00BD5E8B /* PciBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciBus.h; sourceTree = ""; }; + 9AA9187625CD468F00BD5E8B /* AppleMacEfi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMacEfi.h; sourceTree = ""; }; + 9AA9187725CD468F00BD5E8B /* EfiLdrHandoff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiLdrHandoff.h; sourceTree = ""; }; + 9AA9187925CD468F00BD5E8B /* HdaRegisters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaRegisters.h; sourceTree = ""; }; + 9AA9187A25CD468F00BD5E8B /* HdaModels.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaModels.h; sourceTree = ""; }; + 9AA9187B25CD468F00BD5E8B /* UefiHiiServicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiHiiServicesLib.h; sourceTree = ""; }; + 9AA9187C25CD468F00BD5E8B /* MachoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MachoLib.h; sourceTree = ""; }; + 9AA9187D25CD468F00BD5E8B /* HdaVerbs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaVerbs.h; sourceTree = ""; }; + 9AA9187E25CD468F00BD5E8B /* UsbMass.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMass.h; sourceTree = ""; }; + 9AA9187F25CD468F00BD5E8B /* printf_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = printf_lite.h; sourceTree = ""; }; + 9AA9188025CD468F00BD5E8B /* PeCoffLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeCoffLib.h; sourceTree = ""; }; + 9AA9188125CD468F00BD5E8B /* printf_lite-conf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "printf_lite-conf.h"; sourceTree = ""; }; + 9AA9188225CD468F00BD5E8B /* GenericBdsLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GenericBdsLib.h; sourceTree = ""; }; + 9AA9188325CD468F00BD5E8B /* UsbMassBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassBoot.h; sourceTree = ""; }; + 9AA9188425CD468F00BD5E8B /* MemLogLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MemLogLib.h; sourceTree = ""; }; + 9AA9188525CD468F00BD5E8B /* VideoBiosPatchLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VideoBiosPatchLib.h; sourceTree = ""; }; + 9AA9188625CD468F00BD5E8B /* WaveLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = WaveLib.h; sourceTree = ""; }; + 9AA9188725CD468F00BD5E8B /* OcAfterBootCompatLib4Clover.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAfterBootCompatLib4Clover.h; sourceTree = ""; }; + 9AA9188925CD468F00BD5E8B /* NullTextOutput.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NullTextOutput.h; sourceTree = ""; }; + 9AA9188A25CD468F00BD5E8B /* UsbMassImpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbMassImpl.h; sourceTree = ""; }; + 9AA9188B25CD468F00BD5E8B /* AppleImageCodecProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleImageCodecProtocol.h; sourceTree = ""; }; + 9AA9188C25CD468F00BD5E8B /* AppleDeviceControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDeviceControl.h; sourceTree = ""; }; + 9AA9188D25CD468F00BD5E8B /* HdaControllerInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaControllerInfo.h; sourceTree = ""; }; + 9AA9188E25CD468F00BD5E8B /* AppleKeyState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKeyState.h; sourceTree = ""; }; + 9AA9188F25CD468F00BD5E8B /* efiConsoleControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = efiConsoleControl.h; sourceTree = ""; }; + 9AA9189025CD468F00BD5E8B /* ApplePartitionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePartitionInfo.h; sourceTree = ""; }; + 9AA9189125CD468F00BD5E8B /* AudioIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioIo.h; sourceTree = ""; }; + 9AA9189225CD468F00BD5E8B /* FSInjectProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FSInjectProtocol.h; sourceTree = ""; }; + 9AA9189325CD468F00BD5E8B /* HdaIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaIo.h; sourceTree = ""; }; + 9AA9189425CD468F00BD5E8B /* OcQuirksProtocol4Clover.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcQuirksProtocol4Clover.h; sourceTree = ""; }; + 9AA9189525CD468F00BD5E8B /* EmuVariableControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EmuVariableControl.h; sourceTree = ""; }; + 9AA9189625CD468F00BD5E8B /* KeyboardInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyboardInfo.h; sourceTree = ""; }; + 9AA9189725CD468F00BD5E8B /* AppleSMC.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSMC.h; sourceTree = ""; }; + 9AA9189825CD468F00BD5E8B /* PciIoImp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciIoImp.h; sourceTree = ""; }; + 9AA9189925CD468F00BD5E8B /* AptioMemoryFix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AptioMemoryFix.h; sourceTree = ""; }; + 9AA9189A25CD468F00BD5E8B /* HdaCodecInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodecInfo.h; sourceTree = ""; }; + 9AA9189B25CD468F00BD5E8B /* ApfsEfiBootRecordInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApfsEfiBootRecordInfo.h; sourceTree = ""; }; + 9AA9189C25CD468F00BD5E8B /* ApplePlatformInfoDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePlatformInfoDatabase.h; sourceTree = ""; }; + 9AA9189D25CD468F00BD5E8B /* MsgLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MsgLog.h; sourceTree = ""; }; + 9AA9189E25CD468F00BD5E8B /* SimpleAudioOut.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SimpleAudioOut.h; sourceTree = ""; }; + 9AA9189F25CD468F00BD5E8B /* AppleDiskIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskIo.h; sourceTree = ""; }; + 9AA918A025CD468F00BD5E8B /* AppleGraphConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleGraphConfig.h; sourceTree = ""; }; + 9AA918A125CD468F00BD5E8B /* Hash.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Hash.h; sourceTree = ""; }; + 9AA918A225CD468F00BD5E8B /* MicrosoftWindows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicrosoftWindows.h; sourceTree = ""; }; + 9AA918A325CD468F00BD5E8B /* FlashLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlashLayout.h; sourceTree = ""; }; + 9AA918A425CD468F00BD5E8B /* EfiFlashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiFlashMap.h; sourceTree = ""; }; + 9AA918A625CD468F00BD5E8B /* PciOptionRomTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciOptionRomTable.h; sourceTree = ""; }; + 9AA918A725CD468F00BD5E8B /* PciExpressBaseAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpressBaseAddress.h; sourceTree = ""; }; + 9AA918A825CD468F00BD5E8B /* DxeCoreFileName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCoreFileName.h; sourceTree = ""; }; + 9AA918A925CD468F00BD5E8B /* LdrMemoryDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LdrMemoryDescriptor.h; sourceTree = ""; }; + 9AA918AA25CD468F00BD5E8B /* ConsoleOutConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsoleOutConfig.h; sourceTree = ""; }; + 9AA918AB25CD468F00BD5E8B /* FlashMapHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlashMapHob.h; sourceTree = ""; }; + 9AA918AC25CD468F00BD5E8B /* MicrosoftVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicrosoftVariable.h; sourceTree = ""; }; + 9AA918AD25CD468F00BD5E8B /* AcpiDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiDescription.h; sourceTree = ""; }; + 9AA918AE25CD468F00BD5E8B /* ApplePlatformInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePlatformInfo.h; sourceTree = ""; }; + 9AA918AF25CD468F00BD5E8B /* AppleApfsInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleApfsInfo.h; sourceTree = ""; }; + 9AA918B025CD468F00BD5E8B /* EfiImageFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiImageFormat.h; sourceTree = ""; }; + 9AA918B125CD468F00BD5E8B /* UefiLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiLoader.h; sourceTree = ""; }; + 9AA918BC25CD4B5900BD5E8B /* lib.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = lib.cpp; sourceTree = ""; }; + 9AA918BD25CD4B5900BD5E8B /* lib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lib.h; sourceTree = ""; }; + 9AA918C525CD4CD300BD5E8B /* BmLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BmLib.h; sourceTree = ""; }; + 9AA918C625CD4CD300BD5E8B /* BmLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BmLib.cpp; sourceTree = ""; }; + 9AA918D125CD516A00BD5E8B /* BootLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootLog.h; sourceTree = ""; }; + 9AA918DD25CD597E00BD5E8B /* MBP71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP71.yaml; sourceTree = ""; }; + 9AA918DE25CD597E00BD5E8B /* MBP111.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP111.yaml; sourceTree = ""; }; + 9AA918DF25CD597E00BD5E8B /* MBP131.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP131.yaml; sourceTree = ""; }; + 9AA918E025CD597E00BD5E8B /* MBP51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP51.yaml; sourceTree = ""; }; + 9AA918E125CD597E00BD5E8B /* MBP92.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP92.yaml; sourceTree = ""; }; + 9AA918E225CD597E00BD5E8B /* MBP11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP11.yaml; sourceTree = ""; }; + 9AA918E325CD597E00BD5E8B /* MBP31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP31.yaml; sourceTree = ""; }; + 9AA918E425CD597E00BD5E8B /* MBP151.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP151.yaml; sourceTree = ""; }; + 9AA918E525CD597E00BD5E8B /* MBP41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP41.yaml; sourceTree = ""; }; + 9AA918E625CD597E00BD5E8B /* MBP121.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP121.yaml; sourceTree = ""; }; + 9AA918E725CD597E00BD5E8B /* MBP82.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP82.yaml; sourceTree = ""; }; + 9AA918E825CD597E00BD5E8B /* MBP101.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP101.yaml; sourceTree = ""; }; + 9AA918E925CD597E00BD5E8B /* MBP61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP61.yaml; sourceTree = ""; }; + 9AA918EA25CD597E00BD5E8B /* MBP141.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP141.yaml; sourceTree = ""; }; + 9AA918EB25CD597E00BD5E8B /* MBP21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP21.yaml; sourceTree = ""; }; + 9AA918EC25CD597E00BD5E8B /* MBP83.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP83.yaml; sourceTree = ""; }; + 9AA918ED25CD597E00BD5E8B /* MBP161.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP161.yaml; sourceTree = ""; }; + 9AA918EE25CD597E00BD5E8B /* MBP55.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP55.yaml; sourceTree = ""; }; + 9AA918EF25CD597E00BD5E8B /* MBP162.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP162.yaml; sourceTree = ""; }; + 9AA918F025CD597E00BD5E8B /* MBP115.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP115.yaml; sourceTree = ""; }; + 9AA918F125CD597E00BD5E8B /* MBP142.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP142.yaml; sourceTree = ""; }; + 9AA918F225CD597E00BD5E8B /* MBP154.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP154.yaml; sourceTree = ""; }; + 9AA918F325CD597E00BD5E8B /* MBP22.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP22.yaml; sourceTree = ""; }; + 9AA918F425CD597E00BD5E8B /* MBP102.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP102.yaml; sourceTree = ""; }; + 9AA918F525CD597E00BD5E8B /* MBP143.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP143.yaml; sourceTree = ""; }; + 9AA918F625CD597E00BD5E8B /* MBP62.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP62.yaml; sourceTree = ""; }; + 9AA918F725CD597E00BD5E8B /* MBP114.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP114.yaml; sourceTree = ""; }; + 9AA918F825CD597E00BD5E8B /* MBP163.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP163.yaml; sourceTree = ""; }; + 9AA918F925CD597E00BD5E8B /* MBP54.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP54.yaml; sourceTree = ""; }; + 9AA918FA25CD597E00BD5E8B /* MBP81.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP81.yaml; sourceTree = ""; }; + 9AA918FB25CD597E00BD5E8B /* MBP113.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP113.yaml; sourceTree = ""; }; + 9AA918FC25CD597E00BD5E8B /* MBP152.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP152.yaml; sourceTree = ""; }; + 9AA918FD25CD597E00BD5E8B /* MBP53.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP53.yaml; sourceTree = ""; }; + 9AA918FE25CD597E00BD5E8B /* MBP12.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP12.yaml; sourceTree = ""; }; + 9AA918FF25CD597E00BD5E8B /* MBP133.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP133.yaml; sourceTree = ""; }; + 9AA9190025CD597E00BD5E8B /* MBP164.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP164.yaml; sourceTree = ""; }; + 9AA9190125CD597E00BD5E8B /* MBP132.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP132.yaml; sourceTree = ""; }; + 9AA9190225CD597E00BD5E8B /* MBP52.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP52.yaml; sourceTree = ""; }; + 9AA9190325CD597E00BD5E8B /* MBP91.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP91.yaml; sourceTree = ""; }; + 9AA9190425CD597E00BD5E8B /* MBP153.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP153.yaml; sourceTree = ""; }; + 9AA9190525CD597E00BD5E8B /* MBP112.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP112.yaml; sourceTree = ""; }; + 9AA9190725CD597E00BD5E8B /* MM81.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM81.yaml; sourceTree = ""; }; + 9AA9190825CD597E00BD5E8B /* MM62.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM62.yaml; sourceTree = ""; }; + 9AA9190925CD597E00BD5E8B /* MM52.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM52.yaml; sourceTree = ""; }; + 9AA9190A25CD597E00BD5E8B /* MM53.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM53.yaml; sourceTree = ""; }; + 9AA9190B25CD597E00BD5E8B /* MM31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM31.yaml; sourceTree = ""; }; + 9AA9190C25CD597E00BD5E8B /* MM11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM11.yaml; sourceTree = ""; }; + 9AA9190D25CD597E00BD5E8B /* MM51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM51.yaml; sourceTree = ""; }; + 9AA9190E25CD597E00BD5E8B /* MM71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM71.yaml; sourceTree = ""; }; + 9AA9190F25CD597E00BD5E8B /* MM21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM21.yaml; sourceTree = ""; }; + 9AA9191025CD597E00BD5E8B /* MM61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM61.yaml; sourceTree = ""; }; + 9AA9191125CD597E00BD5E8B /* MM41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MM41.yaml; sourceTree = ""; }; + 9AA9191325CD597E00BD5E8B /* XS21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = XS21.yaml; sourceTree = ""; }; + 9AA9191425CD597E00BD5E8B /* XS11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = XS11.yaml; sourceTree = ""; }; + 9AA9191525CD597E00BD5E8B /* XS31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = XS31.yaml; sourceTree = ""; }; + 9AA9191725CD597E00BD5E8B /* IM181.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM181.yaml; sourceTree = ""; }; + 9AA9191825CD597E00BD5E8B /* IM142.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM142.yaml; sourceTree = ""; }; + 9AA9191925CD597E00BD5E8B /* IM162.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM162.yaml; sourceTree = ""; }; + 9AA9191A25CD597E00BD5E8B /* IM61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM61.yaml; sourceTree = ""; }; + 9AA9191B25CD597E00BD5E8B /* IM122.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM122.yaml; sourceTree = ""; }; + 9AA9191C25CD597E00BD5E8B /* IM41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM41.yaml; sourceTree = ""; }; + 9AA9191D25CD597E00BD5E8B /* IM143.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM143.yaml; sourceTree = ""; }; + 9AA9191E25CD597E00BD5E8B /* IM133.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM133.yaml; sourceTree = ""; }; + 9AA9191F25CD597E00BD5E8B /* IM191.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM191.yaml; sourceTree = ""; }; + 9AA9192025CD597E00BD5E8B /* IM144.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM144.yaml; sourceTree = ""; }; + 9AA9192125CD597E00BD5E8B /* IM113.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM113.yaml; sourceTree = ""; }; + 9AA9192225CD597E00BD5E8B /* IM51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM51.yaml; sourceTree = ""; }; + 9AA9192325CD597E00BD5E8B /* IM112.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM112.yaml; sourceTree = ""; }; + 9AA9192425CD597E00BD5E8B /* IM201.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM201.yaml; sourceTree = ""; }; + 9AA9192525CD597E00BD5E8B /* IM132.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM132.yaml; sourceTree = ""; }; + 9AA9192625CD597E00BD5E8B /* IM71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM71.yaml; sourceTree = ""; }; + 9AA9192725CD597E00BD5E8B /* IM131.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM131.yaml; sourceTree = ""; }; + 9AA9192825CD597E00BD5E8B /* IM52.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM52.yaml; sourceTree = ""; }; + 9AA9192925CD597E00BD5E8B /* IM111.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM111.yaml; sourceTree = ""; }; + 9AA9192A25CD597E00BD5E8B /* IM91.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM91.yaml; sourceTree = ""; }; + 9AA9192B25CD597E00BD5E8B /* IM202.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM202.yaml; sourceTree = ""; }; + 9AA9192C25CD597E00BD5E8B /* IM192.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM192.yaml; sourceTree = ""; }; + 9AA9192D25CD597E00BD5E8B /* IM151.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM151.yaml; sourceTree = ""; }; + 9AA9192E25CD597E00BD5E8B /* IM171.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM171.yaml; sourceTree = ""; }; + 9AA9192F25CD597E00BD5E8B /* IM101.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM101.yaml; sourceTree = ""; }; + 9AA9193025CD597E00BD5E8B /* IM42.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM42.yaml; sourceTree = ""; }; + 9AA9193125CD597E00BD5E8B /* IM81.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM81.yaml; sourceTree = ""; }; + 9AA9193225CD597E00BD5E8B /* IM183.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM183.yaml; sourceTree = ""; }; + 9AA9193325CD597E00BD5E8B /* IM121.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM121.yaml; sourceTree = ""; }; + 9AA9193425CD597E00BD5E8B /* IM161.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM161.yaml; sourceTree = ""; }; + 9AA9193525CD597E00BD5E8B /* IM182.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM182.yaml; sourceTree = ""; }; + 9AA9193625CD597E00BD5E8B /* IM141.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IM141.yaml; sourceTree = ""; }; + 9AA9193825CD597E00BD5E8B /* MBA72.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA72.yaml; sourceTree = ""; }; + 9AA9193925CD597E00BD5E8B /* MBA91.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA91.yaml; sourceTree = ""; }; + 9AA9193A25CD597E00BD5E8B /* MBA52.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA52.yaml; sourceTree = ""; }; + 9AA9193B25CD597E00BD5E8B /* MBA32.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA32.yaml; sourceTree = ""; }; + 9AA9193C25CD597E00BD5E8B /* MBA81.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA81.yaml; sourceTree = ""; }; + 9AA9193D25CD597E00BD5E8B /* MBA42.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA42.yaml; sourceTree = ""; }; + 9AA9193E25CD597E00BD5E8B /* MBA62.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA62.yaml; sourceTree = ""; }; + 9AA9193F25CD597E00BD5E8B /* MBA21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA21.yaml; sourceTree = ""; }; + 9AA9194025CD597E00BD5E8B /* MBA61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA61.yaml; sourceTree = ""; }; + 9AA9194125CD597E00BD5E8B /* MBA82.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA82.yaml; sourceTree = ""; }; + 9AA9194225CD597E00BD5E8B /* MBA41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA41.yaml; sourceTree = ""; }; + 9AA9194325CD597E00BD5E8B /* MBA31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA31.yaml; sourceTree = ""; }; + 9AA9194425CD597E00BD5E8B /* MBA11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA11.yaml; sourceTree = ""; }; + 9AA9194525CD597E00BD5E8B /* MBA51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA51.yaml; sourceTree = ""; }; + 9AA9194625CD597E00BD5E8B /* MBA71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBA71.yaml; sourceTree = ""; }; + 9AA9194825CD597E00BD5E8B /* MB51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB51.yaml; sourceTree = ""; }; + 9AA9194925CD597E00BD5E8B /* MB71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB71.yaml; sourceTree = ""; }; + 9AA9194A25CD597E00BD5E8B /* MB31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB31.yaml; sourceTree = ""; }; + 9AA9194B25CD597E00BD5E8B /* MB11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB11.yaml; sourceTree = ""; }; + 9AA9194C25CD597E00BD5E8B /* MB61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB61.yaml; sourceTree = ""; }; + 9AA9194D25CD597E00BD5E8B /* MB41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB41.yaml; sourceTree = ""; }; + 9AA9194E25CD597E00BD5E8B /* MB21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB21.yaml; sourceTree = ""; }; + 9AA9194F25CD597E00BD5E8B /* MB81.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB81.yaml; sourceTree = ""; }; + 9AA9195025CD597E00BD5E8B /* MB101.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB101.yaml; sourceTree = ""; }; + 9AA9195125CD597E00BD5E8B /* MB52.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB52.yaml; sourceTree = ""; }; + 9AA9195225CD597E00BD5E8B /* MB91.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MB91.yaml; sourceTree = ""; }; + 9AA9195425CD597E00BD5E8B /* MP41.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP41.yaml; sourceTree = ""; }; + 9AA9195525CD597E00BD5E8B /* MP61.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP61.yaml; sourceTree = ""; }; + 9AA9195625CD597E00BD5E8B /* MP21.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP21.yaml; sourceTree = ""; }; + 9AA9195725CD597E00BD5E8B /* MP71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP71.yaml; sourceTree = ""; }; + 9AA9195825CD597E00BD5E8B /* MP51.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP51.yaml; sourceTree = ""; }; + 9AA9195925CD597E00BD5E8B /* MP11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP11.yaml; sourceTree = ""; }; + 9AA9195A25CD597E00BD5E8B /* MP31.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MP31.yaml; sourceTree = ""; }; + 9AA9195C25CD597E00BD5E8B /* IMP11.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = IMP11.yaml; sourceTree = ""; }; + 9AA9195D25CD597E00BD5E8B /* update_generated.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = update_generated.py; sourceTree = ""; }; + 9AA9195E25CD597E00BD5E8B /* update_products.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = update_products.py; sourceTree = ""; }; + 9AA9195F25CD597E00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA9196025CD597E00BD5E8B /* Products.zjson */ = {isa = PBXFileReference; lastKnownFileType = file; path = Products.zjson; sourceTree = ""; }; + 9AA9196125CD597E00BD5E8B /* DataBase.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = DataBase.md; sourceTree = ""; }; + 9AA9196325CD597E00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA9196525CD597E00BD5E8B /* hfs_format.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hfs_format.h; sourceTree = ""; }; + 9AA9196625CD597E00BD5E8B /* mk_fsw_strfunc.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = mk_fsw_strfunc.py; sourceTree = ""; }; + 9AA9196725CD597E00BD5E8B /* fsw_hfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_hfs.h; sourceTree = ""; }; + 9AA9196825CD597E00BD5E8B /* fsw_core.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_core.c; sourceTree = ""; }; + 9AA9196925CD597E00BD5E8B /* fsw_strfunc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_strfunc.h; sourceTree = ""; }; + 9AA9196A25CD597E00BD5E8B /* fsw_base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_base.h; sourceTree = ""; }; + 9AA9196B25CD597E00BD5E8B /* fsw_efi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_efi.h; sourceTree = ""; }; + 9AA9196C25CD597E00BD5E8B /* fsw_efi_lib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_efi_lib.c; sourceTree = ""; }; + 9AA9196D25CD597E00BD5E8B /* fsw_lib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_lib.c; sourceTree = ""; }; + 9AA9196E25CD597E00BD5E8B /* hfs_unistr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hfs_unistr.h; sourceTree = ""; }; + 9AA9196F25CD597E00BD5E8B /* fsw_hfs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_hfs.c; sourceTree = ""; }; + 9AA9197025CD597E00BD5E8B /* fsw_core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_core.h; sourceTree = ""; }; + 9AA9197125CD597E00BD5E8B /* fsw_efi_base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_efi_base.h; sourceTree = ""; }; + 9AA9197225CD597E00BD5E8B /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; }; + 9AA9197325CD597E00BD5E8B /* VBoxHfs.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VBoxHfs.inf; sourceTree = ""; }; + 9AA9197425CD597E00BD5E8B /* fsw_efi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_efi.c; sourceTree = ""; }; + 9AA9197B25CD597E00BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA9197D25CD597E00BD5E8B /* VBoxHfs.vcxproj */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = VBoxHfs.vcxproj; sourceTree = ""; }; + 9AA9197F25CD597E00BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA9198025CD597E00BD5E8B /* dirent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dirent.h; sourceTree = ""; }; + 9AA9198225CD597E00BD5E8B /* fsw_posix.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fsw_posix.c; sourceTree = ""; }; + 9AA9198325CD597E00BD5E8B /* fsw_posix_base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_posix_base.h; sourceTree = ""; }; + 9AA9198425CD597E00BD5E8B /* fsw_posix.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fsw_posix.h; sourceTree = ""; }; + 9AA9198525CD597E00BD5E8B /* tstmain.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tstmain.c; sourceTree = ""; }; + 9AA9198725CD597E00BD5E8B /* AudioDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AudioDxe.c; sourceTree = ""; }; + 9AA9198925CD597E00BD5E8B /* HdaCodecInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaCodecInfo.c; sourceTree = ""; }; + 9AA9198A25CD597E00BD5E8B /* HdaCodecComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaCodecComponentName.c; sourceTree = ""; }; + 9AA9198B25CD597E00BD5E8B /* HdaCodec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodec.h; sourceTree = ""; }; + 9AA9198C25CD597E00BD5E8B /* HdaCodecAudioIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaCodecAudioIo.c; sourceTree = ""; }; + 9AA9198D25CD597E00BD5E8B /* HdaCodecComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodecComponentName.h; sourceTree = ""; }; + 9AA9198E25CD597E00BD5E8B /* HdaCodec.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaCodec.c; sourceTree = ""; }; + 9AA9199025CD597E00BD5E8B /* HdaControllerComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaControllerComponentName.c; sourceTree = ""; }; + 9AA9199125CD597E00BD5E8B /* HdaControllerMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaControllerMem.c; sourceTree = ""; }; + 9AA9199225CD597E00BD5E8B /* HdaController.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaController.c; sourceTree = ""; }; + 9AA9199325CD597E00BD5E8B /* HdaControllerHdaIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaControllerHdaIo.c; sourceTree = ""; }; + 9AA9199425CD597E00BD5E8B /* HdaControllerInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaControllerInfo.c; sourceTree = ""; }; + 9AA9199525CD597E00BD5E8B /* HdaControllerComponentName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaControllerComponentName.h; sourceTree = ""; }; + 9AA9199625CD597E00BD5E8B /* HdaController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaController.h; sourceTree = ""; }; + 9AA9199725CD597E00BD5E8B /* AudioDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioDxe.h; sourceTree = ""; }; + 9AA9199825CD597E00BD5E8B /* AudioDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AudioDxe.inf; sourceTree = ""; }; + 9AA9199925CD597E00BD5E8B /* Changelog.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = Changelog.md; sourceTree = ""; }; + 9AA9199A25CD597E00BD5E8B /* .shellcheckrc */ = {isa = PBXFileReference; lastKnownFileType = text; path = .shellcheckrc; sourceTree = ""; }; + 9AA9199C25CD597E00BD5E8B /* 0001-MdeModulePkg-SataControllerDxe-Add-support-for-drive.patch */ = {isa = PBXFileReference; lastKnownFileType = text; path = "0001-MdeModulePkg-SataControllerDxe-Add-support-for-drive.patch"; sourceTree = ""; }; + 9AA9199D25CD597E00BD5E8B /* 0001-ShellPkg-Add-support-for-input-with-separately-repor.patch */ = {isa = PBXFileReference; lastKnownFileType = text; path = "0001-ShellPkg-Add-support-for-input-with-separately-repor.patch"; sourceTree = ""; }; + 9AA9199E25CD597E00BD5E8B /* 0002-MdeModulePkg-AtaAtapiPassThru-Add-support-for-drives.patch */ = {isa = PBXFileReference; lastKnownFileType = text; path = "0002-MdeModulePkg-AtaAtapiPassThru-Add-support-for-drives.patch"; sourceTree = ""; }; + 9AA9199F25CD597E00BD5E8B /* 0003-MdeModulePkg-AtaAtapiPassThru-Reduce-timeout.patch */ = {isa = PBXFileReference; lastKnownFileType = text; path = "0003-MdeModulePkg-AtaAtapiPassThru-Reduce-timeout.patch"; sourceTree = ""; }; + 9AA919A325CD597E00BD5E8B /* AppleMacEfiSpec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMacEfiSpec.h; sourceTree = ""; }; + 9AA919A525CD597E00BD5E8B /* AppleCpuType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuType.h; sourceTree = ""; }; + 9AA919A725CD597E00BD5E8B /* AppleCpuType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuType.h; sourceTree = ""; }; + 9AA919A925CD597E00BD5E8B /* AppleProvisioning.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleProvisioning.h; sourceTree = ""; }; + 9AA919AA25CD597E00BD5E8B /* AppleIcon.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleIcon.h; sourceTree = ""; }; + 9AA919AB25CD597E00BD5E8B /* AppleMachoImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMachoImage.h; sourceTree = ""; }; + 9AA919AC25CD597E00BD5E8B /* AppleSmBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSmBios.h; sourceTree = ""; }; + 9AA919AD25CD597E00BD5E8B /* AppleNec.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleNec.h; sourceTree = ""; }; + 9AA919AE25CD597E00BD5E8B /* AppleRtc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleRtc.h; sourceTree = ""; }; + 9AA919AF25CD597E00BD5E8B /* AppleDiskImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskImage.h; sourceTree = ""; }; + 9AA919B025CD597E00BD5E8B /* ApplePerfData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePerfData.h; sourceTree = ""; }; + 9AA919B125CD597E00BD5E8B /* AppleChunklist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleChunklist.h; sourceTree = ""; }; + 9AA919B225CD597E00BD5E8B /* AppleFatBinaryImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFatBinaryImage.h; sourceTree = ""; }; + 9AA919B325CD597E00BD5E8B /* AppleSmc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSmc.h; sourceTree = ""; }; + 9AA919B425CD597E00BD5E8B /* AppleHibernate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHibernate.h; sourceTree = ""; }; + 9AA919B525CD597E00BD5E8B /* AppleFeatures.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFeatures.h; sourceTree = ""; }; + 9AA919B625CD597E00BD5E8B /* Apfs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Apfs.h; sourceTree = ""; }; + 9AA919B725CD597E00BD5E8B /* AppleCsrConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCsrConfig.h; sourceTree = ""; }; + 9AA919B825CD597E00BD5E8B /* AppleDiskLabel.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskLabel.h; sourceTree = ""; }; + 9AA919B925CD597E00BD5E8B /* AppleBootArgs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleBootArgs.h; sourceTree = ""; }; + 9AA919BA25CD597E00BD5E8B /* AppleHid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHid.h; sourceTree = ""; }; + 9AA919BB25CD597E00BD5E8B /* AppleIntelCpuInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleIntelCpuInfo.h; sourceTree = ""; }; + 9AA919BC25CD597E00BD5E8B /* AppleKmodInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKmodInfo.h; sourceTree = ""; }; + 9AA919BD25CD597E00BD5E8B /* AppleKxldState.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKxldState.h; sourceTree = ""; }; + 9AA919BE25CD597E00BD5E8B /* AppleCompressedBinaryImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCompressedBinaryImage.h; sourceTree = ""; }; + 9AA919BF25CD597E00BD5E8B /* AppleMkext.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMkext.h; sourceTree = ""; }; + 9AA919C025CD597E00BD5E8B /* AppleMacEfi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleMacEfi.h; sourceTree = ""; }; + 9AA919C225CD597E00BD5E8B /* AppleInterruptLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleInterruptLib.h; sourceTree = ""; }; + 9AA919C325CD597E00BD5E8B /* BiosIdLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BiosIdLib.h; sourceTree = ""; }; + 9AA919C425CD597E00BD5E8B /* AppleSmbiosLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSmbiosLib.h; sourceTree = ""; }; + 9AA919C525CD597E00BD5E8B /* AppleCpuExtensionsLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuExtensionsLib.h; sourceTree = ""; }; + 9AA919C625CD597E00BD5E8B /* AppleDataHubLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDataHubLib.h; sourceTree = ""; }; + 9AA919C725CD597E00BD5E8B /* AppleEventLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleEventLib.h; sourceTree = ""; }; + 9AA919C925CD597E00BD5E8B /* UserInterfaceTheme.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UserInterfaceTheme.h; sourceTree = ""; }; + 9AA919CA25CD597E00BD5E8B /* OSInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OSInfo.h; sourceTree = ""; }; + 9AA919CB25CD597E00BD5E8B /* AppleDeviceControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDeviceControl.h; sourceTree = ""; }; + 9AA919CC25CD597E00BD5E8B /* AppleSmcIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSmcIo.h; sourceTree = ""; }; + 9AA919CD25CD597E00BD5E8B /* AppleGraphicsPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleGraphicsPolicy.h; sourceTree = ""; }; + 9AA919CE25CD597E00BD5E8B /* ApplePartitionInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePartitionInfo.h; sourceTree = ""; }; + 9AA919CF25CD597E00BD5E8B /* ApfsUnsupportedBds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApfsUnsupportedBds.h; sourceTree = ""; }; + 9AA919D025CD597E00BD5E8B /* AppleSecureBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSecureBoot.h; sourceTree = ""; }; + 9AA919D125CD597E00BD5E8B /* AppleFirmwarePassword.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFirmwarePassword.h; sourceTree = ""; }; + 9AA919D225CD597E00BD5E8B /* AppleDiskImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiskImage.h; sourceTree = ""; }; + 9AA919D325CD597E00BD5E8B /* AppleImageConversion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleImageConversion.h; sourceTree = ""; }; + 9AA919D425CD597E00BD5E8B /* AppleRamDisk.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleRamDisk.h; sourceTree = ""; }; + 9AA919D525CD597E00BD5E8B /* KeyboardInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyboardInfo.h; sourceTree = ""; }; + 9AA919D625CD597E00BD5E8B /* AppleBeepGen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleBeepGen.h; sourceTree = ""; }; + 9AA919D725CD597E00BD5E8B /* AppleKeyMapDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKeyMapDatabase.h; sourceTree = ""; }; + 9AA919D825CD597E00BD5E8B /* AppleGraphicsDriver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleGraphicsDriver.h; sourceTree = ""; }; + 9AA919D925CD597E00BD5E8B /* AppleRemovableMedia.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleRemovableMedia.h; sourceTree = ""; }; + 9AA919DA25CD597E00BD5E8B /* AppleKeyMapAggregator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKeyMapAggregator.h; sourceTree = ""; }; + 9AA919DB25CD597E00BD5E8B /* AppleFramebufferInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFramebufferInfo.h; sourceTree = ""; }; + 9AA919DC25CD597E00BD5E8B /* ApfsEncryptedPartition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApfsEncryptedPartition.h; sourceTree = ""; }; + 9AA919DD25CD597E00BD5E8B /* AppleImg4Verification.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleImg4Verification.h; sourceTree = ""; }; + 9AA919DE25CD597E00BD5E8B /* DevicePathPropertyDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathPropertyDatabase.h; sourceTree = ""; }; + 9AA919DF25CD597E00BD5E8B /* AppleSingleFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSingleFile.h; sourceTree = ""; }; + 9AA919E025CD597E00BD5E8B /* AppleRtcRam.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleRtcRam.h; sourceTree = ""; }; + 9AA919E125CD597E00BD5E8B /* AppleVoiceOver.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleVoiceOver.h; sourceTree = ""; }; + 9AA919E225CD597E00BD5E8B /* AppleDebugLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDebugLog.h; sourceTree = ""; }; + 9AA919E325CD597E00BD5E8B /* AppleHda.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHda.h; sourceTree = ""; }; + 9AA919E425CD597E00BD5E8B /* Apple80211.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Apple80211.h; sourceTree = ""; }; + 9AA919E525CD597E00BD5E8B /* ApfsEfiBootRecordInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApfsEfiBootRecordInfo.h; sourceTree = ""; }; + 9AA919E625CD597E00BD5E8B /* ApplePlatformInfoDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePlatformInfoDatabase.h; sourceTree = ""; }; + 9AA919E725CD597E00BD5E8B /* AppleDiag.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDiag.h; sourceTree = ""; }; + 9AA919E825CD597E00BD5E8B /* AppleSystemInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleSystemInfo.h; sourceTree = ""; }; + 9AA919E925CD597E00BD5E8B /* AppleBootPolicy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleBootPolicy.h; sourceTree = ""; }; + 9AA919EA25CD597E00BD5E8B /* AppleEvent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleEvent.h; sourceTree = ""; }; + 9AA919EB25CD597E00BD5E8B /* AppleDmgBoot.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDmgBoot.h; sourceTree = ""; }; + 9AA919EC25CD597E00BD5E8B /* AppleLoadImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleLoadImage.h; sourceTree = ""; }; + 9AA919EE25CD597E00BD5E8B /* AppleCpuType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuType.h; sourceTree = ""; }; + 9AA919F025CD597F00BD5E8B /* AppleBless.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleBless.h; sourceTree = ""; }; + 9AA919F125CD597F00BD5E8B /* AppleDataHub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDataHub.h; sourceTree = ""; }; + 9AA919F225CD597F00BD5E8B /* AppleFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFile.h; sourceTree = ""; }; + 9AA919F325CD597F00BD5E8B /* AppleOSLoaded.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleOSLoaded.h; sourceTree = ""; }; + 9AA919F425CD597F00BD5E8B /* AppleCertificate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCertificate.h; sourceTree = ""; }; + 9AA919F525CD597F00BD5E8B /* AppleDevicePath.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleDevicePath.h; sourceTree = ""; }; + 9AA919F625CD597F00BD5E8B /* AppleHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHob.h; sourceTree = ""; }; + 9AA919F725CD597F00BD5E8B /* AppleTscFrequency.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleTscFrequency.h; sourceTree = ""; }; + 9AA919F825CD597F00BD5E8B /* ApplePlatformInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ApplePlatformInfo.h; sourceTree = ""; }; + 9AA919F925CD597F00BD5E8B /* AppleHfsInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleHfsInfo.h; sourceTree = ""; }; + 9AA919FA25CD597F00BD5E8B /* AppleVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleVariable.h; sourceTree = ""; }; + 9AA919FB25CD597F00BD5E8B /* BiosId.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BiosId.h; sourceTree = ""; }; + 9AA919FC25CD597F00BD5E8B /* AppleApfsInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleApfsInfo.h; sourceTree = ""; }; + 9AA919FD25CD597F00BD5E8B /* AppleTDMApprovedGuid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleTDMApprovedGuid.h; sourceTree = ""; }; + 9AA919FE25CD597F00BD5E8B /* AppleFirmwareVolume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFirmwareVolume.h; sourceTree = ""; }; + 9AA91A0025CD597F00BD5E8B /* AppleCpuType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuType.h; sourceTree = ""; }; + 9AA91A0225CD597F00BD5E8B /* AppleCpuType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleCpuType.h; sourceTree = ""; }; + 9AA91A0525CD597F00BD5E8B /* HeciMsg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HeciMsg.h; sourceTree = ""; }; + 9AA91A0625CD597F00BD5E8B /* HdaRegisters.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaRegisters.h; sourceTree = ""; }; + 9AA91A0725CD597F00BD5E8B /* GenericIch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GenericIch.h; sourceTree = ""; }; + 9AA91A0825CD597F00BD5E8B /* CpuId.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuId.h; sourceTree = ""; }; + 9AA91A0925CD597F00BD5E8B /* HeciClientMsg.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HeciClientMsg.h; sourceTree = ""; }; + 9AA91A0A25CD597F00BD5E8B /* HdaVerbs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaVerbs.h; sourceTree = ""; }; + 9AA91A0B25CD597F00BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA91A0C25CD597F00BD5E8B /* ProcessorInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ProcessorInfo.h; sourceTree = ""; }; + 9AA91A0E25CD597F00BD5E8B /* Heci2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Heci2.h; sourceTree = ""; }; + 9AA91A0F25CD597F00BD5E8B /* LegacyBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyBios.h; sourceTree = ""; }; + 9AA91A1025CD597F00BD5E8B /* HotPlugDevice.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HotPlugDevice.h; sourceTree = ""; }; + 9AA91A1125CD597F00BD5E8B /* FrameworkMpService.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FrameworkMpService.h; sourceTree = ""; }; + 9AA91A1225CD597F00BD5E8B /* ConsoleControl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConsoleControl.h; sourceTree = ""; }; + 9AA91A1325CD597F00BD5E8B /* Heci.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Heci.h; sourceTree = ""; }; + 9AA91A1425CD597F00BD5E8B /* VgaMiniPort.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VgaMiniPort.h; sourceTree = ""; }; + 9AA91A1525CD597F00BD5E8B /* LegacyRegion.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyRegion.h; sourceTree = ""; }; + 9AA91A1625CD597F00BD5E8B /* DataHub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataHub.h; sourceTree = ""; }; + 9AA91A1725CD597F00BD5E8B /* FirmwareVolume.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FirmwareVolume.h; sourceTree = ""; }; + 9AA91A1925CD597F00BD5E8B /* DataHubRecords.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataHubRecords.h; sourceTree = ""; }; + 9AA91A1A25CD597F00BD5E8B /* BlockIoVendor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlockIoVendor.h; sourceTree = ""; }; + 9AA91A1D25CD597F00BD5E8B /* AmiPointer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AmiPointer.h; sourceTree = ""; }; + 9AA91A1E25CD597F00BD5E8B /* AmiKeycode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AmiKeycode.h; sourceTree = ""; }; + 9AA91A2025CD597F00BD5E8B /* EfiLdrHandoff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiLdrHandoff.h; sourceTree = ""; }; + 9AA91A2225CD597F00BD5E8B /* DuetBdsLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DuetBdsLib.h; sourceTree = ""; }; + 9AA91A2325CD597F00BD5E8B /* FlashLayout.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlashLayout.h; sourceTree = ""; }; + 9AA91A2425CD597F00BD5E8B /* EfiFlashMap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiFlashMap.h; sourceTree = ""; }; + 9AA91A2625CD597F00BD5E8B /* PciOptionRomTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciOptionRomTable.h; sourceTree = ""; }; + 9AA91A2725CD597F00BD5E8B /* PciExpressBaseAddress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciExpressBaseAddress.h; sourceTree = ""; }; + 9AA91A2825CD597F00BD5E8B /* DxeCoreFileName.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeCoreFileName.h; sourceTree = ""; }; + 9AA91A2925CD597F00BD5E8B /* LdrMemoryDescriptor.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LdrMemoryDescriptor.h; sourceTree = ""; }; + 9AA91A2A25CD597F00BD5E8B /* FlashMapHob.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlashMapHob.h; sourceTree = ""; }; + 9AA91A2B25CD597F00BD5E8B /* AcpiDescription.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AcpiDescription.h; sourceTree = ""; }; + 9AA91A2C25CD597F00BD5E8B /* EfiImageFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiImageFormat.h; sourceTree = ""; }; + 9AA91A2E25CD597F00BD5E8B /* MicrosoftWindows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicrosoftWindows.h; sourceTree = ""; }; + 9AA91A3025CD597F00BD5E8B /* MicrosoftVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MicrosoftVariable.h; sourceTree = ""; }; + 9AA91A3325CD597F00BD5E8B /* Riff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Riff.h; sourceTree = ""; }; + 9AA91A3425CD597F00BD5E8B /* UsbHid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UsbHid.h; sourceTree = ""; }; + 9AA91A3725CD597F00BD5E8B /* OcPeImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcPeImage.h; sourceTree = ""; }; + 9AA91A3925CD597F00BD5E8B /* OcAppleImg4Lib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleImg4Lib.h; sourceTree = ""; }; + 9AA91A3A25CD597F00BD5E8B /* OcHeciLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcHeciLib.h; sourceTree = ""; }; + 9AA91A3B25CD597F00BD5E8B /* OcAppleKeyMapLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleKeyMapLib.h; sourceTree = ""; }; + 9AA91A3C25CD597F00BD5E8B /* OcCpuLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcCpuLib.h; sourceTree = ""; }; + 9AA91A3D25CD597F00BD5E8B /* OcHashServicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcHashServicesLib.h; sourceTree = ""; }; + 9AA91A3E25CD597F00BD5E8B /* OcMacInfoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMacInfoLib.h; sourceTree = ""; }; + 9AA91A3F25CD597F00BD5E8B /* OcApfsLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcApfsLib.h; sourceTree = ""; }; + 9AA91A4025CD597F00BD5E8B /* OcVirtualFsLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcVirtualFsLib.h; sourceTree = ""; }; + 9AA91A4125CD597F00BD5E8B /* OcAppleImageConversionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleImageConversionLib.h; sourceTree = ""; }; + 9AA91A4225CD597F00BD5E8B /* OcRtcLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcRtcLib.h; sourceTree = ""; }; + 9AA91A4325CD597F00BD5E8B /* OcMiscLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMiscLib.h; sourceTree = ""; }; + 9AA91A4425CD597F00BD5E8B /* OcPeCoffLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcPeCoffLib.h; sourceTree = ""; }; + 9AA91A4525CD597F00BD5E8B /* OcConfigurationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcConfigurationLib.h; sourceTree = ""; }; + 9AA91A4625CD597F00BD5E8B /* OcDevicePathLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDevicePathLib.h; sourceTree = ""; }; + 9AA91A4725CD597F00BD5E8B /* OcFileLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcFileLib.h; sourceTree = ""; }; + 9AA91A4825CD597F00BD5E8B /* OcTemplateLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcTemplateLib.h; sourceTree = ""; }; + 9AA91A4925CD597F00BD5E8B /* OcAppleKernelLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleKernelLib.h; sourceTree = ""; }; + 9AA91A4A25CD597F00BD5E8B /* OcDriverConnectionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDriverConnectionLib.h; sourceTree = ""; }; + 9AA91A4B25CD597F00BD5E8B /* OcAudioLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAudioLib.h; sourceTree = ""; }; + 9AA91A4C25CD597F00BD5E8B /* OcStorageLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcStorageLib.h; sourceTree = ""; }; + 9AA91A4D25CD597F00BD5E8B /* OcAppleRamDiskLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleRamDiskLib.h; sourceTree = ""; }; + 9AA91A4E25CD597F00BD5E8B /* OcAfterBootCompatLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAfterBootCompatLib.h; sourceTree = ""; }; + 9AA91A4F25CD597F00BD5E8B /* OcStringLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcStringLib.h; sourceTree = ""; }; + 9AA91A5025CD597F00BD5E8B /* OcAppleUserInterfaceThemeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleUserInterfaceThemeLib.h; sourceTree = ""; }; + 9AA91A5125CD597F00BD5E8B /* OcDebugLogLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDebugLogLib.h; sourceTree = ""; }; + 9AA91A5225CD597F00BD5E8B /* OcXmlLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcXmlLib.h; sourceTree = ""; }; + 9AA91A5325CD597F00BD5E8B /* OcFirmwarePasswordLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcFirmwarePasswordLib.h; sourceTree = ""; }; + 9AA91A5425CD597F00BD5E8B /* OcMachoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMachoLib.h; sourceTree = ""; }; + 9AA91A5525CD597F00BD5E8B /* OcAppleChunklistLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleChunklistLib.h; sourceTree = ""; }; + 9AA91A5625CD597F00BD5E8B /* OcAcpiLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAcpiLib.h; sourceTree = ""; }; + 9AA91A5725CD597F00BD5E8B /* OcDataHubLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDataHubLib.h; sourceTree = ""; }; + 9AA91A5825CD597F00BD5E8B /* OcSerializeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcSerializeLib.h; sourceTree = ""; }; + 9AA91A5925CD597F00BD5E8B /* OcBootServicesTableLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcBootServicesTableLib.h; sourceTree = ""; }; + 9AA91A5A25CD597F00BD5E8B /* OcMemoryLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMemoryLib.h; sourceTree = ""; }; + 9AA91A5B25CD597F00BD5E8B /* OcSmcLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcSmcLib.h; sourceTree = ""; }; + 9AA91A5C25CD597F00BD5E8B /* OcOSInfoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcOSInfoLib.h; sourceTree = ""; }; + 9AA91A5D25CD597F00BD5E8B /* OcBootManagementLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcBootManagementLib.h; sourceTree = ""; }; + 9AA91A5E25CD597F00BD5E8B /* OcHdaDevicesLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcHdaDevicesLib.h; sourceTree = ""; }; + 9AA91A5F25CD597F00BD5E8B /* OcGuardLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcGuardLib.h; sourceTree = ""; }; + 9AA91A6025CD597F00BD5E8B /* OcAppleSecureBootLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleSecureBootLib.h; sourceTree = ""; }; + 9AA91A6125CD597F00BD5E8B /* OcSmbiosLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcSmbiosLib.h; sourceTree = ""; }; + 9AA91A6225CD597F00BD5E8B /* OcUnicodeCollationEngGenericLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcUnicodeCollationEngGenericLib.h; sourceTree = ""; }; + 9AA91A6325CD597F00BD5E8B /* OcAppleBootPolicyLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleBootPolicyLib.h; sourceTree = ""; }; + 9AA91A6425CD597F00BD5E8B /* OcCryptoLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcCryptoLib.h; sourceTree = ""; }; + 9AA91A6525CD597F00BD5E8B /* OcDevicePropertyLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDevicePropertyLib.h; sourceTree = ""; }; + 9AA91A6625CD597F00BD5E8B /* OcAppleKeysLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleKeysLib.h; sourceTree = ""; }; + 9AA91A6725CD597F00BD5E8B /* OcInputLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcInputLib.h; sourceTree = ""; }; + 9AA91A6825CD597F00BD5E8B /* OcAppleDiskImageLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleDiskImageLib.h; sourceTree = ""; }; + 9AA91A6925CD597F00BD5E8B /* OcDeviceTreeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcDeviceTreeLib.h; sourceTree = ""; }; + 9AA91A6A25CD597F00BD5E8B /* OcAppleEventLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleEventLib.h; sourceTree = ""; }; + 9AA91A6B25CD597F00BD5E8B /* OcPngLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcPngLib.h; sourceTree = ""; }; + 9AA91A6C25CD597F00BD5E8B /* OcFirmwareVolumeLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcFirmwareVolumeLib.h; sourceTree = ""; }; + 9AA91A6D25CD597F00BD5E8B /* OcAppleImageVerificationLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleImageVerificationLib.h; sourceTree = ""; }; + 9AA91A6E25CD597F00BD5E8B /* OcTimerLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcTimerLib.h; sourceTree = ""; }; + 9AA91A6F25CD597F00BD5E8B /* OcRngLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcRngLib.h; sourceTree = ""; }; + 9AA91A7025CD597F00BD5E8B /* OcConsoleLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcConsoleLib.h; sourceTree = ""; }; + 9AA91A7125CD597F00BD5E8B /* OcCompressionLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcCompressionLib.h; sourceTree = ""; }; + 9AA91A7325CD597F00BD5E8B /* OcInterface.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcInterface.h; sourceTree = ""; }; + 9AA91A7425CD597F00BD5E8B /* OcFirmwareRuntime.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcFirmwareRuntime.h; sourceTree = ""; }; + 9AA91A7525CD597F00BD5E8B /* HdaControllerInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaControllerInfo.h; sourceTree = ""; }; + 9AA91A7625CD597F00BD5E8B /* AudioIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AudioIo.h; sourceTree = ""; }; + 9AA91A7725CD597F00BD5E8B /* HdaIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaIo.h; sourceTree = ""; }; + 9AA91A7825CD597F00BD5E8B /* OcAfterBootCompat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAfterBootCompat.h; sourceTree = ""; }; + 9AA91A7925CD597F00BD5E8B /* HdaCodecInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodecInfo.h; sourceTree = ""; }; + 9AA91A7A25CD597F00BD5E8B /* OcBootstrap.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcBootstrap.h; sourceTree = ""; }; + 9AA91A7B25CD597F00BD5E8B /* OcLog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcLog.h; sourceTree = ""; }; + 9AA91A7C25CD597F00BD5E8B /* OcAudio.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAudio.h; sourceTree = ""; }; + 9AA91A7E25CD597F00BD5E8B /* OcSmBios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcSmBios.h; sourceTree = ""; }; + 9AA91A7F25CD597F00BD5E8B /* OcVariable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcVariable.h; sourceTree = ""; }; + 9AA91A8025CD597F00BD5E8B /* OpenCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenCore.h; sourceTree = ""; }; + 9AA91A8325CD597F00BD5E8B /* VMwareMac.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VMwareMac.h; sourceTree = ""; }; + 9AA91A8425CD597F00BD5E8B /* VMwareDebug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VMwareDebug.h; sourceTree = ""; }; + 9AA91A8525CD597F00BD5E8B /* VMwareHda.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VMwareHda.h; sourceTree = ""; }; + 9AA91A8825CD597F00BD5E8B /* GuiApp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GuiApp.c; sourceTree = ""; }; + 9AA91A8925CD597F00BD5E8B /* BmfLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BmfLib.h; sourceTree = ""; }; + 9AA91A8A25CD597F00BD5E8B /* OpenCanopy.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenCanopy.inf; sourceTree = ""; }; + 9AA91A8C25CD597F00BD5E8B /* InputSimTextIn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InputSimTextIn.c; sourceTree = ""; }; + 9AA91A8D25CD597F00BD5E8B /* InputSimAbsPtr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = InputSimAbsPtr.c; sourceTree = ""; }; + 9AA91A8E25CD597F00BD5E8B /* OpenCanopy.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenCanopy.h; sourceTree = ""; }; + 9AA91A9025CD597F00BD5E8B /* OutputStGop.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OutputStGop.c; sourceTree = ""; }; + 9AA91A9125CD597F00BD5E8B /* OcBootstrap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcBootstrap.c; sourceTree = ""; }; + 9AA91A9225CD597F00BD5E8B /* GuiApp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuiApp.h; sourceTree = ""; }; + 9AA91A9325CD597F00BD5E8B /* GuiIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GuiIo.h; sourceTree = ""; }; + 9AA91A9425CD597F00BD5E8B /* OpenCanopy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCanopy.c; sourceTree = ""; }; + 9AA91A9525CD597F00BD5E8B /* BitmapFont.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BitmapFont.c; sourceTree = ""; }; + 9AA91A9725CD597F00BD5E8B /* BootPicker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootPicker.c; sourceTree = ""; }; + 9AA91A9825CD597F00BD5E8B /* BootPicker.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootPicker.h; sourceTree = ""; }; + 9AA91A9925CD597F00BD5E8B /* BmfFile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BmfFile.h; sourceTree = ""; }; + 9AA91A9B25CD597F00BD5E8B /* OpenRuntimePrivate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenRuntimePrivate.h; sourceTree = ""; }; + 9AA91A9C25CD597F00BD5E8B /* OpenRuntime.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenRuntime.inf; sourceTree = ""; }; + 9AA91A9D25CD597F00BD5E8B /* OpenRuntime.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenRuntime.c; sourceTree = ""; }; + 9AA91A9E25CD597F00BD5E8B /* UefiRuntimeServices.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiRuntimeServices.c; sourceTree = ""; }; + 9AA91AA025CD597F00BD5E8B /* UsbKbDxeExtra.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxeExtra.uni; sourceTree = ""; }; + 9AA91AA125CD597F00BD5E8B /* AppleKey.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleKey.c; sourceTree = ""; }; + 9AA91AA225CD597F00BD5E8B /* KeyBoard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KeyBoard.c; sourceTree = ""; }; + 9AA91AA325CD597F00BD5E8B /* UsbKbDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxe.inf; sourceTree = ""; }; + 9AA91AA425CD597F00BD5E8B /* EfiKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiKey.h; sourceTree = ""; }; + 9AA91AA525CD597F00BD5E8B /* UsbKbDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = UsbKbDxe.uni; sourceTree = ""; }; + 9AA91AA625CD597F00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA91AA725CD597F00BD5E8B /* KeyBoard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = KeyBoard.h; sourceTree = ""; }; + 9AA91AA825CD597F00BD5E8B /* AppleKey.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleKey.h; sourceTree = ""; }; + 9AA91AA925CD597F00BD5E8B /* EfiKey.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EfiKey.c; sourceTree = ""; }; + 9AA91AAB25CD597F00BD5E8B /* CrScreenshotDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CrScreenshotDxe.inf; sourceTree = ""; }; + 9AA91AAC25CD597F00BD5E8B /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 9AA91AAD25CD597F00BD5E8B /* CrScreenshotDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CrScreenshotDxe.c; sourceTree = ""; }; + 9AA91AAE25CD597F00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91AB025CD597F00BD5E8B /* OpenCoreUefi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreUefi.c; sourceTree = ""; }; + 9AA91AB125CD597F00BD5E8B /* OpenCoreVault.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreVault.c; sourceTree = ""; }; + 9AA91AB225CD597F00BD5E8B /* OpenCoreLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenCoreLib.inf; sourceTree = ""; }; + 9AA91AB325CD597F00BD5E8B /* OpenCore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCore.c; sourceTree = ""; }; + 9AA91AB425CD597F00BD5E8B /* OpenCoreAcpi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreAcpi.c; sourceTree = ""; }; + 9AA91AB525CD597F00BD5E8B /* OpenCoreUefiInOut.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreUefiInOut.c; sourceTree = ""; }; + 9AA91AB625CD597F00BD5E8B /* OpenCoreMisc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreMisc.c; sourceTree = ""; }; + 9AA91AB725CD597F00BD5E8B /* OpenCorePlatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCorePlatform.c; sourceTree = ""; }; + 9AA91AB825CD597F00BD5E8B /* OpenCoreDevProps.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreDevProps.c; sourceTree = ""; }; + 9AA91AB925CD597F00BD5E8B /* OpenCoreNvram.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreNvram.c; sourceTree = ""; }; + 9AA91ABA25CD597F00BD5E8B /* OpenCoreKernelPatch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreKernelPatch.c; sourceTree = ""; }; + 9AA91ABB25CD597F00BD5E8B /* OpenCoreUefiAudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreUefiAudio.c; sourceTree = ""; }; + 9AA91ABC25CD597F00BD5E8B /* OpenCore.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenCore.inf; sourceTree = ""; }; + 9AA91ABD25CD597F00BD5E8B /* OpenCoreKernel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCoreKernel.c; sourceTree = ""; }; + 9AA91AC025CD597F00BD5E8B /* AcpiTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiTest.c; sourceTree = ""; }; + 9AA91AC125CD597F00BD5E8B /* AcpiTestApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiTestApp.inf; sourceTree = ""; }; + 9AA91AC225CD597F00BD5E8B /* AcpiTest.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = AcpiTest.inf; sourceTree = ""; }; + 9AA91AC425CD597F00BD5E8B /* CryptoTest.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CryptoTest.inf; sourceTree = ""; }; + 9AA91AC525CD597F00BD5E8B /* CryptoTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CryptoTest.c; sourceTree = ""; }; + 9AA91AC625CD597F00BD5E8B /* CryptoSamples.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CryptoSamples.h; sourceTree = ""; }; + 9AA91AC725CD597F00BD5E8B /* CryptoTestApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CryptoTestApp.inf; sourceTree = ""; }; + 9AA91AC925CD597F00BD5E8B /* SmbiosTestApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosTestApp.inf; sourceTree = ""; }; + 9AA91ACA25CD597F00BD5E8B /* SmbiosTest.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosTest.inf; sourceTree = ""; }; + 9AA91ACB25CD597F00BD5E8B /* SmbiosTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosTest.c; sourceTree = ""; }; + 9AA91ACD25CD597F00BD5E8B /* DataHubTestApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DataHubTestApp.inf; sourceTree = ""; }; + 9AA91ACE25CD597F00BD5E8B /* DataHubTest.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DataHubTest.inf; sourceTree = ""; }; + 9AA91ACF25CD597F00BD5E8B /* DataHubTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DataHubTest.c; sourceTree = ""; }; + 9AA91AD125CD597F00BD5E8B /* PropertyTest.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PropertyTest.inf; sourceTree = ""; }; + 9AA91AD225CD597F00BD5E8B /* PropertyTest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PropertyTest.c; sourceTree = ""; }; + 9AA91AD325CD597F00BD5E8B /* PropertyTestApp.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PropertyTestApp.inf; sourceTree = ""; }; + 9AA91AD625CD597F00BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91AD725CD597F00BD5E8B /* boot0.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = boot0.nasm; sourceTree = ""; }; + 9AA91AD825CD597F00BD5E8B /* boot1f32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = boot1f32.nasm; sourceTree = ""; }; + 9AA91ADB25CD597F00BD5E8B /* SmbiosGenStrings.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosGenStrings.uni; sourceTree = ""; }; + 9AA91ADC25CD597F00BD5E8B /* SmbiosGen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosGen.c; sourceTree = ""; }; + 9AA91ADD25CD597F00BD5E8B /* SmbiosGen.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = SmbiosGen.inf; sourceTree = ""; }; + 9AA91ADE25CD597F00BD5E8B /* SmbiosGen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmbiosGen.h; sourceTree = ""; }; + 9AA91AE125CD597F00BD5E8B /* CpuInterrupt.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuInterrupt.nasm; sourceTree = ""; }; + 9AA91AE225CD597F00BD5E8B /* CpuDxe.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CpuDxe.c; sourceTree = ""; }; + 9AA91AE425CD597F00BD5E8B /* CpuInterrupt.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = CpuInterrupt.nasm; sourceTree = ""; }; + 9AA91AE525CD597F00BD5E8B /* CpuDxe.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CpuDxe.h; sourceTree = ""; }; + 9AA91AE625CD597F00BD5E8B /* CpuDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CpuDxe.inf; sourceTree = ""; }; + 9AA91AE825CD597F00BD5E8B /* LzmaDecompress.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LzmaDecompress.h; sourceTree = ""; }; + 9AA91AE925CD597F00BD5E8B /* PeLoader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeLoader.c; sourceTree = ""; }; + 9AA91AEA25CD597F00BD5E8B /* EfiLdrHandoff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiLdrHandoff.h; sourceTree = ""; }; + 9AA91AEB25CD597F00BD5E8B /* Support.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Support.c; sourceTree = ""; }; + 9AA91AEC25CD597F00BD5E8B /* EfiLoader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EfiLoader.c; sourceTree = ""; }; + 9AA91AED25CD597F00BD5E8B /* EfiLdr.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiLdr.h; sourceTree = ""; }; + 9AA91AEE25CD597F00BD5E8B /* PeLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PeLoader.h; sourceTree = ""; }; + 9AA91AEF25CD597F00BD5E8B /* EfiLdr.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = EfiLdr.inf; sourceTree = ""; }; + 9AA91AF025CD597F00BD5E8B /* Support.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Support.h; sourceTree = ""; }; + 9AA91AF225CD597F00BD5E8B /* PciRootBridgeNoEnumeration.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciRootBridgeNoEnumeration.inf; sourceTree = ""; }; + 9AA91AF325CD597F00BD5E8B /* PcatPciRootBridge.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PcatPciRootBridge.c; sourceTree = ""; }; + 9AA91AF425CD597F00BD5E8B /* PcatPciRootBridgeDevicePath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PcatPciRootBridgeDevicePath.c; sourceTree = ""; }; + 9AA91AF525CD597F00BD5E8B /* DeviceIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DeviceIo.h; sourceTree = ""; }; + 9AA91AF625CD597F00BD5E8B /* PcatPciRootBridgeIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PcatPciRootBridgeIo.c; sourceTree = ""; }; + 9AA91AF725CD597F00BD5E8B /* PcatPciRootBridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PcatPciRootBridge.h; sourceTree = ""; }; + 9AA91AF825CD597F00BD5E8B /* PcatIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PcatIo.c; sourceTree = ""; }; + 9AA91AF925CD597F00BD5E8B /* DeviceIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DeviceIo.c; sourceTree = ""; }; + 9AA91AFB25CD597F00BD5E8B /* LegacyRegion2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyRegion2.c; sourceTree = ""; }; + 9AA91AFC25CD597F00BD5E8B /* LegacyRegion2Dxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = LegacyRegion2Dxe.inf; sourceTree = ""; }; + 9AA91AFD25CD597F00BD5E8B /* LegacyRegion2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyRegion2.h; sourceTree = ""; }; + 9AA91AFF25CD597F00BD5E8B /* Reset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Reset.c; sourceTree = ""; }; + 9AA91B0025CD597F00BD5E8B /* Reset.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Reset.inf; sourceTree = ""; }; + 9AA91B0225CD597F00BD5E8B /* LegacyTable.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyTable.c; sourceTree = ""; }; + 9AA91B0325CD597F00BD5E8B /* DxeIpl.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DxeIpl.inf; sourceTree = ""; }; + 9AA91B0525CD597F00BD5E8B /* Paging.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Paging.c; sourceTree = ""; }; + 9AA91B0625CD597F00BD5E8B /* EnterDxeCore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnterDxeCore.c; sourceTree = ""; }; + 9AA91B0725CD597F00BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA91B0825CD597F00BD5E8B /* DxeIpl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DxeIpl.h; sourceTree = ""; }; + 9AA91B0925CD597F00BD5E8B /* HobGeneration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HobGeneration.h; sourceTree = ""; }; + 9AA91B0A25CD597F00BD5E8B /* LegacyTable.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LegacyTable.h; sourceTree = ""; }; + 9AA91B0B25CD597F00BD5E8B /* DxeInit.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DxeInit.c; sourceTree = ""; }; + 9AA91B0D25CD597F00BD5E8B /* Paging.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Paging.c; sourceTree = ""; }; + 9AA91B0E25CD597F00BD5E8B /* EnterDxeCore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EnterDxeCore.c; sourceTree = ""; }; + 9AA91B0F25CD597F00BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA91B1025CD597F00BD5E8B /* HobGeneration.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HobGeneration.c; sourceTree = ""; }; + 9AA91B1225CD597F00BD5E8B /* LegacyBiosThunk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyBiosThunk.c; sourceTree = ""; }; + 9AA91B1325CD597F00BD5E8B /* VesaBiosExtensions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VesaBiosExtensions.h; sourceTree = ""; }; + 9AA91B1425CD597F00BD5E8B /* BiosVideo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BiosVideo.h; sourceTree = ""; }; + 9AA91B1525CD597F00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA91B1625CD597F00BD5E8B /* BiosVideo.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BiosVideo.inf; sourceTree = ""; }; + 9AA91B1725CD597F00BD5E8B /* BiosVideo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BiosVideo.c; sourceTree = ""; }; + 9AA91B1925CD597F00BD5E8B /* BdsEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsEntry.c; sourceTree = ""; }; + 9AA91B1A25CD597F00BD5E8B /* BdsDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BdsDxe.inf; sourceTree = ""; }; + 9AA91B1B25CD597F00BD5E8B /* BdsDxe.uni */ = {isa = PBXFileReference; lastKnownFileType = text; path = BdsDxe.uni; sourceTree = ""; }; + 9AA91B1C25CD597F00BD5E8B /* Bds.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Bds.h; sourceTree = ""; }; + 9AA91B1E25CD597F00BD5E8B /* PciEnumerator.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciEnumerator.c; sourceTree = ""; }; + 9AA91B1F25CD597F00BD5E8B /* PciDeviceSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciDeviceSupport.c; sourceTree = ""; }; + 9AA91B2025CD597F00BD5E8B /* PciIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciIo.c; sourceTree = ""; }; + 9AA91B2125CD597F00BD5E8B /* PciCommand.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciCommand.c; sourceTree = ""; }; + 9AA91B2225CD597F00BD5E8B /* PciEnumeratorSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciEnumeratorSupport.c; sourceTree = ""; }; + 9AA91B2325CD597F00BD5E8B /* ComponentName.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ComponentName.c; sourceTree = ""; }; + 9AA91B2425CD597F00BD5E8B /* PciBus.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciBus.c; sourceTree = ""; }; + 9AA91B2525CD597F00BD5E8B /* PciPowerManagement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PciPowerManagement.c; sourceTree = ""; }; + 9AA91B2625CD597F00BD5E8B /* PciBusNoEnumeration.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PciBusNoEnumeration.inf; sourceTree = ""; }; + 9AA91B2725CD597F00BD5E8B /* PciEnumerator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciEnumerator.h; sourceTree = ""; }; + 9AA91B2825CD597F00BD5E8B /* PciCommand.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciCommand.h; sourceTree = ""; }; + 9AA91B2925CD597F00BD5E8B /* PciIo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciIo.h; sourceTree = ""; }; + 9AA91B2A25CD597F00BD5E8B /* PciDeviceSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciDeviceSupport.h; sourceTree = ""; }; + 9AA91B2B25CD597F00BD5E8B /* PciPowerManagement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciPowerManagement.h; sourceTree = ""; }; + 9AA91B2C25CD597F00BD5E8B /* PciBus.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciBus.h; sourceTree = ""; }; + 9AA91B2D25CD597F00BD5E8B /* PciEnumeratorSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PciEnumeratorSupport.h; sourceTree = ""; }; + 9AA91B2E25CD597F00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91B3025CD597F00BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91B3125CD597F00BD5E8B /* start.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = start.nasm; sourceTree = ""; }; + 9AA91B3225CD597F00BD5E8B /* efi64.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = efi64.nasm; sourceTree = ""; }; + 9AA91B3325CD597F00BD5E8B /* efi32.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = efi32.nasm; sourceTree = ""; }; + 9AA91B3525CD597F00BD5E8B /* HfsPlus.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = HfsPlus.inf; sourceTree = ""; }; + 9AA91B3625CD597F00BD5E8B /* OpenUsbKbDxe.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenUsbKbDxe.inf; sourceTree = ""; }; + 9AA91B3725CD597F00BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91B3A25CD597F00BD5E8B /* Fat.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Fat.c; sourceTree = ""; }; + 9AA91B3B25CD597F00BD5E8B /* OcMachoLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMachoLibInternal.h; sourceTree = ""; }; + 9AA91B3C25CD597F00BD5E8B /* OcMachoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcMachoLib.inf; sourceTree = ""; }; + 9AA91B3D25CD597F00BD5E8B /* Header.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Header.c; sourceTree = ""; }; + 9AA91B3E25CD597F00BD5E8B /* Symbols.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Symbols.c; sourceTree = ""; }; + 9AA91B3F25CD597F00BD5E8B /* Relocations.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Relocations.c; sourceTree = ""; }; + 9AA91B4025CD597F00BD5E8B /* CxxSymbols.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CxxSymbols.c; sourceTree = ""; }; + 9AA91B4225CD597F00BD5E8B /* MacInfoInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MacInfoInternal.h; sourceTree = ""; }; + 9AA91B4325CD597F00BD5E8B /* AutoGenerated.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AutoGenerated.c; sourceTree = ""; }; + 9AA91B4425CD597F00BD5E8B /* OcMacInfoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcMacInfoLib.c; sourceTree = ""; }; + 9AA91B4525CD597F00BD5E8B /* OcMacInfoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcMacInfoLib.inf; sourceTree = ""; }; + 9AA91B4725CD597F00BD5E8B /* OcStringLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcStringLib.inf; sourceTree = ""; }; + 9AA91B4825CD597F00BD5E8B /* OcUnicodeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcUnicodeLib.c; sourceTree = ""; }; + 9AA91B4925CD597F00BD5E8B /* OcAsciiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAsciiLib.c; sourceTree = ""; }; + 9AA91B4B25CD597F00BD5E8B /* OcPngLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcPngLib.inf; sourceTree = ""; }; + 9AA91B4C25CD597F00BD5E8B /* lodepng.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lodepng.h; sourceTree = ""; }; + 9AA91B4D25CD597F00BD5E8B /* OcPng.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcPng.c; sourceTree = ""; }; + 9AA91B4E25CD597F00BD5E8B /* lodepng.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lodepng.c; sourceTree = ""; }; + 9AA91B5025CD597F00BD5E8B /* OcSerializeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcSerializeLib.c; sourceTree = ""; }; + 9AA91B5125CD597F00BD5E8B /* OcSerializeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcSerializeLib.inf; sourceTree = ""; }; + 9AA91B5325CD597F00BD5E8B /* OcDataHubLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDataHubLib.c; sourceTree = ""; }; + 9AA91B5425CD597F00BD5E8B /* OcDataHubLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDataHubLib.inf; sourceTree = ""; }; + 9AA91B5525CD597F00BD5E8B /* DataHub.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DataHub.c; sourceTree = ""; }; + 9AA91B5625CD597F00BD5E8B /* DataHub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DataHub.h; sourceTree = ""; }; + 9AA91B5825CD597F00BD5E8B /* PlatformData.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PlatformData.c; sourceTree = ""; }; + 9AA91B5925CD597F00BD5E8B /* BdsPlatform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BdsPlatform.h; sourceTree = ""; }; + 9AA91B5A25CD597F00BD5E8B /* DuetBdsLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DuetBdsLib.inf; sourceTree = ""; }; + 9AA91B5B25CD597F00BD5E8B /* BdsMisc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsMisc.c; sourceTree = ""; }; + 9AA91B5C25CD597F00BD5E8B /* BdsPlatform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsPlatform.c; sourceTree = ""; }; + 9AA91B5D25CD597F00BD5E8B /* BdsConnect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsConnect.c; sourceTree = ""; }; + 9AA91B5E25CD597F00BD5E8B /* BdsConsole.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BdsConsole.c; sourceTree = ""; }; + 9AA91B6025CD597F00BD5E8B /* ConsoleControl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConsoleControl.c; sourceTree = ""; }; + 9AA91B6125CD597F00BD5E8B /* OcConsoleLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcConsoleLibInternal.h; sourceTree = ""; }; + 9AA91B6225CD597F00BD5E8B /* ResolutionParsing.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ResolutionParsing.c; sourceTree = ""; }; + 9AA91B6325CD597F00BD5E8B /* OcConsoleLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcConsoleLib.inf; sourceTree = ""; }; + 9AA91B6425CD597F00BD5E8B /* UgaPassThrough.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UgaPassThrough.c; sourceTree = ""; }; + 9AA91B6525CD597F00BD5E8B /* OcConsoleLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcConsoleLib.c; sourceTree = ""; }; + 9AA91B6625CD597F00BD5E8B /* FramebufferInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FramebufferInfo.c; sourceTree = ""; }; + 9AA91B6725CD597F00BD5E8B /* ConsoleGop.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConsoleGop.c; sourceTree = ""; }; + 9AA91B6825CD597F00BD5E8B /* TextOutputNull.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TextOutputNull.c; sourceTree = ""; }; + 9AA91B6925CD597F00BD5E8B /* TextOutputSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TextOutputSystem.c; sourceTree = ""; }; + 9AA91B6A25CD597F00BD5E8B /* TextOutputBuiltin.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TextOutputBuiltin.c; sourceTree = ""; }; + 9AA91B6C25CD597F00BD5E8B /* AppleRtcRam.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleRtcRam.c; sourceTree = ""; }; + 9AA91B6D25CD597F00BD5E8B /* OcRtcLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcRtcLibInternal.h; sourceTree = ""; }; + 9AA91B6E25CD597F00BD5E8B /* OcRtcLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcRtcLib.inf; sourceTree = ""; }; + 9AA91B6F25CD597F00BD5E8B /* OcRtcLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcRtcLib.c; sourceTree = ""; }; + 9AA91B7125CD597F00BD5E8B /* OcAppleEventLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleEventLib.inf; sourceTree = ""; }; + 9AA91B7225CD597F00BD5E8B /* AppleEventInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleEventInternal.h; sourceTree = ""; }; + 9AA91B7325CD597F00BD5E8B /* OcAppleEventLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleEventLib.c; sourceTree = ""; }; + 9AA91B7425CD597F00BD5E8B /* AppleKeyMap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleKeyMap.c; sourceTree = ""; }; + 9AA91B7525CD597F00BD5E8B /* EventQueue.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EventQueue.c; sourceTree = ""; }; + 9AA91B7625CD597F00BD5E8B /* KeyHandler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KeyHandler.c; sourceTree = ""; }; + 9AA91B7725CD597F00BD5E8B /* PointerHandler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PointerHandler.c; sourceTree = ""; }; + 9AA91B7925CD597F00BD5E8B /* OcApfsInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcApfsInternal.h; sourceTree = ""; }; + 9AA91B7A25CD597F00BD5E8B /* OcApfsIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcApfsIo.c; sourceTree = ""; }; + 9AA91B7B25CD597F00BD5E8B /* OcApfsLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcApfsLib.c; sourceTree = ""; }; + 9AA91B7C25CD597F00BD5E8B /* OcApfsFusion.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcApfsFusion.c; sourceTree = ""; }; + 9AA91B7D25CD597F00BD5E8B /* OcApfsLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcApfsLib.inf; sourceTree = ""; }; + 9AA91B7E25CD597F00BD5E8B /* OcApfsConnect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcApfsConnect.c; sourceTree = ""; }; + 9AA91B8025CD597F00BD5E8B /* OcDeviceTreeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDeviceTreeLib.c; sourceTree = ""; }; + 9AA91B8125CD597F00BD5E8B /* OcDeviceTreeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDeviceTreeLib.inf; sourceTree = ""; }; + 9AA91B8325CD597F00BD5E8B /* OcUnicodeCollationEngLocal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcUnicodeCollationEngLocal.c; sourceTree = ""; }; + 9AA91B8425CD597F00BD5E8B /* OcUnicodeCollationEngLocalLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcUnicodeCollationEngLocalLib.inf; sourceTree = ""; }; + 9AA91B8525CD597F00BD5E8B /* OcUnicodeCollationEngGenericLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcUnicodeCollationEngGenericLib.inf; sourceTree = ""; }; + 9AA91B8625CD597F00BD5E8B /* OcUnicodeCollationEngGeneric.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcUnicodeCollationEngGeneric.c; sourceTree = ""; }; + 9AA91B8725CD597F00BD5E8B /* OcUnicodeCollationEngCommon.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcUnicodeCollationEngCommon.c; sourceTree = ""; }; + 9AA91B8825CD597F00BD5E8B /* OcUnicodeCollationEngInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcUnicodeCollationEngInternal.h; sourceTree = ""; }; + 9AA91B8A25CD597F00BD5E8B /* OcHashServicesLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcHashServicesLibInternal.h; sourceTree = ""; }; + 9AA91B8B25CD597F00BD5E8B /* OcHashServicesLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcHashServicesLib.c; sourceTree = ""; }; + 9AA91B8C25CD597F00BD5E8B /* OcHashServicesLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcHashServicesLib.inf; sourceTree = ""; }; + 9AA91B8E25CD597F00BD5E8B /* OcAppleChunklistLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleChunklistLib.c; sourceTree = ""; }; + 9AA91B8F25CD597F00BD5E8B /* OcAppleChunklistLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleChunklistLib.inf; sourceTree = ""; }; + 9AA91B9125CD597F00BD5E8B /* OcHeciLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcHeciLib.c; sourceTree = ""; }; + 9AA91B9225CD597F00BD5E8B /* OcHeciLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcHeciLib.inf; sourceTree = ""; }; + 9AA91B9425CD597F00BD5E8B /* OcConsoleControlEntryModeGenericLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcConsoleControlEntryModeGenericLib.inf; sourceTree = ""; }; + 9AA91B9525CD597F00BD5E8B /* OcConsoleControlEntryModeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcConsoleControlEntryModeLib.c; sourceTree = ""; }; + 9AA91B9625CD597F00BD5E8B /* OcConsoleControlEntryModeLocalLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcConsoleControlEntryModeLocalLib.inf; sourceTree = ""; }; + 9AA91B9825CD597F00BD5E8B /* OcAppleImageVerificationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleImageVerificationLib.inf; sourceTree = ""; }; + 9AA91B9925CD597F00BD5E8B /* OcAppleImageVerification.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleImageVerification.c; sourceTree = ""; }; + 9AA91B9B25CD597F00BD5E8B /* OcAppleImageConversionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleImageConversionLib.inf; sourceTree = ""; }; + 9AA91B9C25CD597F00BD5E8B /* OcAppleImageConversionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleImageConversionLib.c; sourceTree = ""; }; + 9AA91B9E25CD597F00BD5E8B /* Aes.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Aes.c; sourceTree = ""; }; + 9AA91B9F25CD597F00BD5E8B /* Sha2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Sha2.c; sourceTree = ""; }; + 9AA91BA025CD597F00BD5E8B /* BigNumMontgomery.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BigNumMontgomery.c; sourceTree = ""; }; + 9AA91BA125CD597F00BD5E8B /* OcCryptoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcCryptoLib.inf; sourceTree = ""; }; + 9AA91BA325CD597F00BD5E8B /* BigNumWordMul64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BigNumWordMul64.c; sourceTree = ""; }; + 9AA91BA425CD597F00BD5E8B /* BigNumLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BigNumLibInternal.h; sourceTree = ""; }; + 9AA91BA525CD597F00BD5E8B /* BigNumLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BigNumLib.h; sourceTree = ""; }; + 9AA91BA625CD597F00BD5E8B /* Sha1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Sha1.c; sourceTree = ""; }; + 9AA91BA725CD597F00BD5E8B /* BigNumPrimitives.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BigNumPrimitives.c; sourceTree = ""; }; + 9AA91BA825CD597F00BD5E8B /* PasswordHash.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PasswordHash.c; sourceTree = ""; }; + 9AA91BAA25CD597F00BD5E8B /* BigNumWordMul64.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BigNumWordMul64.c; sourceTree = ""; }; + 9AA91BAB25CD597F00BD5E8B /* ChaCha.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ChaCha.c; sourceTree = ""; }; + 9AA91BAC25CD597F00BD5E8B /* RsaDigitalSign.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RsaDigitalSign.c; sourceTree = ""; }; + 9AA91BAD25CD597F00BD5E8B /* Md5.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Md5.c; sourceTree = ""; }; + 9AA91BAE25CD597F00BD5E8B /* SecureMem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SecureMem.c; sourceTree = ""; }; + 9AA91BB025CD597F00BD5E8B /* DirectReset.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DirectReset.c; sourceTree = ""; }; + 9AA91BB125CD597F00BD5E8B /* Math.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Math.c; sourceTree = ""; }; + 9AA91BB225CD597F00BD5E8B /* ReleaseUsbOwnership.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReleaseUsbOwnership.c; sourceTree = ""; }; + 9AA91BB325CD597F00BD5E8B /* ProtocolSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ProtocolSupport.c; sourceTree = ""; }; + 9AA91BB425CD597F00BD5E8B /* OcMiscLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcMiscLib.inf; sourceTree = ""; }; + 9AA91BB525CD597F00BD5E8B /* DataPatcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DataPatcher.c; sourceTree = ""; }; + 9AA91BB725CD597F00BD5E8B /* OcTimerLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcTimerLib.c; sourceTree = ""; }; + 9AA91BB825CD597F00BD5E8B /* OcTimerLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcTimerLib.inf; sourceTree = ""; }; + 9AA91BBB25CD597F00BD5E8B /* DER_CertCrl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_CertCrl.c; sourceTree = ""; }; + 9AA91BBC25CD597F00BD5E8B /* DER_Keys.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_Keys.c; sourceTree = ""; }; + 9AA91BBD25CD597F00BD5E8B /* DER_Encode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_Encode.h; sourceTree = ""; }; + 9AA91BBE25CD597F00BD5E8B /* oids.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = oids.h; sourceTree = ""; }; + 9AA91BBF25CD597F00BD5E8B /* libDER.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libDER.h; sourceTree = ""; }; + 9AA91BC025CD597F00BD5E8B /* DER_Decode.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_Decode.h; sourceTree = ""; }; + 9AA91BC125CD597F00BD5E8B /* DER_Digest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_Digest.c; sourceTree = ""; }; + 9AA91BC225CD597F00BD5E8B /* DER_CertCrl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_CertCrl.h; sourceTree = ""; }; + 9AA91BC325CD597F00BD5E8B /* asn1Types.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = asn1Types.h; sourceTree = ""; }; + 9AA91BC425CD597F00BD5E8B /* DER_Keys.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_Keys.h; sourceTree = ""; }; + 9AA91BC525CD597F00BD5E8B /* DER_Decode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_Decode.c; sourceTree = ""; }; + 9AA91BC625CD597F00BD5E8B /* oids.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = oids.c; sourceTree = ""; }; + 9AA91BC725CD597F00BD5E8B /* DER_Encode.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_Encode.c; sourceTree = ""; }; + 9AA91BC825CD598000BD5E8B /* DER_Digest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_Digest.h; sourceTree = ""; }; + 9AA91BC925CD598000BD5E8B /* OcAppleImg4Lib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleImg4Lib.c; sourceTree = ""; }; + 9AA91BCA25CD598000BD5E8B /* OcAppleImg4Lib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleImg4Lib.inf; sourceTree = ""; }; + 9AA91BCB25CD598000BD5E8B /* libDER_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libDER_config.h; sourceTree = ""; }; + 9AA91BCD25CD598000BD5E8B /* libDERImg4_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libDERImg4_config.h; sourceTree = ""; }; + 9AA91BCE25CD598000BD5E8B /* Img4oids.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Img4oids.c; sourceTree = ""; }; + 9AA91BCF25CD598000BD5E8B /* DER_Img4Manifest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DER_Img4Manifest.h; sourceTree = ""; }; + 9AA91BD025CD598000BD5E8B /* DER_Img4Manifest.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DER_Img4Manifest.c; sourceTree = ""; }; + 9AA91BD125CD598000BD5E8B /* libDERImg4.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = libDERImg4.h; sourceTree = ""; }; + 9AA91BD225CD598000BD5E8B /* Img4oids.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Img4oids.h; sourceTree = ""; }; + 9AA91BD425CD598000BD5E8B /* ImageLoader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ImageLoader.c; sourceTree = ""; }; + 9AA91BD525CD598000BD5E8B /* OcBootManagementLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcBootManagementLib.c; sourceTree = ""; }; + 9AA91BD625CD598000BD5E8B /* BootEntryInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootEntryInfo.c; sourceTree = ""; }; + 9AA91BD725CD598000BD5E8B /* DmgBootSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DmgBootSupport.c; sourceTree = ""; }; + 9AA91BD825CD598000BD5E8B /* ApplePanic.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ApplePanic.c; sourceTree = ""; }; + 9AA91BD925CD598000BD5E8B /* AppleRecovery.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleRecovery.c; sourceTree = ""; }; + 9AA91BDA25CD598000BD5E8B /* BootManagementInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootManagementInternal.h; sourceTree = ""; }; + 9AA91BDB25CD598000BD5E8B /* HotKeySupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HotKeySupport.c; sourceTree = ""; }; + 9AA91BDC25CD598000BD5E8B /* OcBootManagementLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcBootManagementLib.inf; sourceTree = ""; }; + 9AA91BDD25CD598000BD5E8B /* PolicyManagement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PolicyManagement.c; sourceTree = ""; }; + 9AA91BDE25CD598000BD5E8B /* DefaultEntryChoice.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DefaultEntryChoice.c; sourceTree = ""; }; + 9AA91BDF25CD598000BD5E8B /* BootAudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootAudio.c; sourceTree = ""; }; + 9AA91BE025CD598000BD5E8B /* BootArguments.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootArguments.c; sourceTree = ""; }; + 9AA91BE125CD598000BD5E8B /* BootSignature.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = BootSignature.bin; sourceTree = ""; }; + 9AA91BE225CD598000BD5E8B /* AppleHibernate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleHibernate.c; sourceTree = ""; }; + 9AA91BE325CD598000BD5E8B /* BootEntryManagement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootEntryManagement.c; sourceTree = ""; }; + 9AA91BE425CD598000BD5E8B /* VariableManagement.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VariableManagement.c; sourceTree = ""; }; + 9AA91BE725CD598000BD5E8B /* lzss.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lzss.c; sourceTree = ""; }; + 9AA91BE825CD598000BD5E8B /* lzss.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lzss.h; sourceTree = ""; }; + 9AA91BE925CD598000BD5E8B /* OcCompressionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcCompressionLib.c; sourceTree = ""; }; + 9AA91BEB25CD598000BD5E8B /* zlib_uefi.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zlib_uefi.c; sourceTree = ""; }; + 9AA91BEC25CD598000BD5E8B /* zutil.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zutil.h; sourceTree = ""; }; + 9AA91BED25CD598000BD5E8B /* inftrees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inftrees.h; sourceTree = ""; }; + 9AA91BEE25CD598000BD5E8B /* inflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inflate.c; sourceTree = ""; }; + 9AA91BEF25CD598000BD5E8B /* compress.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = compress.c; sourceTree = ""; }; + 9AA91BF025CD598000BD5E8B /* deflate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = deflate.c; sourceTree = ""; }; + 9AA91BF125CD598000BD5E8B /* inffixed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inffixed.h; sourceTree = ""; }; + 9AA91BF225CD598000BD5E8B /* trees.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = trees.h; sourceTree = ""; }; + 9AA91BF325CD598000BD5E8B /* inffast.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inffast.h; sourceTree = ""; }; + 9AA91BF425CD598000BD5E8B /* crc32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = crc32.c; sourceTree = ""; }; + 9AA91BF525CD598000BD5E8B /* infback.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = infback.c; sourceTree = ""; }; + 9AA91BF625CD598000BD5E8B /* deflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = deflate.h; sourceTree = ""; }; + 9AA91BF725CD598000BD5E8B /* zlib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zlib.h; sourceTree = ""; }; + 9AA91BF825CD598000BD5E8B /* inflate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = inflate.h; sourceTree = ""; }; + 9AA91BF925CD598000BD5E8B /* inftrees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inftrees.c; sourceTree = ""; }; + 9AA91BFA25CD598000BD5E8B /* uncompr.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = uncompr.c; sourceTree = ""; }; + 9AA91BFB25CD598000BD5E8B /* trees.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = trees.c; sourceTree = ""; }; + 9AA91BFC25CD598000BD5E8B /* crc32.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = crc32.h; sourceTree = ""; }; + 9AA91BFD25CD598000BD5E8B /* inffast.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = inffast.c; sourceTree = ""; }; + 9AA91BFE25CD598000BD5E8B /* adler32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = adler32.c; sourceTree = ""; }; + 9AA91BFF25CD598000BD5E8B /* zconf.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zconf.h; sourceTree = ""; }; + 9AA91C0025CD598000BD5E8B /* OcCompressionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcCompressionLib.inf; sourceTree = ""; }; + 9AA91C0225CD598000BD5E8B /* lzvn.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lzvn.h; sourceTree = ""; }; + 9AA91C0325CD598000BD5E8B /* lzvn.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lzvn.c; sourceTree = ""; }; + 9AA91C0525CD598000BD5E8B /* OcAppleKeyMapLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleKeyMapLib.inf; sourceTree = ""; }; + 9AA91C0625CD598000BD5E8B /* OcAppleKeyMapLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleKeyMapLib.c; sourceTree = ""; }; + 9AA91C0825CD598000BD5E8B /* DebugSmbios.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugSmbios.c; sourceTree = ""; }; + 9AA91C0925CD598000BD5E8B /* SmbiosInternal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosInternal.c; sourceTree = ""; }; + 9AA91C0A25CD598000BD5E8B /* DebugSmbios.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DebugSmbios.h; sourceTree = ""; }; + 9AA91C0B25CD598000BD5E8B /* OcSmbiosLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcSmbiosLib.inf; sourceTree = ""; }; + 9AA91C0C25CD598000BD5E8B /* SmbiosInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SmbiosInternal.h; sourceTree = ""; }; + 9AA91C0D25CD598000BD5E8B /* SmbiosDump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosDump.c; sourceTree = ""; }; + 9AA91C0E25CD598000BD5E8B /* SmbiosPatch.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = SmbiosPatch.c; sourceTree = ""; }; + 9AA91C1025CD598000BD5E8B /* OcStorageLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcStorageLib.inf; sourceTree = ""; }; + 9AA91C1125CD598000BD5E8B /* OcStorageLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcStorageLib.c; sourceTree = ""; }; + 9AA91C1325CD598000BD5E8B /* Database.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Database.c; sourceTree = ""; }; + 9AA91C1425CD598000BD5E8B /* ConfigRouting.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConfigRouting.c; sourceTree = ""; }; + 9AA91C1525CD598000BD5E8B /* Font.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Font.c; sourceTree = ""; }; + 9AA91C1625CD598000BD5E8B /* String.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = String.c; sourceTree = ""; }; + 9AA91C1725CD598000BD5E8B /* Image.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Image.c; sourceTree = ""; }; + 9AA91C1825CD598000BD5E8B /* OcHiiDatabaseLocalLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcHiiDatabaseLocalLib.inf; sourceTree = ""; }; + 9AA91C1925CD598000BD5E8B /* HiiDatabase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HiiDatabase.h; sourceTree = ""; }; + 9AA91C1A25CD598000BD5E8B /* ConfigKeywordHandler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ConfigKeywordHandler.c; sourceTree = ""; }; + 9AA91C1B25CD598000BD5E8B /* HiiDatabaseEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HiiDatabaseEntry.c; sourceTree = ""; }; + 9AA91C1C25CD598000BD5E8B /* ImageEx.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ImageEx.c; sourceTree = ""; }; + 9AA91C1E25CD598000BD5E8B /* OcAppleSecureBootLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleSecureBootLib.c; sourceTree = ""; }; + 9AA91C1F25CD598000BD5E8B /* OcAppleSecureBootLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleSecureBootLib.inf; sourceTree = ""; }; + 9AA91C2125CD598000BD5E8B /* Canary.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Canary.c; sourceTree = ""; }; + 9AA91C2225CD598000BD5E8B /* Ubsan.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Ubsan.h; sourceTree = ""; }; + 9AA91C2325CD598000BD5E8B /* UbsanPrintf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UbsanPrintf.c; sourceTree = ""; }; + 9AA91C2425CD598000BD5E8B /* OcGuardLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcGuardLib.inf; sourceTree = ""; }; + 9AA91C2525CD598000BD5E8B /* BitOverflow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BitOverflow.c; sourceTree = ""; }; + 9AA91C2625CD598000BD5E8B /* Alignment.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Alignment.c; sourceTree = ""; }; + 9AA91C2725CD598000BD5E8B /* TripleOverflow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = TripleOverflow.c; sourceTree = ""; }; + 9AA91C2825CD598000BD5E8B /* Ubsan.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Ubsan.c; sourceTree = ""; }; + 9AA91C2925CD598000BD5E8B /* NativeOverflow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = NativeOverflow.c; sourceTree = ""; }; + 9AA91C2B25CD598000BD5E8B /* OcAppleKeysLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleKeysLib.inf; sourceTree = ""; }; + 9AA91C2C25CD598000BD5E8B /* OcAppleKeysLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleKeysLib.c; sourceTree = ""; }; + 9AA91C2E25CD598000BD5E8B /* OcAppleBootPolicyLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleBootPolicyLib.c; sourceTree = ""; }; + 9AA91C2F25CD598000BD5E8B /* OcAppleBootPolicyLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleBootPolicyLib.inf; sourceTree = ""; }; + 9AA91C3125CD598000BD5E8B /* OcAppleUserInterfaceThemeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleUserInterfaceThemeLib.c; sourceTree = ""; }; + 9AA91C3225CD598000BD5E8B /* OcAppleUserInterfaceThemeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleUserInterfaceThemeLib.inf; sourceTree = ""; }; + 9AA91C3425CD598000BD5E8B /* OcAcpiLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAcpiLib.c; sourceTree = ""; }; + 9AA91C3525CD598000BD5E8B /* OcAcpiLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAcpiLib.inf; sourceTree = ""; }; + 9AA91C3625CD598000BD5E8B /* AcpiDump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AcpiDump.c; sourceTree = ""; }; + 9AA91C3925CD598000BD5E8B /* AppleHid.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = AppleHid.txt; sourceTree = ""; }; + 9AA91C3A25CD598000BD5E8B /* AIKSource.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIKSource.h; sourceTree = ""; }; + 9AA91C3B25CD598000BD5E8B /* AIK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIK.h; sourceTree = ""; }; + 9AA91C3C25CD598000BD5E8B /* AIKTarget.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKTarget.c; sourceTree = ""; }; + 9AA91C3D25CD598000BD5E8B /* AIKShim.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKShim.c; sourceTree = ""; }; + 9AA91C3E25CD598000BD5E8B /* AIKTranslate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIKTranslate.h; sourceTree = ""; }; + 9AA91C3F25CD598000BD5E8B /* AIKData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIKData.h; sourceTree = ""; }; + 9AA91C4025CD598000BD5E8B /* AIKMap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKMap.c; sourceTree = ""; }; + 9AA91C4125CD598000BD5E8B /* AIK.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIK.c; sourceTree = ""; }; + 9AA91C4225CD598000BD5E8B /* AIKSource.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKSource.c; sourceTree = ""; }; + 9AA91C4325CD598000BD5E8B /* AIKTranslate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKTranslate.c; sourceTree = ""; }; + 9AA91C4425CD598000BD5E8B /* AIKTarget.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIKTarget.h; sourceTree = ""; }; + 9AA91C4525CD598000BD5E8B /* AIKShim.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIKShim.h; sourceTree = ""; }; + 9AA91C4625CD598000BD5E8B /* AIKData.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIKData.c; sourceTree = ""; }; + 9AA91C4725CD598000BD5E8B /* OcInputLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcInputLib.inf; sourceTree = ""; }; + 9AA91C4925CD598000BD5E8B /* AIT.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIT.c; sourceTree = ""; }; + 9AA91C4B25CD598000BD5E8B /* AIM.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AIM.c; sourceTree = ""; }; + 9AA91C4C25CD598000BD5E8B /* AIM.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AIM.h; sourceTree = ""; }; + 9AA91C4E25CD598000BD5E8B /* OcFirmwarePasswordLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcFirmwarePasswordLib.c; sourceTree = ""; }; + 9AA91C4F25CD598000BD5E8B /* AppleFwPasswordInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleFwPasswordInternal.h; sourceTree = ""; }; + 9AA91C5025CD598000BD5E8B /* OcFirmwarePasswordLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcFirmwarePasswordLib.inf; sourceTree = ""; }; + 9AA91C5225CD598000BD5E8B /* OcAppleDiskImageLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleDiskImageLib.c; sourceTree = ""; }; + 9AA91C5325CD598000BD5E8B /* OcAppleDiskImageLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleDiskImageLibInternal.h; sourceTree = ""; }; + 9AA91C5425CD598000BD5E8B /* OcAppleDiskImageLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleDiskImageLib.inf; sourceTree = ""; }; + 9AA91C5525CD598000BD5E8B /* OcAppleDiskImageBlockIo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleDiskImageBlockIo.c; sourceTree = ""; }; + 9AA91C5625CD598000BD5E8B /* OcAppleDiskImageLibInternal.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleDiskImageLibInternal.c; sourceTree = ""; }; + 9AA91C5925CD598000BD5E8B /* RngDelay.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RngDelay.nasm; sourceTree = ""; }; + 9AA91C5A25CD598000BD5E8B /* OcRngLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcRngLib.c; sourceTree = ""; }; + 9AA91C5C25CD598000BD5E8B /* RngDelay.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = RngDelay.nasm; sourceTree = ""; }; + 9AA91C5D25CD598000BD5E8B /* OcRngLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcRngLib.inf; sourceTree = ""; }; + 9AA91C5E25CD598000BD5E8B /* OcRngInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcRngInternals.h; sourceTree = ""; }; + 9AA91C6025CD598000BD5E8B /* OcHdaDevicesLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcHdaDevicesLib.c; sourceTree = ""; }; + 9AA91C6125CD598000BD5E8B /* OcHdaDevicesLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcHdaDevicesLib.inf; sourceTree = ""; }; + 9AA91C6225CD598000BD5E8B /* OcHdaDevicesInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcHdaDevicesInternal.h; sourceTree = ""; }; + 9AA91C6425CD598000BD5E8B /* OcBootServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcBootServicesTableLib.c; sourceTree = ""; }; + 9AA91C6525CD598000BD5E8B /* UefiBootServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = UefiBootServicesTableLib.inf; sourceTree = ""; }; + 9AA91C6625CD598000BD5E8B /* OcBootServicesTableLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcBootServicesTableLib.inf; sourceTree = ""; }; + 9AA91C6725CD598000BD5E8B /* UefiBootServicesTableLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UefiBootServicesTableLib.c; sourceTree = ""; }; + 9AA91C6925CD598000BD5E8B /* X86TimerLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = X86TimerLib.c; sourceTree = ""; }; + 9AA91C6A25CD598000BD5E8B /* DuetTimerLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = DuetTimerLib.inf; sourceTree = ""; }; + 9AA91C6C25CD598000BD5E8B /* CustomSlide.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CustomSlide.c; sourceTree = ""; }; + 9AA91C6E25CD598000BD5E8B /* ContextSwitchSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ContextSwitchSupport.c; sourceTree = ""; }; + 9AA91C6F25CD598000BD5E8B /* ContextSwitch.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = ContextSwitch.nasm; sourceTree = ""; }; + 9AA91C7025CD598000BD5E8B /* ContextSwitch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextSwitch.h; sourceTree = ""; }; + 9AA91C7125CD598000BD5E8B /* BootCompatInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootCompatInternal.h; sourceTree = ""; }; + 9AA91C7225CD598000BD5E8B /* ServiceOverrides.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ServiceOverrides.c; sourceTree = ""; }; + 9AA91C7425CD598000BD5E8B /* ContextSwitchSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ContextSwitchSupport.c; sourceTree = ""; }; + 9AA91C7525CD598000BD5E8B /* ContextSwitch.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ContextSwitch.h; sourceTree = ""; }; + 9AA91C7625CD598000BD5E8B /* KernelSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KernelSupport.c; sourceTree = ""; }; + 9AA91C7725CD598000BD5E8B /* OcAfterBootCompatLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAfterBootCompatLib.inf; sourceTree = ""; }; + 9AA91C7825CD598000BD5E8B /* OcAfterBootCompatLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAfterBootCompatLib.c; sourceTree = ""; }; + 9AA91C7A25CD598000BD5E8B /* OcFirmwareVolumeLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcFirmwareVolumeLib.inf; sourceTree = ""; }; + 9AA91C7B25CD598000BD5E8B /* OcFirmwareVolumeLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcFirmwareVolumeLib.c; sourceTree = ""; }; + 9AA91C7C25CD598000BD5E8B /* FvOnFv2Thunk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FvOnFv2Thunk.c; sourceTree = ""; }; + 9AA91C7D25CD598000BD5E8B /* OcFirmwareVolumeLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcFirmwareVolumeLibInternal.h; sourceTree = ""; }; + 9AA91C7F25CD598000BD5E8B /* OcDevicePathLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDevicePathLib.inf; sourceTree = ""; }; + 9AA91C8025CD598000BD5E8B /* ExpandDevicePath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ExpandDevicePath.c; sourceTree = ""; }; + 9AA91C8125CD598000BD5E8B /* OcDevicePathLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDevicePathLib.c; sourceTree = ""; }; + 9AA91C8325CD598000BD5E8B /* OcAppleLog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleLog.c; sourceTree = ""; }; + 9AA91C8425CD598000BD5E8B /* DebugHelp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugHelp.c; sourceTree = ""; }; + 9AA91C8525CD598000BD5E8B /* DebugPrint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugPrint.c; sourceTree = ""; }; + 9AA91C8625CD598000BD5E8B /* OcDebugLogLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDebugLogLib.inf; sourceTree = ""; }; + 9AA91C8725CD598000BD5E8B /* OcLog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcLog.c; sourceTree = ""; }; + 9AA91C8825CD598000BD5E8B /* OcLogInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcLogInternal.h; sourceTree = ""; }; + 9AA91C8925CD598000BD5E8B /* OcDebugLogLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDebugLogLib.c; sourceTree = ""; }; + 9AA91C8B25CD598000BD5E8B /* OcAudioGenBeep.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAudioGenBeep.c; sourceTree = ""; }; + 9AA91C8C25CD598000BD5E8B /* OcAudioLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAudioLib.inf; sourceTree = ""; }; + 9AA91C8D25CD598000BD5E8B /* OcAudio.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAudio.c; sourceTree = ""; }; + 9AA91C8E25CD598000BD5E8B /* OcAudioWave.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAudioWave.c; sourceTree = ""; }; + 9AA91C8F25CD598000BD5E8B /* OcAudioInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAudioInternal.h; sourceTree = ""; }; + 9AA91C9025CD598000BD5E8B /* OcAudioLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAudioLib.c; sourceTree = ""; }; + 9AA91C9125CD598000BD5E8B /* OcAudioVoiceOver.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAudioVoiceOver.c; sourceTree = ""; }; + 9AA91C9325CD598000BD5E8B /* VirtualDir.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualDir.c; sourceTree = ""; }; + 9AA91C9425CD598000BD5E8B /* VirtualFile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualFile.c; sourceTree = ""; }; + 9AA91C9525CD598000BD5E8B /* OcVirtualFsLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcVirtualFsLib.inf; sourceTree = ""; }; + 9AA91C9625CD598000BD5E8B /* VirtualVolume.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualVolume.c; sourceTree = ""; }; + 9AA91C9725CD598000BD5E8B /* VirtualFs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualFs.c; sourceTree = ""; }; + 9AA91C9825CD598000BD5E8B /* VirtualFsInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualFsInternal.h; sourceTree = ""; }; + 9AA91C9A25CD598000BD5E8B /* PrelinkedKext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrelinkedKext.c; sourceTree = ""; }; + 9AA91C9B25CD598000BD5E8B /* KxldState.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KxldState.c; sourceTree = ""; }; + 9AA91C9C25CD598000BD5E8B /* PrelinkedContext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrelinkedContext.c; sourceTree = ""; }; + 9AA91C9D25CD598000BD5E8B /* Link.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Link.c; sourceTree = ""; }; + 9AA91C9E25CD598000BD5E8B /* OcAppleKernelLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleKernelLib.inf; sourceTree = ""; }; + 9AA91C9F25CD598000BD5E8B /* KextPatcher.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KextPatcher.c; sourceTree = ""; }; + 9AA91CA025CD598000BD5E8B /* CommonPatches.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CommonPatches.c; sourceTree = ""; }; + 9AA91CA125CD598000BD5E8B /* KernelVersion.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KernelVersion.c; sourceTree = ""; }; + 9AA91CA225CD598000BD5E8B /* MkextInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MkextInternal.h; sourceTree = ""; }; + 9AA91CA325CD598000BD5E8B /* CachelessContext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CachelessContext.c; sourceTree = ""; }; + 9AA91CA425CD598000BD5E8B /* Vtables.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Vtables.c; sourceTree = ""; }; + 9AA91CA525CD598000BD5E8B /* KernelReader.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KernelReader.c; sourceTree = ""; }; + 9AA91CA625CD598000BD5E8B /* KernelCollection.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KernelCollection.c; sourceTree = ""; }; + 9AA91CA725CD598000BD5E8B /* MkextContext.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MkextContext.c; sourceTree = ""; }; + 9AA91CA825CD598000BD5E8B /* PrelinkedInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrelinkedInternal.h; sourceTree = ""; }; + 9AA91CA925CD598000BD5E8B /* CachelessInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CachelessInternal.h; sourceTree = ""; }; + 9AA91CAB25CD598000BD5E8B /* OcPeCoffLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcPeCoffLib.inf; sourceTree = ""; }; + 9AA91CAC25CD598000BD5E8B /* OcPeCoffLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcPeCoffLib.c; sourceTree = ""; }; + 9AA91CAE25CD598000BD5E8B /* OpenFile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenFile.c; sourceTree = ""; }; + 9AA91CAF25CD598000BD5E8B /* FsConnectQuirk.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FsConnectQuirk.c; sourceTree = ""; }; + 9AA91CB025CD598000BD5E8B /* GptPartitionEntry.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GptPartitionEntry.c; sourceTree = ""; }; + 9AA91CB125CD598000BD5E8B /* ReadFile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ReadFile.c; sourceTree = ""; }; + 9AA91CB225CD598000BD5E8B /* FirmwareFile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FirmwareFile.c; sourceTree = ""; }; + 9AA91CB325CD598000BD5E8B /* GetVolumeLabel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GetVolumeLabel.c; sourceTree = ""; }; + 9AA91CB425CD598000BD5E8B /* FileProtocol.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileProtocol.c; sourceTree = ""; }; + 9AA91CB525CD598000BD5E8B /* GetFileInfo.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GetFileInfo.c; sourceTree = ""; }; + 9AA91CB625CD598000BD5E8B /* LocateFileSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LocateFileSystem.c; sourceTree = ""; }; + 9AA91CB725CD598000BD5E8B /* OcFileLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcFileLib.inf; sourceTree = ""; }; + 9AA91CB925CD598000BD5E8B /* OcCpuInternals.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcCpuInternals.h; sourceTree = ""; }; + 9AA91CBB25CD598000BD5E8B /* Microcode.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Microcode.nasm; sourceTree = ""; }; + 9AA91CBC25CD598000BD5E8B /* Atomic.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Atomic.nasm; sourceTree = ""; }; + 9AA91CBD25CD598000BD5E8B /* FrequencyDetect.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FrequencyDetect.c; sourceTree = ""; }; + 9AA91CBE25CD598000BD5E8B /* OcCpuLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcCpuLib.inf; sourceTree = ""; }; + 9AA91CBF25CD598000BD5E8B /* AppleCpuSupport.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleCpuSupport.c; sourceTree = ""; }; + 9AA91CC025CD598000BD5E8B /* OcCpuLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcCpuLib.c; sourceTree = ""; }; + 9AA91CC225CD598000BD5E8B /* Microcode.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Microcode.nasm; sourceTree = ""; }; + 9AA91CC325CD598000BD5E8B /* Atomic.nasm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.nasm; path = Atomic.nasm; sourceTree = ""; }; + 9AA91CC525CD598000BD5E8B /* OcConfigurationLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcConfigurationLib.inf; sourceTree = ""; }; + 9AA91CC625CD598000BD5E8B /* CheckSchema.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = CheckSchema.py; sourceTree = ""; }; + 9AA91CC725CD598000BD5E8B /* OcConfigurationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcConfigurationLib.c; sourceTree = ""; }; + 9AA91CC925CD598000BD5E8B /* OcDriverConnectionLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDriverConnectionLib.c; sourceTree = ""; }; + 9AA91CCA25CD598000BD5E8B /* OcDriverConnectionLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDriverConnectionLib.inf; sourceTree = ""; }; + 9AA91CCC25CD598000BD5E8B /* OcAppleLog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleLog.c; sourceTree = ""; }; + 9AA91CCD25CD598000BD5E8B /* DebugHelp.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugHelp.c; sourceTree = ""; }; + 9AA91CCE25CD598000BD5E8B /* DebugPrint.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugPrint.c; sourceTree = ""; }; + 9AA91CCF25CD598000BD5E8B /* OcLog.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcLog.c; sourceTree = ""; }; + 9AA91CD025CD598000BD5E8B /* OcDebugLogLibOc2Clover.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDebugLogLibOc2Clover.inf; sourceTree = ""; }; + 9AA91CD225CD598000BD5E8B /* OcXmlLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcXmlLib.c; sourceTree = ""; }; + 9AA91CD325CD598000BD5E8B /* OcXmlLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcXmlLib.inf; sourceTree = ""; }; + 9AA91CD525CD598000BD5E8B /* OcDevicePropertyLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcDevicePropertyLib.inf; sourceTree = ""; }; + 9AA91CD625CD598000BD5E8B /* OcDevicePropertyLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDevicePropertyLib.c; sourceTree = ""; }; + 9AA91CD825CD598000BD5E8B /* OcOSInfoLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcOSInfoLib.c; sourceTree = ""; }; + 9AA91CD925CD598000BD5E8B /* OcOSInfoLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcOSInfoLib.inf; sourceTree = ""; }; + 9AA91CDB25CD598000BD5E8B /* OcTemplateLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcTemplateLib.inf; sourceTree = ""; }; + 9AA91CDC25CD598000BD5E8B /* OcTemplateLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcTemplateLib.c; sourceTree = ""; }; + 9AA91CDE25CD598000BD5E8B /* OcCompilerIntrinsicsLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcCompilerIntrinsicsLib.c; sourceTree = ""; }; + 9AA91CDF25CD598000BD5E8B /* OcCompilerIntrinsicsLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcCompilerIntrinsicsLib.inf; sourceTree = ""; }; + 9AA91CE025CD598000BD5E8B /* MsvcMath32.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MsvcMath32.c; sourceTree = ""; }; + 9AA91CE225CD598000BD5E8B /* MemoryMap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryMap.c; sourceTree = ""; }; + 9AA91CE325CD598000BD5E8B /* MemoryAttributes.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAttributes.c; sourceTree = ""; }; + 9AA91CE425CD598000BD5E8B /* VirtualMemory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VirtualMemory.c; sourceTree = ""; }; + 9AA91CE525CD598000BD5E8B /* LegacyRegionLock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyRegionLock.c; sourceTree = ""; }; + 9AA91CE625CD598000BD5E8B /* LegacyRegionUnLock.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = LegacyRegionUnLock.c; sourceTree = ""; }; + 9AA91CE725CD598000BD5E8B /* MemoryDebug.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryDebug.c; sourceTree = ""; }; + 9AA91CE825CD598000BD5E8B /* MemoryAlloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAlloc.c; sourceTree = ""; }; + 9AA91CE925CD598000BD5E8B /* OcMemoryLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcMemoryLib.inf; sourceTree = ""; }; + 9AA91CEA25CD598000BD5E8B /* UmmMalloc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UmmMalloc.c; sourceTree = ""; }; + 9AA91CEC25CD598000BD5E8B /* OcAppleRamDiskLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcAppleRamDiskLib.inf; sourceTree = ""; }; + 9AA91CED25CD598000BD5E8B /* OcAppleRamDiskLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleRamDiskLib.c; sourceTree = ""; }; + 9AA91CEF25CD598000BD5E8B /* OcSmcLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcSmcLib.c; sourceTree = ""; }; + 9AA91CF025CD598000BD5E8B /* OcSmcLib.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OcSmcLib.inf; sourceTree = ""; }; + 9AA91CF125CD598000BD5E8B /* OcSmcLibInternal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcSmcLibInternal.h; sourceTree = ""; }; + 9AA91CF325CD598000BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91CF525CD598000BD5E8B /* GlobalVar.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GlobalVar.h; sourceTree = ""; }; + 9AA91CF625CD598000BD5E8B /* File.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = File.h; sourceTree = ""; }; + 9AA91CF725CD598000BD5E8B /* Pcd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Pcd.h; sourceTree = ""; }; + 9AA91CF825CD598000BD5E8B /* BootServices.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BootServices.h; sourceTree = ""; }; + 9AA91CFA25CD598000BD5E8B /* Pcd.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Pcd.c; sourceTree = ""; }; + 9AA91CFB25CD598000BD5E8B /* UserMath.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UserMath.c; sourceTree = ""; }; + 9AA91CFC25CD598000BD5E8B /* BootServices.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootServices.c; sourceTree = ""; }; + 9AA91CFD25CD598000BD5E8B /* BaseMemoryLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseMemoryLib.c; sourceTree = ""; }; + 9AA91CFE25CD598000BD5E8B /* GlobalVar.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GlobalVar.c; sourceTree = ""; }; + 9AA91CFF25CD598000BD5E8B /* File.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = File.c; sourceTree = ""; }; + 9AA91D0025CD598000BD5E8B /* UserMisc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = UserMisc.c; sourceTree = ""; }; + 9AA91D0125CD598000BD5E8B /* OcDummy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcDummy.c; sourceTree = ""; }; + 9AA91D0325CD598000BD5E8B /* Configuration.tex */ = {isa = PBXFileReference; lastKnownFileType = text; path = Configuration.tex; sourceTree = ""; }; + 9AA91D0425CD598000BD5E8B /* BuildDocs.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = BuildDocs.tool; sourceTree = ""; }; + 9AA91D0625CD598000BD5E8B /* Errata.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Errata.pdf; sourceTree = ""; }; + 9AA91D0725CD598000BD5E8B /* Errata.tex */ = {isa = PBXFileReference; lastKnownFileType = text; path = Errata.tex; sourceTree = ""; }; + 9AA91D0925CD598000BD5E8B /* LogoApprox.svg */ = {isa = PBXFileReference; lastKnownFileType = text; path = LogoApprox.svg; sourceTree = ""; }; + 9AA91D0A25CD598000BD5E8B /* OpenCore_with_text_Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = OpenCore_with_text_Small.png; sourceTree = ""; }; + 9AA91D0B25CD598000BD5E8B /* OpenCore_with_text_Large.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = OpenCore_with_text_Large.png; sourceTree = ""; }; + 9AA91D0C25CD598000BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D0D25CD598000BD5E8B /* Logo.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Logo.pdf; sourceTree = ""; }; + 9AA91D0E25CD598000BD5E8B /* Logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Logo.png; sourceTree = ""; }; + 9AA91D0F25CD598000BD5E8B /* Logo.sketch */ = {isa = PBXFileReference; lastKnownFileType = file; path = Logo.sketch; sourceTree = ""; }; + 9AA91D1025CD598000BD5E8B /* Configuration.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Configuration.pdf; sourceTree = ""; }; + 9AA91D1225CD598000BD5E8B /* SSDT-RTC0-RANGE.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-RTC0-RANGE.dsl"; sourceTree = ""; }; + 9AA91D1325CD598000BD5E8B /* SSDT-AWAC.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-AWAC.dsl"; sourceTree = ""; }; + 9AA91D1425CD598000BD5E8B /* SSDT-RTC0.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-RTC0.dsl"; sourceTree = ""; }; + 9AA91D1525CD598000BD5E8B /* SSDT-IMEI.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-IMEI.dsl"; sourceTree = ""; }; + 9AA91D1625CD598000BD5E8B /* SSDT-EC.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-EC.dsl"; sourceTree = ""; }; + 9AA91D1725CD598000BD5E8B /* SSDT-ALS0.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-ALS0.dsl"; sourceTree = ""; }; + 9AA91D1825CD598000BD5E8B /* SSDT-BRG0.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-BRG0.dsl"; sourceTree = ""; }; + 9AA91D1925CD598000BD5E8B /* SSDT-PMC.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-PMC.dsl"; sourceTree = ""; }; + 9AA91D1A25CD598000BD5E8B /* SSDT-SBUS-MCHC.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-SBUS-MCHC.dsl"; sourceTree = ""; }; + 9AA91D1B25CD598000BD5E8B /* SSDT-EC-USBX.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-EC-USBX.dsl"; sourceTree = ""; }; + 9AA91D1C25CD598000BD5E8B /* SSDT-EHCx_OFF.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-EHCx_OFF.dsl"; sourceTree = ""; }; + 9AA91D1D25CD598000BD5E8B /* SSDT-PLUG.dsl */ = {isa = PBXFileReference; lastKnownFileType = text; path = "SSDT-PLUG.dsl"; sourceTree = ""; }; + 9AA91D1E25CD598000BD5E8B /* SampleCustom.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = SampleCustom.plist; sourceTree = ""; }; + 9AA91D1F25CD598000BD5E8B /* Kexts.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = Kexts.md; sourceTree = ""; }; + 9AA91D2025CD598000BD5E8B /* Libraries.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = Libraries.md; sourceTree = ""; }; + 9AA91D2225CD598000BD5E8B /* Differences.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = Differences.pdf; sourceTree = ""; }; + 9AA91D2325CD598000BD5E8B /* PreviousConfiguration.tex */ = {isa = PBXFileReference; lastKnownFileType = text; path = PreviousConfiguration.tex; sourceTree = ""; }; + 9AA91D2425CD598000BD5E8B /* Differences.tex */ = {isa = PBXFileReference; lastKnownFileType = text; path = Differences.tex; sourceTree = ""; }; + 9AA91D2525CD598000BD5E8B /* Sample.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Sample.plist; sourceTree = ""; }; + 9AA91D2625CD598000BD5E8B /* OpenDuetPkg.fdf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenDuetPkg.fdf; sourceTree = ""; }; + 9AA91D2725CD598000BD5E8B /* OpenCorePkg.dec */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenCorePkg.dec; sourceTree = ""; }; + 9AA91D2825CD598000BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D2B25CD598000BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D2C25CD598000BD5E8B /* Smbios.bin */ = {isa = PBXFileReference; lastKnownFileType = archive.macbinary; path = Smbios.bin; sourceTree = ""; }; + 9AA91D2D25CD598000BD5E8B /* Smbios.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Smbios.c; sourceTree = ""; }; + 9AA91D2F25CD598000BD5E8B /* EfiLdrImage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EfiLdrImage.c; sourceTree = ""; }; + 9AA91D3025CD598000BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D3225CD598000BD5E8B /* EfiLdrImage */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = EfiLdrImage; sourceTree = ""; }; + 9AA91D3325CD598000BD5E8B /* GenPage */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = GenPage; sourceTree = ""; }; + 9AA91D3425CD598000BD5E8B /* GenPage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GenPage.c; sourceTree = ""; }; + 9AA91D3625CD598000BD5E8B /* EfiLdrImage */ = {isa = PBXFileReference; lastKnownFileType = file; path = EfiLdrImage; sourceTree = ""; }; + 9AA91D3725CD598000BD5E8B /* GenPage */ = {isa = PBXFileReference; lastKnownFileType = file; path = GenPage; sourceTree = ""; }; + 9AA91D3825CD598000BD5E8B /* VirtualMemory.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = VirtualMemory.h; sourceTree = ""; }; + 9AA91D3A25CD598000BD5E8B /* EfiLdrImage.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = EfiLdrImage.exe; sourceTree = ""; }; + 9AA91D3B25CD598000BD5E8B /* GenPage.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = GenPage.exe; sourceTree = ""; }; + 9AA91D3D25CD598000BD5E8B /* nvram.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = nvram.exe; sourceTree = ""; }; + 9AA91D3E25CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D3F25CD598100BD5E8B /* nvram.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = nvram.c; sourceTree = ""; }; + 9AA91D4125CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D4225CD598100BD5E8B /* Bmf.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Bmf.c; sourceTree = ""; }; + 9AA91D4425CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D4525CD598100BD5E8B /* disklabel.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = disklabel.c; sourceTree = ""; }; + 9AA91D4725CD598100BD5E8B /* AppleKeyboardLayouts.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = AppleKeyboardLayouts.txt; sourceTree = ""; }; + 9AA91D4825CD598100BD5E8B /* AppleKeyboardLayouts.bt */ = {isa = PBXFileReference; lastKnownFileType = text; path = AppleKeyboardLayouts.bt; sourceTree = ""; }; + 9AA91D4A25CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D4B25CD598100BD5E8B /* Img4.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Img4.c; sourceTree = ""; }; + 9AA91D4D25CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D4E25CD598100BD5E8B /* HelloWorld.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HelloWorld.c; sourceTree = ""; }; + 9AA91D5025CD598100BD5E8B /* MacEfiUnpack.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = MacEfiUnpack.py; sourceTree = ""; }; + 9AA91D5225CD598100BD5E8B /* boot0 */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot0; sourceTree = ""; }; + 9AA91D5325CD598100BD5E8B /* boot1f32 */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot1f32; sourceTree = ""; }; + 9AA91D5425CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D5525CD598100BD5E8B /* QemuBuild.command */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = QemuBuild.command; sourceTree = ""; }; + 9AA91D5625CD598100BD5E8B /* BootInstall.command */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = BootInstall.command; sourceTree = ""; }; + 9AA91D5825CD598100BD5E8B /* macserial.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = macserial.h; sourceTree = ""; }; + 9AA91D5925CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D5A25CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D5B25CD598100BD5E8B /* modelinfo_autogen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = modelinfo_autogen.h; sourceTree = ""; }; + 9AA91D5C25CD598100BD5E8B /* modelinfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = modelinfo.h; sourceTree = ""; }; + 9AA91D5D25CD598100BD5E8B /* macserial.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = macserial.c; sourceTree = ""; }; + 9AA91D5E25CD598100BD5E8B /* FORMAT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = FORMAT.md; sourceTree = ""; }; + 9AA91D5F25CD598100BD5E8B /* cccdump.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = cccdump.py; sourceTree = ""; }; + 9AA91D6125CD598100BD5E8B /* LICENSE */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + 9AA91D6225CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D6325CD598100BD5E8B /* RsaTool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RsaTool.c; sourceTree = ""; }; + 9AA91D6425CD598100BD5E8B /* openssl_compat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = openssl_compat.h; sourceTree = ""; }; + 9AA91D6625CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D6725CD598100BD5E8B /* PeCoff.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PeCoff.c; sourceTree = ""; }; + 9AA91D6925CD598100BD5E8B /* create_vault.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = create_vault.sh; sourceTree = ""; }; + 9AA91D6A25CD598100BD5E8B /* sign.command */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = sign.command; sourceTree = ""; }; + 9AA91D6B25CD598100BD5E8B /* RsaTool */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = RsaTool; sourceTree = ""; }; + 9AA91D6D25CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D6E25CD598100BD5E8B /* FileDummy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = FileDummy.c; sourceTree = ""; }; + 9AA91D6F25CD598100BD5E8B /* DiskImage.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DiskImage.c; sourceTree = ""; }; + 9AA91D7125CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D7225CD598100BD5E8B /* RsaPreprocess.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RsaPreprocess.c; sourceTree = ""; }; + 9AA91D7425CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D7525CD598100BD5E8B /* icnspack.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = icnspack.c; sourceTree = ""; }; + 9AA91D7725CD598100BD5E8B /* kpdescribe.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = kpdescribe.sh; sourceTree = ""; }; + 9AA91D7925CD598100BD5E8B /* AppleEfiFatBinary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleEfiFatBinary.h; sourceTree = ""; }; + 9AA91D7A25CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D7B25CD598100BD5E8B /* AppleEfiBinary.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleEfiBinary.c; sourceTree = ""; }; + 9AA91D7C25CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D7E25CD598100BD5E8B /* boot_10.12.6.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.12.6.efi; sourceTree = ""; }; + 9AA91D7F25CD598100BD5E8B /* boot_10.7.5.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.7.5.efi; sourceTree = ""; }; + 9AA91D8025CD598100BD5E8B /* boot_10.10.5.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.10.5.efi; sourceTree = ""; }; + 9AA91D8125CD598100BD5E8B /* boot_10.14_0.18A389.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.14_0.18A389.efi; sourceTree = ""; }; + 9AA91D8225CD598100BD5E8B /* boot_10.13.6.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.13.6.efi; sourceTree = ""; }; + 9AA91D8325CD598100BD5E8B /* boot_10.14.0.18A371a.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.14.0.18A371a.efi; sourceTree = ""; }; + 9AA91D8425CD598100BD5E8B /* apfs.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = apfs.efi; sourceTree = ""; }; + 9AA91D8525CD598100BD5E8B /* boot_10.11.6.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.11.6.efi; sourceTree = ""; }; + 9AA91D8625CD598100BD5E8B /* apfs_10.15.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = apfs_10.15.efi; sourceTree = ""; }; + 9AA91D8725CD598100BD5E8B /* apfs_aligned_10.15.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = apfs_aligned_10.15.efi; sourceTree = ""; }; + 9AA91D8825CD598100BD5E8B /* boot_10.8.5.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.8.5.efi; sourceTree = ""; }; + 9AA91D8925CD598100BD5E8B /* boot_10.6.8.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.6.8.efi; sourceTree = ""; }; + 9AA91D8A25CD598100BD5E8B /* boot_10.4.11.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.4.11.efi; sourceTree = ""; }; + 9AA91D8B25CD598100BD5E8B /* boot_10.9.5.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.9.5.efi; sourceTree = ""; }; + 9AA91D8C25CD598100BD5E8B /* boot_10.5.8.efi */ = {isa = PBXFileReference; lastKnownFileType = file; path = boot_10.5.8.efi; sourceTree = ""; }; + 9AA91D8D25CD598100BD5E8B /* Edk2PeImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Edk2PeImage.h; sourceTree = ""; }; + 9AA91D8E25CD598100BD5E8B /* AppleEfiSignTool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AppleEfiSignTool.c; sourceTree = ""; }; + 9AA91D8F25CD598100BD5E8B /* AppleEfiPeImage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleEfiPeImage.h; sourceTree = ""; }; + 9AA91D9125CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D9225CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D9325CD598100BD5E8B /* EfiResTool.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = EfiResTool.c; sourceTree = ""; }; + 9AA91D9525CD598100BD5E8B /* Macho.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Macho.c; sourceTree = ""; }; + 9AA91D9625CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D9725CD598100BD5E8B /* kernel */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = kernel; sourceTree = ""; }; + 9AA91D9925CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91D9A25CD598100BD5E8B /* config.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = config.plist; sourceTree = ""; }; + 9AA91D9B25CD598100BD5E8B /* ocvalidate.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ocvalidate.c; sourceTree = ""; }; + 9AA91D9D25CD598100BD5E8B /* LogoutHook.command */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = LogoutHook.command; sourceTree = ""; }; + 9AA91D9E25CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91D9F25CD598100BD5E8B /* nvram.mojave */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = nvram.mojave; sourceTree = ""; }; + 9AA91DA125CD598100BD5E8B /* recovery_urls.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = recovery_urls.txt; sourceTree = ""; }; + 9AA91DA225CD598100BD5E8B /* boards.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = boards.json; sourceTree = ""; }; + 9AA91DA325CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91DA425CD598100BD5E8B /* macrecovery.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = macrecovery.py; sourceTree = ""; }; + 9AA91DA625CD598100BD5E8B /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = ""; }; + 9AA91DA725CD598100BD5E8B /* check_injection.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = check_injection.sh; sourceTree = ""; }; + 9AA91DA825CD598100BD5E8B /* KextInject.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KextInject.c; sourceTree = ""; }; + 9AA91DAC25CD598100BD5E8B /* OpenDuetPkg.dec */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenDuetPkg.dec; sourceTree = ""; }; + 9AA91DAD25CD598100BD5E8B /* .gitignore */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitignore; sourceTree = ""; }; + 9AA91DAE25CD598100BD5E8B /* build_duet.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = build_duet.tool; sourceTree = ""; }; + 9AA91DAF25CD598100BD5E8B /* .gitattributes */ = {isa = PBXFileReference; lastKnownFileType = text; path = .gitattributes; sourceTree = ""; }; + 9AA91DB025CD598100BD5E8B /* build_oc.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = build_oc.tool; sourceTree = ""; }; + 9AA91DB325CD598100BD5E8B /* HdaCodecDump.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = HdaCodecDump.inf; sourceTree = ""; }; + 9AA91DB425CD598100BD5E8B /* HdaCodecDump.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = HdaCodecDump.h; sourceTree = ""; }; + 9AA91DB525CD598100BD5E8B /* HdaCodecDump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = HdaCodecDump.c; sourceTree = ""; }; + 9AA91DB725CD598100BD5E8B /* VerifyMemOpt.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VerifyMemOpt.inf; sourceTree = ""; }; + 9AA91DB825CD598100BD5E8B /* VerifyMemOpt.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VerifyMemOpt.c; sourceTree = ""; }; + 9AA91DBA25CD598100BD5E8B /* BootKicker.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = BootKicker.inf; sourceTree = ""; }; + 9AA91DBB25CD598100BD5E8B /* BootKicker.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BootKicker.c; sourceTree = ""; }; + 9AA91DBD25CD598100BD5E8B /* Bootstrap.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = Bootstrap.inf; sourceTree = ""; }; + 9AA91DBE25CD598100BD5E8B /* Bootstrap.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = Bootstrap.c; sourceTree = ""; }; + 9AA91DC025CD598100BD5E8B /* KeyTester.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = KeyTester.inf; sourceTree = ""; }; + 9AA91DC125CD598100BD5E8B /* KeyTester.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = KeyTester.c; sourceTree = ""; }; + 9AA91DC325CD598100BD5E8B /* VerifyMsrE2.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = VerifyMsrE2.inf; sourceTree = ""; }; + 9AA91DC425CD598100BD5E8B /* VerifyMsrE2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = VerifyMsrE2.c; sourceTree = ""; }; + 9AA91DC625CD598100BD5E8B /* RtcRw.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = RtcRw.inf; sourceTree = ""; }; + 9AA91DC725CD598100BD5E8B /* RtcRw.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = RtcRw.c; sourceTree = ""; }; + 9AA91DC925CD598100BD5E8B /* GopStop.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = GopStop.inf; sourceTree = ""; }; + 9AA91DCA25CD598100BD5E8B /* GopStop.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GopStop.c; sourceTree = ""; }; + 9AA91DCB25CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91DCD25CD598100BD5E8B /* Step3.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Step3.png; sourceTree = ""; }; + 9AA91DCE25CD598100BD5E8B /* Step10.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Step10.png; sourceTree = ""; }; + 9AA91DD025CD598100BD5E8B /* ResetSystem.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ResetSystem.inf; sourceTree = ""; }; + 9AA91DD125CD598100BD5E8B /* ResetSystem.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ResetSystem.c; sourceTree = ""; }; + 9AA91DD325CD598100BD5E8B /* ChipTune.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = ChipTune.inf; sourceTree = ""; }; + 9AA91DD425CD598100BD5E8B /* ChipTune.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ChipTune.c; sourceTree = ""; }; + 9AA91DD625CD598100BD5E8B /* PavpProvision.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = PavpProvision.inf; sourceTree = ""; }; + 9AA91DD725CD598100BD5E8B /* PavpProvisionData.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PavpProvisionData.c; sourceTree = ""; }; + 9AA91DD825CD598100BD5E8B /* PavpProvision.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PavpProvision.c; sourceTree = ""; }; + 9AA91DDA25CD598100BD5E8B /* CleanNvram.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = CleanNvram.c; sourceTree = ""; }; + 9AA91DDB25CD598100BD5E8B /* CleanNvram.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = CleanNvram.inf; sourceTree = ""; }; + 9AA91DDD25CD598100BD5E8B /* OpenControl.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenControl.inf; sourceTree = ""; }; + 9AA91DDE25CD598100BD5E8B /* OpenControl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenControl.c; sourceTree = ""; }; + 9AA91DE025CD598100BD5E8B /* MmapDump.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = MmapDump.inf; sourceTree = ""; }; + 9AA91DE125CD598100BD5E8B /* MmapDump.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MmapDump.c; sourceTree = ""; }; + 9AA91DE225CD598100BD5E8B /* OpenCorePkg.dsc */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenCorePkg.dsc; sourceTree = ""; }; + 9AA91DE325CD598100BD5E8B /* Doxyfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Doxyfile; sourceTree = ""; }; + 9AA91DE425CD598100BD5E8B /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; }; + 9AA91DE525CD598100BD5E8B /* OpenDuetPkg.dsc */ = {isa = PBXFileReference; lastKnownFileType = text; path = OpenDuetPkg.dsc; sourceTree = ""; }; + 9AA91DE625CD598100BD5E8B /* OpenCoreFromClover.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenCoreFromClover.h; sourceTree = ""; }; + 9AA91DE725CD598100BD5E8B /* .travis.yml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = .travis.yml; sourceTree = ""; }; + 9AA91DE825CD598100BD5E8B /* xcbuild.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = xcbuild.tool; sourceTree = ""; }; + 9AA91DED25CD598100BD5E8B /* GdbSyms.dll */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o"; path = GdbSyms.dll; sourceTree = ""; }; + 9AA91DEF25CD598100BD5E8B /* GdbSyms.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdbSyms.dll; sourceTree = ""; }; + 9AA91DF025CD598100BD5E8B /* GdbSyms.pdb */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdbSyms.pdb; sourceTree = ""; }; + 9AA91DF225CD598100BD5E8B /* GdbSyms.debug */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdbSyms.debug; sourceTree = ""; }; + 9AA91DF425CD598100BD5E8B /* GdbSyms.debug */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdbSyms.debug; sourceTree = ""; }; + 9AA91DF625CD598100BD5E8B /* GdbSyms.dll */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o"; path = GdbSyms.dll; sourceTree = ""; }; + 9AA91DF825CD598100BD5E8B /* GdbSyms.debug */ = {isa = PBXFileReference; lastKnownFileType = file; path = GdbSyms.debug; sourceTree = ""; }; + 9AA91DF925CD598100BD5E8B /* GdbSyms.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = GdbSyms.c; sourceTree = ""; }; + 9AA91DFA25CD598100BD5E8B /* GdbSyms.inf */ = {isa = PBXFileReference; lastKnownFileType = text; path = GdbSyms.inf; sourceTree = ""; }; + 9AA91DFB25CD598100BD5E8B /* ClangDwarf.patch */ = {isa = PBXFileReference; lastKnownFileType = text; path = ClangDwarf.patch; sourceTree = ""; }; + 9AA91DFC25CD598100BD5E8B /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + 9AA91DFE25CD598100BD5E8B /* common_uefi.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = common_uefi.py; sourceTree = ""; }; + 9AA91DFF25CD598100BD5E8B /* lldb_uefi.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = lldb_uefi.py; sourceTree = ""; }; + 9AA91E0025CD598100BD5E8B /* common_uefi.pyc */ = {isa = PBXFileReference; lastKnownFileType = file; path = common_uefi.pyc; sourceTree = ""; }; + 9AA91E0125CD598100BD5E8B /* x86_64_target_definition.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = x86_64_target_definition.py; sourceTree = ""; }; + 9AA91E0225CD598100BD5E8B /* gdb_uefi.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; path = gdb_uefi.py; sourceTree = ""; }; + 9AA91E0325CD598100BD5E8B /* efidebug.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = efidebug.tool; sourceTree = ""; }; + 9AA91E2625CD59F100BD5E8B /* printf_lite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = printf_lite.c; sourceTree = ""; }; + 9AA91E2825CD59F100BD5E8B /* printf_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = printf_lite.h; sourceTree = ""; }; + 9AA9239125CD5B1900BD5E8B /* memvendors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memvendors.h; sourceTree = ""; }; + 9AA9239225CD5B1A00BD5E8B /* BasicIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BasicIO.h; sourceTree = ""; }; + 9AA9239525CD5B1A00BD5E8B /* BdsConnect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BdsConnect.cpp; sourceTree = ""; }; + 9AA9239625CD5B1B00BD5E8B /* Edid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Edid.cpp; sourceTree = ""; }; + 9AA9239725CD5B1B00BD5E8B /* Console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Console.h; sourceTree = ""; }; + 9AA9239825CD5B1B00BD5E8B /* LegacyBiosThunk.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyBiosThunk.cpp; sourceTree = ""; }; + 9AA9239925CD5B1B00BD5E8B /* PlatformDriverOverride.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PlatformDriverOverride.cpp; sourceTree = ""; }; + 9AA9239A25CD5B1C00BD5E8B /* smbios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = smbios.cpp; sourceTree = ""; }; + 9AA9239B25CD5B1C00BD5E8B /* spd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spd.cpp; sourceTree = ""; }; + 9AA923B525CD5B1C00BD5E8B /* usbfix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = usbfix.cpp; sourceTree = ""; }; + 9AA923B625CD5B1D00BD5E8B /* smbios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smbios.h; sourceTree = ""; }; + 9AA923B725CD5B1D00BD5E8B /* Edid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Edid.h; sourceTree = ""; }; + 9AA923B825CD5B1D00BD5E8B /* guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guid.h; sourceTree = ""; }; + 9AA923BA25CD5B1E00BD5E8B /* hda.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hda.h; sourceTree = ""; }; + 9AA923BB25CD5B1E00BD5E8B /* HdaCodecDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HdaCodecDump.cpp; sourceTree = ""; }; + 9AA923BC25CD5B1E00BD5E8B /* Nvram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Nvram.h; sourceTree = ""; }; + 9AA923BD25CD5B1E00BD5E8B /* Events.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Events.h; sourceTree = ""; }; + 9AA923BE25CD5B1E00BD5E8B /* Hibernate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Hibernate.h; sourceTree = ""; }; + 9AA923C025CD5B1F00BD5E8B /* sse3_5_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sse3_5_patcher.h; sourceTree = ""; }; + 9AA923C125CD5B1F00BD5E8B /* ati.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ati.h; sourceTree = ""; }; + 9AA923C325CD5B1F00BD5E8B /* guid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guid.cpp; sourceTree = ""; }; + 9AA923C425CD5B2000BD5E8B /* KextList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KextList.cpp; sourceTree = ""; }; + 9AA923C525CD5B2000BD5E8B /* nvidia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nvidia.h; sourceTree = ""; }; + 9AA923C625CD5B2000BD5E8B /* device_inject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = device_inject.h; sourceTree = ""; }; + 9AA923C825CD5B2100BD5E8B /* kext_patcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kext_patcher.cpp; sourceTree = ""; }; + 9AA923C925CD5B2100BD5E8B /* StateGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StateGenerator.h; sourceTree = ""; }; + 9AA923CA25CD5B2100BD5E8B /* AmlGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AmlGenerator.h; sourceTree = ""; }; + 9AA923CB25CD5B2100BD5E8B /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = ""; }; + 9AA923CC25CD5B2200BD5E8B /* APFS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APFS.h; sourceTree = ""; }; + 9AA923CD25CD5B2200BD5E8B /* kernel_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kernel_patcher.h; sourceTree = ""; }; + 9AA923CE25CD5B2200BD5E8B /* platformdata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = platformdata.cpp; sourceTree = ""; }; + 9AA923CF25CD5B2200BD5E8B /* HdaCodecDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HdaCodecDump.h; sourceTree = ""; }; + 9AA923D025CD5B2300BD5E8B /* sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sound.cpp; sourceTree = ""; }; + 9AA923D125CD5B2300BD5E8B /* Volumes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Volumes.cpp; sourceTree = ""; }; + 9AA923D225CD5B2300BD5E8B /* BootOptions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BootOptions.cpp; sourceTree = ""; }; + 9AA923D325CD5B2300BD5E8B /* Volumes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Volumes.h; sourceTree = ""; }; + 9AA923D425CD5B2400BD5E8B /* Nvram.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Nvram.cpp; sourceTree = ""; }; + 9AA923D525CD5B2400BD5E8B /* PlatformDriverOverride.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformDriverOverride.h; sourceTree = ""; }; + 9AA923D625CD5B2400BD5E8B /* LegacyBoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyBoot.cpp; sourceTree = ""; }; + 9AA923D725CD5B2400BD5E8B /* kext_inject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kext_inject.h; sourceTree = ""; }; + 9AA923D825CD5B2500BD5E8B /* DataHubCpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataHubCpu.cpp; sourceTree = ""; }; + 9AA923D925CD5B2500BD5E8B /* Hibernate.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Hibernate.cpp; sourceTree = ""; }; + 9AA923DA25CD5B2500BD5E8B /* APFS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = APFS.cpp; sourceTree = ""; }; + 9AA923DB25CD5B2500BD5E8B /* KextList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KextList.h; sourceTree = ""; }; + 9AA923DC25CD5B2600BD5E8B /* DataHubCpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataHubCpu.h; sourceTree = ""; }; + 9AA923DD25CD5B2600BD5E8B /* gma.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gma.h; sourceTree = ""; }; + 9AA923DE25CD5B2600BD5E8B /* BootOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootOptions.h; sourceTree = ""; }; + 9AA923DF25CD5B2600BD5E8B /* LegacyBiosThunk.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyBiosThunk.h; sourceTree = ""; }; + 9AA923E025CD5B2700BD5E8B /* nvidia.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = nvidia.cpp; sourceTree = ""; }; + 9AA923E125CD5B2700BD5E8B /* kext_inject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kext_inject.cpp; sourceTree = ""; }; + 9AA923E225CD5B2700BD5E8B /* platformdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platformdata.h; sourceTree = ""; }; + 9AA923E525CD5B2800BD5E8B /* StartupSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StartupSound.h; sourceTree = ""; }; + 9AA923F925CD5B2800BD5E8B /* usbfix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = usbfix.h; sourceTree = ""; }; + 9AA923FA25CD5B2900BD5E8B /* Injectors.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Injectors.cpp; sourceTree = ""; }; + 9AA923FB25CD5B2900BD5E8B /* AmlGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AmlGenerator.cpp; sourceTree = ""; }; + 9AA923FC25CD5B2900BD5E8B /* hda.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hda.cpp; sourceTree = ""; }; + 9AA923FD25CD5B2900BD5E8B /* Events.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Events.cpp; sourceTree = ""; }; + 9AA923FE25CD5B2A00BD5E8B /* cpu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cpu.cpp; sourceTree = ""; }; + 9AA923FF25CD5B2A00BD5E8B /* StartupSound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StartupSound.cpp; sourceTree = ""; }; + 9AA9240025CD5B2A00BD5E8B /* Console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Console.cpp; sourceTree = ""; }; + 9AA9240125CD5B2A00BD5E8B /* ati.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ati.cpp; sourceTree = ""; }; + 9AA9240225CD5B2B00BD5E8B /* gma.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gma.cpp; sourceTree = ""; }; + 9AA9240325CD5B2B00BD5E8B /* ati_reg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ati_reg.h; sourceTree = ""; }; + 9AA9240425CD5B2B00BD5E8B /* spd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spd.h; sourceTree = ""; }; + 9AA9240525CD5B2B00BD5E8B /* kernel_patcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kernel_patcher.cpp; sourceTree = ""; }; + 9AA9240625CD5B2B00BD5E8B /* FixBiosDsdt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FixBiosDsdt.cpp; sourceTree = ""; }; + 9AA9240725CD5B2C00BD5E8B /* device_inject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = device_inject.cpp; sourceTree = ""; }; + 9AA9240825CD5B2C00BD5E8B /* AcpiPatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AcpiPatcher.h; sourceTree = ""; }; + 9AA9240A25CD5B2C00BD5E8B /* boot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = boot.h; sourceTree = ""; }; + 9AA9240B25CD5B2C00BD5E8B /* KERNEL_AND_KEXT_PATCHES.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KERNEL_AND_KEXT_PATCHES.h; sourceTree = ""; }; + 9AA9240C25CD5B2D00BD5E8B /* LegacyBoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyBoot.h; sourceTree = ""; }; + 9AA9240D25CD5B2D00BD5E8B /* AcpiPatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AcpiPatcher.cpp; sourceTree = ""; }; + 9AA9240E25CD5B2D00BD5E8B /* Injectors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Injectors.h; sourceTree = ""; }; + 9AA9240F25CD5B2D00BD5E8B /* KERNEL_AND_KEXT_PATCHES.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = KERNEL_AND_KEXT_PATCHES.cpp; sourceTree = ""; }; + 9AA9241125CD5B2E00BD5E8B /* sse3_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sse3_patcher.h; sourceTree = ""; }; + 9AA9241225CD5B2E00BD5E8B /* StateGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StateGenerator.cpp; sourceTree = ""; }; + 9AA9251625CD74C700BD5E8B /* tool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = tool.h; sourceTree = ""; }; + 9AA9251725CD74C700BD5E8B /* secureboot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = secureboot.h; sourceTree = ""; }; + 9AA9251825CD74C800BD5E8B /* tool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = tool.cpp; sourceTree = ""; }; + 9AA9251925CD74C800BD5E8B /* entry_scan.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = entry_scan.h; sourceTree = ""; }; + 9AA9251A25CD74C800BD5E8B /* MSKEK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSKEK.h; sourceTree = ""; }; + 9AA9251B25CD74C800BD5E8B /* common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = common.h; sourceTree = ""; }; + 9AA9251C25CD74C800BD5E8B /* lockedgraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lockedgraphics.cpp; sourceTree = ""; }; + 9AA9251D25CD74C900BD5E8B /* securehash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = securehash.cpp; sourceTree = ""; }; + 9AA9251E25CD74C900BD5E8B /* legacy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = legacy.cpp; sourceTree = ""; }; + 9AA9251F25CD74C900BD5E8B /* bootscreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = bootscreen.cpp; sourceTree = ""; }; + 9AA9252025CD74C900BD5E8B /* MSPCADB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSPCADB.h; sourceTree = ""; }; + 9AA9252125CD74C900BD5E8B /* CloverDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloverDB.h; sourceTree = ""; }; + 9AA9252225CD74CA00BD5E8B /* bootscreen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bootscreen.h; sourceTree = ""; }; + 9AA9252325CD74CA00BD5E8B /* secureboot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = secureboot.cpp; sourceTree = ""; }; + 9AA9252425CD74CA00BD5E8B /* securemenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = securemenu.cpp; sourceTree = ""; }; + 9AA9252525CD74CA00BD5E8B /* MSUEFICADB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MSUEFICADB.h; sourceTree = ""; }; + 9AA9252625CD74CA00BD5E8B /* CloverKEK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloverKEK.h; sourceTree = ""; }; + 9AA9252725CD74CB00BD5E8B /* CanonicalDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CanonicalDB.h; sourceTree = ""; }; + 9AA9252825CD74CB00BD5E8B /* securebootkeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = securebootkeys.h; sourceTree = ""; }; + 9AA9252925CD74CB00BD5E8B /* securevars.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = securevars.cpp; sourceTree = ""; }; + 9AA9252A25CD74CB00BD5E8B /* common.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = common.cpp; sourceTree = ""; }; + 9AA9253425CD764800BD5E8B /* REFIT_MENU_SCREEN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = REFIT_MENU_SCREEN.h; sourceTree = ""; }; + 9AA9253625CD764800BD5E8B /* menu_items.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = menu_items.h; sourceTree = ""; }; + 9AA9253725CD764800BD5E8B /* menu_globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = menu_globals.h; sourceTree = ""; }; + 9AA9253825CD764800BD5E8B /* menu_items.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = menu_items.cpp; sourceTree = ""; }; + 9AA9253925CD764800BD5E8B /* REFIT_MENU_SCREEN.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = REFIT_MENU_SCREEN.cpp; sourceTree = ""; }; + 9AA9256125CD770A00BD5E8B /* egemb_icons_dark.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = egemb_icons_dark.cpp; sourceTree = ""; }; + 9AA9256225CD770B00BD5E8B /* text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = text.cpp; sourceTree = ""; }; + 9AA9256325CD770B00BD5E8B /* EfiFileLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EfiFileLib.h; sourceTree = ""; }; + 9AA9256425CD770B00BD5E8B /* VectorGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VectorGraphics.h; sourceTree = ""; }; + 9AA9256525CD770B00BD5E8B /* lodepng.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lodepng.h; sourceTree = ""; }; + 9AA9256625CD770C00BD5E8B /* libscreen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = libscreen.cpp; sourceTree = ""; }; + 9AA9256725CD770C00BD5E8B /* nanosvgrast.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = nanosvgrast.cpp; sourceTree = ""; }; + 9AA9256825CD770C00BD5E8B /* nanosvg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = nanosvg.cpp; sourceTree = ""; }; + 9AA9256925CD770C00BD5E8B /* image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = image.h; sourceTree = ""; }; + 9AA9256A25CD770D00BD5E8B /* libeg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libeg.h; sourceTree = ""; }; + 9AA9256B25CD770D00BD5E8B /* load_icns.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = load_icns.cpp; sourceTree = ""; }; + 9AA9256C25CD770D00BD5E8B /* ftol.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; path = ftol.asm; sourceTree = ""; }; + 9AA9256D25CD770D00BD5E8B /* scroll_images.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = scroll_images.cpp; sourceTree = ""; }; + 9AA9256E25CD770E00BD5E8B /* libegint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libegint.h; sourceTree = ""; }; + 9AA9256F25CD770E00BD5E8B /* image.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = image.cpp; sourceTree = ""; }; + 9AA9257025CD770E00BD5E8B /* nanosvg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = nanosvg.h; sourceTree = ""; }; + 9AA9257125CD770E00BD5E8B /* egemb_font.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = egemb_font.cpp; sourceTree = ""; }; + 9AA9257225CD770E00BD5E8B /* lodepng.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = lodepng.cpp; sourceTree = ""; }; + 9AA9257325CD770F00BD5E8B /* VectorGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VectorGraphics.cpp; sourceTree = ""; }; + 9AA9257425CD770F00BD5E8B /* egemb_icons.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = egemb_icons.cpp; sourceTree = ""; }; + 9AA925A925CD79A900BD5E8B /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 9AA925AA25CD79AA00BD5E8B /* screen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = screen.h; sourceTree = ""; }; + 9AA925AB25CD79AA00BD5E8B /* icns.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = icns.cpp; sourceTree = ""; }; + 9AA925AC25CD79AA00BD5E8B /* menu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = menu.cpp; sourceTree = ""; }; + 9AA925AD25CD79AA00BD5E8B /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = menu.h; sourceTree = ""; }; + 9AA925AE25CD79AB00BD5E8B /* screen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = screen.cpp; sourceTree = ""; }; + 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = card_vlist.cpp; sourceTree = ""; }; + 9AA9E4D525CD1C9400BD5E8B /* card_vlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = card_vlist.h; sourceTree = ""; }; + 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VersionString.cpp; sourceTree = ""; }; + 9AA9E4DB25CD279200BD5E8B /* VersionString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VersionString.h; sourceTree = ""; }; + 9AA9E4E025CD283300BD5E8B /* XImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XImage.cpp; sourceTree = ""; }; + 9AA9E4E125CD283300BD5E8B /* XImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XImage.h; sourceTree = ""; }; + 9AA9E4E225CD283300BD5E8B /* XIcon.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XIcon.cpp; sourceTree = ""; }; + 9AA9E4E325CD283300BD5E8B /* XIcon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XIcon.h; sourceTree = ""; }; + 9AA9E4E425CD283300BD5E8B /* XCinema.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XCinema.h; sourceTree = ""; }; + 9AA9E4E525CD283300BD5E8B /* XTheme.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XTheme.cpp; sourceTree = ""; }; + 9AA9E4E625CD283400BD5E8B /* XCinema.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XCinema.cpp; sourceTree = ""; }; + 9AA9E4E725CD283400BD5E8B /* XPointer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XPointer.cpp; sourceTree = ""; }; + 9AA9E4E825CD283400BD5E8B /* XPointer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XPointer.h; sourceTree = ""; }; + 9AA9E4E925CD283400BD5E8B /* XTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XTheme.h; sourceTree = ""; }; + 9AA9E50025CD2FF400BD5E8B /* Utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utils.cpp; sourceTree = ""; }; + 9AA9E50125CD2FF400BD5E8B /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = ""; }; + 9AA9E51325CD306700BD5E8B /* loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loader.h; sourceTree = ""; }; + 9AA9E51B25CD306700BD5E8B /* loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loader.cpp; sourceTree = ""; }; + 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xml_lite-reapeatingdict-test.cpp"; sourceTree = ""; }; + 9AB67BE3261834F300CC853A /* xml_lite-reapeatingdict-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xml_lite-reapeatingdict-test.h"; sourceTree = ""; }; + 9AB6EB9D25CF1FAC0001BDBB /* VolumeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeTypes.h; sourceTree = ""; }; + 9AB6EB9E25CF1FAD0001BDBB /* BootTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootTypes.h; sourceTree = ""; }; + 9AB6EB9F25CF1FAD0001BDBB /* OSFlags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSFlags.h; sourceTree = ""; }; + 9AB6EBA025CF1FAD0001BDBB /* OSTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSTypes.h; sourceTree = ""; }; + 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteSimpleTypes.cpp; sourceTree = ""; }; + 9AD0EB23260A497500093F23 /* XmlLiteSimpleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteSimpleTypes.h; sourceTree = ""; }; + 9AD469472452B33700D6D0DB /* shared_with_menu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shared_with_menu.cpp; sourceTree = ""; }; + 9AD469482452B33700D6D0DB /* shared_with_menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shared_with_menu.h; sourceTree = ""; }; + 9AD7B14E26079F5C00E850D1 /* REFIT_MAINMENU_SCREEN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = REFIT_MAINMENU_SCREEN.h; sourceTree = ""; }; + 9AD7B14F26079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = REFIT_MAINMENU_SCREEN.cpp; sourceTree = ""; }; + 9AF4D9752632D23400487D15 /* OcDataHubLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDataHubLib.lib; sourceTree = ""; }; + 9AF4D9762632D23400487D15 /* OcXmlLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcXmlLib.lib; sourceTree = ""; }; + 9AF4D9772632D23400487D15 /* OcConfigurationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConfigurationLib.lib; sourceTree = ""; }; + 9AF4D9782632D23400487D15 /* OcFirmwareVolumeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFirmwareVolumeLib.lib; sourceTree = ""; }; + 9AF4D9792632D23400487D15 /* OcStorageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStorageLib.lib; sourceTree = ""; }; + 9AF4D97A2632D23400487D15 /* OcVirtualFsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcVirtualFsLib.lib; sourceTree = ""; }; + 9AF4D97B2632D23400487D15 /* OcAppleEventLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleEventLib.lib; sourceTree = ""; }; + 9AF4D97C2632D23400487D15 /* OcCryptoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCryptoLib.lib; sourceTree = ""; }; + 9AF4D97D2632D23400487D15 /* OcAudioLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAudioLib.lib; sourceTree = ""; }; + 9AF4D97E2632D23400487D15 /* OcDevicePropertyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePropertyLib.lib; sourceTree = ""; }; + 9AF4D97F2632D23400487D15 /* OcAppleChunklistLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleChunklistLib.lib; sourceTree = ""; }; + 9AF4D9802632D23500487D15 /* OcStringLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStringLib.lib; sourceTree = ""; }; + 9AF4D9812632D23500487D15 /* OcTemplateLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcTemplateLib.lib; sourceTree = ""; }; + 9AF4D9822632D23500487D15 /* OcUnicodeCollationEngGenericLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcUnicodeCollationEngGenericLib.lib; sourceTree = ""; }; + 9AF4D9832632D23500487D15 /* ControlMsrE2.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = ControlMsrE2.lib; sourceTree = ""; }; + 9AF4D9842632D23500487D15 /* OcAppleKeyMapLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeyMapLib.lib; sourceTree = ""; }; + 9AF4D9852632D23500487D15 /* OcConsoleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConsoleLib.lib; sourceTree = ""; }; + 9AF4D9862632D23500487D15 /* OcRtcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRtcLib.lib; sourceTree = ""; }; + 9AF4D9872632D23500487D15 /* OcDebugLogLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDebugLogLib.lib; sourceTree = ""; }; + 9AF4D9882632D23500487D15 /* OcCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCpuLib.lib; sourceTree = ""; }; + 9AF4D9892632D23500487D15 /* OcGuardLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcGuardLib.lib; sourceTree = ""; }; + 9AF4D98A2632D23500487D15 /* OcDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePathLib.lib; sourceTree = ""; }; + 9AF4D98B2632D23500487D15 /* OcAppleKernelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKernelLib.lib; sourceTree = ""; }; + 9AF4D98C2632D23500487D15 /* OcAppleKeysLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeysLib.lib; sourceTree = ""; }; + 9AF4D98D2632D23500487D15 /* OcInputLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcInputLib.lib; sourceTree = ""; }; + 9AF4D98E2632D23500487D15 /* OpenRuntime.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenRuntime.lib; sourceTree = ""; }; + 9AF4D98F2632D23500487D15 /* OcAppleRamDiskLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleRamDiskLib.lib; sourceTree = ""; }; + 9AF4D9902632D23500487D15 /* OcPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcPeCoffLib.lib; sourceTree = ""; }; + 9AF4D9912632D23500487D15 /* OcApfsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcApfsLib.lib; sourceTree = ""; }; + 9AF4D9922632D23500487D15 /* OcSmbiosLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmbiosLib.lib; sourceTree = ""; }; + 9AF4D9932632D23500487D15 /* OcSerializeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSerializeLib.lib; sourceTree = ""; }; + 9AF4D9942632D23500487D15 /* OcRngLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRngLib.lib; sourceTree = ""; }; + 9AF4D9952632D23500487D15 /* OcAfterBootCompatLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAfterBootCompatLib.lib; sourceTree = ""; }; + 9AF4D9962632D23500487D15 /* OcCompressionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCompressionLib.lib; sourceTree = ""; }; + 9AF4D9972632D23500487D15 /* OcAppleImageVerificationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImageVerificationLib.lib; sourceTree = ""; }; + 9AF4D9982632D23500487D15 /* OcMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMemoryLib.lib; sourceTree = ""; }; + 9AF4D9992632D23500487D15 /* OcMacInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMacInfoLib.lib; sourceTree = ""; }; + 9AF4D99A2632D23500487D15 /* OcBootManagementLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcBootManagementLib.lib; sourceTree = ""; }; + 9AF4D99B2632D23500487D15 /* OcAppleImg4Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImg4Lib.lib; sourceTree = ""; }; + 9AF4D99C2632D23500487D15 /* OcAcpiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAcpiLib.lib; sourceTree = ""; }; + 9AF4D99D2632D23500487D15 /* OcAppleDiskImageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleDiskImageLib.lib; sourceTree = ""; }; + 9AF4D99E2632D23500487D15 /* OcMachoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMachoLib.lib; sourceTree = ""; }; + 9AF4D99F2632D23500487D15 /* OcSmcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmcLib.lib; sourceTree = ""; }; + 9AF4D9A02632D23500487D15 /* OcFileLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFileLib.lib; sourceTree = ""; }; + 9AF4D9A12632D23500487D15 /* OcAppleUserInterfaceThemeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleUserInterfaceThemeLib.lib; sourceTree = ""; }; + 9AF4D9A22632D23500487D15 /* OcDeviceTreeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDeviceTreeLib.lib; sourceTree = ""; }; + 9AF4D9A32632D23500487D15 /* OcOSInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcOSInfoLib.lib; sourceTree = ""; }; + 9AF4D9A42632D23500487D15 /* OcDriverConnectionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDriverConnectionLib.lib; sourceTree = ""; }; + 9AF4D9A52632D23500487D15 /* OpenCore.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenCore.lib; sourceTree = ""; }; + 9AF4D9A62632D23500487D15 /* OcHashServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcHashServicesLib.lib; sourceTree = ""; }; + 9AF4D9A72632D23500487D15 /* OcMiscLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMiscLib.lib; sourceTree = ""; }; + 9AF4D9A82632D23500487D15 /* OcAppleBootPolicyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleBootPolicyLib.lib; sourceTree = ""; }; + 9AF4D9A92632D23500487D15 /* OcAppleSecureBootLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleSecureBootLib.lib; sourceTree = ""; }; + 9AF4D9AB2632D23500487D15 /* VideoBiosPatchLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VideoBiosPatchLib.lib; sourceTree = ""; }; + 9AF4D9AC2632D23500487D15 /* VBoxPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VBoxPeCoffLib.lib; sourceTree = ""; }; + 9AF4D9AD2632D23500487D15 /* DuetTimerLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DuetTimerLib.lib; sourceTree = ""; }; + 9AF4D9AE2632D23500487D15 /* OpensslLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpensslLib.lib; sourceTree = ""; }; + 9AF4D9AF2632D23500487D15 /* HdaDevicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = HdaDevicesLib.lib; sourceTree = ""; }; + 9AF4D9B02632D23500487D15 /* WaveLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = WaveLib.lib; sourceTree = ""; }; + 9AF4D9B22632D23500487D15 /* BasePciCf8Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePciCf8Lib.lib; sourceTree = ""; }; + 9AF4D9B32632D23500487D15 /* UefiApplicationEntryPoint.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiApplicationEntryPoint.lib; sourceTree = ""; }; + 9AF4D9B42632D23500487D15 /* BaseLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseLib.lib; sourceTree = ""; }; + 9AF4D9B52632D23500487D15 /* UefiRuntimeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiRuntimeServicesTableLib.lib; sourceTree = ""; }; + 9AF4D9B62632D23500487D15 /* BaseMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseMemoryLib.lib; sourceTree = ""; }; + 9AF4D9B72632D23500487D15 /* BaseIoLibIntrinsic.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseIoLibIntrinsic.lib; sourceTree = ""; }; + 9AF4D9B82632D23500487D15 /* DxeServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeServicesLib.lib; sourceTree = ""; }; + 9AF4D9B92632D23500487D15 /* BaseCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseCpuLib.lib; sourceTree = ""; }; + 9AF4D9BA2632D23500487D15 /* UefiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiLib.lib; sourceTree = ""; }; + 9AF4D9BB2632D23500487D15 /* PeCoffExtraActionLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = PeCoffExtraActionLibNull.lib; sourceTree = ""; }; + 9AF4D9BC2632D23500487D15 /* UefiMemoryAllocationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiMemoryAllocationLib.lib; sourceTree = ""; }; + 9AF4D9BD2632D23500487D15 /* UefiFileHandleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiFileHandleLib.lib; sourceTree = ""; }; + 9AF4D9BE2632D23500487D15 /* DxeHobLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeHobLib.lib; sourceTree = ""; }; + 9AF4D9BF2632D23500487D15 /* UefiBootServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiBootServicesTableLib.lib; sourceTree = ""; }; + 9AF4D9C02632D23500487D15 /* BaseDebugLibSerialPort.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseDebugLibSerialPort.lib; sourceTree = ""; }; + 9AF4D9C12632D23500487D15 /* DxeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeServicesTableLib.lib; sourceTree = ""; }; + 9AF4D9C22632D23500487D15 /* BasePciLibCf8.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePciLibCf8.lib; sourceTree = ""; }; + 9AF4D9C32632D23500487D15 /* BasePrintLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePrintLib.lib; sourceTree = ""; }; + 9AF4D9C42632D23500487D15 /* UefiDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiDevicePathLib.lib; sourceTree = ""; }; + 9AF4D9C52632D23500487D15 /* BaseDebugPrintErrorLevelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseDebugPrintErrorLevelLib.lib; sourceTree = ""; }; + 9AF4D9C72632D23500487D15 /* MtrrLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = MtrrLib.lib; sourceTree = ""; }; + 9AF4D9C92632D23500487D15 /* BasePlatformHookLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePlatformHookLibNull.lib; sourceTree = ""; }; + 9AF4D9CA2632D23500487D15 /* BaseSerialPortLib16550.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseSerialPortLib16550.lib; sourceTree = ""; }; + 9AF4D9CB2632D23500487D15 /* FrameBufferBltLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = FrameBufferBltLib.lib; sourceTree = ""; }; + 9AF4D9CD2632D23500487D15 /* AutoGen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoGen.h; sourceTree = ""; }; + 9AF4D9CE2632D23500487D15 /* AutoGen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = AutoGen.c; sourceTree = ""; }; + 9AFDD04B25CDB52600EEAF06 /* ConfigSample1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfigSample1.h; sourceTree = ""; }; + 9AFDD05925CE730F00EEAF06 /* XToolsCommon_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsCommon_test.h; sourceTree = ""; }; + 9AFDD05A25CE730F00EEAF06 /* XString_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XString_test.h; sourceTree = ""; }; + 9AFDD05B25CE730F00EEAF06 /* plist_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plist_tests.h; sourceTree = ""; }; + 9AFDD05C25CE730F00EEAF06 /* global_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = global_test.cpp; sourceTree = ""; }; + 9AFDD05D25CE730F00EEAF06 /* strncmp_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strncmp_test.h; sourceTree = ""; }; + 9AFDD05E25CE730F00EEAF06 /* XBuffer_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBuffer_tests.h; sourceTree = ""; }; + 9AFDD05F25CE730F00EEAF06 /* strcmp_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strcmp_test.h; sourceTree = ""; }; + 9AFDD06025CE730F00EEAF06 /* XBuffer_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBuffer_tests.cpp; sourceTree = ""; }; + 9AFDD06125CE730F00EEAF06 /* LoadOptions_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LoadOptions_test.cpp; sourceTree = ""; }; + 9AFDD06225CE730F00EEAF06 /* find_replace_mask_OC_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = find_replace_mask_OC_tests.h; sourceTree = ""; }; + 9AFDD06325CE730F00EEAF06 /* printf_lite-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "printf_lite-test.cpp"; sourceTree = ""; }; + 9AFDD06425CE730F00EEAF06 /* XArray_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XArray_tests.h; sourceTree = ""; }; + 9AFDD06525CE730F00EEAF06 /* global_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = global_test.h; sourceTree = ""; }; + 9AFDD06625CE730F00EEAF06 /* find_replace_mask_Clover_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = find_replace_mask_Clover_tests.h; sourceTree = ""; }; + 9AFDD06725CE730F00EEAF06 /* XStringArray_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XStringArray_test.h; sourceTree = ""; }; + 9AFDD06825CE730F00EEAF06 /* plist_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plist_tests.cpp; sourceTree = ""; }; + 9AFDD06925CE730F00EEAF06 /* MacOsVersion_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacOsVersion_test.cpp; sourceTree = ""; }; + 9AFDD06A25CE730F00EEAF06 /* strcmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strcmp_test.cpp; sourceTree = ""; }; + 9AFDD06B25CE730F00EEAF06 /* printlib-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "printlib-test.cpp"; sourceTree = ""; }; + 9AFDD06C25CE730F00EEAF06 /* XStringArray_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XStringArray_test.cpp; sourceTree = ""; }; + 9AFDD06D25CE730F00EEAF06 /* XObjArray_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XObjArray_tests.h; sourceTree = ""; }; + 9AFDD06E25CE730F00EEAF06 /* find_replace_mask_Clover_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = find_replace_mask_Clover_tests.cpp; sourceTree = ""; }; + 9AFDD06F25CE730F00EEAF06 /* MacOsVersion_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacOsVersion_test.h; sourceTree = ""; }; + 9AFDD07025CE730F00EEAF06 /* strlen_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strlen_test.h; sourceTree = ""; }; + 9AFDD07125CE730F00EEAF06 /* all_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = all_tests.cpp; sourceTree = ""; }; + 9AFDD07225CE730F00EEAF06 /* printlib-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test.h"; sourceTree = ""; }; + 9AFDD07325CE730F00EEAF06 /* XObjArray_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XObjArray_tests.cpp; sourceTree = ""; }; + 9AFDD07425CE730F00EEAF06 /* XArray_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XArray_tests.cpp; sourceTree = ""; }; + 9AFDD07525CE730F00EEAF06 /* strncmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strncmp_test.cpp; sourceTree = ""; }; + 9AFDD07625CE730F00EEAF06 /* printf_lite-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test.h"; sourceTree = ""; }; + 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XString_test.cpp; sourceTree = ""; }; + 9AFDD07825CE730F00EEAF06 /* LoadOptions_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadOptions_test.h; sourceTree = ""; }; + 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XToolsCommon_test.cpp; sourceTree = ""; }; + 9AFDD07A25CE730F00EEAF06 /* all_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = all_tests.h; sourceTree = ""; }; + 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strlen_test.cpp; sourceTree = ""; }; + 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = find_replace_mask_OC_tests.cpp; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9A92232A2402FD1000483CBA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9AF4D9DA2632D23600487D15 /* OcStringLib.lib in Frameworks */, + 9AF4DA1F2632D23600487D15 /* BasePlatformHookLibNull.lib in Frameworks */, + 9AF4DA0E2632D23600487D15 /* BaseMemoryLib.lib in Frameworks */, + 9AF4D9F12632D23600487D15 /* OcAppleImageVerificationLib.lib in Frameworks */, + 9AF4D9F82632D23600487D15 /* OcMachoLib.lib in Frameworks */, + 9AF4DA082632D23600487D15 /* HdaDevicesLib.lib in Frameworks */, + 9AF4D9FA2632D23600487D15 /* OcFileLib.lib in Frameworks */, + 9AF4D9EE2632D23600487D15 /* OcRngLib.lib in Frameworks */, + 9AF4DA112632D23600487D15 /* BaseCpuLib.lib in Frameworks */, + 9AF4DA0B2632D23600487D15 /* UefiApplicationEntryPoint.lib in Frameworks */, + 9AF4DA002632D23600487D15 /* OcHashServicesLib.lib in Frameworks */, + 9AF4DA092632D23600487D15 /* WaveLib.lib in Frameworks */, + 9AF4D9D32632D23600487D15 /* OcStorageLib.lib in Frameworks */, + 9AF4DA1B2632D23600487D15 /* BasePrintLib.lib in Frameworks */, + 9AF4DA212632D23600487D15 /* FrameBufferBltLib.lib in Frameworks */, + 9AF4DA062632D23600487D15 /* DuetTimerLib.lib in Frameworks */, + 9AF4D9F72632D23600487D15 /* OcAppleDiskImageLib.lib in Frameworks */, + 9AF4DA022632D23600487D15 /* OcAppleBootPolicyLib.lib in Frameworks */, + 9AF4D9EF2632D23600487D15 /* OcAfterBootCompatLib.lib in Frameworks */, + 9AF4D9E22632D23600487D15 /* OcCpuLib.lib in Frameworks */, + 9AF4DA142632D23600487D15 /* UefiMemoryAllocationLib.lib in Frameworks */, + 9AF4D9F22632D23600487D15 /* OcMemoryLib.lib in Frameworks */, + 9AF4D9DC2632D23600487D15 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */, + 9AF4D9E72632D23600487D15 /* OcInputLib.lib in Frameworks */, + 9AF4DA192632D23600487D15 /* DxeServicesTableLib.lib in Frameworks */, + 9AF4D9D12632D23500487D15 /* OcConfigurationLib.lib in Frameworks */, + 9AF4D9EB2632D23600487D15 /* OcApfsLib.lib in Frameworks */, + 9AF4D9E12632D23600487D15 /* OcDebugLogLib.lib in Frameworks */, + 9AF4DA052632D23600487D15 /* VBoxPeCoffLib.lib in Frameworks */, + 9AF4D9EC2632D23600487D15 /* OcSmbiosLib.lib in Frameworks */, + 9AF4D9D42632D23600487D15 /* OcVirtualFsLib.lib in Frameworks */, + 9AF4D9FB2632D23600487D15 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */, + 9AF4DA072632D23600487D15 /* OpensslLib.lib in Frameworks */, + 9AF4D9F52632D23600487D15 /* OcAppleImg4Lib.lib in Frameworks */, + 9AF4D9EA2632D23600487D15 /* OcPeCoffLib.lib in Frameworks */, + 9AF4D9FD2632D23600487D15 /* OcOSInfoLib.lib in Frameworks */, + 9AF4D9CF2632D23500487D15 /* OcDataHubLib.lib in Frameworks */, + 9AF4D9DB2632D23600487D15 /* OcTemplateLib.lib in Frameworks */, + 9AF4DA202632D23600487D15 /* BaseSerialPortLib16550.lib in Frameworks */, + 9AF4D9D22632D23600487D15 /* OcFirmwareVolumeLib.lib in Frameworks */, + 9AF4D9D02632D23500487D15 /* OcXmlLib.lib in Frameworks */, + 9AF4DA042632D23600487D15 /* VideoBiosPatchLib.lib in Frameworks */, + 9AF4DA0D2632D23600487D15 /* UefiRuntimeServicesTableLib.lib in Frameworks */, + 9AF4D9D62632D23600487D15 /* OcCryptoLib.lib in Frameworks */, + 9AF4D9D72632D23600487D15 /* OcAudioLib.lib in Frameworks */, + 9AF4DA152632D23600487D15 /* UefiFileHandleLib.lib in Frameworks */, + 9AF4D9DE2632D23600487D15 /* OcAppleKeyMapLib.lib in Frameworks */, + 9AF4DA102632D23600487D15 /* DxeServicesLib.lib in Frameworks */, + 9AF4DA182632D23600487D15 /* BaseDebugLibSerialPort.lib in Frameworks */, + 9AF4D9F32632D23600487D15 /* OcMacInfoLib.lib in Frameworks */, + 9AF4DA132632D23600487D15 /* PeCoffExtraActionLibNull.lib in Frameworks */, + 9AF4D9E62632D23600487D15 /* OcAppleKeysLib.lib in Frameworks */, + 9AF4D9E42632D23600487D15 /* OcDevicePathLib.lib in Frameworks */, + 9AF4DA1A2632D23600487D15 /* BasePciLibCf8.lib in Frameworks */, + 9AF4DA1C2632D23600487D15 /* UefiDevicePathLib.lib in Frameworks */, + 9AF4D9D92632D23600487D15 /* OcAppleChunklistLib.lib in Frameworks */, + 9AF4D9FC2632D23600487D15 /* OcDeviceTreeLib.lib in Frameworks */, + 9AF4DA0A2632D23600487D15 /* BasePciCf8Lib.lib in Frameworks */, + 9AF4D9DF2632D23600487D15 /* OcConsoleLib.lib in Frameworks */, + 9AF4D9ED2632D23600487D15 /* OcSerializeLib.lib in Frameworks */, + 9AF4D9FE2632D23600487D15 /* OcDriverConnectionLib.lib in Frameworks */, + 9AF4DA032632D23600487D15 /* OcAppleSecureBootLib.lib in Frameworks */, + 9AF4D9F42632D23600487D15 /* OcBootManagementLib.lib in Frameworks */, + 9AF4D9E92632D23600487D15 /* OcAppleRamDiskLib.lib in Frameworks */, + 9AF4D9E32632D23600487D15 /* OcGuardLib.lib in Frameworks */, + 9AF4DA172632D23600487D15 /* UefiBootServicesTableLib.lib in Frameworks */, + 9AF4D9F62632D23600487D15 /* OcAcpiLib.lib in Frameworks */, + 9AF4D9DD2632D23600487D15 /* ControlMsrE2.lib in Frameworks */, + 9AF4DA122632D23600487D15 /* UefiLib.lib in Frameworks */, + 9AF4DA0C2632D23600487D15 /* BaseLib.lib in Frameworks */, + 9AF4D9D82632D23600487D15 /* OcDevicePropertyLib.lib in Frameworks */, + 9AF4D9E82632D23600487D15 /* OpenRuntime.lib in Frameworks */, + 9AF4D9E52632D23600487D15 /* OcAppleKernelLib.lib in Frameworks */, + 9AF4D9FF2632D23600487D15 /* OpenCore.lib in Frameworks */, + 9AF4DA0F2632D23600487D15 /* BaseIoLibIntrinsic.lib in Frameworks */, + 9AF4DA1D2632D23600487D15 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */, + 9AF4DA012632D23600487D15 /* OcMiscLib.lib in Frameworks */, + 9AF4DA162632D23600487D15 /* DxeHobLib.lib in Frameworks */, + 9AF4D9F92632D23600487D15 /* OcSmcLib.lib in Frameworks */, + 9AF4DA1E2632D23600487D15 /* MtrrLib.lib in Frameworks */, + 9AF4D9D52632D23600487D15 /* OcAppleEventLib.lib in Frameworks */, + 9AF4D9F02632D23600487D15 /* OcCompressionLib.lib in Frameworks */, + 9AF4D9E02632D23600487D15 /* OcRtcLib.lib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9A0B08432402FE9300E2B470 /* cpp_foundation */ = { + isa = PBXGroup; + children = ( + 9A7D518124FC32F700FA1CC3 /* XBuffer.cpp */, + 9A7D518024FC32F700FA1CC3 /* XBuffer.h */, + 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */, + 9A7D518224FC32F700FA1CC3 /* XRBuffer.h */, + 9A7AEDE82459696C003AAD04 /* XToolsCommon.h */, + 9A4FFA7C2451C8330050B38B /* XString.cpp */, + 9A57C266241A799B0029A39F /* XString.h */, + 9A6BA73C2449977300BDA52C /* XStringAbstract.h */, + 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */, + 9A9AEB8B243F73CE00FBD7D8 /* unicode_conversions.h */, + 9A0B084A2402FE9300E2B470 /* XArray.h */, + 9A0B084B2402FE9300E2B470 /* XObjArray.h */, + 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */, + 9A4185BF2439F73A00BEAFB8 /* XStringArray.h */, + ); + path = cpp_foundation; + sourceTree = ""; + }; + 9A27554B2639E04F0095D456 /* Settings */ = { + isa = PBXGroup; + children = ( + 9A2755502639E04F0095D456 /* ConfigManager.cpp */, + 9A27554D2639E04F0095D456 /* ConfigManager.h */, + 9A2755512639E04F0095D456 /* ConfigPlist */, + 9A27554E2639E04F0095D456 /* Readme.md */, + 9A2755712639E0500095D456 /* Self.cpp */, + 9A2755702639E0500095D456 /* Self.h */, + 9A27554C2639E04F0095D456 /* SelfOem.cpp */, + 9A27554F2639E04F0095D456 /* SelfOem.h */, + ); + path = Settings; + sourceTree = ""; + }; + 9A2755512639E04F0095D456 /* ConfigPlist */ = { + isa = PBXGroup; + children = ( + 9A2755522639E04F0095D456 /* SMBIOSPlist.h */, + 9A2755532639E04F0095D456 /* Config_GUI.cpp */, + 9A2755542639E04F0095D456 /* Config_KernelAndKextPatches.h */, + 9A2755552639E04F0095D456 /* Config_Graphics.h */, + 9A2755562639E04F0095D456 /* Config_ACPI_DSDT.h */, + 9A2755572639E04F0095D456 /* Config_Quirks.cpp */, + 9A2755582639E04F0095D456 /* Config_Devices_Audio.h */, + 9A2755592639E04F0095D456 /* Config_Quirks.h */, + 9A27555A2639E04F0095D456 /* ConfigPlistClass.h */, + 9A27555B2639E04F0095D456 /* Config_ACPI.h */, + 9A27555C2639E04F0095D456 /* Config_Devices_Properties.h */, + 9A27555D2639E04F0095D456 /* Config_Boot.h */, + 9A27555E2639E04F0095D456 /* README.md */, + 9A27555F2639E04F0095D456 /* Config_Devices_Arbitrary.h */, + 9A2755602639E04F0095D456 /* ConfigPlistAbstract.h */, + 9A2755612639E04F0095D456 /* ConfigPlistClass.cpp */, + 9A2755622639E04F0095D456 /* Config_SystemParameters.h */, + 9A2755632639E04F0095D456 /* Config_ACPI.cpp */, + 9A2755642639E04F0095D456 /* Config_Devices.h */, + 9A2755652639E0500095D456 /* Config_CPU.h */, + 9A2755662639E0500095D456 /* Config_BootGraphics.h */, + 9A2755672639E0500095D456 /* ConfigPlistAbstract.cpp */, + 9A2755682639E0500095D456 /* Config_ACPI_DSDT.cpp */, + 9A2755692639E0500095D456 /* Config_ACPI_SSDT.h */, + 9A27556A2639E0500095D456 /* Config_GUI.h */, + 9A27556B2639E0500095D456 /* Config_RtVariables.h */, + 9A27556C2639E0500095D456 /* SMBIOSPlist.cpp */, + 9A27556D2639E0500095D456 /* Config_Devices_FakeID.h */, + 9A27556E2639E0500095D456 /* Config_Devices_USB.h */, + 9A27556F2639E0500095D456 /* Config_Devices_AddProperties.h */, + ); + path = ConfigPlist; + sourceTree = ""; + }; + 9A28CCAC241B816400F3D247 /* Platform */ = { + isa = PBXGroup; + children = ( + 9AA9240D25CD5B2D00BD5E8B /* AcpiPatcher.cpp */, + 9AA9240825CD5B2C00BD5E8B /* AcpiPatcher.h */, + 9AA923FB25CD5B2900BD5E8B /* AmlGenerator.cpp */, + 9AA923CA25CD5B2100BD5E8B /* AmlGenerator.h */, + 9AA923DA25CD5B2500BD5E8B /* APFS.cpp */, + 9AA923CC25CD5B2200BD5E8B /* APFS.h */, + 9AA9240325CD5B2B00BD5E8B /* ati_reg.h */, + 9AA9240125CD5B2A00BD5E8B /* ati.cpp */, + 9AA923C125CD5B1F00BD5E8B /* ati.h */, + 9A36E51E24F3B82A007A1107 /* b64cdecode.cpp */, + 9A36E51D24F3B82A007A1107 /* b64cdecode.h */, + 9AA9239225CD5B1A00BD5E8B /* BasicIO.h */, + 9AA9239525CD5B1A00BD5E8B /* BdsConnect.cpp */, + 9AA9240A25CD5B2C00BD5E8B /* boot.h */, + 9AA918D125CD516A00BD5E8B /* BootLog.h */, + 9AA923D225CD5B2300BD5E8B /* BootOptions.cpp */, + 9AA923DE25CD5B2600BD5E8B /* BootOptions.h */, + 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */, + 9AA9E4D525CD1C9400BD5E8B /* card_vlist.h */, + 9AA9240025CD5B2A00BD5E8B /* Console.cpp */, + 9AA9239725CD5B1B00BD5E8B /* Console.h */, + 9AA923FE25CD5B2A00BD5E8B /* cpu.cpp */, + 9AA923CB25CD5B2100BD5E8B /* cpu.h */, + 9A272A7D25D5062D00F03E19 /* DataHub.cpp */, + 9A272A7E25D5062E00F03E19 /* DataHub.h */, + 9AA923D825CD5B2500BD5E8B /* DataHubCpu.cpp */, + 9AA923DC25CD5B2600BD5E8B /* DataHubCpu.h */, + 9A272A7C25D5062D00F03E19 /* DataHubExt.h */, + 9AA9240725CD5B2C00BD5E8B /* device_inject.cpp */, + 9AA923C625CD5B2000BD5E8B /* device_inject.h */, + 9AA9239625CD5B1B00BD5E8B /* Edid.cpp */, + 9AA923B725CD5B1D00BD5E8B /* Edid.h */, + 9AA923FD25CD5B2900BD5E8B /* Events.cpp */, + 9AA923BD25CD5B1E00BD5E8B /* Events.h */, + 9AA9240625CD5B2B00BD5E8B /* FixBiosDsdt.cpp */, + 9AA3911825CC56840099DC1F /* FixBiosDsdt.h */, + 9AA9240225CD5B2B00BD5E8B /* gma.cpp */, + 9AA923DD25CD5B2600BD5E8B /* gma.h */, + 9AA923C325CD5B1F00BD5E8B /* guid.cpp */, + 9AA923B825CD5B1D00BD5E8B /* guid.h */, + 9AA923FC25CD5B2900BD5E8B /* hda.cpp */, + 9AA923BA25CD5B1E00BD5E8B /* hda.h */, + 9AA923BB25CD5B1E00BD5E8B /* HdaCodecDump.cpp */, + 9AA923CF25CD5B2200BD5E8B /* HdaCodecDump.h */, + 9AA923D925CD5B2500BD5E8B /* Hibernate.cpp */, + 9AA923BE25CD5B1E00BD5E8B /* Hibernate.h */, + 9AA923FA25CD5B2900BD5E8B /* Injectors.cpp */, + 9AA9240E25CD5B2D00BD5E8B /* Injectors.h */, + 9AA9240F25CD5B2D00BD5E8B /* KERNEL_AND_KEXT_PATCHES.cpp */, + 9AA9240B25CD5B2C00BD5E8B /* KERNEL_AND_KEXT_PATCHES.h */, + 9AA9240525CD5B2B00BD5E8B /* kernel_patcher.cpp */, + 9AA923CD25CD5B2200BD5E8B /* kernel_patcher.h */, + 9AA923E125CD5B2700BD5E8B /* kext_inject.cpp */, + 9AA923D725CD5B2400BD5E8B /* kext_inject.h */, + 9AA923C825CD5B2100BD5E8B /* kext_patcher.cpp */, + 9AA923C425CD5B2000BD5E8B /* KextList.cpp */, + 9AA923DB25CD5B2500BD5E8B /* KextList.h */, + 9AA9239825CD5B1B00BD5E8B /* LegacyBiosThunk.cpp */, + 9AA923DF25CD5B2600BD5E8B /* LegacyBiosThunk.h */, + 9AA923D625CD5B2400BD5E8B /* LegacyBoot.cpp */, + 9AA9240C25CD5B2D00BD5E8B /* LegacyBoot.h */, + 9A4C5769255AAD07004F0B21 /* MacOsVersion.cpp */, + 9A4C576A255AAD07004F0B21 /* MacOsVersion.h */, + 9A838CB325347C36008303F5 /* MemoryOperation.c */, + 9A838CAA25342626008303F5 /* MemoryOperation.h */, + 9AA9239125CD5B1900BD5E8B /* memvendors.h */, + 9AA923E025CD5B2700BD5E8B /* nvidia.cpp */, + 9AA923C525CD5B2000BD5E8B /* nvidia.h */, + 9AA923D425CD5B2400BD5E8B /* Nvram.cpp */, + 9AA923BC25CD5B1E00BD5E8B /* Nvram.h */, + 9AA923CE25CD5B2200BD5E8B /* platformdata.cpp */, + 9AA923E225CD5B2700BD5E8B /* platformdata.h */, + 9AA9239925CD5B1B00BD5E8B /* PlatformDriverOverride.cpp */, + 9AA923D525CD5B2400BD5E8B /* PlatformDriverOverride.h */, + 9A36E4D924F3B51C007A1107 /* plist */, + 9A852C0E25CC39E900C5662E /* Settings.cpp */, + 9A852C0D25CC39E900C5662E /* Settings.h */, + 9AA9239A25CD5B1C00BD5E8B /* smbios.cpp */, + 9AA923B625CD5B1D00BD5E8B /* smbios.h */, + 9AA923D025CD5B2300BD5E8B /* sound.cpp */, + 9AA9239B25CD5B1C00BD5E8B /* spd.cpp */, + 9AA9240425CD5B2B00BD5E8B /* spd.h */, + 9AA923C025CD5B1F00BD5E8B /* sse3_5_patcher.h */, + 9AA9241125CD5B2E00BD5E8B /* sse3_patcher.h */, + 9AA923FF25CD5B2A00BD5E8B /* StartupSound.cpp */, + 9AA923E525CD5B2800BD5E8B /* StartupSound.h */, + 9AA9241225CD5B2E00BD5E8B /* StateGenerator.cpp */, + 9AA923C925CD5B2100BD5E8B /* StateGenerator.h */, + 9AA923B525CD5B1C00BD5E8B /* usbfix.cpp */, + 9AA923F925CD5B2800BD5E8B /* usbfix.h */, + 9AA9E50025CD2FF400BD5E8B /* Utils.cpp */, + 9AA9E50125CD2FF400BD5E8B /* Utils.h */, + 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */, + 9AA9E4DB25CD279200BD5E8B /* VersionString.h */, + 9AA923D125CD5B2300BD5E8B /* Volumes.cpp */, + 9AA923D325CD5B2300BD5E8B /* Volumes.h */, + ); + path = Platform; + sourceTree = ""; + }; + 9A358B3625CF117A00A3850D /* cpp_lib */ = { + isa = PBXGroup; + children = ( + 9A4147662604F82900440186 /* undefinable.h */, + 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */, + 9A071C46261A44080007CC44 /* XmlLiteArrayTypes.h */, + 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */, + 9A358B3C25CF117A00A3850D /* XmlLiteCompositeTypes.h */, + 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */, + 9A071C43261A44080007CC44 /* XmlLiteDictTypes.h */, + 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */, + 9A358B3725CF117A00A3850D /* XmlLiteParser.h */, + 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */, + 9AD0EB23260A497500093F23 /* XmlLiteSimpleTypes.h */, + 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */, + 9A071C45261A44080007CC44 /* XmlLiteUnionTypes.h */, + ); + path = cpp_lib; + sourceTree = ""; + }; + 9A36E4D924F3B51C007A1107 /* plist */ = { + isa = PBXGroup; + children = ( + 9A36E53A24F3EDED007A1107 /* base64.h */, + 9A36E53B24F3EDED007A1107 /* base64.cpp */, + 9A36E4DD24F3B536007A1107 /* plist.cpp */, + 9A36E4DC24F3B536007A1107 /* plist.h */, + 9A36E4E624F3B537007A1107 /* TagArray.cpp */, + 9A36E4E924F3B537007A1107 /* TagArray.h */, + 9A36E4E024F3B537007A1107 /* TagBool.cpp */, + 9A36E4DA24F3B536007A1107 /* TagBool.h */, + 9A36E4E524F3B537007A1107 /* TagData.cpp */, + 9A36E4E824F3B537007A1107 /* TagData.h */, + 9A36E4E424F3B537007A1107 /* TagDate.cpp */, + 9A36E4E724F3B537007A1107 /* TagDate.h */, + 9A36E4E124F3B537007A1107 /* TagDict.cpp */, + 9A36E4ED24F3B537007A1107 /* TagDict.h */, + 9A36E4EA24F3B537007A1107 /* TagFloat.cpp */, + 9A36E4EB24F3B537007A1107 /* TagFloat.h */, + 9A36E4E224F3B537007A1107 /* TagInt64.cpp */, + 9A36E4DE24F3B536007A1107 /* TagInt64.h */, + 9A36E4EC24F3B537007A1107 /* TagKey.cpp */, + 9A36E4EE24F3B537007A1107 /* TagKey.h */, + 9A36E4DB24F3B536007A1107 /* TagString8.cpp */, + 9A36E4EF24F3B537007A1107 /* TagString8.h */, + 9A36E4DF24F3B536007A1107 /* xml.cpp */, + 9A36E4E324F3B537007A1107 /* xml.h */, + ); + path = plist; + sourceTree = ""; + }; + 9A36E51C24F3B5B4007A1107 /* rEFIt_UEFI */ = { + isa = PBXGroup; + children = ( + 9A27554B2639E04F0095D456 /* Settings */, + 9A8792E4261886F5000B9362 /* PlatformPOSIX */, + 9A358B3625CF117A00A3850D /* cpp_lib */, + 9AFDD05825CE730F00EEAF06 /* cpp_unit_test */, + 9A0B08432402FE9300E2B470 /* cpp_foundation */, + 9AA9E50525CD306700BD5E8B /* entry_scan */, + 9AD469462452B30500D6D0DB /* gui */, + 9AA3911925CC56E60099DC1F /* include */, + 9A36E52324F3BB52007A1107 /* libeg */, + 9A28CCAC241B816400F3D247 /* Platform */, + 9AA918B825CD4B5900BD5E8B /* refit */, + ); + path = rEFIt_UEFI; + sourceTree = ""; + }; + 9A36E52324F3BB52007A1107 /* libeg */ = { + isa = PBXGroup; + children = ( + 9AA918C625CD4CD300BD5E8B /* BmLib.cpp */, + 9AA918C525CD4CD300BD5E8B /* BmLib.h */, + 9AA9256325CD770B00BD5E8B /* EfiFileLib.h */, + 9AA9257125CD770E00BD5E8B /* egemb_font.cpp */, + 9AA9256125CD770A00BD5E8B /* egemb_icons_dark.cpp */, + 9AA9257425CD770F00BD5E8B /* egemb_icons.cpp */, + 9A36E52424F3BB6B007A1107 /* FloatLib.cpp */, + 9A36E52524F3BB6B007A1107 /* FloatLib.h */, + 9AA9256C25CD770D00BD5E8B /* ftol.asm */, + 9AA9256F25CD770E00BD5E8B /* image.cpp */, + 9AA9256925CD770C00BD5E8B /* image.h */, + 9AA9256A25CD770D00BD5E8B /* libeg.h */, + 9AA9256E25CD770E00BD5E8B /* libegint.h */, + 9AA9256625CD770C00BD5E8B /* libscreen.cpp */, + 9AA9256B25CD770D00BD5E8B /* load_icns.cpp */, + 9AA9257225CD770E00BD5E8B /* lodepng.cpp */, + 9AA9256525CD770B00BD5E8B /* lodepng.h */, + 9AA9256825CD770C00BD5E8B /* nanosvg.cpp */, + 9AA9257025CD770E00BD5E8B /* nanosvg.h */, + 9AA9256725CD770C00BD5E8B /* nanosvgrast.cpp */, + 9AA9256D25CD770D00BD5E8B /* scroll_images.cpp */, + 9AA9256225CD770B00BD5E8B /* text.cpp */, + 9AA9257325CD770F00BD5E8B /* VectorGraphics.cpp */, + 9AA9256425CD770B00BD5E8B /* VectorGraphics.h */, + 9AA9E4E625CD283400BD5E8B /* XCinema.cpp */, + 9AA9E4E425CD283300BD5E8B /* XCinema.h */, + 9AA9E4E225CD283300BD5E8B /* XIcon.cpp */, + 9AA9E4E325CD283300BD5E8B /* XIcon.h */, + 9AA9E4E025CD283300BD5E8B /* XImage.cpp */, + 9AA9E4E125CD283300BD5E8B /* XImage.h */, + 9AA9E4E725CD283400BD5E8B /* XPointer.cpp */, + 9AA9E4E825CD283400BD5E8B /* XPointer.h */, + 9AA9E4E525CD283300BD5E8B /* XTheme.cpp */, + 9AA9E4E925CD283400BD5E8B /* XTheme.h */, + ); + path = libeg; + sourceTree = ""; + }; + 9A879205261882D9000B9362 /* PosixCompilation */ = { + isa = PBXGroup; + children = ( + 9AF4D9732632D23400487D15 /* DEBUG_Libs */, + 9A879206261882D9000B9362 /* CloverMock */, + 9A87920C261882D9000B9362 /* ReadmeJief.txt */, + 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */, + 9A87926A261882D9000B9362 /* UefiMock */, + 9A879272261882D9000B9362 /* xcode_utf_fixed.h */, + ); + name = PosixCompilation; + path = ../../PosixCompilation; + sourceTree = ""; + }; + 9A879206261882D9000B9362 /* CloverMock */ = { + isa = PBXGroup; + children = ( + 9A879207261882D9000B9362 /* Include */, + 9A879209261882D9000B9362 /* Library */, + ); + path = CloverMock; + sourceTree = ""; + }; + 9A879207261882D9000B9362 /* Include */ = { + isa = PBXGroup; + children = ( + 9A879208261882D9000B9362 /* printf_lite-conf.h */, + ); + path = Include; + sourceTree = ""; + }; + 9A879209261882D9000B9362 /* Library */ = { + isa = PBXGroup; + children = ( + 9A87920A261882D9000B9362 /* MemLogLibDefault */, + ); + path = Library; + sourceTree = ""; + }; + 9A87920A261882D9000B9362 /* MemLogLibDefault */ = { + isa = PBXGroup; + children = ( + 9A87920B261882D9000B9362 /* MemLogLib.c */, + ); + path = MemLogLibDefault; + sourceTree = ""; + }; + 9A87926A261882D9000B9362 /* UefiMock */ = { + isa = PBXGroup; + children = ( + 9A87926B261882D9000B9362 /* Library */, + 9A879270261882D9000B9362 /* Globals.cpp */, + 9A879271261882D9000B9362 /* Base.h */, + ); + path = UefiMock; + sourceTree = ""; + }; + 9A87926B261882D9000B9362 /* Library */ = { + isa = PBXGroup; + children = ( + 9A87926C261882D9000B9362 /* BaseMemoryLib.c */, + 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */, + 9A87926E261882D9000B9362 /* PrintLib.c */, + 9A87926F261882D9000B9362 /* DebugLib.c */, + ); + path = Library; + sourceTree = ""; + }; + 9A8792E4261886F5000B9362 /* PlatformPOSIX */ = { + isa = PBXGroup; + children = ( + 9A8792E5261886F5000B9362 /* posix */, + 9A8792EB261886F5000B9362 /* include */, + 9A8792F0261886F5000B9362 /* BootLog.cpp */, + 9A8792F1261886F5000B9362 /* BasicIO.cpp */, + 9A8792F2261886F5000B9362 /* cpp_util */, + ); + path = PlatformPOSIX; + sourceTree = ""; + }; + 9A8792E5261886F5000B9362 /* posix */ = { + isa = PBXGroup; + children = ( + 9A8792E6261886F5000B9362 /* posix_additions.cpp */, + 9A8792E7261886F5000B9362 /* abort.cpp */, + 9A8792E8261886F5000B9362 /* posix.h */, + 9A8792E9261886F5000B9362 /* posix_additions.h */, + 9A8792EA261886F5000B9362 /* abort.h */, + ); + path = posix; + sourceTree = ""; + }; + 9A8792EB261886F5000B9362 /* include */ = { + isa = PBXGroup; + children = ( + 9A8792EC261886F5000B9362 /* printlib-test-cpp_conf.h */, + 9A8792ED261886F5000B9362 /* printf_lite-test-cpp_conf.h */, + 9A8792EE261886F5000B9362 /* Platform.h */, + 9A8792EF261886F5000B9362 /* XToolsConf.h */, + ); + path = include; + sourceTree = ""; + }; + 9A8792F2261886F5000B9362 /* cpp_util */ = { + isa = PBXGroup; + children = ( + 9A8792F3261886F5000B9362 /* globals_dtor.h */, + 9A8792F4261886F5000B9362 /* operatorNewDelete.h */, + 9A8792F5261886F5000B9362 /* globals_ctor.h */, + ); + path = cpp_util; + sourceTree = ""; + }; + 9A9223242402FD1000483CBA = { + isa = PBXGroup; + children = ( + 9A879205261882D9000B9362 /* PosixCompilation */, + 9AA9185625CD465800BD5E8B /* Clover */, + 9A92232F2402FD1000483CBA /* Main */, + 9A92232E2402FD1000483CBA /* Products */, + 9AFDCEB225CD9BB000EEAF06 /* Frameworks */, + ); + sourceTree = ""; + }; + 9A92232E2402FD1000483CBA /* Products */ = { + isa = PBXGroup; + children = ( + 9A92232D2402FD1000483CBA /* CloverConfigPlistValidator */, + ); + name = Products; + sourceTree = ""; + }; + 9A92232F2402FD1000483CBA /* Main */ = { + isa = PBXGroup; + children = ( + 9A9223302402FD1000483CBA /* main.cpp */, + 9A0B085D240300E000E2B470 /* Platform.cpp */, + 9AFDD04B25CDB52600EEAF06 /* ConfigSample1.h */, + ); + name = Main; + path = src; + sourceTree = ""; + }; + 9AA3911925CC56E60099DC1F /* include */ = { + isa = PBXGroup; + children = ( + 9AB6EB9E25CF1FAD0001BDBB /* BootTypes.h */, + 9AA3911A25CC56E60099DC1F /* Devices.h */, + 9AA3912325CC56E60099DC1F /* Efi.h */, + 9AA3911F25CC56E60099DC1F /* Handle.h */, + 9A78DF7E260A531100FE811A /* Languages.h */, + 9AA3912425CC56E60099DC1F /* OC.h */, + 9AA3912025CC56E60099DC1F /* OneLinerMacros.h */, + 9AB6EB9F25CF1FAD0001BDBB /* OSFlags.h */, + 9AB6EBA025CF1FAD0001BDBB /* OSTypes.h */, + 9AA3912225CC56E60099DC1F /* Pci.h */, + 9AA3911D25CC56E60099DC1F /* printf_lite-test-cpp_conf.h */, + 9AA3911B25CC56E60099DC1F /* printlib-test-cpp_conf.h */, + 9AA3911E25CC56E60099DC1F /* rename_helper.h */, + 9AA3911C25CC56E60099DC1F /* syslinux_mbr.h */, + 9AB6EB9D25CF1FAC0001BDBB /* VolumeTypes.h */, + 9AA3912525CC56E60099DC1F /* XToolsConf.h */, + ); + path = include; + sourceTree = ""; + }; + 9AA909E825CD451500BD5E8B /* MdePkg */ = { + isa = PBXGroup; + children = ( + 9AA909E925CD451500BD5E8B /* Include */, + 9AA90C1125CD451700BD5E8B /* Library */, + 9AA910B525CD451900BD5E8B /* MdePkg.dec */, + 9AA910B625CD451900BD5E8B /* MdePkg.uni */, + 9AA910B725CD451900BD5E8B /* MdePkgExtra.uni */, + 9AA910B825CD451900BD5E8B /* MdePkg.dsc */, + ); + path = MdePkg; + sourceTree = ""; + }; + 9AA909E925CD451500BD5E8B /* Include */ = { + isa = PBXGroup; + children = ( + 9AA909EA25CD451500BD5E8B /* PiPei.h */, + 9AA909EB25CD451500BD5E8B /* PiMm.h */, + 9AA909EC25CD451500BD5E8B /* Uefi.h */, + 9AA909ED25CD451500BD5E8B /* X64 */, + 9AA909F025CD451500BD5E8B /* Uefi */, + 9AA909F825CD451500BD5E8B /* IndustryStandard */, + 9AA90A4925CD451500BD5E8B /* Library */, + 9AA90A8A25CD451600BD5E8B /* Protocol */, + 9AA90B8425CD451600BD5E8B /* Pi */, + 9AA90B9225CD451600BD5E8B /* PiSmm.h */, + 9AA90B9325CD451600BD5E8B /* Register */, + 9AA90BB825CD451600BD5E8B /* PiDxe.h */, + 9AA90BB925CD451600BD5E8B /* Guid */, + 9AA90BE125CD451600BD5E8B /* Ppi */, + 9AA90C1025CD451700BD5E8B /* Base.h */, + ); + path = Include; + sourceTree = ""; + }; + 9AA909ED25CD451500BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA909EE25CD451500BD5E8B /* Nasm.inc */, + 9AA909EF25CD451500BD5E8B /* ProcessorBind.h */, + ); + path = X64; + sourceTree = ""; + }; + 9AA909F025CD451500BD5E8B /* Uefi */ = { + isa = PBXGroup; + children = ( + 9AA909F125CD451500BD5E8B /* UefiAcpiDataTable.h */, + 9AA909F225CD451500BD5E8B /* UefiPxe.h */, + 9AA909F325CD451500BD5E8B /* UefiSpec.h */, + 9AA909F425CD451500BD5E8B /* UefiGpt.h */, + 9AA909F525CD451500BD5E8B /* UefiBaseType.h */, + 9AA909F625CD451500BD5E8B /* UefiInternalFormRepresentation.h */, + 9AA909F725CD451500BD5E8B /* UefiMultiPhase.h */, + ); + path = Uefi; + sourceTree = ""; + }; + 9AA909F825CD451500BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA909F925CD451500BD5E8B /* IpmiNetFnFirmware.h */, + 9AA909FA25CD451500BD5E8B /* SdramSpdLpDdr.h */, + 9AA909FB25CD451500BD5E8B /* ElTorito.h */, + 9AA909FC25CD451500BD5E8B /* SdramSpdDdr3.h */, + 9AA909FD25CD451500BD5E8B /* Acpi62.h */, + 9AA909FE25CD451500BD5E8B /* WindowsSmmSecurityMitigationTable.h */, + 9AA909FF25CD451500BD5E8B /* Nvme.h */, + 9AA90A0025CD451500BD5E8B /* IoRemappingTable.h */, + 9AA90A0125CD451500BD5E8B /* LowPowerIdleTable.h */, + 9AA90A0225CD451500BD5E8B /* Emmc.h */, + 9AA90A0325CD451500BD5E8B /* WatchdogActionTable.h */, + 9AA90A0425CD451500BD5E8B /* DmaRemappingReportingTable.h */, + 9AA90A0525CD451500BD5E8B /* AlertStandardFormatTable.h */, + 9AA90A0625CD451500BD5E8B /* Acpi40.h */, + 9AA90A0725CD451500BD5E8B /* Bmp.h */, + 9AA90A0825CD451500BD5E8B /* UefiTcgPlatform.h */, + 9AA90A0925CD451500BD5E8B /* SerialPortConsoleRedirectionTable.h */, + 9AA90A0A25CD451500BD5E8B /* Pci22.h */, + 9AA90A0B25CD451500BD5E8B /* Mbr.h */, + 9AA90A0C25CD451500BD5E8B /* Acpi61.h */, + 9AA90A0D25CD451500BD5E8B /* SdramSpdDdr4.h */, + 9AA90A0E25CD451500BD5E8B /* TcgStorageOpal.h */, + 9AA90A0F25CD451500BD5E8B /* IpmiNetFnChassis.h */, + 9AA90A1025CD451500BD5E8B /* Acpi.h */, + 9AA90A1125CD451500BD5E8B /* Tpm2Acpi.h */, + 9AA90A1225CD451500BD5E8B /* PeImage.h */, + 9AA90A1325CD451500BD5E8B /* PciExpress30.h */, + 9AA90A1425CD451500BD5E8B /* SdramSpd.h */, + 9AA90A1525CD451500BD5E8B /* Acpi10.h */, + 9AA90A1625CD451500BD5E8B /* MemoryMappedConfigurationSpaceAccessTable.h */, + 9AA90A1725CD451500BD5E8B /* IpmiFruInformationStorage.h */, + 9AA90A1825CD451500BD5E8B /* IpmiNetFnStorage.h */, + 9AA90A1925CD451500BD5E8B /* IScsiBootFirmwareTable.h */, + 9AA90A1A25CD451500BD5E8B /* Bluetooth.h */, + 9AA90A1B25CD451500BD5E8B /* AcpiAml.h */, + 9AA90A1C25CD451500BD5E8B /* Acpi50.h */, + 9AA90A1D25CD451500BD5E8B /* Tpm20.h */, + 9AA90A1E25CD451500BD5E8B /* PciCodeId.h */, + 9AA90A1F25CD451500BD5E8B /* IpmiNetFnTransport.h */, + 9AA90A2025CD451500BD5E8B /* Dhcp.h */, + 9AA90A2125CD451500BD5E8B /* TpmPtp.h */, + 9AA90A2225CD451500BD5E8B /* Acpi20.h */, + 9AA90A2325CD451500BD5E8B /* Pci23.h */, + 9AA90A2425CD451500BD5E8B /* IpmiNetFnApp.h */, + 9AA90A2525CD451500BD5E8B /* PciExpress40.h */, + 9AA90A2625CD451500BD5E8B /* IpmiNetFnSensorEvent.h */, + 9AA90A2725CD451500BD5E8B /* Acpi60.h */, + 9AA90A2825CD451500BD5E8B /* PciExpress21.h */, + 9AA90A2925CD451500BD5E8B /* PciExpress31.h */, + 9AA90A2A25CD451500BD5E8B /* TcgStorageCore.h */, + 9AA90A2B25CD451500BD5E8B /* HighPrecisionEventTimerTable.h */, + 9AA90A2C25CD451500BD5E8B /* Usb.h */, + 9AA90A2D25CD451500BD5E8B /* Acpi51.h */, + 9AA90A2E25CD451500BD5E8B /* Sd.h */, + 9AA90A2F25CD451500BD5E8B /* WatchdogResourceTable.h */, + 9AA90A3025CD451500BD5E8B /* Acpi30.h */, + 9AA90A3125CD451500BD5E8B /* Udf.h */, + 9AA90A3225CD451500BD5E8B /* DebugPortTable.h */, + 9AA90A3325CD451500BD5E8B /* SmBios.h */, + 9AA90A3425CD451500BD5E8B /* MemoryOverwriteRequestControlLock.h */, + 9AA90A3525CD451500BD5E8B /* Atapi.h */, + 9AA90A3625CD451500BD5E8B /* TcpaAcpi.h */, + 9AA90A3725CD451500BD5E8B /* LegacyBiosMpTable.h */, + 9AA90A3825CD451500BD5E8B /* TpmTis.h */, + 9AA90A3925CD451500BD5E8B /* Acpi63.h */, + 9AA90A3A25CD451500BD5E8B /* SmBus.h */, + 9AA90A3B25CD451500BD5E8B /* Http11.h */, + 9AA90A3C25CD451500BD5E8B /* TcgPhysicalPresence.h */, + 9AA90A3D25CD451500BD5E8B /* IpmiNetFnGroupExtension.h */, + 9AA90A3E25CD451500BD5E8B /* Tls1.h */, + 9AA90A3F25CD451500BD5E8B /* Pci.h */, + 9AA90A4025CD451500BD5E8B /* DebugPort2Table.h */, + 9AA90A4125CD451500BD5E8B /* Scsi.h */, + 9AA90A4225CD451500BD5E8B /* Pci30.h */, + 9AA90A4325CD451500BD5E8B /* Hsti.h */, + 9AA90A4425CD451500BD5E8B /* WindowsUxCapsule.h */, + 9AA90A4525CD451500BD5E8B /* Tpm12.h */, + 9AA90A4625CD451500BD5E8B /* Ipmi.h */, + 9AA90A4725CD451500BD5E8B /* IpmiNetFnBridge.h */, + 9AA90A4825CD451500BD5E8B /* ServiceProcessorManagementInterfaceTable.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA90A4925CD451500BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA90A4A25CD451500BD5E8B /* OrderedCollectionLib.h */, + 9AA90A4B25CD451500BD5E8B /* TimerLib.h */, + 9AA90A4C25CD451500BD5E8B /* PeiServicesTablePointerLib.h */, + 9AA90A4D25CD451500BD5E8B /* SmiHandlerProfileLib.h */, + 9AA90A4E25CD451500BD5E8B /* UefiUsbLib.h */, + 9AA90A4F25CD451500BD5E8B /* UefiDecompressLib.h */, + 9AA90A5025CD451500BD5E8B /* UefiRuntimeServicesTableLib.h */, + 9AA90A5125CD451500BD5E8B /* PeimEntryPoint.h */, + 9AA90A5225CD451500BD5E8B /* RngLib.h */, + 9AA90A5325CD451500BD5E8B /* PciCf8Lib.h */, + 9AA90A5425CD451500BD5E8B /* SmmPeriodicSmiLib.h */, + 9AA90A5525CD451500BD5E8B /* PeiCoreEntryPoint.h */, + 9AA90A5625CD451500BD5E8B /* S3PciLib.h */, + 9AA90A5725CD451500BD5E8B /* PciSegmentLib.h */, + 9AA90A5825CD451500BD5E8B /* DebugLib.h */, + 9AA90A5925CD451500BD5E8B /* SynchronizationLib.h */, + 9AA90A5A25CD451500BD5E8B /* SafeIntLib.h */, + 9AA90A5B25CD451500BD5E8B /* S3SmbusLib.h */, + 9AA90A5C25CD451500BD5E8B /* DevicePathLib.h */, + 9AA90A5D25CD451500BD5E8B /* PcdLib.h */, + 9AA90A5E25CD451500BD5E8B /* FileHandleLib.h */, + 9AA90A5F25CD451500BD5E8B /* UefiLib.h */, + 9AA90A6025CD451500BD5E8B /* SmmMemLib.h */, + 9AA90A6125CD451500BD5E8B /* PostCodeLib.h */, + 9AA90A6225CD451500BD5E8B /* S3StallLib.h */, + 9AA90A6325CD451500BD5E8B /* PciLib.h */, + 9AA90A6425CD451500BD5E8B /* UefiBootServicesTableLib.h */, + 9AA90A6525CD451500BD5E8B /* MmServicesTableLib.h */, + 9AA90A6625CD451500BD5E8B /* PeCoffExtraActionLib.h */, + 9AA90A6725CD451600BD5E8B /* PciExpressLib.h */, + 9AA90A6825CD451600BD5E8B /* S3IoLib.h */, + 9AA90A6925CD451600BD5E8B /* ReportStatusCodeLib.h */, + 9AA90A6A25CD451600BD5E8B /* UefiScsiLib.h */, + 9AA90A6B25CD451600BD5E8B /* UefiRuntimeLib.h */, + 9AA90A6C25CD451600BD5E8B /* SmmServicesTableLib.h */, + 9AA90A6D25CD451600BD5E8B /* SerialPortLib.h */, + 9AA90A6E25CD451600BD5E8B /* DxeCoreEntryPoint.h */, + 9AA90A6F25CD451600BD5E8B /* PeCoffGetEntryPointLib.h */, + 9AA90A7025CD451600BD5E8B /* UefiDriverEntryPoint.h */, + 9AA90A7125CD451600BD5E8B /* BaseMemoryLib.h */, + 9AA90A7225CD451600BD5E8B /* DxeServicesLib.h */, + 9AA90A7325CD451600BD5E8B /* PeCoffLib.h */, + 9AA90A7425CD451600BD5E8B /* S3PciSegmentLib.h */, + 9AA90A7525CD451600BD5E8B /* BaseLib.h */, + 9AA90A7625CD451600BD5E8B /* SmmLib.h */, + 9AA90A7725CD451600BD5E8B /* PeiServicesLib.h */, + 9AA90A7825CD451600BD5E8B /* DxeServicesTableLib.h */, + 9AA90A7925CD451600BD5E8B /* SmbusLib.h */, + 9AA90A7A25CD451600BD5E8B /* MemoryAllocationLib.h */, + 9AA90A7B25CD451600BD5E8B /* HstiLib.h */, + 9AA90A7C25CD451600BD5E8B /* ExtractGuidedSectionLib.h */, + 9AA90A7D25CD451600BD5E8B /* ResourcePublicationLib.h */, + 9AA90A7E25CD451600BD5E8B /* S3BootScriptLib.h */, + 9AA90A7F25CD451600BD5E8B /* CacheMaintenanceLib.h */, + 9AA90A8025CD451600BD5E8B /* CpuLib.h */, + 9AA90A8125CD451600BD5E8B /* StandaloneMmDriverEntryPoint.h */, + 9AA90A8225CD451600BD5E8B /* SmmIoLib.h */, + 9AA90A8325CD451600BD5E8B /* IoLib.h */, + 9AA90A8425CD451600BD5E8B /* PrintLib.h */, + 9AA90A8525CD451600BD5E8B /* UefiApplicationEntryPoint.h */, + 9AA90A8625CD451600BD5E8B /* PerformanceLib.h */, + 9AA90A8725CD451600BD5E8B /* HobLib.h */, + 9AA90A8825CD451600BD5E8B /* DebugPrintErrorLevelLib.h */, + 9AA90A8925CD451600BD5E8B /* PciSegmentInfoLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA90A8A25CD451600BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA90A8B25CD451600BD5E8B /* LegacySpiController.h */, + 9AA90A8C25CD451600BD5E8B /* SpiHc.h */, + 9AA90A8D25CD451600BD5E8B /* Tcp4.h */, + 9AA90A8E25CD451600BD5E8B /* DriverFamilyOverride.h */, + 9AA90A8F25CD451600BD5E8B /* MmSxDispatch.h */, + 9AA90A9025CD451600BD5E8B /* MmCpu.h */, + 9AA90A9125CD451600BD5E8B /* TcgService.h */, + 9AA90A9225CD451600BD5E8B /* WiFi2.h */, + 9AA90A9325CD451600BD5E8B /* PartitionInfo.h */, + 9AA90A9425CD451600BD5E8B /* SmmReportStatusCodeHandler.h */, + 9AA90A9525CD451600BD5E8B /* UgaDraw.h */, + 9AA90A9625CD451600BD5E8B /* Bis.h */, + 9AA90A9725CD451600BD5E8B /* SmartCardEdge.h */, + 9AA90A9825CD451600BD5E8B /* EapConfiguration.h */, + 9AA90A9925CD451600BD5E8B /* ShellDynamicCommand.h */, + 9AA90A9A25CD451600BD5E8B /* Rest.h */, + 9AA90A9B25CD451600BD5E8B /* NvdimmLabel.h */, + 9AA90A9C25CD451600BD5E8B /* Udp4.h */, + 9AA90A9D25CD451600BD5E8B /* LoadedImage.h */, + 9AA90A9E25CD451600BD5E8B /* WiFi.h */, + 9AA90A9F25CD451600BD5E8B /* SmmSwDispatch2.h */, + 9AA90AA025CD451600BD5E8B /* FormBrowser2.h */, + 9AA90AA125CD451600BD5E8B /* I2cHost.h */, + 9AA90AA225CD451600BD5E8B /* DevicePathFromText.h */, + 9AA90AA325CD451600BD5E8B /* Shell.h */, + 9AA90AA425CD451600BD5E8B /* IpSec.h */, + 9AA90AA525CD451600BD5E8B /* SimpleTextInEx.h */, + 9AA90AA625CD451600BD5E8B /* CpuIo2.h */, + 9AA90AA725CD451600BD5E8B /* Ip4.h */, + 9AA90AA825CD451600BD5E8B /* DriverConfiguration.h */, + 9AA90AA925CD451600BD5E8B /* SpiSmmConfiguration.h */, + 9AA90AAA25CD451600BD5E8B /* DiskIo.h */, + 9AA90AAB25CD451600BD5E8B /* Tls.h */, + 9AA90AAC25CD451600BD5E8B /* MmReadyToLock.h */, + 9AA90AAD25CD451600BD5E8B /* SimpleFileSystem.h */, + 9AA90AAE25CD451600BD5E8B /* MmStatusCode.h */, + 9AA90AAF25CD451600BD5E8B /* Http.h */, + 9AA90AB025CD451600BD5E8B /* ScsiPassThruExt.h */, + 9AA90AB125CD451600BD5E8B /* HiiConfigAccess.h */, + 9AA90AB225CD451600BD5E8B /* SmbusHc.h */, + 9AA90AB325CD451600BD5E8B /* DevicePathToText.h */, + 9AA90AB425CD451600BD5E8B /* MmCpuIo.h */, + 9AA90AB525CD451600BD5E8B /* ServiceBinding.h */, + 9AA90AB625CD451600BD5E8B /* DriverConfiguration2.h */, + 9AA90AB725CD451600BD5E8B /* Usb2HostController.h */, + 9AA90AB825CD451600BD5E8B /* FirmwareManagement.h */, + 9AA90AB925CD451600BD5E8B /* EdidDiscovered.h */, + 9AA90ABA25CD451600BD5E8B /* MmEndOfDxe.h */, + 9AA90ABB25CD451600BD5E8B /* BootManagerPolicy.h */, + 9AA90ABC25CD451600BD5E8B /* RealTimeClock.h */, + 9AA90ABD25CD451600BD5E8B /* SimplePointer.h */, + 9AA90ABE25CD451600BD5E8B /* Ip6Config.h */, + 9AA90ABF25CD451600BD5E8B /* I2cIo.h */, + 9AA90AC025CD451600BD5E8B /* Dns6.h */, + 9AA90AC125CD451600BD5E8B /* UfsDeviceConfig.h */, + 9AA90AC225CD451600BD5E8B /* DeviceIo.h */, + 9AA90AC325CD451600BD5E8B /* ReportStatusCodeHandler.h */, + 9AA90AC425CD451600BD5E8B /* TlsConfig.h */, + 9AA90AC525CD451600BD5E8B /* ScsiIo.h */, + 9AA90AC625CD451600BD5E8B /* Security.h */, + 9AA90AC725CD451600BD5E8B /* SmmSxDispatch2.h */, + 9AA90AC825CD451600BD5E8B /* MmControl.h */, + 9AA90AC925CD451600BD5E8B /* NetworkInterfaceIdentifier.h */, + 9AA90ACA25CD451600BD5E8B /* MmPowerButtonDispatch.h */, + 9AA90ACB25CD451600BD5E8B /* Security2.h */, + 9AA90ACC25CD451600BD5E8B /* EdidActive.h */, + 9AA90ACD25CD451600BD5E8B /* UserCredential.h */, + 9AA90ACE25CD451600BD5E8B /* MmAccess.h */, + 9AA90ACF25CD451600BD5E8B /* UnicodeCollation.h */, + 9AA90AD025CD451600BD5E8B /* MonotonicCounter.h */, + 9AA90AD125CD451600BD5E8B /* BluetoothHc.h */, + 9AA90AD225CD451600BD5E8B /* PlatformDriverOverride.h */, + 9AA90AD325CD451600BD5E8B /* ManagedNetwork.h */, + 9AA90AD425CD451600BD5E8B /* DriverDiagnostics.h */, + 9AA90AD525CD451600BD5E8B /* HiiImageDecoder.h */, + 9AA90AD625CD451600BD5E8B /* SimpleNetwork.h */, + 9AA90AD725CD451600BD5E8B /* HiiString.h */, + 9AA90AD825CD451600BD5E8B /* TrEEProtocol.h */, + 9AA90AD925CD451600BD5E8B /* VariableWrite.h */, + 9AA90ADA25CD451600BD5E8B /* BluetoothLeConfig.h */, + 9AA90ADB25CD451600BD5E8B /* Ip4Config.h */, + 9AA90ADC25CD451600BD5E8B /* MmMp.h */, + 9AA90ADD25CD451600BD5E8B /* HiiPopup.h */, + 9AA90ADE25CD451600BD5E8B /* GraphicsOutput.h */, + 9AA90ADF25CD451600BD5E8B /* IScsiInitiatorName.h */, + 9AA90AE025CD451600BD5E8B /* Ftp4.h */, + 9AA90AE125CD451600BD5E8B /* AtaPassThru.h */, + 9AA90AE225CD451600BD5E8B /* SimpleTextOut.h */, + 9AA90AE325CD451600BD5E8B /* HiiConfigKeyword.h */, + 9AA90AE425CD451600BD5E8B /* PciOverride.h */, + 9AA90AE525CD451600BD5E8B /* DiskIo2.h */, + 9AA90AE625CD451600BD5E8B /* IsaHc.h */, + 9AA90AE725CD451600BD5E8B /* ComponentName2.h */, + 9AA90AE825CD451600BD5E8B /* SmmStatusCode.h */, + 9AA90AE925CD451600BD5E8B /* PciPlatform.h */, + 9AA90AEA25CD451600BD5E8B /* DriverDiagnostics2.h */, + 9AA90AEB25CD451600BD5E8B /* Rng.h */, + 9AA90AEC25CD451600BD5E8B /* Dhcp4.h */, + 9AA90AED25CD451600BD5E8B /* PxeBaseCode.h */, + 9AA90AEE25CD451600BD5E8B /* GuidedSectionExtraction.h */, + 9AA90AEF25CD451600BD5E8B /* Variable.h */, + 9AA90AF025CD451600BD5E8B /* MmReportStatusCodeHandler.h */, + 9AA90AF125CD451600BD5E8B /* DxeMmReadyToLock.h */, + 9AA90AF225CD451600BD5E8B /* DriverBinding.h */, + 9AA90AF325CD451600BD5E8B /* FirmwareVolume2.h */, + 9AA90AF425CD451600BD5E8B /* BlockIo.h */, + 9AA90AF525CD451600BD5E8B /* MmBase.h */, + 9AA90AF625CD451600BD5E8B /* SmmCpuIo2.h */, + 9AA90AF725CD451600BD5E8B /* SmmUsbDispatch2.h */, + 9AA90AF825CD451600BD5E8B /* Mtftp6.h */, + 9AA90AF925CD451600BD5E8B /* S3SmmSaveState.h */, + 9AA90AFA25CD451600BD5E8B /* SpiNorFlash.h */, + 9AA90AFB25CD451600BD5E8B /* Metronome.h */, + 9AA90AFC25CD451600BD5E8B /* SmmPowerButtonDispatch2.h */, + 9AA90AFD25CD451600BD5E8B /* Runtime.h */, + 9AA90AFE25CD451600BD5E8B /* LegacySpiSmmFlash.h */, + 9AA90AFF25CD451600BD5E8B /* PlatformToDriverConfiguration.h */, + 9AA90B0025CD451600BD5E8B /* Timer.h */, + 9AA90B0125CD451600BD5E8B /* DevicePathUtilities.h */, + 9AA90B0225CD451600BD5E8B /* PxeBaseCodeCallBack.h */, + 9AA90B0325CD451600BD5E8B /* LegacySpiSmmController.h */, + 9AA90B0425CD451600BD5E8B /* LegacyRegion2.h */, + 9AA90B0525CD451600BD5E8B /* DebugPort.h */, + 9AA90B0625CD451600BD5E8B /* Tcp6.h */, + 9AA90B0725CD451600BD5E8B /* PciRootBridgeIo.h */, + 9AA90B0825CD451600BD5E8B /* Pcd.h */, + 9AA90B0925CD451600BD5E8B /* UgaIo.h */, + 9AA90B0A25CD451600BD5E8B /* SpiSmmNorFlash.h */, + 9AA90B0B25CD451600BD5E8B /* Hash2.h */, + 9AA90B0C25CD451600BD5E8B /* SpiConfiguration.h */, + 9AA90B0D25CD451600BD5E8B /* SuperIoControl.h */, + 9AA90B0E25CD451600BD5E8B /* DevicePath.h */, + 9AA90B0F25CD451600BD5E8B /* TapeIo.h */, + 9AA90B1025CD451600BD5E8B /* SmmCpu.h */, + 9AA90B1125CD451600BD5E8B /* DriverSupportedEfiVersion.h */, + 9AA90B1225CD451600BD5E8B /* StorageSecurityCommand.h */, + 9AA90B1325CD451600BD5E8B /* UserManager.h */, + 9AA90B1425CD451600BD5E8B /* PiPcd.h */, + 9AA90B1525CD451600BD5E8B /* SecurityPolicy.h */, + 9AA90B1625CD451600BD5E8B /* UsbFunctionIo.h */, + 9AA90B1725CD451600BD5E8B /* BusSpecificDriverOverride.h */, + 9AA90B1825CD451600BD5E8B /* MmSwDispatch.h */, + 9AA90B1925CD451600BD5E8B /* Supplicant.h */, + 9AA90B1A25CD451600BD5E8B /* Udp6.h */, + 9AA90B1B25CD451600BD5E8B /* SmmReadyToLock.h */, + 9AA90B1C25CD451600BD5E8B /* PciHotPlugRequest.h */, + 9AA90B1D25CD451600BD5E8B /* AuthenticationInfo.h */, + 9AA90B1E25CD451600BD5E8B /* Ip4Config2.h */, + 9AA90B1F25CD451600BD5E8B /* MmCommunication.h */, + 9AA90B2025CD451600BD5E8B /* EapManagement2.h */, + 9AA90B2125CD451600BD5E8B /* Decompress.h */, + 9AA90B2225CD451600BD5E8B /* PiPcdInfo.h */, + 9AA90B2325CD451600BD5E8B /* PciHostBridgeResourceAllocation.h */, + 9AA90B2425CD451600BD5E8B /* HiiPackageList.h */, + 9AA90B2525CD451600BD5E8B /* SpiIo.h */, + 9AA90B2625CD451600BD5E8B /* HiiImage.h */, + 9AA90B2725CD451600BD5E8B /* Pkcs7Verify.h */, + 9AA90B2825CD451600BD5E8B /* SmmGpiDispatch2.h */, + 9AA90B2925CD451600BD5E8B /* SmmCommunication.h */, + 9AA90B2A25CD451600BD5E8B /* NvmExpressPassthru.h */, + 9AA90B2B25CD451600BD5E8B /* IpSecConfig.h */, + 9AA90B2C25CD451600BD5E8B /* DeferredImageLoad.h */, + 9AA90B2D25CD451600BD5E8B /* MmUsbDispatch.h */, + 9AA90B2E25CD451600BD5E8B /* SmmStandbyButtonDispatch2.h */, + 9AA90B2F25CD451600BD5E8B /* Capsule.h */, + 9AA90B3025CD451600BD5E8B /* SuperIo.h */, + 9AA90B3125CD451600BD5E8B /* RegularExpressionProtocol.h */, + 9AA90B3225CD451600BD5E8B /* IdeControllerInit.h */, + 9AA90B3325CD451600BD5E8B /* Cpu.h */, + 9AA90B3425CD451600BD5E8B /* AbsolutePointer.h */, + 9AA90B3525CD451600BD5E8B /* UsbHostController.h */, + 9AA90B3625CD451600BD5E8B /* UsbIo.h */, + 9AA90B3725CD451600BD5E8B /* HiiConfigRouting.h */, + 9AA90B3825CD451600BD5E8B /* BluetoothAttribute.h */, + 9AA90B3925CD451600BD5E8B /* Ip6.h */, + 9AA90B3A25CD451600BD5E8B /* BlockIo2.h */, + 9AA90B3B25CD451600BD5E8B /* Dns4.h */, + 9AA90B3C25CD451600BD5E8B /* HiiDatabase.h */, + 9AA90B3D25CD451600BD5E8B /* HiiImageEx.h */, + 9AA90B3E25CD451600BD5E8B /* PciIo.h */, + 9AA90B3F25CD451600BD5E8B /* MmPeriodicTimerDispatch.h */, + 9AA90B4025CD451600BD5E8B /* RamDisk.h */, + 9AA90B4125CD451600BD5E8B /* ScsiPassThru.h */, + 9AA90B4225CD451600BD5E8B /* DiskInfo.h */, + 9AA90B4325CD451600BD5E8B /* Bds.h */, + 9AA90B4425CD451600BD5E8B /* SerialIo.h */, + 9AA90B4525CD451600BD5E8B /* DriverHealth.h */, + 9AA90B4625CD451600BD5E8B /* Arp.h */, + 9AA90B4725CD451600BD5E8B /* ShellParameters.h */, + 9AA90B4825CD451600BD5E8B /* IncompatiblePciDeviceSupport.h */, + 9AA90B4925CD451600BD5E8B /* LegacySpiFlash.h */, + 9AA90B4A25CD451600BD5E8B /* I2cMaster.h */, + 9AA90B4B25CD451600BD5E8B /* Smbios.h */, + 9AA90B4C25CD451600BD5E8B /* EapManagement.h */, + 9AA90B4D25CD451600BD5E8B /* EraseBlock.h */, + 9AA90B4E25CD451600BD5E8B /* Tcg2Protocol.h */, + 9AA90B4F25CD451600BD5E8B /* AcpiSystemDescriptionTable.h */, + 9AA90B5025CD451600BD5E8B /* PciEnumerationComplete.h */, + 9AA90B5125CD451600BD5E8B /* ResetNotification.h */, + 9AA90B5225CD451600BD5E8B /* PciHotPlugInit.h */, + 9AA90B5325CD451600BD5E8B /* Kms.h */, + 9AA90B5425CD451600BD5E8B /* MmPciRootBridgeIo.h */, + 9AA90B5525CD451600BD5E8B /* I2cBusConfigurationManagement.h */, + 9AA90B5625CD451600BD5E8B /* LoadFile.h */, + 9AA90B5725CD451600BD5E8B /* PcdInfo.h */, + 9AA90B5825CD451600BD5E8B /* WatchdogTimer.h */, + 9AA90B5925CD451600BD5E8B /* SmmEndOfDxe.h */, + 9AA90B5A25CD451600BD5E8B /* MmConfiguration.h */, + 9AA90B5B25CD451600BD5E8B /* SmmPeriodicTimerDispatch2.h */, + 9AA90B5C25CD451600BD5E8B /* S3SaveState.h */, + 9AA90B5D25CD451600BD5E8B /* SdMmcPassThru.h */, + 9AA90B5E25CD451600BD5E8B /* Reset.h */, + 9AA90B5F25CD451600BD5E8B /* Dhcp6.h */, + 9AA90B6025CD451600BD5E8B /* DxeSmmReadyToLock.h */, + 9AA90B6125CD451600BD5E8B /* MpService.h */, + 9AA90B6225CD451600BD5E8B /* SmmConfiguration.h */, + 9AA90B6325CD451600BD5E8B /* MmGpiDispatch.h */, + 9AA90B6425CD451600BD5E8B /* SmmControl2.h */, + 9AA90B6525CD451600BD5E8B /* StatusCode.h */, + 9AA90B6625CD451600BD5E8B /* Timestamp.h */, + 9AA90B6725CD451600BD5E8B /* BlockIoCrypto.h */, + 9AA90B6825CD451600BD5E8B /* SmartCardReader.h */, + 9AA90B6925CD451600BD5E8B /* FirmwareVolumeBlock.h */, + 9AA90B6A25CD451600BD5E8B /* HttpBootCallback.h */, + 9AA90B6B25CD451600BD5E8B /* SimpleTextIn.h */, + 9AA90B6C25CD451600BD5E8B /* MmIoTrapDispatch.h */, + 9AA90B6D25CD451600BD5E8B /* Hash.h */, + 9AA90B6E25CD451600BD5E8B /* VlanConfig.h */, + 9AA90B6F25CD451600BD5E8B /* HiiFont.h */, + 9AA90B7025CD451600BD5E8B /* SmmAccess2.h */, + 9AA90B7125CD451600BD5E8B /* UserCredential2.h */, + 9AA90B7225CD451600BD5E8B /* AcpiTable.h */, + 9AA90B7325CD451600BD5E8B /* EdidOverride.h */, + 9AA90B7425CD451600BD5E8B /* I2cEnumerate.h */, + 9AA90B7525CD451600BD5E8B /* BluetoothConfig.h */, + 9AA90B7625CD451600BD5E8B /* BluetoothIo.h */, + 9AA90B7725CD451600BD5E8B /* MmStandbyButtonDispatch.h */, + 9AA90B7825CD451600BD5E8B /* Mtftp4.h */, + 9AA90B7925CD451600BD5E8B /* SmmIoTrapDispatch2.h */, + 9AA90B7A25CD451600BD5E8B /* SpiSmmHc.h */, + 9AA90B7B25CD451600BD5E8B /* Ebc.h */, + 9AA90B7C25CD451600BD5E8B /* DebugSupport.h */, + 9AA90B7D25CD451600BD5E8B /* ComponentName.h */, + 9AA90B7E25CD451600BD5E8B /* Eap.h */, + 9AA90B7F25CD451600BD5E8B /* AdapterInformation.h */, + 9AA90B8025CD451600BD5E8B /* SmmBase2.h */, + 9AA90B8125CD451600BD5E8B /* SmmPciRootBridgeIo.h */, + 9AA90B8225CD451600BD5E8B /* HttpUtilities.h */, + 9AA90B8325CD451600BD5E8B /* LoadFile2.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA90B8425CD451600BD5E8B /* Pi */ = { + isa = PBXGroup; + children = ( + 9AA90B8525CD451600BD5E8B /* PiFirmwareVolume.h */, + 9AA90B8625CD451600BD5E8B /* PiMmCis.h */, + 9AA90B8725CD451600BD5E8B /* PiDxeCis.h */, + 9AA90B8825CD451600BD5E8B /* PiStatusCode.h */, + 9AA90B8925CD451600BD5E8B /* PiBootMode.h */, + 9AA90B8A25CD451600BD5E8B /* PiHob.h */, + 9AA90B8B25CD451600BD5E8B /* PiPeiCis.h */, + 9AA90B8C25CD451600BD5E8B /* PiSmmCis.h */, + 9AA90B8D25CD451600BD5E8B /* PiDependency.h */, + 9AA90B8E25CD451600BD5E8B /* PiS3BootScript.h */, + 9AA90B8F25CD451600BD5E8B /* PiMultiPhase.h */, + 9AA90B9025CD451600BD5E8B /* PiFirmwareFile.h */, + 9AA90B9125CD451600BD5E8B /* PiI2c.h */, + ); + path = Pi; + sourceTree = ""; + }; + 9AA90B9325CD451600BD5E8B /* Register */ = { + isa = PBXGroup; + children = ( + 9AA90B9425CD451600BD5E8B /* Intel */, + 9AA90BB425CD451600BD5E8B /* Amd */, + ); + path = Register; + sourceTree = ""; + }; + 9AA90B9425CD451600BD5E8B /* Intel */ = { + isa = PBXGroup; + children = ( + 9AA90B9525CD451600BD5E8B /* Microcode.h */, + 9AA90B9625CD451600BD5E8B /* SmramSaveStateMap.h */, + 9AA90B9725CD451600BD5E8B /* Msr */, + 9AA90BAD25CD451600BD5E8B /* Cpuid.h */, + 9AA90BAE25CD451600BD5E8B /* StmStatusCode.h */, + 9AA90BAF25CD451600BD5E8B /* StmResourceDescriptor.h */, + 9AA90BB025CD451600BD5E8B /* LocalApic.h */, + 9AA90BB125CD451600BD5E8B /* StmApi.h */, + 9AA90BB225CD451600BD5E8B /* ArchitecturalMsr.h */, + 9AA90BB325CD451600BD5E8B /* Msr.h */, + ); + path = Intel; + sourceTree = ""; + }; + 9AA90B9725CD451600BD5E8B /* Msr */ = { + isa = PBXGroup; + children = ( + 9AA90B9825CD451600BD5E8B /* Pentium4Msr.h */, + 9AA90B9925CD451600BD5E8B /* GoldmontPlusMsr.h */, + 9AA90B9A25CD451600BD5E8B /* IvyBridgeMsr.h */, + 9AA90B9B25CD451600BD5E8B /* BroadwellMsr.h */, + 9AA90B9C25CD451600BD5E8B /* HaswellEMsr.h */, + 9AA90B9D25CD451600BD5E8B /* XeonE7Msr.h */, + 9AA90B9E25CD451600BD5E8B /* Core2Msr.h */, + 9AA90B9F25CD451600BD5E8B /* NehalemMsr.h */, + 9AA90BA025CD451600BD5E8B /* SandyBridgeMsr.h */, + 9AA90BA125CD451600BD5E8B /* P6Msr.h */, + 9AA90BA225CD451600BD5E8B /* PentiumMsr.h */, + 9AA90BA325CD451600BD5E8B /* SilvermontMsr.h */, + 9AA90BA425CD451600BD5E8B /* Xeon5600Msr.h */, + 9AA90BA525CD451600BD5E8B /* SkylakeMsr.h */, + 9AA90BA625CD451600BD5E8B /* CoreMsr.h */, + 9AA90BA725CD451600BD5E8B /* XeonDMsr.h */, + 9AA90BA825CD451600BD5E8B /* XeonPhiMsr.h */, + 9AA90BA925CD451600BD5E8B /* PentiumMMsr.h */, + 9AA90BAA25CD451600BD5E8B /* GoldmontMsr.h */, + 9AA90BAB25CD451600BD5E8B /* HaswellMsr.h */, + 9AA90BAC25CD451600BD5E8B /* AtomMsr.h */, + ); + path = Msr; + sourceTree = ""; + }; + 9AA90BB425CD451600BD5E8B /* Amd */ = { + isa = PBXGroup; + children = ( + 9AA90BB525CD451600BD5E8B /* Cpuid.h */, + 9AA90BB625CD451600BD5E8B /* Fam17Msr.h */, + 9AA90BB725CD451600BD5E8B /* Msr.h */, + ); + path = Amd; + sourceTree = ""; + }; + 9AA90BB925CD451600BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA90BBA25CD451600BD5E8B /* MdePkgTokenSpace.h */, + 9AA90BBB25CD451600BD5E8B /* SmramMemoryReserve.h */, + 9AA90BBC25CD451600BD5E8B /* FileInfo.h */, + 9AA90BBD25CD451600BD5E8B /* SystemResourceTable.h */, + 9AA90BBE25CD451600BD5E8B /* AprioriFileName.h */, + 9AA90BBF25CD451600BD5E8B /* PropertiesTable.h */, + 9AA90BC025CD451600BD5E8B /* MemoryAllocationHob.h */, + 9AA90BC125CD451600BD5E8B /* EventGroup.h */, + 9AA90BC225CD451600BD5E8B /* FirmwareFileSystem3.h */, + 9AA90BC325CD451600BD5E8B /* Cper.h */, + 9AA90BC425CD451600BD5E8B /* MemoryOverwriteControl.h */, + 9AA90BC525CD451600BD5E8B /* Gpt.h */, + 9AA90BC625CD451600BD5E8B /* MemoryAttributesTable.h */, + 9AA90BC725CD451600BD5E8B /* EventLegacyBios.h */, + 9AA90BC825CD451600BD5E8B /* FmpCapsule.h */, + 9AA90BC925CD451600BD5E8B /* FirmwareContentsSigned.h */, + 9AA90BCA25CD451600BD5E8B /* Acpi.h */, + 9AA90BCB25CD451600BD5E8B /* Apriori.h */, + 9AA90BCC25CD451600BD5E8B /* DxeServices.h */, + 9AA90BCD25CD451600BD5E8B /* Btt.h */, + 9AA90BCE25CD451600BD5E8B /* HobList.h */, + 9AA90BCF25CD451600BD5E8B /* GraphicsInfoHob.h */, + 9AA90BD025CD451600BD5E8B /* HiiFormMapMethodGuid.h */, + 9AA90BD125CD451600BD5E8B /* FileSystemVolumeLabelInfo.h */, + 9AA90BD225CD451600BD5E8B /* FirmwareFileSystem2.h */, + 9AA90BD325CD451600BD5E8B /* StatusCodeDataTypeId.h */, + 9AA90BD425CD451600BD5E8B /* DebugImageInfoTable.h */, + 9AA90BD525CD451600BD5E8B /* HiiKeyBoardLayout.h */, + 9AA90BD625CD451600BD5E8B /* WinCertificate.h */, + 9AA90BD725CD451600BD5E8B /* SmBios.h */, + 9AA90BD825CD451600BD5E8B /* ImageAuthentication.h */, + 9AA90BD925CD451600BD5E8B /* VectorHandoffTable.h */, + 9AA90BDA25CD451600BD5E8B /* FileSystemInfo.h */, + 9AA90BDB25CD451600BD5E8B /* HardwareErrorVariable.h */, + 9AA90BDC25CD451600BD5E8B /* Mps.h */, + 9AA90BDD25CD451600BD5E8B /* PcAnsi.h */, + 9AA90BDE25CD451600BD5E8B /* GlobalVariable.h */, + 9AA90BDF25CD451600BD5E8B /* HiiPlatformSetupFormset.h */, + 9AA90BE025CD451600BD5E8B /* CapsuleReport.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA90BE125CD451600BD5E8B /* Ppi */ = { + isa = PBXGroup; + children = ( + 9AA90BE225CD451600BD5E8B /* PeiCoreFvLocation.h */, + 9AA90BE325CD451600BD5E8B /* SecHobData.h */, + 9AA90BE425CD451600BD5E8B /* VectorHandoffInfo.h */, + 9AA90BE525CD451600BD5E8B /* ReadOnlyVariable2.h */, + 9AA90BE625CD451600BD5E8B /* ReportStatusCodeHandler.h */, + 9AA90BE725CD451600BD5E8B /* S3Resume2.h */, + 9AA90BE825CD451600BD5E8B /* MmControl.h */, + 9AA90BE925CD451600BD5E8B /* Reset2.h */, + 9AA90BEA25CD451600BD5E8B /* Security2.h */, + 9AA90BEB25CD451600BD5E8B /* MmAccess.h */, + 9AA90BEC25CD451600BD5E8B /* EndOfPeiPhase.h */, + 9AA90BED25CD451600BD5E8B /* Smbus2.h */, + 9AA90BEE25CD451600BD5E8B /* BootInRecoveryMode.h */, + 9AA90BEF25CD451600BD5E8B /* IsaHc.h */, + 9AA90BF025CD451600BD5E8B /* DxeIpl.h */, + 9AA90BF125CD451600BD5E8B /* GuidedSectionExtraction.h */, + 9AA90BF225CD451600BD5E8B /* MemoryDiscovered.h */, + 9AA90BF325CD451600BD5E8B /* BlockIo.h */, + 9AA90BF425CD451600BD5E8B /* Pcd.h */, + 9AA90BF525CD451600BD5E8B /* LoadImage.h */, + 9AA90BF625CD451600BD5E8B /* FirmwareVolumeInfo2.h */, + 9AA90BF725CD451600BD5E8B /* PiPcd.h */, + 9AA90BF825CD451600BD5E8B /* Stall.h */, + 9AA90BF925CD451600BD5E8B /* PciCfg2.h */, + 9AA90BFA25CD451600BD5E8B /* Decompress.h */, + 9AA90BFB25CD451600BD5E8B /* PiPcdInfo.h */, + 9AA90BFC25CD451600BD5E8B /* MasterBootMode.h */, + 9AA90BFD25CD451600BD5E8B /* Capsule.h */, + 9AA90BFE25CD451600BD5E8B /* SuperIo.h */, + 9AA90BFF25CD451600BD5E8B /* BlockIo2.h */, + 9AA90C0025CD451600BD5E8B /* FirmwareVolumeInfo.h */, + 9AA90C0125CD451600BD5E8B /* I2cMaster.h */, + 9AA90C0225CD451600BD5E8B /* RecoveryModule.h */, + 9AA90C0325CD451600BD5E8B /* SecPlatformInformation2.h */, + 9AA90C0425CD451600BD5E8B /* Graphics.h */, + 9AA90C0525CD451700BD5E8B /* MpServices.h */, + 9AA90C0625CD451700BD5E8B /* TemporaryRamSupport.h */, + 9AA90C0725CD451700BD5E8B /* TemporaryRamDone.h */, + 9AA90C0825CD451700BD5E8B /* DeviceRecoveryModule.h */, + 9AA90C0925CD451700BD5E8B /* LoadFile.h */, + 9AA90C0A25CD451700BD5E8B /* PcdInfo.h */, + 9AA90C0B25CD451700BD5E8B /* Reset.h */, + 9AA90C0C25CD451700BD5E8B /* StatusCode.h */, + 9AA90C0D25CD451700BD5E8B /* SecPlatformInformation.h */, + 9AA90C0E25CD451700BD5E8B /* CpuIo.h */, + 9AA90C0F25CD451700BD5E8B /* FirmwareVolume.h */, + ); + path = Ppi; + sourceTree = ""; + }; + 9AA90C1125CD451700BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA90C2825CD451700BD5E8B /* BaseCacheMaintenanceLib */, + 9AA90E4D25CD451800BD5E8B /* BaseCpuLib */, + 9AA90C3D25CD451700BD5E8B /* BaseDebugLibNull */, + 9AA90F3025CD451800BD5E8B /* BaseDebugLibSerialPort */, + 9AA90C2425CD451700BD5E8B /* BaseDebugPrintErrorLevelLib */, + 9AA90F8E25CD451900BD5E8B /* BaseExtractGuidedSectionLib */, + 9AA90FC125CD451900BD5E8B /* BaseIoLibIntrinsic */, + 9AA90C6525CD451700BD5E8B /* BaseLib */, + 9AA90F0325CD451800BD5E8B /* BaseMemoryLib */, + 9AA9100425CD451900BD5E8B /* BaseMemoryLibMmx */, + 9AA90E7A25CD451800BD5E8B /* BaseMemoryLibOptDxe */, + 9AA9105C25CD451900BD5E8B /* BaseMemoryLibOptPei */, + 9AA90DE025CD451800BD5E8B /* BaseMemoryLibRepStr */, + 9AA90F3425CD451800BD5E8B /* BaseMemoryLibSse2 */, + 9AA9102F25CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib */, + 9AA90EC425CD451800BD5E8B /* BasePcdLibNull */, + 9AA90EE925CD451800BD5E8B /* BasePciCf8Lib */, + 9AA90C4A25CD451700BD5E8B /* BasePciExpressLib */, + 9AA90C3525CD451700BD5E8B /* BasePciLibCf8 */, + 9AA9104025CD451900BD5E8B /* BasePciLibPciExpress */, + 9AA90F8625CD451800BD5E8B /* BasePciSegmentInfoLibNull */, + 9AA90EBC25CD451800BD5E8B /* BasePciSegmentLibPci */, + 9AA910AB25CD451900BD5E8B /* BasePeCoffExtraActionLibNull */, + 9AA90FE025CD451900BD5E8B /* BasePeCoffGetEntryPointLib */, + 9AA90EDD25CD451800BD5E8B /* BasePeCoffLib */, + 9AA90EB825CD451800BD5E8B /* BasePerformanceLibNull */, + 9AA9105425CD451900BD5E8B /* BasePostCodeLibDebug */, + 9AA90ED525CD451800BD5E8B /* BasePostCodeLibPort80 */, + 9AA9109725CD451900BD5E8B /* BasePrintLib */, + 9AA910A325CD451900BD5E8B /* BaseReportStatusCodeLibNull */, + 9AA90ECD25CD451800BD5E8B /* BaseRngLib */, + 9AA90F6A25CD451800BD5E8B /* BaseS3BootScriptLibNull */, + 9AA90F2C25CD451800BD5E8B /* BaseS3IoLib */, + 9AA9109325CD451900BD5E8B /* BaseS3PciLib */, + 9AA90F8225CD451800BD5E8B /* BaseS3PciSegmentLib */, + 9AA90C4E25CD451700BD5E8B /* BaseS3SmbusLib */, + 9AA9105825CD451900BD5E8B /* BaseS3StallLib */, + 9AA90EF125CD451800BD5E8B /* BaseSafeIntLib */, + 9AA90F6625CD451800BD5E8B /* BaseSerialPortLibNull */, + 9AA90F2425CD451800BD5E8B /* BaseSmbusLibNull */, + 9AA90EC825CD451800BD5E8B /* BaseStackCheckLib */, + 9AA90E0B25CD451800BD5E8B /* BaseSynchronizationLib */, + 9AA90F2825CD451800BD5E8B /* BaseTimerLibNullTemplate */, + 9AA90F5F25CD451800BD5E8B /* BaseUefiDecompressLib */, + 9AA90ED125CD451800BD5E8B /* DxeCoreEntryPoint */, + 9AA90FEC25CD451900BD5E8B /* DxeCoreHobLib */, + 9AA90EFB25CD451800BD5E8B /* DxeExtractGuidedSectionLib */, + 9AA90F7E25CD451800BD5E8B /* DxeHobLib */, + 9AA9104E25CD451900BD5E8B /* DxeHstiLib */, + 9AA90C2E25CD451700BD5E8B /* DxeIoLibCpuIo2 */, + 9AA90F6E25CD451800BD5E8B /* DxePcdLib */, + 9AA9100025CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort */, + 9AA90E7625CD451800BD5E8B /* DxeRuntimePciExpressLib */, + 9AA90C5225CD451700BD5E8B /* DxeServicesLib */, + 9AA910A725CD451900BD5E8B /* DxeServicesTableLib */, + 9AA90F1E25CD451800BD5E8B /* DxeSmbusLib */, + 9AA90EED25CD451800BD5E8B /* MmServicesTableLib */, + 9AA90E4425CD451800BD5E8B /* PciSegmentLibSegmentInfo */, + 9AA90ED925CD451800BD5E8B /* PeiCoreEntryPoint */, + 9AA90EC025CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode */, + 9AA90E6625CD451800BD5E8B /* PeiExtractGuidedSectionLib */, + 9AA90FAA25CD451900BD5E8B /* PeiHobLib */, + 9AA9109D25CD451900BD5E8B /* PeiIoLibCpuIo */, + 9AA90F9B25CD451900BD5E8B /* PeiMemoryAllocationLib */, + 9AA90FAE25CD451900BD5E8B /* PeiMemoryLib */, + 9AA9108B25CD451900BD5E8B /* PeimEntryPoint */, + 9AA90FF425CD451900BD5E8B /* PeiPcdLib */, + 9AA90C1A25CD451700BD5E8B /* PeiPciLibPciCfg2 */, + 9AA90FDC25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2 */, + 9AA90F7A25CD451800BD5E8B /* PeiResourcePublicationLib */, + 9AA90C4625CD451700BD5E8B /* PeiServicesLib */, + 9AA90C3925CD451700BD5E8B /* PeiServicesTablePointerLib */, + 9AA90C1225CD451700BD5E8B /* PeiServicesTablePointerLibIdt */, + 9AA90C1E25CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi */, + 9AA90C5925CD451700BD5E8B /* SecPeiDxeTimerLibCpu */, + 9AA9108F25CD451900BD5E8B /* SmiHandlerProfileLibNull */, + 9AA90FE825CD451900BD5E8B /* SmmIoLib */, + 9AA90F1725CD451800BD5E8B /* SmmIoLibSmmCpuIo2 */, + 9AA90EE525CD451800BD5E8B /* SmmLibNull */, + 9AA90FF825CD451900BD5E8B /* SmmMemLib */, + 9AA90F8A25CD451800BD5E8B /* SmmMemoryAllocationLib */, + 9AA90E7325CD451800BD5E8B /* SmmPciExpressLib */, + 9AA90C6125CD451700BD5E8B /* SmmPciLibPciRootBridgeIo */, + 9AA90F7225CD451800BD5E8B /* SmmPeriodicSmiLib */, + 9AA90EF725CD451800BD5E8B /* SmmServicesTableLib */, + 9AA90C5D25CD451700BD5E8B /* StandaloneMmDriverEntryPoint */, + 9AA90C1625CD451700BD5E8B /* StandaloneMmServicesTableLib */, + 9AA90EFF25CD451800BD5E8B /* UefiApplicationEntryPoint */, + 9AA90F9225CD451900BD5E8B /* UefiBootServicesTableLib */, + 9AA9103B25CD451900BD5E8B /* UefiDebugLibConOut */, + 9AA90E6E25CD451800BD5E8B /* UefiDebugLibDebugPortProtocol */, + 9AA90F9625CD451900BD5E8B /* UefiDebugLibStdErr */, + 9AA90F9F25CD451900BD5E8B /* UefiDevicePathLib */, + 9AA90FE425CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol */, + 9AA90E6A25CD451800BD5E8B /* UefiDriverEntryPoint */, + 9AA90FFC25CD451900BD5E8B /* UefiFileHandleLib */, + 9AA9104425CD451900BD5E8B /* UefiLib */, + 9AA9103325CD451900BD5E8B /* UefiMemoryAllocationLib */, + 9AA90E3125CD451800BD5E8B /* UefiMemoryLib */, + 9AA9108725CD451900BD5E8B /* UefiPciLibPciRootBridgeIo */, + 9AA90C4125CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo */, + 9AA9103725CD451900BD5E8B /* UefiRuntimeLib */, + 9AA90FF025CD451900BD5E8B /* UefiRuntimeServicesTableLib */, + 9AA90F7625CD451800BD5E8B /* UefiScsiLib */, + 9AA910AF25CD451900BD5E8B /* UefiUsbLib */, + ); + path = Library; + sourceTree = ""; + }; + 9AA90C1225CD451700BD5E8B /* PeiServicesTablePointerLibIdt */ = { + isa = PBXGroup; + children = ( + 9AA90C1325CD451700BD5E8B /* PeiServicesTablePointerLibIdt.uni */, + 9AA90C1425CD451700BD5E8B /* PeiServicesTablePointerLibIdt.inf */, + 9AA90C1525CD451700BD5E8B /* PeiServicesTablePointer.c */, + ); + path = PeiServicesTablePointerLibIdt; + sourceTree = ""; + }; + 9AA90C1625CD451700BD5E8B /* StandaloneMmServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA90C1725CD451700BD5E8B /* StandaloneMmServicesTableLib.c */, + 9AA90C1825CD451700BD5E8B /* StandaloneMmServicesTableLib.inf */, + 9AA90C1925CD451700BD5E8B /* StandaloneMmServicesTableLib.uni */, + ); + path = StandaloneMmServicesTableLib; + sourceTree = ""; + }; + 9AA90C1A25CD451700BD5E8B /* PeiPciLibPciCfg2 */ = { + isa = PBXGroup; + children = ( + 9AA90C1B25CD451700BD5E8B /* PeiPciLibPciCfg2.uni */, + 9AA90C1C25CD451700BD5E8B /* PeiPciLibPciCfg2.inf */, + 9AA90C1D25CD451700BD5E8B /* PciLib.c */, + ); + path = PeiPciLibPciCfg2; + sourceTree = ""; + }; + 9AA90C1E25CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi */ = { + isa = PBXGroup; + children = ( + 9AA90C1F25CD451700BD5E8B /* SmbusLib.c */, + 9AA90C2025CD451700BD5E8B /* InternalSmbusLib.h */, + 9AA90C2125CD451700BD5E8B /* PeiSmbusLib.c */, + 9AA90C2225CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi.inf */, + 9AA90C2325CD451700BD5E8B /* PeiSmbusLibSmbus2Ppi.uni */, + ); + path = PeiSmbusLibSmbus2Ppi; + sourceTree = ""; + }; + 9AA90C2425CD451700BD5E8B /* BaseDebugPrintErrorLevelLib */ = { + isa = PBXGroup; + children = ( + 9AA90C2525CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.c */, + 9AA90C2625CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.inf */, + 9AA90C2725CD451700BD5E8B /* BaseDebugPrintErrorLevelLib.uni */, + ); + path = BaseDebugPrintErrorLevelLib; + sourceTree = ""; + }; + 9AA90C2825CD451700BD5E8B /* BaseCacheMaintenanceLib */ = { + isa = PBXGroup; + children = ( + 9AA90C2925CD451700BD5E8B /* BaseCacheMaintenanceLib.inf */, + 9AA90C2A25CD451700BD5E8B /* BaseCacheMaintenanceLib.uni */, + 9AA90C2B25CD451700BD5E8B /* X86Cache.c */, + 9AA90C2C25CD451700BD5E8B /* ArmCache.c */, + 9AA90C2D25CD451700BD5E8B /* EbcCache.c */, + ); + path = BaseCacheMaintenanceLib; + sourceTree = ""; + }; + 9AA90C2E25CD451700BD5E8B /* DxeIoLibCpuIo2 */ = { + isa = PBXGroup; + children = ( + 9AA90C2F25CD451700BD5E8B /* IoLibMmioBuffer.c */, + 9AA90C3025CD451700BD5E8B /* IoLib.c */, + 9AA90C3125CD451700BD5E8B /* IoHighLevel.c */, + 9AA90C3225CD451700BD5E8B /* DxeIoLibCpuIo2.uni */, + 9AA90C3325CD451700BD5E8B /* DxeCpuIo2LibInternal.h */, + 9AA90C3425CD451700BD5E8B /* DxeIoLibCpuIo2.inf */, + ); + path = DxeIoLibCpuIo2; + sourceTree = ""; + }; + 9AA90C3525CD451700BD5E8B /* BasePciLibCf8 */ = { + isa = PBXGroup; + children = ( + 9AA90C3625CD451700BD5E8B /* BasePciLibCf8.inf */, + 9AA90C3725CD451700BD5E8B /* BasePciLibCf8.uni */, + 9AA90C3825CD451700BD5E8B /* PciLib.c */, + ); + path = BasePciLibCf8; + sourceTree = ""; + }; + 9AA90C3925CD451700BD5E8B /* PeiServicesTablePointerLib */ = { + isa = PBXGroup; + children = ( + 9AA90C3A25CD451700BD5E8B /* PeiServicesTablePointerLib.uni */, + 9AA90C3B25CD451700BD5E8B /* PeiServicesTablePointerLib.inf */, + 9AA90C3C25CD451700BD5E8B /* PeiServicesTablePointer.c */, + ); + path = PeiServicesTablePointerLib; + sourceTree = ""; + }; + 9AA90C3D25CD451700BD5E8B /* BaseDebugLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90C3E25CD451700BD5E8B /* BaseDebugLibNull.inf */, + 9AA90C3F25CD451700BD5E8B /* BaseDebugLibNull.uni */, + 9AA90C4025CD451700BD5E8B /* DebugLib.c */, + ); + path = BaseDebugLibNull; + sourceTree = ""; + }; + 9AA90C4125CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo */ = { + isa = PBXGroup; + children = ( + 9AA90C4225CD451700BD5E8B /* PciSegmentLib.h */, + 9AA90C4325CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo.inf */, + 9AA90C4425CD451700BD5E8B /* UefiPciSegmentLibPciRootBridgeIo.uni */, + 9AA90C4525CD451700BD5E8B /* PciSegmentLib.c */, + ); + path = UefiPciSegmentLibPciRootBridgeIo; + sourceTree = ""; + }; + 9AA90C4625CD451700BD5E8B /* PeiServicesLib */ = { + isa = PBXGroup; + children = ( + 9AA90C4725CD451700BD5E8B /* PeiServicesLib.inf */, + 9AA90C4825CD451700BD5E8B /* PeiServicesLib.c */, + 9AA90C4925CD451700BD5E8B /* PeiServicesLib.uni */, + ); + path = PeiServicesLib; + sourceTree = ""; + }; + 9AA90C4A25CD451700BD5E8B /* BasePciExpressLib */ = { + isa = PBXGroup; + children = ( + 9AA90C4B25CD451700BD5E8B /* BasePciExpressLib.uni */, + 9AA90C4C25CD451700BD5E8B /* BasePciExpressLib.inf */, + 9AA90C4D25CD451700BD5E8B /* PciExpressLib.c */, + ); + path = BasePciExpressLib; + sourceTree = ""; + }; + 9AA90C4E25CD451700BD5E8B /* BaseS3SmbusLib */ = { + isa = PBXGroup; + children = ( + 9AA90C4F25CD451700BD5E8B /* BaseS3SmbusLib.inf */, + 9AA90C5025CD451700BD5E8B /* BaseS3SmbusLib.uni */, + 9AA90C5125CD451700BD5E8B /* S3SmbusLib.c */, + ); + path = BaseS3SmbusLib; + sourceTree = ""; + }; + 9AA90C5225CD451700BD5E8B /* DxeServicesLib */ = { + isa = PBXGroup; + children = ( + 9AA90C5325CD451700BD5E8B /* Allocate.c */, + 9AA90C5425CD451700BD5E8B /* DxeServicesLib.c */, + 9AA90C5525CD451700BD5E8B /* X64 */, + 9AA90C5725CD451700BD5E8B /* DxeServicesLib.uni */, + 9AA90C5825CD451700BD5E8B /* DxeServicesLib.inf */, + ); + path = DxeServicesLib; + sourceTree = ""; + }; + 9AA90C5525CD451700BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90C5625CD451700BD5E8B /* Allocate.c */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90C5925CD451700BD5E8B /* SecPeiDxeTimerLibCpu */ = { + isa = PBXGroup; + children = ( + 9AA90C5A25CD451700BD5E8B /* X86TimerLib.c */, + 9AA90C5B25CD451700BD5E8B /* SecPeiDxeTimerLibCpu.inf */, + 9AA90C5C25CD451700BD5E8B /* SecPeiDxeTimerLibCpu.uni */, + ); + path = SecPeiDxeTimerLibCpu; + sourceTree = ""; + }; + 9AA90C5D25CD451700BD5E8B /* StandaloneMmDriverEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA90C5E25CD451700BD5E8B /* StandaloneMmDriverEntryPoint.inf */, + 9AA90C5F25CD451700BD5E8B /* StandaloneMmDriverEntryPoint.uni */, + 9AA90C6025CD451700BD5E8B /* StandaloneMmDriverEntryPoint.c */, + ); + path = StandaloneMmDriverEntryPoint; + sourceTree = ""; + }; + 9AA90C6125CD451700BD5E8B /* SmmPciLibPciRootBridgeIo */ = { + isa = PBXGroup; + children = ( + 9AA90C6225CD451700BD5E8B /* SmmPciLibPciRootBridgeIo.uni */, + 9AA90C6325CD451700BD5E8B /* SmmPciLibPciRootBridgeIo.inf */, + 9AA90C6425CD451700BD5E8B /* PciLib.c */, + ); + path = SmmPciLibPciRootBridgeIo; + sourceTree = ""; + }; + 9AA90C6525CD451700BD5E8B /* BaseLib */ = { + isa = PBXGroup; + children = ( + 9AA90DCA25CD451700BD5E8B /* AArch64 */, + 9AA90DB125CD451700BD5E8B /* Arm */, + 9AA90DC925CD451700BD5E8B /* ARShiftU64.c */, + 9AA90C7625CD451700BD5E8B /* BaseLib.inf */, + 9AA90C7125CD451700BD5E8B /* BaseLib.uni */, + 9AA90C6D25CD451700BD5E8B /* BaseLibInternals.h */, + 9AA90CDE25CD451700BD5E8B /* BitField.c */, + 9AA90CDA25CD451700BD5E8B /* CheckSum.c */, + 9AA90DAA25CD451700BD5E8B /* ChkStkGcc.c */, + 9AA90C7525CD451700BD5E8B /* Cpu.c */, + 9AA90CD425CD451700BD5E8B /* CpuDeadLoop.c */, + 9AA90C6E25CD451700BD5E8B /* DivS64x64Remainder.c */, + 9AA90DA425CD451700BD5E8B /* DivU64x32.c */, + 9AA90DA525CD451700BD5E8B /* DivU64x32Remainder.c */, + 9AA90CD225CD451700BD5E8B /* DivU64x64Remainder.c */, + 9AA90C6825CD451700BD5E8B /* Ebc */, + 9AA90C7025CD451700BD5E8B /* FilePaths.c */, + 9AA90DA125CD451700BD5E8B /* GetPowerOfTwo32.c */, + 9AA90C7725CD451700BD5E8B /* GetPowerOfTwo64.c */, + 9AA90DAF25CD451700BD5E8B /* HighBitSet32.c */, + 9AA90CE025CD451700BD5E8B /* HighBitSet64.c */, + 9AA90CE525CD451700BD5E8B /* Ia32 */, + 9AA90DDE25CD451700BD5E8B /* LinkedList.c */, + 9AA90C7425CD451700BD5E8B /* LongJump.c */, + 9AA90DDB25CD451700BD5E8B /* LowBitSet32.c */, + 9AA90CD525CD451700BD5E8B /* LowBitSet64.c */, + 9AA90DDC25CD451700BD5E8B /* LRotU32.c */, + 9AA90CD625CD451700BD5E8B /* LRotU64.c */, + 9AA90CE125CD451700BD5E8B /* LShiftU64.c */, + 9AA90DA225CD451700BD5E8B /* Math64.c */, + 9AA90DDD25CD451700BD5E8B /* ModU64x32.c */, + 9AA90CE325CD451700BD5E8B /* MultS64x64.c */, + 9AA90CDB25CD451700BD5E8B /* MultU64x32.c */, + 9AA90DC625CD451700BD5E8B /* MultU64x64.c */, + 9AA90DA325CD451700BD5E8B /* RRotU32.c */, + 9AA90C7325CD451700BD5E8B /* RRotU64.c */, + 9AA90DA825CD451700BD5E8B /* RShiftU64.c */, + 9AA90CE225CD451700BD5E8B /* SafeString.c */, + 9AA90DAB25CD451700BD5E8B /* SetJump.c */, + 9AA90CDC25CD451700BD5E8B /* String.c */, + 9AA90DAE25CD451700BD5E8B /* SwapBytes16.c */, + 9AA90C6625CD451700BD5E8B /* SwapBytes32.c */, + 9AA90DA725CD451700BD5E8B /* SwapBytes64.c */, + 9AA90DA925CD451700BD5E8B /* SwitchStack.c */, + 9AA90CE425CD451700BD5E8B /* Unaligned.c */, + 9AA90C7825CD451700BD5E8B /* X64 */, + 9AA90CDD25CD451700BD5E8B /* X86DisablePaging32.c */, + 9AA90DC725CD451700BD5E8B /* X86DisablePaging64.c */, + 9AA90DAC25CD451700BD5E8B /* X86EnablePaging32.c */, + 9AA90CDF25CD451700BD5E8B /* X86EnablePaging64.c */, + 9AA90C7225CD451700BD5E8B /* X86FxRestore.c */, + 9AA90CD825CD451700BD5E8B /* X86FxSave.c */, + 9AA90CD925CD451700BD5E8B /* X86GetInterruptState.c */, + 9AA90DA625CD451700BD5E8B /* X86MemoryFence.c */, + 9AA90CD125CD451700BD5E8B /* X86Msr.c */, + 9AA90CD725CD451700BD5E8B /* X86PatchInstruction.c */, + 9AA90DB025CD451700BD5E8B /* X86RdRand.c */, + 9AA90DC825CD451700BD5E8B /* X86ReadGdtr.c */, + 9AA90C6725CD451700BD5E8B /* X86ReadIdtr.c */, + 9AA90DDF25CD451700BD5E8B /* X86SpeculationBarrier.c */, + 9AA90CD325CD451700BD5E8B /* X86Thunk.c */, + 9AA90DAD25CD451700BD5E8B /* X86WriteGdtr.c */, + 9AA90C6F25CD451700BD5E8B /* X86WriteIdtr.c */, + ); + path = BaseLib; + sourceTree = ""; + }; + 9AA90C6825CD451700BD5E8B /* Ebc */ = { + isa = PBXGroup; + children = ( + 9AA90C6925CD451700BD5E8B /* CpuBreakpoint.c */, + 9AA90C6A25CD451700BD5E8B /* SwitchStack.c */, + 9AA90C6B25CD451700BD5E8B /* SetJumpLongJump.c */, + 9AA90C6C25CD451700BD5E8B /* SpeculationBarrier.c */, + ); + path = Ebc; + sourceTree = ""; + }; + 9AA90C7825CD451700BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90C7925CD451700BD5E8B /* WriteMm4.nasm */, + 9AA90C7A25CD451700BD5E8B /* WriteDr6.nasm */, + 9AA90C7B25CD451700BD5E8B /* Nasm.inc */, + 9AA90C7C25CD451700BD5E8B /* WriteTr.nasm */, + 9AA90C7D25CD451700BD5E8B /* WriteCr4.nasm */, + 9AA90C7E25CD451700BD5E8B /* Mwait.nasm */, + 9AA90C7F25CD451700BD5E8B /* ReadFs.nasm */, + 9AA90C8025CD451700BD5E8B /* ReadDs.nasm */, + 9AA90C8125CD451700BD5E8B /* FxRestore.nasm */, + 9AA90C8225CD451700BD5E8B /* ReadMm4.nasm */, + 9AA90C8325CD451700BD5E8B /* ReadDr6.nasm */, + 9AA90C8425CD451700BD5E8B /* CpuPause.nasm */, + 9AA90C8525CD451700BD5E8B /* ReadCr4.nasm */, + 9AA90C8625CD451700BD5E8B /* WriteLdtr.nasm */, + 9AA90C8725CD451700BD5E8B /* ReadDr7.nasm */, + 9AA90C8825CD451700BD5E8B /* SwitchStack.nasm */, + 9AA90C8925CD451700BD5E8B /* ReadMm5.nasm */, + 9AA90C8A25CD451700BD5E8B /* WriteMsr64.nasm */, + 9AA90C8B25CD451700BD5E8B /* ReadIdtr.nasm */, + 9AA90C8C25CD451700BD5E8B /* WriteDr7.nasm */, + 9AA90C8D25CD451700BD5E8B /* WriteMm5.nasm */, + 9AA90C8E25CD451700BD5E8B /* ReadMm2.nasm */, + 9AA90C8F25CD451700BD5E8B /* ReadDr0.nasm */, + 9AA90C9025CD451700BD5E8B /* ReadEs.nasm */, + 9AA90C9125CD451700BD5E8B /* ReadCr2.nasm */, + 9AA90C9225CD451700BD5E8B /* EnableCache.nasm */, + 9AA90C9325CD451700BD5E8B /* CpuIdEx.nasm */, + 9AA90C9425CD451700BD5E8B /* SetJump.nasm */, + 9AA90C9525CD451700BD5E8B /* WriteMm2.nasm */, + 9AA90C9625CD451700BD5E8B /* EnableInterrupts.nasm */, + 9AA90C9725CD451700BD5E8B /* RdRand.nasm */, + 9AA90C9825CD451700BD5E8B /* WriteDr0.nasm */, + 9AA90C9925CD451700BD5E8B /* DisableCache.nasm */, + 9AA90C9A25CD451700BD5E8B /* WriteCr2.nasm */, + 9AA90C9B25CD451700BD5E8B /* ReadGs.nasm */, + 9AA90C9C25CD451700BD5E8B /* WriteGdtr.nasm */, + 9AA90C9D25CD451700BD5E8B /* ReadCs.nasm */, + 9AA90C9E25CD451700BD5E8B /* EnableDisableInterrupts.nasm */, + 9AA90C9F25CD451700BD5E8B /* WriteCr3.nasm */, + 9AA90CA025CD451700BD5E8B /* WriteDr1.nasm */, + 9AA90CA125CD451700BD5E8B /* ReadMsr64.c */, + 9AA90CA225CD451700BD5E8B /* WriteMm3.nasm */, + 9AA90CA325CD451700BD5E8B /* Thunk16.nasm */, + 9AA90CA425CD451700BD5E8B /* ReadCr3.nasm */, + 9AA90CA525CD451700BD5E8B /* ReadDr1.nasm */, + 9AA90CA625CD451700BD5E8B /* ReadMm3.nasm */, + 9AA90CA725CD451700BD5E8B /* ReadCr0.nasm */, + 9AA90CA825CD451700BD5E8B /* DisableInterrupts.nasm */, + 9AA90CA925CD451700BD5E8B /* ReadDr2.nasm */, + 9AA90CAA25CD451700BD5E8B /* Lfence.nasm */, + 9AA90CAB25CD451700BD5E8B /* ReadMm0.nasm */, + 9AA90CAC25CD451700BD5E8B /* DisablePaging64.nasm */, + 9AA90CAD25CD451700BD5E8B /* WriteCr0.nasm */, + 9AA90CAE25CD451700BD5E8B /* WriteDr2.nasm */, + 9AA90CAF25CD451700BD5E8B /* WriteMm0.nasm */, + 9AA90CB025CD451700BD5E8B /* GccInline.c */, + 9AA90CB125CD451700BD5E8B /* CpuBreakpoint.c */, + 9AA90CB225CD451700BD5E8B /* WriteMm1.nasm */, + 9AA90CB325CD451700BD5E8B /* ReadTr.nasm */, + 9AA90CB425CD451700BD5E8B /* WriteDr3.nasm */, + 9AA90CB525CD451700BD5E8B /* ReadMm1.nasm */, + 9AA90CB625CD451700BD5E8B /* ReadDr3.nasm */, + 9AA90CB725CD451700BD5E8B /* CpuBreakpoint.nasm */, + 9AA90CB825CD451700BD5E8B /* Invd.nasm */, + 9AA90CB925CD451700BD5E8B /* LongJump.nasm */, + 9AA90CBA25CD451700BD5E8B /* ReadGdtr.nasm */, + 9AA90CBB25CD451700BD5E8B /* Wbinvd.nasm */, + 9AA90CBC25CD451700BD5E8B /* ReadEflags.nasm */, + 9AA90CBD25CD451700BD5E8B /* WriteMsr64.c */, + 9AA90CBE25CD451700BD5E8B /* Non-existing.c */, + 9AA90CBF25CD451700BD5E8B /* WriteDr4.nasm */, + 9AA90CC025CD451700BD5E8B /* FlushCacheLine.nasm */, + 9AA90CC125CD451700BD5E8B /* WriteMm6.nasm */, + 9AA90CC225CD451700BD5E8B /* ReadLdtr.nasm */, + 9AA90CC325CD451700BD5E8B /* WriteIdtr.nasm */, + 9AA90CC425CD451700BD5E8B /* FxSave.nasm */, + 9AA90CC525CD451700BD5E8B /* Monitor.nasm */, + 9AA90CC625CD451700BD5E8B /* ReadDr4.nasm */, + 9AA90CC725CD451700BD5E8B /* ReadMm6.nasm */, + 9AA90CC825CD451700BD5E8B /* ReadMsr64.nasm */, + 9AA90CC925CD451700BD5E8B /* ReadMm7.nasm */, + 9AA90CCA25CD451700BD5E8B /* ReadDr5.nasm */, + 9AA90CCB25CD451700BD5E8B /* ReadSs.nasm */, + 9AA90CCC25CD451700BD5E8B /* WriteMm7.nasm */, + 9AA90CCD25CD451700BD5E8B /* CpuId.nasm */, + 9AA90CCE25CD451700BD5E8B /* WriteDr5.nasm */, + 9AA90CCF25CD451700BD5E8B /* ReadPmc.nasm */, + 9AA90CD025CD451700BD5E8B /* ReadTsc.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90CE525CD451700BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90CE625CD451700BD5E8B /* EnablePaging32.c */, + 9AA90CE725CD451700BD5E8B /* WriteMm4.nasm */, + 9AA90CE825CD451700BD5E8B /* WriteDr3.c */, + 9AA90CE925CD451700BD5E8B /* ReadGdtr.c */, + 9AA90CEA25CD451700BD5E8B /* WriteDr6.nasm */, + 9AA90CEB25CD451700BD5E8B /* WriteTr.nasm */, + 9AA90CEC25CD451700BD5E8B /* WriteCr4.nasm */, + 9AA90CED25CD451700BD5E8B /* ReadDr2.c */, + 9AA90CEE25CD451700BD5E8B /* Mwait.nasm */, + 9AA90CEF25CD451700BD5E8B /* ReadFs.nasm */, + 9AA90CF025CD451700BD5E8B /* ReadDs.nasm */, + 9AA90CF125CD451700BD5E8B /* FxRestore.nasm */, + 9AA90CF225CD451700BD5E8B /* ReadSs.c */, + 9AA90CF325CD451700BD5E8B /* ReadMm4.nasm */, + 9AA90CF425CD451700BD5E8B /* DivS64x64Remainder.c */, + 9AA90CF525CD451700BD5E8B /* Monitor.c */, + 9AA90CF625CD451700BD5E8B /* ReadDr6.nasm */, + 9AA90CF725CD451700BD5E8B /* WriteGdtr.c */, + 9AA90CF825CD451700BD5E8B /* CpuPause.nasm */, + 9AA90CF925CD451700BD5E8B /* ReadDr6.c */, + 9AA90CFA25CD451700BD5E8B /* ReadPmc.c */, + 9AA90CFB25CD451700BD5E8B /* Wbinvd.c */, + 9AA90CFC25CD451700BD5E8B /* DisablePaging32.c */, + 9AA90CFD25CD451700BD5E8B /* RShiftU64.nasm */, + 9AA90CFE25CD451700BD5E8B /* ReadCr4.nasm */, + 9AA90CFF25CD451700BD5E8B /* Invd.c */, + 9AA90D0025CD451700BD5E8B /* WriteDr7.c */, + 9AA90D0125CD451700BD5E8B /* WriteMm7.c */, + 9AA90D0225CD451700BD5E8B /* RRotU64.c */, + 9AA90D0325CD451700BD5E8B /* ReadCr2.c */, + 9AA90D0425CD451700BD5E8B /* LShiftU64.nasm */, + 9AA90D0525CD451700BD5E8B /* ReadTr.c */, + 9AA90D0625CD451700BD5E8B /* ReadMm6.c */, + 9AA90D0725CD451700BD5E8B /* WriteLdtr.nasm */, + 9AA90D0825CD451700BD5E8B /* ReadDr7.nasm */, + 9AA90D0925CD451700BD5E8B /* ReadMm5.nasm */, + 9AA90D0A25CD451700BD5E8B /* WriteCr3.c */, + 9AA90D0B25CD451700BD5E8B /* WriteMsr64.nasm */, + 9AA90D0C25CD451700BD5E8B /* CpuPause.c */, + 9AA90D0D25CD451700BD5E8B /* ReadMm2.c */, + 9AA90D0E25CD451700BD5E8B /* ReadIdtr.nasm */, + 9AA90D0F25CD451700BD5E8B /* WriteDr7.nasm */, + 9AA90D1025CD451700BD5E8B /* CpuIdEx.c */, + 9AA90D1125CD451700BD5E8B /* WriteMm3.c */, + 9AA90D1225CD451700BD5E8B /* WriteMm5.nasm */, + 9AA90D1325CD451700BD5E8B /* ReadDr1.c */, + 9AA90D1425CD451700BD5E8B /* ReadMm2.nasm */, + 9AA90D1525CD451700BD5E8B /* ReadDr0.nasm */, + 9AA90D1625CD451700BD5E8B /* ReadEs.nasm */, + 9AA90D1725CD451700BD5E8B /* ReadEs.c */, + 9AA90D1825CD451700BD5E8B /* FlushCacheLine.c */, + 9AA90D1925CD451700BD5E8B /* ReadCr2.nasm */, + 9AA90D1A25CD451700BD5E8B /* WriteDr0.c */, + 9AA90D1B25CD451700BD5E8B /* DisableInterrupts.c */, + 9AA90D1C25CD451700BD5E8B /* EnableCache.nasm */, + 9AA90D1D25CD451700BD5E8B /* CpuIdEx.nasm */, + 9AA90D1E25CD451700BD5E8B /* SetJump.nasm */, + 9AA90D1F25CD451700BD5E8B /* WriteMm2.nasm */, + 9AA90D2025CD451700BD5E8B /* EnableInterrupts.nasm */, + 9AA90D2125CD451700BD5E8B /* RdRand.nasm */, + 9AA90D2225CD451700BD5E8B /* WriteDr0.nasm */, + 9AA90D2325CD451700BD5E8B /* DisableCache.nasm */, + 9AA90D2425CD451700BD5E8B /* LRotU64.c */, + 9AA90D2525CD451700BD5E8B /* WriteDr4.c */, + 9AA90D2625CD451700BD5E8B /* WriteCr2.nasm */, + 9AA90D2725CD451700BD5E8B /* ReadGs.nasm */, + 9AA90D2825CD451700BD5E8B /* WriteGdtr.nasm */, + 9AA90D2925CD451700BD5E8B /* ReadDr5.c */, + 9AA90D2A25CD451700BD5E8B /* EnableCache.c */, + 9AA90D2B25CD451700BD5E8B /* ReadMm5.c */, + 9AA90D2C25CD451700BD5E8B /* ReadCs.nasm */, + 9AA90D2D25CD451700BD5E8B /* EnableInterrupts.c */, + 9AA90D2E25CD451700BD5E8B /* WriteCr0.c */, + 9AA90D2F25CD451700BD5E8B /* EnableDisableInterrupts.nasm */, + 9AA90D3025CD451700BD5E8B /* MultU64x32.c */, + 9AA90D3125CD451700BD5E8B /* WriteCr3.nasm */, + 9AA90D3225CD451700BD5E8B /* DivU64x64Remainder.nasm */, + 9AA90D3325CD451700BD5E8B /* WriteMm4.c */, + 9AA90D3425CD451700BD5E8B /* WriteDr1.nasm */, + 9AA90D3525CD451700BD5E8B /* WriteLdtr.c */, + 9AA90D3625CD451700BD5E8B /* ReadMsr64.c */, + 9AA90D3725CD451700BD5E8B /* WriteMm3.nasm */, + 9AA90D3825CD451700BD5E8B /* Thunk16.nasm */, + 9AA90D3925CD451700BD5E8B /* ReadCr3.nasm */, + 9AA90D3A25CD451700BD5E8B /* WriteMm0.c */, + 9AA90D3B25CD451700BD5E8B /* ReadDs.c */, + 9AA90D3C25CD451700BD5E8B /* FxSave.c */, + 9AA90D3D25CD451700BD5E8B /* WriteCr4.c */, + 9AA90D3E25CD451700BD5E8B /* ReadDr1.nasm */, + 9AA90D3F25CD451700BD5E8B /* ReadMm1.c */, + 9AA90D4025CD451700BD5E8B /* ReadMm3.nasm */, + 9AA90D4125CD451700BD5E8B /* ReadLdtr.c */, + 9AA90D4225CD451700BD5E8B /* ARShiftU64.nasm */, + 9AA90D4325CD451700BD5E8B /* LShiftU64.c */, + 9AA90D4425CD451700BD5E8B /* ReadCr0.nasm */, + 9AA90D4525CD451700BD5E8B /* ReadDr0.c */, + 9AA90D4625CD451700BD5E8B /* DisableInterrupts.nasm */, + 9AA90D4725CD451700BD5E8B /* SwapBytes64.nasm */, + 9AA90D4825CD451700BD5E8B /* ReadCs.c */, + 9AA90D4925CD451700BD5E8B /* ReadDr2.nasm */, + 9AA90D4A25CD451700BD5E8B /* Lfence.nasm */, + 9AA90D4B25CD451700BD5E8B /* ReadMm0.nasm */, + 9AA90D4C25CD451700BD5E8B /* WriteDr1.c */, + 9AA90D4D25CD451700BD5E8B /* MultU64x64.nasm */, + 9AA90D4E25CD451700BD5E8B /* WriteDr5.c */, + 9AA90D4F25CD451700BD5E8B /* LRotU64.nasm */, + 9AA90D5025CD451700BD5E8B /* Mwait.c */, + 9AA90D5125CD451700BD5E8B /* WriteCr0.nasm */, + 9AA90D5225CD451700BD5E8B /* RRotU64.nasm */, + 9AA90D5325CD451700BD5E8B /* ReadDr4.c */, + 9AA90D5425CD451700BD5E8B /* ReadGs.c */, + 9AA90D5525CD451700BD5E8B /* WriteDr2.nasm */, + 9AA90D5625CD451700BD5E8B /* WriteMm0.nasm */, + 9AA90D5725CD451700BD5E8B /* GccInline.c */, + 9AA90D5825CD451700BD5E8B /* CpuBreakpoint.c */, + 9AA90D5925CD451700BD5E8B /* WriteMm1.nasm */, + 9AA90D5A25CD451700BD5E8B /* ReadTr.nasm */, + 9AA90D5B25CD451700BD5E8B /* InternalSwitchStack.c */, + 9AA90D5C25CD451700BD5E8B /* DivU64x32.c */, + 9AA90D5D25CD451700BD5E8B /* ReadMm4.c */, + 9AA90D5E25CD451700BD5E8B /* DivU64x32Remainder.c */, + 9AA90D5F25CD451700BD5E8B /* WriteDr3.nasm */, + 9AA90D6025CD451700BD5E8B /* ReadFs.c */, + 9AA90D6125CD451700BD5E8B /* ReadCr0.c */, + 9AA90D6225CD451700BD5E8B /* CpuId.c */, + 9AA90D6325CD451700BD5E8B /* MultU64x32.nasm */, + 9AA90D6425CD451700BD5E8B /* WriteMm5.c */, + 9AA90D6525CD451700BD5E8B /* DisablePaging32.nasm */, + 9AA90D6625CD451700BD5E8B /* SwapBytes64.c */, + 9AA90D6725CD451700BD5E8B /* RShiftU64.c */, + 9AA90D6825CD451700BD5E8B /* ReadMm1.nasm */, + 9AA90D6925CD451700BD5E8B /* WriteMm1.c */, + 9AA90D6A25CD451700BD5E8B /* ReadDr3.nasm */, + 9AA90D6B25CD451700BD5E8B /* ReadCr4.c */, + 9AA90D6C25CD451700BD5E8B /* DivU64x32.nasm */, + 9AA90D6D25CD451700BD5E8B /* CpuBreakpoint.nasm */, + 9AA90D6E25CD451700BD5E8B /* Invd.nasm */, + 9AA90D6F25CD451700BD5E8B /* ReadMm0.c */, + 9AA90D7025CD451700BD5E8B /* LongJump.nasm */, + 9AA90D7125CD451700BD5E8B /* DisableCache.c */, + 9AA90D7225CD451700BD5E8B /* ReadGdtr.nasm */, + 9AA90D7325CD451700BD5E8B /* Wbinvd.nasm */, + 9AA90D7425CD451700BD5E8B /* ReadEflags.nasm */, + 9AA90D7525CD451700BD5E8B /* FxRestore.c */, + 9AA90D7625CD451700BD5E8B /* WriteMsr64.c */, + 9AA90D7725CD451700BD5E8B /* Non-existing.c */, + 9AA90D7825CD451700BD5E8B /* WriteDr2.c */, + 9AA90D7925CD451700BD5E8B /* EnablePaging64.nasm */, + 9AA90D7A25CD451700BD5E8B /* WriteDr4.nasm */, + 9AA90D7B25CD451700BD5E8B /* FlushCacheLine.nasm */, + 9AA90D7C25CD451700BD5E8B /* WriteIdtr.c */, + 9AA90D7D25CD451700BD5E8B /* ReadDr3.c */, + 9AA90D7E25CD451700BD5E8B /* WriteMm6.nasm */, + 9AA90D7F25CD451700BD5E8B /* ReadLdtr.nasm */, + 9AA90D8025CD451700BD5E8B /* ReadDr7.c */, + 9AA90D8125CD451700BD5E8B /* ReadEflags.c */, + 9AA90D8225CD451700BD5E8B /* WriteIdtr.nasm */, + 9AA90D8325CD451700BD5E8B /* MultU64x64.c */, + 9AA90D8425CD451700BD5E8B /* DivU64x32Remainder.nasm */, + 9AA90D8525CD451700BD5E8B /* FxSave.nasm */, + 9AA90D8625CD451700BD5E8B /* Monitor.nasm */, + 9AA90D8725CD451700BD5E8B /* WriteDr6.c */, + 9AA90D8825CD451700BD5E8B /* ReadDr4.nasm */, + 9AA90D8925CD451700BD5E8B /* ReadMm6.nasm */, + 9AA90D8A25CD451700BD5E8B /* ReadMsr64.nasm */, + 9AA90D8B25CD451700BD5E8B /* ReadIdtr.c */, + 9AA90D8C25CD451700BD5E8B /* ARShiftU64.c */, + 9AA90D8D25CD451700BD5E8B /* ReadCr3.c */, + 9AA90D8E25CD451700BD5E8B /* ReadMm7.nasm */, + 9AA90D8F25CD451700BD5E8B /* ReadDr5.nasm */, + 9AA90D9025CD451700BD5E8B /* WriteMm6.c */, + 9AA90D9125CD451700BD5E8B /* ReadTsc.c */, + 9AA90D9225CD451700BD5E8B /* WriteCr2.c */, + 9AA90D9325CD451700BD5E8B /* ModU64x32.c */, + 9AA90D9425CD451700BD5E8B /* ReadSs.nasm */, + 9AA90D9525CD451700BD5E8B /* ReadMm7.c */, + 9AA90D9625CD451700BD5E8B /* EnableDisableInterrupts.c */, + 9AA90D9725CD451700BD5E8B /* WriteMm7.nasm */, + 9AA90D9825CD451700BD5E8B /* ReadMm3.c */, + 9AA90D9925CD451700BD5E8B /* CpuId.nasm */, + 9AA90D9A25CD451700BD5E8B /* InternalSwitchStack.nasm */, + 9AA90D9B25CD451700BD5E8B /* WriteDr5.nasm */, + 9AA90D9C25CD451700BD5E8B /* ReadPmc.nasm */, + 9AA90D9D25CD451700BD5E8B /* WriteMm2.c */, + 9AA90D9E25CD451700BD5E8B /* ModU64x32.nasm */, + 9AA90D9F25CD451700BD5E8B /* ReadTsc.nasm */, + 9AA90DA025CD451700BD5E8B /* EnablePaging32.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90DB125CD451700BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90DB225CD451700BD5E8B /* Math64.S */, + 9AA90DB325CD451700BD5E8B /* CpuPause.asm */, + 9AA90DB425CD451700BD5E8B /* EnableInterrupts.asm */, + 9AA90DB525CD451700BD5E8B /* SwitchStack.S */, + 9AA90DB625CD451700BD5E8B /* CpuBreakpoint.S */, + 9AA90DB725CD451700BD5E8B /* SetJumpLongJump.asm */, + 9AA90DB825CD451700BD5E8B /* CpuBreakpoint.asm */, + 9AA90DB925CD451700BD5E8B /* GetInterruptsState.S */, + 9AA90DBA25CD451700BD5E8B /* MemoryFence.asm */, + 9AA90DBB25CD451700BD5E8B /* SpeculationBarrier.S */, + 9AA90DBC25CD451700BD5E8B /* DisableInterrupts.asm */, + 9AA90DBD25CD451700BD5E8B /* SetJumpLongJump.S */, + 9AA90DBE25CD451700BD5E8B /* GetInterruptsState.asm */, + 9AA90DBF25CD451700BD5E8B /* Unaligned.c */, + 9AA90DC025CD451700BD5E8B /* InternalSwitchStack.c */, + 9AA90DC125CD451700BD5E8B /* SpeculationBarrier.asm */, + 9AA90DC225CD451700BD5E8B /* MemoryFence.S */, + 9AA90DC325CD451700BD5E8B /* DisableInterrupts.S */, + 9AA90DC425CD451700BD5E8B /* SwitchStack.asm */, + 9AA90DC525CD451700BD5E8B /* EnableInterrupts.S */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90DCA25CD451700BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA90DCB25CD451700BD5E8B /* EnableInterrupts.asm */, + 9AA90DCC25CD451700BD5E8B /* SwitchStack.S */, + 9AA90DCD25CD451700BD5E8B /* CpuBreakpoint.S */, + 9AA90DCE25CD451700BD5E8B /* SetJumpLongJump.asm */, + 9AA90DCF25CD451700BD5E8B /* CpuBreakpoint.asm */, + 9AA90DD025CD451700BD5E8B /* GetInterruptsState.S */, + 9AA90DD125CD451700BD5E8B /* MemoryFence.asm */, + 9AA90DD225CD451700BD5E8B /* SpeculationBarrier.S */, + 9AA90DD325CD451700BD5E8B /* DisableInterrupts.asm */, + 9AA90DD425CD451700BD5E8B /* SetJumpLongJump.S */, + 9AA90DD525CD451700BD5E8B /* GetInterruptsState.asm */, + 9AA90DD625CD451700BD5E8B /* SpeculationBarrier.asm */, + 9AA90DD725CD451700BD5E8B /* MemoryFence.S */, + 9AA90DD825CD451700BD5E8B /* DisableInterrupts.S */, + 9AA90DD925CD451700BD5E8B /* SwitchStack.asm */, + 9AA90DDA25CD451700BD5E8B /* EnableInterrupts.S */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA90DE025CD451800BD5E8B /* BaseMemoryLibRepStr */ = { + isa = PBXGroup; + children = ( + 9AA90DE125CD451800BD5E8B /* SetMem64Wrapper.c */, + 9AA90DE225CD451800BD5E8B /* ZeroMemWrapper.c */, + 9AA90DE325CD451800BD5E8B /* CopyMemWrapper.c */, + 9AA90DE425CD451800BD5E8B /* ScanMem64Wrapper.c */, + 9AA90DE525CD451800BD5E8B /* X64 */, + 9AA90DF225CD451800BD5E8B /* ScanMem8Wrapper.c */, + 9AA90DF325CD451800BD5E8B /* SetMem32Wrapper.c */, + 9AA90DF425CD451800BD5E8B /* Ia32 */, + 9AA90E0125CD451800BD5E8B /* ScanMem32Wrapper.c */, + 9AA90E0225CD451800BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90E0325CD451800BD5E8B /* SetMemWrapper.c */, + 9AA90E0425CD451800BD5E8B /* CompareMemWrapper.c */, + 9AA90E0525CD451800BD5E8B /* SetMem16Wrapper.c */, + 9AA90E0625CD451800BD5E8B /* BaseMemoryLibRepStr.uni */, + 9AA90E0725CD451800BD5E8B /* MemLibGuid.c */, + 9AA90E0825CD451800BD5E8B /* MemLibInternals.h */, + 9AA90E0925CD451800BD5E8B /* ScanMem16Wrapper.c */, + 9AA90E0A25CD451800BD5E8B /* BaseMemoryLibRepStr.inf */, + ); + path = BaseMemoryLibRepStr; + sourceTree = ""; + }; + 9AA90DE525CD451800BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90DE625CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90DE725CD451800BD5E8B /* CompareMem.nasm */, + 9AA90DE825CD451800BD5E8B /* SetMem16.nasm */, + 9AA90DE925CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90DEA25CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90DEB25CD451800BD5E8B /* SetMem.nasm */, + 9AA90DEC25CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90DED25CD451800BD5E8B /* SetMem64.nasm */, + 9AA90DEE25CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90DEF25CD451800BD5E8B /* SetMem32.nasm */, + 9AA90DF025CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90DF125CD451800BD5E8B /* CopyMem.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90DF425CD451800BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90DF525CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90DF625CD451800BD5E8B /* CompareMem.nasm */, + 9AA90DF725CD451800BD5E8B /* SetMem16.nasm */, + 9AA90DF825CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90DF925CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90DFA25CD451800BD5E8B /* SetMem.nasm */, + 9AA90DFB25CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90DFC25CD451800BD5E8B /* SetMem64.nasm */, + 9AA90DFD25CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90DFE25CD451800BD5E8B /* SetMem32.nasm */, + 9AA90DFF25CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90E0025CD451800BD5E8B /* CopyMem.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90E0B25CD451800BD5E8B /* BaseSynchronizationLib */ = { + isa = PBXGroup; + children = ( + 9AA90E0C25CD451800BD5E8B /* BaseSynchronizationLib.uni */, + 9AA90E0D25CD451800BD5E8B /* Ebc */, + 9AA90E0F25CD451800BD5E8B /* BaseSynchronizationLib.inf */, + 9AA90E1025CD451800BD5E8B /* X64 */, + 9AA90E1A25CD451800BD5E8B /* InterlockedIncrementMsc.c */, + 9AA90E1B25CD451800BD5E8B /* Ia32 */, + 9AA90E2625CD451800BD5E8B /* BaseSynchronizationLibInternals.h */, + 9AA90E2725CD451800BD5E8B /* SynchronizationMsc.c */, + 9AA90E2825CD451800BD5E8B /* Synchronization.c */, + 9AA90E2925CD451800BD5E8B /* Arm */, + 9AA90E2C25CD451800BD5E8B /* AArch64 */, + 9AA90E2F25CD451800BD5E8B /* SynchronizationGcc.c */, + 9AA90E3025CD451800BD5E8B /* InterlockedDecrementMsc.c */, + ); + path = BaseSynchronizationLib; + sourceTree = ""; + }; + 9AA90E0D25CD451800BD5E8B /* Ebc */ = { + isa = PBXGroup; + children = ( + 9AA90E0E25CD451800BD5E8B /* Synchronization.c */, + ); + path = Ebc; + sourceTree = ""; + }; + 9AA90E1025CD451800BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90E1125CD451800BD5E8B /* InterlockedCompareExchange64.c */, + 9AA90E1225CD451800BD5E8B /* InterlockedIncrement.nasm */, + 9AA90E1325CD451800BD5E8B /* InterlockedCompareExchange16.nasm */, + 9AA90E1425CD451800BD5E8B /* InterlockedCompareExchange16.c */, + 9AA90E1525CD451800BD5E8B /* GccInline.c */, + 9AA90E1625CD451800BD5E8B /* InterlockedCompareExchange32.c */, + 9AA90E1725CD451800BD5E8B /* InterlockedCompareExchange64.nasm */, + 9AA90E1825CD451800BD5E8B /* InterlockedCompareExchange32.nasm */, + 9AA90E1925CD451800BD5E8B /* InterlockedDecrement.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90E1B25CD451800BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90E1C25CD451800BD5E8B /* InterlockedCompareExchange64.c */, + 9AA90E1D25CD451800BD5E8B /* InternalGetSpinLockProperties.c */, + 9AA90E1E25CD451800BD5E8B /* InterlockedIncrement.nasm */, + 9AA90E1F25CD451800BD5E8B /* InterlockedCompareExchange16.nasm */, + 9AA90E2025CD451800BD5E8B /* InterlockedCompareExchange16.c */, + 9AA90E2125CD451800BD5E8B /* GccInline.c */, + 9AA90E2225CD451800BD5E8B /* InterlockedCompareExchange32.c */, + 9AA90E2325CD451800BD5E8B /* InterlockedCompareExchange64.nasm */, + 9AA90E2425CD451800BD5E8B /* InterlockedCompareExchange32.nasm */, + 9AA90E2525CD451800BD5E8B /* InterlockedDecrement.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90E2925CD451800BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90E2A25CD451800BD5E8B /* Synchronization.S */, + 9AA90E2B25CD451800BD5E8B /* Synchronization.asm */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90E2C25CD451800BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA90E2D25CD451800BD5E8B /* Synchronization.S */, + 9AA90E2E25CD451800BD5E8B /* Synchronization.asm */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA90E3125CD451800BD5E8B /* UefiMemoryLib */ = { + isa = PBXGroup; + children = ( + 9AA90E3225CD451800BD5E8B /* SetMem64Wrapper.c */, + 9AA90E3325CD451800BD5E8B /* ZeroMemWrapper.c */, + 9AA90E3425CD451800BD5E8B /* CopyMemWrapper.c */, + 9AA90E3525CD451800BD5E8B /* ScanMem64Wrapper.c */, + 9AA90E3625CD451800BD5E8B /* MemLibGeneric.c */, + 9AA90E3725CD451800BD5E8B /* ScanMem8Wrapper.c */, + 9AA90E3825CD451800BD5E8B /* SetMem32Wrapper.c */, + 9AA90E3925CD451800BD5E8B /* ScanMem32Wrapper.c */, + 9AA90E3A25CD451800BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90E3B25CD451800BD5E8B /* SetMemWrapper.c */, + 9AA90E3C25CD451800BD5E8B /* MemLib.c */, + 9AA90E3D25CD451800BD5E8B /* CompareMemWrapper.c */, + 9AA90E3E25CD451800BD5E8B /* UefiMemoryLib.inf */, + 9AA90E3F25CD451800BD5E8B /* SetMem16Wrapper.c */, + 9AA90E4025CD451800BD5E8B /* MemLibGuid.c */, + 9AA90E4125CD451800BD5E8B /* UefiMemoryLib.uni */, + 9AA90E4225CD451800BD5E8B /* MemLibInternals.h */, + 9AA90E4325CD451800BD5E8B /* ScanMem16Wrapper.c */, + ); + path = UefiMemoryLib; + sourceTree = ""; + }; + 9AA90E4425CD451800BD5E8B /* PciSegmentLibSegmentInfo */ = { + isa = PBXGroup; + children = ( + 9AA90E4525CD451800BD5E8B /* PciSegmentLibCommon.h */, + 9AA90E4625CD451800BD5E8B /* DxeRuntimePciSegmentLibSegmentInfo.inf */, + 9AA90E4725CD451800BD5E8B /* BasePciSegmentLibSegmentInfo.inf */, + 9AA90E4825CD451800BD5E8B /* DxeRuntimePciSegmentLibSegmentInfo.uni */, + 9AA90E4925CD451800BD5E8B /* BasePciSegmentLibSegmentInfo.uni */, + 9AA90E4A25CD451800BD5E8B /* BasePciSegmentLib.c */, + 9AA90E4B25CD451800BD5E8B /* PciSegmentLibCommon.c */, + 9AA90E4C25CD451800BD5E8B /* DxeRuntimePciSegmentLib.c */, + ); + path = PciSegmentLibSegmentInfo; + sourceTree = ""; + }; + 9AA90E4D25CD451800BD5E8B /* BaseCpuLib */ = { + isa = PBXGroup; + children = ( + 9AA90E4E25CD451800BD5E8B /* Ebc */, + 9AA90E5025CD451800BD5E8B /* X64 */, + 9AA90E5325CD451800BD5E8B /* BaseCpuLib.uni */, + 9AA90E5425CD451800BD5E8B /* BaseCpuLib.inf */, + 9AA90E5525CD451800BD5E8B /* Ia32 */, + 9AA90E5C25CD451800BD5E8B /* Arm */, + 9AA90E6125CD451800BD5E8B /* AArch64 */, + ); + path = BaseCpuLib; + sourceTree = ""; + }; + 9AA90E4E25CD451800BD5E8B /* Ebc */ = { + isa = PBXGroup; + children = ( + 9AA90E4F25CD451800BD5E8B /* CpuSleepFlushTlb.c */, + ); + path = Ebc; + sourceTree = ""; + }; + 9AA90E5025CD451800BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90E5125CD451800BD5E8B /* CpuSleep.nasm */, + 9AA90E5225CD451800BD5E8B /* CpuFlushTlb.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90E5525CD451800BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90E5625CD451800BD5E8B /* CpuSleep.c */, + 9AA90E5725CD451800BD5E8B /* CpuFlushTlbGcc.c */, + 9AA90E5825CD451800BD5E8B /* CpuFlushTlb.c */, + 9AA90E5925CD451800BD5E8B /* CpuSleep.nasm */, + 9AA90E5A25CD451800BD5E8B /* CpuFlushTlb.nasm */, + 9AA90E5B25CD451800BD5E8B /* CpuSleepGcc.c */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90E5C25CD451800BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90E5D25CD451800BD5E8B /* CpuFlushTlb.S */, + 9AA90E5E25CD451800BD5E8B /* CpuFlushTlb.asm */, + 9AA90E5F25CD451800BD5E8B /* CpuSleep.asm */, + 9AA90E6025CD451800BD5E8B /* CpuSleep.S */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90E6125CD451800BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA90E6225CD451800BD5E8B /* CpuFlushTlb.S */, + 9AA90E6325CD451800BD5E8B /* CpuFlushTlb.asm */, + 9AA90E6425CD451800BD5E8B /* CpuSleep.asm */, + 9AA90E6525CD451800BD5E8B /* CpuSleep.S */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA90E6625CD451800BD5E8B /* PeiExtractGuidedSectionLib */ = { + isa = PBXGroup; + children = ( + 9AA90E6725CD451800BD5E8B /* PeiExtractGuidedSectionLib.c */, + 9AA90E6825CD451800BD5E8B /* PeiExtractGuidedSectionLib.uni */, + 9AA90E6925CD451800BD5E8B /* PeiExtractGuidedSectionLib.inf */, + ); + path = PeiExtractGuidedSectionLib; + sourceTree = ""; + }; + 9AA90E6A25CD451800BD5E8B /* UefiDriverEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA90E6B25CD451800BD5E8B /* DriverEntryPoint.c */, + 9AA90E6C25CD451800BD5E8B /* UefiDriverEntryPoint.inf */, + 9AA90E6D25CD451800BD5E8B /* UefiDriverEntryPoint.uni */, + ); + path = UefiDriverEntryPoint; + sourceTree = ""; + }; + 9AA90E6E25CD451800BD5E8B /* UefiDebugLibDebugPortProtocol */ = { + isa = PBXGroup; + children = ( + 9AA90E6F25CD451800BD5E8B /* DebugLibConstructor.c */, + 9AA90E7025CD451800BD5E8B /* DebugLib.c */, + 9AA90E7125CD451800BD5E8B /* UefiDebugLibDebugPortProtocol.uni */, + 9AA90E7225CD451800BD5E8B /* UefiDebugLibDebugPortProtocol.inf */, + ); + path = UefiDebugLibDebugPortProtocol; + sourceTree = ""; + }; + 9AA90E7325CD451800BD5E8B /* SmmPciExpressLib */ = { + isa = PBXGroup; + children = ( + 9AA90E7425CD451800BD5E8B /* SmmPciExpressLib.inf */, + 9AA90E7525CD451800BD5E8B /* PciExpressLib.c */, + ); + path = SmmPciExpressLib; + sourceTree = ""; + }; + 9AA90E7625CD451800BD5E8B /* DxeRuntimePciExpressLib */ = { + isa = PBXGroup; + children = ( + 9AA90E7725CD451800BD5E8B /* DxeRuntimePciExpressLib.uni */, + 9AA90E7825CD451800BD5E8B /* DxeRuntimePciExpressLib.inf */, + 9AA90E7925CD451800BD5E8B /* PciExpressLib.c */, + ); + path = DxeRuntimePciExpressLib; + sourceTree = ""; + }; + 9AA90E7A25CD451800BD5E8B /* BaseMemoryLibOptDxe */ = { + isa = PBXGroup; + children = ( + 9AA90E7B25CD451800BD5E8B /* SetMem64Wrapper.c */, + 9AA90E7C25CD451800BD5E8B /* ZeroMemWrapper.c */, + 9AA90E7D25CD451800BD5E8B /* CopyMemWrapper.c */, + 9AA90E7E25CD451800BD5E8B /* ScanMem64Wrapper.c */, + 9AA90E7F25CD451800BD5E8B /* X64 */, + 9AA90E8C25CD451800BD5E8B /* ScanMem8Wrapper.c */, + 9AA90E8D25CD451800BD5E8B /* SetMem32Wrapper.c */, + 9AA90E8E25CD451800BD5E8B /* Ia32 */, + 9AA90E9B25CD451800BD5E8B /* ScanMem32Wrapper.c */, + 9AA90E9C25CD451800BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90E9D25CD451800BD5E8B /* SetMemWrapper.c */, + 9AA90E9E25CD451800BD5E8B /* CompareMemWrapper.c */, + 9AA90E9F25CD451800BD5E8B /* Arm */, + 9AA90EAC25CD451800BD5E8B /* BaseMemoryLibOptDxe.uni */, + 9AA90EAD25CD451800BD5E8B /* SetMem16Wrapper.c */, + 9AA90EAE25CD451800BD5E8B /* MemLibGuid.c */, + 9AA90EAF25CD451800BD5E8B /* AArch64 */, + 9AA90EB525CD451800BD5E8B /* MemLibInternals.h */, + 9AA90EB625CD451800BD5E8B /* BaseMemoryLibOptDxe.inf */, + 9AA90EB725CD451800BD5E8B /* ScanMem16Wrapper.c */, + ); + path = BaseMemoryLibOptDxe; + sourceTree = ""; + }; + 9AA90E7F25CD451800BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90E8025CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90E8125CD451800BD5E8B /* CompareMem.nasm */, + 9AA90E8225CD451800BD5E8B /* SetMem16.nasm */, + 9AA90E8325CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90E8425CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90E8525CD451800BD5E8B /* SetMem.nasm */, + 9AA90E8625CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90E8725CD451800BD5E8B /* SetMem64.nasm */, + 9AA90E8825CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90E8925CD451800BD5E8B /* SetMem32.nasm */, + 9AA90E8A25CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90E8B25CD451800BD5E8B /* CopyMem.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90E8E25CD451800BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90E8F25CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90E9025CD451800BD5E8B /* CompareMem.nasm */, + 9AA90E9125CD451800BD5E8B /* SetMem16.nasm */, + 9AA90E9225CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90E9325CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90E9425CD451800BD5E8B /* SetMem.nasm */, + 9AA90E9525CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90E9625CD451800BD5E8B /* SetMem64.nasm */, + 9AA90E9725CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90E9825CD451800BD5E8B /* SetMem32.nasm */, + 9AA90E9925CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90E9A25CD451800BD5E8B /* CopyMem.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90E9F25CD451800BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90EA025CD451800BD5E8B /* ScanMemGeneric.c */, + 9AA90EA125CD451800BD5E8B /* CompareMem.asm */, + 9AA90EA225CD451800BD5E8B /* CopyMem.S */, + 9AA90EA325CD451800BD5E8B /* SetMem.S */, + 9AA90EA425CD451800BD5E8B /* ScanMem.asm */, + 9AA90EA525CD451800BD5E8B /* CopyMem.asm */, + 9AA90EA625CD451800BD5E8B /* CompareMem.S */, + 9AA90EA725CD451800BD5E8B /* MemLibGuid.c */, + 9AA90EA825CD451800BD5E8B /* SetMem.asm */, + 9AA90EA925CD451800BD5E8B /* CompareGuid.asm */, + 9AA90EAA25CD451800BD5E8B /* CompareGuid.S */, + 9AA90EAB25CD451800BD5E8B /* ScanMem.S */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90EAF25CD451800BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA90EB025CD451800BD5E8B /* CopyMem.S */, + 9AA90EB125CD451800BD5E8B /* SetMem.S */, + 9AA90EB225CD451800BD5E8B /* CompareMem.S */, + 9AA90EB325CD451800BD5E8B /* CompareGuid.S */, + 9AA90EB425CD451800BD5E8B /* ScanMem.S */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA90EB825CD451800BD5E8B /* BasePerformanceLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90EB925CD451800BD5E8B /* PerformanceLib.c */, + 9AA90EBA25CD451800BD5E8B /* BasePerformanceLibNull.inf */, + 9AA90EBB25CD451800BD5E8B /* BasePerformanceLibNull.uni */, + ); + path = BasePerformanceLibNull; + sourceTree = ""; + }; + 9AA90EBC25CD451800BD5E8B /* BasePciSegmentLibPci */ = { + isa = PBXGroup; + children = ( + 9AA90EBD25CD451800BD5E8B /* BasePciSegmentLibPci.inf */, + 9AA90EBE25CD451800BD5E8B /* BasePciSegmentLibPci.uni */, + 9AA90EBF25CD451800BD5E8B /* PciSegmentLib.c */, + ); + path = BasePciSegmentLibPci; + sourceTree = ""; + }; + 9AA90EC025CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode */ = { + isa = PBXGroup; + children = ( + 9AA90EC125CD451800BD5E8B /* PostCode.c */, + 9AA90EC225CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode.inf */, + 9AA90EC325CD451800BD5E8B /* PeiDxePostCodeLibReportStatusCode.uni */, + ); + path = PeiDxePostCodeLibReportStatusCode; + sourceTree = ""; + }; + 9AA90EC425CD451800BD5E8B /* BasePcdLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90EC525CD451800BD5E8B /* BasePcdLibNull.uni */, + 9AA90EC625CD451800BD5E8B /* BasePcdLibNull.inf */, + 9AA90EC725CD451800BD5E8B /* PcdLib.c */, + ); + path = BasePcdLibNull; + sourceTree = ""; + }; + 9AA90EC825CD451800BD5E8B /* BaseStackCheckLib */ = { + isa = PBXGroup; + children = ( + 9AA90EC925CD451800BD5E8B /* BaseStackCheckGcc.c */, + 9AA90ECA25CD451800BD5E8B /* BaseStackCheckLib.uni */, + 9AA90ECB25CD451800BD5E8B /* BaseStackCheckNull.c */, + 9AA90ECC25CD451800BD5E8B /* BaseStackCheckLib.inf */, + ); + path = BaseStackCheckLib; + sourceTree = ""; + }; + 9AA90ECD25CD451800BD5E8B /* BaseRngLib */ = { + isa = PBXGroup; + children = ( + 9AA90ECE25CD451800BD5E8B /* BaseRngLib.uni */, + 9AA90ECF25CD451800BD5E8B /* BaseRngLib.inf */, + 9AA90ED025CD451800BD5E8B /* BaseRng.c */, + ); + path = BaseRngLib; + sourceTree = ""; + }; + 9AA90ED125CD451800BD5E8B /* DxeCoreEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA90ED225CD451800BD5E8B /* DxeCoreEntryPoint.c */, + 9AA90ED325CD451800BD5E8B /* DxeCoreEntryPoint.uni */, + 9AA90ED425CD451800BD5E8B /* DxeCoreEntryPoint.inf */, + ); + path = DxeCoreEntryPoint; + sourceTree = ""; + }; + 9AA90ED525CD451800BD5E8B /* BasePostCodeLibPort80 */ = { + isa = PBXGroup; + children = ( + 9AA90ED625CD451800BD5E8B /* PostCode.c */, + 9AA90ED725CD451800BD5E8B /* BasePostCodeLibPort80.inf */, + 9AA90ED825CD451800BD5E8B /* BasePostCodeLibPort80.uni */, + ); + path = BasePostCodeLibPort80; + sourceTree = ""; + }; + 9AA90ED925CD451800BD5E8B /* PeiCoreEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA90EDA25CD451800BD5E8B /* PeiCoreEntryPoint.uni */, + 9AA90EDB25CD451800BD5E8B /* PeiCoreEntryPoint.inf */, + 9AA90EDC25CD451800BD5E8B /* PeiCoreEntryPoint.c */, + ); + path = PeiCoreEntryPoint; + sourceTree = ""; + }; + 9AA90EDD25CD451800BD5E8B /* BasePeCoffLib */ = { + isa = PBXGroup; + children = ( + 9AA90EDE25CD451800BD5E8B /* BasePeCoffLibInternals.h */, + 9AA90EDF25CD451800BD5E8B /* BasePeCoff.c */, + 9AA90EE025CD451800BD5E8B /* PeCoffLoaderEx.c */, + 9AA90EE125CD451800BD5E8B /* Arm */, + 9AA90EE325CD451800BD5E8B /* BasePeCoffLib.uni */, + 9AA90EE425CD451800BD5E8B /* BasePeCoffLib.inf */, + ); + path = BasePeCoffLib; + sourceTree = ""; + }; + 9AA90EE125CD451800BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90EE225CD451800BD5E8B /* PeCoffLoaderEx.c */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90EE525CD451800BD5E8B /* SmmLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90EE625CD451800BD5E8B /* SmmLibNull.uni */, + 9AA90EE725CD451800BD5E8B /* SmmLibNull.inf */, + 9AA90EE825CD451800BD5E8B /* SmmLibNull.c */, + ); + path = SmmLibNull; + sourceTree = ""; + }; + 9AA90EE925CD451800BD5E8B /* BasePciCf8Lib */ = { + isa = PBXGroup; + children = ( + 9AA90EEA25CD451800BD5E8B /* BasePciCf8Lib.uni */, + 9AA90EEB25CD451800BD5E8B /* BasePciCf8Lib.inf */, + 9AA90EEC25CD451800BD5E8B /* PciCf8Lib.c */, + ); + path = BasePciCf8Lib; + sourceTree = ""; + }; + 9AA90EED25CD451800BD5E8B /* MmServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA90EEE25CD451800BD5E8B /* MmServicesTableLib.uni */, + 9AA90EEF25CD451800BD5E8B /* MmServicesTableLib.inf */, + 9AA90EF025CD451800BD5E8B /* MmServicesTableLib.c */, + ); + path = MmServicesTableLib; + sourceTree = ""; + }; + 9AA90EF125CD451800BD5E8B /* BaseSafeIntLib */ = { + isa = PBXGroup; + children = ( + 9AA90EF225CD451800BD5E8B /* SafeIntLib64.c */, + 9AA90EF325CD451800BD5E8B /* SafeIntLibEbc.c */, + 9AA90EF425CD451800BD5E8B /* BaseSafeIntLib.inf */, + 9AA90EF525CD451800BD5E8B /* SafeIntLib32.c */, + 9AA90EF625CD451800BD5E8B /* SafeIntLib.c */, + ); + path = BaseSafeIntLib; + sourceTree = ""; + }; + 9AA90EF725CD451800BD5E8B /* SmmServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA90EF825CD451800BD5E8B /* SmmServicesTableLib.c */, + 9AA90EF925CD451800BD5E8B /* SmmServicesTableLib.inf */, + 9AA90EFA25CD451800BD5E8B /* SmmServicesTableLib.uni */, + ); + path = SmmServicesTableLib; + sourceTree = ""; + }; + 9AA90EFB25CD451800BD5E8B /* DxeExtractGuidedSectionLib */ = { + isa = PBXGroup; + children = ( + 9AA90EFC25CD451800BD5E8B /* DxeExtractGuidedSectionLib.uni */, + 9AA90EFD25CD451800BD5E8B /* DxeExtractGuidedSectionLib.inf */, + 9AA90EFE25CD451800BD5E8B /* DxeExtractGuidedSectionLib.c */, + ); + path = DxeExtractGuidedSectionLib; + sourceTree = ""; + }; + 9AA90EFF25CD451800BD5E8B /* UefiApplicationEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA90F0025CD451800BD5E8B /* UefiApplicationEntryPoint.uni */, + 9AA90F0125CD451800BD5E8B /* UefiApplicationEntryPoint.inf */, + 9AA90F0225CD451800BD5E8B /* ApplicationEntryPoint.c */, + ); + path = UefiApplicationEntryPoint; + sourceTree = ""; + }; + 9AA90F0325CD451800BD5E8B /* BaseMemoryLib */ = { + isa = PBXGroup; + children = ( + 9AA90F0425CD451800BD5E8B /* SetMem64Wrapper.c */, + 9AA90F0525CD451800BD5E8B /* ZeroMemWrapper.c */, + 9AA90F0625CD451800BD5E8B /* BaseMemoryLib.inf */, + 9AA90F0725CD451800BD5E8B /* CopyMemWrapper.c */, + 9AA90F0825CD451800BD5E8B /* ScanMem64Wrapper.c */, + 9AA90F0925CD451800BD5E8B /* BaseMemoryLib.uni */, + 9AA90F0A25CD451800BD5E8B /* MemLibGeneric.c */, + 9AA90F0B25CD451800BD5E8B /* ScanMem8Wrapper.c */, + 9AA90F0C25CD451800BD5E8B /* SetMem32Wrapper.c */, + 9AA90F0D25CD451800BD5E8B /* CopyMem.c */, + 9AA90F0E25CD451800BD5E8B /* SetMem.c */, + 9AA90F0F25CD451800BD5E8B /* ScanMem32Wrapper.c */, + 9AA90F1025CD451800BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90F1125CD451800BD5E8B /* SetMemWrapper.c */, + 9AA90F1225CD451800BD5E8B /* CompareMemWrapper.c */, + 9AA90F1325CD451800BD5E8B /* SetMem16Wrapper.c */, + 9AA90F1425CD451800BD5E8B /* MemLibGuid.c */, + 9AA90F1525CD451800BD5E8B /* MemLibInternals.h */, + 9AA90F1625CD451800BD5E8B /* ScanMem16Wrapper.c */, + ); + path = BaseMemoryLib; + sourceTree = ""; + }; + 9AA90F1725CD451800BD5E8B /* SmmIoLibSmmCpuIo2 */ = { + isa = PBXGroup; + children = ( + 9AA90F1825CD451800BD5E8B /* IoLibMmioBuffer.c */, + 9AA90F1925CD451800BD5E8B /* IoLib.c */, + 9AA90F1A25CD451800BD5E8B /* IoHighLevel.c */, + 9AA90F1B25CD451800BD5E8B /* SmmCpuIoLibInternal.h */, + 9AA90F1C25CD451800BD5E8B /* SmmIoLibSmmCpuIo2.uni */, + 9AA90F1D25CD451800BD5E8B /* SmmIoLibSmmCpuIo2.inf */, + ); + path = SmmIoLibSmmCpuIo2; + sourceTree = ""; + }; + 9AA90F1E25CD451800BD5E8B /* DxeSmbusLib */ = { + isa = PBXGroup; + children = ( + 9AA90F1F25CD451800BD5E8B /* DxeSmbusLib.c */, + 9AA90F2025CD451800BD5E8B /* SmbusLib.c */, + 9AA90F2125CD451800BD5E8B /* InternalSmbusLib.h */, + 9AA90F2225CD451800BD5E8B /* DxeSmbusLib.inf */, + 9AA90F2325CD451800BD5E8B /* DxeSmbusLib.uni */, + ); + path = DxeSmbusLib; + sourceTree = ""; + }; + 9AA90F2425CD451800BD5E8B /* BaseSmbusLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90F2525CD451800BD5E8B /* BaseSmbusLibNull.c */, + 9AA90F2625CD451800BD5E8B /* BaseSmbusLibNull.uni */, + 9AA90F2725CD451800BD5E8B /* BaseSmbusLibNull.inf */, + ); + path = BaseSmbusLibNull; + sourceTree = ""; + }; + 9AA90F2825CD451800BD5E8B /* BaseTimerLibNullTemplate */ = { + isa = PBXGroup; + children = ( + 9AA90F2925CD451800BD5E8B /* BaseTimerLibNullTemplate.uni */, + 9AA90F2A25CD451800BD5E8B /* BaseTimerLibNullTemplate.inf */, + 9AA90F2B25CD451800BD5E8B /* TimerLibNull.c */, + ); + path = BaseTimerLibNullTemplate; + sourceTree = ""; + }; + 9AA90F2C25CD451800BD5E8B /* BaseS3IoLib */ = { + isa = PBXGroup; + children = ( + 9AA90F2D25CD451800BD5E8B /* BaseS3IoLib.inf */, + 9AA90F2E25CD451800BD5E8B /* BaseS3IoLib.uni */, + 9AA90F2F25CD451800BD5E8B /* S3IoLib.c */, + ); + path = BaseS3IoLib; + sourceTree = ""; + }; + 9AA90F3025CD451800BD5E8B /* BaseDebugLibSerialPort */ = { + isa = PBXGroup; + children = ( + 9AA90F3125CD451800BD5E8B /* BaseDebugLibSerialPort.uni */, + 9AA90F3225CD451800BD5E8B /* BaseDebugLibSerialPort.inf */, + 9AA90F3325CD451800BD5E8B /* DebugLib.c */, + ); + path = BaseDebugLibSerialPort; + sourceTree = ""; + }; + 9AA90F3425CD451800BD5E8B /* BaseMemoryLibSse2 */ = { + isa = PBXGroup; + children = ( + 9AA90F3525CD451800BD5E8B /* SetMem64Wrapper.c */, + 9AA90F3625CD451800BD5E8B /* ZeroMemWrapper.c */, + 9AA90F3725CD451800BD5E8B /* CopyMemWrapper.c */, + 9AA90F3825CD451800BD5E8B /* ScanMem64Wrapper.c */, + 9AA90F3925CD451800BD5E8B /* X64 */, + 9AA90F4625CD451800BD5E8B /* BaseMemoryLibSse2.uni */, + 9AA90F4725CD451800BD5E8B /* ScanMem8Wrapper.c */, + 9AA90F4825CD451800BD5E8B /* BaseMemoryLibSse2.inf */, + 9AA90F4925CD451800BD5E8B /* SetMem32Wrapper.c */, + 9AA90F4A25CD451800BD5E8B /* Ia32 */, + 9AA90F5725CD451800BD5E8B /* ScanMem32Wrapper.c */, + 9AA90F5825CD451800BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90F5925CD451800BD5E8B /* SetMemWrapper.c */, + 9AA90F5A25CD451800BD5E8B /* CompareMemWrapper.c */, + 9AA90F5B25CD451800BD5E8B /* SetMem16Wrapper.c */, + 9AA90F5C25CD451800BD5E8B /* MemLibGuid.c */, + 9AA90F5D25CD451800BD5E8B /* MemLibInternals.h */, + 9AA90F5E25CD451800BD5E8B /* ScanMem16Wrapper.c */, + ); + path = BaseMemoryLibSse2; + sourceTree = ""; + }; + 9AA90F3925CD451800BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90F3A25CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90F3B25CD451800BD5E8B /* CompareMem.nasm */, + 9AA90F3C25CD451800BD5E8B /* SetMem16.nasm */, + 9AA90F3D25CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90F3E25CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90F3F25CD451800BD5E8B /* SetMem.nasm */, + 9AA90F4025CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90F4125CD451800BD5E8B /* SetMem64.nasm */, + 9AA90F4225CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90F4325CD451800BD5E8B /* SetMem32.nasm */, + 9AA90F4425CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90F4525CD451800BD5E8B /* CopyMem.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90F4A25CD451800BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90F4B25CD451800BD5E8B /* ZeroMem.nasm */, + 9AA90F4C25CD451800BD5E8B /* CompareMem.nasm */, + 9AA90F4D25CD451800BD5E8B /* SetMem16.nasm */, + 9AA90F4E25CD451800BD5E8B /* ScanMem64.nasm */, + 9AA90F4F25CD451800BD5E8B /* ScanMem32.nasm */, + 9AA90F5025CD451800BD5E8B /* SetMem.nasm */, + 9AA90F5125CD451800BD5E8B /* IsZeroBuffer.nasm */, + 9AA90F5225CD451800BD5E8B /* SetMem64.nasm */, + 9AA90F5325CD451800BD5E8B /* ScanMem8.nasm */, + 9AA90F5425CD451800BD5E8B /* SetMem32.nasm */, + 9AA90F5525CD451800BD5E8B /* ScanMem16.nasm */, + 9AA90F5625CD451800BD5E8B /* CopyMem.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90F5F25CD451800BD5E8B /* BaseUefiDecompressLib */ = { + isa = PBXGroup; + children = ( + 9AA90F6025CD451800BD5E8B /* BaseUefiDecompressLib.uni */, + 9AA90F6125CD451800BD5E8B /* BaseUefiDecompressLib.inf */, + 9AA90F6225CD451800BD5E8B /* BaseUefiDecompressLibInternals.h */, + 9AA90F6325CD451800BD5E8B /* BaseUefiTianoCustomDecompressLib.inf */, + 9AA90F6425CD451800BD5E8B /* BaseUefiDecompressLib.c */, + 9AA90F6525CD451800BD5E8B /* BaseUefiTianoCustomDecompressLib.c */, + ); + path = BaseUefiDecompressLib; + sourceTree = ""; + }; + 9AA90F6625CD451800BD5E8B /* BaseSerialPortLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90F6725CD451800BD5E8B /* BaseSerialPortLibNull.uni */, + 9AA90F6825CD451800BD5E8B /* BaseSerialPortLibNull.inf */, + 9AA90F6925CD451800BD5E8B /* BaseSerialPortLibNull.c */, + ); + path = BaseSerialPortLibNull; + sourceTree = ""; + }; + 9AA90F6A25CD451800BD5E8B /* BaseS3BootScriptLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90F6B25CD451800BD5E8B /* BaseS3BootScriptLibNull.inf */, + 9AA90F6C25CD451800BD5E8B /* BootScriptLib.c */, + 9AA90F6D25CD451800BD5E8B /* BaseS3BootScriptLibNull.uni */, + ); + path = BaseS3BootScriptLibNull; + sourceTree = ""; + }; + 9AA90F6E25CD451800BD5E8B /* DxePcdLib */ = { + isa = PBXGroup; + children = ( + 9AA90F6F25CD451800BD5E8B /* DxePcdLib.c */, + 9AA90F7025CD451800BD5E8B /* DxePcdLib.uni */, + 9AA90F7125CD451800BD5E8B /* DxePcdLib.inf */, + ); + path = DxePcdLib; + sourceTree = ""; + }; + 9AA90F7225CD451800BD5E8B /* SmmPeriodicSmiLib */ = { + isa = PBXGroup; + children = ( + 9AA90F7325CD451800BD5E8B /* SmmPeriodicSmiLib.inf */, + 9AA90F7425CD451800BD5E8B /* SmmPeriodicSmiLib.uni */, + 9AA90F7525CD451800BD5E8B /* SmmPeriodicSmiLib.c */, + ); + path = SmmPeriodicSmiLib; + sourceTree = ""; + }; + 9AA90F7625CD451800BD5E8B /* UefiScsiLib */ = { + isa = PBXGroup; + children = ( + 9AA90F7725CD451800BD5E8B /* UefiScsiLib.c */, + 9AA90F7825CD451800BD5E8B /* UefiScsiLib.uni */, + 9AA90F7925CD451800BD5E8B /* UefiScsiLib.inf */, + ); + path = UefiScsiLib; + sourceTree = ""; + }; + 9AA90F7A25CD451800BD5E8B /* PeiResourcePublicationLib */ = { + isa = PBXGroup; + children = ( + 9AA90F7B25CD451800BD5E8B /* PeiResourcePublicationLib.c */, + 9AA90F7C25CD451800BD5E8B /* PeiResourcePublicationLib.inf */, + 9AA90F7D25CD451800BD5E8B /* PeiResourcePublicationLib.uni */, + ); + path = PeiResourcePublicationLib; + sourceTree = ""; + }; + 9AA90F7E25CD451800BD5E8B /* DxeHobLib */ = { + isa = PBXGroup; + children = ( + 9AA90F7F25CD451800BD5E8B /* DxeHobLib.inf */, + 9AA90F8025CD451800BD5E8B /* DxeHobLib.uni */, + 9AA90F8125CD451800BD5E8B /* HobLib.c */, + ); + path = DxeHobLib; + sourceTree = ""; + }; + 9AA90F8225CD451800BD5E8B /* BaseS3PciSegmentLib */ = { + isa = PBXGroup; + children = ( + 9AA90F8325CD451800BD5E8B /* S3PciSegmentLib.c */, + 9AA90F8425CD451800BD5E8B /* BaseS3PciSegmentLib.uni */, + 9AA90F8525CD451800BD5E8B /* BaseS3PciSegmentLib.inf */, + ); + path = BaseS3PciSegmentLib; + sourceTree = ""; + }; + 9AA90F8625CD451800BD5E8B /* BasePciSegmentInfoLibNull */ = { + isa = PBXGroup; + children = ( + 9AA90F8725CD451800BD5E8B /* BasePciSegmentInfoLibNull.inf */, + 9AA90F8825CD451800BD5E8B /* BasePciSegmentInfoLibNull.uni */, + 9AA90F8925CD451800BD5E8B /* PciSegmentInfoLib.c */, + ); + path = BasePciSegmentInfoLibNull; + sourceTree = ""; + }; + 9AA90F8A25CD451800BD5E8B /* SmmMemoryAllocationLib */ = { + isa = PBXGroup; + children = ( + 9AA90F8B25CD451800BD5E8B /* MemoryAllocationLib.c */, + 9AA90F8C25CD451800BD5E8B /* SmmMemoryAllocationLib.uni */, + 9AA90F8D25CD451800BD5E8B /* SmmMemoryAllocationLib.inf */, + ); + path = SmmMemoryAllocationLib; + sourceTree = ""; + }; + 9AA90F8E25CD451900BD5E8B /* BaseExtractGuidedSectionLib */ = { + isa = PBXGroup; + children = ( + 9AA90F8F25CD451900BD5E8B /* BaseExtractGuidedSectionLib.uni */, + 9AA90F9025CD451900BD5E8B /* BaseExtractGuidedSectionLib.inf */, + 9AA90F9125CD451900BD5E8B /* BaseExtractGuidedSectionLib.c */, + ); + path = BaseExtractGuidedSectionLib; + sourceTree = ""; + }; + 9AA90F9225CD451900BD5E8B /* UefiBootServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA90F9325CD451900BD5E8B /* UefiBootServicesTableLib.uni */, + 9AA90F9425CD451900BD5E8B /* UefiBootServicesTableLib.inf */, + 9AA90F9525CD451900BD5E8B /* UefiBootServicesTableLib.c */, + ); + path = UefiBootServicesTableLib; + sourceTree = ""; + }; + 9AA90F9625CD451900BD5E8B /* UefiDebugLibStdErr */ = { + isa = PBXGroup; + children = ( + 9AA90F9725CD451900BD5E8B /* DebugLibConstructor.c */, + 9AA90F9825CD451900BD5E8B /* UefiDebugLibStdErr.uni */, + 9AA90F9925CD451900BD5E8B /* UefiDebugLibStdErr.inf */, + 9AA90F9A25CD451900BD5E8B /* DebugLib.c */, + ); + path = UefiDebugLibStdErr; + sourceTree = ""; + }; + 9AA90F9B25CD451900BD5E8B /* PeiMemoryAllocationLib */ = { + isa = PBXGroup; + children = ( + 9AA90F9C25CD451900BD5E8B /* MemoryAllocationLib.c */, + 9AA90F9D25CD451900BD5E8B /* PeiMemoryAllocationLib.uni */, + 9AA90F9E25CD451900BD5E8B /* PeiMemoryAllocationLib.inf */, + ); + path = PeiMemoryAllocationLib; + sourceTree = ""; + }; + 9AA90F9F25CD451900BD5E8B /* UefiDevicePathLib */ = { + isa = PBXGroup; + children = ( + 9AA90FA025CD451900BD5E8B /* DevicePathUtilities.c */, + 9AA90FA125CD451900BD5E8B /* UefiDevicePathLib.c */, + 9AA90FA225CD451900BD5E8B /* DevicePathFromText.c */, + 9AA90FA325CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.uni */, + 9AA90FA425CD451900BD5E8B /* DevicePathToText.c */, + 9AA90FA525CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.c */, + 9AA90FA625CD451900BD5E8B /* UefiDevicePathLibOptionalDevicePathProtocol.inf */, + 9AA90FA725CD451900BD5E8B /* UefiDevicePathLib.uni */, + 9AA90FA825CD451900BD5E8B /* UefiDevicePathLib.inf */, + 9AA90FA925CD451900BD5E8B /* UefiDevicePathLib.h */, + ); + path = UefiDevicePathLib; + sourceTree = ""; + }; + 9AA90FAA25CD451900BD5E8B /* PeiHobLib */ = { + isa = PBXGroup; + children = ( + 9AA90FAB25CD451900BD5E8B /* PeiHobLib.uni */, + 9AA90FAC25CD451900BD5E8B /* PeiHobLib.inf */, + 9AA90FAD25CD451900BD5E8B /* HobLib.c */, + ); + path = PeiHobLib; + sourceTree = ""; + }; + 9AA90FAE25CD451900BD5E8B /* PeiMemoryLib */ = { + isa = PBXGroup; + children = ( + 9AA90FAF25CD451900BD5E8B /* SetMem64Wrapper.c */, + 9AA90FB025CD451900BD5E8B /* ZeroMemWrapper.c */, + 9AA90FB125CD451900BD5E8B /* CopyMemWrapper.c */, + 9AA90FB225CD451900BD5E8B /* ScanMem64Wrapper.c */, + 9AA90FB325CD451900BD5E8B /* MemLibGeneric.c */, + 9AA90FB425CD451900BD5E8B /* PeiMemoryLib.inf */, + 9AA90FB525CD451900BD5E8B /* ScanMem8Wrapper.c */, + 9AA90FB625CD451900BD5E8B /* PeiMemoryLib.uni */, + 9AA90FB725CD451900BD5E8B /* SetMem32Wrapper.c */, + 9AA90FB825CD451900BD5E8B /* ScanMem32Wrapper.c */, + 9AA90FB925CD451900BD5E8B /* IsZeroBufferWrapper.c */, + 9AA90FBA25CD451900BD5E8B /* SetMemWrapper.c */, + 9AA90FBB25CD451900BD5E8B /* MemLib.c */, + 9AA90FBC25CD451900BD5E8B /* CompareMemWrapper.c */, + 9AA90FBD25CD451900BD5E8B /* SetMem16Wrapper.c */, + 9AA90FBE25CD451900BD5E8B /* MemLibGuid.c */, + 9AA90FBF25CD451900BD5E8B /* MemLibInternals.h */, + 9AA90FC025CD451900BD5E8B /* ScanMem16Wrapper.c */, + ); + path = PeiMemoryLib; + sourceTree = ""; + }; + 9AA90FC125CD451900BD5E8B /* BaseIoLibIntrinsic */ = { + isa = PBXGroup; + children = ( + 9AA90FC225CD451900BD5E8B /* BaseIoLibIntrinsic.inf */, + 9AA90FC325CD451900BD5E8B /* IoLibEbc.c */, + 9AA90FC425CD451900BD5E8B /* BaseIoLibIntrinsic.uni */, + 9AA90FC525CD451900BD5E8B /* IoLibGcc.c */, + 9AA90FC625CD451900BD5E8B /* BaseIoLibIntrinsicSev.inf */, + 9AA90FC725CD451900BD5E8B /* BaseIoLibIntrinsicInternal.h */, + 9AA90FC825CD451900BD5E8B /* IoLibMmioBuffer.c */, + 9AA90FC925CD451900BD5E8B /* X64 */, + 9AA90FCC25CD451900BD5E8B /* IoLib.c */, + 9AA90FCD25CD451900BD5E8B /* IoHighLevel.c */, + 9AA90FCE25CD451900BD5E8B /* IoLibMsc.c */, + 9AA90FCF25CD451900BD5E8B /* Ia32 */, + 9AA90FD225CD451900BD5E8B /* IoLibArm.c */, + 9AA90FD325CD451900BD5E8B /* Arm */, + 9AA90FD625CD451900BD5E8B /* BaseIoLibIntrinsicArmVirt.inf */, + 9AA90FD725CD451900BD5E8B /* AArch64 */, + 9AA90FDA25CD451900BD5E8B /* IoLibArmVirt.c */, + 9AA90FDB25CD451900BD5E8B /* BaseIoLibIntrinsicArmVirt.uni */, + ); + path = BaseIoLibIntrinsic; + sourceTree = ""; + }; + 9AA90FC925CD451900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA90FCA25CD451900BD5E8B /* IoFifo.nasm */, + 9AA90FCB25CD451900BD5E8B /* IoFifoSev.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA90FCF25CD451900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA90FD025CD451900BD5E8B /* IoFifo.nasm */, + 9AA90FD125CD451900BD5E8B /* IoFifoSev.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA90FD325CD451900BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA90FD425CD451900BD5E8B /* ArmVirtMmio.S */, + 9AA90FD525CD451900BD5E8B /* ArmVirtMmio.asm */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA90FD725CD451900BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA90FD825CD451900BD5E8B /* ArmVirtMmio.S */, + 9AA90FD925CD451900BD5E8B /* ArmVirtMmio.asm */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA90FDC25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2 */ = { + isa = PBXGroup; + children = ( + 9AA90FDD25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2.inf */, + 9AA90FDE25CD451900BD5E8B /* PeiPciSegmentLibPciCfg2.uni */, + 9AA90FDF25CD451900BD5E8B /* PciSegmentLib.c */, + ); + path = PeiPciSegmentLibPciCfg2; + sourceTree = ""; + }; + 9AA90FE025CD451900BD5E8B /* BasePeCoffGetEntryPointLib */ = { + isa = PBXGroup; + children = ( + 9AA90FE125CD451900BD5E8B /* BasePeCoffGetEntryPointLib.uni */, + 9AA90FE225CD451900BD5E8B /* BasePeCoffGetEntryPointLib.inf */, + 9AA90FE325CD451900BD5E8B /* PeCoffGetEntryPoint.c */, + ); + path = BasePeCoffGetEntryPointLib; + sourceTree = ""; + }; + 9AA90FE425CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol */ = { + isa = PBXGroup; + children = ( + 9AA90FE525CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol.inf */, + 9AA90FE625CD451900BD5E8B /* UefiDevicePathLibDevicePathProtocol.uni */, + 9AA90FE725CD451900BD5E8B /* UefiDevicePathLib.c */, + ); + path = UefiDevicePathLibDevicePathProtocol; + sourceTree = ""; + }; + 9AA90FE825CD451900BD5E8B /* SmmIoLib */ = { + isa = PBXGroup; + children = ( + 9AA90FE925CD451900BD5E8B /* SmmIoLib.c */, + 9AA90FEA25CD451900BD5E8B /* SmmIoLib.uni */, + 9AA90FEB25CD451900BD5E8B /* SmmIoLib.inf */, + ); + path = SmmIoLib; + sourceTree = ""; + }; + 9AA90FEC25CD451900BD5E8B /* DxeCoreHobLib */ = { + isa = PBXGroup; + children = ( + 9AA90FED25CD451900BD5E8B /* HobLib.c */, + 9AA90FEE25CD451900BD5E8B /* DxeCoreHobLib.inf */, + 9AA90FEF25CD451900BD5E8B /* DxeCoreHobLib.uni */, + ); + path = DxeCoreHobLib; + sourceTree = ""; + }; + 9AA90FF025CD451900BD5E8B /* UefiRuntimeServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA90FF125CD451900BD5E8B /* UefiRuntimeServicesTableLib.uni */, + 9AA90FF225CD451900BD5E8B /* UefiRuntimeServicesTableLib.inf */, + 9AA90FF325CD451900BD5E8B /* UefiRuntimeServicesTableLib.c */, + ); + path = UefiRuntimeServicesTableLib; + sourceTree = ""; + }; + 9AA90FF425CD451900BD5E8B /* PeiPcdLib */ = { + isa = PBXGroup; + children = ( + 9AA90FF525CD451900BD5E8B /* PeiPcdLib.c */, + 9AA90FF625CD451900BD5E8B /* PeiPcdLib.inf */, + 9AA90FF725CD451900BD5E8B /* PeiPcdLib.uni */, + ); + path = PeiPcdLib; + sourceTree = ""; + }; + 9AA90FF825CD451900BD5E8B /* SmmMemLib */ = { + isa = PBXGroup; + children = ( + 9AA90FF925CD451900BD5E8B /* SmmMemLib.uni */, + 9AA90FFA25CD451900BD5E8B /* SmmMemLib.c */, + 9AA90FFB25CD451900BD5E8B /* SmmMemLib.inf */, + ); + path = SmmMemLib; + sourceTree = ""; + }; + 9AA90FFC25CD451900BD5E8B /* UefiFileHandleLib */ = { + isa = PBXGroup; + children = ( + 9AA90FFD25CD451900BD5E8B /* UefiFileHandleLib.inf */, + 9AA90FFE25CD451900BD5E8B /* UefiFileHandleLib.uni */, + 9AA90FFF25CD451900BD5E8B /* UefiFileHandleLib.c */, + ); + path = UefiFileHandleLib; + sourceTree = ""; + }; + 9AA9100025CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort */ = { + isa = PBXGroup; + children = ( + 9AA9100125CD451900BD5E8B /* DebugLib.c */, + 9AA9100225CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort.inf */, + 9AA9100325CD451900BD5E8B /* DxeRuntimeDebugLibSerialPort.uni */, + ); + path = DxeRuntimeDebugLibSerialPort; + sourceTree = ""; + }; + 9AA9100425CD451900BD5E8B /* BaseMemoryLibMmx */ = { + isa = PBXGroup; + children = ( + 9AA9100525CD451900BD5E8B /* SetMem64Wrapper.c */, + 9AA9100625CD451900BD5E8B /* ZeroMemWrapper.c */, + 9AA9100725CD451900BD5E8B /* CopyMemWrapper.c */, + 9AA9100825CD451900BD5E8B /* ScanMem64Wrapper.c */, + 9AA9100925CD451900BD5E8B /* X64 */, + 9AA9101625CD451900BD5E8B /* ScanMem8Wrapper.c */, + 9AA9101725CD451900BD5E8B /* SetMem32Wrapper.c */, + 9AA9101825CD451900BD5E8B /* Ia32 */, + 9AA9102525CD451900BD5E8B /* ScanMem32Wrapper.c */, + 9AA9102625CD451900BD5E8B /* IsZeroBufferWrapper.c */, + 9AA9102725CD451900BD5E8B /* SetMemWrapper.c */, + 9AA9102825CD451900BD5E8B /* CompareMemWrapper.c */, + 9AA9102925CD451900BD5E8B /* SetMem16Wrapper.c */, + 9AA9102A25CD451900BD5E8B /* MemLibGuid.c */, + 9AA9102B25CD451900BD5E8B /* BaseMemoryLibMmx.inf */, + 9AA9102C25CD451900BD5E8B /* MemLibInternals.h */, + 9AA9102D25CD451900BD5E8B /* ScanMem16Wrapper.c */, + 9AA9102E25CD451900BD5E8B /* BaseMemoryLibMmx.uni */, + ); + path = BaseMemoryLibMmx; + sourceTree = ""; + }; + 9AA9100925CD451900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9100A25CD451900BD5E8B /* ZeroMem.nasm */, + 9AA9100B25CD451900BD5E8B /* CompareMem.nasm */, + 9AA9100C25CD451900BD5E8B /* SetMem16.nasm */, + 9AA9100D25CD451900BD5E8B /* ScanMem64.nasm */, + 9AA9100E25CD451900BD5E8B /* ScanMem32.nasm */, + 9AA9100F25CD451900BD5E8B /* SetMem.nasm */, + 9AA9101025CD451900BD5E8B /* IsZeroBuffer.nasm */, + 9AA9101125CD451900BD5E8B /* SetMem64.nasm */, + 9AA9101225CD451900BD5E8B /* ScanMem8.nasm */, + 9AA9101325CD451900BD5E8B /* SetMem32.nasm */, + 9AA9101425CD451900BD5E8B /* ScanMem16.nasm */, + 9AA9101525CD451900BD5E8B /* CopyMem.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9101825CD451900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA9101925CD451900BD5E8B /* ZeroMem.nasm */, + 9AA9101A25CD451900BD5E8B /* CompareMem.nasm */, + 9AA9101B25CD451900BD5E8B /* SetMem16.nasm */, + 9AA9101C25CD451900BD5E8B /* ScanMem64.nasm */, + 9AA9101D25CD451900BD5E8B /* ScanMem32.nasm */, + 9AA9101E25CD451900BD5E8B /* SetMem.nasm */, + 9AA9101F25CD451900BD5E8B /* IsZeroBuffer.nasm */, + 9AA9102025CD451900BD5E8B /* SetMem64.nasm */, + 9AA9102125CD451900BD5E8B /* ScanMem8.nasm */, + 9AA9102225CD451900BD5E8B /* SetMem32.nasm */, + 9AA9102325CD451900BD5E8B /* ScanMem16.nasm */, + 9AA9102425CD451900BD5E8B /* CopyMem.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA9102F25CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib */ = { + isa = PBXGroup; + children = ( + 9AA9103025CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.inf */, + 9AA9103125CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.uni */, + 9AA9103225CD451900BD5E8B /* BaseOrderedCollectionRedBlackTreeLib.c */, + ); + path = BaseOrderedCollectionRedBlackTreeLib; + sourceTree = ""; + }; + 9AA9103325CD451900BD5E8B /* UefiMemoryAllocationLib */ = { + isa = PBXGroup; + children = ( + 9AA9103425CD451900BD5E8B /* UefiMemoryAllocationLib.inf */, + 9AA9103525CD451900BD5E8B /* MemoryAllocationLib.c */, + 9AA9103625CD451900BD5E8B /* UefiMemoryAllocationLib.uni */, + ); + path = UefiMemoryAllocationLib; + sourceTree = ""; + }; + 9AA9103725CD451900BD5E8B /* UefiRuntimeLib */ = { + isa = PBXGroup; + children = ( + 9AA9103825CD451900BD5E8B /* UefiRuntimeLib.uni */, + 9AA9103925CD451900BD5E8B /* UefiRuntimeLib.inf */, + 9AA9103A25CD451900BD5E8B /* RuntimeLib.c */, + ); + path = UefiRuntimeLib; + sourceTree = ""; + }; + 9AA9103B25CD451900BD5E8B /* UefiDebugLibConOut */ = { + isa = PBXGroup; + children = ( + 9AA9103C25CD451900BD5E8B /* UefiDebugLibConOut.inf */, + 9AA9103D25CD451900BD5E8B /* UefiDebugLibConOut.uni */, + 9AA9103E25CD451900BD5E8B /* DebugLibConstructor.c */, + 9AA9103F25CD451900BD5E8B /* DebugLib.c */, + ); + path = UefiDebugLibConOut; + sourceTree = ""; + }; + 9AA9104025CD451900BD5E8B /* BasePciLibPciExpress */ = { + isa = PBXGroup; + children = ( + 9AA9104125CD451900BD5E8B /* BasePciLibPciExpress.uni */, + 9AA9104225CD451900BD5E8B /* BasePciLibPciExpress.inf */, + 9AA9104325CD451900BD5E8B /* PciLib.c */, + ); + path = BasePciLibPciExpress; + sourceTree = ""; + }; + 9AA9104425CD451900BD5E8B /* UefiLib */ = { + isa = PBXGroup; + children = ( + 9AA9104525CD451900BD5E8B /* UefiLibPrint.c */, + 9AA9104625CD451900BD5E8B /* UefiLib.uni */, + 9AA9104725CD451900BD5E8B /* UefiLib.inf */, + 9AA9104825CD451900BD5E8B /* UefiDriverModel.c */, + 9AA9104925CD451900BD5E8B /* UefiNotTiano.c */, + 9AA9104A25CD451900BD5E8B /* Console.c */, + 9AA9104B25CD451900BD5E8B /* UefiLib.c */, + 9AA9104C25CD451900BD5E8B /* UefiLibInternal.h */, + 9AA9104D25CD451900BD5E8B /* Acpi.c */, + ); + path = UefiLib; + sourceTree = ""; + }; + 9AA9104E25CD451900BD5E8B /* DxeHstiLib */ = { + isa = PBXGroup; + children = ( + 9AA9104F25CD451900BD5E8B /* DxeHstiLib.uni */, + 9AA9105025CD451900BD5E8B /* HstiDxe.c */, + 9AA9105125CD451900BD5E8B /* DxeHstiLib.inf */, + 9AA9105225CD451900BD5E8B /* HstiAip.c */, + 9AA9105325CD451900BD5E8B /* HstiDxe.h */, + ); + path = DxeHstiLib; + sourceTree = ""; + }; + 9AA9105425CD451900BD5E8B /* BasePostCodeLibDebug */ = { + isa = PBXGroup; + children = ( + 9AA9105525CD451900BD5E8B /* PostCode.c */, + 9AA9105625CD451900BD5E8B /* BasePostCodeLibDebug.uni */, + 9AA9105725CD451900BD5E8B /* BasePostCodeLibDebug.inf */, + ); + path = BasePostCodeLibDebug; + sourceTree = ""; + }; + 9AA9105825CD451900BD5E8B /* BaseS3StallLib */ = { + isa = PBXGroup; + children = ( + 9AA9105925CD451900BD5E8B /* BaseS3StallLib.inf */, + 9AA9105A25CD451900BD5E8B /* BaseS3StallLib.uni */, + 9AA9105B25CD451900BD5E8B /* S3StallLib.c */, + ); + path = BaseS3StallLib; + sourceTree = ""; + }; + 9AA9105C25CD451900BD5E8B /* BaseMemoryLibOptPei */ = { + isa = PBXGroup; + children = ( + 9AA9105D25CD451900BD5E8B /* SetMem64Wrapper.c */, + 9AA9105E25CD451900BD5E8B /* ZeroMemWrapper.c */, + 9AA9105F25CD451900BD5E8B /* BaseMemoryLibOptPei.uni */, + 9AA9106025CD451900BD5E8B /* CopyMemWrapper.c */, + 9AA9106125CD451900BD5E8B /* ScanMem64Wrapper.c */, + 9AA9106225CD451900BD5E8B /* BaseMemoryLibOptPei.inf */, + 9AA9106325CD451900BD5E8B /* X64 */, + 9AA9107025CD451900BD5E8B /* ScanMem8Wrapper.c */, + 9AA9107125CD451900BD5E8B /* SetMem32Wrapper.c */, + 9AA9107225CD451900BD5E8B /* Ia32 */, + 9AA9107F25CD451900BD5E8B /* ScanMem32Wrapper.c */, + 9AA9108025CD451900BD5E8B /* IsZeroBufferWrapper.c */, + 9AA9108125CD451900BD5E8B /* SetMemWrapper.c */, + 9AA9108225CD451900BD5E8B /* CompareMemWrapper.c */, + 9AA9108325CD451900BD5E8B /* SetMem16Wrapper.c */, + 9AA9108425CD451900BD5E8B /* MemLibGuid.c */, + 9AA9108525CD451900BD5E8B /* MemLibInternals.h */, + 9AA9108625CD451900BD5E8B /* ScanMem16Wrapper.c */, + ); + path = BaseMemoryLibOptPei; + sourceTree = ""; + }; + 9AA9106325CD451900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9106425CD451900BD5E8B /* ZeroMem.nasm */, + 9AA9106525CD451900BD5E8B /* CompareMem.nasm */, + 9AA9106625CD451900BD5E8B /* SetMem16.nasm */, + 9AA9106725CD451900BD5E8B /* ScanMem64.nasm */, + 9AA9106825CD451900BD5E8B /* ScanMem32.nasm */, + 9AA9106925CD451900BD5E8B /* SetMem.nasm */, + 9AA9106A25CD451900BD5E8B /* IsZeroBuffer.nasm */, + 9AA9106B25CD451900BD5E8B /* SetMem64.nasm */, + 9AA9106C25CD451900BD5E8B /* ScanMem8.nasm */, + 9AA9106D25CD451900BD5E8B /* SetMem32.nasm */, + 9AA9106E25CD451900BD5E8B /* ScanMem16.nasm */, + 9AA9106F25CD451900BD5E8B /* CopyMem.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9107225CD451900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA9107325CD451900BD5E8B /* ZeroMem.nasm */, + 9AA9107425CD451900BD5E8B /* CompareMem.nasm */, + 9AA9107525CD451900BD5E8B /* SetMem16.nasm */, + 9AA9107625CD451900BD5E8B /* ScanMem64.nasm */, + 9AA9107725CD451900BD5E8B /* ScanMem32.nasm */, + 9AA9107825CD451900BD5E8B /* SetMem.nasm */, + 9AA9107925CD451900BD5E8B /* IsZeroBuffer.nasm */, + 9AA9107A25CD451900BD5E8B /* SetMem64.nasm */, + 9AA9107B25CD451900BD5E8B /* ScanMem8.nasm */, + 9AA9107C25CD451900BD5E8B /* SetMem32.nasm */, + 9AA9107D25CD451900BD5E8B /* ScanMem16.nasm */, + 9AA9107E25CD451900BD5E8B /* CopyMem.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA9108725CD451900BD5E8B /* UefiPciLibPciRootBridgeIo */ = { + isa = PBXGroup; + children = ( + 9AA9108825CD451900BD5E8B /* UefiPciLibPciRootBridgeIo.uni */, + 9AA9108925CD451900BD5E8B /* UefiPciLibPciRootBridgeIo.inf */, + 9AA9108A25CD451900BD5E8B /* PciLib.c */, + ); + path = UefiPciLibPciRootBridgeIo; + sourceTree = ""; + }; + 9AA9108B25CD451900BD5E8B /* PeimEntryPoint */ = { + isa = PBXGroup; + children = ( + 9AA9108C25CD451900BD5E8B /* PeimEntryPoint.c */, + 9AA9108D25CD451900BD5E8B /* PeimEntryPoint.uni */, + 9AA9108E25CD451900BD5E8B /* PeimEntryPoint.inf */, + ); + path = PeimEntryPoint; + sourceTree = ""; + }; + 9AA9108F25CD451900BD5E8B /* SmiHandlerProfileLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9109025CD451900BD5E8B /* SmiHandlerProfileLibNull.c */, + 9AA9109125CD451900BD5E8B /* SmiHandlerProfileLibNull.inf */, + 9AA9109225CD451900BD5E8B /* SmiHandlerProfileLibNull.uni */, + ); + path = SmiHandlerProfileLibNull; + sourceTree = ""; + }; + 9AA9109325CD451900BD5E8B /* BaseS3PciLib */ = { + isa = PBXGroup; + children = ( + 9AA9109425CD451900BD5E8B /* S3PciLib.c */, + 9AA9109525CD451900BD5E8B /* BaseS3PciLib.uni */, + 9AA9109625CD451900BD5E8B /* BaseS3PciLib.inf */, + ); + path = BaseS3PciLib; + sourceTree = ""; + }; + 9AA9109725CD451900BD5E8B /* BasePrintLib */ = { + isa = PBXGroup; + children = ( + 9AA9109825CD451900BD5E8B /* PrintLibInternal.h */, + 9AA9109925CD451900BD5E8B /* PrintLib.c */, + 9AA9109A25CD451900BD5E8B /* BasePrintLib.inf */, + 9AA9109B25CD451900BD5E8B /* BasePrintLib.uni */, + 9AA9109C25CD451900BD5E8B /* PrintLibInternal.c */, + ); + path = BasePrintLib; + sourceTree = ""; + }; + 9AA9109D25CD451900BD5E8B /* PeiIoLibCpuIo */ = { + isa = PBXGroup; + children = ( + 9AA9109E25CD451900BD5E8B /* IoLibMmioBuffer.c */, + 9AA9109F25CD451900BD5E8B /* IoLib.c */, + 9AA910A025CD451900BD5E8B /* IoHighLevel.c */, + 9AA910A125CD451900BD5E8B /* PeiIoLibCpuIo.uni */, + 9AA910A225CD451900BD5E8B /* PeiIoLibCpuIo.inf */, + ); + path = PeiIoLibCpuIo; + sourceTree = ""; + }; + 9AA910A325CD451900BD5E8B /* BaseReportStatusCodeLibNull */ = { + isa = PBXGroup; + children = ( + 9AA910A425CD451900BD5E8B /* BaseReportStatusCodeLib.c */, + 9AA910A525CD451900BD5E8B /* BaseReportStatusCodeLibNull.uni */, + 9AA910A625CD451900BD5E8B /* BaseReportStatusCodeLibNull.inf */, + ); + path = BaseReportStatusCodeLibNull; + sourceTree = ""; + }; + 9AA910A725CD451900BD5E8B /* DxeServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA910A825CD451900BD5E8B /* DxeServicesTableLib.c */, + 9AA910A925CD451900BD5E8B /* DxeServicesTableLib.inf */, + 9AA910AA25CD451900BD5E8B /* DxeServicesTableLib.uni */, + ); + path = DxeServicesTableLib; + sourceTree = ""; + }; + 9AA910AB25CD451900BD5E8B /* BasePeCoffExtraActionLibNull */ = { + isa = PBXGroup; + children = ( + 9AA910AC25CD451900BD5E8B /* BasePeCoffExtraActionLibNull.inf */, + 9AA910AD25CD451900BD5E8B /* PeCoffExtraActionLibNull.uni */, + 9AA910AE25CD451900BD5E8B /* PeCoffExtraActionLib.c */, + ); + path = BasePeCoffExtraActionLibNull; + sourceTree = ""; + }; + 9AA910AF25CD451900BD5E8B /* UefiUsbLib */ = { + isa = PBXGroup; + children = ( + 9AA910B025CD451900BD5E8B /* UsbDxeLib.c */, + 9AA910B125CD451900BD5E8B /* UefiUsbLib.inf */, + 9AA910B225CD451900BD5E8B /* UefiUsbLib.uni */, + 9AA910B325CD451900BD5E8B /* Hid.c */, + 9AA910B425CD451900BD5E8B /* UefiUsbLibInternal.h */, + ); + path = UefiUsbLib; + sourceTree = ""; + }; + 9AA910B925CD452900BD5E8B /* MdeModulePkg */ = { + isa = PBXGroup; + children = ( + 9AA910BA25CD452900BD5E8B /* Core */, + 9AA9114925CD452900BD5E8B /* Universal */, + 9AA913E625CD452A00BD5E8B /* Include */, + 9AA9148825CD452B00BD5E8B /* MdeModulePkgExtra.uni */, + 9AA9148925CD452B00BD5E8B /* Bus */, + 9AA9165225CD452C00BD5E8B /* Library */, + 9AA9180F25CD452C00BD5E8B /* MdeModulePkgSample.dec */, + 9AA9181025CD452C00BD5E8B /* Logo */, + 9AA9181A25CD452D00BD5E8B /* MdeModulePkg.uni */, + 9AA9181B25CD452D00BD5E8B /* MdeModulePkg.dec */, + 9AA9181C25CD452D00BD5E8B /* Application */, + 9AA9185525CD452D00BD5E8B /* MdeModulePkg.dsc */, + ); + path = MdeModulePkg; + sourceTree = ""; + }; + 9AA910BA25CD452900BD5E8B /* Core */ = { + isa = PBXGroup; + children = ( + 9AA910BB25CD452900BD5E8B /* RuntimeDxe */, + 9AA910C225CD452900BD5E8B /* Dxe */, + 9AA910FC25CD452900BD5E8B /* PiSmmCore */, + 9AA9111525CD452900BD5E8B /* Pei */, + 9AA9113825CD452900BD5E8B /* DxeIplPeim */, + ); + path = Core; + sourceTree = ""; + }; + 9AA910BB25CD452900BD5E8B /* RuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA910BC25CD452900BD5E8B /* Runtime.c */, + 9AA910BD25CD452900BD5E8B /* RuntimeDxe.inf */, + 9AA910BE25CD452900BD5E8B /* RuntimeDxe.uni */, + 9AA910BF25CD452900BD5E8B /* Crc32.c */, + 9AA910C025CD452900BD5E8B /* Runtime.h */, + 9AA910C125CD452900BD5E8B /* RuntimeDxeExtra.uni */, + ); + path = RuntimeDxe; + sourceTree = ""; + }; + 9AA910C225CD452900BD5E8B /* Dxe */ = { + isa = PBXGroup; + children = ( + 9AA910C325CD452900BD5E8B /* Misc */, + 9AA910CB25CD452900BD5E8B /* Hand */, + 9AA910D125CD452900BD5E8B /* DxeMain.inf */, + 9AA910D225CD452900BD5E8B /* FwVolBlock */, + 9AA910D525CD452900BD5E8B /* Dispatcher */, + 9AA910D825CD452900BD5E8B /* FwVol */, + 9AA910DF25CD452900BD5E8B /* DxeMain */, + 9AA910E225CD452900BD5E8B /* Library */, + 9AA910E425CD452900BD5E8B /* Gcd */, + 9AA910E725CD452900BD5E8B /* Image */, + 9AA910EA25CD452900BD5E8B /* DxeMain.h */, + 9AA910EB25CD452900BD5E8B /* DxeCore.uni */, + 9AA910EC25CD452900BD5E8B /* SectionExtraction */, + 9AA910EE25CD452900BD5E8B /* Event */, + 9AA910F325CD452900BD5E8B /* DxeCoreExtra.uni */, + 9AA910F425CD452900BD5E8B /* Mem */, + ); + path = Dxe; + sourceTree = ""; + }; + 9AA910C325CD452900BD5E8B /* Misc */ = { + isa = PBXGroup; + children = ( + 9AA910C425CD452900BD5E8B /* Stall.c */, + 9AA910C525CD452900BD5E8B /* MemoryProtection.c */, + 9AA910C625CD452900BD5E8B /* DebugImageInfo.c */, + 9AA910C725CD452900BD5E8B /* InstallConfigurationTable.c */, + 9AA910C825CD452900BD5E8B /* SetWatchdogTimer.c */, + 9AA910C925CD452900BD5E8B /* PropertiesTable.c */, + 9AA910CA25CD452900BD5E8B /* MemoryAttributesTable.c */, + ); + path = Misc; + sourceTree = ""; + }; + 9AA910CB25CD452900BD5E8B /* Hand */ = { + isa = PBXGroup; + children = ( + 9AA910CC25CD452900BD5E8B /* Handle.c */, + 9AA910CD25CD452900BD5E8B /* Handle.h */, + 9AA910CE25CD452900BD5E8B /* Locate.c */, + 9AA910CF25CD452900BD5E8B /* DriverSupport.c */, + 9AA910D025CD452900BD5E8B /* Notify.c */, + ); + path = Hand; + sourceTree = ""; + }; + 9AA910D225CD452900BD5E8B /* FwVolBlock */ = { + isa = PBXGroup; + children = ( + 9AA910D325CD452900BD5E8B /* FwVolBlock.c */, + 9AA910D425CD452900BD5E8B /* FwVolBlock.h */, + ); + path = FwVolBlock; + sourceTree = ""; + }; + 9AA910D525CD452900BD5E8B /* Dispatcher */ = { + isa = PBXGroup; + children = ( + 9AA910D625CD452900BD5E8B /* Dispatcher.c */, + 9AA910D725CD452900BD5E8B /* Dependency.c */, + ); + path = Dispatcher; + sourceTree = ""; + }; + 9AA910D825CD452900BD5E8B /* FwVol */ = { + isa = PBXGroup; + children = ( + 9AA910D925CD452900BD5E8B /* FwVolAttrib.c */, + 9AA910DA25CD452900BD5E8B /* FwVolRead.c */, + 9AA910DB25CD452900BD5E8B /* FwVolDriver.h */, + 9AA910DC25CD452900BD5E8B /* Ffs.c */, + 9AA910DD25CD452900BD5E8B /* FwVolWrite.c */, + 9AA910DE25CD452900BD5E8B /* FwVol.c */, + ); + path = FwVol; + sourceTree = ""; + }; + 9AA910DF25CD452900BD5E8B /* DxeMain */ = { + isa = PBXGroup; + children = ( + 9AA910E025CD452900BD5E8B /* DxeProtocolNotify.c */, + 9AA910E125CD452900BD5E8B /* DxeMain.c */, + ); + path = DxeMain; + sourceTree = ""; + }; + 9AA910E225CD452900BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA910E325CD452900BD5E8B /* Library.c */, + ); + path = Library; + sourceTree = ""; + }; + 9AA910E425CD452900BD5E8B /* Gcd */ = { + isa = PBXGroup; + children = ( + 9AA910E525CD452900BD5E8B /* Gcd.c */, + 9AA910E625CD452900BD5E8B /* Gcd.h */, + ); + path = Gcd; + sourceTree = ""; + }; + 9AA910E725CD452900BD5E8B /* Image */ = { + isa = PBXGroup; + children = ( + 9AA910E825CD452900BD5E8B /* Image.c */, + 9AA910E925CD452900BD5E8B /* Image.h */, + ); + path = Image; + sourceTree = ""; + }; + 9AA910EC25CD452900BD5E8B /* SectionExtraction */ = { + isa = PBXGroup; + children = ( + 9AA910ED25CD452900BD5E8B /* CoreSectionExtraction.c */, + ); + path = SectionExtraction; + sourceTree = ""; + }; + 9AA910EE25CD452900BD5E8B /* Event */ = { + isa = PBXGroup; + children = ( + 9AA910EF25CD452900BD5E8B /* Timer.c */, + 9AA910F025CD452900BD5E8B /* Event.h */, + 9AA910F125CD452900BD5E8B /* Event.c */, + 9AA910F225CD452900BD5E8B /* Tpl.c */, + ); + path = Event; + sourceTree = ""; + }; + 9AA910F425CD452900BD5E8B /* Mem */ = { + isa = PBXGroup; + children = ( + 9AA910F525CD452900BD5E8B /* HeapGuard.c */, + 9AA910F625CD452900BD5E8B /* MemData.c */, + 9AA910F725CD452900BD5E8B /* MemoryProfileRecord.c */, + 9AA910F825CD452900BD5E8B /* Page.c */, + 9AA910F925CD452900BD5E8B /* HeapGuard.h */, + 9AA910FA25CD452900BD5E8B /* Imem.h */, + 9AA910FB25CD452900BD5E8B /* Pool.c */, + ); + path = Mem; + sourceTree = ""; + }; + 9AA910FC25CD452900BD5E8B /* PiSmmCore */ = { + isa = PBXGroup; + children = ( + 9AA910FD25CD452900BD5E8B /* Smi.c */, + 9AA910FE25CD452900BD5E8B /* SmiHandlerProfile.c */, + 9AA910FF25CD452900BD5E8B /* HeapGuard.c */, + 9AA9110025CD452900BD5E8B /* PiSmmCore.c */, + 9AA9110125CD452900BD5E8B /* Dispatcher.c */, + 9AA9110225CD452900BD5E8B /* PiSmmIplExtra.uni */, + 9AA9110325CD452900BD5E8B /* SmramProfileRecord.c */, + 9AA9110425CD452900BD5E8B /* Handle.c */, + 9AA9110525CD452900BD5E8B /* PiSmmCoreExtra.uni */, + 9AA9110625CD452900BD5E8B /* InstallConfigurationTable.c */, + 9AA9110725CD452900BD5E8B /* PiSmmCorePrivateData.h */, + 9AA9110825CD452900BD5E8B /* PiSmmIpl.c */, + 9AA9110925CD452900BD5E8B /* Page.c */, + 9AA9110A25CD452900BD5E8B /* PiSmmCore.h */, + 9AA9110B25CD452900BD5E8B /* HeapGuard.h */, + 9AA9110C25CD452900BD5E8B /* PiSmmCore.inf */, + 9AA9110D25CD452900BD5E8B /* Locate.c */, + 9AA9110E25CD452900BD5E8B /* Dependency.c */, + 9AA9110F25CD452900BD5E8B /* Pool.c */, + 9AA9111025CD452900BD5E8B /* PiSmmCore.uni */, + 9AA9111125CD452900BD5E8B /* MemoryAttributesTable.c */, + 9AA9111225CD452900BD5E8B /* PiSmmIpl.uni */, + 9AA9111325CD452900BD5E8B /* Notify.c */, + 9AA9111425CD452900BD5E8B /* PiSmmIpl.inf */, + ); + path = PiSmmCore; + sourceTree = ""; + }; + 9AA9111525CD452900BD5E8B /* Pei */ = { + isa = PBXGroup; + children = ( + 9AA9111625CD452900BD5E8B /* PeiMain.inf */, + 9AA9111725CD452900BD5E8B /* PciCfg2 */, + 9AA9111925CD452900BD5E8B /* Memory */, + 9AA9111B25CD452900BD5E8B /* Hob */, + 9AA9111D25CD452900BD5E8B /* Security */, + 9AA9111F25CD452900BD5E8B /* Reset */, + 9AA9112125CD452900BD5E8B /* Dispatcher */, + 9AA9112325CD452900BD5E8B /* FwVol */, + 9AA9112625CD452900BD5E8B /* Dependency */, + 9AA9112925CD452900BD5E8B /* Image */, + 9AA9112B25CD452900BD5E8B /* PeiMain */, + 9AA9112D25CD452900BD5E8B /* StatusCode */, + 9AA9112F25CD452900BD5E8B /* BootMode */, + 9AA9113125CD452900BD5E8B /* CpuIo */, + 9AA9113325CD452900BD5E8B /* Ppi */, + 9AA9113525CD452900BD5E8B /* PeiCoreExtra.uni */, + 9AA9113625CD452900BD5E8B /* PeiMain.h */, + 9AA9113725CD452900BD5E8B /* PeiCore.uni */, + ); + path = Pei; + sourceTree = ""; + }; + 9AA9111725CD452900BD5E8B /* PciCfg2 */ = { + isa = PBXGroup; + children = ( + 9AA9111825CD452900BD5E8B /* PciCfg2.c */, + ); + path = PciCfg2; + sourceTree = ""; + }; + 9AA9111925CD452900BD5E8B /* Memory */ = { + isa = PBXGroup; + children = ( + 9AA9111A25CD452900BD5E8B /* MemoryServices.c */, + ); + path = Memory; + sourceTree = ""; + }; + 9AA9111B25CD452900BD5E8B /* Hob */ = { + isa = PBXGroup; + children = ( + 9AA9111C25CD452900BD5E8B /* Hob.c */, + ); + path = Hob; + sourceTree = ""; + }; + 9AA9111D25CD452900BD5E8B /* Security */ = { + isa = PBXGroup; + children = ( + 9AA9111E25CD452900BD5E8B /* Security.c */, + ); + path = Security; + sourceTree = ""; + }; + 9AA9111F25CD452900BD5E8B /* Reset */ = { + isa = PBXGroup; + children = ( + 9AA9112025CD452900BD5E8B /* Reset.c */, + ); + path = Reset; + sourceTree = ""; + }; + 9AA9112125CD452900BD5E8B /* Dispatcher */ = { + isa = PBXGroup; + children = ( + 9AA9112225CD452900BD5E8B /* Dispatcher.c */, + ); + path = Dispatcher; + sourceTree = ""; + }; + 9AA9112325CD452900BD5E8B /* FwVol */ = { + isa = PBXGroup; + children = ( + 9AA9112425CD452900BD5E8B /* FwVol.h */, + 9AA9112525CD452900BD5E8B /* FwVol.c */, + ); + path = FwVol; + sourceTree = ""; + }; + 9AA9112625CD452900BD5E8B /* Dependency */ = { + isa = PBXGroup; + children = ( + 9AA9112725CD452900BD5E8B /* Dependency.h */, + 9AA9112825CD452900BD5E8B /* Dependency.c */, + ); + path = Dependency; + sourceTree = ""; + }; + 9AA9112925CD452900BD5E8B /* Image */ = { + isa = PBXGroup; + children = ( + 9AA9112A25CD452900BD5E8B /* Image.c */, + ); + path = Image; + sourceTree = ""; + }; + 9AA9112B25CD452900BD5E8B /* PeiMain */ = { + isa = PBXGroup; + children = ( + 9AA9112C25CD452900BD5E8B /* PeiMain.c */, + ); + path = PeiMain; + sourceTree = ""; + }; + 9AA9112D25CD452900BD5E8B /* StatusCode */ = { + isa = PBXGroup; + children = ( + 9AA9112E25CD452900BD5E8B /* StatusCode.c */, + ); + path = StatusCode; + sourceTree = ""; + }; + 9AA9112F25CD452900BD5E8B /* BootMode */ = { + isa = PBXGroup; + children = ( + 9AA9113025CD452900BD5E8B /* BootMode.c */, + ); + path = BootMode; + sourceTree = ""; + }; + 9AA9113125CD452900BD5E8B /* CpuIo */ = { + isa = PBXGroup; + children = ( + 9AA9113225CD452900BD5E8B /* CpuIo.c */, + ); + path = CpuIo; + sourceTree = ""; + }; + 9AA9113325CD452900BD5E8B /* Ppi */ = { + isa = PBXGroup; + children = ( + 9AA9113425CD452900BD5E8B /* Ppi.c */, + ); + path = Ppi; + sourceTree = ""; + }; + 9AA9113825CD452900BD5E8B /* DxeIplPeim */ = { + isa = PBXGroup; + children = ( + 9AA9113925CD452900BD5E8B /* DxeIpl.uni */, + 9AA9113A25CD452900BD5E8B /* Ebc */, + 9AA9113C25CD452900BD5E8B /* DxeLoad.c */, + 9AA9113D25CD452900BD5E8B /* DxeIpl.inf */, + 9AA9113E25CD452900BD5E8B /* X64 */, + 9AA9114225CD452900BD5E8B /* DxeIpl.h */, + 9AA9114325CD452900BD5E8B /* Ia32 */, + 9AA9114625CD452900BD5E8B /* Arm */, + 9AA9114825CD452900BD5E8B /* DxeIplExtra.uni */, + ); + path = DxeIplPeim; + sourceTree = ""; + }; + 9AA9113A25CD452900BD5E8B /* Ebc */ = { + isa = PBXGroup; + children = ( + 9AA9113B25CD452900BD5E8B /* DxeLoadFunc.c */, + ); + path = Ebc; + sourceTree = ""; + }; + 9AA9113E25CD452900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9113F25CD452900BD5E8B /* VirtualMemory.c */, + 9AA9114025CD452900BD5E8B /* VirtualMemory.h */, + 9AA9114125CD452900BD5E8B /* DxeLoadFunc.c */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9114325CD452900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA9114425CD452900BD5E8B /* IdtVectorAsm.nasm */, + 9AA9114525CD452900BD5E8B /* DxeLoadFunc.c */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA9114625CD452900BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA9114725CD452900BD5E8B /* DxeLoadFunc.c */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA9114925CD452900BD5E8B /* Universal */ = { + isa = PBXGroup; + children = ( + 9AA9114A25CD452900BD5E8B /* DebugPortDxe */, + 9AA9115125CD452900BD5E8B /* EsrtFmpDxe */, + 9AA9115725CD452900BD5E8B /* DebugSupportDxe */, + 9AA9116625CD452900BD5E8B /* Acpi */, + 9AA911A725CD452900BD5E8B /* EbcDxe */, + 9AA911E025CD452900BD5E8B /* EsrtDxe */, + 9AA911E725CD452900BD5E8B /* SmbiosDxe */, + 9AA911ED25CD452900BD5E8B /* SectionExtractionDxe */, + 9AA911F225CD452900BD5E8B /* RegularExpressionDxe */, + 9AA9121D25CD452900BD5E8B /* Variable */, + 9AA9123F25CD452900BD5E8B /* DisplayEngineDxe */, + 9AA9124925CD452900BD5E8B /* CapsuleOnDiskLoadPei */, + 9AA9124E25CD452900BD5E8B /* DriverHealthManagerDxe */, + 9AA9125825CD452A00BD5E8B /* MonotonicCounterRuntimeDxe */, + 9AA9125D25CD452A00BD5E8B /* LegacyRegion2Dxe */, + 9AA9126325CD452A00BD5E8B /* WatchdogTimerDxe */, + 9AA9126925CD452A00BD5E8B /* FaultTolerantWriteDxe */, + 9AA9127F25CD452A00BD5E8B /* DevicePathDxe */, + 9AA9128425CD452A00BD5E8B /* DriverSampleDxe */, + 9AA9128F25CD452A00BD5E8B /* SmbiosMeasurementDxe */, + 9AA9129425CD452A00BD5E8B /* HiiResourcesSampleDxe */, + 9AA9129B25CD452A00BD5E8B /* PlatformDriOverrideDxe */, + 9AA912A525CD452A00BD5E8B /* LoadFileOnFv2 */, + 9AA912AA25CD452A00BD5E8B /* BootManagerPolicyDxe */, + 9AA912AF25CD452A00BD5E8B /* PCD */, + 9AA912BE25CD452A00BD5E8B /* SectionExtractionPei */, + 9AA912C325CD452A00BD5E8B /* StatusCodeHandler */, + 9AA912DC25CD452A00BD5E8B /* DebugServicePei */, + 9AA912E125CD452A00BD5E8B /* TimestampDxe */, + 9AA912E625CD452A00BD5E8B /* ResetSystemPei */, + 9AA912EC25CD452A00BD5E8B /* FvSimpleFileSystemDxe */, + 9AA912F425CD452A00BD5E8B /* SecurityStubDxe */, + 9AA912FB25CD452A00BD5E8B /* Disk */, + 9AA9133025CD452A00BD5E8B /* MemoryTest */, + 9AA9133D25CD452A00BD5E8B /* HiiDatabaseDxe */, + 9AA9134A25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei */, + 9AA9134F25CD452A00BD5E8B /* FaultTolerantWritePei */, + 9AA9135425CD452A00BD5E8B /* BdsDxe */, + 9AA9135E25CD452A00BD5E8B /* SmmCommunicationBufferDxe */, + 9AA9136325CD452A00BD5E8B /* CapsulePei */, + 9AA9137225CD452A00BD5E8B /* ResetSystemRuntimeDxe */, + 9AA9137825CD452A00BD5E8B /* PrintDxe */, + 9AA9137D25CD452A00BD5E8B /* SerialDxe */, + 9AA9138225CD452A00BD5E8B /* LockBox */, + 9AA9138825CD452A00BD5E8B /* FileExplorerDxe */, + 9AA9138D25CD452A00BD5E8B /* ReportStatusCodeRouter */, + 9AA913A025CD452A00BD5E8B /* CapsuleRuntimeDxe */, + 9AA913AE25CD452A00BD5E8B /* SetupBrowserDxe */, + 9AA913B825CD452A00BD5E8B /* Console */, + 9AA913E025CD452A00BD5E8B /* Metronome */, + ); + path = Universal; + sourceTree = ""; + }; + 9AA9114A25CD452900BD5E8B /* DebugPortDxe */ = { + isa = PBXGroup; + children = ( + 9AA9114B25CD452900BD5E8B /* DebugPort.c */, + 9AA9114C25CD452900BD5E8B /* DebugPortDxeExtra.uni */, + 9AA9114D25CD452900BD5E8B /* DebugPortDxe.inf */, + 9AA9114E25CD452900BD5E8B /* ComponentName.c */, + 9AA9114F25CD452900BD5E8B /* DebugPortDxe.uni */, + 9AA9115025CD452900BD5E8B /* DebugPort.h */, + ); + path = DebugPortDxe; + sourceTree = ""; + }; + 9AA9115125CD452900BD5E8B /* EsrtFmpDxe */ = { + isa = PBXGroup; + children = ( + 9AA9115225CD452900BD5E8B /* EsrtFmpDebugPrint.c */, + 9AA9115325CD452900BD5E8B /* EsrtFmpDxeExtra.uni */, + 9AA9115425CD452900BD5E8B /* EsrtFmpDxe.inf */, + 9AA9115525CD452900BD5E8B /* EsrtFmpDxe.uni */, + 9AA9115625CD452900BD5E8B /* EsrtFmp.c */, + ); + path = EsrtFmpDxe; + sourceTree = ""; + }; + 9AA9115725CD452900BD5E8B /* DebugSupportDxe */ = { + isa = PBXGroup; + children = ( + 9AA9115825CD452900BD5E8B /* X64 */, + 9AA9115C25CD452900BD5E8B /* DebugSupportDxeExtra.uni */, + 9AA9115D25CD452900BD5E8B /* DebugSupport.c */, + 9AA9115E25CD452900BD5E8B /* Ia32 */, + 9AA9116425CD452900BD5E8B /* DebugSupportDxe.uni */, + 9AA9116525CD452900BD5E8B /* DebugSupportDxe.inf */, + ); + path = DebugSupportDxe; + sourceTree = ""; + }; + 9AA9115825CD452900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9115925CD452900BD5E8B /* PlDebugSupport.h */, + 9AA9115A25CD452900BD5E8B /* PlDebugSupportX64.c */, + 9AA9115B25CD452900BD5E8B /* AsmFuncs.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9115E25CD452900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA9115F25CD452900BD5E8B /* PlDebugSupport.h */, + 9AA9116025CD452900BD5E8B /* AsmFuncs.nasm */, + 9AA9116125CD452900BD5E8B /* PlDebugSupport.c */, + 9AA9116225CD452900BD5E8B /* PlDebugSupportIa32.c */, + 9AA9116325CD452900BD5E8B /* DebugSupport.h */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA9116625CD452900BD5E8B /* Acpi */ = { + isa = PBXGroup; + children = ( + 9AA9116725CD452900BD5E8B /* AcpiTableDxe */, + 9AA9117525CD452900BD5E8B /* S3SaveStateDxe */, + 9AA9117C25CD452900BD5E8B /* BootGraphicsResourceTableDxe */, + 9AA9118125CD452900BD5E8B /* FirmwarePerformanceDataTableSmm */, + 9AA9118625CD452900BD5E8B /* FirmwarePerformanceDataTablePei */, + 9AA9118B25CD452900BD5E8B /* AcpiPlatformDxe */, + 9AA9119025CD452900BD5E8B /* BootScriptExecutorDxe */, + 9AA9119C25CD452900BD5E8B /* SmmS3SaveState */, + 9AA911A225CD452900BD5E8B /* FirmwarePerformanceDataTableDxe */, + ); + path = Acpi; + sourceTree = ""; + }; + 9AA9116725CD452900BD5E8B /* AcpiTableDxe */ = { + isa = PBXGroup; + children = ( + 9AA9116825CD452900BD5E8B /* AmlNamespace.c */, + 9AA9116925CD452900BD5E8B /* AcpiTableDxeExtra.uni */, + 9AA9116A25CD452900BD5E8B /* AcpiTableProtocol.c */, + 9AA9116B25CD452900BD5E8B /* AmlOption.c */, + 9AA9116C25CD452900BD5E8B /* AmlString.c */, + 9AA9116D25CD452900BD5E8B /* AcpiSdt.c */, + 9AA9116E25CD452900BD5E8B /* AcpiTable.c */, + 9AA9116F25CD452900BD5E8B /* AcpiTableDxe.uni */, + 9AA9117025CD452900BD5E8B /* AmlChild.c */, + 9AA9117125CD452900BD5E8B /* AcpiTableDxe.inf */, + 9AA9117225CD452900BD5E8B /* AcpiSdt.h */, + 9AA9117325CD452900BD5E8B /* Aml.c */, + 9AA9117425CD452900BD5E8B /* AcpiTable.h */, + ); + path = AcpiTableDxe; + sourceTree = ""; + }; + 9AA9117525CD452900BD5E8B /* S3SaveStateDxe */ = { + isa = PBXGroup; + children = ( + 9AA9117625CD452900BD5E8B /* AcpiS3ContextSave.c */, + 9AA9117725CD452900BD5E8B /* S3SaveStateDxeExtra.uni */, + 9AA9117825CD452900BD5E8B /* S3SaveState.c */, + 9AA9117925CD452900BD5E8B /* S3SaveStateDxe.uni */, + 9AA9117A25CD452900BD5E8B /* S3SaveStateDxe.inf */, + 9AA9117B25CD452900BD5E8B /* InternalS3SaveState.h */, + ); + path = S3SaveStateDxe; + sourceTree = ""; + }; + 9AA9117C25CD452900BD5E8B /* BootGraphicsResourceTableDxe */ = { + isa = PBXGroup; + children = ( + 9AA9117D25CD452900BD5E8B /* BootGraphicsResourceTableDxeExtra.uni */, + 9AA9117E25CD452900BD5E8B /* BootGraphicsResourceTableDxe.c */, + 9AA9117F25CD452900BD5E8B /* BootGraphicsResourceTableDxe.inf */, + 9AA9118025CD452900BD5E8B /* BootGraphicsResourceTableDxe.uni */, + ); + path = BootGraphicsResourceTableDxe; + sourceTree = ""; + }; + 9AA9118125CD452900BD5E8B /* FirmwarePerformanceDataTableSmm */ = { + isa = PBXGroup; + children = ( + 9AA9118225CD452900BD5E8B /* FirmwarePerformanceSmm.uni */, + 9AA9118325CD452900BD5E8B /* FirmwarePerformanceSmm.inf */, + 9AA9118425CD452900BD5E8B /* FirmwarePerformanceSmmExtra.uni */, + 9AA9118525CD452900BD5E8B /* FirmwarePerformanceSmm.c */, + ); + path = FirmwarePerformanceDataTableSmm; + sourceTree = ""; + }; + 9AA9118625CD452900BD5E8B /* FirmwarePerformanceDataTablePei */ = { + isa = PBXGroup; + children = ( + 9AA9118725CD452900BD5E8B /* FirmwarePerformancePei.c */, + 9AA9118825CD452900BD5E8B /* FirmwarePerformancePeiExtra.uni */, + 9AA9118925CD452900BD5E8B /* FirmwarePerformancePei.inf */, + 9AA9118A25CD452900BD5E8B /* FirmwarePerformancePei.uni */, + ); + path = FirmwarePerformanceDataTablePei; + sourceTree = ""; + }; + 9AA9118B25CD452900BD5E8B /* AcpiPlatformDxe */ = { + isa = PBXGroup; + children = ( + 9AA9118C25CD452900BD5E8B /* AcpiPlatform.c */, + 9AA9118D25CD452900BD5E8B /* AcpiPlatformDxe.inf */, + 9AA9118E25CD452900BD5E8B /* AcpiPlatformExtra.uni */, + 9AA9118F25CD452900BD5E8B /* AcpiPlatform.uni */, + ); + path = AcpiPlatformDxe; + sourceTree = ""; + }; + 9AA9119025CD452900BD5E8B /* BootScriptExecutorDxe */ = { + isa = PBXGroup; + children = ( + 9AA9119125CD452900BD5E8B /* BootScriptExecutorDxe.inf */, + 9AA9119225CD452900BD5E8B /* BootScriptExecutorDxe.uni */, + 9AA9119325CD452900BD5E8B /* X64 */, + 9AA9119625CD452900BD5E8B /* ScriptExecute.h */, + 9AA9119725CD452900BD5E8B /* BootScriptExecutorDxeExtra.uni */, + 9AA9119825CD452900BD5E8B /* IA32 */, + 9AA9119B25CD452900BD5E8B /* ScriptExecute.c */, + ); + path = BootScriptExecutorDxe; + sourceTree = ""; + }; + 9AA9119325CD452900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9119425CD452900BD5E8B /* S3Asm.nasm */, + 9AA9119525CD452900BD5E8B /* SetIdtEntry.c */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9119825CD452900BD5E8B /* IA32 */ = { + isa = PBXGroup; + children = ( + 9AA9119925CD452900BD5E8B /* S3Asm.nasm */, + 9AA9119A25CD452900BD5E8B /* SetIdtEntry.c */, + ); + path = IA32; + sourceTree = ""; + }; + 9AA9119C25CD452900BD5E8B /* SmmS3SaveState */ = { + isa = PBXGroup; + children = ( + 9AA9119D25CD452900BD5E8B /* SmmS3SaveStateExtra.uni */, + 9AA9119E25CD452900BD5E8B /* SmmS3SaveState.inf */, + 9AA9119F25CD452900BD5E8B /* SmmS3SaveState.uni */, + 9AA911A025CD452900BD5E8B /* InternalSmmSaveState.h */, + 9AA911A125CD452900BD5E8B /* SmmS3SaveState.c */, + ); + path = SmmS3SaveState; + sourceTree = ""; + }; + 9AA911A225CD452900BD5E8B /* FirmwarePerformanceDataTableDxe */ = { + isa = PBXGroup; + children = ( + 9AA911A325CD452900BD5E8B /* FirmwarePerformanceDxe.inf */, + 9AA911A425CD452900BD5E8B /* FirmwarePerformanceDxe.uni */, + 9AA911A525CD452900BD5E8B /* FirmwarePerformanceDxeExtra.uni */, + 9AA911A625CD452900BD5E8B /* FirmwarePerformanceDxe.c */, + ); + path = FirmwarePerformanceDataTableDxe; + sourceTree = ""; + }; + 9AA911A725CD452900BD5E8B /* EbcDxe */ = { + isa = PBXGroup; + children = ( + 9AA911A825CD452900BD5E8B /* EbcDxe.uni */, + 9AA911A925CD452900BD5E8B /* EbcInt.h */, + 9AA911AA25CD452900BD5E8B /* EbcExecute.h */, + 9AA911AB25CD452900BD5E8B /* EbcDxe.inf */, + 9AA911AC25CD452900BD5E8B /* X64 */, + 9AA911AF25CD452900BD5E8B /* EbcDebugger.inf */, + 9AA911B025CD452900BD5E8B /* EbcDebuggerHook.c */, + 9AA911B125CD452900BD5E8B /* EbcDebugger */, + 9AA911D125CD452900BD5E8B /* EbcDebugger.uni */, + 9AA911D225CD452900BD5E8B /* EbcDebuggerConfig.uni */, + 9AA911D325CD452900BD5E8B /* Ia32 */, + 9AA911D625CD452900BD5E8B /* EbcInt.c */, + 9AA911D725CD452900BD5E8B /* EbcDebuggerConfig.inf */, + 9AA911D825CD452900BD5E8B /* EbcExecute.c */, + 9AA911D925CD452900BD5E8B /* EbcDebuggerHook.h */, + 9AA911DA25CD452900BD5E8B /* AArch64 */, + 9AA911DD25CD452900BD5E8B /* EbcDebuggerConfigExtra.uni */, + 9AA911DE25CD452900BD5E8B /* EbcDxeExtra.uni */, + 9AA911DF25CD452900BD5E8B /* EbcDebuggerExtra.uni */, + ); + path = EbcDxe; + sourceTree = ""; + }; + 9AA911AC25CD452900BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA911AD25CD452900BD5E8B /* EbcSupport.c */, + 9AA911AE25CD452900BD5E8B /* EbcLowLevel.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA911B125CD452900BD5E8B /* EbcDebugger */ = { + isa = PBXGroup; + children = ( + 9AA911B225CD452900BD5E8B /* EdbCommand.h */, + 9AA911B325CD452900BD5E8B /* EdbDisasm.h */, + 9AA911B425CD452900BD5E8B /* EdbDisasmSupport.c */, + 9AA911B525CD452900BD5E8B /* EdbSymbol.c */, + 9AA911B625CD452900BD5E8B /* EdbSupport.h */, + 9AA911B725CD452900BD5E8B /* EdbCommon.h */, + 9AA911B825CD452900BD5E8B /* EdbHook.c */, + 9AA911B925CD452900BD5E8B /* EdbSupportUI.c */, + 9AA911BA25CD452900BD5E8B /* EdbSupportString.c */, + 9AA911BB25CD452900BD5E8B /* EdbCmdExtIo.c */, + 9AA911BC25CD452900BD5E8B /* Edb.c */, + 9AA911BD25CD452900BD5E8B /* EdbCmdMemory.c */, + 9AA911BE25CD452900BD5E8B /* EbcDebuggerConfig.c */, + 9AA911BF25CD452900BD5E8B /* EdbDisasmSupport.h */, + 9AA911C025CD452900BD5E8B /* EdbSymbol.h */, + 9AA911C125CD452900BD5E8B /* EdbSupportFile.c */, + 9AA911C225CD452900BD5E8B /* EdbCommand.c */, + 9AA911C325CD452900BD5E8B /* EdbCmdStep.c */, + 9AA911C425CD452900BD5E8B /* EdbDisasm.c */, + 9AA911C525CD452900BD5E8B /* EdbCmdRegister.c */, + 9AA911C625CD452900BD5E8B /* EdbHook.h */, + 9AA911C725CD452900BD5E8B /* EdbCmdGo.c */, + 9AA911C825CD452900BD5E8B /* EdbCmdScope.c */, + 9AA911C925CD452900BD5E8B /* EdbCmdQuit.c */, + 9AA911CA25CD452900BD5E8B /* EdbCmdHelp.c */, + 9AA911CB25CD452900BD5E8B /* EdbCmdExtPci.c */, + 9AA911CC25CD452900BD5E8B /* EdbCmdBranch.c */, + 9AA911CD25CD452900BD5E8B /* Edb.h */, + 9AA911CE25CD452900BD5E8B /* EdbCmdBreak.c */, + 9AA911CF25CD452900BD5E8B /* EdbCmdSymbol.c */, + 9AA911D025CD452900BD5E8B /* EdbCmdBreakpoint.c */, + ); + path = EbcDebugger; + sourceTree = ""; + }; + 9AA911D325CD452900BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA911D425CD452900BD5E8B /* EbcSupport.c */, + 9AA911D525CD452900BD5E8B /* EbcLowLevel.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA911DA25CD452900BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA911DB25CD452900BD5E8B /* EbcSupport.c */, + 9AA911DC25CD452900BD5E8B /* EbcLowLevel.S */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA911E025CD452900BD5E8B /* EsrtDxe */ = { + isa = PBXGroup; + children = ( + 9AA911E125CD452900BD5E8B /* EsrtDxe.c */, + 9AA911E225CD452900BD5E8B /* EsrtImpl.c */, + 9AA911E325CD452900BD5E8B /* EsrtDxe.uni */, + 9AA911E425CD452900BD5E8B /* EsrtImpl.h */, + 9AA911E525CD452900BD5E8B /* EsrtDxe.inf */, + 9AA911E625CD452900BD5E8B /* EsrtDxeExtra.uni */, + ); + path = EsrtDxe; + sourceTree = ""; + }; + 9AA911E725CD452900BD5E8B /* SmbiosDxe */ = { + isa = PBXGroup; + children = ( + 9AA911E825CD452900BD5E8B /* SmbiosDxe.h */, + 9AA911E925CD452900BD5E8B /* SmbiosDxe.c */, + 9AA911EA25CD452900BD5E8B /* SmbiosDxe.inf */, + 9AA911EB25CD452900BD5E8B /* SmbiosDxe.uni */, + 9AA911EC25CD452900BD5E8B /* SmbiosDxeExtra.uni */, + ); + path = SmbiosDxe; + sourceTree = ""; + }; + 9AA911ED25CD452900BD5E8B /* SectionExtractionDxe */ = { + isa = PBXGroup; + children = ( + 9AA911EE25CD452900BD5E8B /* SectionExtractionDxe.uni */, + 9AA911EF25CD452900BD5E8B /* SectionExtractionDxe.inf */, + 9AA911F025CD452900BD5E8B /* SectionExtractionDxe.c */, + 9AA911F125CD452900BD5E8B /* SectionExtractionDxeExtra.uni */, + ); + path = SectionExtractionDxe; + sourceTree = ""; + }; + 9AA911F225CD452900BD5E8B /* RegularExpressionDxe */ = { + isa = PBXGroup; + children = ( + 9AA911F325CD452900BD5E8B /* RegularExpressionDxe.inf */, + 9AA911F425CD452900BD5E8B /* RegularExpressionDxe.h */, + 9AA911F525CD452900BD5E8B /* Oniguruma */, + 9AA9121C25CD452900BD5E8B /* RegularExpressionDxe.c */, + ); + path = RegularExpressionDxe; + sourceTree = ""; + }; + 9AA911F525CD452900BD5E8B /* Oniguruma */ = { + isa = PBXGroup; + children = ( + 9AA911F625CD452900BD5E8B /* unicode_property_data_posix.c */, + 9AA911F725CD452900BD5E8B /* unicode.c */, + 9AA911F825CD452900BD5E8B /* st.h */, + 9AA911F925CD452900BD5E8B /* ascii.c */, + 9AA911FA25CD452900BD5E8B /* unicode_fold2_key.c */, + 9AA911FB25CD452900BD5E8B /* regparse.h */, + 9AA911FC25CD452900BD5E8B /* AUTHORS */, + 9AA911FD25CD452900BD5E8B /* unicode_fold3_key.c */, + 9AA911FE25CD452900BD5E8B /* regposix.c */, + 9AA911FF25CD452900BD5E8B /* unicode_fold1_key.c */, + 9AA9120025CD452900BD5E8B /* unicode_wb_data.c */, + 9AA9120125CD452900BD5E8B /* regexec.c */, + 9AA9120225CD452900BD5E8B /* regint.h */, + 9AA9120325CD452900BD5E8B /* regenc.h */, + 9AA9120425CD452900BD5E8B /* regcomp.c */, + 9AA9120525CD452900BD5E8B /* unicode_egcb_data.c */, + 9AA9120625CD452900BD5E8B /* regtrav.c */, + 9AA9120725CD452900BD5E8B /* regsyntax.c */, + 9AA9120825CD452900BD5E8B /* OnigurumaIntrinsics.c */, + 9AA9120925CD452900BD5E8B /* regversion.c */, + 9AA9120A25CD452900BD5E8B /* OnigurumaUefiPort.c */, + 9AA9120B25CD452900BD5E8B /* unicode_property_data.c */, + 9AA9120C25CD452900BD5E8B /* README */, + 9AA9120D25CD452900BD5E8B /* st.c */, + 9AA9120E25CD452900BD5E8B /* oniggnu.h */, + 9AA9120F25CD452900BD5E8B /* onigposix.h */, + 9AA9121025CD452900BD5E8B /* COPYING */, + 9AA9121125CD452900BD5E8B /* utf16_le.c */, + 9AA9121225CD452900BD5E8B /* oniguruma.h */, + 9AA9121325CD452900BD5E8B /* regposerr.c */, + 9AA9121425CD452900BD5E8B /* regparse.c */, + 9AA9121525CD452900BD5E8B /* onig_init.c */, + 9AA9121625CD452900BD5E8B /* regenc.c */, + 9AA9121725CD452900BD5E8B /* regerror.c */, + 9AA9121825CD452900BD5E8B /* OnigurumaUefiPort.h */, + 9AA9121925CD452900BD5E8B /* unicode_unfold_key.c */, + 9AA9121A25CD452900BD5E8B /* reggnu.c */, + 9AA9121B25CD452900BD5E8B /* unicode_fold_data.c */, + ); + path = Oniguruma; + sourceTree = ""; + }; + 9AA9121D25CD452900BD5E8B /* Variable */ = { + isa = PBXGroup; + children = ( + 9AA9121E25CD452900BD5E8B /* RuntimeDxe */, + 9AA9123925CD452900BD5E8B /* Pei */, + ); + path = Variable; + sourceTree = ""; + }; + 9AA9121E25CD452900BD5E8B /* RuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA9121F25CD452900BD5E8B /* Measurement.c */, + 9AA9122025CD452900BD5E8B /* SpeculationBarrierDxe.c */, + 9AA9122125CD452900BD5E8B /* VariableStandaloneMm.inf */, + 9AA9122225CD452900BD5E8B /* VariableSmm.uni */, + 9AA9122325CD452900BD5E8B /* VariableSmmRuntimeDxeExtra.uni */, + 9AA9122425CD452900BD5E8B /* SpeculationBarrierSmm.c */, + 9AA9122525CD452900BD5E8B /* VariableSmm.inf */, + 9AA9122625CD452900BD5E8B /* VariableTraditionalMm.c */, + 9AA9122725CD452900BD5E8B /* PrivilegePolymorphic.h */, + 9AA9122825CD452900BD5E8B /* VariableExLib.c */, + 9AA9122925CD452900BD5E8B /* Variable.h */, + 9AA9122A25CD452900BD5E8B /* VariableSmmRuntimeDxe.c */, + 9AA9122B25CD452900BD5E8B /* VariableSmmRuntimeDxe.inf */, + 9AA9122C25CD452900BD5E8B /* VariableStandaloneMm.c */, + 9AA9122D25CD452900BD5E8B /* VariableSmmExtra.uni */, + 9AA9122E25CD452900BD5E8B /* VariableSmm.c */, + 9AA9122F25CD452900BD5E8B /* TcgMorLockSmm.c */, + 9AA9123025CD452900BD5E8B /* Reclaim.c */, + 9AA9123125CD452900BD5E8B /* VariableDxe.c */, + 9AA9123225CD452900BD5E8B /* VariableSmmRuntimeDxe.uni */, + 9AA9123325CD452900BD5E8B /* TcgMorLockDxe.c */, + 9AA9123425CD452900BD5E8B /* VarCheck.c */, + 9AA9123525CD452900BD5E8B /* VariableRuntimeDxe.inf */, + 9AA9123625CD452900BD5E8B /* VariableRuntimeDxeExtra.uni */, + 9AA9123725CD452900BD5E8B /* VariableRuntimeDxe.uni */, + 9AA9123825CD452900BD5E8B /* Variable.c */, + ); + path = RuntimeDxe; + sourceTree = ""; + }; + 9AA9123925CD452900BD5E8B /* Pei */ = { + isa = PBXGroup; + children = ( + 9AA9123A25CD452900BD5E8B /* PeiVariableExtra.uni */, + 9AA9123B25CD452900BD5E8B /* PeiVariable.uni */, + 9AA9123C25CD452900BD5E8B /* Variable.h */, + 9AA9123D25CD452900BD5E8B /* VariablePei.inf */, + 9AA9123E25CD452900BD5E8B /* Variable.c */, + ); + path = Pei; + sourceTree = ""; + }; + 9AA9123F25CD452900BD5E8B /* DisplayEngineDxe */ = { + isa = PBXGroup; + children = ( + 9AA9124025CD452900BD5E8B /* InputHandler.c */, + 9AA9124125CD452900BD5E8B /* FormDisplay.c */, + 9AA9124225CD452900BD5E8B /* DisplayEngine.uni */, + 9AA9124325CD452900BD5E8B /* FormDisplayStr.uni */, + 9AA9124425CD452900BD5E8B /* FormDisplay.h */, + 9AA9124525CD452900BD5E8B /* Popup.c */, + 9AA9124625CD452900BD5E8B /* ProcessOptions.c */, + 9AA9124725CD452900BD5E8B /* DisplayEngineDxe.inf */, + 9AA9124825CD452900BD5E8B /* DisplayEngineExtra.uni */, + ); + path = DisplayEngineDxe; + sourceTree = ""; + }; + 9AA9124925CD452900BD5E8B /* CapsuleOnDiskLoadPei */ = { + isa = PBXGroup; + children = ( + 9AA9124A25CD452900BD5E8B /* CapsuleOnDiskLoadPeiExtra.uni */, + 9AA9124B25CD452900BD5E8B /* CapsuleOnDiskLoadPei.c */, + 9AA9124C25CD452900BD5E8B /* CapsuleOnDiskLoadPei.inf */, + 9AA9124D25CD452900BD5E8B /* CapsuleOnDiskLoadPei.uni */, + ); + path = CapsuleOnDiskLoadPei; + sourceTree = ""; + }; + 9AA9124E25CD452900BD5E8B /* DriverHealthManagerDxe */ = { + isa = PBXGroup; + children = ( + 9AA9124F25CD452900BD5E8B /* DriverHealthManagerDxeExtra.uni */, + 9AA9125025CD452900BD5E8B /* DriverHealthManagerDxe.h */, + 9AA9125125CD452900BD5E8B /* DriverHealthManagerVfr.h */, + 9AA9125225CD452900BD5E8B /* DriverHealthManagerStrings.uni */, + 9AA9125325CD452900BD5E8B /* DriverHealthManagerVfr.Vfr */, + 9AA9125425CD452900BD5E8B /* DriverHealthManagerDxe.uni */, + 9AA9125525CD452A00BD5E8B /* DriverHealthConfigureVfr.Vfr */, + 9AA9125625CD452A00BD5E8B /* DriverHealthManagerDxe.c */, + 9AA9125725CD452A00BD5E8B /* DriverHealthManagerDxe.inf */, + ); + path = DriverHealthManagerDxe; + sourceTree = ""; + }; + 9AA9125825CD452A00BD5E8B /* MonotonicCounterRuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA9125925CD452A00BD5E8B /* MonotonicCounterRuntimeDxeExtra.uni */, + 9AA9125A25CD452A00BD5E8B /* MonotonicCounterRuntimeDxe.inf */, + 9AA9125B25CD452A00BD5E8B /* MonotonicCounter.c */, + 9AA9125C25CD452A00BD5E8B /* MonotonicCounterRuntimeDxe.uni */, + ); + path = MonotonicCounterRuntimeDxe; + sourceTree = ""; + }; + 9AA9125D25CD452A00BD5E8B /* LegacyRegion2Dxe */ = { + isa = PBXGroup; + children = ( + 9AA9125E25CD452A00BD5E8B /* LegacyRegion2Dxe.uni */, + 9AA9125F25CD452A00BD5E8B /* LegacyRegion2.c */, + 9AA9126025CD452A00BD5E8B /* LegacyRegion2Dxe.inf */, + 9AA9126125CD452A00BD5E8B /* LegacyRegion2.h */, + 9AA9126225CD452A00BD5E8B /* LegacyRegion2DxeExtra.uni */, + ); + path = LegacyRegion2Dxe; + sourceTree = ""; + }; + 9AA9126325CD452A00BD5E8B /* WatchdogTimerDxe */ = { + isa = PBXGroup; + children = ( + 9AA9126425CD452A00BD5E8B /* WatchdogTimer.inf */, + 9AA9126525CD452A00BD5E8B /* WatchdogTimer.uni */, + 9AA9126625CD452A00BD5E8B /* WatchdogTimer.c */, + 9AA9126725CD452A00BD5E8B /* WatchdogTimerExtra.uni */, + 9AA9126825CD452A00BD5E8B /* WatchdogTimer.h */, + ); + path = WatchdogTimerDxe; + sourceTree = ""; + }; + 9AA9126925CD452A00BD5E8B /* FaultTolerantWriteDxe */ = { + isa = PBXGroup; + children = ( + 9AA9126A25CD452A00BD5E8B /* FaultTolerantWriteSmmDxeExtra.uni */, + 9AA9126B25CD452A00BD5E8B /* FaultTolerantWriteSmmCommon.h */, + 9AA9126C25CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.h */, + 9AA9126D25CD452A00BD5E8B /* FaultTolerantWriteStandaloneMm.inf */, + 9AA9126E25CD452A00BD5E8B /* SmmFaultTolerantWriteDxeExtra.uni */, + 9AA9126F25CD452A00BD5E8B /* FaultTolerantWrite.c */, + 9AA9127025CD452A00BD5E8B /* FaultTolerantWriteDxe.inf */, + 9AA9127125CD452A00BD5E8B /* FaultTolerantWriteStandaloneMm.c */, + 9AA9127225CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.c */, + 9AA9127325CD452A00BD5E8B /* FaultTolerantWriteDxeExtra.uni */, + 9AA9127425CD452A00BD5E8B /* FaultTolerantWriteDxe.uni */, + 9AA9127525CD452A00BD5E8B /* FaultTolerantWriteSmm.inf */, + 9AA9127625CD452A00BD5E8B /* FaultTolerantWriteTraditionalMm.c */, + 9AA9127725CD452A00BD5E8B /* FaultTolerantWriteDxe.c */, + 9AA9127825CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.uni */, + 9AA9127925CD452A00BD5E8B /* FaultTolerantWriteSmm.c */, + 9AA9127A25CD452A00BD5E8B /* FtwMisc.c */, + 9AA9127B25CD452A00BD5E8B /* SmmFaultTolerantWriteDxe.uni */, + 9AA9127C25CD452A00BD5E8B /* UpdateWorkingBlock.c */, + 9AA9127D25CD452A00BD5E8B /* FaultTolerantWriteSmmDxe.inf */, + 9AA9127E25CD452A00BD5E8B /* FaultTolerantWrite.h */, + ); + path = FaultTolerantWriteDxe; + sourceTree = ""; + }; + 9AA9127F25CD452A00BD5E8B /* DevicePathDxe */ = { + isa = PBXGroup; + children = ( + 9AA9128025CD452A00BD5E8B /* DevicePath.c */, + 9AA9128125CD452A00BD5E8B /* DevicePathDxe.inf */, + 9AA9128225CD452A00BD5E8B /* DevicePathDxeExtra.uni */, + 9AA9128325CD452A00BD5E8B /* DevicePathDxe.uni */, + ); + path = DevicePathDxe; + sourceTree = ""; + }; + 9AA9128425CD452A00BD5E8B /* DriverSampleDxe */ = { + isa = PBXGroup; + children = ( + 9AA9128525CD452A00BD5E8B /* NVDataStruc.h */, + 9AA9128625CD452A00BD5E8B /* DriverSample.c */, + 9AA9128725CD452A00BD5E8B /* DriverSampleDxe.inf */, + 9AA9128825CD452A00BD5E8B /* Inventory.vfr */, + 9AA9128925CD452A00BD5E8B /* Vfr.vfr */, + 9AA9128A25CD452A00BD5E8B /* DriverSample.uni */, + 9AA9128B25CD452A00BD5E8B /* InventoryStrings.uni */, + 9AA9128C25CD452A00BD5E8B /* DriverSampleExtra.uni */, + 9AA9128D25CD452A00BD5E8B /* DriverSample.h */, + 9AA9128E25CD452A00BD5E8B /* VfrStrings.uni */, + ); + path = DriverSampleDxe; + sourceTree = ""; + }; + 9AA9128F25CD452A00BD5E8B /* SmbiosMeasurementDxe */ = { + isa = PBXGroup; + children = ( + 9AA9129025CD452A00BD5E8B /* SmbiosMeasurementDxeExtra.uni */, + 9AA9129125CD452A00BD5E8B /* SmbiosMeasurementDxe.c */, + 9AA9129225CD452A00BD5E8B /* SmbiosMeasurementDxe.inf */, + 9AA9129325CD452A00BD5E8B /* SmbiosMeasurementDxe.uni */, + ); + path = SmbiosMeasurementDxe; + sourceTree = ""; + }; + 9AA9129425CD452A00BD5E8B /* HiiResourcesSampleDxe */ = { + isa = PBXGroup; + children = ( + 9AA9129525CD452A00BD5E8B /* HiiResourcesSample.c */, + 9AA9129625CD452A00BD5E8B /* HiiResourcesSample.uni */, + 9AA9129725CD452A00BD5E8B /* HiiResourcesSampleDxe.inf */, + 9AA9129825CD452A00BD5E8B /* HiiResourcesSampleExtra.uni */, + 9AA9129925CD452A00BD5E8B /* SampleStrings.uni */, + 9AA9129A25CD452A00BD5E8B /* Sample.vfr */, + ); + path = HiiResourcesSampleDxe; + sourceTree = ""; + }; + 9AA9129B25CD452A00BD5E8B /* PlatformDriOverrideDxe */ = { + isa = PBXGroup; + children = ( + 9AA9129C25CD452A00BD5E8B /* InternalPlatDriOverrideDxe.h */, + 9AA9129D25CD452A00BD5E8B /* Vfr.vfr */, + 9AA9129E25CD452A00BD5E8B /* PlatOverMngr.h */, + 9AA9129F25CD452A00BD5E8B /* PlatformDriOverrideDxe.inf */, + 9AA912A025CD452A00BD5E8B /* PlatDriOverrideLib.c */, + 9AA912A125CD452A00BD5E8B /* PlatDriOverrideDxe.uni */, + 9AA912A225CD452A00BD5E8B /* PlatDriOverrideDxeExtra.uni */, + 9AA912A325CD452A00BD5E8B /* PlatDriOverrideDxe.c */, + 9AA912A425CD452A00BD5E8B /* VfrStrings.uni */, + ); + path = PlatformDriOverrideDxe; + sourceTree = ""; + }; + 9AA912A525CD452A00BD5E8B /* LoadFileOnFv2 */ = { + isa = PBXGroup; + children = ( + 9AA912A625CD452A00BD5E8B /* LoadFileOnFv2.c */, + 9AA912A725CD452A00BD5E8B /* LoadFileOnFv2.inf */, + 9AA912A825CD452A00BD5E8B /* LoadFileOnFv2.uni */, + 9AA912A925CD452A00BD5E8B /* LoadFileOnFv2Extra.uni */, + ); + path = LoadFileOnFv2; + sourceTree = ""; + }; + 9AA912AA25CD452A00BD5E8B /* BootManagerPolicyDxe */ = { + isa = PBXGroup; + children = ( + 9AA912AB25CD452A00BD5E8B /* BootManagerPolicyDxe.uni */, + 9AA912AC25CD452A00BD5E8B /* BootManagerPolicyDxe.inf */, + 9AA912AD25CD452A00BD5E8B /* BootManagerPolicyDxeExtra.uni */, + 9AA912AE25CD452A00BD5E8B /* BootManagerPolicyDxe.c */, + ); + path = BootManagerPolicyDxe; + sourceTree = ""; + }; + 9AA912AF25CD452A00BD5E8B /* PCD */ = { + isa = PBXGroup; + children = ( + 9AA912B025CD452A00BD5E8B /* Dxe */, + 9AA912B725CD452A00BD5E8B /* Pei */, + ); + path = PCD; + sourceTree = ""; + }; + 9AA912B025CD452A00BD5E8B /* Dxe */ = { + isa = PBXGroup; + children = ( + 9AA912B125CD452A00BD5E8B /* Pcd.c */, + 9AA912B225CD452A00BD5E8B /* PcdDxeExtra.uni */, + 9AA912B325CD452A00BD5E8B /* Service.h */, + 9AA912B425CD452A00BD5E8B /* Pcd.inf */, + 9AA912B525CD452A00BD5E8B /* Service.c */, + 9AA912B625CD452A00BD5E8B /* PcdDxe.uni */, + ); + path = Dxe; + sourceTree = ""; + }; + 9AA912B725CD452A00BD5E8B /* Pei */ = { + isa = PBXGroup; + children = ( + 9AA912B825CD452A00BD5E8B /* Pcd.c */, + 9AA912B925CD452A00BD5E8B /* Service.h */, + 9AA912BA25CD452A00BD5E8B /* Pcd.inf */, + 9AA912BB25CD452A00BD5E8B /* PcdPeim.uni */, + 9AA912BC25CD452A00BD5E8B /* PcdPeimExtra.uni */, + 9AA912BD25CD452A00BD5E8B /* Service.c */, + ); + path = Pei; + sourceTree = ""; + }; + 9AA912BE25CD452A00BD5E8B /* SectionExtractionPei */ = { + isa = PBXGroup; + children = ( + 9AA912BF25CD452A00BD5E8B /* SectionExtractionPei.c */, + 9AA912C025CD452A00BD5E8B /* SectionExtractionPeiExtra.uni */, + 9AA912C125CD452A00BD5E8B /* SectionExtractionPei.uni */, + 9AA912C225CD452A00BD5E8B /* SectionExtractionPei.inf */, + ); + path = SectionExtractionPei; + sourceTree = ""; + }; + 9AA912C325CD452A00BD5E8B /* StatusCodeHandler */ = { + isa = PBXGroup; + children = ( + 9AA912C425CD452A00BD5E8B /* RuntimeDxe */, + 9AA912CC25CD452A00BD5E8B /* Pei */, + 9AA912D425CD452A00BD5E8B /* Smm */, + ); + path = StatusCodeHandler; + sourceTree = ""; + }; + 9AA912C425CD452A00BD5E8B /* RuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA912C525CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.c */, + 9AA912C625CD452A00BD5E8B /* MemoryStatusCodeWorker.c */, + 9AA912C725CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxeExtra.uni */, + 9AA912C825CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.uni */, + 9AA912C925CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.inf */, + 9AA912CA25CD452A00BD5E8B /* StatusCodeHandlerRuntimeDxe.h */, + 9AA912CB25CD452A00BD5E8B /* SerialStatusCodeWorker.c */, + ); + path = RuntimeDxe; + sourceTree = ""; + }; + 9AA912CC25CD452A00BD5E8B /* Pei */ = { + isa = PBXGroup; + children = ( + 9AA912CD25CD452A00BD5E8B /* StatusCodeHandlerPei.uni */, + 9AA912CE25CD452A00BD5E8B /* StatusCodeHandlerPeiExtra.uni */, + 9AA912CF25CD452A00BD5E8B /* StatusCodeHandlerPei.inf */, + 9AA912D025CD452A00BD5E8B /* StatusCodeHandlerPei.h */, + 9AA912D125CD452A00BD5E8B /* MemoryStausCodeWorker.c */, + 9AA912D225CD452A00BD5E8B /* SerialStatusCodeWorker.c */, + 9AA912D325CD452A00BD5E8B /* StatusCodeHandlerPei.c */, + ); + path = Pei; + sourceTree = ""; + }; + 9AA912D425CD452A00BD5E8B /* Smm */ = { + isa = PBXGroup; + children = ( + 9AA912D525CD452A00BD5E8B /* MemoryStatusCodeWorker.c */, + 9AA912D625CD452A00BD5E8B /* StatusCodeHandlerSmm.c */, + 9AA912D725CD452A00BD5E8B /* StatusCodeHandlerSmmExtra.uni */, + 9AA912D825CD452A00BD5E8B /* StatusCodeHandlerSmm.inf */, + 9AA912D925CD452A00BD5E8B /* SerialStatusCodeWorker.c */, + 9AA912DA25CD452A00BD5E8B /* StatusCodeHandlerSmm.h */, + 9AA912DB25CD452A00BD5E8B /* StatusCodeHandlerSmm.uni */, + ); + path = Smm; + sourceTree = ""; + }; + 9AA912DC25CD452A00BD5E8B /* DebugServicePei */ = { + isa = PBXGroup; + children = ( + 9AA912DD25CD452A00BD5E8B /* DebugServicePei.c */, + 9AA912DE25CD452A00BD5E8B /* DebugService.h */, + 9AA912DF25CD452A00BD5E8B /* DebugServicePei.inf */, + 9AA912E025CD452A00BD5E8B /* DebugServicePei.uni */, + ); + path = DebugServicePei; + sourceTree = ""; + }; + 9AA912E125CD452A00BD5E8B /* TimestampDxe */ = { + isa = PBXGroup; + children = ( + 9AA912E225CD452A00BD5E8B /* TimestampDxe.c */, + 9AA912E325CD452A00BD5E8B /* TimestampDxe.uni */, + 9AA912E425CD452A00BD5E8B /* TimestampDxe.inf */, + 9AA912E525CD452A00BD5E8B /* TimestampDxeExtra.uni */, + ); + path = TimestampDxe; + sourceTree = ""; + }; + 9AA912E625CD452A00BD5E8B /* ResetSystemPei */ = { + isa = PBXGroup; + children = ( + 9AA912E725CD452A00BD5E8B /* ResetSystemPeiExtra.uni */, + 9AA912E825CD452A00BD5E8B /* ResetSystem.h */, + 9AA912E925CD452A00BD5E8B /* ResetSystemPei.inf */, + 9AA912EA25CD452A00BD5E8B /* ResetSystem.c */, + 9AA912EB25CD452A00BD5E8B /* ResetSystemPei.uni */, + ); + path = ResetSystemPei; + sourceTree = ""; + }; + 9AA912EC25CD452A00BD5E8B /* FvSimpleFileSystemDxe */ = { + isa = PBXGroup; + children = ( + 9AA912ED25CD452A00BD5E8B /* FvSimpleFileSystemEntryPoint.c */, + 9AA912EE25CD452A00BD5E8B /* FvSimpleFileSystem.c */, + 9AA912EF25CD452A00BD5E8B /* FvSimpleFileSystemDxe.inf */, + 9AA912F025CD452A00BD5E8B /* ComponentName.c */, + 9AA912F125CD452A00BD5E8B /* FvSimpleFileSystemInternal.h */, + 9AA912F225CD452A00BD5E8B /* FvSimpleFileSystem.uni */, + 9AA912F325CD452A00BD5E8B /* FvSimpleFileSystemExtra.uni */, + ); + path = FvSimpleFileSystemDxe; + sourceTree = ""; + }; + 9AA912F425CD452A00BD5E8B /* SecurityStubDxe */ = { + isa = PBXGroup; + children = ( + 9AA912F525CD452A00BD5E8B /* Defer3rdPartyImageLoad.c */, + 9AA912F625CD452A00BD5E8B /* SecurityStubDxe.uni */, + 9AA912F725CD452A00BD5E8B /* SecurityStub.c */, + 9AA912F825CD452A00BD5E8B /* SecurityStubDxe.inf */, + 9AA912F925CD452A00BD5E8B /* SecurityStubDxeExtra.uni */, + 9AA912FA25CD452A00BD5E8B /* Defer3rdPartyImageLoad.h */, + ); + path = SecurityStubDxe; + sourceTree = ""; + }; + 9AA912FB25CD452A00BD5E8B /* Disk */ = { + isa = PBXGroup; + children = ( + 9AA912FC25CD452A00BD5E8B /* DiskIoDxe */, + 9AA9130325CD452A00BD5E8B /* CdExpressPei */, + 9AA9130925CD452A00BD5E8B /* PartitionDxe */, + 9AA9131425CD452A00BD5E8B /* RamDiskDxe */, + 9AA9132125CD452A00BD5E8B /* UnicodeCollation */, + 9AA9132825CD452A00BD5E8B /* UdfDxe */, + ); + path = Disk; + sourceTree = ""; + }; + 9AA912FC25CD452A00BD5E8B /* DiskIoDxe */ = { + isa = PBXGroup; + children = ( + 9AA912FD25CD452A00BD5E8B /* DiskIoDxe.uni */, + 9AA912FE25CD452A00BD5E8B /* DiskIo.h */, + 9AA912FF25CD452A00BD5E8B /* DiskIoDxe.inf */, + 9AA9130025CD452A00BD5E8B /* ComponentName.c */, + 9AA9130125CD452A00BD5E8B /* DiskIoDxeExtra.uni */, + 9AA9130225CD452A00BD5E8B /* DiskIo.c */, + ); + path = DiskIoDxe; + sourceTree = ""; + }; + 9AA9130325CD452A00BD5E8B /* CdExpressPei */ = { + isa = PBXGroup; + children = ( + 9AA9130425CD452A00BD5E8B /* CdExpressPei.inf */, + 9AA9130525CD452A00BD5E8B /* PeiCdExpress.c */, + 9AA9130625CD452A00BD5E8B /* CdExpressPei.uni */, + 9AA9130725CD452A00BD5E8B /* PeiCdExpress.h */, + 9AA9130825CD452A00BD5E8B /* CdExpressPeiExtra.uni */, + ); + path = CdExpressPei; + sourceTree = ""; + }; + 9AA9130925CD452A00BD5E8B /* PartitionDxe */ = { + isa = PBXGroup; + children = ( + 9AA9130A25CD452A00BD5E8B /* Partition.c */, + 9AA9130B25CD452A00BD5E8B /* Udf.c */, + 9AA9130C25CD452A00BD5E8B /* PartitionDxeExtra.uni */, + 9AA9130D25CD452A00BD5E8B /* ComponentName.c */, + 9AA9130E25CD452A00BD5E8B /* ElTorito.c */, + 9AA9130F25CD452A00BD5E8B /* PartitionDxe.uni */, + 9AA9131025CD452A00BD5E8B /* Partition.h */, + 9AA9131125CD452A00BD5E8B /* PartitionDxe.inf */, + 9AA9131225CD452A00BD5E8B /* Mbr.c */, + 9AA9131325CD452A00BD5E8B /* Gpt.c */, + ); + path = PartitionDxe; + sourceTree = ""; + }; + 9AA9131425CD452A00BD5E8B /* RamDiskDxe */ = { + isa = PBXGroup; + children = ( + 9AA9131525CD452A00BD5E8B /* RamDiskImpl.h */, + 9AA9131625CD452A00BD5E8B /* RamDiskFileExplorer.c */, + 9AA9131725CD452A00BD5E8B /* RamDiskNVData.h */, + 9AA9131825CD452A00BD5E8B /* RamDiskHiiStrings.uni */, + 9AA9131925CD452A00BD5E8B /* RamDiskImpl.c */, + 9AA9131A25CD452A00BD5E8B /* RamDiskBlockIo.c */, + 9AA9131B25CD452A00BD5E8B /* RamDiskProtocol.c */, + 9AA9131C25CD452A00BD5E8B /* RamDiskHii.vfr */, + 9AA9131D25CD452A00BD5E8B /* RamDisk.asl */, + 9AA9131E25CD452A00BD5E8B /* RamDiskDxe.inf */, + 9AA9131F25CD452A00BD5E8B /* RamDiskDriver.c */, + 9AA9132025CD452A00BD5E8B /* RamDiskDxe.uni */, + ); + path = RamDiskDxe; + sourceTree = ""; + }; + 9AA9132125CD452A00BD5E8B /* UnicodeCollation */ = { + isa = PBXGroup; + children = ( + 9AA9132225CD452A00BD5E8B /* EnglishDxe */, + ); + path = UnicodeCollation; + sourceTree = ""; + }; + 9AA9132225CD452A00BD5E8B /* EnglishDxe */ = { + isa = PBXGroup; + children = ( + 9AA9132325CD452A00BD5E8B /* EnglishDxe.uni */, + 9AA9132425CD452A00BD5E8B /* EnglishDxeExtra.uni */, + 9AA9132525CD452A00BD5E8B /* UnicodeCollationEng.c */, + 9AA9132625CD452A00BD5E8B /* EnglishDxe.inf */, + 9AA9132725CD452A00BD5E8B /* UnicodeCollationEng.h */, + ); + path = EnglishDxe; + sourceTree = ""; + }; + 9AA9132825CD452A00BD5E8B /* UdfDxe */ = { + isa = PBXGroup; + children = ( + 9AA9132925CD452A00BD5E8B /* FileName.c */, + 9AA9132A25CD452A00BD5E8B /* Udf.c */, + 9AA9132B25CD452A00BD5E8B /* FileSystemOperations.c */, + 9AA9132C25CD452A00BD5E8B /* ComponentName.c */, + 9AA9132D25CD452A00BD5E8B /* UdfDxe.inf */, + 9AA9132E25CD452A00BD5E8B /* Udf.h */, + 9AA9132F25CD452A00BD5E8B /* File.c */, + ); + path = UdfDxe; + sourceTree = ""; + }; + 9AA9133025CD452A00BD5E8B /* MemoryTest */ = { + isa = PBXGroup; + children = ( + 9AA9133125CD452A00BD5E8B /* GenericMemoryTestDxe */, + 9AA9133725CD452A00BD5E8B /* NullMemoryTestDxe */, + ); + path = MemoryTest; + sourceTree = ""; + }; + 9AA9133125CD452A00BD5E8B /* GenericMemoryTestDxe */ = { + isa = PBXGroup; + children = ( + 9AA9133225CD452A00BD5E8B /* LightMemoryTest.c */, + 9AA9133325CD452A00BD5E8B /* GenericMemoryTestDxe.inf */, + 9AA9133425CD452A00BD5E8B /* GenericMemoryTestDxeExtra.uni */, + 9AA9133525CD452A00BD5E8B /* GenericMemoryTestDxe.uni */, + 9AA9133625CD452A00BD5E8B /* LightMemoryTest.h */, + ); + path = GenericMemoryTestDxe; + sourceTree = ""; + }; + 9AA9133725CD452A00BD5E8B /* NullMemoryTestDxe */ = { + isa = PBXGroup; + children = ( + 9AA9133825CD452A00BD5E8B /* NullMemoryTest.h */, + 9AA9133925CD452A00BD5E8B /* NullMemoryTestDxeExtra.uni */, + 9AA9133A25CD452A00BD5E8B /* NullMemoryTestDxe.inf */, + 9AA9133B25CD452A00BD5E8B /* NullMemoryTest.c */, + 9AA9133C25CD452A00BD5E8B /* NullMemoryTestDxe.uni */, + ); + path = NullMemoryTestDxe; + sourceTree = ""; + }; + 9AA9133D25CD452A00BD5E8B /* HiiDatabaseDxe */ = { + isa = PBXGroup; + children = ( + 9AA9133E25CD452A00BD5E8B /* HiiDatabaseDxe.inf */, + 9AA9133F25CD452A00BD5E8B /* HiiDatabase.uni */, + 9AA9134025CD452A00BD5E8B /* Database.c */, + 9AA9134125CD452A00BD5E8B /* ConfigRouting.c */, + 9AA9134225CD452A00BD5E8B /* Font.c */, + 9AA9134325CD452A00BD5E8B /* String.c */, + 9AA9134425CD452A00BD5E8B /* Image.c */, + 9AA9134525CD452A00BD5E8B /* HiiDatabaseExtra.uni */, + 9AA9134625CD452A00BD5E8B /* HiiDatabase.h */, + 9AA9134725CD452A00BD5E8B /* ConfigKeywordHandler.c */, + 9AA9134825CD452A00BD5E8B /* HiiDatabaseEntry.c */, + 9AA9134925CD452A00BD5E8B /* ImageEx.c */, + ); + path = HiiDatabaseDxe; + sourceTree = ""; + }; + 9AA9134A25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei */ = { + isa = PBXGroup; + children = ( + 9AA9134B25CD452A00BD5E8B /* PciCfg2.c */, + 9AA9134C25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei.inf */, + 9AA9134D25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2Pei.uni */, + 9AA9134E25CD452A00BD5E8B /* PcatSingleSegmentPciCfg2PeiExtra.uni */, + ); + path = PcatSingleSegmentPciCfg2Pei; + sourceTree = ""; + }; + 9AA9134F25CD452A00BD5E8B /* FaultTolerantWritePei */ = { + isa = PBXGroup; + children = ( + 9AA9135025CD452A00BD5E8B /* FaultTolerantWritePei.inf */, + 9AA9135125CD452A00BD5E8B /* FaultTolerantWritePei.uni */, + 9AA9135225CD452A00BD5E8B /* FaultTolerantWritePei.c */, + 9AA9135325CD452A00BD5E8B /* FaultTolerantWritePeiExtra.uni */, + ); + path = FaultTolerantWritePei; + sourceTree = ""; + }; + 9AA9135425CD452A00BD5E8B /* BdsDxe */ = { + isa = PBXGroup; + children = ( + 9AA9135525CD452A00BD5E8B /* Language.h */, + 9AA9135625CD452A00BD5E8B /* BdsEntry.c */, + 9AA9135725CD452A00BD5E8B /* HwErrRecSupport.c */, + 9AA9135825CD452A00BD5E8B /* BdsDxe.inf */, + 9AA9135925CD452A00BD5E8B /* BdsDxeExtra.uni */, + 9AA9135A25CD452A00BD5E8B /* BdsDxe.uni */, + 9AA9135B25CD452A00BD5E8B /* Bds.h */, + 9AA9135C25CD452A00BD5E8B /* Language.c */, + 9AA9135D25CD452A00BD5E8B /* HwErrRecSupport.h */, + ); + path = BdsDxe; + sourceTree = ""; + }; + 9AA9135E25CD452A00BD5E8B /* SmmCommunicationBufferDxe */ = { + isa = PBXGroup; + children = ( + 9AA9135F25CD452A00BD5E8B /* SmmCommunicationBufferExtraDxe.uni */, + 9AA9136025CD452A00BD5E8B /* SmmCommunicationBufferDxe.c */, + 9AA9136125CD452A00BD5E8B /* SmmCommunicationBufferDxe.uni */, + 9AA9136225CD452A00BD5E8B /* SmmCommunicationBufferDxe.inf */, + ); + path = SmmCommunicationBufferDxe; + sourceTree = ""; + }; + 9AA9136325CD452A00BD5E8B /* CapsulePei */ = { + isa = PBXGroup; + children = ( + 9AA9136425CD452A00BD5E8B /* CapsulePei.uni */, + 9AA9136525CD452A00BD5E8B /* CapsulePei.inf */, + 9AA9136625CD452A00BD5E8B /* CapsuleX64Extra.uni */, + 9AA9136725CD452A00BD5E8B /* CapsulePeiExtra.uni */, + 9AA9136825CD452A00BD5E8B /* X64 */, + 9AA9136B25CD452A00BD5E8B /* Common */, + 9AA9136E25CD452A00BD5E8B /* CapsuleX64.uni */, + 9AA9136F25CD452A00BD5E8B /* Capsule.h */, + 9AA9137025CD452A00BD5E8B /* CapsuleX64.inf */, + 9AA9137125CD452A00BD5E8B /* UefiCapsule.c */, + ); + path = CapsulePei; + sourceTree = ""; + }; + 9AA9136825CD452A00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA9136925CD452A00BD5E8B /* X64Entry.c */, + 9AA9136A25CD452A00BD5E8B /* PageFaultHandler.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA9136B25CD452A00BD5E8B /* Common */ = { + isa = PBXGroup; + children = ( + 9AA9136C25CD452A00BD5E8B /* CapsuleCoalesce.c */, + 9AA9136D25CD452A00BD5E8B /* CommonHeader.h */, + ); + path = Common; + sourceTree = ""; + }; + 9AA9137225CD452A00BD5E8B /* ResetSystemRuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA9137325CD452A00BD5E8B /* ResetSystem.h */, + 9AA9137425CD452A00BD5E8B /* ResetSystemRuntimeDxeExtra.uni */, + 9AA9137525CD452A00BD5E8B /* ResetSystemRuntimeDxe.uni */, + 9AA9137625CD452A00BD5E8B /* ResetSystemRuntimeDxe.inf */, + 9AA9137725CD452A00BD5E8B /* ResetSystem.c */, + ); + path = ResetSystemRuntimeDxe; + sourceTree = ""; + }; + 9AA9137825CD452A00BD5E8B /* PrintDxe */ = { + isa = PBXGroup; + children = ( + 9AA9137925CD452A00BD5E8B /* Print.c */, + 9AA9137A25CD452A00BD5E8B /* PrintDxeExtra.uni */, + 9AA9137B25CD452A00BD5E8B /* PrintDxe.uni */, + 9AA9137C25CD452A00BD5E8B /* PrintDxe.inf */, + ); + path = PrintDxe; + sourceTree = ""; + }; + 9AA9137D25CD452A00BD5E8B /* SerialDxe */ = { + isa = PBXGroup; + children = ( + 9AA9137E25CD452A00BD5E8B /* SerialIo.c */, + 9AA9137F25CD452A00BD5E8B /* SerialDxe.inf */, + 9AA9138025CD452A00BD5E8B /* SerialDxe.uni */, + 9AA9138125CD452A00BD5E8B /* SerialDxeExtra.uni */, + ); + path = SerialDxe; + sourceTree = ""; + }; + 9AA9138225CD452A00BD5E8B /* LockBox */ = { + isa = PBXGroup; + children = ( + 9AA9138325CD452A00BD5E8B /* SmmLockBox */, + ); + path = LockBox; + sourceTree = ""; + }; + 9AA9138325CD452A00BD5E8B /* SmmLockBox */ = { + isa = PBXGroup; + children = ( + 9AA9138425CD452A00BD5E8B /* SmmLockBoxExtra.uni */, + 9AA9138525CD452A00BD5E8B /* SmmLockBox.inf */, + 9AA9138625CD452A00BD5E8B /* SmmLockBox.uni */, + 9AA9138725CD452A00BD5E8B /* SmmLockBox.c */, + ); + path = SmmLockBox; + sourceTree = ""; + }; + 9AA9138825CD452A00BD5E8B /* FileExplorerDxe */ = { + isa = PBXGroup; + children = ( + 9AA9138925CD452A00BD5E8B /* FileExplorerDxe.c */, + 9AA9138A25CD452A00BD5E8B /* FileExplorerDxe.uni */, + 9AA9138B25CD452A00BD5E8B /* FileExplorerDxeExtra.uni */, + 9AA9138C25CD452A00BD5E8B /* FileExplorerDxe.inf */, + ); + path = FileExplorerDxe; + sourceTree = ""; + }; + 9AA9138D25CD452A00BD5E8B /* ReportStatusCodeRouter */ = { + isa = PBXGroup; + children = ( + 9AA9138E25CD452A00BD5E8B /* RuntimeDxe */, + 9AA9139425CD452A00BD5E8B /* Pei */, + 9AA9139A25CD452A00BD5E8B /* Smm */, + ); + path = ReportStatusCodeRouter; + sourceTree = ""; + }; + 9AA9138E25CD452A00BD5E8B /* RuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA9138F25CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.c */, + 9AA9139025CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxeExtra.uni */, + 9AA9139125CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.uni */, + 9AA9139225CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.inf */, + 9AA9139325CD452A00BD5E8B /* ReportStatusCodeRouterRuntimeDxe.h */, + ); + path = RuntimeDxe; + sourceTree = ""; + }; + 9AA9139425CD452A00BD5E8B /* Pei */ = { + isa = PBXGroup; + children = ( + 9AA9139525CD452A00BD5E8B /* ReportStatusCodeRouterPei.inf */, + 9AA9139625CD452A00BD5E8B /* ReportStatusCodeRouterPei.uni */, + 9AA9139725CD452A00BD5E8B /* ReportStatusCodeRouterPeiExtra.uni */, + 9AA9139825CD452A00BD5E8B /* ReportStatusCodeRouterPei.h */, + 9AA9139925CD452A00BD5E8B /* ReportStatusCodeRouterPei.c */, + ); + path = Pei; + sourceTree = ""; + }; + 9AA9139A25CD452A00BD5E8B /* Smm */ = { + isa = PBXGroup; + children = ( + 9AA9139B25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.c */, + 9AA9139C25CD452A00BD5E8B /* ReportStatusCodeRouterSmmExtra.uni */, + 9AA9139D25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.uni */, + 9AA9139E25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.h */, + 9AA9139F25CD452A00BD5E8B /* ReportStatusCodeRouterSmm.inf */, + ); + path = Smm; + sourceTree = ""; + }; + 9AA913A025CD452A00BD5E8B /* CapsuleRuntimeDxe */ = { + isa = PBXGroup; + children = ( + 9AA913A125CD452A00BD5E8B /* CapsuleCache.c */, + 9AA913A225CD452A00BD5E8B /* CapsuleCacheNull.c */, + 9AA913A325CD452A00BD5E8B /* X64 */, + 9AA913A525CD452A00BD5E8B /* CapsuleService.h */, + 9AA913A625CD452A00BD5E8B /* CapsuleRuntimeDxe.uni */, + 9AA913A725CD452A00BD5E8B /* CapsuleRuntimeDxe.inf */, + 9AA913A825CD452A00BD5E8B /* CapsuleRuntimeDxeExtra.uni */, + 9AA913A925CD452A00BD5E8B /* CapsuleReset.c */, + 9AA913AA25CD452A00BD5E8B /* SaveLongModeContext.c */, + 9AA913AB25CD452A00BD5E8B /* Arm */, + 9AA913AD25CD452A00BD5E8B /* CapsuleService.c */, + ); + path = CapsuleRuntimeDxe; + sourceTree = ""; + }; + 9AA913A325CD452A00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA913A425CD452A00BD5E8B /* SaveLongModeContext.c */, + ); + path = X64; + sourceTree = ""; + }; + 9AA913AB25CD452A00BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA913AC25CD452A00BD5E8B /* CapsuleReset.c */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA913AE25CD452A00BD5E8B /* SetupBrowserDxe */ = { + isa = PBXGroup; + children = ( + 9AA913AF25CD452A00BD5E8B /* Expression.c */, + 9AA913B025CD452A00BD5E8B /* SetupBrowserExtra.uni */, + 9AA913B125CD452A00BD5E8B /* Setup.h */, + 9AA913B225CD452A00BD5E8B /* Presentation.c */, + 9AA913B325CD452A00BD5E8B /* SetupBrowserDxe.inf */, + 9AA913B425CD452A00BD5E8B /* Setup.c */, + 9AA913B525CD452A00BD5E8B /* Expression.h */, + 9AA913B625CD452A00BD5E8B /* IfrParse.c */, + 9AA913B725CD452A00BD5E8B /* SetupBrowser.uni */, + ); + path = SetupBrowserDxe; + sourceTree = ""; + }; + 9AA913B825CD452A00BD5E8B /* Console */ = { + isa = PBXGroup; + children = ( + 9AA913B925CD452A00BD5E8B /* GraphicsConsoleDxe */, + 9AA913C125CD452A00BD5E8B /* TerminalDxe */, + 9AA913CC25CD452A00BD5E8B /* ConPlatformDxe */, + 9AA913D325CD452A00BD5E8B /* ConSplitterDxe */, + 9AA913DB25CD452A00BD5E8B /* GraphicsOutputDxe */, + ); + path = Console; + sourceTree = ""; + }; + 9AA913B925CD452A00BD5E8B /* GraphicsConsoleDxe */ = { + isa = PBXGroup; + children = ( + 9AA913BA25CD452A00BD5E8B /* GraphicsConsoleDxeExtra.uni */, + 9AA913BB25CD452A00BD5E8B /* GraphicsConsole.h */, + 9AA913BC25CD452A00BD5E8B /* ComponentName.c */, + 9AA913BD25CD452A00BD5E8B /* GraphicsConsoleDxe.inf */, + 9AA913BE25CD452A00BD5E8B /* GraphicsConsoleDxe.uni */, + 9AA913BF25CD452A00BD5E8B /* LaffStd.c */, + 9AA913C025CD452A00BD5E8B /* GraphicsConsole.c */, + ); + path = GraphicsConsoleDxe; + sourceTree = ""; + }; + 9AA913C125CD452A00BD5E8B /* TerminalDxe */ = { + isa = PBXGroup; + children = ( + 9AA913C225CD452A00BD5E8B /* TerminalDxeExtra.uni */, + 9AA913C325CD452A00BD5E8B /* TerminalDxe.uni */, + 9AA913C425CD452A00BD5E8B /* TerminalConOut.c */, + 9AA913C525CD452A00BD5E8B /* TerminalConIn.c */, + 9AA913C625CD452A00BD5E8B /* TerminalDxe.inf */, + 9AA913C725CD452A00BD5E8B /* Terminal.c */, + 9AA913C825CD452A00BD5E8B /* Vtutf8.c */, + 9AA913C925CD452A00BD5E8B /* ComponentName.c */, + 9AA913CA25CD452A00BD5E8B /* Terminal.h */, + 9AA913CB25CD452A00BD5E8B /* Ansi.c */, + ); + path = TerminalDxe; + sourceTree = ""; + }; + 9AA913CC25CD452A00BD5E8B /* ConPlatformDxe */ = { + isa = PBXGroup; + children = ( + 9AA913CD25CD452A00BD5E8B /* ConPlatformDxeExtra.uni */, + 9AA913CE25CD452A00BD5E8B /* ConPlatform.c */, + 9AA913CF25CD452A00BD5E8B /* ConPlatformDxe.inf */, + 9AA913D025CD452A00BD5E8B /* ComponentName.c */, + 9AA913D125CD452A00BD5E8B /* ConPlatformDxe.uni */, + 9AA913D225CD452A00BD5E8B /* ConPlatform.h */, + ); + path = ConPlatformDxe; + sourceTree = ""; + }; + 9AA913D325CD452A00BD5E8B /* ConSplitterDxe */ = { + isa = PBXGroup; + children = ( + 9AA913D425CD452A00BD5E8B /* ConSplitter.h */, + 9AA913D525CD452A00BD5E8B /* ConSplitterGraphics.c */, + 9AA913D625CD452A00BD5E8B /* ComponentName.c */, + 9AA913D725CD452A00BD5E8B /* ConSplitter.c */, + 9AA913D825CD452A00BD5E8B /* ConSplitterDxe.uni */, + 9AA913D925CD452A00BD5E8B /* ConSplitterDxeExtra.uni */, + 9AA913DA25CD452A00BD5E8B /* ConSplitterDxe.inf */, + ); + path = ConSplitterDxe; + sourceTree = ""; + }; + 9AA913DB25CD452A00BD5E8B /* GraphicsOutputDxe */ = { + isa = PBXGroup; + children = ( + 9AA913DC25CD452A00BD5E8B /* GraphicsOutput.h */, + 9AA913DD25CD452A00BD5E8B /* ComponentName.c */, + 9AA913DE25CD452A00BD5E8B /* GraphicsOutputDxe.inf */, + 9AA913DF25CD452A00BD5E8B /* GraphicsOutput.c */, + ); + path = GraphicsOutputDxe; + sourceTree = ""; + }; + 9AA913E025CD452A00BD5E8B /* Metronome */ = { + isa = PBXGroup; + children = ( + 9AA913E125CD452A00BD5E8B /* Metronome.inf */, + 9AA913E225CD452A00BD5E8B /* Metronome.c */, + 9AA913E325CD452A00BD5E8B /* Metronome.uni */, + 9AA913E425CD452A00BD5E8B /* MetronomeExtra.uni */, + 9AA913E525CD452A00BD5E8B /* Metronome.h */, + ); + path = Metronome; + sourceTree = ""; + }; + 9AA913E625CD452A00BD5E8B /* Include */ = { + isa = PBXGroup; + children = ( + 9AA913E725CD452A00BD5E8B /* Library */, + 9AA9140C25CD452A00BD5E8B /* Protocol */, + 9AA9143525CD452B00BD5E8B /* Guid */, + 9AA9146E25CD452B00BD5E8B /* Ppi */, + ); + path = Include; + sourceTree = ""; + }; + 9AA913E725CD452A00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA913E825CD452A00BD5E8B /* FmpAuthenticationLib.h */, + 9AA913E925CD452A00BD5E8B /* PlatformHookLib.h */, + 9AA913EA25CD452A00BD5E8B /* UefiBootManagerLib.h */, + 9AA913EB25CD452A00BD5E8B /* HttpLib.h */, + 9AA913EC25CD452A00BD5E8B /* TpmMeasurementLib.h */, + 9AA913ED25CD452A00BD5E8B /* PciHostBridgeLib.h */, + 9AA913EE25CD452A00BD5E8B /* SecurityManagementLib.h */, + 9AA913EF25CD452A00BD5E8B /* DisplayUpdateProgressLib.h */, + 9AA913F025CD452A00BD5E8B /* IpmiLib.h */, + 9AA913F125CD452A00BD5E8B /* DebugAgentLib.h */, + 9AA913F225CD452A00BD5E8B /* UefiHiiServicesLib.h */, + 9AA913F325CD452A00BD5E8B /* PlatformBootManagerLib.h */, + 9AA913F425CD452A00BD5E8B /* UdpIoLib.h */, + 9AA913F525CD452A00BD5E8B /* MemoryProfileLib.h */, + 9AA913F625CD452A00BD5E8B /* SmmCorePlatformHookLib.h */, + 9AA913F725CD452A00BD5E8B /* CustomizedDisplayLib.h */, + 9AA913F825CD452A00BD5E8B /* ResetUtilityLib.h */, + 9AA913F925CD452A00BD5E8B /* SortLib.h */, + 9AA913FA25CD452A00BD5E8B /* FrameBufferBltLib.h */, + 9AA913FB25CD452A00BD5E8B /* NetLib.h */, + 9AA913FC25CD452A00BD5E8B /* OemHookStatusCodeLib.h */, + 9AA913FD25CD452A00BD5E8B /* BmpSupportLib.h */, + 9AA913FE25CD452A00BD5E8B /* LockBoxLib.h */, + 9AA913FF25CD452A00BD5E8B /* ResetSystemLib.h */, + 9AA9140025CD452A00BD5E8B /* VarCheckLib.h */, + 9AA9140125CD452A00BD5E8B /* RecoveryLib.h */, + 9AA9140225CD452A00BD5E8B /* AuthVariableLib.h */, + 9AA9140325CD452A00BD5E8B /* HiiLib.h */, + 9AA9140425CD452A00BD5E8B /* NonDiscoverableDeviceRegistrationLib.h */, + 9AA9140525CD452A00BD5E8B /* TcpIoLib.h */, + 9AA9140625CD452A00BD5E8B /* BootLogoLib.h */, + 9AA9140725CD452A00BD5E8B /* PlatformVarCleanupLib.h */, + 9AA9140825CD452A00BD5E8B /* CpuExceptionHandlerLib.h */, + 9AA9140925CD452A00BD5E8B /* CapsuleLib.h */, + 9AA9140A25CD452A00BD5E8B /* S3Lib.h */, + 9AA9140B25CD452A00BD5E8B /* FileExplorerLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA9140C25CD452A00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA9140D25CD452A00BD5E8B /* Ps2Policy.h */, + 9AA9140E25CD452A00BD5E8B /* FileExplorer.h */, + 9AA9140F25CD452A00BD5E8B /* UfsHostControllerPlatform.h */, + 9AA9141025CD452A00BD5E8B /* EsrtManagement.h */, + 9AA9141125CD452A00BD5E8B /* NonDiscoverableDevice.h */, + 9AA9141225CD452A00BD5E8B /* PlatformSpecificResetFilter.h */, + 9AA9141325CD452A00BD5E8B /* IpmiProtocol.h */, + 9AA9141425CD452A00BD5E8B /* SwapAddressRange.h */, + 9AA9141525CD452A00BD5E8B /* DebuggerConfiguration.h */, + 9AA9141625CD452A00BD5E8B /* IoMmu.h */, + 9AA9141725CD452A00BD5E8B /* PlatformSpecificResetHandler.h */, + 9AA9141825CD452A00BD5E8B /* LoadPe32Image.h */, + 9AA9141925CD452A00BD5E8B /* VarCheck.h */, + 9AA9141A25CD452A00BD5E8B /* FirmwareManagementProgress.h */, + 9AA9141B25CD452A00BD5E8B /* AtaAtapiPolicy.h */, + 9AA9141C25CD452A00BD5E8B /* SmmMemoryAttribute.h */, + 9AA9141D25CD452A00BD5E8B /* SdMmcOverride.h */, + 9AA9141E25CD452A00BD5E8B /* FormBrowserEx2.h */, + 9AA9141F25CD452A00BD5E8B /* SmmSwapAddressRange.h */, + 9AA9142025CD452A00BD5E8B /* UfsHostController.h */, + 9AA9142125CD452A00BD5E8B /* SmmFirmwareVolumeBlock.h */, + 9AA9142225CD452A00BD5E8B /* EbcVmTest.h */, + 9AA9142325CD452A00BD5E8B /* PlatformLogo.h */, + 9AA9142425CD452A00BD5E8B /* PeCoffImageEmulator.h */, + 9AA9142525CD452A00BD5E8B /* Print2.h */, + 9AA9142625CD452B00BD5E8B /* BootLogo.h */, + 9AA9142725CD452B00BD5E8B /* SmmReadyToBoot.h */, + 9AA9142825CD452B00BD5E8B /* SmmLegacyBoot.h */, + 9AA9142925CD452B00BD5E8B /* SmmVariable.h */, + 9AA9142A25CD452B00BD5E8B /* SmmFaultTolerantWrite.h */, + 9AA9142B25CD452B00BD5E8B /* LockBox.h */, + 9AA9142C25CD452B00BD5E8B /* GenericMemoryTest.h */, + 9AA9142D25CD452B00BD5E8B /* DisplayProtocol.h */, + 9AA9142E25CD452B00BD5E8B /* BootLogo2.h */, + 9AA9142F25CD452B00BD5E8B /* FormBrowserEx.h */, + 9AA9143025CD452B00BD5E8B /* VariableLock.h */, + 9AA9143125CD452B00BD5E8B /* EbcSimpleDebugger.h */, + 9AA9143225CD452B00BD5E8B /* SmmVarCheck.h */, + 9AA9143325CD452B00BD5E8B /* SmmExitBootServices.h */, + 9AA9143425CD452B00BD5E8B /* FaultTolerantWrite.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA9143525CD452B00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA9143625CD452B00BD5E8B /* EndOfS3Resume.h */, + 9AA9143725CD452B00BD5E8B /* MdeModulePkgTokenSpace.h */, + 9AA9143825CD452B00BD5E8B /* LoadModuleAtFixedAddress.h */, + 9AA9143925CD452B00BD5E8B /* SystemNvDataGuid.h */, + 9AA9143A25CD452B00BD5E8B /* ExtendedFirmwarePerformance.h */, + 9AA9143B25CD452B00BD5E8B /* MdeModuleHii.h */, + 9AA9143C25CD452B00BD5E8B /* NonDiscoverableDevice.h */, + 9AA9143D25CD452B00BD5E8B /* PlatformHasAcpi.h */, + 9AA9143E25CD452B00BD5E8B /* SmmVariableCommon.h */, + 9AA9143F25CD452B00BD5E8B /* MemoryProfile.h */, + 9AA9144025CD452B00BD5E8B /* RamDiskHii.h */, + 9AA9144125CD452B00BD5E8B /* PcdDataBaseSignatureGuid.h */, + 9AA9144225CD452B00BD5E8B /* VariableIndexTable.h */, + 9AA9144325CD452B00BD5E8B /* ConsoleInDevice.h */, + 9AA9144425CD452B00BD5E8B /* SerialPortLibVendor.h */, + 9AA9144525CD452B00BD5E8B /* RecoveryDevice.h */, + 9AA9144625CD452B00BD5E8B /* IdleLoopEvent.h */, + 9AA9144725CD452B00BD5E8B /* Performance.h */, + 9AA9144825CD452B00BD5E8B /* UsbKeyBoardLayout.h */, + 9AA9144925CD452B00BD5E8B /* ZeroGuid.h */, + 9AA9144A25CD452B00BD5E8B /* PcdDataBaseHobGuid.h */, + 9AA9144B25CD452B00BD5E8B /* LzmaDecompress.h */, + 9AA9144C25CD452B00BD5E8B /* Ip4Config2Hii.h */, + 9AA9144D25CD452B00BD5E8B /* PiSmmMemoryAttributesTable.h */, + 9AA9144E25CD452B00BD5E8B /* VarErrorFlag.h */, + 9AA9144F25CD452B00BD5E8B /* ConsoleOutDevice.h */, + 9AA9145025CD452B00BD5E8B /* SmmLockBox.h */, + 9AA9145125CD452B00BD5E8B /* BootScriptExecutorVariable.h */, + 9AA9145225CD452B00BD5E8B /* MtcVendor.h */, + 9AA9145325CD452B00BD5E8B /* DriverSampleHii.h */, + 9AA9145425CD452B00BD5E8B /* StandardErrorDevice.h */, + 9AA9145525CD452B00BD5E8B /* MemoryStatusCodeRecord.h */, + 9AA9145625CD452B00BD5E8B /* S3SmmInitDone.h */, + 9AA9145725CD452B00BD5E8B /* StatusCodeDataTypeDebug.h */, + 9AA9145825CD452B00BD5E8B /* EventExitBootServiceFailed.h */, + 9AA9145925CD452B00BD5E8B /* S3StorageDeviceInitList.h */, + 9AA9145A25CD452B00BD5E8B /* CapsuleVendor.h */, + 9AA9145B25CD452B00BD5E8B /* ConnectConInEvent.h */, + 9AA9145C25CD452B00BD5E8B /* VlanConfigHii.h */, + 9AA9145D25CD452B00BD5E8B /* SmiHandlerProfile.h */, + 9AA9145E25CD452B00BD5E8B /* PerformanceMeasurement.h */, + 9AA9145F25CD452B00BD5E8B /* HiiBootMaintenanceFormset.h */, + 9AA9146025CD452B00BD5E8B /* PlatDriOverrideHii.h */, + 9AA9146125CD452B00BD5E8B /* DebugMask.h */, + 9AA9146225CD452B00BD5E8B /* VariableFormat.h */, + 9AA9146325CD452B00BD5E8B /* AcpiS3Context.h */, + 9AA9146425CD452B00BD5E8B /* StatusCodeDataTypeVariable.h */, + 9AA9146525CD452B00BD5E8B /* Ip4IScsiConfigHii.h */, + 9AA9146625CD452B00BD5E8B /* Crc32GuidedSectionExtraction.h */, + 9AA9146725CD452B00BD5E8B /* TtyTerm.h */, + 9AA9146825CD452B00BD5E8B /* PiSmmCommunicationRegionTable.h */, + 9AA9146925CD452B00BD5E8B /* StatusCodeCallbackGuid.h */, + 9AA9146A25CD452B00BD5E8B /* HiiResourceSampleHii.h */, + 9AA9146B25CD452B00BD5E8B /* MemoryTypeInformation.h */, + 9AA9146C25CD452B00BD5E8B /* FirmwarePerformance.h */, + 9AA9146D25CD452B00BD5E8B /* FaultTolerantWrite.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA9146E25CD452B00BD5E8B /* Ppi */ = { + isa = PBXGroup; + children = ( + 9AA9146F25CD452B00BD5E8B /* SerialPortPei.h */, + 9AA9147025CD452B00BD5E8B /* PlatformSpecificResetFilter.h */, + 9AA9147125CD452B00BD5E8B /* Debug.h */, + 9AA9147225CD452B00BD5E8B /* SdMmcHostController.h */, + 9AA9147325CD452B00BD5E8B /* IoMmu.h */, + 9AA9147425CD452B00BD5E8B /* Usb2HostController.h */, + 9AA9147525CD452B00BD5E8B /* AtaController.h */, + 9AA9147625CD452B00BD5E8B /* AtaAhciController.h */, + 9AA9147725CD452B00BD5E8B /* PlatformSpecificResetHandler.h */, + 9AA9147825CD452B00BD5E8B /* AtaPassThru.h */, + 9AA9147925CD452B00BD5E8B /* IpmiPpi.h */, + 9AA9147A25CD452B00BD5E8B /* UfsHostController.h */, + 9AA9147B25CD452B00BD5E8B /* PlatformSpecificResetNotification.h */, + 9AA9147C25CD452B00BD5E8B /* StorageSecurityCommand.h */, + 9AA9147D25CD452B00BD5E8B /* SmmControl.h */, + 9AA9147E25CD452B00BD5E8B /* SmmCommunication.h */, + 9AA9147F25CD452B00BD5E8B /* NvmExpressPassThru.h */, + 9AA9148025CD452B00BD5E8B /* UsbHostController.h */, + 9AA9148125CD452B00BD5E8B /* UsbIo.h */, + 9AA9148225CD452B00BD5E8B /* NvmExpressHostController.h */, + 9AA9148325CD452B00BD5E8B /* UsbController.h */, + 9AA9148425CD452B00BD5E8B /* SmmAccess.h */, + 9AA9148525CD452B00BD5E8B /* CapsuleOnDisk.h */, + 9AA9148625CD452B00BD5E8B /* PostBootScriptTable.h */, + 9AA9148725CD452B00BD5E8B /* SecPerformance.h */, + ); + path = Ppi; + sourceTree = ""; + }; + 9AA9148925CD452B00BD5E8B /* Bus */ = { + isa = PBXGroup; + children = ( + 9AA9148A25CD452B00BD5E8B /* Sd */, + 9AA914B725CD452B00BD5E8B /* Pci */, + 9AA9158F25CD452B00BD5E8B /* Isa */, + 9AA915AA25CD452B00BD5E8B /* Scsi */, + 9AA915B925CD452B00BD5E8B /* Ufs */, + 9AA915CF25CD452B00BD5E8B /* I2c */, + 9AA915DE25CD452B00BD5E8B /* Usb */, + 9AA9162E25CD452B00BD5E8B /* Ata */, + ); + path = Bus; + sourceTree = ""; + }; + 9AA9148A25CD452B00BD5E8B /* Sd */ = { + isa = PBXGroup; + children = ( + 9AA9148B25CD452B00BD5E8B /* SdBlockIoPei */, + 9AA9149625CD452B00BD5E8B /* EmmcBlockIoPei */, + 9AA914A125CD452B00BD5E8B /* SdDxe */, + 9AA914AC25CD452B00BD5E8B /* EmmcDxe */, + ); + path = Sd; + sourceTree = ""; + }; + 9AA9148B25CD452B00BD5E8B /* SdBlockIoPei */ = { + isa = PBXGroup; + children = ( + 9AA9148C25CD452B00BD5E8B /* SdBlockIoPei.c */, + 9AA9148D25CD452B00BD5E8B /* SdHcMem.c */, + 9AA9148E25CD452B00BD5E8B /* SdBlockIoPeiExtra.uni */, + 9AA9148F25CD452B00BD5E8B /* SdHci.h */, + 9AA9149025CD452B00BD5E8B /* SdBlockIoPei.uni */, + 9AA9149125CD452B00BD5E8B /* SdBlockIoPei.inf */, + 9AA9149225CD452B00BD5E8B /* SdHcMem.h */, + 9AA9149325CD452B00BD5E8B /* SdBlockIoPei.h */, + 9AA9149425CD452B00BD5E8B /* DmaMem.c */, + 9AA9149525CD452B00BD5E8B /* SdHci.c */, + ); + path = SdBlockIoPei; + sourceTree = ""; + }; + 9AA9149625CD452B00BD5E8B /* EmmcBlockIoPei */ = { + isa = PBXGroup; + children = ( + 9AA9149725CD452B00BD5E8B /* EmmcHcMem.c */, + 9AA9149825CD452B00BD5E8B /* EmmcHci.c */, + 9AA9149925CD452B00BD5E8B /* EmmcBlockIoPei.c */, + 9AA9149A25CD452B00BD5E8B /* EmmcBlockIoPeiExtra.uni */, + 9AA9149B25CD452B00BD5E8B /* EmmcHcMem.h */, + 9AA9149C25CD452B00BD5E8B /* EmmcHci.h */, + 9AA9149D25CD452B00BD5E8B /* EmmcBlockIoPei.h */, + 9AA9149E25CD452B00BD5E8B /* DmaMem.c */, + 9AA9149F25CD452B00BD5E8B /* EmmcBlockIoPei.uni */, + 9AA914A025CD452B00BD5E8B /* EmmcBlockIoPei.inf */, + ); + path = EmmcBlockIoPei; + sourceTree = ""; + }; + 9AA914A125CD452B00BD5E8B /* SdDxe */ = { + isa = PBXGroup; + children = ( + 9AA914A225CD452B00BD5E8B /* SdBlockIo.c */, + 9AA914A325CD452B00BD5E8B /* SdDxe.uni */, + 9AA914A425CD452B00BD5E8B /* SdDxe.c */, + 9AA914A525CD452B00BD5E8B /* SdDxe.inf */, + 9AA914A625CD452B00BD5E8B /* ComponentName.c */, + 9AA914A725CD452B00BD5E8B /* SdDiskInfo.h */, + 9AA914A825CD452B00BD5E8B /* SdBlockIo.h */, + 9AA914A925CD452B00BD5E8B /* SdDxe.h */, + 9AA914AA25CD452B00BD5E8B /* SdDxeExtra.uni */, + 9AA914AB25CD452B00BD5E8B /* SdDiskInfo.c */, + ); + path = SdDxe; + sourceTree = ""; + }; + 9AA914AC25CD452B00BD5E8B /* EmmcDxe */ = { + isa = PBXGroup; + children = ( + 9AA914AD25CD452B00BD5E8B /* EmmcDxe.h */, + 9AA914AE25CD452B00BD5E8B /* EmmcDiskInfo.h */, + 9AA914AF25CD452B00BD5E8B /* EmmcDxe.uni */, + 9AA914B025CD452B00BD5E8B /* EmmcBlockIo.c */, + 9AA914B125CD452B00BD5E8B /* ComponentName.c */, + 9AA914B225CD452B00BD5E8B /* EmmcDxe.inf */, + 9AA914B325CD452B00BD5E8B /* EmmcDxe.c */, + 9AA914B425CD452B00BD5E8B /* EmmcDiskInfo.c */, + 9AA914B525CD452B00BD5E8B /* EmmcBlockIo.h */, + 9AA914B625CD452B00BD5E8B /* EmmcDxeExtra.uni */, + ); + path = EmmcDxe; + sourceTree = ""; + }; + 9AA914B725CD452B00BD5E8B /* Pci */ = { + isa = PBXGroup; + children = ( + 9AA914B825CD452B00BD5E8B /* IdeBusPei */, + 9AA914BE25CD452B00BD5E8B /* SdMmcPciHcDxe */, + 9AA914C925CD452B00BD5E8B /* IncompatiblePciDeviceSupportDxe */, + 9AA914CE25CD452B00BD5E8B /* PciBusDxe */, + 9AA914EE25CD452B00BD5E8B /* XhciPei */, + 9AA914FA25CD452B00BD5E8B /* EhciPei */, + 9AA9150825CD452B00BD5E8B /* UfsPciHcDxe */, + 9AA9150F25CD452B00BD5E8B /* UhciDxe */, + 9AA9152125CD452B00BD5E8B /* NvmExpressPei */, + 9AA9153225CD452B00BD5E8B /* SdMmcPciHcPei */, + 9AA9153825CD452B00BD5E8B /* SataControllerDxe */, + 9AA9153F25CD452B00BD5E8B /* PciSioSerialDxe */, + 9AA9154725CD452B00BD5E8B /* PciHostBridgeDxe */, + 9AA9154E25CD452B00BD5E8B /* XhciDxe */, + 9AA9155C25CD452B00BD5E8B /* UhciPei */, + 9AA9156325CD452B00BD5E8B /* NvmExpressDxe */, + 9AA9157125CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe */, + 9AA9157725CD452B00BD5E8B /* EhciDxe */, + 9AA9158925CD452B00BD5E8B /* UfsPciHcPei */, + ); + path = Pci; + sourceTree = ""; + }; + 9AA914B825CD452B00BD5E8B /* IdeBusPei */ = { + isa = PBXGroup; + children = ( + 9AA914B925CD452B00BD5E8B /* AtapiPeim.h */, + 9AA914BA25CD452B00BD5E8B /* IdeBusPei.uni */, + 9AA914BB25CD452B00BD5E8B /* IdeBusPeiExtra.uni */, + 9AA914BC25CD452B00BD5E8B /* IdeBusPei.inf */, + 9AA914BD25CD452B00BD5E8B /* AtapiPeim.c */, + ); + path = IdeBusPei; + sourceTree = ""; + }; + 9AA914BE25CD452B00BD5E8B /* SdMmcPciHcDxe */ = { + isa = PBXGroup; + children = ( + 9AA914BF25CD452B00BD5E8B /* SdMmcPciHci.c */, + 9AA914C025CD452B00BD5E8B /* SdMmcPciHcDxeExtra.uni */, + 9AA914C125CD452B00BD5E8B /* SdDevice.c */, + 9AA914C225CD452B00BD5E8B /* ComponentName.c */, + 9AA914C325CD452B00BD5E8B /* SdMmcPciHcDxe.h */, + 9AA914C425CD452B00BD5E8B /* SdMmcPciHci.h */, + 9AA914C525CD452B00BD5E8B /* EmmcDevice.c */, + 9AA914C625CD452B00BD5E8B /* SdMmcPciHcDxe.inf */, + 9AA914C725CD452B00BD5E8B /* SdMmcPciHcDxe.uni */, + 9AA914C825CD452B00BD5E8B /* SdMmcPciHcDxe.c */, + ); + path = SdMmcPciHcDxe; + sourceTree = ""; + }; + 9AA914C925CD452B00BD5E8B /* IncompatiblePciDeviceSupportDxe */ = { + isa = PBXGroup; + children = ( + 9AA914CA25CD452B00BD5E8B /* IncompatiblePciDeviceSupportDxe.inf */, + 9AA914CB25CD452B00BD5E8B /* IncompatiblePciDeviceSupportExtra.uni */, + 9AA914CC25CD452B00BD5E8B /* IncompatiblePciDeviceSupport.uni */, + 9AA914CD25CD452B00BD5E8B /* IncompatiblePciDeviceSupport.c */, + ); + path = IncompatiblePciDeviceSupportDxe; + sourceTree = ""; + }; + 9AA914CE25CD452B00BD5E8B /* PciBusDxe */ = { + isa = PBXGroup; + children = ( + 9AA914CF25CD452B00BD5E8B /* PciEnumerator.c */, + 9AA914D025CD452B00BD5E8B /* PciDriverOverride.c */, + 9AA914D125CD452B00BD5E8B /* PciResourceSupport.c */, + 9AA914D225CD452B00BD5E8B /* PciDeviceSupport.c */, + 9AA914D325CD452B00BD5E8B /* PciIo.c */, + 9AA914D425CD452B00BD5E8B /* PciCommand.c */, + 9AA914D525CD452B00BD5E8B /* PciHotPlugSupport.c */, + 9AA914D625CD452B00BD5E8B /* PciOptionRomSupport.h */, + 9AA914D725CD452B00BD5E8B /* PciRomTable.h */, + 9AA914D825CD452B00BD5E8B /* PciEnumeratorSupport.c */, + 9AA914D925CD452B00BD5E8B /* PciLib.h */, + 9AA914DA25CD452B00BD5E8B /* PciBusDxeExtra.uni */, + 9AA914DB25CD452B00BD5E8B /* ComponentName.c */, + 9AA914DC25CD452B00BD5E8B /* PciBus.c */, + 9AA914DD25CD452B00BD5E8B /* PciPowerManagement.c */, + 9AA914DE25CD452B00BD5E8B /* PciResourceSupport.h */, + 9AA914DF25CD452B00BD5E8B /* PciDriverOverride.h */, + 9AA914E025CD452B00BD5E8B /* PciEnumerator.h */, + 9AA914E125CD452B00BD5E8B /* PciCommand.h */, + 9AA914E225CD452B00BD5E8B /* PciIo.h */, + 9AA914E325CD452B00BD5E8B /* PciDeviceSupport.h */, + 9AA914E425CD452B00BD5E8B /* PciRomTable.c */, + 9AA914E525CD452B00BD5E8B /* PciBusDxe.inf */, + 9AA914E625CD452B00BD5E8B /* PciOptionRomSupport.c */, + 9AA914E725CD452B00BD5E8B /* PciHotPlugSupport.h */, + 9AA914E825CD452B00BD5E8B /* PciPowerManagement.h */, + 9AA914E925CD452B00BD5E8B /* PciBus.h */, + 9AA914EA25CD452B00BD5E8B /* ComponentName.h */, + 9AA914EB25CD452B00BD5E8B /* PciBusDxe.uni */, + 9AA914EC25CD452B00BD5E8B /* PciEnumeratorSupport.h */, + 9AA914ED25CD452B00BD5E8B /* PciLib.c */, + ); + path = PciBusDxe; + sourceTree = ""; + }; + 9AA914EE25CD452B00BD5E8B /* XhciPei */ = { + isa = PBXGroup; + children = ( + 9AA914EF25CD452B00BD5E8B /* XhciSched.h */, + 9AA914F025CD452B00BD5E8B /* XhciPei.inf */, + 9AA914F125CD452B00BD5E8B /* XhcPeim.h */, + 9AA914F225CD452B00BD5E8B /* XhciPei.uni */, + 9AA914F325CD452B00BD5E8B /* UsbHcMem.h */, + 9AA914F425CD452B00BD5E8B /* XhciSched.c */, + 9AA914F525CD452B00BD5E8B /* DmaMem.c */, + 9AA914F625CD452B00BD5E8B /* XhciPeiExtra.uni */, + 9AA914F725CD452B00BD5E8B /* UsbHcMem.c */, + 9AA914F825CD452B00BD5E8B /* XhciReg.h */, + 9AA914F925CD452B00BD5E8B /* XhcPeim.c */, + ); + path = XhciPei; + sourceTree = ""; + }; + 9AA914FA25CD452B00BD5E8B /* EhciPei */ = { + isa = PBXGroup; + children = ( + 9AA914FB25CD452B00BD5E8B /* EhciPeiExtra.uni */, + 9AA914FC25CD452B00BD5E8B /* EhciUrb.h */, + 9AA914FD25CD452B00BD5E8B /* EhcPeim.h */, + 9AA914FE25CD452B00BD5E8B /* UsbHcMem.h */, + 9AA914FF25CD452B00BD5E8B /* EhciSched.c */, + 9AA9150025CD452B00BD5E8B /* EhciPei.uni */, + 9AA9150125CD452B00BD5E8B /* EhciPei.inf */, + 9AA9150225CD452B00BD5E8B /* DmaMem.c */, + 9AA9150325CD452B00BD5E8B /* EhciReg.h */, + 9AA9150425CD452B00BD5E8B /* EhcPeim.c */, + 9AA9150525CD452B00BD5E8B /* EhciUrb.c */, + 9AA9150625CD452B00BD5E8B /* EhciSched.h */, + 9AA9150725CD452B00BD5E8B /* UsbHcMem.c */, + ); + path = EhciPei; + sourceTree = ""; + }; + 9AA9150825CD452B00BD5E8B /* UfsPciHcDxe */ = { + isa = PBXGroup; + children = ( + 9AA9150925CD452B00BD5E8B /* UfsPciHcDxeExtra.uni */, + 9AA9150A25CD452B00BD5E8B /* ComponentName.c */, + 9AA9150B25CD452B00BD5E8B /* UfsPciHcDxe.c */, + 9AA9150C25CD452B00BD5E8B /* UfsPciHcDxe.uni */, + 9AA9150D25CD452B00BD5E8B /* UfsPciHcDxe.h */, + 9AA9150E25CD452B00BD5E8B /* UfsPciHcDxe.inf */, + ); + path = UfsPciHcDxe; + sourceTree = ""; + }; + 9AA9150F25CD452B00BD5E8B /* UhciDxe */ = { + isa = PBXGroup; + children = ( + 9AA9151025CD452B00BD5E8B /* UhciSched.h */, + 9AA9151125CD452B00BD5E8B /* UhciReg.h */, + 9AA9151225CD452B00BD5E8B /* UhciDebug.c */, + 9AA9151325CD452B00BD5E8B /* UhciQueue.h */, + 9AA9151425CD452B00BD5E8B /* Uhci.c */, + 9AA9151525CD452B00BD5E8B /* UhciDxeExtra.uni */, + 9AA9151625CD452B00BD5E8B /* ComponentName.c */, + 9AA9151725CD452B00BD5E8B /* UsbHcMem.h */, + 9AA9151825CD452B00BD5E8B /* UhciSched.c */, + 9AA9151925CD452B00BD5E8B /* UhciDxe.inf */, + 9AA9151A25CD452B00BD5E8B /* UhciDebug.h */, + 9AA9151B25CD452B00BD5E8B /* UhciReg.c */, + 9AA9151C25CD452B00BD5E8B /* UhciDxe.uni */, + 9AA9151D25CD452B00BD5E8B /* UhciQueue.c */, + 9AA9151E25CD452B00BD5E8B /* UsbHcMem.c */, + 9AA9151F25CD452B00BD5E8B /* Uhci.h */, + 9AA9152025CD452B00BD5E8B /* ComponentName.h */, + ); + path = UhciDxe; + sourceTree = ""; + }; + 9AA9152125CD452B00BD5E8B /* NvmExpressPei */ = { + isa = PBXGroup; + children = ( + 9AA9152225CD452B00BD5E8B /* DevicePath.c */, + 9AA9152325CD452B00BD5E8B /* NvmExpressPeiHci.h */, + 9AA9152425CD452B00BD5E8B /* NvmExpressPeiStorageSecurity.h */, + 9AA9152525CD452B00BD5E8B /* NvmExpressPei.c */, + 9AA9152625CD452B00BD5E8B /* NvmExpressPeiBlockIo.c */, + 9AA9152725CD452B00BD5E8B /* NvmExpressPeiExtra.uni */, + 9AA9152825CD452B00BD5E8B /* NvmExpressPeiPassThru.h */, + 9AA9152925CD452B00BD5E8B /* NvmExpressPeiS3.c */, + 9AA9152A25CD452B00BD5E8B /* NvmExpressPeiStorageSecurity.c */, + 9AA9152B25CD452B00BD5E8B /* NvmExpressPei.h */, + 9AA9152C25CD452B00BD5E8B /* NvmExpressPei.inf */, + 9AA9152D25CD452B00BD5E8B /* NvmExpressPeiHci.c */, + 9AA9152E25CD452B00BD5E8B /* NvmExpressPei.uni */, + 9AA9152F25CD452B00BD5E8B /* NvmExpressPeiBlockIo.h */, + 9AA9153025CD452B00BD5E8B /* DmaMem.c */, + 9AA9153125CD452B00BD5E8B /* NvmExpressPeiPassThru.c */, + ); + path = NvmExpressPei; + sourceTree = ""; + }; + 9AA9153225CD452B00BD5E8B /* SdMmcPciHcPei */ = { + isa = PBXGroup; + children = ( + 9AA9153325CD452B00BD5E8B /* SdMmcPciHcPei.inf */, + 9AA9153425CD452B00BD5E8B /* SdMmcPciHcPei.c */, + 9AA9153525CD452B00BD5E8B /* SdMmcPciHcPei.uni */, + 9AA9153625CD452B00BD5E8B /* SdMmcPciHcPeiExtra.uni */, + 9AA9153725CD452B00BD5E8B /* SdMmcPciHcPei.h */, + ); + path = SdMmcPciHcPei; + sourceTree = ""; + }; + 9AA9153825CD452B00BD5E8B /* SataControllerDxe */ = { + isa = PBXGroup; + children = ( + 9AA9153925CD452B00BD5E8B /* SataController.c */, + 9AA9153A25CD452B00BD5E8B /* SataControllerDxe.uni */, + 9AA9153B25CD452B00BD5E8B /* SataControllerDxeExtra.uni */, + 9AA9153C25CD452B00BD5E8B /* ComponentName.c */, + 9AA9153D25CD452B00BD5E8B /* SataControllerDxe.inf */, + 9AA9153E25CD452B00BD5E8B /* SataController.h */, + ); + path = SataControllerDxe; + sourceTree = ""; + }; + 9AA9153F25CD452B00BD5E8B /* PciSioSerialDxe */ = { + isa = PBXGroup; + children = ( + 9AA9154025CD452B00BD5E8B /* PciSioSerialDxe.inf */, + 9AA9154125CD452B00BD5E8B /* Serial.c */, + 9AA9154225CD452B00BD5E8B /* SerialIo.c */, + 9AA9154325CD452B00BD5E8B /* PciSioSerialDxe.uni */, + 9AA9154425CD452B00BD5E8B /* PciSioSerialDxeExtra.uni */, + 9AA9154525CD452B00BD5E8B /* ComponentName.c */, + 9AA9154625CD452B00BD5E8B /* Serial.h */, + ); + path = PciSioSerialDxe; + sourceTree = ""; + }; + 9AA9154725CD452B00BD5E8B /* PciHostBridgeDxe */ = { + isa = PBXGroup; + children = ( + 9AA9154825CD452B00BD5E8B /* PciRootBridgeIo.c */, + 9AA9154925CD452B00BD5E8B /* PciHostResource.h */, + 9AA9154A25CD452B00BD5E8B /* PciHostBridge.h */, + 9AA9154B25CD452B00BD5E8B /* PciRootBridge.h */, + 9AA9154C25CD452B00BD5E8B /* PciHostBridgeDxe.inf */, + 9AA9154D25CD452B00BD5E8B /* PciHostBridge.c */, + ); + path = PciHostBridgeDxe; + sourceTree = ""; + }; + 9AA9154E25CD452B00BD5E8B /* XhciDxe */ = { + isa = PBXGroup; + children = ( + 9AA9154F25CD452B00BD5E8B /* XhciDxeExtra.uni */, + 9AA9155025CD452B00BD5E8B /* XhciSched.h */, + 9AA9155125CD452B00BD5E8B /* Xhci.c */, + 9AA9155225CD452B00BD5E8B /* XhciReg.c */, + 9AA9155325CD452B00BD5E8B /* ComponentName.c */, + 9AA9155425CD452B00BD5E8B /* UsbHcMem.h */, + 9AA9155525CD452B00BD5E8B /* XhciSched.c */, + 9AA9155625CD452B00BD5E8B /* XhciDxe.inf */, + 9AA9155725CD452B00BD5E8B /* XhciDxe.uni */, + 9AA9155825CD452B00BD5E8B /* Xhci.h */, + 9AA9155925CD452B00BD5E8B /* UsbHcMem.c */, + 9AA9155A25CD452B00BD5E8B /* ComponentName.h */, + 9AA9155B25CD452B00BD5E8B /* XhciReg.h */, + ); + path = XhciDxe; + sourceTree = ""; + }; + 9AA9155C25CD452B00BD5E8B /* UhciPei */ = { + isa = PBXGroup; + children = ( + 9AA9155D25CD452B00BD5E8B /* UhcPeim.c */, + 9AA9155E25CD452B00BD5E8B /* UhciPei.inf */, + 9AA9155F25CD452B00BD5E8B /* UhciPei.uni */, + 9AA9156025CD452B00BD5E8B /* UhciPeiExtra.uni */, + 9AA9156125CD452B00BD5E8B /* UhcPeim.h */, + 9AA9156225CD452B00BD5E8B /* DmaMem.c */, + ); + path = UhciPei; + sourceTree = ""; + }; + 9AA9156325CD452B00BD5E8B /* NvmExpressDxe */ = { + isa = PBXGroup; + children = ( + 9AA9156425CD452B00BD5E8B /* NvmExpressHci.c */, + 9AA9156525CD452B00BD5E8B /* NvmExpressPassthru.c */, + 9AA9156625CD452B00BD5E8B /* NvmExpressBlockIo.c */, + 9AA9156725CD452B00BD5E8B /* NvmExpressDxe.inf */, + 9AA9156825CD452B00BD5E8B /* NvmExpressDxe.uni */, + 9AA9156925CD452B00BD5E8B /* NvmExpress.c */, + 9AA9156A25CD452B00BD5E8B /* NvmExpressDiskInfo.h */, + 9AA9156B25CD452B00BD5E8B /* ComponentName.c */, + 9AA9156C25CD452B00BD5E8B /* NvmExpressBlockIo.h */, + 9AA9156D25CD452B00BD5E8B /* NvmExpressHci.h */, + 9AA9156E25CD452B00BD5E8B /* NvmExpressDxeExtra.uni */, + 9AA9156F25CD452B00BD5E8B /* NvmExpressDiskInfo.c */, + 9AA9157025CD452B00BD5E8B /* NvmExpress.h */, + ); + path = NvmExpressDxe; + sourceTree = ""; + }; + 9AA9157125CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe */ = { + isa = PBXGroup; + children = ( + 9AA9157225CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe.inf */, + 9AA9157325CD452B00BD5E8B /* NonDiscoverablePciDeviceIo.c */, + 9AA9157425CD452B00BD5E8B /* ComponentName.c */, + 9AA9157525CD452B00BD5E8B /* NonDiscoverablePciDeviceDxe.c */, + 9AA9157625CD452B00BD5E8B /* NonDiscoverablePciDeviceIo.h */, + ); + path = NonDiscoverablePciDeviceDxe; + sourceTree = ""; + }; + 9AA9157725CD452B00BD5E8B /* EhciDxe */ = { + isa = PBXGroup; + children = ( + 9AA9157825CD452B00BD5E8B /* EhciReg.c */, + 9AA9157925CD452B00BD5E8B /* EhciUrb.h */, + 9AA9157A25CD452B00BD5E8B /* EhciDebug.h */, + 9AA9157B25CD452B00BD5E8B /* EhciDxe.uni */, + 9AA9157C25CD452B00BD5E8B /* Ehci.h */, + 9AA9157D25CD452B00BD5E8B /* ComponentName.c */, + 9AA9157E25CD452B00BD5E8B /* EhciDxe.inf */, + 9AA9157F25CD452B00BD5E8B /* UsbHcMem.h */, + 9AA9158025CD452B00BD5E8B /* EhciSched.c */, + 9AA9158125CD452B00BD5E8B /* EhciDxeExtra.uni */, + 9AA9158225CD452B00BD5E8B /* Ehci.c */, + 9AA9158325CD452B00BD5E8B /* EhciDebug.c */, + 9AA9158425CD452B00BD5E8B /* EhciReg.h */, + 9AA9158525CD452B00BD5E8B /* EhciUrb.c */, + 9AA9158625CD452B00BD5E8B /* EhciSched.h */, + 9AA9158725CD452B00BD5E8B /* UsbHcMem.c */, + 9AA9158825CD452B00BD5E8B /* ComponentName.h */, + ); + path = EhciDxe; + sourceTree = ""; + }; + 9AA9158925CD452B00BD5E8B /* UfsPciHcPei */ = { + isa = PBXGroup; + children = ( + 9AA9158A25CD452B00BD5E8B /* UfsPciHcPei.uni */, + 9AA9158B25CD452B00BD5E8B /* UfsPciHcPei.inf */, + 9AA9158C25CD452B00BD5E8B /* UfsPciHcPei.h */, + 9AA9158D25CD452B00BD5E8B /* UfsPciHcPeiExtra.uni */, + 9AA9158E25CD452B00BD5E8B /* UfsPciHcPei.c */, + ); + path = UfsPciHcPei; + sourceTree = ""; + }; + 9AA9158F25CD452B00BD5E8B /* Isa */ = { + isa = PBXGroup; + children = ( + 9AA9159025CD452B00BD5E8B /* IsaBusDxe */, + 9AA9159825CD452B00BD5E8B /* Ps2KeyboardDxe */, + 9AA915A125CD452B00BD5E8B /* Ps2MouseDxe */, + ); + path = Isa; + sourceTree = ""; + }; + 9AA9159025CD452B00BD5E8B /* IsaBusDxe */ = { + isa = PBXGroup; + children = ( + 9AA9159125CD452B00BD5E8B /* IsaBusDxeExtra.uni */, + 9AA9159225CD452B00BD5E8B /* ComponentName.c */, + 9AA9159325CD452B00BD5E8B /* IsaBusDxe.h */, + 9AA9159425CD452B00BD5E8B /* IsaBusDxe.inf */, + 9AA9159525CD452B00BD5E8B /* IsaBusDxe.uni */, + 9AA9159625CD452B00BD5E8B /* IsaBusDxe.c */, + 9AA9159725CD452B00BD5E8B /* ComponentName.h */, + ); + path = IsaBusDxe; + sourceTree = ""; + }; + 9AA9159825CD452B00BD5E8B /* Ps2KeyboardDxe */ = { + isa = PBXGroup; + children = ( + 9AA9159925CD452B00BD5E8B /* Ps2KbdTextIn.c */, + 9AA9159A25CD452B00BD5E8B /* Ps2KeyboardDxeExtra.uni */, + 9AA9159B25CD452B00BD5E8B /* Ps2Keyboard.c */, + 9AA9159C25CD452B00BD5E8B /* Ps2KbdCtrller.c */, + 9AA9159D25CD452B00BD5E8B /* ComponentName.c */, + 9AA9159E25CD452B00BD5E8B /* Ps2KeyboardDxe.inf */, + 9AA9159F25CD452B00BD5E8B /* Ps2KeyboardDxe.uni */, + 9AA915A025CD452B00BD5E8B /* Ps2Keyboard.h */, + ); + path = Ps2KeyboardDxe; + sourceTree = ""; + }; + 9AA915A125CD452B00BD5E8B /* Ps2MouseDxe */ = { + isa = PBXGroup; + children = ( + 9AA915A225CD452B00BD5E8B /* Ps2Mouse.c */, + 9AA915A325CD452B00BD5E8B /* ComponentName.c */, + 9AA915A425CD452B00BD5E8B /* CommPs2.h */, + 9AA915A525CD452B00BD5E8B /* Ps2Mouse.h */, + 9AA915A625CD452B00BD5E8B /* Ps2MouseDxeExtra.uni */, + 9AA915A725CD452B00BD5E8B /* Ps2MouseDxe.inf */, + 9AA915A825CD452B00BD5E8B /* CommPs2.c */, + 9AA915A925CD452B00BD5E8B /* Ps2MouseDxe.uni */, + ); + path = Ps2MouseDxe; + sourceTree = ""; + }; + 9AA915AA25CD452B00BD5E8B /* Scsi */ = { + isa = PBXGroup; + children = ( + 9AA915AB25CD452B00BD5E8B /* ScsiDiskDxe */, + 9AA915B225CD452B00BD5E8B /* ScsiBusDxe */, + ); + path = Scsi; + sourceTree = ""; + }; + 9AA915AB25CD452B00BD5E8B /* ScsiDiskDxe */ = { + isa = PBXGroup; + children = ( + 9AA915AC25CD452B00BD5E8B /* ScsiDiskDxe.inf */, + 9AA915AD25CD452B00BD5E8B /* ScsiDisk.c */, + 9AA915AE25CD452B00BD5E8B /* ComponentName.c */, + 9AA915AF25CD452B00BD5E8B /* ScsiDisk.uni */, + 9AA915B025CD452B00BD5E8B /* ScsiDiskExtra.uni */, + 9AA915B125CD452B00BD5E8B /* ScsiDisk.h */, + ); + path = ScsiDiskDxe; + sourceTree = ""; + }; + 9AA915B225CD452B00BD5E8B /* ScsiBusDxe */ = { + isa = PBXGroup; + children = ( + 9AA915B325CD452B00BD5E8B /* ScsiBusExtra.uni */, + 9AA915B425CD452B00BD5E8B /* ScsiBus.c */, + 9AA915B525CD452B00BD5E8B /* ComponentName.c */, + 9AA915B625CD452B00BD5E8B /* ScsiBus.uni */, + 9AA915B725CD452B00BD5E8B /* ScsiBusDxe.inf */, + 9AA915B825CD452B00BD5E8B /* ScsiBus.h */, + ); + path = ScsiBusDxe; + sourceTree = ""; + }; + 9AA915B925CD452B00BD5E8B /* Ufs */ = { + isa = PBXGroup; + children = ( + 9AA915BA25CD452B00BD5E8B /* UfsBlockIoPei */, + 9AA915C525CD452B00BD5E8B /* UfsPassThruDxe */, + ); + path = Ufs; + sourceTree = ""; + }; + 9AA915BA25CD452B00BD5E8B /* UfsBlockIoPei */ = { + isa = PBXGroup; + children = ( + 9AA915BB25CD452B00BD5E8B /* UfsBlockIoPei.inf */, + 9AA915BC25CD452B00BD5E8B /* UfsHcMem.c */, + 9AA915BD25CD452B00BD5E8B /* UfsBlockIoPeiExtra.uni */, + 9AA915BE25CD452B00BD5E8B /* UfsHci.c */, + 9AA915BF25CD452B00BD5E8B /* UfsBlockIoPei.uni */, + 9AA915C025CD452B00BD5E8B /* UfsBlockIoPei.c */, + 9AA915C125CD452B00BD5E8B /* UfsHcMem.h */, + 9AA915C225CD452B00BD5E8B /* UfsHci.h */, + 9AA915C325CD452B00BD5E8B /* UfsBlockIoPei.h */, + 9AA915C425CD452B00BD5E8B /* DmaMem.c */, + ); + path = UfsBlockIoPei; + sourceTree = ""; + }; + 9AA915C525CD452B00BD5E8B /* UfsPassThruDxe */ = { + isa = PBXGroup; + children = ( + 9AA915C625CD452B00BD5E8B /* UfsPassThru.uni */, + 9AA915C725CD452B00BD5E8B /* UfsPassThruHci.c */, + 9AA915C825CD452B00BD5E8B /* UfsPassThru.h */, + 9AA915C925CD452B00BD5E8B /* ComponentName.c */, + 9AA915CA25CD452B00BD5E8B /* UfsDevConfigProtocol.c */, + 9AA915CB25CD452B00BD5E8B /* UfsPassThruHci.h */, + 9AA915CC25CD452B00BD5E8B /* UfsPassThruDxe.inf */, + 9AA915CD25CD452B00BD5E8B /* UfsPassThruExtra.uni */, + 9AA915CE25CD452B00BD5E8B /* UfsPassThru.c */, + ); + path = UfsPassThruDxe; + sourceTree = ""; + }; + 9AA915CF25CD452B00BD5E8B /* I2c */ = { + isa = PBXGroup; + children = ( + 9AA915D025CD452B00BD5E8B /* I2cDxe */, + ); + path = I2c; + sourceTree = ""; + }; + 9AA915D025CD452B00BD5E8B /* I2cDxe */ = { + isa = PBXGroup; + children = ( + 9AA915D125CD452B00BD5E8B /* I2cBusDxeExtra.uni */, + 9AA915D225CD452B00BD5E8B /* I2cDxeExtra.uni */, + 9AA915D325CD452B00BD5E8B /* I2cDxe.inf */, + 9AA915D425CD452B00BD5E8B /* I2cBus.c */, + 9AA915D525CD452B00BD5E8B /* I2cDxe.h */, + 9AA915D625CD452B00BD5E8B /* I2cDxe.uni */, + 9AA915D725CD452B00BD5E8B /* I2cHost.c */, + 9AA915D825CD452B00BD5E8B /* I2cBusDxe.uni */, + 9AA915D925CD452B00BD5E8B /* I2cBusDxe.inf */, + 9AA915DA25CD452B00BD5E8B /* I2cHostDxe.inf */, + 9AA915DB25CD452B00BD5E8B /* I2cHostDxeExtra.uni */, + 9AA915DC25CD452B00BD5E8B /* I2cDxe.c */, + 9AA915DD25CD452B00BD5E8B /* I2cHostDxe.uni */, + ); + path = I2cDxe; + sourceTree = ""; + }; + 9AA915DE25CD452B00BD5E8B /* Usb */ = { + isa = PBXGroup; + children = ( + 9AA915DF25CD452B00BD5E8B /* UsbMouseDxe */, + 9AA915E725CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe */, + 9AA915EF25CD452B00BD5E8B /* UsbBusDxe */, + 9AA915FE25CD452B00BD5E8B /* UsbKbDxe */, + 9AA9160725CD452B00BD5E8B /* UsbBusPei */, + 9AA9161225CD452B00BD5E8B /* UsbBotPei */, + 9AA9161E25CD452B00BD5E8B /* UsbMassStorageDxe */, + ); + path = Usb; + sourceTree = ""; + }; + 9AA915DF25CD452B00BD5E8B /* UsbMouseDxe */ = { + isa = PBXGroup; + children = ( + 9AA915E025CD452B00BD5E8B /* UsbMouseDxeExtra.uni */, + 9AA915E125CD452B00BD5E8B /* UsbMouse.h */, + 9AA915E225CD452B00BD5E8B /* ComponentName.c */, + 9AA915E325CD452B00BD5E8B /* UsbMouseDxe.inf */, + 9AA915E425CD452B00BD5E8B /* UsbMouse.c */, + 9AA915E525CD452B00BD5E8B /* MouseHid.c */, + 9AA915E625CD452B00BD5E8B /* UsbMouseDxe.uni */, + ); + path = UsbMouseDxe; + sourceTree = ""; + }; + 9AA915E725CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe */ = { + isa = PBXGroup; + children = ( + 9AA915E825CD452B00BD5E8B /* UsbMouseAbsolutePointerDxeExtra.uni */, + 9AA915E925CD452B00BD5E8B /* UsbMouseAbsolutePointer.c */, + 9AA915EA25CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe.inf */, + 9AA915EB25CD452B00BD5E8B /* ComponentName.c */, + 9AA915EC25CD452B00BD5E8B /* UsbMouseAbsolutePointerDxe.uni */, + 9AA915ED25CD452B00BD5E8B /* UsbMouseAbsolutePointer.h */, + 9AA915EE25CD452B00BD5E8B /* MouseHid.c */, + ); + path = UsbMouseAbsolutePointerDxe; + sourceTree = ""; + }; + 9AA915EF25CD452B00BD5E8B /* UsbBusDxe */ = { + isa = PBXGroup; + children = ( + 9AA915F025CD452B00BD5E8B /* UsbEnumer.h */, + 9AA915F125CD452B00BD5E8B /* UsbBusDxe.uni */, + 9AA915F225CD452B00BD5E8B /* UsbDesc.c */, + 9AA915F325CD452B00BD5E8B /* UsbBusDxe.inf */, + 9AA915F425CD452B00BD5E8B /* UsbHub.h */, + 9AA915F525CD452B00BD5E8B /* UsbBus.c */, + 9AA915F625CD452B00BD5E8B /* ComponentName.c */, + 9AA915F725CD452B00BD5E8B /* UsbUtility.h */, + 9AA915F825CD452B00BD5E8B /* UsbEnumer.c */, + 9AA915F925CD452B00BD5E8B /* UsbBusDxeExtra.uni */, + 9AA915FA25CD452B00BD5E8B /* UsbDesc.h */, + 9AA915FB25CD452B00BD5E8B /* UsbHub.c */, + 9AA915FC25CD452B00BD5E8B /* UsbUtility.c */, + 9AA915FD25CD452B00BD5E8B /* UsbBus.h */, + ); + path = UsbBusDxe; + sourceTree = ""; + }; + 9AA915FE25CD452B00BD5E8B /* UsbKbDxe */ = { + isa = PBXGroup; + children = ( + 9AA915FF25CD452B00BD5E8B /* UsbKbDxeExtra.uni */, + 9AA9160025CD452B00BD5E8B /* KeyBoard.c */, + 9AA9160125CD452B00BD5E8B /* UsbKbDxe.inf */, + 9AA9160225CD452B00BD5E8B /* EfiKey.h */, + 9AA9160325CD452B00BD5E8B /* UsbKbDxe.uni */, + 9AA9160425CD452B00BD5E8B /* ComponentName.c */, + 9AA9160525CD452B00BD5E8B /* KeyBoard.h */, + 9AA9160625CD452B00BD5E8B /* EfiKey.c */, + ); + path = UsbKbDxe; + sourceTree = ""; + }; + 9AA9160725CD452B00BD5E8B /* UsbBusPei */ = { + isa = PBXGroup; + children = ( + 9AA9160825CD452B00BD5E8B /* PeiUsbLib.c */, + 9AA9160925CD452B00BD5E8B /* HubPeim.h */, + 9AA9160A25CD452B00BD5E8B /* UsbBusPeiExtra.uni */, + 9AA9160B25CD452B00BD5E8B /* UsbPeim.h */, + 9AA9160C25CD452B00BD5E8B /* UsbIoPeim.c */, + 9AA9160D25CD452B00BD5E8B /* PeiUsbLib.h */, + 9AA9160E25CD452B00BD5E8B /* HubPeim.c */, + 9AA9160F25CD452B00BD5E8B /* UsbBusPei.uni */, + 9AA9161025CD452B00BD5E8B /* UsbPeim.c */, + 9AA9161125CD452B00BD5E8B /* UsbBusPei.inf */, + ); + path = UsbBusPei; + sourceTree = ""; + }; + 9AA9161225CD452B00BD5E8B /* UsbBotPei */ = { + isa = PBXGroup; + children = ( + 9AA9161325CD452B00BD5E8B /* PeiUsbLib.c */, + 9AA9161425CD452B00BD5E8B /* UsbBotPeiExtra.uni */, + 9AA9161525CD452B00BD5E8B /* UsbBotPeim.h */, + 9AA9161625CD452B00BD5E8B /* UsbPeim.h */, + 9AA9161725CD452B00BD5E8B /* BotPeim.c */, + 9AA9161825CD452B00BD5E8B /* UsbBotPei.inf */, + 9AA9161925CD452B00BD5E8B /* PeiUsbLib.h */, + 9AA9161A25CD452B00BD5E8B /* PeiAtapi.c */, + 9AA9161B25CD452B00BD5E8B /* UsbBotPei.uni */, + 9AA9161C25CD452B00BD5E8B /* UsbBotPeim.c */, + 9AA9161D25CD452B00BD5E8B /* BotPeim.h */, + ); + path = UsbBotPei; + sourceTree = ""; + }; + 9AA9161E25CD452B00BD5E8B /* UsbMassStorageDxe */ = { + isa = PBXGroup; + children = ( + 9AA9161F25CD452B00BD5E8B /* UsbMassDiskInfo.c */, + 9AA9162025CD452B00BD5E8B /* UsbMassCbi.h */, + 9AA9162125CD452B00BD5E8B /* UsbMassImpl.h */, + 9AA9162225CD452B00BD5E8B /* UsbMassBoot.c */, + 9AA9162325CD452B00BD5E8B /* UsbMassBot.h */, + 9AA9162425CD452B00BD5E8B /* UsbMassStorageDxe.uni */, + 9AA9162525CD452B00BD5E8B /* UsbMassStorageDxeExtra.uni */, + 9AA9162625CD452B00BD5E8B /* UsbMassStorageDxe.inf */, + 9AA9162725CD452B00BD5E8B /* ComponentName.c */, + 9AA9162825CD452B00BD5E8B /* UsbMassCbi.c */, + 9AA9162925CD452B00BD5E8B /* UsbMass.h */, + 9AA9162A25CD452B00BD5E8B /* UsbMassImpl.c */, + 9AA9162B25CD452B00BD5E8B /* UsbMassDiskInfo.h */, + 9AA9162C25CD452B00BD5E8B /* UsbMassBoot.h */, + 9AA9162D25CD452B00BD5E8B /* UsbMassBot.c */, + ); + path = UsbMassStorageDxe; + sourceTree = ""; + }; + 9AA9162E25CD452B00BD5E8B /* Ata */ = { + isa = PBXGroup; + children = ( + 9AA9162F25CD452B00BD5E8B /* AhciPei */, + 9AA9163F25CD452B00BD5E8B /* AtaAtapiPassThru */, + 9AA9164A25CD452C00BD5E8B /* AtaBusDxe */, + ); + path = Ata; + sourceTree = ""; + }; + 9AA9162F25CD452B00BD5E8B /* AhciPei */ = { + isa = PBXGroup; + children = ( + 9AA9163025CD452B00BD5E8B /* DevicePath.c */, + 9AA9163125CD452B00BD5E8B /* AhciPei.inf */, + 9AA9163225CD452B00BD5E8B /* AhciPei.h */, + 9AA9163325CD452B00BD5E8B /* AhciPeiBlockIo.c */, + 9AA9163425CD452B00BD5E8B /* AhciPei.uni */, + 9AA9163525CD452B00BD5E8B /* AhciPeiPassThru.c */, + 9AA9163625CD452B00BD5E8B /* AhciPeiExtra.uni */, + 9AA9163725CD452B00BD5E8B /* AhciPeiStorageSecurity.c */, + 9AA9163825CD452B00BD5E8B /* AhciPeiBlockIo.h */, + 9AA9163925CD452B00BD5E8B /* AhciPei.c */, + 9AA9163A25CD452B00BD5E8B /* AhciPeiPassThru.h */, + 9AA9163B25CD452B00BD5E8B /* DmaMem.c */, + 9AA9163C25CD452B00BD5E8B /* AhciPeiStorageSecurity.h */, + 9AA9163D25CD452B00BD5E8B /* AhciMode.c */, + 9AA9163E25CD452B00BD5E8B /* AhciPeiS3.c */, + ); + path = AhciPei; + sourceTree = ""; + }; + 9AA9163F25CD452B00BD5E8B /* AtaAtapiPassThru */ = { + isa = PBXGroup; + children = ( + 9AA9164025CD452B00BD5E8B /* AtaAtapiPassThru.h */, + 9AA9164125CD452B00BD5E8B /* AhciMode.h */, + 9AA9164225CD452B00BD5E8B /* ComponentName.c */, + 9AA9164325CD452C00BD5E8B /* AtaAtapiPassThru.inf */, + 9AA9164425CD452C00BD5E8B /* IdeMode.c */, + 9AA9164525CD452C00BD5E8B /* AtaAtapiPassThruDxeExtra.uni */, + 9AA9164625CD452C00BD5E8B /* AtaAtapiPassThru.c */, + 9AA9164725CD452C00BD5E8B /* AtaAtapiPassThruDxe.uni */, + 9AA9164825CD452C00BD5E8B /* IdeMode.h */, + 9AA9164925CD452C00BD5E8B /* AhciMode.c */, + ); + path = AtaAtapiPassThru; + sourceTree = ""; + }; + 9AA9164A25CD452C00BD5E8B /* AtaBusDxe */ = { + isa = PBXGroup; + children = ( + 9AA9164B25CD452C00BD5E8B /* AtaBusDxe.inf */, + 9AA9164C25CD452C00BD5E8B /* AtaPassThruExecute.c */, + 9AA9164D25CD452C00BD5E8B /* AtaBusDxe.uni */, + 9AA9164E25CD452C00BD5E8B /* ComponentName.c */, + 9AA9164F25CD452C00BD5E8B /* AtaBus.h */, + 9AA9165025CD452C00BD5E8B /* AtaBusDxeExtra.uni */, + 9AA9165125CD452C00BD5E8B /* AtaBus.c */, + ); + path = AtaBusDxe; + sourceTree = ""; + }; + 9AA9165225CD452C00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA9165325CD452C00BD5E8B /* DxeCapsuleLibFmp */, + 9AA9166025CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol */, + 9AA9166425CD452C00BD5E8B /* OemHookStatusCodeLibNull */, + 9AA9166825CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib */, + 9AA9166C25CD452C00BD5E8B /* BootLogoLib */, + 9AA9167025CD452C00BD5E8B /* LockBoxNullLib */, + 9AA9167425CD452C00BD5E8B /* FmpAuthenticationLibNull */, + 9AA9167825CD452C00BD5E8B /* PlatformVarCleanupLib */, + 9AA9168025CD452C00BD5E8B /* PeiIpmiLibIpmiPpi */, + 9AA9168425CD452C00BD5E8B /* LzmaCustomDecompressLib */, + 9AA916A025CD452C00BD5E8B /* DeviceManagerUiLib */, + 9AA916A725CD452C00BD5E8B /* BaseIpmiLibNull */, + 9AA916AB25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib */, + 9AA916AF25CD452C00BD5E8B /* UefiBootManagerLib */, + 9AA916BB25CD452C00BD5E8B /* DxeNetLib */, + 9AA916C025CD452C00BD5E8B /* FileExplorerLib */, + 9AA916C825CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol */, + 9AA916CC25CD452C00BD5E8B /* VarCheckLib */, + 9AA916D025CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics */, + 9AA916D425CD452C00BD5E8B /* AuthVariableLibNull */, + 9AA916D825CD452C00BD5E8B /* SmmReportStatusCodeLib */, + 9AA916DC25CD452C00BD5E8B /* PeiReportStatusCodeLib */, + 9AA916E025CD452C00BD5E8B /* PeiPerformanceLib */, + 9AA916E425CD452C00BD5E8B /* SmmLockBoxLib */, + 9AA916EF25CD452C00BD5E8B /* DxePerformanceLib */, + 9AA916F325CD452C00BD5E8B /* SmmMemoryAllocationProfileLib */, + 9AA916F825CD452C00BD5E8B /* PlatformBootManagerLibNull */, + 9AA916FC25CD452C00BD5E8B /* DxeFileExplorerProtocol */, + 9AA9170025CD452C00BD5E8B /* PiDxeS3BootScriptLib */, + 9AA9170725CD452C00BD5E8B /* DxeHttpLib */, + 9AA9170C25CD452C00BD5E8B /* BasePlatformHookLibNull */, + 9AA9171025CD452C00BD5E8B /* BaseResetSystemLibNull */, + 9AA9171425CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib */, + 9AA9171725CD452C00BD5E8B /* FrameBufferBltLib */, + 9AA9171A25CD452C00BD5E8B /* PciHostBridgeLibNull */, + 9AA9171E25CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode */, + 9AA9172225CD452C00BD5E8B /* TpmMeasurementLibNull */, + 9AA9172625CD452C00BD5E8B /* PeiDebugPrintHobLib */, + 9AA9172A25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib */, + 9AA9172E25CD452C00BD5E8B /* UefiSortLib */, + 9AA9173225CD452C00BD5E8B /* VarCheckHiiLib */, + 9AA9173C25CD452C00BD5E8B /* BaseMemoryAllocationLibNull */, + 9AA9174025CD452C00BD5E8B /* DisplayUpdateProgressLibText */, + 9AA9174425CD452C00BD5E8B /* CustomizedDisplayLib */, + 9AA9174C25CD452C00BD5E8B /* SmmCorePlatformHookLibNull */, + 9AA9175025CD452C00BD5E8B /* DebugAgentLibNull */, + 9AA9175425CD452C00BD5E8B /* UefiHiiServicesLib */, + 9AA9175825CD452C00BD5E8B /* BootMaintenanceManagerUiLib */, + 9AA9176A25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi */, + 9AA9176E25CD452C00BD5E8B /* BaseSerialPortLib16550 */, + 9AA9177225CD452C00BD5E8B /* BaseHobLibNull */, + 9AA9177625CD452C00BD5E8B /* SmmPerformanceLib */, + 9AA9177A25CD452C00BD5E8B /* DxeCapsuleLibNull */, + 9AA9177E25CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib */, + 9AA9178225CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib */, + 9AA9178625CD452C00BD5E8B /* BrotliCustomDecompressLib */, + 9AA917A725CD452C00BD5E8B /* ResetUtilityLib */, + 9AA917AA25CD452C00BD5E8B /* SmmCorePerformanceLib */, + 9AA917AF25CD452C00BD5E8B /* UefiMemoryAllocationProfileLib */, + 9AA917B425CD452C00BD5E8B /* PeiDebugLibDebugPpi */, + 9AA917B725CD452C00BD5E8B /* SmmSmiHandlerProfileLib */, + 9AA917BB25CD452C00BD5E8B /* DxeReportStatusCodeLib */, + 9AA917BF25CD452C00BD5E8B /* VarCheckUefiLib */, + 9AA917C325CD452C00BD5E8B /* RuntimeResetSystemLib */, + 9AA917C725CD452C00BD5E8B /* VarCheckPcdLib */, + 9AA917CC25CD452C00BD5E8B /* DxeSecurityManagementLib */, + 9AA917D025CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib */, + 9AA917DA25CD452C00BD5E8B /* DxePrintLibPrint2Protocol */, + 9AA917DE25CD452C00BD5E8B /* DxeCoreMemoryAllocationLib */, + 9AA917E825CD452C00BD5E8B /* BootManagerUiLib */, + 9AA917EF25CD452C00BD5E8B /* BaseBmpSupportLib */, + 9AA917F325CD452C00BD5E8B /* CpuExceptionHandlerLibNull */, + 9AA917F725CD452C00BD5E8B /* UefiHiiLib */, + 9AA917FE25CD452C00BD5E8B /* BaseSortLib */, + 9AA9180225CD452C00BD5E8B /* DxeCorePerformanceLib */, + 9AA9180725CD452C00BD5E8B /* DxeResetSystemLib */, + 9AA9180B25CD452C00BD5E8B /* PeiResetSystemLib */, + ); + path = Library; + sourceTree = ""; + }; + 9AA9165325CD452C00BD5E8B /* DxeCapsuleLibFmp */ = { + isa = PBXGroup; + children = ( + 9AA9165425CD452C00BD5E8B /* DxeCapsuleRuntime.c */, + 9AA9165525CD452C00BD5E8B /* CapsuleOnDisk.c */, + 9AA9165625CD452C00BD5E8B /* DxeCapsuleProcessLibNull.c */, + 9AA9165725CD452C00BD5E8B /* DxeCapsuleReportLibNull.c */, + 9AA9165825CD452C00BD5E8B /* DxeCapsuleProcessLib.c */, + 9AA9165925CD452C00BD5E8B /* DxeCapsuleReportLib.c */, + 9AA9165A25CD452C00BD5E8B /* CapsuleOnDisk.h */, + 9AA9165B25CD452C00BD5E8B /* DxeRuntimeCapsuleLib.inf */, + 9AA9165C25CD452C00BD5E8B /* DxeCapsuleLib.uni */, + 9AA9165D25CD452C00BD5E8B /* DxeCapsuleLib.c */, + 9AA9165E25CD452C00BD5E8B /* DxeRuntimeCapsuleLib.uni */, + 9AA9165F25CD452C00BD5E8B /* DxeCapsuleLib.inf */, + ); + path = DxeCapsuleLibFmp; + sourceTree = ""; + }; + 9AA9166025CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol */ = { + isa = PBXGroup; + children = ( + 9AA9166125CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.c */, + 9AA9166225CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.inf */, + 9AA9166325CD452C00BD5E8B /* SmmIpmiLibSmmIpmiProtocol.uni */, + ); + path = SmmIpmiLibSmmIpmiProtocol; + sourceTree = ""; + }; + 9AA9166425CD452C00BD5E8B /* OemHookStatusCodeLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9166525CD452C00BD5E8B /* OemHookStatusCodeLibNull.inf */, + 9AA9166625CD452C00BD5E8B /* OemHookStatusCodeLibNull.c */, + 9AA9166725CD452C00BD5E8B /* OemHookStatusCodeLibNull.uni */, + ); + path = OemHookStatusCodeLibNull; + sourceTree = ""; + }; + 9AA9166825CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib */ = { + isa = PBXGroup; + children = ( + 9AA9166925CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.c */, + 9AA9166A25CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.inf */, + 9AA9166B25CD452C00BD5E8B /* DxeCrc32GuidedSectionExtractLib.uni */, + ); + path = DxeCrc32GuidedSectionExtractLib; + sourceTree = ""; + }; + 9AA9166C25CD452C00BD5E8B /* BootLogoLib */ = { + isa = PBXGroup; + children = ( + 9AA9166D25CD452C00BD5E8B /* BootLogoLib.c */, + 9AA9166E25CD452C00BD5E8B /* BootLogoLib.inf */, + 9AA9166F25CD452C00BD5E8B /* BootLogoLib.uni */, + ); + path = BootLogoLib; + sourceTree = ""; + }; + 9AA9167025CD452C00BD5E8B /* LockBoxNullLib */ = { + isa = PBXGroup; + children = ( + 9AA9167125CD452C00BD5E8B /* LockBoxNullLib.inf */, + 9AA9167225CD452C00BD5E8B /* LockBoxNullLib.c */, + 9AA9167325CD452C00BD5E8B /* LockBoxNullLib.uni */, + ); + path = LockBoxNullLib; + sourceTree = ""; + }; + 9AA9167425CD452C00BD5E8B /* FmpAuthenticationLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9167525CD452C00BD5E8B /* FmpAuthenticationLibNull.c */, + 9AA9167625CD452C00BD5E8B /* FmpAuthenticationLibNull.inf */, + 9AA9167725CD452C00BD5E8B /* FmpAuthenticationLibNull.uni */, + ); + path = FmpAuthenticationLibNull; + sourceTree = ""; + }; + 9AA9167825CD452C00BD5E8B /* PlatformVarCleanupLib */ = { + isa = PBXGroup; + children = ( + 9AA9167925CD452C00BD5E8B /* PlatVarCleanup.vfr */, + 9AA9167A25CD452C00BD5E8B /* PlatVarCleanupLib.c */, + 9AA9167B25CD452C00BD5E8B /* PlatVarCleanup.h */, + 9AA9167C25CD452C00BD5E8B /* PlatformVarCleanupLib.inf */, + 9AA9167D25CD452C00BD5E8B /* PlatVarCleanupHii.h */, + 9AA9167E25CD452C00BD5E8B /* VfrStrings.uni */, + 9AA9167F25CD452C00BD5E8B /* PlatformVarCleanupLib.uni */, + ); + path = PlatformVarCleanupLib; + sourceTree = ""; + }; + 9AA9168025CD452C00BD5E8B /* PeiIpmiLibIpmiPpi */ = { + isa = PBXGroup; + children = ( + 9AA9168125CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.c */, + 9AA9168225CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.inf */, + 9AA9168325CD452C00BD5E8B /* PeiIpmiLibIpmiPpi.uni */, + ); + path = PeiIpmiLibIpmiPpi; + sourceTree = ""; + }; + 9AA9168425CD452C00BD5E8B /* LzmaCustomDecompressLib */ = { + isa = PBXGroup; + children = ( + 9AA9168525CD452C00BD5E8B /* LzmaArchCustomDecompressLib.inf */, + 9AA9168625CD452C00BD5E8B /* F86GuidedSectionExtraction.c */, + 9AA9168725CD452C00BD5E8B /* LzmaCustomDecompressLib.inf */, + 9AA9168825CD452C00BD5E8B /* Sdk */, + 9AA9169925CD452C00BD5E8B /* LzmaDecompressLibInternal.h */, + 9AA9169A25CD452C00BD5E8B /* LZMA-SDK-README.txt */, + 9AA9169B25CD452C00BD5E8B /* LzmaArchDecompressLib.uni */, + 9AA9169C25CD452C00BD5E8B /* LzmaDecompress.c */, + 9AA9169D25CD452C00BD5E8B /* LzmaDecompressLib.uni */, + 9AA9169E25CD452C00BD5E8B /* GuidedSectionExtraction.c */, + 9AA9169F25CD452C00BD5E8B /* UefiLzma.h */, + ); + path = LzmaCustomDecompressLib; + sourceTree = ""; + }; + 9AA9168825CD452C00BD5E8B /* Sdk */ = { + isa = PBXGroup; + children = ( + 9AA9168925CD452C00BD5E8B /* DOC */, + 9AA9168C25CD452C00BD5E8B /* C */, + ); + path = Sdk; + sourceTree = ""; + }; + 9AA9168925CD452C00BD5E8B /* DOC */ = { + isa = PBXGroup; + children = ( + 9AA9168A25CD452C00BD5E8B /* lzma-sdk.txt */, + 9AA9168B25CD452C00BD5E8B /* lzma-history.txt */, + ); + path = DOC; + sourceTree = ""; + }; + 9AA9168C25CD452C00BD5E8B /* C */ = { + isa = PBXGroup; + children = ( + 9AA9168D25CD452C00BD5E8B /* LzHash.h */, + 9AA9168E25CD452C00BD5E8B /* 7zTypes.h */, + 9AA9168F25CD452C00BD5E8B /* Compiler.h */, + 9AA9169025CD452C00BD5E8B /* LzFind.c */, + 9AA9169125CD452C00BD5E8B /* Precomp.h */, + 9AA9169225CD452C00BD5E8B /* CpuArch.h */, + 9AA9169325CD452C00BD5E8B /* Bra86.c */, + 9AA9169425CD452C00BD5E8B /* LzmaDec.c */, + 9AA9169525CD452C00BD5E8B /* LzFind.h */, + 9AA9169625CD452C00BD5E8B /* 7zVersion.h */, + 9AA9169725CD452C00BD5E8B /* Bra.h */, + 9AA9169825CD452C00BD5E8B /* LzmaDec.h */, + ); + path = C; + sourceTree = ""; + }; + 9AA916A025CD452C00BD5E8B /* DeviceManagerUiLib */ = { + isa = PBXGroup; + children = ( + 9AA916A125CD452C00BD5E8B /* DeviceManagerUiLib.uni */, + 9AA916A225CD452C00BD5E8B /* DeviceManagerStrings.uni */, + 9AA916A325CD452C00BD5E8B /* DeviceManagerUiLib.inf */, + 9AA916A425CD452C00BD5E8B /* DeviceManager.h */, + 9AA916A525CD452C00BD5E8B /* DeviceManagerVfr.Vfr */, + 9AA916A625CD452C00BD5E8B /* DeviceManager.c */, + ); + path = DeviceManagerUiLib; + sourceTree = ""; + }; + 9AA916A725CD452C00BD5E8B /* BaseIpmiLibNull */ = { + isa = PBXGroup; + children = ( + 9AA916A825CD452C00BD5E8B /* BaseIpmiLibNull.c */, + 9AA916A925CD452C00BD5E8B /* BaseIpmiLibNull.inf */, + 9AA916AA25CD452C00BD5E8B /* BaseIpmiLibNull.uni */, + ); + path = BaseIpmiLibNull; + sourceTree = ""; + }; + 9AA916AB25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib */ = { + isa = PBXGroup; + children = ( + 9AA916AC25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.uni */, + 9AA916AD25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.inf */, + 9AA916AE25CD452C00BD5E8B /* PeiCrc32GuidedSectionExtractLib.c */, + ); + path = PeiCrc32GuidedSectionExtractLib; + sourceTree = ""; + }; + 9AA916AF25CD452C00BD5E8B /* UefiBootManagerLib */ = { + isa = PBXGroup; + children = ( + 9AA916B025CD452C00BD5E8B /* BmConnect.c */, + 9AA916B125CD452C00BD5E8B /* BmConsole.c */, + 9AA916B225CD452C00BD5E8B /* BmHotkey.c */, + 9AA916B325CD452C00BD5E8B /* InternalBm.h */, + 9AA916B425CD452C00BD5E8B /* UefiBootManagerLib.inf */, + 9AA916B525CD452C00BD5E8B /* BmLoadOption.c */, + 9AA916B625CD452C00BD5E8B /* BmBootDescription.c */, + 9AA916B725CD452C00BD5E8B /* UefiBootManagerLib.uni */, + 9AA916B825CD452C00BD5E8B /* BmDriverHealth.c */, + 9AA916B925CD452C00BD5E8B /* BmBoot.c */, + 9AA916BA25CD452C00BD5E8B /* BmMisc.c */, + ); + path = UefiBootManagerLib; + sourceTree = ""; + }; + 9AA916BB25CD452C00BD5E8B /* DxeNetLib */ = { + isa = PBXGroup; + children = ( + 9AA916BC25CD452C00BD5E8B /* DxeNetLib.inf */, + 9AA916BD25CD452C00BD5E8B /* DxeNetLib.uni */, + 9AA916BE25CD452C00BD5E8B /* NetBuffer.c */, + 9AA916BF25CD452C00BD5E8B /* DxeNetLib.c */, + ); + path = DxeNetLib; + sourceTree = ""; + }; + 9AA916C025CD452C00BD5E8B /* FileExplorerLib */ = { + isa = PBXGroup; + children = ( + 9AA916C125CD452C00BD5E8B /* FileExplorer.h */, + 9AA916C225CD452C00BD5E8B /* FileExplorerString.uni */, + 9AA916C325CD452C00BD5E8B /* FormGuid.h */, + 9AA916C425CD452C00BD5E8B /* FileExplorer.c */, + 9AA916C525CD452C00BD5E8B /* FileExplorerVfr.vfr */, + 9AA916C625CD452C00BD5E8B /* FileExplorerLib.inf */, + 9AA916C725CD452C00BD5E8B /* FileExplorerLib.uni */, + ); + path = FileExplorerLib; + sourceTree = ""; + }; + 9AA916C825CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol */ = { + isa = PBXGroup; + children = ( + 9AA916C925CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.uni */, + 9AA916CA25CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.inf */, + 9AA916CB25CD452C00BD5E8B /* DxeIpmiLibIpmiProtocol.c */, + ); + path = DxeIpmiLibIpmiProtocol; + sourceTree = ""; + }; + 9AA916CC25CD452C00BD5E8B /* VarCheckLib */ = { + isa = PBXGroup; + children = ( + 9AA916CD25CD452C00BD5E8B /* VarCheckLib.c */, + 9AA916CE25CD452C00BD5E8B /* VarCheckLib.inf */, + 9AA916CF25CD452C00BD5E8B /* VarCheckLib.uni */, + ); + path = VarCheckLib; + sourceTree = ""; + }; + 9AA916D025CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics */ = { + isa = PBXGroup; + children = ( + 9AA916D125CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.uni */, + 9AA916D225CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.inf */, + 9AA916D325CD452C00BD5E8B /* DisplayUpdateProgressLibGraphics.c */, + ); + path = DisplayUpdateProgressLibGraphics; + sourceTree = ""; + }; + 9AA916D425CD452C00BD5E8B /* AuthVariableLibNull */ = { + isa = PBXGroup; + children = ( + 9AA916D525CD452C00BD5E8B /* AuthVariableLibNull.uni */, + 9AA916D625CD452C00BD5E8B /* AuthVariableLibNull.inf */, + 9AA916D725CD452C00BD5E8B /* AuthVariableLibNull.c */, + ); + path = AuthVariableLibNull; + sourceTree = ""; + }; + 9AA916D825CD452C00BD5E8B /* SmmReportStatusCodeLib */ = { + isa = PBXGroup; + children = ( + 9AA916D925CD452C00BD5E8B /* SmmReportStatusCodeLib.uni */, + 9AA916DA25CD452C00BD5E8B /* ReportStatusCodeLib.c */, + 9AA916DB25CD452C00BD5E8B /* SmmReportStatusCodeLib.inf */, + ); + path = SmmReportStatusCodeLib; + sourceTree = ""; + }; + 9AA916DC25CD452C00BD5E8B /* PeiReportStatusCodeLib */ = { + isa = PBXGroup; + children = ( + 9AA916DD25CD452C00BD5E8B /* PeiReportStatusCodeLib.uni */, + 9AA916DE25CD452C00BD5E8B /* PeiReportStatusCodeLib.inf */, + 9AA916DF25CD452C00BD5E8B /* ReportStatusCodeLib.c */, + ); + path = PeiReportStatusCodeLib; + sourceTree = ""; + }; + 9AA916E025CD452C00BD5E8B /* PeiPerformanceLib */ = { + isa = PBXGroup; + children = ( + 9AA916E125CD452C00BD5E8B /* PeiPerformanceLib.uni */, + 9AA916E225CD452C00BD5E8B /* PeiPerformanceLib.c */, + 9AA916E325CD452C00BD5E8B /* PeiPerformanceLib.inf */, + ); + path = PeiPerformanceLib; + sourceTree = ""; + }; + 9AA916E425CD452C00BD5E8B /* SmmLockBoxLib */ = { + isa = PBXGroup; + children = ( + 9AA916E525CD452C00BD5E8B /* SmmLockBoxSmmLib.c */, + 9AA916E625CD452C00BD5E8B /* SmmLockBoxPeiLib.uni */, + 9AA916E725CD452C00BD5E8B /* SmmLockBoxDxeLib.uni */, + 9AA916E825CD452C00BD5E8B /* SmmLockBoxPeiLib.inf */, + 9AA916E925CD452C00BD5E8B /* SmmLockBoxDxeLib.inf */, + 9AA916EA25CD452C00BD5E8B /* SmmLockBoxSmmLib.inf */, + 9AA916EB25CD452C00BD5E8B /* SmmLockBoxSmmLib.uni */, + 9AA916EC25CD452C00BD5E8B /* SmmLockBoxPeiLib.c */, + 9AA916ED25CD452C00BD5E8B /* SmmLockBoxLibPrivate.h */, + 9AA916EE25CD452C00BD5E8B /* SmmLockBoxDxeLib.c */, + ); + path = SmmLockBoxLib; + sourceTree = ""; + }; + 9AA916EF25CD452C00BD5E8B /* DxePerformanceLib */ = { + isa = PBXGroup; + children = ( + 9AA916F025CD452C00BD5E8B /* DxePerformanceLib.c */, + 9AA916F125CD452C00BD5E8B /* DxePerformanceLib.uni */, + 9AA916F225CD452C00BD5E8B /* DxePerformanceLib.inf */, + ); + path = DxePerformanceLib; + sourceTree = ""; + }; + 9AA916F325CD452C00BD5E8B /* SmmMemoryAllocationProfileLib */ = { + isa = PBXGroup; + children = ( + 9AA916F425CD452C00BD5E8B /* SmmMemoryAllocationProfileLib.uni */, + 9AA916F525CD452C00BD5E8B /* MemoryAllocationLib.c */, + 9AA916F625CD452C00BD5E8B /* SmmMemoryAllocationProfileLib.inf */, + 9AA916F725CD452C00BD5E8B /* SmmMemoryProfileLib.c */, + ); + path = SmmMemoryAllocationProfileLib; + sourceTree = ""; + }; + 9AA916F825CD452C00BD5E8B /* PlatformBootManagerLibNull */ = { + isa = PBXGroup; + children = ( + 9AA916F925CD452C00BD5E8B /* PlatformBootManager.c */, + 9AA916FA25CD452C00BD5E8B /* PlatformBootManagerLibNull.inf */, + 9AA916FB25CD452C00BD5E8B /* PlatformBootManagerLibNull.uni */, + ); + path = PlatformBootManagerLibNull; + sourceTree = ""; + }; + 9AA916FC25CD452C00BD5E8B /* DxeFileExplorerProtocol */ = { + isa = PBXGroup; + children = ( + 9AA916FD25CD452C00BD5E8B /* DxeFileExplorerProtocol.inf */, + 9AA916FE25CD452C00BD5E8B /* DxeFileExplorerProtocol.uni */, + 9AA916FF25CD452C00BD5E8B /* DxeFileExplorerProtocol.c */, + ); + path = DxeFileExplorerProtocol; + sourceTree = ""; + }; + 9AA9170025CD452C00BD5E8B /* PiDxeS3BootScriptLib */ = { + isa = PBXGroup; + children = ( + 9AA9170125CD452C00BD5E8B /* InternalBootScriptLib.h */, + 9AA9170225CD452C00BD5E8B /* BootScriptInternalFormat.h */, + 9AA9170325CD452C00BD5E8B /* BootScriptSave.c */, + 9AA9170425CD452C00BD5E8B /* BootScriptExecute.c */, + 9AA9170525CD452C00BD5E8B /* DxeS3BootScriptLib.inf */, + 9AA9170625CD452C00BD5E8B /* DxeS3BootScriptLib.uni */, + ); + path = PiDxeS3BootScriptLib; + sourceTree = ""; + }; + 9AA9170725CD452C00BD5E8B /* DxeHttpLib */ = { + isa = PBXGroup; + children = ( + 9AA9170825CD452C00BD5E8B /* DxeHttpLib.c */, + 9AA9170925CD452C00BD5E8B /* DxeHttpLib.inf */, + 9AA9170A25CD452C00BD5E8B /* DxeHttpLib.uni */, + 9AA9170B25CD452C00BD5E8B /* DxeHttpLib.h */, + ); + path = DxeHttpLib; + sourceTree = ""; + }; + 9AA9170C25CD452C00BD5E8B /* BasePlatformHookLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9170D25CD452C00BD5E8B /* BasePlatformHookLibNull.inf */, + 9AA9170E25CD452C00BD5E8B /* BasePlatformHookLibNull.uni */, + 9AA9170F25CD452C00BD5E8B /* BasePlatformHookLibNull.c */, + ); + path = BasePlatformHookLibNull; + sourceTree = ""; + }; + 9AA9171025CD452C00BD5E8B /* BaseResetSystemLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9171125CD452C00BD5E8B /* BaseResetSystemLibNull.uni */, + 9AA9171225CD452C00BD5E8B /* BaseResetSystemLibNull.inf */, + 9AA9171325CD452C00BD5E8B /* BaseResetSystemLibNull.c */, + ); + path = BaseResetSystemLibNull; + sourceTree = ""; + }; + 9AA9171425CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib */ = { + isa = PBXGroup; + children = ( + 9AA9171525CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib.c */, + 9AA9171625CD452C00BD5E8B /* NonDiscoverableDeviceRegistrationLib.inf */, + ); + path = NonDiscoverableDeviceRegistrationLib; + sourceTree = ""; + }; + 9AA9171725CD452C00BD5E8B /* FrameBufferBltLib */ = { + isa = PBXGroup; + children = ( + 9AA9171825CD452C00BD5E8B /* FrameBufferBltLib.c */, + 9AA9171925CD452C00BD5E8B /* FrameBufferBltLib.inf */, + ); + path = FrameBufferBltLib; + sourceTree = ""; + }; + 9AA9171A25CD452C00BD5E8B /* PciHostBridgeLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9171B25CD452C00BD5E8B /* PciHostBridgeLibNull.uni */, + 9AA9171C25CD452C00BD5E8B /* PciHostBridgeLibNull.inf */, + 9AA9171D25CD452C00BD5E8B /* PciHostBridgeLibNull.c */, + ); + path = PciHostBridgeLibNull; + sourceTree = ""; + }; + 9AA9171E25CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode */ = { + isa = PBXGroup; + children = ( + 9AA9171F25CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode.uni */, + 9AA9172025CD452C00BD5E8B /* DebugLib.c */, + 9AA9172125CD452C00BD5E8B /* PeiDxeDebugLibReportStatusCode.inf */, + ); + path = PeiDxeDebugLibReportStatusCode; + sourceTree = ""; + }; + 9AA9172225CD452C00BD5E8B /* TpmMeasurementLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9172325CD452C00BD5E8B /* TpmMeasurementLibNull.uni */, + 9AA9172425CD452C00BD5E8B /* TpmMeasurementLibNull.c */, + 9AA9172525CD452C00BD5E8B /* TpmMeasurementLibNull.inf */, + ); + path = TpmMeasurementLibNull; + sourceTree = ""; + }; + 9AA9172625CD452C00BD5E8B /* PeiDebugPrintHobLib */ = { + isa = PBXGroup; + children = ( + 9AA9172725CD452C00BD5E8B /* PeiDebugPrintHobLib.uni */, + 9AA9172825CD452C00BD5E8B /* PeiDebugPrintHobLib.c */, + 9AA9172925CD452C00BD5E8B /* PeiDebugPrintHobLib.inf */, + ); + path = PeiDebugPrintHobLib; + sourceTree = ""; + }; + 9AA9172A25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib */ = { + isa = PBXGroup; + children = ( + 9AA9172B25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib.inf */, + 9AA9172C25CD452C00BD5E8B /* RuntimeDxeReportStatusCodeLib.uni */, + 9AA9172D25CD452C00BD5E8B /* ReportStatusCodeLib.c */, + ); + path = RuntimeDxeReportStatusCodeLib; + sourceTree = ""; + }; + 9AA9172E25CD452C00BD5E8B /* UefiSortLib */ = { + isa = PBXGroup; + children = ( + 9AA9172F25CD452C00BD5E8B /* UefiSortLib.inf */, + 9AA9173025CD452C00BD5E8B /* UefiSortLib.c */, + 9AA9173125CD452C00BD5E8B /* UefiSortLib.uni */, + ); + path = UefiSortLib; + sourceTree = ""; + }; + 9AA9173225CD452C00BD5E8B /* VarCheckHiiLib */ = { + isa = PBXGroup; + children = ( + 9AA9173325CD452C00BD5E8B /* VarCheckHiiGen.c */, + 9AA9173425CD452C00BD5E8B /* VarCheckHii.h */, + 9AA9173525CD452C00BD5E8B /* VarCheckHiiLib.uni */, + 9AA9173625CD452C00BD5E8B /* VarCheckHiiGenFromFv.c */, + 9AA9173725CD452C00BD5E8B /* VarCheckHiiLib.inf */, + 9AA9173825CD452C00BD5E8B /* InternalVarCheckStructure.h */, + 9AA9173925CD452C00BD5E8B /* VarCheckHiiGenFromHii.c */, + 9AA9173A25CD452C00BD5E8B /* VarCheckHiiLibNullClass.c */, + 9AA9173B25CD452C00BD5E8B /* VarCheckHiiGen.h */, + ); + path = VarCheckHiiLib; + sourceTree = ""; + }; + 9AA9173C25CD452C00BD5E8B /* BaseMemoryAllocationLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9173D25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.c */, + 9AA9173E25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.inf */, + 9AA9173F25CD452C00BD5E8B /* BaseMemoryAllocationLibNull.uni */, + ); + path = BaseMemoryAllocationLibNull; + sourceTree = ""; + }; + 9AA9174025CD452C00BD5E8B /* DisplayUpdateProgressLibText */ = { + isa = PBXGroup; + children = ( + 9AA9174125CD452C00BD5E8B /* DisplayUpdateProgressLibText.c */, + 9AA9174225CD452C00BD5E8B /* DisplayUpdateProgressLibText.inf */, + 9AA9174325CD452C00BD5E8B /* DisplayUpdateProgressLibText.uni */, + ); + path = DisplayUpdateProgressLibText; + sourceTree = ""; + }; + 9AA9174425CD452C00BD5E8B /* CustomizedDisplayLib */ = { + isa = PBXGroup; + children = ( + 9AA9174525CD452C00BD5E8B /* CustomizedDisplayLibModStrs.uni */, + 9AA9174625CD452C00BD5E8B /* Colors.h */, + 9AA9174725CD452C00BD5E8B /* CustomizedDisplayLibInternal.h */, + 9AA9174825CD452C00BD5E8B /* CustomizedDisplayLib.inf */, + 9AA9174925CD452C00BD5E8B /* CustomizedDisplayLib.uni */, + 9AA9174A25CD452C00BD5E8B /* CustomizedDisplayLibInternal.c */, + 9AA9174B25CD452C00BD5E8B /* CustomizedDisplayLib.c */, + ); + path = CustomizedDisplayLib; + sourceTree = ""; + }; + 9AA9174C25CD452C00BD5E8B /* SmmCorePlatformHookLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9174D25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.inf */, + 9AA9174E25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.uni */, + 9AA9174F25CD452C00BD5E8B /* SmmCorePlatformHookLibNull.c */, + ); + path = SmmCorePlatformHookLibNull; + sourceTree = ""; + }; + 9AA9175025CD452C00BD5E8B /* DebugAgentLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9175125CD452C00BD5E8B /* DebugAgentLibNull.uni */, + 9AA9175225CD452C00BD5E8B /* DebugAgentLibNull.inf */, + 9AA9175325CD452C00BD5E8B /* DebugAgentLibNull.c */, + ); + path = DebugAgentLibNull; + sourceTree = ""; + }; + 9AA9175425CD452C00BD5E8B /* UefiHiiServicesLib */ = { + isa = PBXGroup; + children = ( + 9AA9175525CD452C00BD5E8B /* UefiHiiServicesLib.inf */, + 9AA9175625CD452C00BD5E8B /* UefiHiiServicesLib.uni */, + 9AA9175725CD452C00BD5E8B /* UefiHiiServicesLib.c */, + ); + path = UefiHiiServicesLib; + sourceTree = ""; + }; + 9AA9175825CD452C00BD5E8B /* BootMaintenanceManagerUiLib */ = { + isa = PBXGroup; + children = ( + 9AA9175925CD452C00BD5E8B /* BmLib.c */, + 9AA9175A25CD452C00BD5E8B /* BootMaintenanceManagerUiLib.inf */, + 9AA9175B25CD452C00BD5E8B /* BootOption.c */, + 9AA9175C25CD452C00BD5E8B /* BootMaintenanceManagerUiLib.uni */, + 9AA9175D25CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUiSupport.c */, + 9AA9175E25CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUi.c */, + 9AA9175F25CD452C00BD5E8B /* BootMaintenanceManager.vfr */, + 9AA9176025CD452C00BD5E8B /* BootMaintenanceManagerStrings.uni */, + 9AA9176125CD452C00BD5E8B /* BootMaintenanceManager.h */, + 9AA9176225CD452C00BD5E8B /* BootMaintenance.c */, + 9AA9176325CD452C00BD5E8B /* FormGuid.h */, + 9AA9176425CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUiSupport.h */, + 9AA9176525CD452C00BD5E8B /* UpdatePage.c */, + 9AA9176625CD452C00BD5E8B /* Data.c */, + 9AA9176725CD452C00BD5E8B /* BootMaintenanceManagerCustomizedUi.h */, + 9AA9176825CD452C00BD5E8B /* ConsoleOption.c */, + 9AA9176925CD452C00BD5E8B /* Variable.c */, + ); + path = BootMaintenanceManagerUiLib; + sourceTree = ""; + }; + 9AA9176A25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi */ = { + isa = PBXGroup; + children = ( + 9AA9176B25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.inf */, + 9AA9176C25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.uni */, + 9AA9176D25CD452C00BD5E8B /* PlatformHookLibSerialPortPpi.c */, + ); + path = PlatformHookLibSerialPortPpi; + sourceTree = ""; + }; + 9AA9176E25CD452C00BD5E8B /* BaseSerialPortLib16550 */ = { + isa = PBXGroup; + children = ( + 9AA9176F25CD452C00BD5E8B /* BaseSerialPortLib16550.c */, + 9AA9177025CD452C00BD5E8B /* BaseSerialPortLib16550.inf */, + 9AA9177125CD452C00BD5E8B /* BaseSerialPortLib16550.uni */, + ); + path = BaseSerialPortLib16550; + sourceTree = ""; + }; + 9AA9177225CD452C00BD5E8B /* BaseHobLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9177325CD452C00BD5E8B /* BaseHobLibNull.c */, + 9AA9177425CD452C00BD5E8B /* BaseHobLibNull.inf */, + 9AA9177525CD452C00BD5E8B /* BaseHobLibNull.uni */, + ); + path = BaseHobLibNull; + sourceTree = ""; + }; + 9AA9177625CD452C00BD5E8B /* SmmPerformanceLib */ = { + isa = PBXGroup; + children = ( + 9AA9177725CD452C00BD5E8B /* SmmPerformanceLib.c */, + 9AA9177825CD452C00BD5E8B /* SmmPerformanceLib.inf */, + 9AA9177925CD452C00BD5E8B /* SmmPerformanceLib.uni */, + ); + path = SmmPerformanceLib; + sourceTree = ""; + }; + 9AA9177A25CD452C00BD5E8B /* DxeCapsuleLibNull */ = { + isa = PBXGroup; + children = ( + 9AA9177B25CD452C00BD5E8B /* DxeCapsuleLibNull.inf */, + 9AA9177C25CD452C00BD5E8B /* DxeCapsuleLibNull.uni */, + 9AA9177D25CD452C00BD5E8B /* DxeCapsuleLibNull.c */, + ); + path = DxeCapsuleLibNull; + sourceTree = ""; + }; + 9AA9177E25CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib */ = { + isa = PBXGroup; + children = ( + 9AA9177F25CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.inf */, + 9AA9178025CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.uni */, + 9AA9178125CD452C00BD5E8B /* DxeDebugPrintErrorLevelLib.c */, + ); + path = DxeDebugPrintErrorLevelLib; + sourceTree = ""; + }; + 9AA9178225CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA9178325CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.uni */, + 9AA9178425CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.inf */, + 9AA9178525CD452C00BD5E8B /* PiSmmCoreSmmServicesTableLib.c */, + ); + path = PiSmmCoreSmmServicesTableLib; + sourceTree = ""; + }; + 9AA9178625CD452C00BD5E8B /* BrotliCustomDecompressLib */ = { + isa = PBXGroup; + children = ( + 9AA9178725CD452C00BD5E8B /* LICENSE */, + 9AA9178825CD452C00BD5E8B /* BrotliDecompressLibInternal.h */, + 9AA9178925CD452C00BD5E8B /* brotli */, + 9AA9178D25CD452C00BD5E8B /* BrotliDecompress.c */, + 9AA9178E25CD452C00BD5E8B /* docs */, + 9AA9179025CD452C00BD5E8B /* README.md */, + 9AA9179125CD452C00BD5E8B /* common */, + 9AA9179A25CD452C00BD5E8B /* dec */, + 9AA917A325CD452C00BD5E8B /* ReadMe.txt */, + 9AA917A425CD452C00BD5E8B /* BrotliDecompressLib.uni */, + 9AA917A525CD452C00BD5E8B /* BrotliCustomDecompressLib.inf */, + 9AA917A625CD452C00BD5E8B /* GuidedSectionExtraction.c */, + ); + path = BrotliCustomDecompressLib; + sourceTree = ""; + }; + 9AA9178925CD452C00BD5E8B /* brotli */ = { + isa = PBXGroup; + children = ( + 9AA9178A25CD452C00BD5E8B /* port.h */, + 9AA9178B25CD452C00BD5E8B /* types.h */, + 9AA9178C25CD452C00BD5E8B /* decode.h */, + ); + path = brotli; + sourceTree = ""; + }; + 9AA9178E25CD452C00BD5E8B /* docs */ = { + isa = PBXGroup; + children = ( + 9AA9178F25CD452C00BD5E8B /* brotli-comparison-study-2015-09-22.pdf */, + ); + path = docs; + sourceTree = ""; + }; + 9AA9179125CD452C00BD5E8B /* common */ = { + isa = PBXGroup; + children = ( + 9AA9179225CD452C00BD5E8B /* dictionary.c */, + 9AA9179325CD452C00BD5E8B /* version.h */, + 9AA9179425CD452C00BD5E8B /* transform.c */, + 9AA9179525CD452C00BD5E8B /* context.h */, + 9AA9179625CD452C00BD5E8B /* constants.h */, + 9AA9179725CD452C00BD5E8B /* dictionary.h */, + 9AA9179825CD452C00BD5E8B /* transform.h */, + 9AA9179925CD452C00BD5E8B /* platform.h */, + ); + path = common; + sourceTree = ""; + }; + 9AA9179A25CD452C00BD5E8B /* dec */ = { + isa = PBXGroup; + children = ( + 9AA9179B25CD452C00BD5E8B /* state.c */, + 9AA9179C25CD452C00BD5E8B /* bit_reader.h */, + 9AA9179D25CD452C00BD5E8B /* decode.c */, + 9AA9179E25CD452C00BD5E8B /* huffman.c */, + 9AA9179F25CD452C00BD5E8B /* bit_reader.c */, + 9AA917A025CD452C00BD5E8B /* prefix.h */, + 9AA917A125CD452C00BD5E8B /* state.h */, + 9AA917A225CD452C00BD5E8B /* huffman.h */, + ); + path = dec; + sourceTree = ""; + }; + 9AA917A725CD452C00BD5E8B /* ResetUtilityLib */ = { + isa = PBXGroup; + children = ( + 9AA917A825CD452C00BD5E8B /* ResetUtility.c */, + 9AA917A925CD452C00BD5E8B /* ResetUtilityLib.inf */, + ); + path = ResetUtilityLib; + sourceTree = ""; + }; + 9AA917AA25CD452C00BD5E8B /* SmmCorePerformanceLib */ = { + isa = PBXGroup; + children = ( + 9AA917AB25CD452C00BD5E8B /* SmmCorePerformanceLib.c */, + 9AA917AC25CD452C00BD5E8B /* SmmCorePerformanceLib.uni */, + 9AA917AD25CD452C00BD5E8B /* SmmCorePerformanceLib.inf */, + 9AA917AE25CD452C00BD5E8B /* SmmCorePerformanceLibInternal.h */, + ); + path = SmmCorePerformanceLib; + sourceTree = ""; + }; + 9AA917AF25CD452C00BD5E8B /* UefiMemoryAllocationProfileLib */ = { + isa = PBXGroup; + children = ( + 9AA917B025CD452C00BD5E8B /* MemoryAllocationLib.c */, + 9AA917B125CD452C00BD5E8B /* UefiMemoryAllocationProfileLib.uni */, + 9AA917B225CD452C00BD5E8B /* UefiMemoryAllocationProfileLib.inf */, + 9AA917B325CD452C00BD5E8B /* DxeMemoryProfileLib.c */, + ); + path = UefiMemoryAllocationProfileLib; + sourceTree = ""; + }; + 9AA917B425CD452C00BD5E8B /* PeiDebugLibDebugPpi */ = { + isa = PBXGroup; + children = ( + 9AA917B525CD452C00BD5E8B /* PeiDebugLibDebugPpi.inf */, + 9AA917B625CD452C00BD5E8B /* DebugLib.c */, + ); + path = PeiDebugLibDebugPpi; + sourceTree = ""; + }; + 9AA917B725CD452C00BD5E8B /* SmmSmiHandlerProfileLib */ = { + isa = PBXGroup; + children = ( + 9AA917B825CD452C00BD5E8B /* SmmSmiHandlerProfileLib.c */, + 9AA917B925CD452C00BD5E8B /* SmmSmiHandlerProfileLib.inf */, + 9AA917BA25CD452C00BD5E8B /* SmmSmiHandlerProfileLib.uni */, + ); + path = SmmSmiHandlerProfileLib; + sourceTree = ""; + }; + 9AA917BB25CD452C00BD5E8B /* DxeReportStatusCodeLib */ = { + isa = PBXGroup; + children = ( + 9AA917BC25CD452C00BD5E8B /* DxeReportStatusCodeLib.inf */, + 9AA917BD25CD452C00BD5E8B /* DxeReportStatusCodeLib.uni */, + 9AA917BE25CD452C00BD5E8B /* ReportStatusCodeLib.c */, + ); + path = DxeReportStatusCodeLib; + sourceTree = ""; + }; + 9AA917BF25CD452C00BD5E8B /* VarCheckUefiLib */ = { + isa = PBXGroup; + children = ( + 9AA917C025CD452C00BD5E8B /* VarCheckUefiLib.inf */, + 9AA917C125CD452C00BD5E8B /* VarCheckUefiLib.uni */, + 9AA917C225CD452C00BD5E8B /* VarCheckUefiLibNullClass.c */, + ); + path = VarCheckUefiLib; + sourceTree = ""; + }; + 9AA917C325CD452C00BD5E8B /* RuntimeResetSystemLib */ = { + isa = PBXGroup; + children = ( + 9AA917C425CD452C00BD5E8B /* RuntimeResetSystemLib.inf */, + 9AA917C525CD452C00BD5E8B /* RuntimeResetSystemLib.c */, + 9AA917C625CD452C00BD5E8B /* RuntimeResetSystemLib.uni */, + ); + path = RuntimeResetSystemLib; + sourceTree = ""; + }; + 9AA917C725CD452C00BD5E8B /* VarCheckPcdLib */ = { + isa = PBXGroup; + children = ( + 9AA917C825CD452C00BD5E8B /* VarCheckPcdLibNullClass.c */, + 9AA917C925CD452C00BD5E8B /* VarCheckPcdStructure.h */, + 9AA917CA25CD452C00BD5E8B /* VarCheckPcdLib.uni */, + 9AA917CB25CD452C00BD5E8B /* VarCheckPcdLib.inf */, + ); + path = VarCheckPcdLib; + sourceTree = ""; + }; + 9AA917CC25CD452C00BD5E8B /* DxeSecurityManagementLib */ = { + isa = PBXGroup; + children = ( + 9AA917CD25CD452C00BD5E8B /* DxeSecurityManagementLib.c */, + 9AA917CE25CD452C00BD5E8B /* DxeSecurityManagementLib.uni */, + 9AA917CF25CD452C00BD5E8B /* DxeSecurityManagementLib.inf */, + ); + path = DxeSecurityManagementLib; + sourceTree = ""; + }; + 9AA917D025CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib */ = { + isa = PBXGroup; + children = ( + 9AA917D125CD452C00BD5E8B /* PiSmmCoreMemoryProfileLib.c */, + 9AA917D225CD452C00BD5E8B /* PiSmmCoreMemoryAllocationServices.h */, + 9AA917D325CD452C00BD5E8B /* MemoryAllocationLib.c */, + 9AA917D425CD452C00BD5E8B /* PiSmmCoreMemoryProfileServices.h */, + 9AA917D525CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib.uni */, + 9AA917D625CD452C00BD5E8B /* PiSmmCoreMemoryAllocationProfileLib.inf */, + 9AA917D725CD452C00BD5E8B /* PiSmmCoreMemoryProfileLibNull.c */, + 9AA917D825CD452C00BD5E8B /* PiSmmCoreMemoryAllocationLib.inf */, + 9AA917D925CD452C00BD5E8B /* PiSmmCoreMemoryAllocationProfileLib.uni */, + ); + path = PiSmmCoreMemoryAllocationLib; + sourceTree = ""; + }; + 9AA917DA25CD452C00BD5E8B /* DxePrintLibPrint2Protocol */ = { + isa = PBXGroup; + children = ( + 9AA917DB25CD452C00BD5E8B /* DxePrintLibPrint2Protocol.uni */, + 9AA917DC25CD452C00BD5E8B /* PrintLib.c */, + 9AA917DD25CD452C00BD5E8B /* DxePrintLibPrint2Protocol.inf */, + ); + path = DxePrintLibPrint2Protocol; + sourceTree = ""; + }; + 9AA917DE25CD452C00BD5E8B /* DxeCoreMemoryAllocationLib */ = { + isa = PBXGroup; + children = ( + 9AA917DF25CD452C00BD5E8B /* MemoryAllocationLib.c */, + 9AA917E025CD452C00BD5E8B /* DxeCoreMemoryAllocationServices.h */, + 9AA917E125CD452C00BD5E8B /* DxeCoreMemoryProfileServices.h */, + 9AA917E225CD452C00BD5E8B /* DxeCoreMemoryAllocationProfileLib.inf */, + 9AA917E325CD452C00BD5E8B /* DxeCoreMemoryAllocationProfileLib.uni */, + 9AA917E425CD452C00BD5E8B /* DxeCoreMemoryProfileLib.c */, + 9AA917E525CD452C00BD5E8B /* DxeCoreMemoryAllocationLib.uni */, + 9AA917E625CD452C00BD5E8B /* DxeCoreMemoryAllocationLib.inf */, + 9AA917E725CD452C00BD5E8B /* DxeCoreMemoryProfileLibNull.c */, + ); + path = DxeCoreMemoryAllocationLib; + sourceTree = ""; + }; + 9AA917E825CD452C00BD5E8B /* BootManagerUiLib */ = { + isa = PBXGroup; + children = ( + 9AA917E925CD452C00BD5E8B /* BootManagerStrings.uni */, + 9AA917EA25CD452C00BD5E8B /* BootManager.h */, + 9AA917EB25CD452C00BD5E8B /* BootManagerUiLib.uni */, + 9AA917EC25CD452C00BD5E8B /* BootManagerVfr.Vfr */, + 9AA917ED25CD452C00BD5E8B /* BootManagerUiLib.inf */, + 9AA917EE25CD452C00BD5E8B /* BootManager.c */, + ); + path = BootManagerUiLib; + sourceTree = ""; + }; + 9AA917EF25CD452C00BD5E8B /* BaseBmpSupportLib */ = { + isa = PBXGroup; + children = ( + 9AA917F025CD452C00BD5E8B /* BmpSupportLib.c */, + 9AA917F125CD452C00BD5E8B /* BaseBmpSupportLib.inf */, + 9AA917F225CD452C00BD5E8B /* BaseBmpSupportLib.uni */, + ); + path = BaseBmpSupportLib; + sourceTree = ""; + }; + 9AA917F325CD452C00BD5E8B /* CpuExceptionHandlerLibNull */ = { + isa = PBXGroup; + children = ( + 9AA917F425CD452C00BD5E8B /* CpuExceptionHandlerLibNull.uni */, + 9AA917F525CD452C00BD5E8B /* CpuExceptionHandlerLibNull.inf */, + 9AA917F625CD452C00BD5E8B /* CpuExceptionHandlerLibNull.c */, + ); + path = CpuExceptionHandlerLibNull; + sourceTree = ""; + }; + 9AA917F725CD452C00BD5E8B /* UefiHiiLib */ = { + isa = PBXGroup; + children = ( + 9AA917F825CD452C00BD5E8B /* HiiLib.c */, + 9AA917F925CD452C00BD5E8B /* UefiHiiLib.uni */, + 9AA917FA25CD452C00BD5E8B /* UefiHiiLib.inf */, + 9AA917FB25CD452C00BD5E8B /* HiiString.c */, + 9AA917FC25CD452C00BD5E8B /* HiiLanguage.c */, + 9AA917FD25CD452C00BD5E8B /* InternalHiiLib.h */, + ); + path = UefiHiiLib; + sourceTree = ""; + }; + 9AA917FE25CD452C00BD5E8B /* BaseSortLib */ = { + isa = PBXGroup; + children = ( + 9AA917FF25CD452C00BD5E8B /* BaseSortLib.inf */, + 9AA9180025CD452C00BD5E8B /* BaseSortLib.uni */, + 9AA9180125CD452C00BD5E8B /* BaseSortLib.c */, + ); + path = BaseSortLib; + sourceTree = ""; + }; + 9AA9180225CD452C00BD5E8B /* DxeCorePerformanceLib */ = { + isa = PBXGroup; + children = ( + 9AA9180325CD452C00BD5E8B /* DxeCorePerformanceLib.c */, + 9AA9180425CD452C00BD5E8B /* DxeCorePerformanceLibInternal.h */, + 9AA9180525CD452C00BD5E8B /* DxeCorePerformanceLib.inf */, + 9AA9180625CD452C00BD5E8B /* DxeCorePerformanceLib.uni */, + ); + path = DxeCorePerformanceLib; + sourceTree = ""; + }; + 9AA9180725CD452C00BD5E8B /* DxeResetSystemLib */ = { + isa = PBXGroup; + children = ( + 9AA9180825CD452C00BD5E8B /* DxeResetSystemLib.uni */, + 9AA9180925CD452C00BD5E8B /* DxeResetSystemLib.inf */, + 9AA9180A25CD452C00BD5E8B /* DxeResetSystemLib.c */, + ); + path = DxeResetSystemLib; + sourceTree = ""; + }; + 9AA9180B25CD452C00BD5E8B /* PeiResetSystemLib */ = { + isa = PBXGroup; + children = ( + 9AA9180C25CD452C00BD5E8B /* PeiResetSystemLib.uni */, + 9AA9180D25CD452C00BD5E8B /* PeiResetSystemLib.inf */, + 9AA9180E25CD452C00BD5E8B /* PeiResetSystemLib.c */, + ); + path = PeiResetSystemLib; + sourceTree = ""; + }; + 9AA9181025CD452C00BD5E8B /* Logo */ = { + isa = PBXGroup; + children = ( + 9AA9181125CD452D00BD5E8B /* LogoDxe.uni */, + 9AA9181225CD452D00BD5E8B /* LogoDxe.inf */, + 9AA9181325CD452D00BD5E8B /* Logo.bmp */, + 9AA9181425CD452D00BD5E8B /* Logo.uni */, + 9AA9181525CD452D00BD5E8B /* LogoDxeExtra.uni */, + 9AA9181625CD452D00BD5E8B /* LogoExtra.uni */, + 9AA9181725CD452D00BD5E8B /* Logo.inf */, + 9AA9181825CD452D00BD5E8B /* Logo.idf */, + 9AA9181925CD452D00BD5E8B /* Logo.c */, + ); + path = Logo; + sourceTree = ""; + }; + 9AA9181C25CD452D00BD5E8B /* Application */ = { + isa = PBXGroup; + children = ( + 9AA9181D25CD452D00BD5E8B /* UiApp */, + 9AA9182C25CD452D00BD5E8B /* HelloWorld */, + 9AA9183225CD452D00BD5E8B /* BootManagerMenuApp */, + 9AA9183925CD452D00BD5E8B /* CapsuleApp */, + 9AA9184225CD452D00BD5E8B /* MemoryProfileInfo */, + 9AA9184725CD452D00BD5E8B /* DumpDynPcd */, + 9AA9184B25CD452D00BD5E8B /* VariableInfo */, + 9AA9185025CD452D00BD5E8B /* SmiHandlerProfileInfo */, + ); + path = Application; + sourceTree = ""; + }; + 9AA9181D25CD452D00BD5E8B /* UiApp */ = { + isa = PBXGroup; + children = ( + 9AA9181E25CD452D00BD5E8B /* FrontPage.h */, + 9AA9181F25CD452D00BD5E8B /* FrontPageCustomizedUi.h */, + 9AA9182025CD452D00BD5E8B /* Ui.h */, + 9AA9182125CD452D00BD5E8B /* FrontPageCustomizedUiSupport.c */, + 9AA9182225CD452D00BD5E8B /* FrontPageVfr.Vfr */, + 9AA9182325CD452D00BD5E8B /* String.c */, + 9AA9182425CD452D00BD5E8B /* FrontPageCustomizedUi.c */, + 9AA9182525CD452D00BD5E8B /* UiApp.uni */, + 9AA9182625CD452D00BD5E8B /* FrontPage.c */, + 9AA9182725CD452D00BD5E8B /* FrontPageStrings.uni */, + 9AA9182825CD452D00BD5E8B /* UiAppExtra.uni */, + 9AA9182925CD452D00BD5E8B /* UiApp.inf */, + 9AA9182A25CD452D00BD5E8B /* FrontPageCustomizedUiSupport.h */, + 9AA9182B25CD452D00BD5E8B /* String.h */, + ); + path = UiApp; + sourceTree = ""; + }; + 9AA9182C25CD452D00BD5E8B /* HelloWorld */ = { + isa = PBXGroup; + children = ( + 9AA9182D25CD452D00BD5E8B /* HelloWorldStr.uni */, + 9AA9182E25CD452D00BD5E8B /* HelloWorld.uni */, + 9AA9182F25CD452D00BD5E8B /* HelloWorld.inf */, + 9AA9183025CD452D00BD5E8B /* HelloWorld.c */, + 9AA9183125CD452D00BD5E8B /* HelloWorldExtra.uni */, + ); + path = HelloWorld; + sourceTree = ""; + }; + 9AA9183225CD452D00BD5E8B /* BootManagerMenuApp */ = { + isa = PBXGroup; + children = ( + 9AA9183325CD452D00BD5E8B /* BootManagerMenu.c */, + 9AA9183425CD452D00BD5E8B /* BootManagerMenuAppExtra.uni */, + 9AA9183525CD452D00BD5E8B /* BootManagerMenuStrings.uni */, + 9AA9183625CD452D00BD5E8B /* BootManagerMenu.h */, + 9AA9183725CD452D00BD5E8B /* BootManagerMenuApp.inf */, + 9AA9183825CD452D00BD5E8B /* BootManagerMenuApp.uni */, + ); + path = BootManagerMenuApp; + sourceTree = ""; + }; + 9AA9183925CD452D00BD5E8B /* CapsuleApp */ = { + isa = PBXGroup; + children = ( + 9AA9183A25CD452D00BD5E8B /* CapsuleApp.h */, + 9AA9183B25CD452D00BD5E8B /* CapsuleApp.inf */, + 9AA9183C25CD452D00BD5E8B /* AppSupport.c */, + 9AA9183D25CD452D00BD5E8B /* CapsuleApp.uni */, + 9AA9183E25CD452D00BD5E8B /* CapsuleAppExtra.uni */, + 9AA9183F25CD452D00BD5E8B /* CapsuleOnDisk.c */, + 9AA9184025CD452D00BD5E8B /* CapsuleApp.c */, + 9AA9184125CD452D00BD5E8B /* CapsuleDump.c */, + ); + path = CapsuleApp; + sourceTree = ""; + }; + 9AA9184225CD452D00BD5E8B /* MemoryProfileInfo */ = { + isa = PBXGroup; + children = ( + 9AA9184325CD452D00BD5E8B /* MemoryProfileInfo.inf */, + 9AA9184425CD452D00BD5E8B /* MemoryProfileInfo.c */, + 9AA9184525CD452D00BD5E8B /* MemoryProfileInfo.uni */, + 9AA9184625CD452D00BD5E8B /* MemoryProfileInfoExtra.uni */, + ); + path = MemoryProfileInfo; + sourceTree = ""; + }; + 9AA9184725CD452D00BD5E8B /* DumpDynPcd */ = { + isa = PBXGroup; + children = ( + 9AA9184825CD452D00BD5E8B /* DumpDynPcd.inf */, + 9AA9184925CD452D00BD5E8B /* DumpDynPcdStr.uni */, + 9AA9184A25CD452D00BD5E8B /* DumpDynPcd.c */, + ); + path = DumpDynPcd; + sourceTree = ""; + }; + 9AA9184B25CD452D00BD5E8B /* VariableInfo */ = { + isa = PBXGroup; + children = ( + 9AA9184C25CD452D00BD5E8B /* VariableInfoExtra.uni */, + 9AA9184D25CD452D00BD5E8B /* VariableInfo.inf */, + 9AA9184E25CD452D00BD5E8B /* VariableInfo.uni */, + 9AA9184F25CD452D00BD5E8B /* VariableInfo.c */, + ); + path = VariableInfo; + sourceTree = ""; + }; + 9AA9185025CD452D00BD5E8B /* SmiHandlerProfileInfo */ = { + isa = PBXGroup; + children = ( + 9AA9185125CD452D00BD5E8B /* SmiHandlerProfileInfoExtra.uni */, + 9AA9185225CD452D00BD5E8B /* SmiHandlerProfileInfo.uni */, + 9AA9185325CD452D00BD5E8B /* SmiHandlerProfileInfo.inf */, + 9AA9185425CD452D00BD5E8B /* SmiHandlerProfileInfo.c */, + ); + path = SmiHandlerProfileInfo; + sourceTree = ""; + }; + 9AA9185625CD465800BD5E8B /* Clover */ = { + isa = PBXGroup; + children = ( + 9AA9185725CD468F00BD5E8B /* Include */, + 9AA91E0B25CD59F100BD5E8B /* Library */, + 9AA910B925CD452900BD5E8B /* MdeModulePkg */, + 9AA909E825CD451500BD5E8B /* MdePkg */, + 9AA918D925CD597E00BD5E8B /* OpenCorePkg */, + 9A36E51C24F3B5B4007A1107 /* rEFIt_UEFI */, + ); + name = Clover; + path = ../..; + sourceTree = ""; + }; + 9AA9185725CD468F00BD5E8B /* Include */ = { + isa = PBXGroup; + children = ( + 9AA9185825CD468F00BD5E8B /* AppleMacEfi */, + 9AA9187625CD468F00BD5E8B /* AppleMacEfi.h */, + 9AA918A425CD468F00BD5E8B /* EfiFlashMap.h */, + 9AA918B025CD468F00BD5E8B /* EfiImageFormat.h */, + 9AA9187725CD468F00BD5E8B /* EfiLdrHandoff.h */, + 9AA918A325CD468F00BD5E8B /* FlashLayout.h */, + 9AA918A525CD468F00BD5E8B /* Guid */, + 9AA9185A25CD468F00BD5E8B /* IndustryStandard */, + 9AA9187825CD468F00BD5E8B /* Library */, + 9AA918A225CD468F00BD5E8B /* MicrosoftWindows.h */, + 9AA9188825CD468F00BD5E8B /* Protocol */, + 9AA918B125CD468F00BD5E8B /* UefiLoader.h */, + ); + path = Include; + sourceTree = ""; + }; + 9AA9185825CD468F00BD5E8B /* AppleMacEfi */ = { + isa = PBXGroup; + children = ( + 9AA9185925CD468F00BD5E8B /* AppleMacEfiSpec.h */, + ); + path = AppleMacEfi; + sourceTree = ""; + }; + 9AA9185A25CD468F00BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA9185B25CD468F00BD5E8B /* VesaBiosExtensions.h */, + 9AA9185C25CD468F00BD5E8B /* GenericIch.h */, + 9AA9185D25CD468F00BD5E8B /* CpuId.h */, + 9AA9185E25CD468F00BD5E8B /* AppleSmBios.h */, + 9AA9185F25CD468F00BD5E8B /* AppleRtc.h */, + 9AA9186025CD468F00BD5E8B /* AppleDiskImage.h */, + 9AA9186125CD468F00BD5E8B /* PiBootMode.h */, + 9AA9186225CD468F00BD5E8B /* PeImage.h */, + 9AA9186325CD468F00BD5E8B /* AppleChunklist.h */, + 9AA9186425CD468F00BD5E8B /* Riff.h */, + 9AA9186525CD468F00BD5E8B /* AppleFatBinaryImage.h */, + 9AA9186625CD468F00BD5E8B /* HdaCodec.h */, + 9AA9186725CD468F00BD5E8B /* AppleHibernate.h */, + 9AA9186825CD468F00BD5E8B /* AppleFeatures.h */, + 9AA9186925CD468F00BD5E8B /* AppleMachoImage.h.dis */, + 9AA9186A25CD468F00BD5E8B /* AppleCsrConfig.h */, + 9AA9186B25CD468F00BD5E8B /* PciCommand.h */, + 9AA9186C25CD468F00BD5E8B /* AppleDiskLabel.h */, + 9AA9186D25CD468F00BD5E8B /* MachO-loader.h */, + 9AA9186E25CD468F00BD5E8B /* VirtualMemory.h */, + 9AA9186F25CD468F00BD5E8B /* AppleHid.h.disabled */, + 9AA9187025CD468F00BD5E8B /* AppleBootArgs.h */, + 9AA9187125CD468F00BD5E8B /* AtomBios.h */, + 9AA9187225CD468F00BD5E8B /* UsbHid.h */, + 9AA9187325CD468F00BD5E8B /* AppleIntelCpuInfo.h */, + 9AA9187425CD468F00BD5E8B /* ProcessorInfo.h */, + 9AA9187525CD468F00BD5E8B /* PciBus.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA9187825CD468F00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA9188225CD468F00BD5E8B /* GenericBdsLib.h */, + 9AA9187A25CD468F00BD5E8B /* HdaModels.h */, + 9AA9187925CD468F00BD5E8B /* HdaRegisters.h */, + 9AA9187D25CD468F00BD5E8B /* HdaVerbs.h */, + 9AA9187C25CD468F00BD5E8B /* MachoLib.h */, + 9AA9188425CD468F00BD5E8B /* MemLogLib.h */, + 9AA9188725CD468F00BD5E8B /* OcAfterBootCompatLib4Clover.h */, + 9AA9188025CD468F00BD5E8B /* PeCoffLib.h */, + 9AA9188125CD468F00BD5E8B /* printf_lite-conf.h */, + 9AA9187F25CD468F00BD5E8B /* printf_lite.h */, + 9AA9187B25CD468F00BD5E8B /* UefiHiiServicesLib.h */, + 9AA9187E25CD468F00BD5E8B /* UsbMass.h */, + 9AA9188325CD468F00BD5E8B /* UsbMassBoot.h */, + 9AA9188525CD468F00BD5E8B /* VideoBiosPatchLib.h */, + 9AA9188625CD468F00BD5E8B /* WaveLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA9188825CD468F00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA9188925CD468F00BD5E8B /* NullTextOutput.h */, + 9AA9188A25CD468F00BD5E8B /* UsbMassImpl.h */, + 9AA9188B25CD468F00BD5E8B /* AppleImageCodecProtocol.h */, + 9AA9188C25CD468F00BD5E8B /* AppleDeviceControl.h */, + 9AA9188D25CD468F00BD5E8B /* HdaControllerInfo.h */, + 9AA9188E25CD468F00BD5E8B /* AppleKeyState.h */, + 9AA9188F25CD468F00BD5E8B /* efiConsoleControl.h */, + 9AA9189025CD468F00BD5E8B /* ApplePartitionInfo.h */, + 9AA9189125CD468F00BD5E8B /* AudioIo.h */, + 9AA9189225CD468F00BD5E8B /* FSInjectProtocol.h */, + 9AA9189325CD468F00BD5E8B /* HdaIo.h */, + 9AA9189425CD468F00BD5E8B /* OcQuirksProtocol4Clover.h */, + 9AA9189525CD468F00BD5E8B /* EmuVariableControl.h */, + 9AA9189625CD468F00BD5E8B /* KeyboardInfo.h */, + 9AA9189725CD468F00BD5E8B /* AppleSMC.h */, + 9AA9189825CD468F00BD5E8B /* PciIoImp.h */, + 9AA9189925CD468F00BD5E8B /* AptioMemoryFix.h */, + 9AA9189A25CD468F00BD5E8B /* HdaCodecInfo.h */, + 9AA9189B25CD468F00BD5E8B /* ApfsEfiBootRecordInfo.h */, + 9AA9189C25CD468F00BD5E8B /* ApplePlatformInfoDatabase.h */, + 9AA9189D25CD468F00BD5E8B /* MsgLog.h */, + 9AA9189E25CD468F00BD5E8B /* SimpleAudioOut.h */, + 9AA9189F25CD468F00BD5E8B /* AppleDiskIo.h */, + 9AA918A025CD468F00BD5E8B /* AppleGraphConfig.h */, + 9AA918A125CD468F00BD5E8B /* Hash.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA918A525CD468F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA918A625CD468F00BD5E8B /* PciOptionRomTable.h */, + 9AA918A725CD468F00BD5E8B /* PciExpressBaseAddress.h */, + 9AA918A825CD468F00BD5E8B /* DxeCoreFileName.h */, + 9AA918A925CD468F00BD5E8B /* LdrMemoryDescriptor.h */, + 9AA918AA25CD468F00BD5E8B /* ConsoleOutConfig.h */, + 9AA918AB25CD468F00BD5E8B /* FlashMapHob.h */, + 9AA918AC25CD468F00BD5E8B /* MicrosoftVariable.h */, + 9AA918AD25CD468F00BD5E8B /* AcpiDescription.h */, + 9AA918AE25CD468F00BD5E8B /* ApplePlatformInfo.h */, + 9AA918AF25CD468F00BD5E8B /* AppleApfsInfo.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA918B825CD4B5900BD5E8B /* refit */ = { + isa = PBXGroup; + children = ( + 9AA925AB25CD79AA00BD5E8B /* icns.cpp */, + 9AA925A925CD79A900BD5E8B /* main.cpp */, + 9AA925AC25CD79AA00BD5E8B /* menu.cpp */, + 9AA925AD25CD79AA00BD5E8B /* menu.h */, + 9AA925AE25CD79AB00BD5E8B /* screen.cpp */, + 9AA925AA25CD79AA00BD5E8B /* screen.h */, + 9AA918BC25CD4B5900BD5E8B /* lib.cpp */, + 9AA918BD25CD4B5900BD5E8B /* lib.h */, + ); + path = refit; + sourceTree = ""; + }; + 9AA918D925CD597E00BD5E8B /* OpenCorePkg */ = { + isa = PBXGroup; + children = ( + 9AA91DAF25CD598100BD5E8B /* .gitattributes */, + 9AA91DAD25CD598100BD5E8B /* .gitignore */, + 9AA9199A25CD597E00BD5E8B /* .shellcheckrc */, + 9AA91DE725CD598100BD5E8B /* .travis.yml */, + 9AA918DA25CD597E00BD5E8B /* AppleModels */, + 9AA91DB125CD598100BD5E8B /* Application */, + 9AA91DAE25CD598100BD5E8B /* build_duet.tool */, + 9AA91DB025CD598100BD5E8B /* build_oc.tool */, + 9AA9199925CD597E00BD5E8B /* Changelog.md */, + 9AA91DE925CD598100BD5E8B /* Debug */, + 9AA91D0225CD598000BD5E8B /* Docs */, + 9AA91DE325CD598100BD5E8B /* Doxyfile */, + 9AA919A025CD597E00BD5E8B /* Include */, + 9AA91AD425CD597F00BD5E8B /* Legacy */, + 9AA91B3825CD597F00BD5E8B /* Library */, + 9AA91DE425CD598100BD5E8B /* LICENSE.txt */, + 9AA91DE625CD598100BD5E8B /* OpenCoreFromClover.h */, + 9AA91D2725CD598000BD5E8B /* OpenCorePkg.dec */, + 9AA91DE225CD598100BD5E8B /* OpenCorePkg.dsc */, + 9AA91DAC25CD598100BD5E8B /* OpenDuetPkg.dec */, + 9AA91DE525CD598100BD5E8B /* OpenDuetPkg.dsc */, + 9AA91D2625CD598000BD5E8B /* OpenDuetPkg.fdf */, + 9AA9199B25CD597E00BD5E8B /* Patches */, + 9AA91A8625CD597F00BD5E8B /* Platform */, + 9AA91D2825CD598000BD5E8B /* README.md */, + 9AA9196225CD597E00BD5E8B /* Staging */, + 9AA91ABE25CD597F00BD5E8B /* Tests */, + 9AA91CF225CD598000BD5E8B /* User */, + 9AA91D2925CD598000BD5E8B /* Utilities */, + 9AA91DE825CD598100BD5E8B /* xcbuild.tool */, + ); + path = OpenCorePkg; + sourceTree = ""; + }; + 9AA918DA25CD597E00BD5E8B /* AppleModels */ = { + isa = PBXGroup; + children = ( + 9AA918DB25CD597E00BD5E8B /* DataBase */, + 9AA9195D25CD597E00BD5E8B /* update_generated.py */, + 9AA9195E25CD597E00BD5E8B /* update_products.py */, + 9AA9195F25CD597E00BD5E8B /* README.md */, + 9AA9196025CD597E00BD5E8B /* Products.zjson */, + 9AA9196125CD597E00BD5E8B /* DataBase.md */, + ); + path = AppleModels; + sourceTree = ""; + }; + 9AA918DB25CD597E00BD5E8B /* DataBase */ = { + isa = PBXGroup; + children = ( + 9AA918DC25CD597E00BD5E8B /* MacBookPro */, + 9AA9190625CD597E00BD5E8B /* Macmini */, + 9AA9191225CD597E00BD5E8B /* Xserve */, + 9AA9191625CD597E00BD5E8B /* iMac */, + 9AA9193725CD597E00BD5E8B /* MacBookAir */, + 9AA9194725CD597E00BD5E8B /* MacBook */, + 9AA9195325CD597E00BD5E8B /* MacPro */, + 9AA9195B25CD597E00BD5E8B /* iMacPro */, + ); + path = DataBase; + sourceTree = ""; + }; + 9AA918DC25CD597E00BD5E8B /* MacBookPro */ = { + isa = PBXGroup; + children = ( + 9AA918DD25CD597E00BD5E8B /* MBP71.yaml */, + 9AA918DE25CD597E00BD5E8B /* MBP111.yaml */, + 9AA918DF25CD597E00BD5E8B /* MBP131.yaml */, + 9AA918E025CD597E00BD5E8B /* MBP51.yaml */, + 9AA918E125CD597E00BD5E8B /* MBP92.yaml */, + 9AA918E225CD597E00BD5E8B /* MBP11.yaml */, + 9AA918E325CD597E00BD5E8B /* MBP31.yaml */, + 9AA918E425CD597E00BD5E8B /* MBP151.yaml */, + 9AA918E525CD597E00BD5E8B /* MBP41.yaml */, + 9AA918E625CD597E00BD5E8B /* MBP121.yaml */, + 9AA918E725CD597E00BD5E8B /* MBP82.yaml */, + 9AA918E825CD597E00BD5E8B /* MBP101.yaml */, + 9AA918E925CD597E00BD5E8B /* MBP61.yaml */, + 9AA918EA25CD597E00BD5E8B /* MBP141.yaml */, + 9AA918EB25CD597E00BD5E8B /* MBP21.yaml */, + 9AA918EC25CD597E00BD5E8B /* MBP83.yaml */, + 9AA918ED25CD597E00BD5E8B /* MBP161.yaml */, + 9AA918EE25CD597E00BD5E8B /* MBP55.yaml */, + 9AA918EF25CD597E00BD5E8B /* MBP162.yaml */, + 9AA918F025CD597E00BD5E8B /* MBP115.yaml */, + 9AA918F125CD597E00BD5E8B /* MBP142.yaml */, + 9AA918F225CD597E00BD5E8B /* MBP154.yaml */, + 9AA918F325CD597E00BD5E8B /* MBP22.yaml */, + 9AA918F425CD597E00BD5E8B /* MBP102.yaml */, + 9AA918F525CD597E00BD5E8B /* MBP143.yaml */, + 9AA918F625CD597E00BD5E8B /* MBP62.yaml */, + 9AA918F725CD597E00BD5E8B /* MBP114.yaml */, + 9AA918F825CD597E00BD5E8B /* MBP163.yaml */, + 9AA918F925CD597E00BD5E8B /* MBP54.yaml */, + 9AA918FA25CD597E00BD5E8B /* MBP81.yaml */, + 9AA918FB25CD597E00BD5E8B /* MBP113.yaml */, + 9AA918FC25CD597E00BD5E8B /* MBP152.yaml */, + 9AA918FD25CD597E00BD5E8B /* MBP53.yaml */, + 9AA918FE25CD597E00BD5E8B /* MBP12.yaml */, + 9AA918FF25CD597E00BD5E8B /* MBP133.yaml */, + 9AA9190025CD597E00BD5E8B /* MBP164.yaml */, + 9AA9190125CD597E00BD5E8B /* MBP132.yaml */, + 9AA9190225CD597E00BD5E8B /* MBP52.yaml */, + 9AA9190325CD597E00BD5E8B /* MBP91.yaml */, + 9AA9190425CD597E00BD5E8B /* MBP153.yaml */, + 9AA9190525CD597E00BD5E8B /* MBP112.yaml */, + ); + path = MacBookPro; + sourceTree = ""; + }; + 9AA9190625CD597E00BD5E8B /* Macmini */ = { + isa = PBXGroup; + children = ( + 9AA9190725CD597E00BD5E8B /* MM81.yaml */, + 9AA9190825CD597E00BD5E8B /* MM62.yaml */, + 9AA9190925CD597E00BD5E8B /* MM52.yaml */, + 9AA9190A25CD597E00BD5E8B /* MM53.yaml */, + 9AA9190B25CD597E00BD5E8B /* MM31.yaml */, + 9AA9190C25CD597E00BD5E8B /* MM11.yaml */, + 9AA9190D25CD597E00BD5E8B /* MM51.yaml */, + 9AA9190E25CD597E00BD5E8B /* MM71.yaml */, + 9AA9190F25CD597E00BD5E8B /* MM21.yaml */, + 9AA9191025CD597E00BD5E8B /* MM61.yaml */, + 9AA9191125CD597E00BD5E8B /* MM41.yaml */, + ); + path = Macmini; + sourceTree = ""; + }; + 9AA9191225CD597E00BD5E8B /* Xserve */ = { + isa = PBXGroup; + children = ( + 9AA9191325CD597E00BD5E8B /* XS21.yaml */, + 9AA9191425CD597E00BD5E8B /* XS11.yaml */, + 9AA9191525CD597E00BD5E8B /* XS31.yaml */, + ); + path = Xserve; + sourceTree = ""; + }; + 9AA9191625CD597E00BD5E8B /* iMac */ = { + isa = PBXGroup; + children = ( + 9AA9191725CD597E00BD5E8B /* IM181.yaml */, + 9AA9191825CD597E00BD5E8B /* IM142.yaml */, + 9AA9191925CD597E00BD5E8B /* IM162.yaml */, + 9AA9191A25CD597E00BD5E8B /* IM61.yaml */, + 9AA9191B25CD597E00BD5E8B /* IM122.yaml */, + 9AA9191C25CD597E00BD5E8B /* IM41.yaml */, + 9AA9191D25CD597E00BD5E8B /* IM143.yaml */, + 9AA9191E25CD597E00BD5E8B /* IM133.yaml */, + 9AA9191F25CD597E00BD5E8B /* IM191.yaml */, + 9AA9192025CD597E00BD5E8B /* IM144.yaml */, + 9AA9192125CD597E00BD5E8B /* IM113.yaml */, + 9AA9192225CD597E00BD5E8B /* IM51.yaml */, + 9AA9192325CD597E00BD5E8B /* IM112.yaml */, + 9AA9192425CD597E00BD5E8B /* IM201.yaml */, + 9AA9192525CD597E00BD5E8B /* IM132.yaml */, + 9AA9192625CD597E00BD5E8B /* IM71.yaml */, + 9AA9192725CD597E00BD5E8B /* IM131.yaml */, + 9AA9192825CD597E00BD5E8B /* IM52.yaml */, + 9AA9192925CD597E00BD5E8B /* IM111.yaml */, + 9AA9192A25CD597E00BD5E8B /* IM91.yaml */, + 9AA9192B25CD597E00BD5E8B /* IM202.yaml */, + 9AA9192C25CD597E00BD5E8B /* IM192.yaml */, + 9AA9192D25CD597E00BD5E8B /* IM151.yaml */, + 9AA9192E25CD597E00BD5E8B /* IM171.yaml */, + 9AA9192F25CD597E00BD5E8B /* IM101.yaml */, + 9AA9193025CD597E00BD5E8B /* IM42.yaml */, + 9AA9193125CD597E00BD5E8B /* IM81.yaml */, + 9AA9193225CD597E00BD5E8B /* IM183.yaml */, + 9AA9193325CD597E00BD5E8B /* IM121.yaml */, + 9AA9193425CD597E00BD5E8B /* IM161.yaml */, + 9AA9193525CD597E00BD5E8B /* IM182.yaml */, + 9AA9193625CD597E00BD5E8B /* IM141.yaml */, + ); + path = iMac; + sourceTree = ""; + }; + 9AA9193725CD597E00BD5E8B /* MacBookAir */ = { + isa = PBXGroup; + children = ( + 9AA9193825CD597E00BD5E8B /* MBA72.yaml */, + 9AA9193925CD597E00BD5E8B /* MBA91.yaml */, + 9AA9193A25CD597E00BD5E8B /* MBA52.yaml */, + 9AA9193B25CD597E00BD5E8B /* MBA32.yaml */, + 9AA9193C25CD597E00BD5E8B /* MBA81.yaml */, + 9AA9193D25CD597E00BD5E8B /* MBA42.yaml */, + 9AA9193E25CD597E00BD5E8B /* MBA62.yaml */, + 9AA9193F25CD597E00BD5E8B /* MBA21.yaml */, + 9AA9194025CD597E00BD5E8B /* MBA61.yaml */, + 9AA9194125CD597E00BD5E8B /* MBA82.yaml */, + 9AA9194225CD597E00BD5E8B /* MBA41.yaml */, + 9AA9194325CD597E00BD5E8B /* MBA31.yaml */, + 9AA9194425CD597E00BD5E8B /* MBA11.yaml */, + 9AA9194525CD597E00BD5E8B /* MBA51.yaml */, + 9AA9194625CD597E00BD5E8B /* MBA71.yaml */, + ); + path = MacBookAir; + sourceTree = ""; + }; + 9AA9194725CD597E00BD5E8B /* MacBook */ = { + isa = PBXGroup; + children = ( + 9AA9194825CD597E00BD5E8B /* MB51.yaml */, + 9AA9194925CD597E00BD5E8B /* MB71.yaml */, + 9AA9194A25CD597E00BD5E8B /* MB31.yaml */, + 9AA9194B25CD597E00BD5E8B /* MB11.yaml */, + 9AA9194C25CD597E00BD5E8B /* MB61.yaml */, + 9AA9194D25CD597E00BD5E8B /* MB41.yaml */, + 9AA9194E25CD597E00BD5E8B /* MB21.yaml */, + 9AA9194F25CD597E00BD5E8B /* MB81.yaml */, + 9AA9195025CD597E00BD5E8B /* MB101.yaml */, + 9AA9195125CD597E00BD5E8B /* MB52.yaml */, + 9AA9195225CD597E00BD5E8B /* MB91.yaml */, + ); + path = MacBook; + sourceTree = ""; + }; + 9AA9195325CD597E00BD5E8B /* MacPro */ = { + isa = PBXGroup; + children = ( + 9AA9195425CD597E00BD5E8B /* MP41.yaml */, + 9AA9195525CD597E00BD5E8B /* MP61.yaml */, + 9AA9195625CD597E00BD5E8B /* MP21.yaml */, + 9AA9195725CD597E00BD5E8B /* MP71.yaml */, + 9AA9195825CD597E00BD5E8B /* MP51.yaml */, + 9AA9195925CD597E00BD5E8B /* MP11.yaml */, + 9AA9195A25CD597E00BD5E8B /* MP31.yaml */, + ); + path = MacPro; + sourceTree = ""; + }; + 9AA9195B25CD597E00BD5E8B /* iMacPro */ = { + isa = PBXGroup; + children = ( + 9AA9195C25CD597E00BD5E8B /* IMP11.yaml */, + ); + path = iMacPro; + sourceTree = ""; + }; + 9AA9196225CD597E00BD5E8B /* Staging */ = { + isa = PBXGroup; + children = ( + 9AA9196325CD597E00BD5E8B /* README.md */, + 9AA9196425CD597E00BD5E8B /* VBoxHfs */, + 9AA9198625CD597E00BD5E8B /* AudioDxe */, + ); + path = Staging; + sourceTree = ""; + }; + 9AA9196425CD597E00BD5E8B /* VBoxHfs */ = { + isa = PBXGroup; + children = ( + 9AA9196525CD597E00BD5E8B /* hfs_format.h */, + 9AA9196625CD597E00BD5E8B /* mk_fsw_strfunc.py */, + 9AA9196725CD597E00BD5E8B /* fsw_hfs.h */, + 9AA9196825CD597E00BD5E8B /* fsw_core.c */, + 9AA9196925CD597E00BD5E8B /* fsw_strfunc.h */, + 9AA9196A25CD597E00BD5E8B /* fsw_base.h */, + 9AA9196B25CD597E00BD5E8B /* fsw_efi.h */, + 9AA9196C25CD597E00BD5E8B /* fsw_efi_lib.c */, + 9AA9196D25CD597E00BD5E8B /* fsw_lib.c */, + 9AA9196E25CD597E00BD5E8B /* hfs_unistr.h */, + 9AA9196F25CD597E00BD5E8B /* fsw_hfs.c */, + 9AA9197025CD597E00BD5E8B /* fsw_core.h */, + 9AA9197125CD597E00BD5E8B /* fsw_efi_base.h */, + 9AA9197225CD597E00BD5E8B /* LICENSE.txt */, + 9AA9197325CD597E00BD5E8B /* VBoxHfs.inf */, + 9AA9197425CD597E00BD5E8B /* fsw_efi.c */, + 9AA9197525CD597E00BD5E8B /* devstuff */, + ); + path = VBoxHfs; + sourceTree = ""; + }; + 9AA9197525CD597E00BD5E8B /* devstuff */ = { + isa = PBXGroup; + children = ( + 9AA9197A25CD597E00BD5E8B /* posix */, + 9AA9197C25CD597E00BD5E8B /* msvc */, + 9AA9197E25CD597E00BD5E8B /* mswin */, + 9AA9198125CD597E00BD5E8B /* src */, + ); + path = devstuff; + sourceTree = ""; + }; + 9AA9197A25CD597E00BD5E8B /* posix */ = { + isa = PBXGroup; + children = ( + 9AA9197B25CD597E00BD5E8B /* Makefile */, + ); + path = posix; + sourceTree = ""; + }; + 9AA9197C25CD597E00BD5E8B /* msvc */ = { + isa = PBXGroup; + children = ( + 9AA9197D25CD597E00BD5E8B /* VBoxHfs.vcxproj */, + ); + path = msvc; + sourceTree = ""; + }; + 9AA9197E25CD597E00BD5E8B /* mswin */ = { + isa = PBXGroup; + children = ( + 9AA9197F25CD597E00BD5E8B /* Makefile */, + 9AA9198025CD597E00BD5E8B /* dirent.h */, + ); + path = mswin; + sourceTree = ""; + }; + 9AA9198125CD597E00BD5E8B /* src */ = { + isa = PBXGroup; + children = ( + 9AA9198225CD597E00BD5E8B /* fsw_posix.c */, + 9AA9198325CD597E00BD5E8B /* fsw_posix_base.h */, + 9AA9198425CD597E00BD5E8B /* fsw_posix.h */, + 9AA9198525CD597E00BD5E8B /* tstmain.c */, + ); + path = src; + sourceTree = ""; + }; + 9AA9198625CD597E00BD5E8B /* AudioDxe */ = { + isa = PBXGroup; + children = ( + 9AA9198725CD597E00BD5E8B /* AudioDxe.c */, + 9AA9198825CD597E00BD5E8B /* HdaCodec */, + 9AA9198F25CD597E00BD5E8B /* HdaController */, + 9AA9199725CD597E00BD5E8B /* AudioDxe.h */, + 9AA9199825CD597E00BD5E8B /* AudioDxe.inf */, + ); + path = AudioDxe; + sourceTree = ""; + }; + 9AA9198825CD597E00BD5E8B /* HdaCodec */ = { + isa = PBXGroup; + children = ( + 9AA9198925CD597E00BD5E8B /* HdaCodecInfo.c */, + 9AA9198A25CD597E00BD5E8B /* HdaCodecComponentName.c */, + 9AA9198B25CD597E00BD5E8B /* HdaCodec.h */, + 9AA9198C25CD597E00BD5E8B /* HdaCodecAudioIo.c */, + 9AA9198D25CD597E00BD5E8B /* HdaCodecComponentName.h */, + 9AA9198E25CD597E00BD5E8B /* HdaCodec.c */, + ); + path = HdaCodec; + sourceTree = ""; + }; + 9AA9198F25CD597E00BD5E8B /* HdaController */ = { + isa = PBXGroup; + children = ( + 9AA9199025CD597E00BD5E8B /* HdaControllerComponentName.c */, + 9AA9199125CD597E00BD5E8B /* HdaControllerMem.c */, + 9AA9199225CD597E00BD5E8B /* HdaController.c */, + 9AA9199325CD597E00BD5E8B /* HdaControllerHdaIo.c */, + 9AA9199425CD597E00BD5E8B /* HdaControllerInfo.c */, + 9AA9199525CD597E00BD5E8B /* HdaControllerComponentName.h */, + 9AA9199625CD597E00BD5E8B /* HdaController.h */, + ); + path = HdaController; + sourceTree = ""; + }; + 9AA9199B25CD597E00BD5E8B /* Patches */ = { + isa = PBXGroup; + children = ( + 9AA9199C25CD597E00BD5E8B /* 0001-MdeModulePkg-SataControllerDxe-Add-support-for-drive.patch */, + 9AA9199D25CD597E00BD5E8B /* 0001-ShellPkg-Add-support-for-input-with-separately-repor.patch */, + 9AA9199E25CD597E00BD5E8B /* 0002-MdeModulePkg-AtaAtapiPassThru-Add-support-for-drives.patch */, + 9AA9199F25CD597E00BD5E8B /* 0003-MdeModulePkg-AtaAtapiPassThru-Reduce-timeout.patch */, + ); + path = Patches; + sourceTree = ""; + }; + 9AA919A025CD597E00BD5E8B /* Include */ = { + isa = PBXGroup; + children = ( + 9AA919A125CD597E00BD5E8B /* Apple */, + 9AA91A0325CD597F00BD5E8B /* Intel */, + 9AA91A1B25CD597F00BD5E8B /* AMI */, + 9AA91A1F25CD597F00BD5E8B /* Duet */, + 9AA91A2D25CD597F00BD5E8B /* Microsoft */, + 9AA91A3125CD597F00BD5E8B /* Generic */, + 9AA91A3525CD597F00BD5E8B /* Acidanthera */, + 9AA91A8125CD597F00BD5E8B /* VMware */, + ); + path = Include; + sourceTree = ""; + }; + 9AA919A125CD597E00BD5E8B /* Apple */ = { + isa = PBXGroup; + children = ( + 9AA919A225CD597E00BD5E8B /* AppleMacEfi */, + 9AA919A425CD597E00BD5E8B /* Ebc */, + 9AA919A625CD597E00BD5E8B /* X64 */, + 9AA919A825CD597E00BD5E8B /* IndustryStandard */, + 9AA919C025CD597E00BD5E8B /* AppleMacEfi.h */, + 9AA919C125CD597E00BD5E8B /* Library */, + 9AA919C825CD597E00BD5E8B /* Protocol */, + 9AA919ED25CD597E00BD5E8B /* Ia32 */, + 9AA919EF25CD597F00BD5E8B /* Guid */, + 9AA919FF25CD597F00BD5E8B /* Arm */, + 9AA91A0125CD597F00BD5E8B /* AArch64 */, + ); + path = Apple; + sourceTree = ""; + }; + 9AA919A225CD597E00BD5E8B /* AppleMacEfi */ = { + isa = PBXGroup; + children = ( + 9AA919A325CD597E00BD5E8B /* AppleMacEfiSpec.h */, + ); + path = AppleMacEfi; + sourceTree = ""; + }; + 9AA919A425CD597E00BD5E8B /* Ebc */ = { + isa = PBXGroup; + children = ( + 9AA919A525CD597E00BD5E8B /* AppleCpuType.h */, + ); + path = Ebc; + sourceTree = ""; + }; + 9AA919A625CD597E00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA919A725CD597E00BD5E8B /* AppleCpuType.h */, + ); + path = X64; + sourceTree = ""; + }; + 9AA919A825CD597E00BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA919A925CD597E00BD5E8B /* AppleProvisioning.h */, + 9AA919AA25CD597E00BD5E8B /* AppleIcon.h */, + 9AA919AB25CD597E00BD5E8B /* AppleMachoImage.h */, + 9AA919AC25CD597E00BD5E8B /* AppleSmBios.h */, + 9AA919AD25CD597E00BD5E8B /* AppleNec.h */, + 9AA919AE25CD597E00BD5E8B /* AppleRtc.h */, + 9AA919AF25CD597E00BD5E8B /* AppleDiskImage.h */, + 9AA919B025CD597E00BD5E8B /* ApplePerfData.h */, + 9AA919B125CD597E00BD5E8B /* AppleChunklist.h */, + 9AA919B225CD597E00BD5E8B /* AppleFatBinaryImage.h */, + 9AA919B325CD597E00BD5E8B /* AppleSmc.h */, + 9AA919B425CD597E00BD5E8B /* AppleHibernate.h */, + 9AA919B525CD597E00BD5E8B /* AppleFeatures.h */, + 9AA919B625CD597E00BD5E8B /* Apfs.h */, + 9AA919B725CD597E00BD5E8B /* AppleCsrConfig.h */, + 9AA919B825CD597E00BD5E8B /* AppleDiskLabel.h */, + 9AA919B925CD597E00BD5E8B /* AppleBootArgs.h */, + 9AA919BA25CD597E00BD5E8B /* AppleHid.h */, + 9AA919BB25CD597E00BD5E8B /* AppleIntelCpuInfo.h */, + 9AA919BC25CD597E00BD5E8B /* AppleKmodInfo.h */, + 9AA919BD25CD597E00BD5E8B /* AppleKxldState.h */, + 9AA919BE25CD597E00BD5E8B /* AppleCompressedBinaryImage.h */, + 9AA919BF25CD597E00BD5E8B /* AppleMkext.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA919C125CD597E00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA919C225CD597E00BD5E8B /* AppleInterruptLib.h */, + 9AA919C325CD597E00BD5E8B /* BiosIdLib.h */, + 9AA919C425CD597E00BD5E8B /* AppleSmbiosLib.h */, + 9AA919C525CD597E00BD5E8B /* AppleCpuExtensionsLib.h */, + 9AA919C625CD597E00BD5E8B /* AppleDataHubLib.h */, + 9AA919C725CD597E00BD5E8B /* AppleEventLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA919C825CD597E00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA919C925CD597E00BD5E8B /* UserInterfaceTheme.h */, + 9AA919CA25CD597E00BD5E8B /* OSInfo.h */, + 9AA919CB25CD597E00BD5E8B /* AppleDeviceControl.h */, + 9AA919CC25CD597E00BD5E8B /* AppleSmcIo.h */, + 9AA919CD25CD597E00BD5E8B /* AppleGraphicsPolicy.h */, + 9AA919CE25CD597E00BD5E8B /* ApplePartitionInfo.h */, + 9AA919CF25CD597E00BD5E8B /* ApfsUnsupportedBds.h */, + 9AA919D025CD597E00BD5E8B /* AppleSecureBoot.h */, + 9AA919D125CD597E00BD5E8B /* AppleFirmwarePassword.h */, + 9AA919D225CD597E00BD5E8B /* AppleDiskImage.h */, + 9AA919D325CD597E00BD5E8B /* AppleImageConversion.h */, + 9AA919D425CD597E00BD5E8B /* AppleRamDisk.h */, + 9AA919D525CD597E00BD5E8B /* KeyboardInfo.h */, + 9AA919D625CD597E00BD5E8B /* AppleBeepGen.h */, + 9AA919D725CD597E00BD5E8B /* AppleKeyMapDatabase.h */, + 9AA919D825CD597E00BD5E8B /* AppleGraphicsDriver.h */, + 9AA919D925CD597E00BD5E8B /* AppleRemovableMedia.h */, + 9AA919DA25CD597E00BD5E8B /* AppleKeyMapAggregator.h */, + 9AA919DB25CD597E00BD5E8B /* AppleFramebufferInfo.h */, + 9AA919DC25CD597E00BD5E8B /* ApfsEncryptedPartition.h */, + 9AA919DD25CD597E00BD5E8B /* AppleImg4Verification.h */, + 9AA919DE25CD597E00BD5E8B /* DevicePathPropertyDatabase.h */, + 9AA919DF25CD597E00BD5E8B /* AppleSingleFile.h */, + 9AA919E025CD597E00BD5E8B /* AppleRtcRam.h */, + 9AA919E125CD597E00BD5E8B /* AppleVoiceOver.h */, + 9AA919E225CD597E00BD5E8B /* AppleDebugLog.h */, + 9AA919E325CD597E00BD5E8B /* AppleHda.h */, + 9AA919E425CD597E00BD5E8B /* Apple80211.h */, + 9AA919E525CD597E00BD5E8B /* ApfsEfiBootRecordInfo.h */, + 9AA919E625CD597E00BD5E8B /* ApplePlatformInfoDatabase.h */, + 9AA919E725CD597E00BD5E8B /* AppleDiag.h */, + 9AA919E825CD597E00BD5E8B /* AppleSystemInfo.h */, + 9AA919E925CD597E00BD5E8B /* AppleBootPolicy.h */, + 9AA919EA25CD597E00BD5E8B /* AppleEvent.h */, + 9AA919EB25CD597E00BD5E8B /* AppleDmgBoot.h */, + 9AA919EC25CD597E00BD5E8B /* AppleLoadImage.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA919ED25CD597E00BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA919EE25CD597E00BD5E8B /* AppleCpuType.h */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA919EF25CD597F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA919F025CD597F00BD5E8B /* AppleBless.h */, + 9AA919F125CD597F00BD5E8B /* AppleDataHub.h */, + 9AA919F225CD597F00BD5E8B /* AppleFile.h */, + 9AA919F325CD597F00BD5E8B /* AppleOSLoaded.h */, + 9AA919F425CD597F00BD5E8B /* AppleCertificate.h */, + 9AA919F525CD597F00BD5E8B /* AppleDevicePath.h */, + 9AA919F625CD597F00BD5E8B /* AppleHob.h */, + 9AA919F725CD597F00BD5E8B /* AppleTscFrequency.h */, + 9AA919F825CD597F00BD5E8B /* ApplePlatformInfo.h */, + 9AA919F925CD597F00BD5E8B /* AppleHfsInfo.h */, + 9AA919FA25CD597F00BD5E8B /* AppleVariable.h */, + 9AA919FB25CD597F00BD5E8B /* BiosId.h */, + 9AA919FC25CD597F00BD5E8B /* AppleApfsInfo.h */, + 9AA919FD25CD597F00BD5E8B /* AppleTDMApprovedGuid.h */, + 9AA919FE25CD597F00BD5E8B /* AppleFirmwareVolume.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA919FF25CD597F00BD5E8B /* Arm */ = { + isa = PBXGroup; + children = ( + 9AA91A0025CD597F00BD5E8B /* AppleCpuType.h */, + ); + path = Arm; + sourceTree = ""; + }; + 9AA91A0125CD597F00BD5E8B /* AArch64 */ = { + isa = PBXGroup; + children = ( + 9AA91A0225CD597F00BD5E8B /* AppleCpuType.h */, + ); + path = AArch64; + sourceTree = ""; + }; + 9AA91A0325CD597F00BD5E8B /* Intel */ = { + isa = PBXGroup; + children = ( + 9AA91A0425CD597F00BD5E8B /* IndustryStandard */, + 9AA91A0D25CD597F00BD5E8B /* Protocol */, + 9AA91A1825CD597F00BD5E8B /* Guid */, + ); + path = Intel; + sourceTree = ""; + }; + 9AA91A0425CD597F00BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA91A0525CD597F00BD5E8B /* HeciMsg.h */, + 9AA91A0625CD597F00BD5E8B /* HdaRegisters.h */, + 9AA91A0725CD597F00BD5E8B /* GenericIch.h */, + 9AA91A0825CD597F00BD5E8B /* CpuId.h */, + 9AA91A0925CD597F00BD5E8B /* HeciClientMsg.h */, + 9AA91A0A25CD597F00BD5E8B /* HdaVerbs.h */, + 9AA91A0B25CD597F00BD5E8B /* VirtualMemory.h */, + 9AA91A0C25CD597F00BD5E8B /* ProcessorInfo.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA91A0D25CD597F00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA91A0E25CD597F00BD5E8B /* Heci2.h */, + 9AA91A0F25CD597F00BD5E8B /* LegacyBios.h */, + 9AA91A1025CD597F00BD5E8B /* HotPlugDevice.h */, + 9AA91A1125CD597F00BD5E8B /* FrameworkMpService.h */, + 9AA91A1225CD597F00BD5E8B /* ConsoleControl.h */, + 9AA91A1325CD597F00BD5E8B /* Heci.h */, + 9AA91A1425CD597F00BD5E8B /* VgaMiniPort.h */, + 9AA91A1525CD597F00BD5E8B /* LegacyRegion.h */, + 9AA91A1625CD597F00BD5E8B /* DataHub.h */, + 9AA91A1725CD597F00BD5E8B /* FirmwareVolume.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA91A1825CD597F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA91A1925CD597F00BD5E8B /* DataHubRecords.h */, + 9AA91A1A25CD597F00BD5E8B /* BlockIoVendor.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA91A1B25CD597F00BD5E8B /* AMI */ = { + isa = PBXGroup; + children = ( + 9AA91A1C25CD597F00BD5E8B /* Protocol */, + ); + path = AMI; + sourceTree = ""; + }; + 9AA91A1C25CD597F00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA91A1D25CD597F00BD5E8B /* AmiPointer.h */, + 9AA91A1E25CD597F00BD5E8B /* AmiKeycode.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA91A1F25CD597F00BD5E8B /* Duet */ = { + isa = PBXGroup; + children = ( + 9AA91A2025CD597F00BD5E8B /* EfiLdrHandoff.h */, + 9AA91A2125CD597F00BD5E8B /* Library */, + 9AA91A2325CD597F00BD5E8B /* FlashLayout.h */, + 9AA91A2425CD597F00BD5E8B /* EfiFlashMap.h */, + 9AA91A2525CD597F00BD5E8B /* Guid */, + 9AA91A2C25CD597F00BD5E8B /* EfiImageFormat.h */, + ); + path = Duet; + sourceTree = ""; + }; + 9AA91A2125CD597F00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA91A2225CD597F00BD5E8B /* DuetBdsLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA91A2525CD597F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA91A2625CD597F00BD5E8B /* PciOptionRomTable.h */, + 9AA91A2725CD597F00BD5E8B /* PciExpressBaseAddress.h */, + 9AA91A2825CD597F00BD5E8B /* DxeCoreFileName.h */, + 9AA91A2925CD597F00BD5E8B /* LdrMemoryDescriptor.h */, + 9AA91A2A25CD597F00BD5E8B /* FlashMapHob.h */, + 9AA91A2B25CD597F00BD5E8B /* AcpiDescription.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA91A2D25CD597F00BD5E8B /* Microsoft */ = { + isa = PBXGroup; + children = ( + 9AA91A2E25CD597F00BD5E8B /* MicrosoftWindows.h */, + 9AA91A2F25CD597F00BD5E8B /* Guid */, + ); + path = Microsoft; + sourceTree = ""; + }; + 9AA91A2F25CD597F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA91A3025CD597F00BD5E8B /* MicrosoftVariable.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA91A3125CD597F00BD5E8B /* Generic */ = { + isa = PBXGroup; + children = ( + 9AA91A3225CD597F00BD5E8B /* IndustryStandard */, + ); + path = Generic; + sourceTree = ""; + }; + 9AA91A3225CD597F00BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA91A3325CD597F00BD5E8B /* Riff.h */, + 9AA91A3425CD597F00BD5E8B /* UsbHid.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA91A3525CD597F00BD5E8B /* Acidanthera */ = { + isa = PBXGroup; + children = ( + 9AA91A3625CD597F00BD5E8B /* IndustryStandard */, + 9AA91A3825CD597F00BD5E8B /* Library */, + 9AA91A7225CD597F00BD5E8B /* Protocol */, + 9AA91A7D25CD597F00BD5E8B /* Guid */, + 9AA91A8025CD597F00BD5E8B /* OpenCore.h */, + ); + path = Acidanthera; + sourceTree = ""; + }; + 9AA91A3625CD597F00BD5E8B /* IndustryStandard */ = { + isa = PBXGroup; + children = ( + 9AA91A3725CD597F00BD5E8B /* OcPeImage.h */, + ); + path = IndustryStandard; + sourceTree = ""; + }; + 9AA91A3825CD597F00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA91A3925CD597F00BD5E8B /* OcAppleImg4Lib.h */, + 9AA91A3A25CD597F00BD5E8B /* OcHeciLib.h */, + 9AA91A3B25CD597F00BD5E8B /* OcAppleKeyMapLib.h */, + 9AA91A3C25CD597F00BD5E8B /* OcCpuLib.h */, + 9AA91A3D25CD597F00BD5E8B /* OcHashServicesLib.h */, + 9AA91A3E25CD597F00BD5E8B /* OcMacInfoLib.h */, + 9AA91A3F25CD597F00BD5E8B /* OcApfsLib.h */, + 9AA91A4025CD597F00BD5E8B /* OcVirtualFsLib.h */, + 9AA91A4125CD597F00BD5E8B /* OcAppleImageConversionLib.h */, + 9AA91A4225CD597F00BD5E8B /* OcRtcLib.h */, + 9AA91A4325CD597F00BD5E8B /* OcMiscLib.h */, + 9AA91A4425CD597F00BD5E8B /* OcPeCoffLib.h */, + 9AA91A4525CD597F00BD5E8B /* OcConfigurationLib.h */, + 9AA91A4625CD597F00BD5E8B /* OcDevicePathLib.h */, + 9AA91A4725CD597F00BD5E8B /* OcFileLib.h */, + 9AA91A4825CD597F00BD5E8B /* OcTemplateLib.h */, + 9AA91A4925CD597F00BD5E8B /* OcAppleKernelLib.h */, + 9AA91A4A25CD597F00BD5E8B /* OcDriverConnectionLib.h */, + 9AA91A4B25CD597F00BD5E8B /* OcAudioLib.h */, + 9AA91A4C25CD597F00BD5E8B /* OcStorageLib.h */, + 9AA91A4D25CD597F00BD5E8B /* OcAppleRamDiskLib.h */, + 9AA91A4E25CD597F00BD5E8B /* OcAfterBootCompatLib.h */, + 9AA91A4F25CD597F00BD5E8B /* OcStringLib.h */, + 9AA91A5025CD597F00BD5E8B /* OcAppleUserInterfaceThemeLib.h */, + 9AA91A5125CD597F00BD5E8B /* OcDebugLogLib.h */, + 9AA91A5225CD597F00BD5E8B /* OcXmlLib.h */, + 9AA91A5325CD597F00BD5E8B /* OcFirmwarePasswordLib.h */, + 9AA91A5425CD597F00BD5E8B /* OcMachoLib.h */, + 9AA91A5525CD597F00BD5E8B /* OcAppleChunklistLib.h */, + 9AA91A5625CD597F00BD5E8B /* OcAcpiLib.h */, + 9AA91A5725CD597F00BD5E8B /* OcDataHubLib.h */, + 9AA91A5825CD597F00BD5E8B /* OcSerializeLib.h */, + 9AA91A5925CD597F00BD5E8B /* OcBootServicesTableLib.h */, + 9AA91A5A25CD597F00BD5E8B /* OcMemoryLib.h */, + 9AA91A5B25CD597F00BD5E8B /* OcSmcLib.h */, + 9AA91A5C25CD597F00BD5E8B /* OcOSInfoLib.h */, + 9AA91A5D25CD597F00BD5E8B /* OcBootManagementLib.h */, + 9AA91A5E25CD597F00BD5E8B /* OcHdaDevicesLib.h */, + 9AA91A5F25CD597F00BD5E8B /* OcGuardLib.h */, + 9AA91A6025CD597F00BD5E8B /* OcAppleSecureBootLib.h */, + 9AA91A6125CD597F00BD5E8B /* OcSmbiosLib.h */, + 9AA91A6225CD597F00BD5E8B /* OcUnicodeCollationEngGenericLib.h */, + 9AA91A6325CD597F00BD5E8B /* OcAppleBootPolicyLib.h */, + 9AA91A6425CD597F00BD5E8B /* OcCryptoLib.h */, + 9AA91A6525CD597F00BD5E8B /* OcDevicePropertyLib.h */, + 9AA91A6625CD597F00BD5E8B /* OcAppleKeysLib.h */, + 9AA91A6725CD597F00BD5E8B /* OcInputLib.h */, + 9AA91A6825CD597F00BD5E8B /* OcAppleDiskImageLib.h */, + 9AA91A6925CD597F00BD5E8B /* OcDeviceTreeLib.h */, + 9AA91A6A25CD597F00BD5E8B /* OcAppleEventLib.h */, + 9AA91A6B25CD597F00BD5E8B /* OcPngLib.h */, + 9AA91A6C25CD597F00BD5E8B /* OcFirmwareVolumeLib.h */, + 9AA91A6D25CD597F00BD5E8B /* OcAppleImageVerificationLib.h */, + 9AA91A6E25CD597F00BD5E8B /* OcTimerLib.h */, + 9AA91A6F25CD597F00BD5E8B /* OcRngLib.h */, + 9AA91A7025CD597F00BD5E8B /* OcConsoleLib.h */, + 9AA91A7125CD597F00BD5E8B /* OcCompressionLib.h */, + ); + path = Library; + sourceTree = ""; + }; + 9AA91A7225CD597F00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA91A7325CD597F00BD5E8B /* OcInterface.h */, + 9AA91A7425CD597F00BD5E8B /* OcFirmwareRuntime.h */, + 9AA91A7525CD597F00BD5E8B /* HdaControllerInfo.h */, + 9AA91A7625CD597F00BD5E8B /* AudioIo.h */, + 9AA91A7725CD597F00BD5E8B /* HdaIo.h */, + 9AA91A7825CD597F00BD5E8B /* OcAfterBootCompat.h */, + 9AA91A7925CD597F00BD5E8B /* HdaCodecInfo.h */, + 9AA91A7A25CD597F00BD5E8B /* OcBootstrap.h */, + 9AA91A7B25CD597F00BD5E8B /* OcLog.h */, + 9AA91A7C25CD597F00BD5E8B /* OcAudio.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA91A7D25CD597F00BD5E8B /* Guid */ = { + isa = PBXGroup; + children = ( + 9AA91A7E25CD597F00BD5E8B /* OcSmBios.h */, + 9AA91A7F25CD597F00BD5E8B /* OcVariable.h */, + ); + path = Guid; + sourceTree = ""; + }; + 9AA91A8125CD597F00BD5E8B /* VMware */ = { + isa = PBXGroup; + children = ( + 9AA91A8225CD597F00BD5E8B /* Protocol */, + ); + path = VMware; + sourceTree = ""; + }; + 9AA91A8225CD597F00BD5E8B /* Protocol */ = { + isa = PBXGroup; + children = ( + 9AA91A8325CD597F00BD5E8B /* VMwareMac.h */, + 9AA91A8425CD597F00BD5E8B /* VMwareDebug.h */, + 9AA91A8525CD597F00BD5E8B /* VMwareHda.h */, + ); + path = Protocol; + sourceTree = ""; + }; + 9AA91A8625CD597F00BD5E8B /* Platform */ = { + isa = PBXGroup; + children = ( + 9AA91A8725CD597F00BD5E8B /* OpenCanopy */, + 9AA91A9A25CD597F00BD5E8B /* OpenRuntime */, + 9AA91A9F25CD597F00BD5E8B /* OpenUsbKbDxe */, + 9AA91AAA25CD597F00BD5E8B /* CrScreenshotDxe */, + 9AA91AAF25CD597F00BD5E8B /* OpenCore */, + ); + path = Platform; + sourceTree = ""; + }; + 9AA91A8725CD597F00BD5E8B /* OpenCanopy */ = { + isa = PBXGroup; + children = ( + 9AA91A8825CD597F00BD5E8B /* GuiApp.c */, + 9AA91A8925CD597F00BD5E8B /* BmfLib.h */, + 9AA91A8A25CD597F00BD5E8B /* OpenCanopy.inf */, + 9AA91A8B25CD597F00BD5E8B /* Input */, + 9AA91A8E25CD597F00BD5E8B /* OpenCanopy.h */, + 9AA91A8F25CD597F00BD5E8B /* Output */, + 9AA91A9125CD597F00BD5E8B /* OcBootstrap.c */, + 9AA91A9225CD597F00BD5E8B /* GuiApp.h */, + 9AA91A9325CD597F00BD5E8B /* GuiIo.h */, + 9AA91A9425CD597F00BD5E8B /* OpenCanopy.c */, + 9AA91A9525CD597F00BD5E8B /* BitmapFont.c */, + 9AA91A9625CD597F00BD5E8B /* Views */, + 9AA91A9925CD597F00BD5E8B /* BmfFile.h */, + ); + path = OpenCanopy; + sourceTree = ""; + }; + 9AA91A8B25CD597F00BD5E8B /* Input */ = { + isa = PBXGroup; + children = ( + 9AA91A8C25CD597F00BD5E8B /* InputSimTextIn.c */, + 9AA91A8D25CD597F00BD5E8B /* InputSimAbsPtr.c */, + ); + path = Input; + sourceTree = ""; + }; + 9AA91A8F25CD597F00BD5E8B /* Output */ = { + isa = PBXGroup; + children = ( + 9AA91A9025CD597F00BD5E8B /* OutputStGop.c */, + ); + path = Output; + sourceTree = ""; + }; + 9AA91A9625CD597F00BD5E8B /* Views */ = { + isa = PBXGroup; + children = ( + 9AA91A9725CD597F00BD5E8B /* BootPicker.c */, + 9AA91A9825CD597F00BD5E8B /* BootPicker.h */, + ); + path = Views; + sourceTree = ""; + }; + 9AA91A9A25CD597F00BD5E8B /* OpenRuntime */ = { + isa = PBXGroup; + children = ( + 9AA91A9B25CD597F00BD5E8B /* OpenRuntimePrivate.h */, + 9AA91A9C25CD597F00BD5E8B /* OpenRuntime.inf */, + 9AA91A9D25CD597F00BD5E8B /* OpenRuntime.c */, + 9AA91A9E25CD597F00BD5E8B /* UefiRuntimeServices.c */, + ); + path = OpenRuntime; + sourceTree = ""; + }; + 9AA91A9F25CD597F00BD5E8B /* OpenUsbKbDxe */ = { + isa = PBXGroup; + children = ( + 9AA91AA025CD597F00BD5E8B /* UsbKbDxeExtra.uni */, + 9AA91AA125CD597F00BD5E8B /* AppleKey.c */, + 9AA91AA225CD597F00BD5E8B /* KeyBoard.c */, + 9AA91AA325CD597F00BD5E8B /* UsbKbDxe.inf */, + 9AA91AA425CD597F00BD5E8B /* EfiKey.h */, + 9AA91AA525CD597F00BD5E8B /* UsbKbDxe.uni */, + 9AA91AA625CD597F00BD5E8B /* ComponentName.c */, + 9AA91AA725CD597F00BD5E8B /* KeyBoard.h */, + 9AA91AA825CD597F00BD5E8B /* AppleKey.h */, + 9AA91AA925CD597F00BD5E8B /* EfiKey.c */, + ); + path = OpenUsbKbDxe; + sourceTree = ""; + }; + 9AA91AAA25CD597F00BD5E8B /* CrScreenshotDxe */ = { + isa = PBXGroup; + children = ( + 9AA91AAB25CD597F00BD5E8B /* CrScreenshotDxe.inf */, + 9AA91AAC25CD597F00BD5E8B /* LICENSE */, + 9AA91AAD25CD597F00BD5E8B /* CrScreenshotDxe.c */, + 9AA91AAE25CD597F00BD5E8B /* README.md */, + ); + path = CrScreenshotDxe; + sourceTree = ""; + }; + 9AA91AAF25CD597F00BD5E8B /* OpenCore */ = { + isa = PBXGroup; + children = ( + 9AA91AB025CD597F00BD5E8B /* OpenCoreUefi.c */, + 9AA91AB125CD597F00BD5E8B /* OpenCoreVault.c */, + 9AA91AB225CD597F00BD5E8B /* OpenCoreLib.inf */, + 9AA91AB325CD597F00BD5E8B /* OpenCore.c */, + 9AA91AB425CD597F00BD5E8B /* OpenCoreAcpi.c */, + 9AA91AB525CD597F00BD5E8B /* OpenCoreUefiInOut.c */, + 9AA91AB625CD597F00BD5E8B /* OpenCoreMisc.c */, + 9AA91AB725CD597F00BD5E8B /* OpenCorePlatform.c */, + 9AA91AB825CD597F00BD5E8B /* OpenCoreDevProps.c */, + 9AA91AB925CD597F00BD5E8B /* OpenCoreNvram.c */, + 9AA91ABA25CD597F00BD5E8B /* OpenCoreKernelPatch.c */, + 9AA91ABB25CD597F00BD5E8B /* OpenCoreUefiAudio.c */, + 9AA91ABC25CD597F00BD5E8B /* OpenCore.inf */, + 9AA91ABD25CD597F00BD5E8B /* OpenCoreKernel.c */, + ); + path = OpenCore; + sourceTree = ""; + }; + 9AA91ABE25CD597F00BD5E8B /* Tests */ = { + isa = PBXGroup; + children = ( + 9AA91ABF25CD597F00BD5E8B /* AcpiTest */, + 9AA91AC325CD597F00BD5E8B /* CryptoTest */, + 9AA91AC825CD597F00BD5E8B /* SmbiosTest */, + 9AA91ACC25CD597F00BD5E8B /* DataHubTest */, + 9AA91AD025CD597F00BD5E8B /* PropertyTest */, + ); + path = Tests; + sourceTree = ""; + }; + 9AA91ABF25CD597F00BD5E8B /* AcpiTest */ = { + isa = PBXGroup; + children = ( + 9AA91AC025CD597F00BD5E8B /* AcpiTest.c */, + 9AA91AC125CD597F00BD5E8B /* AcpiTestApp.inf */, + 9AA91AC225CD597F00BD5E8B /* AcpiTest.inf */, + ); + path = AcpiTest; + sourceTree = ""; + }; + 9AA91AC325CD597F00BD5E8B /* CryptoTest */ = { + isa = PBXGroup; + children = ( + 9AA91AC425CD597F00BD5E8B /* CryptoTest.inf */, + 9AA91AC525CD597F00BD5E8B /* CryptoTest.c */, + 9AA91AC625CD597F00BD5E8B /* CryptoSamples.h */, + 9AA91AC725CD597F00BD5E8B /* CryptoTestApp.inf */, + ); + path = CryptoTest; + sourceTree = ""; + }; + 9AA91AC825CD597F00BD5E8B /* SmbiosTest */ = { + isa = PBXGroup; + children = ( + 9AA91AC925CD597F00BD5E8B /* SmbiosTestApp.inf */, + 9AA91ACA25CD597F00BD5E8B /* SmbiosTest.inf */, + 9AA91ACB25CD597F00BD5E8B /* SmbiosTest.c */, + ); + path = SmbiosTest; + sourceTree = ""; + }; + 9AA91ACC25CD597F00BD5E8B /* DataHubTest */ = { + isa = PBXGroup; + children = ( + 9AA91ACD25CD597F00BD5E8B /* DataHubTestApp.inf */, + 9AA91ACE25CD597F00BD5E8B /* DataHubTest.inf */, + 9AA91ACF25CD597F00BD5E8B /* DataHubTest.c */, + ); + path = DataHubTest; + sourceTree = ""; + }; + 9AA91AD025CD597F00BD5E8B /* PropertyTest */ = { + isa = PBXGroup; + children = ( + 9AA91AD125CD597F00BD5E8B /* PropertyTest.inf */, + 9AA91AD225CD597F00BD5E8B /* PropertyTest.c */, + 9AA91AD325CD597F00BD5E8B /* PropertyTestApp.inf */, + ); + path = PropertyTest; + sourceTree = ""; + }; + 9AA91AD425CD597F00BD5E8B /* Legacy */ = { + isa = PBXGroup; + children = ( + 9AA91AD525CD597F00BD5E8B /* BootLoader */, + 9AA91AD925CD597F00BD5E8B /* BootPlatform */, + 9AA91B2E25CD597F00BD5E8B /* README.md */, + 9AA91B2F25CD597F00BD5E8B /* BootSector */, + 9AA91B3425CD597F00BD5E8B /* BinDrivers */, + ); + path = Legacy; + sourceTree = ""; + }; + 9AA91AD525CD597F00BD5E8B /* BootLoader */ = { + isa = PBXGroup; + children = ( + 9AA91AD625CD597F00BD5E8B /* Makefile */, + 9AA91AD725CD597F00BD5E8B /* boot0.nasm */, + 9AA91AD825CD597F00BD5E8B /* boot1f32.nasm */, + ); + path = BootLoader; + sourceTree = ""; + }; + 9AA91AD925CD597F00BD5E8B /* BootPlatform */ = { + isa = PBXGroup; + children = ( + 9AA91ADA25CD597F00BD5E8B /* SmbiosGenDxe */, + 9AA91ADF25CD597F00BD5E8B /* CpuDxe */, + 9AA91AE725CD597F00BD5E8B /* EfiLdr */, + 9AA91AF125CD597F00BD5E8B /* PciRootBridgeDxe */, + 9AA91AFA25CD597F00BD5E8B /* LegacyRegion2Dxe */, + 9AA91AFE25CD597F00BD5E8B /* AcpiResetDxe */, + 9AA91B0125CD597F00BD5E8B /* DxeIpl */, + 9AA91B1125CD597F00BD5E8B /* BiosVideo */, + 9AA91B1825CD597F00BD5E8B /* BdsDxe */, + 9AA91B1D25CD597F00BD5E8B /* PciBusNoEnumerationDxe */, + ); + path = BootPlatform; + sourceTree = ""; + }; + 9AA91ADA25CD597F00BD5E8B /* SmbiosGenDxe */ = { + isa = PBXGroup; + children = ( + 9AA91ADB25CD597F00BD5E8B /* SmbiosGenStrings.uni */, + 9AA91ADC25CD597F00BD5E8B /* SmbiosGen.c */, + 9AA91ADD25CD597F00BD5E8B /* SmbiosGen.inf */, + 9AA91ADE25CD597F00BD5E8B /* SmbiosGen.h */, + ); + path = SmbiosGenDxe; + sourceTree = ""; + }; + 9AA91ADF25CD597F00BD5E8B /* CpuDxe */ = { + isa = PBXGroup; + children = ( + 9AA91AE025CD597F00BD5E8B /* X64 */, + 9AA91AE225CD597F00BD5E8B /* CpuDxe.c */, + 9AA91AE325CD597F00BD5E8B /* Ia32 */, + 9AA91AE525CD597F00BD5E8B /* CpuDxe.h */, + 9AA91AE625CD597F00BD5E8B /* CpuDxe.inf */, + ); + path = CpuDxe; + sourceTree = ""; + }; + 9AA91AE025CD597F00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91AE125CD597F00BD5E8B /* CpuInterrupt.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91AE325CD597F00BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91AE425CD597F00BD5E8B /* CpuInterrupt.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91AE725CD597F00BD5E8B /* EfiLdr */ = { + isa = PBXGroup; + children = ( + 9AA91AE825CD597F00BD5E8B /* LzmaDecompress.h */, + 9AA91AE925CD597F00BD5E8B /* PeLoader.c */, + 9AA91AEA25CD597F00BD5E8B /* EfiLdrHandoff.h */, + 9AA91AEB25CD597F00BD5E8B /* Support.c */, + 9AA91AEC25CD597F00BD5E8B /* EfiLoader.c */, + 9AA91AED25CD597F00BD5E8B /* EfiLdr.h */, + 9AA91AEE25CD597F00BD5E8B /* PeLoader.h */, + 9AA91AEF25CD597F00BD5E8B /* EfiLdr.inf */, + 9AA91AF025CD597F00BD5E8B /* Support.h */, + ); + path = EfiLdr; + sourceTree = ""; + }; + 9AA91AF125CD597F00BD5E8B /* PciRootBridgeDxe */ = { + isa = PBXGroup; + children = ( + 9AA91AF225CD597F00BD5E8B /* PciRootBridgeNoEnumeration.inf */, + 9AA91AF325CD597F00BD5E8B /* PcatPciRootBridge.c */, + 9AA91AF425CD597F00BD5E8B /* PcatPciRootBridgeDevicePath.c */, + 9AA91AF525CD597F00BD5E8B /* DeviceIo.h */, + 9AA91AF625CD597F00BD5E8B /* PcatPciRootBridgeIo.c */, + 9AA91AF725CD597F00BD5E8B /* PcatPciRootBridge.h */, + 9AA91AF825CD597F00BD5E8B /* PcatIo.c */, + 9AA91AF925CD597F00BD5E8B /* DeviceIo.c */, + ); + path = PciRootBridgeDxe; + sourceTree = ""; + }; + 9AA91AFA25CD597F00BD5E8B /* LegacyRegion2Dxe */ = { + isa = PBXGroup; + children = ( + 9AA91AFB25CD597F00BD5E8B /* LegacyRegion2.c */, + 9AA91AFC25CD597F00BD5E8B /* LegacyRegion2Dxe.inf */, + 9AA91AFD25CD597F00BD5E8B /* LegacyRegion2.h */, + ); + path = LegacyRegion2Dxe; + sourceTree = ""; + }; + 9AA91AFE25CD597F00BD5E8B /* AcpiResetDxe */ = { + isa = PBXGroup; + children = ( + 9AA91AFF25CD597F00BD5E8B /* Reset.c */, + 9AA91B0025CD597F00BD5E8B /* Reset.inf */, + ); + path = AcpiResetDxe; + sourceTree = ""; + }; + 9AA91B0125CD597F00BD5E8B /* DxeIpl */ = { + isa = PBXGroup; + children = ( + 9AA91B0225CD597F00BD5E8B /* LegacyTable.c */, + 9AA91B0325CD597F00BD5E8B /* DxeIpl.inf */, + 9AA91B0425CD597F00BD5E8B /* X64 */, + 9AA91B0825CD597F00BD5E8B /* DxeIpl.h */, + 9AA91B0925CD597F00BD5E8B /* HobGeneration.h */, + 9AA91B0A25CD597F00BD5E8B /* LegacyTable.h */, + 9AA91B0B25CD597F00BD5E8B /* DxeInit.c */, + 9AA91B0C25CD597F00BD5E8B /* Ia32 */, + 9AA91B1025CD597F00BD5E8B /* HobGeneration.c */, + ); + path = DxeIpl; + sourceTree = ""; + }; + 9AA91B0425CD597F00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91B0525CD597F00BD5E8B /* Paging.c */, + 9AA91B0625CD597F00BD5E8B /* EnterDxeCore.c */, + 9AA91B0725CD597F00BD5E8B /* VirtualMemory.h */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91B0C25CD597F00BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91B0D25CD597F00BD5E8B /* Paging.c */, + 9AA91B0E25CD597F00BD5E8B /* EnterDxeCore.c */, + 9AA91B0F25CD597F00BD5E8B /* VirtualMemory.h */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91B1125CD597F00BD5E8B /* BiosVideo */ = { + isa = PBXGroup; + children = ( + 9AA91B1225CD597F00BD5E8B /* LegacyBiosThunk.c */, + 9AA91B1325CD597F00BD5E8B /* VesaBiosExtensions.h */, + 9AA91B1425CD597F00BD5E8B /* BiosVideo.h */, + 9AA91B1525CD597F00BD5E8B /* ComponentName.c */, + 9AA91B1625CD597F00BD5E8B /* BiosVideo.inf */, + 9AA91B1725CD597F00BD5E8B /* BiosVideo.c */, + ); + path = BiosVideo; + sourceTree = ""; + }; + 9AA91B1825CD597F00BD5E8B /* BdsDxe */ = { + isa = PBXGroup; + children = ( + 9AA91B1925CD597F00BD5E8B /* BdsEntry.c */, + 9AA91B1A25CD597F00BD5E8B /* BdsDxe.inf */, + 9AA91B1B25CD597F00BD5E8B /* BdsDxe.uni */, + 9AA91B1C25CD597F00BD5E8B /* Bds.h */, + ); + path = BdsDxe; + sourceTree = ""; + }; + 9AA91B1D25CD597F00BD5E8B /* PciBusNoEnumerationDxe */ = { + isa = PBXGroup; + children = ( + 9AA91B1E25CD597F00BD5E8B /* PciEnumerator.c */, + 9AA91B1F25CD597F00BD5E8B /* PciDeviceSupport.c */, + 9AA91B2025CD597F00BD5E8B /* PciIo.c */, + 9AA91B2125CD597F00BD5E8B /* PciCommand.c */, + 9AA91B2225CD597F00BD5E8B /* PciEnumeratorSupport.c */, + 9AA91B2325CD597F00BD5E8B /* ComponentName.c */, + 9AA91B2425CD597F00BD5E8B /* PciBus.c */, + 9AA91B2525CD597F00BD5E8B /* PciPowerManagement.c */, + 9AA91B2625CD597F00BD5E8B /* PciBusNoEnumeration.inf */, + 9AA91B2725CD597F00BD5E8B /* PciEnumerator.h */, + 9AA91B2825CD597F00BD5E8B /* PciCommand.h */, + 9AA91B2925CD597F00BD5E8B /* PciIo.h */, + 9AA91B2A25CD597F00BD5E8B /* PciDeviceSupport.h */, + 9AA91B2B25CD597F00BD5E8B /* PciPowerManagement.h */, + 9AA91B2C25CD597F00BD5E8B /* PciBus.h */, + 9AA91B2D25CD597F00BD5E8B /* PciEnumeratorSupport.h */, + ); + path = PciBusNoEnumerationDxe; + sourceTree = ""; + }; + 9AA91B2F25CD597F00BD5E8B /* BootSector */ = { + isa = PBXGroup; + children = ( + 9AA91B3025CD597F00BD5E8B /* Makefile */, + 9AA91B3125CD597F00BD5E8B /* start.nasm */, + 9AA91B3225CD597F00BD5E8B /* efi64.nasm */, + 9AA91B3325CD597F00BD5E8B /* efi32.nasm */, + ); + path = BootSector; + sourceTree = ""; + }; + 9AA91B3425CD597F00BD5E8B /* BinDrivers */ = { + isa = PBXGroup; + children = ( + 9AA91B3525CD597F00BD5E8B /* HfsPlus.inf */, + 9AA91B3625CD597F00BD5E8B /* OpenUsbKbDxe.inf */, + 9AA91B3725CD597F00BD5E8B /* README.md */, + ); + path = BinDrivers; + sourceTree = ""; + }; + 9AA91B3825CD597F00BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA91B5725CD597F00BD5E8B /* DuetBdsLib */, + 9AA91C6825CD598000BD5E8B /* DuetTimerLib */, + 9AA91C3325CD598000BD5E8B /* OcAcpiLib */, + 9AA91C6B25CD598000BD5E8B /* OcAfterBootCompatLib */, + 9AA91B7825CD597F00BD5E8B /* OcApfsLib */, + 9AA91C2D25CD598000BD5E8B /* OcAppleBootPolicyLib */, + 9AA91B8D25CD597F00BD5E8B /* OcAppleChunklistLib */, + 9AA91C5125CD598000BD5E8B /* OcAppleDiskImageLib */, + 9AA91B7025CD597F00BD5E8B /* OcAppleEventLib */, + 9AA91B9A25CD597F00BD5E8B /* OcAppleImageConversionLib */, + 9AA91B9725CD597F00BD5E8B /* OcAppleImageVerificationLib */, + 9AA91BB925CD597F00BD5E8B /* OcAppleImg4Lib */, + 9AA91C9925CD598000BD5E8B /* OcAppleKernelLib */, + 9AA91C0425CD598000BD5E8B /* OcAppleKeyMapLib */, + 9AA91C2A25CD598000BD5E8B /* OcAppleKeysLib */, + 9AA91CEB25CD598000BD5E8B /* OcAppleRamDiskLib */, + 9AA91C1D25CD598000BD5E8B /* OcAppleSecureBootLib */, + 9AA91C3025CD598000BD5E8B /* OcAppleUserInterfaceThemeLib */, + 9AA91C8A25CD598000BD5E8B /* OcAudioLib */, + 9AA91BD325CD598000BD5E8B /* OcBootManagementLib */, + 9AA91C6325CD598000BD5E8B /* OcBootServicesTableLib */, + 9AA91CDD25CD598000BD5E8B /* OcCompilerIntrinsicsLib */, + 9AA91BE525CD598000BD5E8B /* OcCompressionLib */, + 9AA91CC425CD598000BD5E8B /* OcConfigurationLib */, + 9AA91B9325CD597F00BD5E8B /* OcConsoleControlEntryModeLib */, + 9AA91B5F25CD597F00BD5E8B /* OcConsoleLib */, + 9AA91CB825CD598000BD5E8B /* OcCpuLib */, + 9AA91B9D25CD597F00BD5E8B /* OcCryptoLib */, + 9AA91B5225CD597F00BD5E8B /* OcDataHubLib */, + 9AA91C8225CD598000BD5E8B /* OcDebugLogLib */, + 9AA91CCB25CD598000BD5E8B /* OcDebugLogLibOc2Clover */, + 9AA91C7E25CD598000BD5E8B /* OcDevicePathLib */, + 9AA91CD425CD598000BD5E8B /* OcDevicePropertyLib */, + 9AA91B7F25CD597F00BD5E8B /* OcDeviceTreeLib */, + 9AA91CC825CD598000BD5E8B /* OcDriverConnectionLib */, + 9AA91CAD25CD598000BD5E8B /* OcFileLib */, + 9AA91C4D25CD598000BD5E8B /* OcFirmwarePasswordLib */, + 9AA91C7925CD598000BD5E8B /* OcFirmwareVolumeLib */, + 9AA91C2025CD598000BD5E8B /* OcGuardLib */, + 9AA91B8925CD597F00BD5E8B /* OcHashServicesLib */, + 9AA91C5F25CD598000BD5E8B /* OcHdaDevicesLib */, + 9AA91B9025CD597F00BD5E8B /* OcHeciLib */, + 9AA91C1225CD598000BD5E8B /* OcHiiDatabaseLib */, + 9AA91C3725CD598000BD5E8B /* OcInputLib */, + 9AA91B3925CD597F00BD5E8B /* OcMachoLib */, + 9AA91B4125CD597F00BD5E8B /* OcMacInfoLib */, + 9AA91CE125CD598000BD5E8B /* OcMemoryLib */, + 9AA91BAF25CD597F00BD5E8B /* OcMiscLib */, + 9AA91CD725CD598000BD5E8B /* OcOSInfoLib */, + 9AA91CAA25CD598000BD5E8B /* OcPeCoffLib */, + 9AA91B4A25CD597F00BD5E8B /* OcPngLib */, + 9AA91C5725CD598000BD5E8B /* OcRngLib */, + 9AA91B6B25CD597F00BD5E8B /* OcRtcLib */, + 9AA91B4F25CD597F00BD5E8B /* OcSerializeLib */, + 9AA91C0725CD598000BD5E8B /* OcSmbiosLib */, + 9AA91CEE25CD598000BD5E8B /* OcSmcLib */, + 9AA91C0F25CD598000BD5E8B /* OcStorageLib */, + 9AA91B4625CD597F00BD5E8B /* OcStringLib */, + 9AA91CDA25CD598000BD5E8B /* OcTemplateLib */, + 9AA91BB625CD597F00BD5E8B /* OcTimerLib */, + 9AA91B8225CD597F00BD5E8B /* OcUnicodeCollationEngLib */, + 9AA91C9225CD598000BD5E8B /* OcVirtualFsLib */, + 9AA91CD125CD598000BD5E8B /* OcXmlLib */, + ); + path = Library; + sourceTree = ""; + }; + 9AA91B3925CD597F00BD5E8B /* OcMachoLib */ = { + isa = PBXGroup; + children = ( + 9AA91B3A25CD597F00BD5E8B /* Fat.c */, + 9AA91B3B25CD597F00BD5E8B /* OcMachoLibInternal.h */, + 9AA91B3C25CD597F00BD5E8B /* OcMachoLib.inf */, + 9AA91B3D25CD597F00BD5E8B /* Header.c */, + 9AA91B3E25CD597F00BD5E8B /* Symbols.c */, + 9AA91B3F25CD597F00BD5E8B /* Relocations.c */, + 9AA91B4025CD597F00BD5E8B /* CxxSymbols.c */, + ); + path = OcMachoLib; + sourceTree = ""; + }; + 9AA91B4125CD597F00BD5E8B /* OcMacInfoLib */ = { + isa = PBXGroup; + children = ( + 9AA91B4225CD597F00BD5E8B /* MacInfoInternal.h */, + 9AA91B4325CD597F00BD5E8B /* AutoGenerated.c */, + 9AA91B4425CD597F00BD5E8B /* OcMacInfoLib.c */, + 9AA91B4525CD597F00BD5E8B /* OcMacInfoLib.inf */, + ); + path = OcMacInfoLib; + sourceTree = ""; + }; + 9AA91B4625CD597F00BD5E8B /* OcStringLib */ = { + isa = PBXGroup; + children = ( + 9AA91B4725CD597F00BD5E8B /* OcStringLib.inf */, + 9AA91B4825CD597F00BD5E8B /* OcUnicodeLib.c */, + 9AA91B4925CD597F00BD5E8B /* OcAsciiLib.c */, + ); + path = OcStringLib; + sourceTree = ""; + }; + 9AA91B4A25CD597F00BD5E8B /* OcPngLib */ = { + isa = PBXGroup; + children = ( + 9AA91B4B25CD597F00BD5E8B /* OcPngLib.inf */, + 9AA91B4C25CD597F00BD5E8B /* lodepng.h */, + 9AA91B4D25CD597F00BD5E8B /* OcPng.c */, + 9AA91B4E25CD597F00BD5E8B /* lodepng.c */, + ); + path = OcPngLib; + sourceTree = ""; + }; + 9AA91B4F25CD597F00BD5E8B /* OcSerializeLib */ = { + isa = PBXGroup; + children = ( + 9AA91B5025CD597F00BD5E8B /* OcSerializeLib.c */, + 9AA91B5125CD597F00BD5E8B /* OcSerializeLib.inf */, + ); + path = OcSerializeLib; + sourceTree = ""; + }; + 9AA91B5225CD597F00BD5E8B /* OcDataHubLib */ = { + isa = PBXGroup; + children = ( + 9AA91B5325CD597F00BD5E8B /* OcDataHubLib.c */, + 9AA91B5425CD597F00BD5E8B /* OcDataHubLib.inf */, + 9AA91B5525CD597F00BD5E8B /* DataHub.c */, + 9AA91B5625CD597F00BD5E8B /* DataHub.h */, + ); + path = OcDataHubLib; + sourceTree = ""; + }; + 9AA91B5725CD597F00BD5E8B /* DuetBdsLib */ = { + isa = PBXGroup; + children = ( + 9AA91B5825CD597F00BD5E8B /* PlatformData.c */, + 9AA91B5925CD597F00BD5E8B /* BdsPlatform.h */, + 9AA91B5A25CD597F00BD5E8B /* DuetBdsLib.inf */, + 9AA91B5B25CD597F00BD5E8B /* BdsMisc.c */, + 9AA91B5C25CD597F00BD5E8B /* BdsPlatform.c */, + 9AA91B5D25CD597F00BD5E8B /* BdsConnect.c */, + 9AA91B5E25CD597F00BD5E8B /* BdsConsole.c */, + ); + path = DuetBdsLib; + sourceTree = ""; + }; + 9AA91B5F25CD597F00BD5E8B /* OcConsoleLib */ = { + isa = PBXGroup; + children = ( + 9AA91B6025CD597F00BD5E8B /* ConsoleControl.c */, + 9AA91B6125CD597F00BD5E8B /* OcConsoleLibInternal.h */, + 9AA91B6225CD597F00BD5E8B /* ResolutionParsing.c */, + 9AA91B6325CD597F00BD5E8B /* OcConsoleLib.inf */, + 9AA91B6425CD597F00BD5E8B /* UgaPassThrough.c */, + 9AA91B6525CD597F00BD5E8B /* OcConsoleLib.c */, + 9AA91B6625CD597F00BD5E8B /* FramebufferInfo.c */, + 9AA91B6725CD597F00BD5E8B /* ConsoleGop.c */, + 9AA91B6825CD597F00BD5E8B /* TextOutputNull.c */, + 9AA91B6925CD597F00BD5E8B /* TextOutputSystem.c */, + 9AA91B6A25CD597F00BD5E8B /* TextOutputBuiltin.c */, + ); + path = OcConsoleLib; + sourceTree = ""; + }; + 9AA91B6B25CD597F00BD5E8B /* OcRtcLib */ = { + isa = PBXGroup; + children = ( + 9AA91B6C25CD597F00BD5E8B /* AppleRtcRam.c */, + 9AA91B6D25CD597F00BD5E8B /* OcRtcLibInternal.h */, + 9AA91B6E25CD597F00BD5E8B /* OcRtcLib.inf */, + 9AA91B6F25CD597F00BD5E8B /* OcRtcLib.c */, + ); + path = OcRtcLib; + sourceTree = ""; + }; + 9AA91B7025CD597F00BD5E8B /* OcAppleEventLib */ = { + isa = PBXGroup; + children = ( + 9AA91B7125CD597F00BD5E8B /* OcAppleEventLib.inf */, + 9AA91B7225CD597F00BD5E8B /* AppleEventInternal.h */, + 9AA91B7325CD597F00BD5E8B /* OcAppleEventLib.c */, + 9AA91B7425CD597F00BD5E8B /* AppleKeyMap.c */, + 9AA91B7525CD597F00BD5E8B /* EventQueue.c */, + 9AA91B7625CD597F00BD5E8B /* KeyHandler.c */, + 9AA91B7725CD597F00BD5E8B /* PointerHandler.c */, + ); + path = OcAppleEventLib; + sourceTree = ""; + }; + 9AA91B7825CD597F00BD5E8B /* OcApfsLib */ = { + isa = PBXGroup; + children = ( + 9AA91B7925CD597F00BD5E8B /* OcApfsInternal.h */, + 9AA91B7A25CD597F00BD5E8B /* OcApfsIo.c */, + 9AA91B7B25CD597F00BD5E8B /* OcApfsLib.c */, + 9AA91B7C25CD597F00BD5E8B /* OcApfsFusion.c */, + 9AA91B7D25CD597F00BD5E8B /* OcApfsLib.inf */, + 9AA91B7E25CD597F00BD5E8B /* OcApfsConnect.c */, + ); + path = OcApfsLib; + sourceTree = ""; + }; + 9AA91B7F25CD597F00BD5E8B /* OcDeviceTreeLib */ = { + isa = PBXGroup; + children = ( + 9AA91B8025CD597F00BD5E8B /* OcDeviceTreeLib.c */, + 9AA91B8125CD597F00BD5E8B /* OcDeviceTreeLib.inf */, + ); + path = OcDeviceTreeLib; + sourceTree = ""; + }; + 9AA91B8225CD597F00BD5E8B /* OcUnicodeCollationEngLib */ = { + isa = PBXGroup; + children = ( + 9AA91B8325CD597F00BD5E8B /* OcUnicodeCollationEngLocal.c */, + 9AA91B8425CD597F00BD5E8B /* OcUnicodeCollationEngLocalLib.inf */, + 9AA91B8525CD597F00BD5E8B /* OcUnicodeCollationEngGenericLib.inf */, + 9AA91B8625CD597F00BD5E8B /* OcUnicodeCollationEngGeneric.c */, + 9AA91B8725CD597F00BD5E8B /* OcUnicodeCollationEngCommon.c */, + 9AA91B8825CD597F00BD5E8B /* OcUnicodeCollationEngInternal.h */, + ); + path = OcUnicodeCollationEngLib; + sourceTree = ""; + }; + 9AA91B8925CD597F00BD5E8B /* OcHashServicesLib */ = { + isa = PBXGroup; + children = ( + 9AA91B8A25CD597F00BD5E8B /* OcHashServicesLibInternal.h */, + 9AA91B8B25CD597F00BD5E8B /* OcHashServicesLib.c */, + 9AA91B8C25CD597F00BD5E8B /* OcHashServicesLib.inf */, + ); + path = OcHashServicesLib; + sourceTree = ""; + }; + 9AA91B8D25CD597F00BD5E8B /* OcAppleChunklistLib */ = { + isa = PBXGroup; + children = ( + 9AA91B8E25CD597F00BD5E8B /* OcAppleChunklistLib.c */, + 9AA91B8F25CD597F00BD5E8B /* OcAppleChunklistLib.inf */, + ); + path = OcAppleChunklistLib; + sourceTree = ""; + }; + 9AA91B9025CD597F00BD5E8B /* OcHeciLib */ = { + isa = PBXGroup; + children = ( + 9AA91B9125CD597F00BD5E8B /* OcHeciLib.c */, + 9AA91B9225CD597F00BD5E8B /* OcHeciLib.inf */, + ); + path = OcHeciLib; + sourceTree = ""; + }; + 9AA91B9325CD597F00BD5E8B /* OcConsoleControlEntryModeLib */ = { + isa = PBXGroup; + children = ( + 9AA91B9425CD597F00BD5E8B /* OcConsoleControlEntryModeGenericLib.inf */, + 9AA91B9525CD597F00BD5E8B /* OcConsoleControlEntryModeLib.c */, + 9AA91B9625CD597F00BD5E8B /* OcConsoleControlEntryModeLocalLib.inf */, + ); + path = OcConsoleControlEntryModeLib; + sourceTree = ""; + }; + 9AA91B9725CD597F00BD5E8B /* OcAppleImageVerificationLib */ = { + isa = PBXGroup; + children = ( + 9AA91B9825CD597F00BD5E8B /* OcAppleImageVerificationLib.inf */, + 9AA91B9925CD597F00BD5E8B /* OcAppleImageVerification.c */, + ); + path = OcAppleImageVerificationLib; + sourceTree = ""; + }; + 9AA91B9A25CD597F00BD5E8B /* OcAppleImageConversionLib */ = { + isa = PBXGroup; + children = ( + 9AA91B9B25CD597F00BD5E8B /* OcAppleImageConversionLib.inf */, + 9AA91B9C25CD597F00BD5E8B /* OcAppleImageConversionLib.c */, + ); + path = OcAppleImageConversionLib; + sourceTree = ""; + }; + 9AA91B9D25CD597F00BD5E8B /* OcCryptoLib */ = { + isa = PBXGroup; + children = ( + 9AA91B9E25CD597F00BD5E8B /* Aes.c */, + 9AA91B9F25CD597F00BD5E8B /* Sha2.c */, + 9AA91BA025CD597F00BD5E8B /* BigNumMontgomery.c */, + 9AA91BA125CD597F00BD5E8B /* OcCryptoLib.inf */, + 9AA91BA225CD597F00BD5E8B /* X64 */, + 9AA91BA425CD597F00BD5E8B /* BigNumLibInternal.h */, + 9AA91BA525CD597F00BD5E8B /* BigNumLib.h */, + 9AA91BA625CD597F00BD5E8B /* Sha1.c */, + 9AA91BA725CD597F00BD5E8B /* BigNumPrimitives.c */, + 9AA91BA825CD597F00BD5E8B /* PasswordHash.c */, + 9AA91BA925CD597F00BD5E8B /* Ia32 */, + 9AA91BAB25CD597F00BD5E8B /* ChaCha.c */, + 9AA91BAC25CD597F00BD5E8B /* RsaDigitalSign.c */, + 9AA91BAD25CD597F00BD5E8B /* Md5.c */, + 9AA91BAE25CD597F00BD5E8B /* SecureMem.c */, + ); + path = OcCryptoLib; + sourceTree = ""; + }; + 9AA91BA225CD597F00BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91BA325CD597F00BD5E8B /* BigNumWordMul64.c */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91BA925CD597F00BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91BAA25CD597F00BD5E8B /* BigNumWordMul64.c */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91BAF25CD597F00BD5E8B /* OcMiscLib */ = { + isa = PBXGroup; + children = ( + 9AA91BB025CD597F00BD5E8B /* DirectReset.c */, + 9AA91BB125CD597F00BD5E8B /* Math.c */, + 9AA91BB225CD597F00BD5E8B /* ReleaseUsbOwnership.c */, + 9AA91BB325CD597F00BD5E8B /* ProtocolSupport.c */, + 9AA91BB425CD597F00BD5E8B /* OcMiscLib.inf */, + 9AA91BB525CD597F00BD5E8B /* DataPatcher.c */, + ); + path = OcMiscLib; + sourceTree = ""; + }; + 9AA91BB625CD597F00BD5E8B /* OcTimerLib */ = { + isa = PBXGroup; + children = ( + 9AA91BB725CD597F00BD5E8B /* OcTimerLib.c */, + 9AA91BB825CD597F00BD5E8B /* OcTimerLib.inf */, + ); + path = OcTimerLib; + sourceTree = ""; + }; + 9AA91BB925CD597F00BD5E8B /* OcAppleImg4Lib */ = { + isa = PBXGroup; + children = ( + 9AA91BBA25CD597F00BD5E8B /* libDER */, + 9AA91BC925CD598000BD5E8B /* OcAppleImg4Lib.c */, + 9AA91BCA25CD598000BD5E8B /* OcAppleImg4Lib.inf */, + 9AA91BCB25CD598000BD5E8B /* libDER_config.h */, + 9AA91BCC25CD598000BD5E8B /* libDERImg4 */, + ); + path = OcAppleImg4Lib; + sourceTree = ""; + }; + 9AA91BBA25CD597F00BD5E8B /* libDER */ = { + isa = PBXGroup; + children = ( + 9AA91BBB25CD597F00BD5E8B /* DER_CertCrl.c */, + 9AA91BBC25CD597F00BD5E8B /* DER_Keys.c */, + 9AA91BBD25CD597F00BD5E8B /* DER_Encode.h */, + 9AA91BBE25CD597F00BD5E8B /* oids.h */, + 9AA91BBF25CD597F00BD5E8B /* libDER.h */, + 9AA91BC025CD597F00BD5E8B /* DER_Decode.h */, + 9AA91BC125CD597F00BD5E8B /* DER_Digest.c */, + 9AA91BC225CD597F00BD5E8B /* DER_CertCrl.h */, + 9AA91BC325CD597F00BD5E8B /* asn1Types.h */, + 9AA91BC425CD597F00BD5E8B /* DER_Keys.h */, + 9AA91BC525CD597F00BD5E8B /* DER_Decode.c */, + 9AA91BC625CD597F00BD5E8B /* oids.c */, + 9AA91BC725CD597F00BD5E8B /* DER_Encode.c */, + 9AA91BC825CD598000BD5E8B /* DER_Digest.h */, + ); + path = libDER; + sourceTree = ""; + }; + 9AA91BCC25CD598000BD5E8B /* libDERImg4 */ = { + isa = PBXGroup; + children = ( + 9AA91BCD25CD598000BD5E8B /* libDERImg4_config.h */, + 9AA91BCE25CD598000BD5E8B /* Img4oids.c */, + 9AA91BCF25CD598000BD5E8B /* DER_Img4Manifest.h */, + 9AA91BD025CD598000BD5E8B /* DER_Img4Manifest.c */, + 9AA91BD125CD598000BD5E8B /* libDERImg4.h */, + 9AA91BD225CD598000BD5E8B /* Img4oids.h */, + ); + path = libDERImg4; + sourceTree = ""; + }; + 9AA91BD325CD598000BD5E8B /* OcBootManagementLib */ = { + isa = PBXGroup; + children = ( + 9AA91BD425CD598000BD5E8B /* ImageLoader.c */, + 9AA91BD525CD598000BD5E8B /* OcBootManagementLib.c */, + 9AA91BD625CD598000BD5E8B /* BootEntryInfo.c */, + 9AA91BD725CD598000BD5E8B /* DmgBootSupport.c */, + 9AA91BD825CD598000BD5E8B /* ApplePanic.c */, + 9AA91BD925CD598000BD5E8B /* AppleRecovery.c */, + 9AA91BDA25CD598000BD5E8B /* BootManagementInternal.h */, + 9AA91BDB25CD598000BD5E8B /* HotKeySupport.c */, + 9AA91BDC25CD598000BD5E8B /* OcBootManagementLib.inf */, + 9AA91BDD25CD598000BD5E8B /* PolicyManagement.c */, + 9AA91BDE25CD598000BD5E8B /* DefaultEntryChoice.c */, + 9AA91BDF25CD598000BD5E8B /* BootAudio.c */, + 9AA91BE025CD598000BD5E8B /* BootArguments.c */, + 9AA91BE125CD598000BD5E8B /* BootSignature.bin */, + 9AA91BE225CD598000BD5E8B /* AppleHibernate.c */, + 9AA91BE325CD598000BD5E8B /* BootEntryManagement.c */, + 9AA91BE425CD598000BD5E8B /* VariableManagement.c */, + ); + path = OcBootManagementLib; + sourceTree = ""; + }; + 9AA91BE525CD598000BD5E8B /* OcCompressionLib */ = { + isa = PBXGroup; + children = ( + 9AA91BE625CD598000BD5E8B /* lzss */, + 9AA91BE925CD598000BD5E8B /* OcCompressionLib.c */, + 9AA91BEA25CD598000BD5E8B /* zlib */, + 9AA91C0025CD598000BD5E8B /* OcCompressionLib.inf */, + 9AA91C0125CD598000BD5E8B /* lzvn */, + ); + path = OcCompressionLib; + sourceTree = ""; + }; + 9AA91BE625CD598000BD5E8B /* lzss */ = { + isa = PBXGroup; + children = ( + 9AA91BE725CD598000BD5E8B /* lzss.c */, + 9AA91BE825CD598000BD5E8B /* lzss.h */, + ); + path = lzss; + sourceTree = ""; + }; + 9AA91BEA25CD598000BD5E8B /* zlib */ = { + isa = PBXGroup; + children = ( + 9AA91BEB25CD598000BD5E8B /* zlib_uefi.c */, + 9AA91BEC25CD598000BD5E8B /* zutil.h */, + 9AA91BED25CD598000BD5E8B /* inftrees.h */, + 9AA91BEE25CD598000BD5E8B /* inflate.c */, + 9AA91BEF25CD598000BD5E8B /* compress.c */, + 9AA91BF025CD598000BD5E8B /* deflate.c */, + 9AA91BF125CD598000BD5E8B /* inffixed.h */, + 9AA91BF225CD598000BD5E8B /* trees.h */, + 9AA91BF325CD598000BD5E8B /* inffast.h */, + 9AA91BF425CD598000BD5E8B /* crc32.c */, + 9AA91BF525CD598000BD5E8B /* infback.c */, + 9AA91BF625CD598000BD5E8B /* deflate.h */, + 9AA91BF725CD598000BD5E8B /* zlib.h */, + 9AA91BF825CD598000BD5E8B /* inflate.h */, + 9AA91BF925CD598000BD5E8B /* inftrees.c */, + 9AA91BFA25CD598000BD5E8B /* uncompr.c */, + 9AA91BFB25CD598000BD5E8B /* trees.c */, + 9AA91BFC25CD598000BD5E8B /* crc32.h */, + 9AA91BFD25CD598000BD5E8B /* inffast.c */, + 9AA91BFE25CD598000BD5E8B /* adler32.c */, + 9AA91BFF25CD598000BD5E8B /* zconf.h */, + ); + path = zlib; + sourceTree = ""; + }; + 9AA91C0125CD598000BD5E8B /* lzvn */ = { + isa = PBXGroup; + children = ( + 9AA91C0225CD598000BD5E8B /* lzvn.h */, + 9AA91C0325CD598000BD5E8B /* lzvn.c */, + ); + path = lzvn; + sourceTree = ""; + }; + 9AA91C0425CD598000BD5E8B /* OcAppleKeyMapLib */ = { + isa = PBXGroup; + children = ( + 9AA91C0525CD598000BD5E8B /* OcAppleKeyMapLib.inf */, + 9AA91C0625CD598000BD5E8B /* OcAppleKeyMapLib.c */, + ); + path = OcAppleKeyMapLib; + sourceTree = ""; + }; + 9AA91C0725CD598000BD5E8B /* OcSmbiosLib */ = { + isa = PBXGroup; + children = ( + 9AA91C0825CD598000BD5E8B /* DebugSmbios.c */, + 9AA91C0925CD598000BD5E8B /* SmbiosInternal.c */, + 9AA91C0A25CD598000BD5E8B /* DebugSmbios.h */, + 9AA91C0B25CD598000BD5E8B /* OcSmbiosLib.inf */, + 9AA91C0C25CD598000BD5E8B /* SmbiosInternal.h */, + 9AA91C0D25CD598000BD5E8B /* SmbiosDump.c */, + 9AA91C0E25CD598000BD5E8B /* SmbiosPatch.c */, + ); + path = OcSmbiosLib; + sourceTree = ""; + }; + 9AA91C0F25CD598000BD5E8B /* OcStorageLib */ = { + isa = PBXGroup; + children = ( + 9AA91C1025CD598000BD5E8B /* OcStorageLib.inf */, + 9AA91C1125CD598000BD5E8B /* OcStorageLib.c */, + ); + path = OcStorageLib; + sourceTree = ""; + }; + 9AA91C1225CD598000BD5E8B /* OcHiiDatabaseLib */ = { + isa = PBXGroup; + children = ( + 9AA91C1325CD598000BD5E8B /* Database.c */, + 9AA91C1425CD598000BD5E8B /* ConfigRouting.c */, + 9AA91C1525CD598000BD5E8B /* Font.c */, + 9AA91C1625CD598000BD5E8B /* String.c */, + 9AA91C1725CD598000BD5E8B /* Image.c */, + 9AA91C1825CD598000BD5E8B /* OcHiiDatabaseLocalLib.inf */, + 9AA91C1925CD598000BD5E8B /* HiiDatabase.h */, + 9AA91C1A25CD598000BD5E8B /* ConfigKeywordHandler.c */, + 9AA91C1B25CD598000BD5E8B /* HiiDatabaseEntry.c */, + 9AA91C1C25CD598000BD5E8B /* ImageEx.c */, + ); + path = OcHiiDatabaseLib; + sourceTree = ""; + }; + 9AA91C1D25CD598000BD5E8B /* OcAppleSecureBootLib */ = { + isa = PBXGroup; + children = ( + 9AA91C1E25CD598000BD5E8B /* OcAppleSecureBootLib.c */, + 9AA91C1F25CD598000BD5E8B /* OcAppleSecureBootLib.inf */, + ); + path = OcAppleSecureBootLib; + sourceTree = ""; + }; + 9AA91C2025CD598000BD5E8B /* OcGuardLib */ = { + isa = PBXGroup; + children = ( + 9AA91C2125CD598000BD5E8B /* Canary.c */, + 9AA91C2225CD598000BD5E8B /* Ubsan.h */, + 9AA91C2325CD598000BD5E8B /* UbsanPrintf.c */, + 9AA91C2425CD598000BD5E8B /* OcGuardLib.inf */, + 9AA91C2525CD598000BD5E8B /* BitOverflow.c */, + 9AA91C2625CD598000BD5E8B /* Alignment.c */, + 9AA91C2725CD598000BD5E8B /* TripleOverflow.c */, + 9AA91C2825CD598000BD5E8B /* Ubsan.c */, + 9AA91C2925CD598000BD5E8B /* NativeOverflow.c */, + ); + path = OcGuardLib; + sourceTree = ""; + }; + 9AA91C2A25CD598000BD5E8B /* OcAppleKeysLib */ = { + isa = PBXGroup; + children = ( + 9AA91C2B25CD598000BD5E8B /* OcAppleKeysLib.inf */, + 9AA91C2C25CD598000BD5E8B /* OcAppleKeysLib.c */, + ); + path = OcAppleKeysLib; + sourceTree = ""; + }; + 9AA91C2D25CD598000BD5E8B /* OcAppleBootPolicyLib */ = { + isa = PBXGroup; + children = ( + 9AA91C2E25CD598000BD5E8B /* OcAppleBootPolicyLib.c */, + 9AA91C2F25CD598000BD5E8B /* OcAppleBootPolicyLib.inf */, + ); + path = OcAppleBootPolicyLib; + sourceTree = ""; + }; + 9AA91C3025CD598000BD5E8B /* OcAppleUserInterfaceThemeLib */ = { + isa = PBXGroup; + children = ( + 9AA91C3125CD598000BD5E8B /* OcAppleUserInterfaceThemeLib.c */, + 9AA91C3225CD598000BD5E8B /* OcAppleUserInterfaceThemeLib.inf */, + ); + path = OcAppleUserInterfaceThemeLib; + sourceTree = ""; + }; + 9AA91C3325CD598000BD5E8B /* OcAcpiLib */ = { + isa = PBXGroup; + children = ( + 9AA91C3425CD598000BD5E8B /* OcAcpiLib.c */, + 9AA91C3525CD598000BD5E8B /* OcAcpiLib.inf */, + 9AA91C3625CD598000BD5E8B /* AcpiDump.c */, + ); + path = OcAcpiLib; + sourceTree = ""; + }; + 9AA91C3725CD598000BD5E8B /* OcInputLib */ = { + isa = PBXGroup; + children = ( + 9AA91C3825CD598000BD5E8B /* Keycode */, + 9AA91C4725CD598000BD5E8B /* OcInputLib.inf */, + 9AA91C4825CD598000BD5E8B /* Timer */, + 9AA91C4A25CD598000BD5E8B /* Pointer */, + ); + path = OcInputLib; + sourceTree = ""; + }; + 9AA91C3825CD598000BD5E8B /* Keycode */ = { + isa = PBXGroup; + children = ( + 9AA91C3925CD598000BD5E8B /* AppleHid.txt */, + 9AA91C3A25CD598000BD5E8B /* AIKSource.h */, + 9AA91C3B25CD598000BD5E8B /* AIK.h */, + 9AA91C3C25CD598000BD5E8B /* AIKTarget.c */, + 9AA91C3D25CD598000BD5E8B /* AIKShim.c */, + 9AA91C3E25CD598000BD5E8B /* AIKTranslate.h */, + 9AA91C3F25CD598000BD5E8B /* AIKData.h */, + 9AA91C4025CD598000BD5E8B /* AIKMap.c */, + 9AA91C4125CD598000BD5E8B /* AIK.c */, + 9AA91C4225CD598000BD5E8B /* AIKSource.c */, + 9AA91C4325CD598000BD5E8B /* AIKTranslate.c */, + 9AA91C4425CD598000BD5E8B /* AIKTarget.h */, + 9AA91C4525CD598000BD5E8B /* AIKShim.h */, + 9AA91C4625CD598000BD5E8B /* AIKData.c */, + ); + path = Keycode; + sourceTree = ""; + }; + 9AA91C4825CD598000BD5E8B /* Timer */ = { + isa = PBXGroup; + children = ( + 9AA91C4925CD598000BD5E8B /* AIT.c */, + ); + path = Timer; + sourceTree = ""; + }; + 9AA91C4A25CD598000BD5E8B /* Pointer */ = { + isa = PBXGroup; + children = ( + 9AA91C4B25CD598000BD5E8B /* AIM.c */, + 9AA91C4C25CD598000BD5E8B /* AIM.h */, + ); + path = Pointer; + sourceTree = ""; + }; + 9AA91C4D25CD598000BD5E8B /* OcFirmwarePasswordLib */ = { + isa = PBXGroup; + children = ( + 9AA91C4E25CD598000BD5E8B /* OcFirmwarePasswordLib.c */, + 9AA91C4F25CD598000BD5E8B /* AppleFwPasswordInternal.h */, + 9AA91C5025CD598000BD5E8B /* OcFirmwarePasswordLib.inf */, + ); + path = OcFirmwarePasswordLib; + sourceTree = ""; + }; + 9AA91C5125CD598000BD5E8B /* OcAppleDiskImageLib */ = { + isa = PBXGroup; + children = ( + 9AA91C5225CD598000BD5E8B /* OcAppleDiskImageLib.c */, + 9AA91C5325CD598000BD5E8B /* OcAppleDiskImageLibInternal.h */, + 9AA91C5425CD598000BD5E8B /* OcAppleDiskImageLib.inf */, + 9AA91C5525CD598000BD5E8B /* OcAppleDiskImageBlockIo.c */, + 9AA91C5625CD598000BD5E8B /* OcAppleDiskImageLibInternal.c */, + ); + path = OcAppleDiskImageLib; + sourceTree = ""; + }; + 9AA91C5725CD598000BD5E8B /* OcRngLib */ = { + isa = PBXGroup; + children = ( + 9AA91C5825CD598000BD5E8B /* X64 */, + 9AA91C5A25CD598000BD5E8B /* OcRngLib.c */, + 9AA91C5B25CD598000BD5E8B /* Ia32 */, + 9AA91C5D25CD598000BD5E8B /* OcRngLib.inf */, + 9AA91C5E25CD598000BD5E8B /* OcRngInternals.h */, + ); + path = OcRngLib; + sourceTree = ""; + }; + 9AA91C5825CD598000BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91C5925CD598000BD5E8B /* RngDelay.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91C5B25CD598000BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91C5C25CD598000BD5E8B /* RngDelay.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91C5F25CD598000BD5E8B /* OcHdaDevicesLib */ = { + isa = PBXGroup; + children = ( + 9AA91C6025CD598000BD5E8B /* OcHdaDevicesLib.c */, + 9AA91C6125CD598000BD5E8B /* OcHdaDevicesLib.inf */, + 9AA91C6225CD598000BD5E8B /* OcHdaDevicesInternal.h */, + ); + path = OcHdaDevicesLib; + sourceTree = ""; + }; + 9AA91C6325CD598000BD5E8B /* OcBootServicesTableLib */ = { + isa = PBXGroup; + children = ( + 9AA91C6425CD598000BD5E8B /* OcBootServicesTableLib.c */, + 9AA91C6525CD598000BD5E8B /* UefiBootServicesTableLib.inf */, + 9AA91C6625CD598000BD5E8B /* OcBootServicesTableLib.inf */, + 9AA91C6725CD598000BD5E8B /* UefiBootServicesTableLib.c */, + ); + path = OcBootServicesTableLib; + sourceTree = ""; + }; + 9AA91C6825CD598000BD5E8B /* DuetTimerLib */ = { + isa = PBXGroup; + children = ( + 9AA91C6925CD598000BD5E8B /* X86TimerLib.c */, + 9AA91C6A25CD598000BD5E8B /* DuetTimerLib.inf */, + ); + path = DuetTimerLib; + sourceTree = ""; + }; + 9AA91C6B25CD598000BD5E8B /* OcAfterBootCompatLib */ = { + isa = PBXGroup; + children = ( + 9AA91C6C25CD598000BD5E8B /* CustomSlide.c */, + 9AA91C6D25CD598000BD5E8B /* X64 */, + 9AA91C7125CD598000BD5E8B /* BootCompatInternal.h */, + 9AA91C7225CD598000BD5E8B /* ServiceOverrides.c */, + 9AA91C7325CD598000BD5E8B /* Ia32 */, + 9AA91C7625CD598000BD5E8B /* KernelSupport.c */, + 9AA91C7725CD598000BD5E8B /* OcAfterBootCompatLib.inf */, + 9AA91C7825CD598000BD5E8B /* OcAfterBootCompatLib.c */, + ); + path = OcAfterBootCompatLib; + sourceTree = ""; + }; + 9AA91C6D25CD598000BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91C6E25CD598000BD5E8B /* ContextSwitchSupport.c */, + 9AA91C6F25CD598000BD5E8B /* ContextSwitch.nasm */, + 9AA91C7025CD598000BD5E8B /* ContextSwitch.h */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91C7325CD598000BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91C7425CD598000BD5E8B /* ContextSwitchSupport.c */, + 9AA91C7525CD598000BD5E8B /* ContextSwitch.h */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91C7925CD598000BD5E8B /* OcFirmwareVolumeLib */ = { + isa = PBXGroup; + children = ( + 9AA91C7A25CD598000BD5E8B /* OcFirmwareVolumeLib.inf */, + 9AA91C7B25CD598000BD5E8B /* OcFirmwareVolumeLib.c */, + 9AA91C7C25CD598000BD5E8B /* FvOnFv2Thunk.c */, + 9AA91C7D25CD598000BD5E8B /* OcFirmwareVolumeLibInternal.h */, + ); + path = OcFirmwareVolumeLib; + sourceTree = ""; + }; + 9AA91C7E25CD598000BD5E8B /* OcDevicePathLib */ = { + isa = PBXGroup; + children = ( + 9AA91C7F25CD598000BD5E8B /* OcDevicePathLib.inf */, + 9AA91C8025CD598000BD5E8B /* ExpandDevicePath.c */, + 9AA91C8125CD598000BD5E8B /* OcDevicePathLib.c */, + ); + path = OcDevicePathLib; + sourceTree = ""; + }; + 9AA91C8225CD598000BD5E8B /* OcDebugLogLib */ = { + isa = PBXGroup; + children = ( + 9AA91C8325CD598000BD5E8B /* OcAppleLog.c */, + 9AA91C8425CD598000BD5E8B /* DebugHelp.c */, + 9AA91C8525CD598000BD5E8B /* DebugPrint.c */, + 9AA91C8625CD598000BD5E8B /* OcDebugLogLib.inf */, + 9AA91C8725CD598000BD5E8B /* OcLog.c */, + 9AA91C8825CD598000BD5E8B /* OcLogInternal.h */, + 9AA91C8925CD598000BD5E8B /* OcDebugLogLib.c */, + ); + path = OcDebugLogLib; + sourceTree = ""; + }; + 9AA91C8A25CD598000BD5E8B /* OcAudioLib */ = { + isa = PBXGroup; + children = ( + 9AA91C8B25CD598000BD5E8B /* OcAudioGenBeep.c */, + 9AA91C8C25CD598000BD5E8B /* OcAudioLib.inf */, + 9AA91C8D25CD598000BD5E8B /* OcAudio.c */, + 9AA91C8E25CD598000BD5E8B /* OcAudioWave.c */, + 9AA91C8F25CD598000BD5E8B /* OcAudioInternal.h */, + 9AA91C9025CD598000BD5E8B /* OcAudioLib.c */, + 9AA91C9125CD598000BD5E8B /* OcAudioVoiceOver.c */, + ); + path = OcAudioLib; + sourceTree = ""; + }; + 9AA91C9225CD598000BD5E8B /* OcVirtualFsLib */ = { + isa = PBXGroup; + children = ( + 9AA91C9325CD598000BD5E8B /* VirtualDir.c */, + 9AA91C9425CD598000BD5E8B /* VirtualFile.c */, + 9AA91C9525CD598000BD5E8B /* OcVirtualFsLib.inf */, + 9AA91C9625CD598000BD5E8B /* VirtualVolume.c */, + 9AA91C9725CD598000BD5E8B /* VirtualFs.c */, + 9AA91C9825CD598000BD5E8B /* VirtualFsInternal.h */, + ); + path = OcVirtualFsLib; + sourceTree = ""; + }; + 9AA91C9925CD598000BD5E8B /* OcAppleKernelLib */ = { + isa = PBXGroup; + children = ( + 9AA91C9A25CD598000BD5E8B /* PrelinkedKext.c */, + 9AA91C9B25CD598000BD5E8B /* KxldState.c */, + 9AA91C9C25CD598000BD5E8B /* PrelinkedContext.c */, + 9AA91C9D25CD598000BD5E8B /* Link.c */, + 9AA91C9E25CD598000BD5E8B /* OcAppleKernelLib.inf */, + 9AA91C9F25CD598000BD5E8B /* KextPatcher.c */, + 9AA91CA025CD598000BD5E8B /* CommonPatches.c */, + 9AA91CA125CD598000BD5E8B /* KernelVersion.c */, + 9AA91CA225CD598000BD5E8B /* MkextInternal.h */, + 9AA91CA325CD598000BD5E8B /* CachelessContext.c */, + 9AA91CA425CD598000BD5E8B /* Vtables.c */, + 9AA91CA525CD598000BD5E8B /* KernelReader.c */, + 9AA91CA625CD598000BD5E8B /* KernelCollection.c */, + 9AA91CA725CD598000BD5E8B /* MkextContext.c */, + 9AA91CA825CD598000BD5E8B /* PrelinkedInternal.h */, + 9AA91CA925CD598000BD5E8B /* CachelessInternal.h */, + ); + path = OcAppleKernelLib; + sourceTree = ""; + }; + 9AA91CAA25CD598000BD5E8B /* OcPeCoffLib */ = { + isa = PBXGroup; + children = ( + 9AA91CAB25CD598000BD5E8B /* OcPeCoffLib.inf */, + 9AA91CAC25CD598000BD5E8B /* OcPeCoffLib.c */, + ); + path = OcPeCoffLib; + sourceTree = ""; + }; + 9AA91CAD25CD598000BD5E8B /* OcFileLib */ = { + isa = PBXGroup; + children = ( + 9AA91CAE25CD598000BD5E8B /* OpenFile.c */, + 9AA91CAF25CD598000BD5E8B /* FsConnectQuirk.c */, + 9AA91CB025CD598000BD5E8B /* GptPartitionEntry.c */, + 9AA91CB125CD598000BD5E8B /* ReadFile.c */, + 9AA91CB225CD598000BD5E8B /* FirmwareFile.c */, + 9AA91CB325CD598000BD5E8B /* GetVolumeLabel.c */, + 9AA91CB425CD598000BD5E8B /* FileProtocol.c */, + 9AA91CB525CD598000BD5E8B /* GetFileInfo.c */, + 9AA91CB625CD598000BD5E8B /* LocateFileSystem.c */, + 9AA91CB725CD598000BD5E8B /* OcFileLib.inf */, + ); + path = OcFileLib; + sourceTree = ""; + }; + 9AA91CB825CD598000BD5E8B /* OcCpuLib */ = { + isa = PBXGroup; + children = ( + 9AA91CB925CD598000BD5E8B /* OcCpuInternals.h */, + 9AA91CBA25CD598000BD5E8B /* X64 */, + 9AA91CBD25CD598000BD5E8B /* FrequencyDetect.c */, + 9AA91CBE25CD598000BD5E8B /* OcCpuLib.inf */, + 9AA91CBF25CD598000BD5E8B /* AppleCpuSupport.c */, + 9AA91CC025CD598000BD5E8B /* OcCpuLib.c */, + 9AA91CC125CD598000BD5E8B /* Ia32 */, + ); + path = OcCpuLib; + sourceTree = ""; + }; + 9AA91CBA25CD598000BD5E8B /* X64 */ = { + isa = PBXGroup; + children = ( + 9AA91CBB25CD598000BD5E8B /* Microcode.nasm */, + 9AA91CBC25CD598000BD5E8B /* Atomic.nasm */, + ); + path = X64; + sourceTree = ""; + }; + 9AA91CC125CD598000BD5E8B /* Ia32 */ = { + isa = PBXGroup; + children = ( + 9AA91CC225CD598000BD5E8B /* Microcode.nasm */, + 9AA91CC325CD598000BD5E8B /* Atomic.nasm */, + ); + path = Ia32; + sourceTree = ""; + }; + 9AA91CC425CD598000BD5E8B /* OcConfigurationLib */ = { + isa = PBXGroup; + children = ( + 9AA91CC525CD598000BD5E8B /* OcConfigurationLib.inf */, + 9AA91CC625CD598000BD5E8B /* CheckSchema.py */, + 9AA91CC725CD598000BD5E8B /* OcConfigurationLib.c */, + ); + path = OcConfigurationLib; + sourceTree = ""; + }; + 9AA91CC825CD598000BD5E8B /* OcDriverConnectionLib */ = { + isa = PBXGroup; + children = ( + 9AA91CC925CD598000BD5E8B /* OcDriverConnectionLib.c */, + 9AA91CCA25CD598000BD5E8B /* OcDriverConnectionLib.inf */, + ); + path = OcDriverConnectionLib; + sourceTree = ""; + }; + 9AA91CCB25CD598000BD5E8B /* OcDebugLogLibOc2Clover */ = { + isa = PBXGroup; + children = ( + 9AA91CCC25CD598000BD5E8B /* OcAppleLog.c */, + 9AA91CCD25CD598000BD5E8B /* DebugHelp.c */, + 9AA91CCE25CD598000BD5E8B /* DebugPrint.c */, + 9AA91CCF25CD598000BD5E8B /* OcLog.c */, + 9AA91CD025CD598000BD5E8B /* OcDebugLogLibOc2Clover.inf */, + ); + path = OcDebugLogLibOc2Clover; + sourceTree = ""; + }; + 9AA91CD125CD598000BD5E8B /* OcXmlLib */ = { + isa = PBXGroup; + children = ( + 9AA91CD225CD598000BD5E8B /* OcXmlLib.c */, + 9AA91CD325CD598000BD5E8B /* OcXmlLib.inf */, + ); + path = OcXmlLib; + sourceTree = ""; + }; + 9AA91CD425CD598000BD5E8B /* OcDevicePropertyLib */ = { + isa = PBXGroup; + children = ( + 9AA91CD525CD598000BD5E8B /* OcDevicePropertyLib.inf */, + 9AA91CD625CD598000BD5E8B /* OcDevicePropertyLib.c */, + ); + path = OcDevicePropertyLib; + sourceTree = ""; + }; + 9AA91CD725CD598000BD5E8B /* OcOSInfoLib */ = { + isa = PBXGroup; + children = ( + 9AA91CD825CD598000BD5E8B /* OcOSInfoLib.c */, + 9AA91CD925CD598000BD5E8B /* OcOSInfoLib.inf */, + ); + path = OcOSInfoLib; + sourceTree = ""; + }; + 9AA91CDA25CD598000BD5E8B /* OcTemplateLib */ = { + isa = PBXGroup; + children = ( + 9AA91CDB25CD598000BD5E8B /* OcTemplateLib.inf */, + 9AA91CDC25CD598000BD5E8B /* OcTemplateLib.c */, + ); + path = OcTemplateLib; + sourceTree = ""; + }; + 9AA91CDD25CD598000BD5E8B /* OcCompilerIntrinsicsLib */ = { + isa = PBXGroup; + children = ( + 9AA91CDE25CD598000BD5E8B /* OcCompilerIntrinsicsLib.c */, + 9AA91CDF25CD598000BD5E8B /* OcCompilerIntrinsicsLib.inf */, + 9AA91CE025CD598000BD5E8B /* MsvcMath32.c */, + ); + path = OcCompilerIntrinsicsLib; + sourceTree = ""; + }; + 9AA91CE125CD598000BD5E8B /* OcMemoryLib */ = { + isa = PBXGroup; + children = ( + 9AA91CE225CD598000BD5E8B /* MemoryMap.c */, + 9AA91CE325CD598000BD5E8B /* MemoryAttributes.c */, + 9AA91CE425CD598000BD5E8B /* VirtualMemory.c */, + 9AA91CE525CD598000BD5E8B /* LegacyRegionLock.c */, + 9AA91CE625CD598000BD5E8B /* LegacyRegionUnLock.c */, + 9AA91CE725CD598000BD5E8B /* MemoryDebug.c */, + 9AA91CE825CD598000BD5E8B /* MemoryAlloc.c */, + 9AA91CE925CD598000BD5E8B /* OcMemoryLib.inf */, + 9AA91CEA25CD598000BD5E8B /* UmmMalloc.c */, + ); + path = OcMemoryLib; + sourceTree = ""; + }; + 9AA91CEB25CD598000BD5E8B /* OcAppleRamDiskLib */ = { + isa = PBXGroup; + children = ( + 9AA91CEC25CD598000BD5E8B /* OcAppleRamDiskLib.inf */, + 9AA91CED25CD598000BD5E8B /* OcAppleRamDiskLib.c */, + ); + path = OcAppleRamDiskLib; + sourceTree = ""; + }; + 9AA91CEE25CD598000BD5E8B /* OcSmcLib */ = { + isa = PBXGroup; + children = ( + 9AA91CEF25CD598000BD5E8B /* OcSmcLib.c */, + 9AA91CF025CD598000BD5E8B /* OcSmcLib.inf */, + 9AA91CF125CD598000BD5E8B /* OcSmcLibInternal.h */, + ); + path = OcSmcLib; + sourceTree = ""; + }; + 9AA91CF225CD598000BD5E8B /* User */ = { + isa = PBXGroup; + children = ( + 9AA91CF325CD598000BD5E8B /* Makefile */, + 9AA91CF425CD598000BD5E8B /* Include */, + 9AA91CF925CD598000BD5E8B /* Library */, + ); + path = User; + sourceTree = ""; + }; + 9AA91CF425CD598000BD5E8B /* Include */ = { + isa = PBXGroup; + children = ( + 9AA91CF525CD598000BD5E8B /* GlobalVar.h */, + 9AA91CF625CD598000BD5E8B /* File.h */, + 9AA91CF725CD598000BD5E8B /* Pcd.h */, + 9AA91CF825CD598000BD5E8B /* BootServices.h */, + ); + path = Include; + sourceTree = ""; + }; + 9AA91CF925CD598000BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA91CFA25CD598000BD5E8B /* Pcd.c */, + 9AA91CFB25CD598000BD5E8B /* UserMath.c */, + 9AA91CFC25CD598000BD5E8B /* BootServices.c */, + 9AA91CFD25CD598000BD5E8B /* BaseMemoryLib.c */, + 9AA91CFE25CD598000BD5E8B /* GlobalVar.c */, + 9AA91CFF25CD598000BD5E8B /* File.c */, + 9AA91D0025CD598000BD5E8B /* UserMisc.c */, + 9AA91D0125CD598000BD5E8B /* OcDummy.c */, + ); + path = Library; + sourceTree = ""; + }; + 9AA91D0225CD598000BD5E8B /* Docs */ = { + isa = PBXGroup; + children = ( + 9AA91D0325CD598000BD5E8B /* Configuration.tex */, + 9AA91D0425CD598000BD5E8B /* BuildDocs.tool */, + 9AA91D0525CD598000BD5E8B /* Errata */, + 9AA91D0825CD598000BD5E8B /* Logos */, + 9AA91D1025CD598000BD5E8B /* Configuration.pdf */, + 9AA91D1125CD598000BD5E8B /* AcpiSamples */, + 9AA91D1E25CD598000BD5E8B /* SampleCustom.plist */, + 9AA91D1F25CD598000BD5E8B /* Kexts.md */, + 9AA91D2025CD598000BD5E8B /* Libraries.md */, + 9AA91D2125CD598000BD5E8B /* Differences */, + 9AA91D2525CD598000BD5E8B /* Sample.plist */, + ); + path = Docs; + sourceTree = ""; + }; + 9AA91D0525CD598000BD5E8B /* Errata */ = { + isa = PBXGroup; + children = ( + 9AA91D0625CD598000BD5E8B /* Errata.pdf */, + 9AA91D0725CD598000BD5E8B /* Errata.tex */, + ); + path = Errata; + sourceTree = ""; + }; + 9AA91D0825CD598000BD5E8B /* Logos */ = { + isa = PBXGroup; + children = ( + 9AA91D0925CD598000BD5E8B /* LogoApprox.svg */, + 9AA91D0A25CD598000BD5E8B /* OpenCore_with_text_Small.png */, + 9AA91D0B25CD598000BD5E8B /* OpenCore_with_text_Large.png */, + 9AA91D0C25CD598000BD5E8B /* README.md */, + 9AA91D0D25CD598000BD5E8B /* Logo.pdf */, + 9AA91D0E25CD598000BD5E8B /* Logo.png */, + 9AA91D0F25CD598000BD5E8B /* Logo.sketch */, + ); + path = Logos; + sourceTree = ""; + }; + 9AA91D1125CD598000BD5E8B /* AcpiSamples */ = { + isa = PBXGroup; + children = ( + 9AA91D1225CD598000BD5E8B /* SSDT-RTC0-RANGE.dsl */, + 9AA91D1325CD598000BD5E8B /* SSDT-AWAC.dsl */, + 9AA91D1425CD598000BD5E8B /* SSDT-RTC0.dsl */, + 9AA91D1525CD598000BD5E8B /* SSDT-IMEI.dsl */, + 9AA91D1625CD598000BD5E8B /* SSDT-EC.dsl */, + 9AA91D1725CD598000BD5E8B /* SSDT-ALS0.dsl */, + 9AA91D1825CD598000BD5E8B /* SSDT-BRG0.dsl */, + 9AA91D1925CD598000BD5E8B /* SSDT-PMC.dsl */, + 9AA91D1A25CD598000BD5E8B /* SSDT-SBUS-MCHC.dsl */, + 9AA91D1B25CD598000BD5E8B /* SSDT-EC-USBX.dsl */, + 9AA91D1C25CD598000BD5E8B /* SSDT-EHCx_OFF.dsl */, + 9AA91D1D25CD598000BD5E8B /* SSDT-PLUG.dsl */, + ); + path = AcpiSamples; + sourceTree = ""; + }; + 9AA91D2125CD598000BD5E8B /* Differences */ = { + isa = PBXGroup; + children = ( + 9AA91D2225CD598000BD5E8B /* Differences.pdf */, + 9AA91D2325CD598000BD5E8B /* PreviousConfiguration.tex */, + 9AA91D2425CD598000BD5E8B /* Differences.tex */, + ); + path = Differences; + sourceTree = ""; + }; + 9AA91D2925CD598000BD5E8B /* Utilities */ = { + isa = PBXGroup; + children = ( + 9AA91D2A25CD598000BD5E8B /* TestSmbios */, + 9AA91D2E25CD598000BD5E8B /* BaseTools */, + 9AA91D3C25CD598000BD5E8B /* WinNvram */, + 9AA91D4025CD598100BD5E8B /* TestBmf */, + 9AA91D4325CD598100BD5E8B /* disklabel */, + 9AA91D4625CD598100BD5E8B /* AppleKeyboardLayouts */, + 9AA91D4925CD598100BD5E8B /* TestImg4 */, + 9AA91D4C25CD598100BD5E8B /* TestHelloWorld */, + 9AA91D4F25CD598100BD5E8B /* MacEfiUnpack */, + 9AA91D5125CD598100BD5E8B /* LegacyBoot */, + 9AA91D5725CD598100BD5E8B /* macserial */, + 9AA91D6025CD598100BD5E8B /* RsaTool */, + 9AA91D6525CD598100BD5E8B /* TestPeCoff */, + 9AA91D6825CD598100BD5E8B /* CreateVault */, + 9AA91D6C25CD598100BD5E8B /* TestDiskImage */, + 9AA91D7025CD598100BD5E8B /* TestRsaPreprocess */, + 9AA91D7325CD598100BD5E8B /* icnspack */, + 9AA91D7625CD598100BD5E8B /* kpdescribe */, + 9AA91D7825CD598100BD5E8B /* AppleEfiSignTool */, + 9AA91D9025CD598100BD5E8B /* EfiResTool */, + 9AA91D9425CD598100BD5E8B /* TestMacho */, + 9AA91D9825CD598100BD5E8B /* ocvalidate */, + 9AA91D9C25CD598100BD5E8B /* LogoutHook */, + 9AA91DA025CD598100BD5E8B /* macrecovery */, + 9AA91DA525CD598100BD5E8B /* TestKextInject */, + ); + path = Utilities; + sourceTree = ""; + }; + 9AA91D2A25CD598000BD5E8B /* TestSmbios */ = { + isa = PBXGroup; + children = ( + 9AA91D2B25CD598000BD5E8B /* Makefile */, + 9AA91D2C25CD598000BD5E8B /* Smbios.bin */, + 9AA91D2D25CD598000BD5E8B /* Smbios.c */, + ); + path = TestSmbios; + sourceTree = ""; + }; + 9AA91D2E25CD598000BD5E8B /* BaseTools */ = { + isa = PBXGroup; + children = ( + 9AA91D2F25CD598000BD5E8B /* EfiLdrImage.c */, + 9AA91D3025CD598000BD5E8B /* Makefile */, + 9AA91D3125CD598000BD5E8B /* bin.Darwin */, + 9AA91D3425CD598000BD5E8B /* GenPage.c */, + 9AA91D3525CD598000BD5E8B /* bin.Linux */, + 9AA91D3825CD598000BD5E8B /* VirtualMemory.h */, + 9AA91D3925CD598000BD5E8B /* bin.Windows */, + ); + path = BaseTools; + sourceTree = ""; + }; + 9AA91D3125CD598000BD5E8B /* bin.Darwin */ = { + isa = PBXGroup; + children = ( + 9AA91D3225CD598000BD5E8B /* EfiLdrImage */, + 9AA91D3325CD598000BD5E8B /* GenPage */, + ); + path = bin.Darwin; + sourceTree = ""; + }; + 9AA91D3525CD598000BD5E8B /* bin.Linux */ = { + isa = PBXGroup; + children = ( + 9AA91D3625CD598000BD5E8B /* EfiLdrImage */, + 9AA91D3725CD598000BD5E8B /* GenPage */, + ); + path = bin.Linux; + sourceTree = ""; + }; + 9AA91D3925CD598000BD5E8B /* bin.Windows */ = { + isa = PBXGroup; + children = ( + 9AA91D3A25CD598000BD5E8B /* EfiLdrImage.exe */, + 9AA91D3B25CD598000BD5E8B /* GenPage.exe */, + ); + path = bin.Windows; + sourceTree = ""; + }; + 9AA91D3C25CD598000BD5E8B /* WinNvram */ = { + isa = PBXGroup; + children = ( + 9AA91D3D25CD598000BD5E8B /* nvram.exe */, + 9AA91D3E25CD598100BD5E8B /* Makefile */, + 9AA91D3F25CD598100BD5E8B /* nvram.c */, + ); + path = WinNvram; + sourceTree = ""; + }; + 9AA91D4025CD598100BD5E8B /* TestBmf */ = { + isa = PBXGroup; + children = ( + 9AA91D4125CD598100BD5E8B /* Makefile */, + 9AA91D4225CD598100BD5E8B /* Bmf.c */, + ); + path = TestBmf; + sourceTree = ""; + }; + 9AA91D4325CD598100BD5E8B /* disklabel */ = { + isa = PBXGroup; + children = ( + 9AA91D4425CD598100BD5E8B /* Makefile */, + 9AA91D4525CD598100BD5E8B /* disklabel.c */, + ); + path = disklabel; + sourceTree = ""; + }; + 9AA91D4625CD598100BD5E8B /* AppleKeyboardLayouts */ = { + isa = PBXGroup; + children = ( + 9AA91D4725CD598100BD5E8B /* AppleKeyboardLayouts.txt */, + 9AA91D4825CD598100BD5E8B /* AppleKeyboardLayouts.bt */, + ); + path = AppleKeyboardLayouts; + sourceTree = ""; + }; + 9AA91D4925CD598100BD5E8B /* TestImg4 */ = { + isa = PBXGroup; + children = ( + 9AA91D4A25CD598100BD5E8B /* Makefile */, + 9AA91D4B25CD598100BD5E8B /* Img4.c */, + ); + path = TestImg4; + sourceTree = ""; + }; + 9AA91D4C25CD598100BD5E8B /* TestHelloWorld */ = { + isa = PBXGroup; + children = ( + 9AA91D4D25CD598100BD5E8B /* Makefile */, + 9AA91D4E25CD598100BD5E8B /* HelloWorld.c */, + ); + path = TestHelloWorld; + sourceTree = ""; + }; + 9AA91D4F25CD598100BD5E8B /* MacEfiUnpack */ = { + isa = PBXGroup; + children = ( + 9AA91D5025CD598100BD5E8B /* MacEfiUnpack.py */, + ); + path = MacEfiUnpack; + sourceTree = ""; + }; + 9AA91D5125CD598100BD5E8B /* LegacyBoot */ = { + isa = PBXGroup; + children = ( + 9AA91D5225CD598100BD5E8B /* boot0 */, + 9AA91D5325CD598100BD5E8B /* boot1f32 */, + 9AA91D5425CD598100BD5E8B /* README.md */, + 9AA91D5525CD598100BD5E8B /* QemuBuild.command */, + 9AA91D5625CD598100BD5E8B /* BootInstall.command */, + ); + path = LegacyBoot; + sourceTree = ""; + }; + 9AA91D5725CD598100BD5E8B /* macserial */ = { + isa = PBXGroup; + children = ( + 9AA91D5825CD598100BD5E8B /* macserial.h */, + 9AA91D5925CD598100BD5E8B /* Makefile */, + 9AA91D5A25CD598100BD5E8B /* README.md */, + 9AA91D5B25CD598100BD5E8B /* modelinfo_autogen.h */, + 9AA91D5C25CD598100BD5E8B /* modelinfo.h */, + 9AA91D5D25CD598100BD5E8B /* macserial.c */, + 9AA91D5E25CD598100BD5E8B /* FORMAT.md */, + 9AA91D5F25CD598100BD5E8B /* cccdump.py */, + ); + path = macserial; + sourceTree = ""; + }; + 9AA91D6025CD598100BD5E8B /* RsaTool */ = { + isa = PBXGroup; + children = ( + 9AA91D6125CD598100BD5E8B /* LICENSE */, + 9AA91D6225CD598100BD5E8B /* Makefile */, + 9AA91D6325CD598100BD5E8B /* RsaTool.c */, + 9AA91D6425CD598100BD5E8B /* openssl_compat.h */, + ); + path = RsaTool; + sourceTree = ""; + }; + 9AA91D6525CD598100BD5E8B /* TestPeCoff */ = { + isa = PBXGroup; + children = ( + 9AA91D6625CD598100BD5E8B /* Makefile */, + 9AA91D6725CD598100BD5E8B /* PeCoff.c */, + ); + path = TestPeCoff; + sourceTree = ""; + }; + 9AA91D6825CD598100BD5E8B /* CreateVault */ = { + isa = PBXGroup; + children = ( + 9AA91D6925CD598100BD5E8B /* create_vault.sh */, + 9AA91D6A25CD598100BD5E8B /* sign.command */, + 9AA91D6B25CD598100BD5E8B /* RsaTool */, + ); + path = CreateVault; + sourceTree = ""; + }; + 9AA91D6C25CD598100BD5E8B /* TestDiskImage */ = { + isa = PBXGroup; + children = ( + 9AA91D6D25CD598100BD5E8B /* Makefile */, + 9AA91D6E25CD598100BD5E8B /* FileDummy.c */, + 9AA91D6F25CD598100BD5E8B /* DiskImage.c */, + ); + path = TestDiskImage; + sourceTree = ""; + }; + 9AA91D7025CD598100BD5E8B /* TestRsaPreprocess */ = { + isa = PBXGroup; + children = ( + 9AA91D7125CD598100BD5E8B /* Makefile */, + 9AA91D7225CD598100BD5E8B /* RsaPreprocess.c */, + ); + path = TestRsaPreprocess; + sourceTree = ""; + }; + 9AA91D7325CD598100BD5E8B /* icnspack */ = { + isa = PBXGroup; + children = ( + 9AA91D7425CD598100BD5E8B /* Makefile */, + 9AA91D7525CD598100BD5E8B /* icnspack.c */, + ); + path = icnspack; + sourceTree = ""; + }; + 9AA91D7625CD598100BD5E8B /* kpdescribe */ = { + isa = PBXGroup; + children = ( + 9AA91D7725CD598100BD5E8B /* kpdescribe.sh */, + ); + path = kpdescribe; + sourceTree = ""; + }; + 9AA91D7825CD598100BD5E8B /* AppleEfiSignTool */ = { + isa = PBXGroup; + children = ( + 9AA91D7925CD598100BD5E8B /* AppleEfiFatBinary.h */, + 9AA91D7A25CD598100BD5E8B /* Makefile */, + 9AA91D7B25CD598100BD5E8B /* AppleEfiBinary.c */, + 9AA91D7C25CD598100BD5E8B /* README.md */, + 9AA91D7D25CD598100BD5E8B /* Samples */, + 9AA91D8D25CD598100BD5E8B /* Edk2PeImage.h */, + 9AA91D8E25CD598100BD5E8B /* AppleEfiSignTool.c */, + 9AA91D8F25CD598100BD5E8B /* AppleEfiPeImage.h */, + ); + path = AppleEfiSignTool; + sourceTree = ""; + }; + 9AA91D7D25CD598100BD5E8B /* Samples */ = { + isa = PBXGroup; + children = ( + 9AA91D7E25CD598100BD5E8B /* boot_10.12.6.efi */, + 9AA91D7F25CD598100BD5E8B /* boot_10.7.5.efi */, + 9AA91D8025CD598100BD5E8B /* boot_10.10.5.efi */, + 9AA91D8125CD598100BD5E8B /* boot_10.14_0.18A389.efi */, + 9AA91D8225CD598100BD5E8B /* boot_10.13.6.efi */, + 9AA91D8325CD598100BD5E8B /* boot_10.14.0.18A371a.efi */, + 9AA91D8425CD598100BD5E8B /* apfs.efi */, + 9AA91D8525CD598100BD5E8B /* boot_10.11.6.efi */, + 9AA91D8625CD598100BD5E8B /* apfs_10.15.efi */, + 9AA91D8725CD598100BD5E8B /* apfs_aligned_10.15.efi */, + 9AA91D8825CD598100BD5E8B /* boot_10.8.5.efi */, + 9AA91D8925CD598100BD5E8B /* boot_10.6.8.efi */, + 9AA91D8A25CD598100BD5E8B /* boot_10.4.11.efi */, + 9AA91D8B25CD598100BD5E8B /* boot_10.9.5.efi */, + 9AA91D8C25CD598100BD5E8B /* boot_10.5.8.efi */, + ); + path = Samples; + sourceTree = ""; + }; + 9AA91D9025CD598100BD5E8B /* EfiResTool */ = { + isa = PBXGroup; + children = ( + 9AA91D9125CD598100BD5E8B /* Makefile */, + 9AA91D9225CD598100BD5E8B /* README.md */, + 9AA91D9325CD598100BD5E8B /* EfiResTool.c */, + ); + path = EfiResTool; + sourceTree = ""; + }; + 9AA91D9425CD598100BD5E8B /* TestMacho */ = { + isa = PBXGroup; + children = ( + 9AA91D9525CD598100BD5E8B /* Macho.c */, + 9AA91D9625CD598100BD5E8B /* Makefile */, + 9AA91D9725CD598100BD5E8B /* kernel */, + ); + path = TestMacho; + sourceTree = ""; + }; + 9AA91D9825CD598100BD5E8B /* ocvalidate */ = { + isa = PBXGroup; + children = ( + 9AA91D9925CD598100BD5E8B /* Makefile */, + 9AA91D9A25CD598100BD5E8B /* config.plist */, + 9AA91D9B25CD598100BD5E8B /* ocvalidate.c */, + ); + path = ocvalidate; + sourceTree = ""; + }; + 9AA91D9C25CD598100BD5E8B /* LogoutHook */ = { + isa = PBXGroup; + children = ( + 9AA91D9D25CD598100BD5E8B /* LogoutHook.command */, + 9AA91D9E25CD598100BD5E8B /* README.md */, + 9AA91D9F25CD598100BD5E8B /* nvram.mojave */, + ); + path = LogoutHook; + sourceTree = ""; + }; + 9AA91DA025CD598100BD5E8B /* macrecovery */ = { + isa = PBXGroup; + children = ( + 9AA91DA125CD598100BD5E8B /* recovery_urls.txt */, + 9AA91DA225CD598100BD5E8B /* boards.json */, + 9AA91DA325CD598100BD5E8B /* README.md */, + 9AA91DA425CD598100BD5E8B /* macrecovery.py */, + ); + path = macrecovery; + sourceTree = ""; + }; + 9AA91DA525CD598100BD5E8B /* TestKextInject */ = { + isa = PBXGroup; + children = ( + 9AA91DA625CD598100BD5E8B /* Makefile */, + 9AA91DA725CD598100BD5E8B /* check_injection.sh */, + 9AA91DA825CD598100BD5E8B /* KextInject.c */, + ); + path = TestKextInject; + sourceTree = ""; + }; + 9AA91DB125CD598100BD5E8B /* Application */ = { + isa = PBXGroup; + children = ( + 9AA91DB225CD598100BD5E8B /* HdaCodecDump */, + 9AA91DB625CD598100BD5E8B /* VerifyMemOpt */, + 9AA91DB925CD598100BD5E8B /* BootKicker */, + 9AA91DBC25CD598100BD5E8B /* Bootstrap */, + 9AA91DBF25CD598100BD5E8B /* KeyTester */, + 9AA91DC225CD598100BD5E8B /* VerifyMsrE2 */, + 9AA91DC525CD598100BD5E8B /* RtcRw */, + 9AA91DC825CD598100BD5E8B /* GopStop */, + 9AA91DCF25CD598100BD5E8B /* ResetSystem */, + 9AA91DD225CD598100BD5E8B /* ChipTune */, + 9AA91DD525CD598100BD5E8B /* PavpProvision */, + 9AA91DD925CD598100BD5E8B /* CleanNvram */, + 9AA91DDC25CD598100BD5E8B /* OpenControl */, + 9AA91DDF25CD598100BD5E8B /* MmapDump */, + ); + path = Application; + sourceTree = ""; + }; + 9AA91DB225CD598100BD5E8B /* HdaCodecDump */ = { + isa = PBXGroup; + children = ( + 9AA91DB325CD598100BD5E8B /* HdaCodecDump.inf */, + 9AA91DB425CD598100BD5E8B /* HdaCodecDump.h */, + 9AA91DB525CD598100BD5E8B /* HdaCodecDump.c */, + ); + path = HdaCodecDump; + sourceTree = ""; + }; + 9AA91DB625CD598100BD5E8B /* VerifyMemOpt */ = { + isa = PBXGroup; + children = ( + 9AA91DB725CD598100BD5E8B /* VerifyMemOpt.inf */, + 9AA91DB825CD598100BD5E8B /* VerifyMemOpt.c */, + ); + path = VerifyMemOpt; + sourceTree = ""; + }; + 9AA91DB925CD598100BD5E8B /* BootKicker */ = { + isa = PBXGroup; + children = ( + 9AA91DBA25CD598100BD5E8B /* BootKicker.inf */, + 9AA91DBB25CD598100BD5E8B /* BootKicker.c */, + ); + path = BootKicker; + sourceTree = ""; + }; + 9AA91DBC25CD598100BD5E8B /* Bootstrap */ = { + isa = PBXGroup; + children = ( + 9AA91DBD25CD598100BD5E8B /* Bootstrap.inf */, + 9AA91DBE25CD598100BD5E8B /* Bootstrap.c */, + ); + path = Bootstrap; + sourceTree = ""; + }; + 9AA91DBF25CD598100BD5E8B /* KeyTester */ = { + isa = PBXGroup; + children = ( + 9AA91DC025CD598100BD5E8B /* KeyTester.inf */, + 9AA91DC125CD598100BD5E8B /* KeyTester.c */, + ); + path = KeyTester; + sourceTree = ""; + }; + 9AA91DC225CD598100BD5E8B /* VerifyMsrE2 */ = { + isa = PBXGroup; + children = ( + 9AA91DC325CD598100BD5E8B /* VerifyMsrE2.inf */, + 9AA91DC425CD598100BD5E8B /* VerifyMsrE2.c */, + ); + path = VerifyMsrE2; + sourceTree = ""; + }; + 9AA91DC525CD598100BD5E8B /* RtcRw */ = { + isa = PBXGroup; + children = ( + 9AA91DC625CD598100BD5E8B /* RtcRw.inf */, + 9AA91DC725CD598100BD5E8B /* RtcRw.c */, + ); + path = RtcRw; + sourceTree = ""; + }; + 9AA91DC825CD598100BD5E8B /* GopStop */ = { + isa = PBXGroup; + children = ( + 9AA91DC925CD598100BD5E8B /* GopStop.inf */, + 9AA91DCA25CD598100BD5E8B /* GopStop.c */, + 9AA91DCB25CD598100BD5E8B /* README.md */, + 9AA91DCC25CD598100BD5E8B /* Examples */, + ); + path = GopStop; + sourceTree = ""; + }; + 9AA91DCC25CD598100BD5E8B /* Examples */ = { + isa = PBXGroup; + children = ( + 9AA91DCD25CD598100BD5E8B /* Step3.png */, + 9AA91DCE25CD598100BD5E8B /* Step10.png */, + ); + path = Examples; + sourceTree = ""; + }; + 9AA91DCF25CD598100BD5E8B /* ResetSystem */ = { + isa = PBXGroup; + children = ( + 9AA91DD025CD598100BD5E8B /* ResetSystem.inf */, + 9AA91DD125CD598100BD5E8B /* ResetSystem.c */, + ); + path = ResetSystem; + sourceTree = ""; + }; + 9AA91DD225CD598100BD5E8B /* ChipTune */ = { + isa = PBXGroup; + children = ( + 9AA91DD325CD598100BD5E8B /* ChipTune.inf */, + 9AA91DD425CD598100BD5E8B /* ChipTune.c */, + ); + path = ChipTune; + sourceTree = ""; + }; + 9AA91DD525CD598100BD5E8B /* PavpProvision */ = { + isa = PBXGroup; + children = ( + 9AA91DD625CD598100BD5E8B /* PavpProvision.inf */, + 9AA91DD725CD598100BD5E8B /* PavpProvisionData.c */, + 9AA91DD825CD598100BD5E8B /* PavpProvision.c */, + ); + path = PavpProvision; + sourceTree = ""; + }; + 9AA91DD925CD598100BD5E8B /* CleanNvram */ = { + isa = PBXGroup; + children = ( + 9AA91DDA25CD598100BD5E8B /* CleanNvram.c */, + 9AA91DDB25CD598100BD5E8B /* CleanNvram.inf */, + ); + path = CleanNvram; + sourceTree = ""; + }; + 9AA91DDC25CD598100BD5E8B /* OpenControl */ = { + isa = PBXGroup; + children = ( + 9AA91DDD25CD598100BD5E8B /* OpenControl.inf */, + 9AA91DDE25CD598100BD5E8B /* OpenControl.c */, + ); + path = OpenControl; + sourceTree = ""; + }; + 9AA91DDF25CD598100BD5E8B /* MmapDump */ = { + isa = PBXGroup; + children = ( + 9AA91DE025CD598100BD5E8B /* MmapDump.inf */, + 9AA91DE125CD598100BD5E8B /* MmapDump.c */, + ); + path = MmapDump; + sourceTree = ""; + }; + 9AA91DE925CD598100BD5E8B /* Debug */ = { + isa = PBXGroup; + children = ( + 9AA91DEA25CD598100BD5E8B /* GdbSyms */, + 9AA91DFB25CD598100BD5E8B /* ClangDwarf.patch */, + 9AA91DFC25CD598100BD5E8B /* README.md */, + 9AA91DFD25CD598100BD5E8B /* Scripts */, + 9AA91E0325CD598100BD5E8B /* efidebug.tool */, + ); + path = Debug; + sourceTree = ""; + }; + 9AA91DEA25CD598100BD5E8B /* GdbSyms */ = { + isa = PBXGroup; + children = ( + 9AA91DEB25CD598100BD5E8B /* Bin */, + 9AA91DF925CD598100BD5E8B /* GdbSyms.c */, + 9AA91DFA25CD598100BD5E8B /* GdbSyms.inf */, + ); + path = GdbSyms; + sourceTree = ""; + }; + 9AA91DEB25CD598100BD5E8B /* Bin */ = { + isa = PBXGroup; + children = ( + 9AA91DEC25CD598100BD5E8B /* Ia32_XCODE5 */, + 9AA91DEE25CD598100BD5E8B /* X64_CLANGPDB */, + 9AA91DF125CD598100BD5E8B /* X64_CLANGDWARF */, + 9AA91DF325CD598100BD5E8B /* X64_GCC5 */, + 9AA91DF525CD598100BD5E8B /* X64_XCODE5 */, + 9AA91DF725CD598100BD5E8B /* Ia32_GCC5 */, + ); + path = Bin; + sourceTree = ""; + }; + 9AA91DEC25CD598100BD5E8B /* Ia32_XCODE5 */ = { + isa = PBXGroup; + children = ( + 9AA91DED25CD598100BD5E8B /* GdbSyms.dll */, + ); + path = Ia32_XCODE5; + sourceTree = ""; + }; + 9AA91DEE25CD598100BD5E8B /* X64_CLANGPDB */ = { + isa = PBXGroup; + children = ( + 9AA91DEF25CD598100BD5E8B /* GdbSyms.dll */, + 9AA91DF025CD598100BD5E8B /* GdbSyms.pdb */, + ); + path = X64_CLANGPDB; + sourceTree = ""; + }; + 9AA91DF125CD598100BD5E8B /* X64_CLANGDWARF */ = { + isa = PBXGroup; + children = ( + 9AA91DF225CD598100BD5E8B /* GdbSyms.debug */, + ); + path = X64_CLANGDWARF; + sourceTree = ""; + }; + 9AA91DF325CD598100BD5E8B /* X64_GCC5 */ = { + isa = PBXGroup; + children = ( + 9AA91DF425CD598100BD5E8B /* GdbSyms.debug */, + ); + path = X64_GCC5; + sourceTree = ""; + }; + 9AA91DF525CD598100BD5E8B /* X64_XCODE5 */ = { + isa = PBXGroup; + children = ( + 9AA91DF625CD598100BD5E8B /* GdbSyms.dll */, + ); + path = X64_XCODE5; + sourceTree = ""; + }; + 9AA91DF725CD598100BD5E8B /* Ia32_GCC5 */ = { + isa = PBXGroup; + children = ( + 9AA91DF825CD598100BD5E8B /* GdbSyms.debug */, + ); + path = Ia32_GCC5; + sourceTree = ""; + }; + 9AA91DFD25CD598100BD5E8B /* Scripts */ = { + isa = PBXGroup; + children = ( + 9AA91DFE25CD598100BD5E8B /* common_uefi.py */, + 9AA91DFF25CD598100BD5E8B /* lldb_uefi.py */, + 9AA91E0025CD598100BD5E8B /* common_uefi.pyc */, + 9AA91E0125CD598100BD5E8B /* x86_64_target_definition.py */, + 9AA91E0225CD598100BD5E8B /* gdb_uefi.py */, + ); + path = Scripts; + sourceTree = ""; + }; + 9AA91E0B25CD59F100BD5E8B /* Library */ = { + isa = PBXGroup; + children = ( + 9AA91E2425CD59F100BD5E8B /* MemLogLibDefault */, + ); + path = Library; + sourceTree = ""; + }; + 9AA91E2425CD59F100BD5E8B /* MemLogLibDefault */ = { + isa = PBXGroup; + children = ( + 9AA91E2625CD59F100BD5E8B /* printf_lite.c */, + 9AA91E2825CD59F100BD5E8B /* printf_lite.h */, + ); + path = MemLogLibDefault; + sourceTree = ""; + }; + 9AA9253525CD764800BD5E8B /* menu_items */ = { + isa = PBXGroup; + children = ( + 9AA9253625CD764800BD5E8B /* menu_items.h */, + 9AA9253725CD764800BD5E8B /* menu_globals.h */, + 9AA9253825CD764800BD5E8B /* menu_items.cpp */, + ); + path = menu_items; + sourceTree = ""; + }; + 9AA9E50525CD306700BD5E8B /* entry_scan */ = { + isa = PBXGroup; + children = ( + 9AA9251F25CD74C900BD5E8B /* bootscreen.cpp */, + 9AA9252225CD74CA00BD5E8B /* bootscreen.h */, + 9AA9252725CD74CB00BD5E8B /* CanonicalDB.h */, + 9AA9252125CD74C900BD5E8B /* CloverDB.h */, + 9AA9252625CD74CA00BD5E8B /* CloverKEK.h */, + 9AA9252A25CD74CB00BD5E8B /* common.cpp */, + 9AA9251B25CD74C800BD5E8B /* common.h */, + 9AA9251925CD74C800BD5E8B /* entry_scan.h */, + 9AA9251E25CD74C900BD5E8B /* legacy.cpp */, + 9AA9251C25CD74C800BD5E8B /* lockedgraphics.cpp */, + 9AA9251A25CD74C800BD5E8B /* MSKEK.h */, + 9AA9252025CD74C900BD5E8B /* MSPCADB.h */, + 9AA9252525CD74CA00BD5E8B /* MSUEFICADB.h */, + 9AA9252325CD74CA00BD5E8B /* secureboot.cpp */, + 9AA9251725CD74C700BD5E8B /* secureboot.h */, + 9AA9252825CD74CB00BD5E8B /* securebootkeys.h */, + 9AA9251D25CD74C900BD5E8B /* securehash.cpp */, + 9AA9252425CD74CA00BD5E8B /* securemenu.cpp */, + 9AA9252925CD74CB00BD5E8B /* securevars.cpp */, + 9AA9251825CD74C800BD5E8B /* tool.cpp */, + 9AA9251625CD74C700BD5E8B /* tool.h */, + 9AA9E51B25CD306700BD5E8B /* loader.cpp */, + 9AA9E51325CD306700BD5E8B /* loader.h */, + ); + path = entry_scan; + sourceTree = ""; + }; + 9AD469462452B30500D6D0DB /* gui */ = { + isa = PBXGroup; + children = ( + 9AA9253525CD764800BD5E8B /* menu_items */, + 9AD7B14F26079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp */, + 9AD7B14E26079F5C00E850D1 /* REFIT_MAINMENU_SCREEN.h */, + 9AA9253925CD764800BD5E8B /* REFIT_MENU_SCREEN.cpp */, + 9AA9253425CD764800BD5E8B /* REFIT_MENU_SCREEN.h */, + 9AD469472452B33700D6D0DB /* shared_with_menu.cpp */, + 9AD469482452B33700D6D0DB /* shared_with_menu.h */, + ); + path = gui; + sourceTree = ""; + }; + 9AF4D9732632D23400487D15 /* DEBUG_Libs */ = { + isa = PBXGroup; + children = ( + 9AF4D9742632D23400487D15 /* OC */, + 9AF4D9AA2632D23500487D15 /* Library */, + 9AF4D9B12632D23500487D15 /* MdePkg */, + 9AF4D9C62632D23500487D15 /* CloverEFI */, + 9AF4D9C82632D23500487D15 /* MdeModulePkg */, + 9AF4D9CC2632D23500487D15 /* Autogen */, + ); + path = DEBUG_Libs; + sourceTree = ""; + }; + 9AF4D9742632D23400487D15 /* OC */ = { + isa = PBXGroup; + children = ( + 9AF4D9752632D23400487D15 /* OcDataHubLib.lib */, + 9AF4D9762632D23400487D15 /* OcXmlLib.lib */, + 9AF4D9772632D23400487D15 /* OcConfigurationLib.lib */, + 9AF4D9782632D23400487D15 /* OcFirmwareVolumeLib.lib */, + 9AF4D9792632D23400487D15 /* OcStorageLib.lib */, + 9AF4D97A2632D23400487D15 /* OcVirtualFsLib.lib */, + 9AF4D97B2632D23400487D15 /* OcAppleEventLib.lib */, + 9AF4D97C2632D23400487D15 /* OcCryptoLib.lib */, + 9AF4D97D2632D23400487D15 /* OcAudioLib.lib */, + 9AF4D97E2632D23400487D15 /* OcDevicePropertyLib.lib */, + 9AF4D97F2632D23400487D15 /* OcAppleChunklistLib.lib */, + 9AF4D9802632D23500487D15 /* OcStringLib.lib */, + 9AF4D9812632D23500487D15 /* OcTemplateLib.lib */, + 9AF4D9822632D23500487D15 /* OcUnicodeCollationEngGenericLib.lib */, + 9AF4D9832632D23500487D15 /* ControlMsrE2.lib */, + 9AF4D9842632D23500487D15 /* OcAppleKeyMapLib.lib */, + 9AF4D9852632D23500487D15 /* OcConsoleLib.lib */, + 9AF4D9862632D23500487D15 /* OcRtcLib.lib */, + 9AF4D9872632D23500487D15 /* OcDebugLogLib.lib */, + 9AF4D9882632D23500487D15 /* OcCpuLib.lib */, + 9AF4D9892632D23500487D15 /* OcGuardLib.lib */, + 9AF4D98A2632D23500487D15 /* OcDevicePathLib.lib */, + 9AF4D98B2632D23500487D15 /* OcAppleKernelLib.lib */, + 9AF4D98C2632D23500487D15 /* OcAppleKeysLib.lib */, + 9AF4D98D2632D23500487D15 /* OcInputLib.lib */, + 9AF4D98E2632D23500487D15 /* OpenRuntime.lib */, + 9AF4D98F2632D23500487D15 /* OcAppleRamDiskLib.lib */, + 9AF4D9902632D23500487D15 /* OcPeCoffLib.lib */, + 9AF4D9912632D23500487D15 /* OcApfsLib.lib */, + 9AF4D9922632D23500487D15 /* OcSmbiosLib.lib */, + 9AF4D9932632D23500487D15 /* OcSerializeLib.lib */, + 9AF4D9942632D23500487D15 /* OcRngLib.lib */, + 9AF4D9952632D23500487D15 /* OcAfterBootCompatLib.lib */, + 9AF4D9962632D23500487D15 /* OcCompressionLib.lib */, + 9AF4D9972632D23500487D15 /* OcAppleImageVerificationLib.lib */, + 9AF4D9982632D23500487D15 /* OcMemoryLib.lib */, + 9AF4D9992632D23500487D15 /* OcMacInfoLib.lib */, + 9AF4D99A2632D23500487D15 /* OcBootManagementLib.lib */, + 9AF4D99B2632D23500487D15 /* OcAppleImg4Lib.lib */, + 9AF4D99C2632D23500487D15 /* OcAcpiLib.lib */, + 9AF4D99D2632D23500487D15 /* OcAppleDiskImageLib.lib */, + 9AF4D99E2632D23500487D15 /* OcMachoLib.lib */, + 9AF4D99F2632D23500487D15 /* OcSmcLib.lib */, + 9AF4D9A02632D23500487D15 /* OcFileLib.lib */, + 9AF4D9A12632D23500487D15 /* OcAppleUserInterfaceThemeLib.lib */, + 9AF4D9A22632D23500487D15 /* OcDeviceTreeLib.lib */, + 9AF4D9A32632D23500487D15 /* OcOSInfoLib.lib */, + 9AF4D9A42632D23500487D15 /* OcDriverConnectionLib.lib */, + 9AF4D9A52632D23500487D15 /* OpenCore.lib */, + 9AF4D9A62632D23500487D15 /* OcHashServicesLib.lib */, + 9AF4D9A72632D23500487D15 /* OcMiscLib.lib */, + 9AF4D9A82632D23500487D15 /* OcAppleBootPolicyLib.lib */, + 9AF4D9A92632D23500487D15 /* OcAppleSecureBootLib.lib */, + ); + path = OC; + sourceTree = ""; + }; + 9AF4D9AA2632D23500487D15 /* Library */ = { + isa = PBXGroup; + children = ( + 9AF4D9AB2632D23500487D15 /* VideoBiosPatchLib.lib */, + 9AF4D9AC2632D23500487D15 /* VBoxPeCoffLib.lib */, + 9AF4D9AD2632D23500487D15 /* DuetTimerLib.lib */, + 9AF4D9AE2632D23500487D15 /* OpensslLib.lib */, + 9AF4D9AF2632D23500487D15 /* HdaDevicesLib.lib */, + 9AF4D9B02632D23500487D15 /* WaveLib.lib */, + ); + path = Library; + sourceTree = ""; + }; + 9AF4D9B12632D23500487D15 /* MdePkg */ = { + isa = PBXGroup; + children = ( + 9AF4D9B22632D23500487D15 /* BasePciCf8Lib.lib */, + 9AF4D9B32632D23500487D15 /* UefiApplicationEntryPoint.lib */, + 9AF4D9B42632D23500487D15 /* BaseLib.lib */, + 9AF4D9B52632D23500487D15 /* UefiRuntimeServicesTableLib.lib */, + 9AF4D9B62632D23500487D15 /* BaseMemoryLib.lib */, + 9AF4D9B72632D23500487D15 /* BaseIoLibIntrinsic.lib */, + 9AF4D9B82632D23500487D15 /* DxeServicesLib.lib */, + 9AF4D9B92632D23500487D15 /* BaseCpuLib.lib */, + 9AF4D9BA2632D23500487D15 /* UefiLib.lib */, + 9AF4D9BB2632D23500487D15 /* PeCoffExtraActionLibNull.lib */, + 9AF4D9BC2632D23500487D15 /* UefiMemoryAllocationLib.lib */, + 9AF4D9BD2632D23500487D15 /* UefiFileHandleLib.lib */, + 9AF4D9BE2632D23500487D15 /* DxeHobLib.lib */, + 9AF4D9BF2632D23500487D15 /* UefiBootServicesTableLib.lib */, + 9AF4D9C02632D23500487D15 /* BaseDebugLibSerialPort.lib */, + 9AF4D9C12632D23500487D15 /* DxeServicesTableLib.lib */, + 9AF4D9C22632D23500487D15 /* BasePciLibCf8.lib */, + 9AF4D9C32632D23500487D15 /* BasePrintLib.lib */, + 9AF4D9C42632D23500487D15 /* UefiDevicePathLib.lib */, + 9AF4D9C52632D23500487D15 /* BaseDebugPrintErrorLevelLib.lib */, + ); + path = MdePkg; + sourceTree = ""; + }; + 9AF4D9C62632D23500487D15 /* CloverEFI */ = { + isa = PBXGroup; + children = ( + 9AF4D9C72632D23500487D15 /* MtrrLib.lib */, + ); + path = CloverEFI; + sourceTree = ""; + }; + 9AF4D9C82632D23500487D15 /* MdeModulePkg */ = { + isa = PBXGroup; + children = ( + 9AF4D9C92632D23500487D15 /* BasePlatformHookLibNull.lib */, + 9AF4D9CA2632D23500487D15 /* BaseSerialPortLib16550.lib */, + 9AF4D9CB2632D23500487D15 /* FrameBufferBltLib.lib */, + ); + path = MdeModulePkg; + sourceTree = ""; + }; + 9AF4D9CC2632D23500487D15 /* Autogen */ = { + isa = PBXGroup; + children = ( + 9AF4D9CD2632D23500487D15 /* AutoGen.h */, + 9AF4D9CE2632D23500487D15 /* AutoGen.c */, + ); + path = Autogen; + sourceTree = ""; + }; + 9AFDCEB225CD9BB000EEAF06 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + 9AFDD05825CE730F00EEAF06 /* cpp_unit_test */ = { + isa = PBXGroup; + children = ( + 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */, + 9AB67BE3261834F300CC853A /* xml_lite-reapeatingdict-test.h */, + 9AFDD07125CE730F00EEAF06 /* all_tests.cpp */, + 9AFDD07A25CE730F00EEAF06 /* all_tests.h */, + 9A9037E425CFE7D000F14179 /* config-test.cpp */, + 9A9037E225CFE7CD00F14179 /* config-test.h */, + 9AFDD06E25CE730F00EEAF06 /* find_replace_mask_Clover_tests.cpp */, + 9AFDD06625CE730F00EEAF06 /* find_replace_mask_Clover_tests.h */, + 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */, + 9AFDD06225CE730F00EEAF06 /* find_replace_mask_OC_tests.h */, + 9AFDD05C25CE730F00EEAF06 /* global_test.cpp */, + 9AFDD06525CE730F00EEAF06 /* global_test.h */, + 9AFDD06125CE730F00EEAF06 /* LoadOptions_test.cpp */, + 9AFDD07825CE730F00EEAF06 /* LoadOptions_test.h */, + 9AFDD06925CE730F00EEAF06 /* MacOsVersion_test.cpp */, + 9AFDD06F25CE730F00EEAF06 /* MacOsVersion_test.h */, + 9AFDD06825CE730F00EEAF06 /* plist_tests.cpp */, + 9AFDD05B25CE730F00EEAF06 /* plist_tests.h */, + 9AFDD06325CE730F00EEAF06 /* printf_lite-test.cpp */, + 9AFDD07625CE730F00EEAF06 /* printf_lite-test.h */, + 9AFDD06B25CE730F00EEAF06 /* printlib-test.cpp */, + 9AFDD07225CE730F00EEAF06 /* printlib-test.h */, + 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */, + 9A0D113725FF58400040555F /* strcasecmp_test.h */, + 9AFDD06A25CE730F00EEAF06 /* strcmp_test.cpp */, + 9AFDD05F25CE730F00EEAF06 /* strcmp_test.h */, + 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */, + 9AFDD07025CE730F00EEAF06 /* strlen_test.h */, + 9AFDD07525CE730F00EEAF06 /* strncmp_test.cpp */, + 9AFDD05D25CE730F00EEAF06 /* strncmp_test.h */, + 9AFDD07425CE730F00EEAF06 /* XArray_tests.cpp */, + 9AFDD06425CE730F00EEAF06 /* XArray_tests.h */, + 9AFDD06025CE730F00EEAF06 /* XBuffer_tests.cpp */, + 9AFDD05E25CE730F00EEAF06 /* XBuffer_tests.h */, + 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */, + 9A9037E525CFE7D000F14179 /* xml_lite-test.h */, + 9AFDD07325CE730F00EEAF06 /* XObjArray_tests.cpp */, + 9AFDD06D25CE730F00EEAF06 /* XObjArray_tests.h */, + 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */, + 9AFDD05A25CE730F00EEAF06 /* XString_test.h */, + 9AFDD06C25CE730F00EEAF06 /* XStringArray_test.cpp */, + 9AFDD06725CE730F00EEAF06 /* XStringArray_test.h */, + 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */, + 9AFDD05925CE730F00EEAF06 /* XToolsCommon_test.h */, + ); + path = cpp_unit_test; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9A92232C2402FD1000483CBA /* CloverConfigPlistValidator */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverConfigPlistValidator" */; + buildPhases = ( + 9A9223292402FD1000483CBA /* Sources */, + 9A92232A2402FD1000483CBA /* Frameworks */, + 9A92232B2402FD1000483CBA /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CloverConfigPlistValidator; + productName = cpp_tests; + productReference = 9A92232D2402FD1000483CBA /* CloverConfigPlistValidator */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 9A9223252402FD1000483CBA /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1120; + ORGANIZATIONNAME = Jief_Machak; + TargetAttributes = { + 9A92232C2402FD1000483CBA = { + CreatedOnToolsVersion = 10.1; + }; + }; + }; + buildConfigurationList = 9A9223282402FD1000483CBA /* Build configuration list for PBXProject "CloverConfigPlistValidator" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 9A9223242402FD1000483CBA; + productRefGroup = 9A92232E2402FD1000483CBA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9A92232C2402FD1000483CBA /* CloverConfigPlistValidator */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 9A9223292402FD1000483CBA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9A36E50424F3B537007A1107 /* TagInt64.cpp in Sources */, + 9A36E50024F3B537007A1107 /* TagDict.cpp in Sources */, + 9A36E50C24F3B537007A1107 /* TagData.cpp in Sources */, + 9A2755742639E0500095D456 /* Config_GUI.cpp in Sources */, + 9A7D518424FC32F700FA1CC3 /* XBuffer.cpp in Sources */, + 9A2755762639E0500095D456 /* ConfigPlistClass.cpp in Sources */, + 9A2755772639E0500095D456 /* Config_ACPI.cpp in Sources */, + 9A36E53C24F3EDED007A1107 /* base64.cpp in Sources */, + 9AFDD0BD25CE731000EEAF06 /* strlen_test.cpp in Sources */, + 9A3BA388261E7D10009E8B0F /* CpuDeadLoop.c in Sources */, + 9A358B3D25CF117A00A3850D /* XmlLiteCompositeTypes.cpp in Sources */, + 9AD0EB24260A497600093F23 /* XmlLiteSimpleTypes.cpp in Sources */, + 9AFDD0A525CE731000EEAF06 /* all_tests.cpp in Sources */, + 9AFDD0AD25CE731000EEAF06 /* XArray_tests.cpp in Sources */, + 9A4FFA7E2451C8330050B38B /* XString.cpp in Sources */, + 9A8792CB261882DA000B9362 /* PrintLib.c in Sources */, + 9A3BA385261E7CE8009E8B0F /* SwapBytes16.c in Sources */, + 9AFDD05425CDBC1800EEAF06 /* printf_lite.c in Sources */, + 9AFDD0C125CE731000EEAF06 /* find_replace_mask_OC_tests.cpp in Sources */, + 9A36E51824F3B537007A1107 /* TagKey.cpp in Sources */, + 9A2755782639E0500095D456 /* ConfigPlistAbstract.cpp in Sources */, + 9AFDD09525CE731000EEAF06 /* strcmp_test.cpp in Sources */, + 9AFDD09125CE731000EEAF06 /* MacOsVersion_test.cpp in Sources */, + 9A838CB425347C36008303F5 /* MemoryOperation.c in Sources */, + 9A8792C9261882DA000B9362 /* BaseMemoryLib.c in Sources */, + 9A3BA376261E7AF7009E8B0F /* b64cdecode.cpp in Sources */, + 9A3BA37A261E7CCE009E8B0F /* LShiftU64.c in Sources */, + 9AFDD08525CE731000EEAF06 /* LoadOptions_test.cpp in Sources */, + 9A071C48261A44080007CC44 /* XmlLiteUnionTypes.cpp in Sources */, + 9A8792F6261886F6000B9362 /* posix_additions.cpp in Sources */, + 9A3BA379261E7C85009E8B0F /* String.c in Sources */, + 9A9223312402FD1000483CBA /* main.cpp in Sources */, + 9A3BA373261E794F009E8B0F /* DataPatcher.c in Sources */, + 9AFDD0A925CE731000EEAF06 /* XObjArray_tests.cpp in Sources */, + 9AFDD0B925CE731000EEAF06 /* XToolsCommon_test.cpp in Sources */, + 9A3BA380261E7CD9009E8B0F /* MultU64x32.c in Sources */, + 9A27557A2639E0500095D456 /* SMBIOSPlist.cpp in Sources */, + 9A3BA382261E7CD9009E8B0F /* RRotU32.c in Sources */, + 9AFDD0A125CE731000EEAF06 /* find_replace_mask_Clover_tests.cpp in Sources */, + 9A3BA378261E7C69009E8B0F /* SafeString.c in Sources */, + 9A071C47261A44080007CC44 /* XmlLiteArrayTypes.cpp in Sources */, + 9A2755792639E0500095D456 /* Config_ACPI_DSDT.cpp in Sources */, + 9A3BA381261E7CD9009E8B0F /* MultU64x64.c in Sources */, + 9A9037E725CFE7D100F14179 /* config-test.cpp in Sources */, + 9AFDD0B525CE731000EEAF06 /* XString_test.cpp in Sources */, + 9A3BA377261E7BA6009E8B0F /* FloatLib.cpp in Sources */, + 9A36E4FC24F3B537007A1107 /* TagBool.cpp in Sources */, + 9A3BA384261E7CD9009E8B0F /* RShiftU64.c in Sources */, + 9A3BA37C261E7CD9009E8B0F /* LRotU64.c in Sources */, + 9A071C49261A44080007CC44 /* XmlLiteDictTypes.cpp in Sources */, + 9AA925B325CD79AB00BD5E8B /* icns.cpp in Sources */, + 9A36E4F424F3B537007A1107 /* plist.cpp in Sources */, + 9A8792F7261886F6000B9362 /* abort.cpp in Sources */, + 9A3BA387261E7CE8009E8B0F /* SwapBytes64.c in Sources */, + 9A8792F8261886F6000B9362 /* BootLog.cpp in Sources */, + 9A3BA37F261E7CD9009E8B0F /* MultS64x64.c in Sources */, + 9A36E4F824F3B537007A1107 /* xml.cpp in Sources */, + 9A9AEB8D243F73CE00FBD7D8 /* unicode_conversions.cpp in Sources */, + 9AF4DA222632D23600487D15 /* AutoGen.c in Sources */, + 9A3BA375261E7A5E009E8B0F /* guid.cpp in Sources */, + 9A3BA372261E7931009E8B0F /* platformdata.cpp in Sources */, + 9A8792CC261882DA000B9362 /* DebugLib.c in Sources */, + 9A3BA389261E7D4A009E8B0F /* MemLogLib.c in Sources */, + 9A2755752639E0500095D456 /* Config_Quirks.cpp in Sources */, + 9A3BA37D261E7CD9009E8B0F /* Math64.c in Sources */, + 9A9037E625CFE7D100F14179 /* xml_lite-test.cpp in Sources */, + 9A358B3E25CF117A00A3850D /* XmlLiteParser.cpp in Sources */, + 9A7D518524FC32F700FA1CC3 /* XRBuffer.cpp in Sources */, + 9A4185C02439F73A00BEAFB8 /* XStringArray.cpp in Sources */, + 9AB67BE4261834F300CC853A /* xml_lite-reapeatingdict-test.cpp in Sources */, + 9AFDD09925CE731000EEAF06 /* printlib-test.cpp in Sources */, + 9AFDD0B125CE731000EEAF06 /* strncmp_test.cpp in Sources */, + 9A8792CA261882DA000B9362 /* MemoryAllocationLib.c in Sources */, + 9A3BA37E261E7CD9009E8B0F /* ModU64x32.c in Sources */, + 9A3BA383261E7CD9009E8B0F /* RRotU64.c in Sources */, + 9A36E51024F3B537007A1107 /* TagArray.cpp in Sources */, + 9A0D113825FF58420040555F /* strcasecmp_test.cpp in Sources */, + 9A36E4F024F3B537007A1107 /* TagString8.cpp in Sources */, + 9A3BA386261E7CE8009E8B0F /* SwapBytes32.c in Sources */, + 9AFDD08D25CE731000EEAF06 /* plist_tests.cpp in Sources */, + 9AFDD07D25CE731000EEAF06 /* global_test.cpp in Sources */, + 9A36E50824F3B537007A1107 /* TagDate.cpp in Sources */, + 9AFDD08925CE731000EEAF06 /* printf_lite-test.cpp in Sources */, + 9A3BA37B261E7CD9009E8B0F /* LRotU32.c in Sources */, + 9AFDD09D25CE731000EEAF06 /* XStringArray_test.cpp in Sources */, + 9A3BA374261E7A3F009E8B0F /* Utils.cpp in Sources */, + 9AFDD08125CE731000EEAF06 /* XBuffer_tests.cpp in Sources */, + 9A36E51424F3B537007A1107 /* TagFloat.cpp in Sources */, + 9A8792F9261886F6000B9362 /* BasicIO.cpp in Sources */, + 9A0B085E240300E000E2B470 /* Platform.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 9A9223322402FD1000483CBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_ASSIGN_ENUM = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_CXX0X_EXTENSIONS = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = NO; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_FLOAT_CONVERSION = YES; + CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES; + CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_INTERFACE_IVARS = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES; + CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES_AGGRESSIVE; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CLANG_WARN__EXIT_TIME_DESTRUCTORS = NO; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = NO; + ENABLE_TESTABILITY = NO; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + JIEF_DEBUG, + "JCONST=const", + "___NOT___ENABLE_SECURE_BOOT", + "sprintf=__sprintf_is_disabled__", + "wcscmp=__wcscmp_is_disabled__", + "wcslen=wcslen_fixed", + "wcsncmp=wcsncmp_fixed", + "wcsstr=wcsstr_fixed", + ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_PEDANTIC = YES; + GCC_WARN_SHADOW = YES; + GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_LABEL = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(PROJECT_DIR)/src", + "$(PROJECT_DIR)/../../PosixCompilation/UefiMock", + "$(PROJECT_DIR)/../../PosixCompilation/CloverMock/Include", + "$(PROJECT_DIR)/../../Include", + "$(PROJECT_DIR)/../../IntelFrameworkPkg/Include", + "$(PROJECT_DIR)/../../UefiCpuPkg/Include", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Apple", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Intel", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Acidanthera", + "$(PROJECT_DIR)/../../OpenCorePkg", + "$(PROJECT_DIR)/../../MdePkg/Include", + "$(PROJECT_DIR)/../../MdePkg/Include/X64", + "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", + "$(PROJECT_DIR)/../../MdeModulePkg/Include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX/include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/include", + ); + INCLUDED_SOURCE_FILE_NAMES = ""; + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-include", + Platform.h, + ); + OTHER_LDFLAGS = ""; + SDKROOT = macosx; + USE_HEADERMAP = NO; + WARNING_CFLAGS = ( + "-Wno-c99-extensions", + "-Wno-gnu-zero-variadic-macro-arguments", + "-Wignored-qualifiers", + "-Wreorder", + ); + }; + name = Debug; + }; + 9A9223332402FD1000483CBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = NO; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_ASSIGN_ENUM = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_CXX0X_EXTENSIONS = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = NO; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_FLOAT_CONVERSION = YES; + CLANG_WARN_IMPLICIT_SIGN_CONVERSION = NO; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES; + CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_INTERFACE_IVARS = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS = YES; + CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES_AGGRESSIVE; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_SEMICOLON_BEFORE_METHOD_BODY = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CLANG_WARN__EXIT_TIME_DESTRUCTORS = NO; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = NO; + ENABLE_TESTABILITY = NO; + GCC_C_LANGUAGE_STANDARD = c11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = z; + GCC_PREFIX_HEADER = ""; + GCC_PREPROCESSOR_DEFINITIONS = ( + "JCONST=const", + "___NOT___ENABLE_SECURE_BOOT", + "sprintf=__sprintf_is_disabled__", + "wcscmp=__wcscmp_is_disabled__", + "wcslen=wcslen_fixed", + "wcsncmp=wcsncmp_fixed", + "wcsstr=wcsstr_fixed", + ); + GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; + GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = NO; + GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; + GCC_WARN_ABOUT_MISSING_NEWLINE = YES; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_FOUR_CHARACTER_CONSTANTS = YES; + GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = YES; + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_PEDANTIC = YES; + GCC_WARN_SHADOW = YES; + GCC_WARN_SIGN_COMPARE = YES; + GCC_WARN_STRICT_SELECTOR_MATCH = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNKNOWN_PRAGMAS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_LABEL = YES; + GCC_WARN_UNUSED_PARAMETER = NO; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + "$(PROJECT_DIR)/src", + "$(PROJECT_DIR)/../../PosixCompilation/UefiMock", + "$(PROJECT_DIR)/../../PosixCompilation/CloverMock/Include", + "$(PROJECT_DIR)/../../Include", + "$(PROJECT_DIR)/../../IntelFrameworkPkg/Include", + "$(PROJECT_DIR)/../../UefiCpuPkg/Include", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Apple", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Intel", + "$(PROJECT_DIR)/../../OpenCorePkg/Include/Acidanthera", + "$(PROJECT_DIR)/../../OpenCorePkg", + "$(PROJECT_DIR)/../../MdePkg/Include", + "$(PROJECT_DIR)/../../MdePkg/Include/X64", + "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", + "$(PROJECT_DIR)/../../MdeModulePkg/Include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX/include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/include", + ); + INCLUDED_SOURCE_FILE_NAMES = ""; + LLVM_LTO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.13; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "-include", + Platform.h, + ); + OTHER_LDFLAGS = ""; + SDKROOT = macosx; + USE_HEADERMAP = NO; + WARNING_CFLAGS = ( + "-Wno-c99-extensions", + "-Wno-gnu-zero-variadic-macro-arguments", + "-Wignored-qualifiers", + "-Wreorder", + ); + }; + name = Release; + }; + 9A9223352402FD1000483CBA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + GCC_PREPROCESSOR_DEFINITIONS = $inherited; + HEADER_SEARCH_PATHS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-fshort-wchar", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 9A9223362402FD1000483CBA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + GCC_PREPROCESSOR_DEFINITIONS = $inherited; + HEADER_SEARCH_PATHS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-fshort-wchar", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9A9223282402FD1000483CBA /* Build configuration list for PBXProject "CloverConfigPlistValidator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9A9223322402FD1000483CBA /* Debug */, + 9A9223332402FD1000483CBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverConfigPlistValidator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9A9223352402FD1000483CBA /* Debug */, + 9A9223362402FD1000483CBA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 9A9223252402FD1000483CBA /* Project object */; +} diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..984ae1bc1 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 000000000..f9b0d7c5e --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,8 @@ + + + + + PreviewsEnabled + + + diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator.xcscheme b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator.xcscheme new file mode 100644 index 000000000..9863ad430 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator.xcscheme @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator_Release.xcscheme b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator_Release.xcscheme new file mode 100644 index 000000000..065616ef6 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/CloverConfigPlistValidator.xcodeproj/xcshareddata/xcschemes/CloverConfigPlistValidator_Release.xcscheme @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printlib-test-cpp_conf.h b/Xcode/CloverConfigPlistValidator/Include/poolprint-test-cpp_conf.h similarity index 66% rename from Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printlib-test-cpp_conf.h rename to Xcode/CloverConfigPlistValidator/Include/poolprint-test-cpp_conf.h index 969131753..de155e67c 100644 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printlib-test-cpp_conf.h +++ b/Xcode/CloverConfigPlistValidator/Include/poolprint-test-cpp_conf.h @@ -1,8 +1,9 @@ +#include "../../../Include/Library/printf_lite.h" #define F(x) x #define LF(x) L##x -#define PRIF "%s" -#define PRILF "%ls" +#define PRIF "%a" +#define PRILF "%s" //#define loggf(...) printf__VA_ARGS__) #define loggf(...) printf(__VA_ARGS__) diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printf_lite-test-cpp_conf.h b/Xcode/CloverConfigPlistValidator/Include/poolprintfloat-test-cpp_conf.h similarity index 63% rename from Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printf_lite-test-cpp_conf.h rename to Xcode/CloverConfigPlistValidator/Include/poolprintfloat-test-cpp_conf.h index 80d4300f4..b338137bc 100644 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/printf_lite-test-cpp_conf.h +++ b/Xcode/CloverConfigPlistValidator/Include/poolprintfloat-test-cpp_conf.h @@ -1,10 +1,10 @@ #define F(x) x #define LF(x) L##x -#define PRIF "%s" -#define PRILF "%ls" +#define PRIF "%a" +#define PRILF "%s" -#define loggf(...) printf(__VA_ARGS__) +#define loggf(...) printf__VA_ARGS__) //#define loggf(...) printf(__VA_ARGS__) #define DISPLAY_ONLY_FAILED diff --git a/Xcode/CloverConfigPlistValidator/config-nowarning-noerror.plist b/Xcode/CloverConfigPlistValidator/config-nowarning-noerror.plist new file mode 100644 index 000000000..c7e2428da --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/config-nowarning-noerror.plist @@ -0,0 +1,1042 @@ + + + + + ACPI + + AutoMerge + + DSDT + + Debug + + Fixes + + #AddDTGP_0001 + + AddDTGP_0001 + + AddHDMI_8000000 + + AddIMEI_80000 + + AddMCHC_0008 + + AddPNLF_1000000 + + DeleteUnused_400000 + + FIX_ACST_4000000 + + FIX_ADP1_800000 + + FIX_INTELGFX_100000 + + FIX_RTC_20000 + + FIX_S3D_2000000 + + FIX_TMR_40000 + + FIX_WAK_200000 + + FakeLPC_0020 + + FixAirport_4000 + + FixDarwin + + FixDarwin7_10000 + + FixDisplay + + FixFirewire_0800 + + FixHDA_8000 + + FixHPET_0010 + + FixHeaders_20000000 + + FixIDE_0200 + + FixIPIC_0040 + + FixLAN_2000 + + FixRegions_10000000 + + FixSATA_0400 + + FixSBUS_0080 + + FixShutdown_0004 + + FixUSB_1000 + + + Name + aa + Patches + + + Comment + ACPI1 + Disabled + + Find + + AA== + + Replace + + AQ== + + + + Comment + ACPI2 + Disabled + + Find + + Ag== + + Replace + + Aw== + + + + Comment + change EHC1 to EH01 + Disabled + + Find + + RUhDMQ== + + Replace + + RUgwMQ== + + + + ReuseFFFF + + Rtc8Allowed + + SuspendOverride + + + DisableASPM + + DisabledAML + + aa + bb + #bb + cc + + DropTables + + + Signature + SSDT + TableId + CpuPm + Length + 12 + DropForAllOS + true + + + HaltEnabler + + PatchAPIC + + ResetAddress + 0 + ResetValue + 02 + SSDT + + C3Latency + 0xd + DoubleFirstState + + DropOem + + EnableC2 + + EnableC4 + + EnableC6 + + EnableC7 + + #Generate + + CStates + + PStates + + + Generate + + CStates + + PStates + + + MaxMultiplier + 12 + MinMultiplier + 11 + PLimitDict + 2 + PluginType + 1 + UnderVoltStep + 5 + UseSystemIO + + + SortedOrder + + dd + cc + + smartUPS + No + #smartUPS + + RenameDevices + + aa + bb + c + + + + Boot + + Arguments + -v arch=i386 slide=0 dart=0 -xcpm darkwake=1 npci=0x2000 nv_disable=1 cpus=1 rootless=0 debug=0x100 aa + BlackList + + hh + + CustomLogo + Apple + Debug + + EmptyDebugLogAtStart + + DefaultLoader + ii + DefaultVolume + LastBootedVolume + DisableCloverHotkeys + + HibernationFixup + + Legacy + LegacyBiosDefault + LegacyBiosDefaultEntry + 12 + NeverDoRecovery + + NeverHibernate + + NoEarlyProgress + + Policy + Allow + Secure + + SignatureFixup + + SkipHibernateTimeout + + StrictHibernate + + Timeout + -1 + WhiteList + + ff + gg + + XMPDetection + 1 + + BootGraphics + + DefaultBackgroundColor + 0xF1F1F1 + EFILoginHiDPI + 2 + UIScale + 4 + flagstate + 3 + + CPU + + BusSpeedkHz + 800 + C2 + + C4 + + C6 + + FrequencyMHz + 2000 + HWPEnable + + HWPValue + 0x7 + Latency + 0x3 + QEMU + + QPI + 4 + TDP + 6 + TurboDisable + + Type + 0x5 + UseARTFrequency + + + Devices + + AddProperties + + + Device + SATA + Disabled + + Key + 10 + Value + 11 + + + Device + LPC + Disabled + + Key + 12 + Value + 13 + + + Device + SmBUS + Disabled + + Key + kk + Value + ll + + + Device + Firewire + Disabled + + Key + 14 + Value + + FQ== + + + + AirportBridgeDeviceName + airp + Arbitrary + + + Comment + C1 + CustomProperties + + + Disabled + + Key + ll + Value + mm + + + Disabled + + Key + nn + Value + 1 + + + Disabled + + Key + oo + Value + + Ag== + + + + PciAddr + 00:00.01 + + + Audio + + AFGLowPowerState + + Inject + 0x11 + ResetHDA + + + DisableFunctions + 0x18F6 + FakeID + + ATI + 0x22221002 + IMEI + 0x22221002 + IntelGFX + 0x22221002 + LAN + 0x22221002 + NVidia + 0x22221002 + SATA + 0x22221002 + WIFI + 0x22221002 + XHCI + 0x22221002 + + ForceHPET + + Inject + + IntelMaxValue + 0x710 + NoDefaultProperties + + Properties + + PciRoot(0x0)/Pci(0x2,0x0) + + pci-aspm-default + 0 + AAPL,GfxYTile + + AQAAAA== + + AAPL,ig-platform-id + + AAAbWQ== + + AAPL,slot-name + Internal@0,2,0 + device-id + + G1kAAA== + + + Test2 + + Test2Key1 + AQAAAA== + Test2Key2 + Test2Value2 + + + SetIntelBacklight + + SetIntelMaxBacklight + + USB + + AddClockID + + FixOwnership + + HighCurrent + + Inject + + + UseIntelHDMI + + + DisableDrivers + + Ps2KeyboardDxe + OsxAptioFixDrv + + + GUI + + EmbeddedThemeType + Dark + ConsoleMode + Max + Custom + + Entries + + + AddArguments + addarg + Arguments + arg + BootBgColor + bootbgcolor + CustomLogo + Apple + Disabled + + DriveImage + driveimage + FullTitle + title + Hidden + Always + Hotkey + H + Image + image + Path + path + Settings + settings + SubEntries + + + AddArguments + arg2 + FullTitle + title1 + SubEntries + + + Disabled + + Title + GDiskSub + Path + \EFI\GDISK\gdisk_x64.efi + Type + Windows + Image + \EFI\GDISK\GDisk.png + Hidden + + + + + + AddArguments + arg3 + Title + title2 + + + AddArguments + arg4 + FullTitle + title3 + + + AddArguments + arg5 + Title + title4 + + + Type + Oldest + Volume + v1 + VolumeType + Internal + + + Legacy + + + Disabled + + FullTitle + title + Hidden + + Hotkey + + Type + Windows + Volume + v2 + + + Tool + + + Arguments + b + Disabled + + Hidden + + Hotkey + b + Path + path + Title + title + Volume + tool1 + + + + CustomIcons + + Hide + + sdfsdfdf + sdfsfdf + + Language + es + Mouse + + DoubleClickTime + 501 + Enabled + + Mirror + + Speed + 5 + + Scan + + Entries + + Kernel + First + Legacy + First + Linux + + Tool + + + ScreenResolution + 1366x768 + ShowOptimus + + TextOnly + + Theme + + + Graphics + + ATI + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + BootDisplay + 12 + DualLink + 1 + EDID + + Custom + AP///////wBMo0cwAAAAAAAUAQOAHBB46h2FkVZZjyYYUFQAAAABAQEBAQEBAQEBAQEBAQEBOB1W1FAAFjAwICUAFZwQAAAZAAAADwAAAAAAAAAAACXZBmoAAAAA/gBTQU1TVU5HCiBMo0FUAAAA/gBMVE4xMjVBVDAxNDAxAF0= + Inject + + ProductID + 0x9777 + VendorID + 0x1007 + + FBName + Exmoor + Inject + + ATI + + Intel + + NVidia + + + LoadVBios + + NVCAP + 0304 + NVIDIA + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + aa + VRAM + 1000 + VideoPorts + 1 + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + bb + VRAM + 1000 + VideoPorts + 2 + + + NvidiaGeneric + + NvidiaNoEFI + + NvidiaSingle + + PatchVBios + + PatchVBiosBytes + + + Find + + AwQF + + Replace + + BgcI + + + + VRAM + 1500 + VideoPorts + 2 + display-cfg + 04 + ig-platform-id + 0x59230000 + + KernelAndKextPatches + + ATIConnectorsController + ATICtl + ATIConnectorsData + 111213 + ATIConnectorsPatch + 141516 + AppleIntelCPUPM + + AppleRTC + + BootPatches + + + Comment + c3 + Disabled + + Find + + MTI= + + MatchBuild + 10.12.6 + MatchOS + 10.12 + Replace + + MzQ= + + + + Debug + + DellSMBIOSPatch + + FakeCPUID + 0x0306D0 + ForceKextsToLoad + + ForceKext + + KernelLapic + + KernelPm + + KernelToPatch + + + Comment + c2 + Disabled + + Find + + ISI= + + MatchBuild + 10.13.6 + MatchOS + 10.13 + Replace + + IyQ= + + + + KernelXCPM + + KextsToPatch + + + Comment + c1 + Disabled + + Find + + AQ== + + InfoPlistPatch + + MatchBuild + 10.14.6 + MatchOS + 10.14 + Name + k1 + Replace + + Ag== + + + + Comment + IONVMeFamily IONameMatch + Disabled + + Find + + PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4= + + InfoPlistPatch + + Name + IONVMeFamily + Replace + + PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4= + + + + + RtVariables + + BooterConfig + 0x1 + CsrActiveConfig + 0x2 + MLB + 12345678901234567 + ROM + + MBRwYnHo + + Block + + + Comment + c1 + Disabled + false + Guid + aa + Name + name1 + + + + SMBIOS + + BiosReleaseDate + 08/08/17 + BiosVendor + Apple Inc. + BiosVersion + MBP81.88Z.004D.B00.1708080655 + Board-ID + Mac-94245B3640C91C81 + BoardManufacturer + Apple Inc. + BoardSerialNumber + W89135306OPDM6CAD + BoardType + 10 + BoardVersion + 1.0 + ChassisAssetTag + MacBook-Aluminum + ChassisManufacturer + Apple Inc. + ChassisType + 0x0A + Family + MacBook Pro + FirmwareFeatures + 0xC00DE137 + FirmwareFeaturesMask + 0xFF1FFF3F + LocationInChassis + Part Component + Manufacturer + Apple Inc. + Memory + + Channels + 2 + Modules + + + Frequency + 333 + Part + Part1 + Serial + Ser1 + Size + 2048 + Slot + 1 + Type + DDR + Vendor + v1 + + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 4096 + Slot + 2 + Type + DDR2 + Vendor + v2 + + + SlotCount + 4 + + Mobile + + PlatformFeature + 0xFFFF + ProductName + MacBookPro8,1 + SerialNumber + W89G91VFDH2G + Slots + + + Device + NVidia + ID + 1 + Name + APPL,sdfsdf + Type + 1 + + + SmUUID + F1AB23C0-C35A-473E-BDB7-455C3A6271E8 + Version + 1.0 + + SystemParameters + + BacklightLevel + 2 + CustomUUID + 2926A57C-FF0E-4A64-980F-23483BD41969 + InjectKexts + Yes + InjectSystemID + + NoCaches + + NvidiaWeb + + + + diff --git a/Xcode/CloverConfigPlistValidator/config-test1.plist b/Xcode/CloverConfigPlistValidator/config-test1.plist new file mode 100644 index 000000000..8eef8d8e6 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/config-test1.plist @@ -0,0 +1,1723 @@ + + + + + ACPI + + AutoMerge + + DSDT + + Debug + + Fixes + + #AddDTGP_0001 + + AddDTGP_0001 + + AddHDMI_8000000 + + AddIMEI_80000 + + AddMCHC_0008 + + AddPNLF_1000000 + + DeleteUnused_400000 + + FIX_ACST_4000000 + + FIX_ADP1_800000 + + FIX_INTELGFX_100000 + + FIX_RTC_20000 + + FIX_S3D_2000000 + + FIX_TMR_40000 + + FIX_WAK_200000 + + FakeLPC_0020 + + FixAirport_4000 + + FixDarwin + + FixDarwin7_10000 + + FixDisplay + + FixFirewire_0800 + + FixHDA_8000 + + FixHPET_0010 + + FixHeaders_20000000 + + FixIDE_0200 + + FixIPIC_0040 + + FixLAN_2000 + + FixRegions_10000000 + + FixSATA_0400 + + FixSBUS_0080 + + FixShutdown_0004 + + FixUSB_1000 + + + Name + aa + Patches + + + Comment + ACPI1 + Disabled + + Find + + AA== + + Replace + + AQ== + + + + Comment + ACPI2 + Disabled + + Find + + Ag== + + Replace + + Aw== + + + + Comment + change EHC1 to EH01 + Disabled + + Find + + RUhDMQ== + + Replace + + RUgwMQ== + + + + ReuseFFFF + + Rtc8Allowed + + SuspendOverride + + + DisableASPM + + DisabledAML + + aa + bb + #bb + cc + + DropTables + + + Signature + SSDT + TableId + CpuPm + Length + 12 + DropForAllOS + yes + + + HaltEnabler + + PatchAPIC + + ResetAddress + 0 + ResetValue + 02 + SSDT + + C3Latency + 0xd + DoubleFirstState + + DropOem + + EnableC2 + + EnableC4 + + EnableC6 + + EnableC7 + + #Generate + + CStates + + PStates + + + Generate + + CStates + + PStates + + + MaxMultiplier + 12 + MinMultiplier + 11 + PLimitDict + 2 + PluginType + 1 + UnderVoltStep + 5 + UseSystemIO + + + SortedOrder + + dd + cc + + smartUPS + No + #smartUPS + + #RenameDevices + + _SBZZZ.PCI0.RP02.PXSX + bb + c + + + RenameDevices + + + _SB.PCI0.RP05.PXSX + UPSB + _SB.PCI0.RP05.PXSY + UPSY + + + _SB.PCI0.RP05.UPSB.DSB1.NHI0 + UPS0 + + + _SB.PCI0.RP03.PXSX + BRG3 + + + + Boot + + Arguments + -v arch=i386 slide=0 dart=0 -xcpm darkwake=1 npci=0x2000 nv_disable=1 cpus=1 rootless=0 debug=0x100 aa + BlackList + + hh + + CustomLogo + Apple + Debug + + DefaultLoader + ii + DefaultVolume + LastBootedVolume + DisableCloverHotkeys + + HibernationFixup + + Legacy + LegacyBiosDefault + LegacyBiosDefaultEntry + 12 + NeverDoRecovery + + NeverHibernate + + NoEarlyProgress + + Policy + Allow + Secure + + SignatureFixup + + SkipHibernateTimeout + + StrictHibernate + + Timeout + -1 + WhiteList + + ff + gg + + XMPDetection + 1 + + BootGraphics + + DefaultBackgroundColor + 0xF1F1F1 + EFILoginHiDPI + 2 + UIScale + 4 + flagstate + 3 + + CPU + + BusSpeedkHz + 800 + C2 + + #C4 + + C6 + + FrequencyMHz + 2000 + HWPEnable + + HWPValue + 0x7 + Latency + 0x3 + QEMU + + QPI + 4 + TDP + 6 + TurboDisable + + Type + 0x5 + UseARTFrequency + + + Devices + + Properties + + #Properties_key1 + + pci-aspm-default + 0 + AAPL,GfxYTile + + AQAAAA== + + AAPL,ig-platform-id + + AAAbWQ== + + AAPL,slot-name + Internal@0,2,0 + device-id + + G1kAAA== + + + Test2 + + Test2Key1 + AQAAAA== + Test2Key2 + Test2Value2 + + !PrimaryGPU + + TestPrimaryGPU + AQAAAA== + Test2Key2 + Test2Value2 + + SecondaryGPU + + Test2SecondaryGPU + AQAAAA== + Test2Key2 + Test2Value2 + + + #Arbitrary + + + Comment + C1 + PciAddr + 00:00.01 + CustomProperties + + + Disabled + + Key + ll + Value + mm + + + Disabled + + Key + nn + Value + 1 + + + Disabled + + Key + oo + Value + + Ag== + + + + + + AddProperties + + + Device + SATA + Disabled + + Key + 10 + Value + 11 + + + AirportBridgeDeviceName + airp + Audio + + AFGLowPowerState + + Inject + 0x11 + ResetHDA + + + DisableFunctions + 0x18F6 + FakeID + + ATI + 0x22221002 + IMEI + 0x22221002 + IntelGFX + 0x22221002 + LAN + 0x22221002 + NVidia + 0x22221002 + SATA + 0x22221002 + WIFI + 0x22221002 + XHCI + 0x22221002 + + ForceHPET + + Inject + + IntelMaxValue + 0x710 + NoDefaultProperties + + SetIntelBacklight + + SetIntelMaxBacklight + + USB + + AddClockID + + FixOwnership + + HighCurrent + + Inject + + + UseIntelHDMI + + + DisableDrivers + + Ps2KeyboardDxe + OsxAptioFixDrv + + + GUI + + EmbeddedThemeType + Dark + ConsoleMode + Max + Mouse + + DoubleClickTime + 501 + Enabled + + Mirror + + Speed + 5 + + Custom + + Entries + + + AddArguments + addarg + #Arguments + arg + BootBgColor + bootbgcolor + CustomLogo + Apple + Disabled + + DriveImage + driveimage + FullTitle + title + Hidden + Always + Hotkey + H + Image + image + Path + path + Settings + settings + SubEntries + + + AddArguments + arg2 + FullTitle + title111 + + + AddArguments + arg3 + Title + title2 + + + Arguments + arg4 + FullTitle + title3 + + + AddArguments + arg5 + Title + title4 + + + Type + Oldest + Volume + v1 + VolumeType + Internal + + + Legacy + + + Disabled + + FullTitle + title + Hidden + + Hotkey + I + Type + Windows + Volume + v2 + + + Tool + + + Arguments + b + Disabled + + Hidden + + Hotkey + b + Path + path + Title + title + Volume + tool1 + + + + CustomIcons + + Hide + + sdfsdfdf + sdfsfdf + + Language + es + Scan + + Entries + + Tool + + Linux + + Legacy + + Kernel + + + ScreenResolution + 1366x768 + ShowOptimus + + TextOnly + + Theme + theme + + Graphics + + ATI + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + NVIDIA + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + aa + VRAM + 1000 + VideoPorts + 1 + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + bb + VRAM + 1000 + VideoPorts + 2 + + + BootDisplay + 12 + DualLink + 1 + EDID + + Custom + AP///////wBMo0cwAAAAAAAUAQOAHBB46h2FkVZZjyYYUFQAAAABAQEBAQEBAQEBAQEBAQEBOB1W1FAAFjAwICUAFZwQAAAZAAAADwAAAAAAAAAAACXZBmoAAAAA/gBTQU1TVU5HCiBMo0FUAAAA/gBMVE4xMjVBVDAxNDAxAF0= + Inject + + ProductID + 0x9777 + VendorID + 0x1007 + + FBName + Exmoor + Inject + + LoadVBios + + NVCAP + 0304 + NvidiaGeneric + + NvidiaNoEFI + + NvidiaSingle + + PatchVBios + + PatchVBiosBytes + + + Find + + AwQF + + Replace + + BgcI + + + + VRAM + 1500 + VideoPorts + 2 + display-cfg + 04 + ig-platform-id + 0x59230000 + + KernelAndKextPatches + + ATIConnectorsController + ATICtl + ATIConnectorsData + 111213 + ATIConnectorsPatch + 141516 + AppleIntelCPUPM + + AppleRTC + + BootPatches + + + Comment + c3 + Disabled + + Find + + MTI= + + MatchBuild + 10.12.6 + MatchOS + 10.12 + Replace + + MzQ= + + + + Debug + + DellSMBIOSPatch + + FakeCPUID + 0x0306D0 + ForceKextsToLoad + + + \ + ForceKext + + KernelLapic + + KernelPm + + KernelToPatch + + + #Comment + Disable panic kext logging on 10.14 Release kernel + Disabled + + Find + + igKEwHRC + + MaskFind + + //////// + + MaskReplace + + AAAAAP8A + + MatchOS + 10.14 + Replace + + igKEwOtC + + + + Comment + Disable panic kext logging on 10.13 Release kernel + Disabled + + Find + + igKEwHRE + + MatchOS + 10.13 + Replace + + igKEwOtE + + + + Comment + Lapic panic patch example + Disabled + + Find + + 6AAA//+DAAAAAAAA + + MaskFind + + /wAA////AAAAAP// + + MaskReplace + + /wAA//////////// + + MaskStart + + /////wA= + + MatchOS + All + RangeFind + 200 + Replace + + 6AAA//8xwJCQkJCQ + + StartPattern + + ACnHeAAx241H+oM= + + + + Comment + Symbolic patch example got lapic panic + Disabled + + Find + + 6AAA//+DAAAAAAAA + + MaskFind + + /wAA////AAAAAP// + + MaskReplace + + /wAA//////////// + + MatchOS + All + Procedure + _lapic_interrupt + RangeFind + 200 + Replace + + 6AAA//8xwJCQkJCQ + + + + KernelXCPM + + KextsToPatch + + + Comment + Enable TRIM for SSD + Find + 01 + Replace + 02 + + + Comment + External icons patch + Disabled + + Find + + RXh0ZXJuYWw= + + InfoPlistPatch + + MatchOS + 10.11.x,10.12.x,10.13.x,10.14.x,10.15.x + Name + com.apple.driver.AppleAHCIPort + Replace + + SW50ZXJuYWw= + + + + Comment + framebuffer4K + Disabled + + Find + + AwAiDQADAwMAAAACAAAwAQ== + + InfoPlistPatch + + Name + AppleIntelFramebufferAzul + Replace + + AwAiDQADAwMAAAAEAAAAAw== + + + + Comment + Disable NVDARequiredOS + Disabled + + Find + + TlZEQVJlcXVpcmVkT1MA + + InfoPlistPatch + + Name + NVDAStartupWeb + Replace + + AAAAAAAAAAAAAAAAAAAA + + + + Comment + Disable board-id check to prevent no signal + Disabled + + Find + + SI01qjQ= + + InfoPlistPatch + + Name + com.apple.driver.AppleGraphicsDevicePolicy + Replace + + Dx+AAAA= + + + + Comment + Prevent AGDP from loading + Disabled + + Find + + ugUAAAA= + + InfoPlistPatch + + MatchOS + 10.15.x + Name + com.apple.driver.AppleGraphicsDevicePolicy + Replace + + ugAAAAA= + + + + Comment + Atheros Locale Fix + Disabled + + Find + + g/g3 + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AirPortAtheros40 + Replace + + g/gh + + + + Comment + IONVMeFamily IONameMatch + Disabled + + Find + + PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#1 (Sierra) + Disabled + + Find + + ibPoAgAAweAMBQAQAACJgw== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + ibPoAgAAweAJBQAQAACJgw== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#2 (Sierra) + Disabled + + Find + + D7aMiIIAAACD+QwPhTIBAA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + D7aMiIIAAACD+QkPhTIBAA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#3 (Sierra) + Disabled + + Find + + AMeDpAAAAAAQAABIi0gISA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + AMeDpAAAAAACAABIi0gISA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#4 (Sierra) + Disabled + + Find + + SYnGTYX2dGFBwecMSWP/vg== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + SYnGTYX2dGFBwecJSWP/vg== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#5 (Sierra) + Disabled + + Find + + hv8PAABIwegMD7cPgeH/Dw== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + hv8PAABIwegJD7cPgeH/Dw== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#6_7 (Sierra) + Disabled + + Find + + icGB4f8PAABIAdFIgfn/DwAAdzs= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + icGB4f8BAABIAdFIgfn/AQAAdzs= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#8 (Sierra) + Disabled + + Find + + SYHF/w8AAEnB7QxJiwQkSA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + SYHF/w8AAEnB7QlJiwQkSA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#9_10 (Sierra) + Disabled + + Find + + BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIB + AABBvAAQAABJKfQ= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIB + AABBvAACAABJKfQ= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#11 (Sierra) + Disabled + + Find + + AABJiY4iAQAAugAQAABIKQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + AABJiY4iAQAAugACAABIKQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#12 (Sierra) + Disabled + + Find + + yAAAAEkp17gAEAAATYskJA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + yAAAAEkp17gAAgAATYskJA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#13 (Sierra) + Disabled + + Find + + 4b+AQBUGTYnWugAQAABFMQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + 4b+AQBUGTYnWugACAABFMQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#14 (Sierra) + Disabled + + Find + + iWTY+EmBxAAQAABJgccA8A== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + iWTY+EmBxAACAABJgccA8A== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#15 (Sierra) + Disabled + + Find + + Bf8PAABIwegMZvfB/w8PlQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + Bf8PAABIwegJZvfB/w8PlQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#16 (Sierra) + Disabled + + Find + + weIIQQ+2wcHgDEQJ0EQJwA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + weIIQQ+2wcHgCUQJ0EQJwA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#17 (Sierra) + Disabled + + Find + + RYTJD5XAD7bAweAMRAnYRA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + RYTJD5XAD7bAweAJRAnYRA== + + + + Comment + change 15 port limit to 26 in XHCI kext (100-series) + Disabled + + Find + + g32MEA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AppleUSBXHCIPCI + Replace + + g32MGw== + + + + Comment + change 15 port limit to 26 in XHCI kext (100-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AppleUSBXHCISPT + Replace + + g710////Gw== + + + + Comment + 15 to 20 port limit (9-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.6 + Name + AppleUSBXHCIPCI + Replace + + g710////FQ== + + + + Comment + 15 to 26 port limit (100-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.6 + Name + AppleUSBXHCIPCI + Replace + + g710////Gw== + + + + Comment + USB 10.13.6 by PMHeart + Disabled + + Find + + g32IDw+DpwQAAA== + + InfoPlistPatch + + MatchOS + 10.13.6 + Name + com.apple.driver.usb.AppleUSBXHCI + Replace + + g32ID5CQkJCQkA== + + + + + RtVariables + + BooterConfig + 0x1 + CsrActiveConfig + 0x2 + MLB + 12345678901234567 + ROM + + MBRwYnHo + + Block + + + Comment + c1 + Disabled + false + Guid + 522e186f-964a-4ac7-9299-7a9f32a2473e + Name + name1 + + + + SMBIOS + + SmbiosVersion + 36 + BiosReleaseDate + 08/08/17 + BiosVendor + Apple Inc. + BiosVersion + MBP81.88Z.004D.B00.1708080655 + Board-ID + Mac-94245B3640C91C81 + BoardManufacturer + Apple Inc. + BoardSerialNumber + W89135306OPDM6CAD + BoardType + 10 + BoardVersion + 1.0 + ChassisAssetTag + MacBook-Aluminum + ChassisManufacturer + Apple Inc. + ChassisType + 0x0A + Family + MacBook Pro + FirmwareFeatures + 0xC00DE137 + FirmwareFeaturesMask + 0xFF1FFF3F + LocationInChassis + Part Component + Manufacturer + Apple Inc. + Memory + + Channels + 2 + Modules + + + Frequency + 333 + Part + Part1 + Serial + Ser1 + Size + 2048 + Slot + 1 + Type + DDR + Vendor + v1 + + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 4096 + Slot + 2 + Type + DDR2 + Vendor + v2 + + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 8192 + Slot + 4 + #Type + DDR2 + Vendor + v2 + + + SlotCount + 8 + + Mobile + + PlatformFeature + 0xFFFF + ProductName + MacBookPro8,1 + SerialNumber + W89G91VFDH2G + Slots + + + Device + HDMI + + + Device + NVidia + ID + 1 + Name + APPL,sdfsdf + Type + 1 + + + SmUUID + F1AB23C0-C35A-473E-BDB7-455C3A6271E8 + Version + 1.0 + Trust + + MemoryRank + 2 + + SystemParameters + + BacklightLevel + 2 + CustomUUID + 2926A57C-FF0E-4A64-980F-23483BD41969 + InjectKexts + Yes + InjectSystemID + + NoCaches + + NvidiaWeb + + + Quirks + + AvoidRuntimeDefrag + + DevirtualiseMmio + + DisableSingleUser + + DisableVariableWrite + + DiscardHibernateMap + + EnableSafeModeSlide + + EnableWriteUnprotector + + ForceExitBootServices + + MmioWhitelist + + + Comment + c1 + Address + 12345678 + Enabled + + + + Comment + + Address + 12345678 + Enabled + + + + #Comment + c1 + Address + abcde + Enabled + + + + ProtectMemoryRegions + + ProtectSecureBoot + + ProtectUefiServices + + ProvideConsoleGopEnable + + ProvideCustomSlide + + ProvideMaxSlide + 0 + RebuildAppleMemoryMap + + SetupVirtualMap + + SignalAppleOS + + SyncRuntimePermissions + + + + FuzzyMatch + + KernelCache + Auto + AppleXcpmExtraMsrs + + AppleXcpmForceBoost + + DisableIoMapper + + DisableLinkeditJettison + + DummyPowerManagement + + ExternalDiskIcons + + IncreasePciBarSize + + PowerTimeoutKernelPanic + + ThirdPartyDrives + + XhciPortLimit + + + + diff --git a/Xcode/CloverConfigPlistValidator/config-test2.plist b/Xcode/CloverConfigPlistValidator/config-test2.plist new file mode 100644 index 000000000..e00a663db --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/config-test2.plist @@ -0,0 +1,55 @@ + + + + + SMBIOS + + FirmwareFeatures + 0xFD8FF576 + Board-ID + Mac-AA95B1DDAB278B95 + Trust + + FirmwareFeaturesMask + 0xFFDFFF7F + BoardVersion + 1.0 + Manufacturer + Apple Inc. + ChassisType + 0x09 + BiosVersion + IM191.88Z.F000.B00.0004232100 + BoardManufacturer + Apple Inc. + ChassisAssetTag + iMac-Aluminum + PlatformFeature + 0x20 + Family + iMac + ChassisManufacturer + Apple Inc. + SmUUID + 527657B7-A757-46E3-AEDD-5FDBB1121BED + BiosVendor + Apple Inc. + ProductName + iMac19,1 + Mobile + + BoardType + 10 + EfiVersion + 1037.120.79.0.0 + SerialNumber + C02ZJTYKJV3S + LocationInChassis + Part Component + BiosReleaseDate + 04/26/2020 + Version + 1.0 + + + diff --git a/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test-cpp_conf.h b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test-cpp_conf.h new file mode 100644 index 000000000..d111af183 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test-cpp_conf.h @@ -0,0 +1,12 @@ + +#define F(x) x +#define LF(x) L##x +#define PRIF "%a" +#define PRILF "%s" + +#define loggf(...) DebugLog(2, __VA_ARGS__) +//#define loggf(...) printf(__VA_ARGS__) + +#define DISPLAY_ONLY_FAILED +//#define DISPLAY_START_INFO + diff --git a/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.cpp b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.cpp new file mode 100644 index 000000000..45d99db56 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.cpp @@ -0,0 +1,135 @@ +// +// main.cpp +// Printf-UnitTests +// +// Created by Jief on 29/08/17. +// Copyright © 2017 Jief. All rights reserved. +// + +#include +#include +#include "unicode_conversions.h" +#include +#include "poolprint-test.h" + +static int nbTestFailed = 0; +#ifdef DISPLAY_ONLY_FAILED +static bool displayOnlyFailed = true; +#else +static bool displayOnlyFailed = false; +#endif + +/* + * Print wchar string as a utf8 string. + * This eliminate all problems about wprintf and compilation with short-wchar or long-wchar I had on macOs (2020-03) + */ +static void print_wchar_string(const wchar_t* s) +{ +// char utf8[wchar_len(s)*4+1]; +// some compiler doesn't like variable length array. +// use a fixed length instead. + char utf8[200]; + utf8_string_from_wchar_string(utf8, sizeof(utf8), s); + if ( strlen(utf8) > sizeof(utf8)-2 ) { + loggf("fixed size buf not big enough"); + abort(); + } + loggf("%s", utf8); +} + + +VOID +EFIAPI +_PoolCatPrint ( + IN CONST CHAR16 *fmt, + IN VA_LIST args, + IN OUT POOL_PRINT *spc, + IN EFI_STATUS + (EFIAPI + *Output) + ( + POOL_PRINT *context, + CHAR16 *str + ) + ); + +#include "../libeg/FloatLib.h" + +static int testPoolPrintFloat(const char* label, const wchar_t* expectResult, float param) +{ + wchar_t* wbuf = PoolPrintFloat(param); + if ( memcmp(wbuf, expectResult, wchar_len(expectResult)*sizeof(expectResult[0])) != 0 ) { +// loggf(F(" -> ERROR. Expect " PRILF " and get %ls\n"), expectResult, buf); +// not using wprintf, it crashes sometimes, it doesn't work for short-wchar + loggf(F("%s -> ERROR. Expect "), label); + print_wchar_string(expectResult); + loggf(F(" and get ")); + print_wchar_string(wbuf); + loggf("\n"); + nbTestFailed += 1; + wchar_t* wbuf2 = PoolPrintFloat(param); // for stepping with a debugger. + FreePool(wbuf2); + }else if ( !displayOnlyFailed ) { + loggf(F("%s : "), label); + print_wchar_string(wbuf); + loggf(F(" -> OK\n")); + } + FreePool(wbuf); + return 1; +} + + + +#define Test1arg(expectResult,param) \ +{ \ + char label[1024]; \ + snprintf(label, sizeof(label), F("testPoolPrintFloat(%s)"), F(#param)); \ + testPoolPrintFloat(label,L##expectResult,param); \ +} + +#define Test2arg(expectResult,format,c,d) \ +{ \ + char label[1024]; \ + snprintf(label, sizeof(label), F("Test swprintf(%s, %s, %s)"), F(#format), F(#c), F(#d)); \ + testWPrintf(label,L##expectResult,(int)wcslen(L##expectResult),L##format,c,d); \ +} + +#define Test5arg(expectResult,format,c,d,e,f,g) \ +{ \ + char label[1024]; \ + snprintf(label, sizeof(label), F("Test swprintf(%s, %s, %s, %s, %s, %s)"), F(#format), F(#c), F(#d), F(#e), F(#f), F(#g)); \ + testWPrintf(label,L##expectResult,(int)wcslen(L##expectResult),L##format,c,d,e,f,g); \ +} + + +int poolprintfloat_tests(void) +{ +#ifdef DISPLAY_START_INFO + loggf(F("\n")); + loggf(F("PoolPrintFloat unit test\n")); + loggf(F("\n")); + loggf(F("\n")); + + // These depends on the plateform. They are not printf unit test, but it's nice to check size of builtin type. + loggf(F("sizeof(float)=%lu\n"), sizeof(float)); + loggf(F("sizeof(double)=%zu\n"), sizeof(double)); + loggf(F("\n")); + +#endif + + Test1arg(F(" 0.000000"), 0.0); + Test1arg(F(" 0.123456"), 0.1234567890); + Test1arg(F("-0.123456"), -0.1234567890); + Test1arg(F(" 1.100000"), 1.1); + Test1arg(F(" -1.100000"), -1.1); + Test1arg(F(" 123.456787"), 123.456789); + Test1arg(F(" -123.456787"), -123.456789); + Test1arg(F(" 1234567936.000000"), 1234567890.456789); + Test1arg(F(" -1234567936.000000"), -1234567890.456789); + Test1arg(F(" 0.000000"), 12345678901234567890.456789); + Test1arg(F(" 0.000000"), -12345678901234567890.456789); + + + return nbTestFailed; +} + diff --git a/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.h b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.h new file mode 100644 index 000000000..597f991e9 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/old/poolprintfloat-test.h @@ -0,0 +1 @@ +int poolprintfloat_tests(); diff --git a/Xcode/CloverConfigPlistValidator/src/ConfigSample1.h b/Xcode/CloverConfigPlistValidator/src/ConfigSample1.h new file mode 100644 index 000000000..647f6a844 --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/src/ConfigSample1.h @@ -0,0 +1,933 @@ +// +// ConfigSample1.h +// cpp_tests_compare_settings +// +// Created by Jief on 05/02/2021. +// Copyright © 2021 Jief_Machak. All rights reserved. +// + +#ifndef ConfigSample1_h +#define ConfigSample1_h + +#ifndef _MSC_VER +const char* configSample1 = "\n\n\n\n\n\n\n\n\n\n\n" +" \n\ + \n\ + \n\ + \n\ + ACPI \n\ + \n\ + AutoMerge \n\ + \n\ + DSDT \n\ + \n\ + Debug \n\ + \n\ + DropOEM_DSM \n\ + \n\ + ATI \n\ + \n\ + Firewire \n\ + \n\ + HDA \n\ + \n\ + HDMI \n\ + \n\ + IDE \n\ + \n\ + IntelGFX \n\ + \n\ + LAN \n\ + \n\ + LPC \n\ + \n\ + NVidia \n\ + \n\ + SATA \n\ + \n\ + SmBUS \n\ + \n\ + USB \n\ + \n\ + WIFI \n\ + \n\ + \n\ + Fixes \n\ + \n\ + FixDarwin \n\ + \n\ + FixDisplay \n\ + \n\ + FixS3D \n\ + \n\ + \n\ + Name \n\ + aa \n\ + Patches \n\ + \n\ + \n\ + Comment \n\ + ACPI1 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + AA== \n\ + \n\ + Replace \n\ + \n\ + AQ== \n\ + \n\ + \n\ + \n\ + Comment \n\ + ACPI2 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + Ag== \n\ + \n\ + Replace \n\ + \n\ + Aw== \n\ + \n\ + \n\ + \n\ + Comment \n\ + change EHC1 to EH01 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + RUhDMQ== \n\ + \n\ + Replace \n\ + \n\ + RUgwMQ== \n\ + \n\ + \n\ + \n\ + ReuseFFFF \n\ + \n\ + Rtc8Allowed \n\ + \n\ + SlpSmiAtWake \n\ + \n\ + SuspendOverride \n\ + \n\ + \n\ + DisableAPSNAPLF \n\ + \n\ + DisableASPM \n\ + \n\ + DisabledAML \n\ + \n\ + aa \n\ + bb \n\ + \n\ + DropTables \n\ + \n\ + \n\ + Signature \n\ + SSDT \n\ + TableId \n\ + CpuPm \n\ + \n\ + \n\ + HaltEnabler \n\ + \n\ + PatchAPIC \n\ + \n\ + ResetAddress \n\ + 01 \n\ + ResetValue \n\ + 02 \n\ + SortedOrder \n\ + \n\ + dd \n\ + cc \n\ + \n\ + smartUPS \n\ + \n\ + \n\ + Boot \n\ + \n\ + Arguments \n\ + -v arch=i386 slide=0 dart=0 -xcpm darkwake=1 npci=0x2000 cpus=1 debug=0x100 aa \n\ + BlackList \n\ + \n\ + hh \n\ + \n\ + CustomLogo \n\ + Apple \n\ + Debug \n\ + \n\ + DefaultLoader \n\ + ii \n\ + DefaultVolume \n\ + LastBootedVolume \n\ + DisableCloverHotkeys \n\ + \n\ + HibernationFixup \n\ + \n\ + Legacy \n\ + LegacyBiosDefault \n\ + LegacyBiosDefaultEntry \n\ + 12 \n\ + NeverDoRecovery \n\ + \n\ + NeverHibernate \n\ + \n\ + NoEarlyProgress \n\ + \n\ + Policy \n\ + Allow \n\ + Secure \n\ + \n\ + SignatureFixup \n\ + \n\ + SkipHibernateTimeout \n\ + \n\ + StrictHibernate \n\ + \n\ + Timeout \n\ + 2 \n\ + WhiteList \n\ + \n\ + ff \n\ + gg \n\ + \n\ + XMPDetection \n\ + 1 \n\ + \n\ + BootGraphics \n\ + \n\ + DefaultBackgroundColor \n\ + 0xF1F1F1 \n\ + EFILoginHiDPI \n\ + 2 \n\ + UIScale \n\ + 4 \n\ + flagstate \n\ + 3 \n\ + \n\ + CPU \n\ + \n\ + BusSpeedkHz \n\ + 800 \n\ + C2 \n\ + \n\ + C4 \n\ + \n\ + C6 \n\ + \n\ + FrequencyMHz \n\ + 2000 \n\ + HWPEnable \n\ + \n\ + HWPValue \n\ + 0x7 \n\ + Latency \n\ + 0x3 \n\ + QEMU \n\ + \n\ + QPI \n\ + 4 \n\ + TDP \n\ + 6 \n\ + TurboDisable \n\ + \n\ + Type \n\ + 0x5 \n\ + UseARTFrequency \n\ + \n\ + \n\ + Devices \n\ + \n\ + AddProperties \n\ + \n\ + \n\ + Device \n\ + SATA \n\ + Disabled \n\ + \n\ + Key \n\ + 10 \n\ + Value \n\ + 11 \n\ + \n\ + \n\ + Device \n\ + LPC \n\ + Disabled \n\ + \n\ + Key \n\ + 12 \n\ + Value \n\ + 13 \n\ + \n\ + \n\ + Device \n\ + SmBUS \n\ + Disabled \n\ + \n\ + Key \n\ + kk \n\ + Value \n\ + ll \n\ + \n\ + \n\ + Device \n\ + Firewire \n\ + Disabled \n\ + \n\ + Key \n\ + 14 \n\ + Value \n\ + \n\ + FQ== \n\ + \n\ + \n\ + \n\ + AirportBridgeDeviceName \n\ + airportbridge \n\ + Arbitrary \n\ + \n\ + \n\ + Comment \n\ + C1 \n\ + CustomProperties \n\ + \n\ + \n\ + Disabled \n\ + \n\ + Key \n\ + ll \n\ + Value \n\ + mm \n\ + \n\ + \n\ + Disabled \n\ + \n\ + Key \n\ + nn \n\ + Value \n\ + 1 \n\ + \n\ + \n\ + Disabled \n\ + \n\ + Key \n\ + oo \n\ + Value \n\ + \n\ + Ag== \n\ + \n\ + \n\ + \n\ + PciAddr \n\ + 00:00.01 \n\ + \n\ + \n\ + Audio \n\ + \n\ + AFGLowPowerState \n\ + \n\ + Inject \n\ + Detect \n\ + ResetHDA \n\ + \n\ + \n\ + DisableFunctions \n\ + \n\ + FakeID \n\ + \n\ + ATI \n\ + 0x22221002 \n\ + IMEI \n\ + 0x22221002 \n\ + IntelGFX \n\ + 0x22221002 \n\ + LAN \n\ + 0x22221002 \n\ + NVidia \n\ + 0x22221002 \n\ + SATA \n\ + 0x22221002 \n\ + WIFI \n\ + 0x22221002 \n\ + XHCI \n\ + 0x22221002 \n\ + \n\ + ForceHPET \n\ + \n\ + Inject \n\ + \n\ + IntelMaxValue \n\ + \n\ + LpcTune \n\ + \n\ + NoDefaultProperties \n\ + \n\ + Properties \n\ + jj \n\ +kk \n\ + SetIntelBacklight \n\ + \n\ + SetIntelMaxBacklight \n\ + \n\ + USB \n\ + \n\ + AddClockID \n\ + \n\ + FixOwnership \n\ + \n\ + HighCurrent \n\ + \n\ + Inject \n\ + \n\ + \n\ + UseIntelHDMI \n\ + \n\ + \n\ + DisableDrivers \n\ + \n\ + OsxAptioFixDrv \n\ + Ps2KeyboardDxe \n\ + Ps2MouseDxe \n\ + \n\ + GUI \n\ + \n\ + ConsoleMode \n\ + Max \n\ + Custom \n\ + \n\ + Entries \n\ + \n\ + \n\ + AddArguments \n\ + addarg \n\ + Arguments \n\ + arg \n\ + BootBgColor \n\ + bootbgcolor \n\ + Disabled \n\ + \n\ + DriveImage \n\ + driveimage \n\ + FullTitle \n\ + title \n\ + Hidden \n\ + \n\ + Hotkey \n\ + H \n\ + Ignore \n\ + \n\ + ImageData \n\ + 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 \n\ + 00 00 01 00 00 00 01 00 01 03 00 00 00 66 BC 3A \n\ + 25 00 00 00 03 50 4C 54 45 B5 D0 D0 63 04 16 EA \n\ + 00 00 00 1F 49 44 41 54 68 81 ED C1 01 0D 00 00 \n\ + 00 C2 A0 F7 4F 6D 0E 37 A0 00 00 00 00 00 00 00 \n\ + 00 BE 0D 21 00 00 01 9A 60 E1 D5 00 00 00 00 49 \n\ + 45 4E 44 AE 42 60 82 \n\ + xCustomLogo \n\ + foo \n\ + Path \n\ + CustomEntry1 \n\ + Settings \n\ + settings \n\ + SubEntries \n\ + \n\ + \n\ + AddArguments \n\ + arg2 \n\ + FullTitle \n\ + title1 \n\ + \n\ + \n\ + AddArguments \n\ + arg3 \n\ + Title \n\ + title2 \n\ + \n\ + \n\ + AddArguments \n\ + arg4 \n\ + FullTitle \n\ + title3 \n\ + \n\ + \n\ + AddArguments \n\ + arg5 \n\ + Title \n\ + title4 \n\ + \n\ + \n\ + Type \n\ + Oldest \n\ + Volume \n\ + v1 \n\ + VolumeType \n\ + Internal \n\ + \n\ + \n\ + Legacy \n\ + \n\ + \n\ + Disabled \n\ + \n\ + FullTitle \n\ + title \n\ + Hidden \n\ + \n\ + Hotkey \n\ + \n\ + Ignore \n\ + \n\ + Type \n\ + Windows \n\ + Volume \n\ + v2 \n\ + \n\ + \n\ + Tool \n\ + \n\ + \n\ + Arguments \n\ + b \n\ + Disabled \n\ + \n\ + Hidden \n\ + \n\ + Hotkey \n\ + b \n\ + Ignore \n\ + \n\ + Path \n\ + path \n\ + Title \n\ + title \n\ + Volume \n\ + tool1 \n\ + \n\ + \n\ + \n\ + CustomIcons \n\ + \n\ + Hide \n\ + \n\ + sdfsdfdf \n\ + sdfsfdf \n\ + \n\ + Language \n\ + es:0 \n\ + Mouse \n\ + \n\ + DoubleClick \n\ + 501 \n\ + Enabled \n\ + \n\ + Mirror \n\ + \n\ + Speed \n\ + 5 \n\ + \n\ + Scan \n\ + \n\ + Entries \n\ + \n\ + Kernel \n\ + First \n\ + Legacy \n\ + First \n\ + Linux \n\ + \n\ + Tool \n\ + \n\ + \n\ + ScreenResolution \n\ + 1366x768 \n\ + ShowOptimus \n\ + \n\ + TextOnly \n\ + \n\ + Theme \n\ + th \n\ + \n\ + Graphics \n\ + \n\ + ATI \n\ + \n\ + \n\ + IOPCIPrimaryMatch \n\ + 0x1002888 \n\ + IOPCISubDevId \n\ + 0x106B \n\ + LoadVBios \n\ + \n\ + Model \n\ + cc \n\ + VRAM \n\ + 2000 \n\ + VideoPorts \n\ + 3 \n\ + \n\ + \n\ + BootDisplay \n\ + 12 \n\ + DualLink \n\ + 1 \n\ + EDID \n\ + \n\ + Custom \n\ + \n\ + AQID \n\ + \n\ + Inject \n\ + \n\ + ProductID \n\ + 0x9777 \n\ + VendorID \n\ + 0x1007 \n\ + \n\ + FBName \n\ + Exmoor \n\ + Inject \n\ + \n\ + ATI \n\ + \n\ + Intel \n\ + \n\ + NVidia \n\ + \n\ + \n\ + LoadVBios \n\ + \n\ + NVCAP \n\ + 0304 \n\ + NVIDIA \n\ + \n\ + \n\ + IOPCIPrimaryMatch \n\ + 0x10DE999 \n\ + IOPCISubDevId \n\ + 0x106B \n\ + LoadVBios \n\ + \n\ + Model \n\ + aa \n\ + VRAM \n\ + 1000 \n\ + VideoPorts \n\ + 1 \n\ + \n\ + \n\ + IOPCIPrimaryMatch \n\ + 0x10DE999 \n\ + IOPCISubDevId \n\ + 0x106B \n\ + LoadVBios \n\ + \n\ + Model \n\ + bb \n\ + VRAM \n\ + 1000 \n\ + VideoPorts \n\ + 2 \n\ + \n\ + \n\ + NvidiaGeneric \n\ + \n\ + NvidiaNoEFI \n\ + \n\ + NvidiaSingle \n\ + \n\ + PatchVBios \n\ + \n\ + PatchVBiosBytes \n\ + \n\ + \n\ + Find \n\ + \n\ + AwQF \n\ + \n\ + Replace \n\ + \n\ + BgcI \n\ + \n\ + \n\ + \n\ + VRAM \n\ + 1500 \n\ + VideoPorts \n\ + 2 \n\ + display-cfg \n\ + 04 \n\ + ig-platform-id \n\ + 0x59230000 \n\ + \n\ + KernelAndKextPatches \n\ + \n\ + ATIConnectorsController \n\ + ATICtl \n\ + ATIConnectorsData \n\ + 111213 \n\ + ATIConnectorsPatch \n\ + 141516 \n\ + AppleIntelCPUPM \n\ + \n\ + AppleRTC \n\ + \n\ + BootPatches \n\ + \n\ + \n\ + Comment \n\ + c3 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + MTI= \n\ + \n\ + MatchBuild \n\ + 10.12.6 \n\ + MatchOS \n\ + 10.12 \n\ + Replace \n\ + \n\ + MzQ= \n\ + \n\ + \n\ + \n\ + Debug \n\ + \n\ + DellSMBIOSPatch \n\ + \n\ + FakeCPUID \n\ + 0x0306D0 \n\ + ForceKextsToLoad \n\ + \n\ + ForceKext \n\ + \n\ + KernelCpu \n\ + \n\ + KernelLapic \n\ + \n\ + KernelPm \n\ + \n\ + KernelToPatch \n\ + \n\ + \n\ + Comment \n\ + c2 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + ISI= \n\ + \n\ + MatchBuild \n\ + 10.13.6 \n\ + MatchOS \n\ + 10.13 \n\ + Replace \n\ + \n\ + IyQ= \n\ + \n\ + \n\ + \n\ + KernelXCPM \n\ + \n\ + KextsToPatch \n\ + \n\ + \n\ + Comment \n\ + c1 \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + AQ== \n\ + \n\ + InfoPlistPatch \n\ + \n\ + MatchBuild \n\ + 10.14.6 \n\ + MatchOS \n\ + 10.14 \n\ + Name \n\ + k1 \n\ + Replace \n\ + \n\ + Ag== \n\ + \n\ + \n\ + \n\ + Comment \n\ + IONVMeFamily IONameMatch \n\ + Disabled \n\ + \n\ + Find \n\ + \n\ + PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4= \n\ + \n\ + InfoPlistPatch \n\ + \n\ + Name \n\ + IONVMeFamily \n\ + Replace \n\ + \n\ + PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4= \n\ + \n\ + \n\ + \n\ + \n\ + RtVariables \n\ + \n\ + BooterConfig \n\ + 0x1 \n\ + CsrActiveConfig \n\ + 0x2 \n\ + MLB \n\ + 12345678901234567 \n\ + ROM \n\ + \n\ + MBRwYnHo \n\ + \n\ + \n\ + SMBIOS \n\ + \n\ + BiosReleaseDate \n\ + 08/08/17 \n\ + BiosVendor \n\ + Apple Inc. \n\ + BiosVersion \n\ + MBP81.88Z.004D.B00.1708080655 \n\ + Board-ID \n\ + Mac-94245B3640C91C81 \n\ + BoardManufacturer \n\ + Apple Inc. \n\ + BoardSerialNumber \n\ + W89135306OPDM6CAD \n\ + BoardType \n\ + 10 \n\ + BoardVersion \n\ + 1.0 \n\ + ChassisAssetTag \n\ + MacBook-Aluminum \n\ + ChassisManufacturer \n\ + Apple Inc. \n\ + ChassisType \n\ + 0x0A \n\ + Family \n\ + MacBook Pro \n\ + FirmwareFeatures \n\ + 0xC00DE137 \n\ + FirmwareFeaturesMask \n\ + 0xFF1FFF3F \n\ + LocationInChassis \n\ + Part Component \n\ + Manufacturer \n\ + Apple Inc. \n\ + Memory \n\ + \n\ + Channels \n\ + 2 \n\ + Modules \n\ + \n\ + \n\ + Frequency \n\ + 333 \n\ + Part \n\ + Part1 \n\ + Serial \n\ + Ser1 \n\ + Size \n\ + 2048 \n\ + Slot \n\ + 1 \n\ + Type \n\ + DDR \n\ + Vendor \n\ + v1 \n\ + \n\ + \n\ + Frequency \n\ + 366 \n\ + Part \n\ + Part2 \n\ + Serial \n\ + Ser2 \n\ + Size \n\ + 4096 \n\ + Slot \n\ + 2 \n\ + Type \n\ + DDR2 \n\ + Vendor \n\ + v2 \n\ + \n\ + \n\ + SlotCount \n\ + 4 \n\ + \n\ + Mobile \n\ + \n\ + PlatformFeature \n\ + 0xFFFF \n\ + ProductName \n\ + MacBookPro8,1 \n\ + SerialNumber \n\ + W89G91VFDH2G \n\ + Slots \n\ + \n\ + \n\ + Device \n\ + NVidia \n\ + ID \n\ + 1 \n\ + Name \n\ + APPL,sdfsdf \n\ + Type \n\ + 1 \n\ + \n\ + \n\ + SmUUID \n\ + F1AB23C0-C35A-473E-BDB7-455C3A6271E8 \n\ + Version \n\ + 1.0 \n\ + \n\ + SystemParameters \n\ + \n\ + BacklightLevel \n\ + 2 \n\ + CustomUUID \n\ + 2926A57C-FF0E-4A64-980F-23483BD41969 \n\ + ExposeSysVariables \n\ + \n\ + InjectKexts \n\ + Yes \n\ + InjectSystemID \n\ + \n\ + NoCaches \n\ + \n\ + NvidiaWeb \n\ + \n\ + \n\ + \n\ +"; + +#endif //MSC_VER + +#endif /* ConfigSample1_h */ + + +/* + + Test null data \n\ + \n\ + + +*/ diff --git a/Xcode/CloverConfigPlistValidator/src/Platform.cpp b/Xcode/CloverConfigPlistValidator/src/Platform.cpp new file mode 100755 index 000000000..b52acdead --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/src/Platform.cpp @@ -0,0 +1,27 @@ +// +// Platform.cpp +// cpp_tests +// +// Created by jief on 23.02.20. +// Copyright © 2020 Jief_Machak. All rights reserved. +// + +#include "Platform.h" + +#include +#include +#include +//#include +#include + +#include +#include +#include +#include + +#include "../../../rEFIt_UEFI/cpp_foundation/unicode_conversions.h" + +//void CpuDeadLoop(void) +//{ +// exit(1); +//} diff --git a/Xcode/CloverConfigPlistValidator/src/main.cpp b/Xcode/CloverConfigPlistValidator/src/main.cpp new file mode 100755 index 000000000..441bbab3b --- /dev/null +++ b/Xcode/CloverConfigPlistValidator/src/main.cpp @@ -0,0 +1,116 @@ +// +// main.cpp +// cpp_tests +// +// Created by jief on 23.02.20. +// Copyright © 2020 Jief_Machak. All rights reserved. +// + +#include +#include + +#include +#include +#include +#include +#include + +static const char* opencore_revision __attribute__((used)) = "CloverConfigPlistValidator revision: 0.1"; + +#ifndef MIN +#define MIN(a,b) ((a) < (b) ? (a) : (b)) +#endif +#ifndef MAX +#define MAX(a,b) ((a) > (b) ? (a) : (b)) +#endif + +ssize_t read_all(int fd, void* buf, size_t size) +{ + size_t nbluTotal = 0; + while ( nbluTotal < size ) + { + ssize_t nblu = read(fd, ((uint8_t*)buf)+nbluTotal, MIN(65536, size-nbluTotal)); + if ( nblu < 0 ) return -1; + if ( nblu == 0 ) { + if ( nbluTotal != size ) { + // Read only nbluTotal bytes instead of size + return -1; + } + return nbluTotal; + } + nbluTotal += nblu; + } + return size; +} + +#include "../../../rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.h" + +extern "C" int main(int argc, const char * argv[]) +{ + (void)argc; + (void)argv; + setlocale(LC_ALL, "en_US"); // to allow printf unicode char + + const char* path = NULL; + #ifdef DEBUG + path = "config-nowarning-noerror.plist"; + //path = "/JiefLand/5.Devel/Clover/user config/Matgen84/EFI_github/CLOVER/config.plist"; + //path = "/JiefLand/5.Devel/Clover/user config/BS.plist"; + //path = "/JiefLand/5.Devel/Clover/user config/maclinuxG4/config.plist"; + //path = "/JiefLand/5.Devel/Clover/user config/MICKHAEL/EFI_Github/CLOVER/config.plist"; +// path = "/JiefLand/5.Devel/Clover/user config/MacKonsti/config.lenovo.plist"; + path = "config-test2.plist"; + #endif + + if ( !path ) { + if ( argc == 2 ) { + path = argv[1]; + }else{ + fprintf(stderr, "Usage ConfigPlistValidator path_to_config.plist\n"); + return -1; + } + } + struct stat st; + int ret = stat(path, &st); + if ( ret != 0 ) { + fprintf(stderr, "Cannot stat file '%s'\n", path); + return 1; + } + + char* buf = (char*)malloc(st.st_size+1); + + int fd = open(path, O_RDONLY); + if ( fd < 0 ) { + fprintf(stderr, "Cannot open file '%s'. Errno %s\n", path, strerror(errno)); + return 1; + } + ssize_t nblu = read_all(fd, buf, st.st_size); + if ( nblu != st.st_size ) { + fprintf(stderr, "Cannot read file '%s'. Errno %s\n", path, strerror(errno)); + return 1; + } + buf[st.st_size] = 0; // should not be needed. + + bool b; + ConfigPlistClass configPlistTest; + + XmlLiteParser xmlLiteParser; + xmlLiteParser.init(buf, st.st_size); + + b = configPlistTest.parse(&xmlLiteParser, LString8("")); + for ( size_t idx = 0 ; idx < xmlLiteParser.getErrorsAndWarnings().size() ; idx++ ) { + const XmlParserMessage& xmlMsg = xmlLiteParser.getErrorsAndWarnings()[idx]; + printf("%s: %s\n", xmlMsg.isError ? "Error" : "Warning", xmlMsg.msg.c_str()); + } + if ( b ) { +// if ( xmlLiteParser.getErrorsAndWarnings().size() > 0 ) { +// printf("parse return true, but there is error and warnings! BUG !!"); +// } + if ( xmlLiteParser.getErrorsAndWarnings().size() == 0 ) { + printf("Your plist looks so wonderful. Well done!\n"); + } + return 0; + }else{ + return 1; + } +} diff --git a/Xcode/CloverX64/CloverX64.xcodeproj/project.pbxproj b/Xcode/CloverX64/CloverX64.xcodeproj/project.pbxproj index 0c2982b0a..110118a7a 100644 --- a/Xcode/CloverX64/CloverX64.xcodeproj/project.pbxproj +++ b/Xcode/CloverX64/CloverX64.xcodeproj/project.pbxproj @@ -7,7 +7,123 @@ objects = { /* Begin PBXBuildFile section */ + 9A27545B263801930095D456 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275455263801920095D456 /* Self.h */; }; + 9A27545C263801930095D456 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275455263801920095D456 /* Self.h */; }; + 9A27545D263801930095D456 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275455263801920095D456 /* Self.h */; }; + 9A27545E263801930095D456 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275456263801920095D456 /* SelfOem.h */; }; + 9A27545F263801930095D456 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275456263801920095D456 /* SelfOem.h */; }; + 9A275460263801930095D456 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275456263801920095D456 /* SelfOem.h */; }; + 9A275461263801930095D456 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275457263801930095D456 /* SelfOem.cpp */; }; + 9A275462263801930095D456 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275457263801930095D456 /* SelfOem.cpp */; }; + 9A275463263801930095D456 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275457263801930095D456 /* SelfOem.cpp */; }; + 9A275464263801930095D456 /* ConfigManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275458263801930095D456 /* ConfigManager.cpp */; }; + 9A275465263801930095D456 /* ConfigManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275458263801930095D456 /* ConfigManager.cpp */; }; + 9A275466263801930095D456 /* ConfigManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275458263801930095D456 /* ConfigManager.cpp */; }; + 9A275467263801930095D456 /* ConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275459263801930095D456 /* ConfigManager.h */; }; + 9A275468263801930095D456 /* ConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275459263801930095D456 /* ConfigManager.h */; }; + 9A275469263801930095D456 /* ConfigManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275459263801930095D456 /* ConfigManager.h */; }; + 9A27546A263801930095D456 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27545A263801930095D456 /* Self.cpp */; }; + 9A27546B263801930095D456 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27545A263801930095D456 /* Self.cpp */; }; + 9A27546C263801930095D456 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27545A263801930095D456 /* Self.cpp */; }; + 9A27548B263802230095D456 /* SMBIOSPlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27546E263802230095D456 /* SMBIOSPlist.h */; }; + 9A27548C263802230095D456 /* SMBIOSPlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27546E263802230095D456 /* SMBIOSPlist.h */; }; + 9A27548D263802230095D456 /* SMBIOSPlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27546E263802230095D456 /* SMBIOSPlist.h */; }; + 9A27548E263802230095D456 /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27546F263802230095D456 /* Config_GUI.cpp */; }; + 9A27548F263802230095D456 /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27546F263802230095D456 /* Config_GUI.cpp */; }; + 9A275490263802230095D456 /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27546F263802230095D456 /* Config_GUI.cpp */; }; + 9A275491263802230095D456 /* Config_KernelAndKextPatches.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275470263802230095D456 /* Config_KernelAndKextPatches.h */; }; + 9A275492263802230095D456 /* Config_KernelAndKextPatches.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275470263802230095D456 /* Config_KernelAndKextPatches.h */; }; + 9A275493263802230095D456 /* Config_KernelAndKextPatches.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275470263802230095D456 /* Config_KernelAndKextPatches.h */; }; + 9A275494263802230095D456 /* Config_Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275471263802230095D456 /* Config_Graphics.h */; }; + 9A275495263802230095D456 /* Config_Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275471263802230095D456 /* Config_Graphics.h */; }; + 9A275496263802230095D456 /* Config_Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275471263802230095D456 /* Config_Graphics.h */; }; + 9A275497263802230095D456 /* Config_ACPI_DSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275472263802230095D456 /* Config_ACPI_DSDT.h */; }; + 9A275498263802230095D456 /* Config_ACPI_DSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275472263802230095D456 /* Config_ACPI_DSDT.h */; }; + 9A275499263802230095D456 /* Config_ACPI_DSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275472263802230095D456 /* Config_ACPI_DSDT.h */; }; + 9A27549A263802230095D456 /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275473263802230095D456 /* Config_Quirks.cpp */; }; + 9A27549B263802230095D456 /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275473263802230095D456 /* Config_Quirks.cpp */; }; + 9A27549C263802230095D456 /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275473263802230095D456 /* Config_Quirks.cpp */; }; + 9A27549D263802230095D456 /* Config_Devices_Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275474263802230095D456 /* Config_Devices_Audio.h */; }; + 9A27549E263802230095D456 /* Config_Devices_Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275474263802230095D456 /* Config_Devices_Audio.h */; }; + 9A27549F263802230095D456 /* Config_Devices_Audio.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275474263802230095D456 /* Config_Devices_Audio.h */; }; + 9A2754A0263802230095D456 /* Config_Quirks.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275475263802230095D456 /* Config_Quirks.h */; }; + 9A2754A1263802230095D456 /* Config_Quirks.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275475263802230095D456 /* Config_Quirks.h */; }; + 9A2754A2263802230095D456 /* Config_Quirks.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275475263802230095D456 /* Config_Quirks.h */; }; + 9A2754A3263802230095D456 /* ConfigPlistClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275476263802230095D456 /* ConfigPlistClass.h */; }; + 9A2754A4263802230095D456 /* ConfigPlistClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275476263802230095D456 /* ConfigPlistClass.h */; }; + 9A2754A5263802230095D456 /* ConfigPlistClass.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275476263802230095D456 /* ConfigPlistClass.h */; }; + 9A2754A6263802230095D456 /* Config_ACPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275477263802230095D456 /* Config_ACPI.h */; }; + 9A2754A7263802230095D456 /* Config_ACPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275477263802230095D456 /* Config_ACPI.h */; }; + 9A2754A8263802230095D456 /* Config_ACPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275477263802230095D456 /* Config_ACPI.h */; }; + 9A2754A9263802230095D456 /* Config_Devices_Properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275478263802230095D456 /* Config_Devices_Properties.h */; }; + 9A2754AA263802230095D456 /* Config_Devices_Properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275478263802230095D456 /* Config_Devices_Properties.h */; }; + 9A2754AB263802230095D456 /* Config_Devices_Properties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275478263802230095D456 /* Config_Devices_Properties.h */; }; + 9A2754AC263802230095D456 /* Config_Boot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275479263802230095D456 /* Config_Boot.h */; }; + 9A2754AD263802230095D456 /* Config_Boot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275479263802230095D456 /* Config_Boot.h */; }; + 9A2754AE263802230095D456 /* Config_Boot.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275479263802230095D456 /* Config_Boot.h */; }; + 9A2754AF263802230095D456 /* Config_Devices_Arbitrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547A263802230095D456 /* Config_Devices_Arbitrary.h */; }; + 9A2754B0263802230095D456 /* Config_Devices_Arbitrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547A263802230095D456 /* Config_Devices_Arbitrary.h */; }; + 9A2754B1263802230095D456 /* Config_Devices_Arbitrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547A263802230095D456 /* Config_Devices_Arbitrary.h */; }; + 9A2754B2263802230095D456 /* ConfigPlistAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547B263802230095D456 /* ConfigPlistAbstract.h */; }; + 9A2754B3263802230095D456 /* ConfigPlistAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547B263802230095D456 /* ConfigPlistAbstract.h */; }; + 9A2754B4263802230095D456 /* ConfigPlistAbstract.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547B263802230095D456 /* ConfigPlistAbstract.h */; }; + 9A2754B5263802230095D456 /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547C263802230095D456 /* ConfigPlistClass.cpp */; }; + 9A2754B6263802230095D456 /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547C263802230095D456 /* ConfigPlistClass.cpp */; }; + 9A2754B7263802230095D456 /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547C263802230095D456 /* ConfigPlistClass.cpp */; }; + 9A2754B8263802230095D456 /* Config_SystemParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547D263802230095D456 /* Config_SystemParameters.h */; }; + 9A2754B9263802230095D456 /* Config_SystemParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547D263802230095D456 /* Config_SystemParameters.h */; }; + 9A2754BA263802230095D456 /* Config_SystemParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547D263802230095D456 /* Config_SystemParameters.h */; }; + 9A2754BB263802230095D456 /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547E263802230095D456 /* Config_ACPI.cpp */; }; + 9A2754BC263802230095D456 /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547E263802230095D456 /* Config_ACPI.cpp */; }; + 9A2754BD263802230095D456 /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27547E263802230095D456 /* Config_ACPI.cpp */; }; + 9A2754BE263802230095D456 /* Config_Devices.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547F263802230095D456 /* Config_Devices.h */; }; + 9A2754BF263802230095D456 /* Config_Devices.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547F263802230095D456 /* Config_Devices.h */; }; + 9A2754C0263802230095D456 /* Config_Devices.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27547F263802230095D456 /* Config_Devices.h */; }; + 9A2754C1263802230095D456 /* Config_CPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275480263802230095D456 /* Config_CPU.h */; }; + 9A2754C2263802230095D456 /* Config_CPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275480263802230095D456 /* Config_CPU.h */; }; + 9A2754C3263802230095D456 /* Config_CPU.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275480263802230095D456 /* Config_CPU.h */; }; + 9A2754C4263802230095D456 /* Config_BootGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275481263802230095D456 /* Config_BootGraphics.h */; }; + 9A2754C5263802230095D456 /* Config_BootGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275481263802230095D456 /* Config_BootGraphics.h */; }; + 9A2754C6263802230095D456 /* Config_BootGraphics.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275481263802230095D456 /* Config_BootGraphics.h */; }; + 9A2754C7263802230095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275482263802230095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2754C8263802230095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275482263802230095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2754C9263802230095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275482263802230095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2754CA263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275483263802230095D456 /* Config_ACPI_DSDT.cpp */; }; + 9A2754CB263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275483263802230095D456 /* Config_ACPI_DSDT.cpp */; }; + 9A2754CC263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275483263802230095D456 /* Config_ACPI_DSDT.cpp */; }; + 9A2754CD263802230095D456 /* Config_ACPI_SSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275484263802230095D456 /* Config_ACPI_SSDT.h */; }; + 9A2754CE263802230095D456 /* Config_ACPI_SSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275484263802230095D456 /* Config_ACPI_SSDT.h */; }; + 9A2754CF263802230095D456 /* Config_ACPI_SSDT.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275484263802230095D456 /* Config_ACPI_SSDT.h */; }; + 9A2754D0263802230095D456 /* Config_GUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275485263802230095D456 /* Config_GUI.h */; }; + 9A2754D1263802230095D456 /* Config_GUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275485263802230095D456 /* Config_GUI.h */; }; + 9A2754D2263802230095D456 /* Config_GUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275485263802230095D456 /* Config_GUI.h */; }; + 9A2754D3263802230095D456 /* Config_RtVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275486263802230095D456 /* Config_RtVariables.h */; }; + 9A2754D4263802230095D456 /* Config_RtVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275486263802230095D456 /* Config_RtVariables.h */; }; + 9A2754D5263802230095D456 /* Config_RtVariables.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275486263802230095D456 /* Config_RtVariables.h */; }; + 9A2754D6263802230095D456 /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275487263802230095D456 /* SMBIOSPlist.cpp */; }; + 9A2754D7263802230095D456 /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275487263802230095D456 /* SMBIOSPlist.cpp */; }; + 9A2754D8263802230095D456 /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A275487263802230095D456 /* SMBIOSPlist.cpp */; }; + 9A2754D9263802230095D456 /* Config_Devices_FakeID.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275488263802230095D456 /* Config_Devices_FakeID.h */; }; + 9A2754DA263802230095D456 /* Config_Devices_FakeID.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275488263802230095D456 /* Config_Devices_FakeID.h */; }; + 9A2754DB263802230095D456 /* Config_Devices_FakeID.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275488263802230095D456 /* Config_Devices_FakeID.h */; }; + 9A2754DC263802230095D456 /* Config_Devices_USB.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275489263802230095D456 /* Config_Devices_USB.h */; }; + 9A2754DD263802230095D456 /* Config_Devices_USB.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275489263802230095D456 /* Config_Devices_USB.h */; }; + 9A2754DE263802230095D456 /* Config_Devices_USB.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A275489263802230095D456 /* Config_Devices_USB.h */; }; + 9A2754DF263802230095D456 /* Config_Devices_AddProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27548A263802230095D456 /* Config_Devices_AddProperties.h */; }; + 9A2754E0263802230095D456 /* Config_Devices_AddProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27548A263802230095D456 /* Config_Devices_AddProperties.h */; }; + 9A2754E1263802230095D456 /* Config_Devices_AddProperties.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A27548A263802230095D456 /* Config_Devices_AddProperties.h */; }; + 9A2754E826396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2754E626396F2A0095D456 /* SmbiosFillPatchingValues.cpp */; }; + 9A2754E926396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2754E626396F2A0095D456 /* SmbiosFillPatchingValues.cpp */; }; + 9A2754EA26396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2754E626396F2A0095D456 /* SmbiosFillPatchingValues.cpp */; }; + 9A2754EB26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A2754E726396F2B0095D456 /* SmbiosFillPatchingValues.h */; }; + 9A2754EC26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A2754E726396F2B0095D456 /* SmbiosFillPatchingValues.h */; }; + 9A2754ED26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A2754E726396F2B0095D456 /* SmbiosFillPatchingValues.h */; }; + 9A2755482639DF1B0095D456 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8787B826186896000B9362 /* xml_lite-test.cpp */; }; + 9A2755492639DF1B0095D456 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8787B826186896000B9362 /* xml_lite-test.cpp */; }; + 9A27554A2639DF1C0095D456 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8787B826186896000B9362 /* xml_lite-test.cpp */; }; 9A63C6CB24EBEF78000EB836 /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A63C6CA24EBEF78000EB836 /* Version.h */; }; + 9A7D2E922636B4F300187064 /* CloverVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A7D2E902636B4F200187064 /* CloverVersion.h */; }; + 9A7D2E932636B4F300187064 /* CloverVersion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D2E912636B4F300187064 /* CloverVersion.cpp */; }; 9A8788DC26186897000B9362 /* stdlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87878326186896000B9362 /* stdlib.h */; }; 9A8788DD26186897000B9362 /* stdlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87878326186896000B9362 /* stdlib.h */; }; 9A8788DE26186897000B9362 /* stdlib.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87878326186896000B9362 /* stdlib.h */; }; @@ -413,18 +529,12 @@ 9A878A7A26186897000B9362 /* kernel_patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881426186896000B9362 /* kernel_patcher.h */; }; 9A878A7B26186897000B9362 /* kernel_patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881426186896000B9362 /* kernel_patcher.h */; }; 9A878A7C26186897000B9362 /* kernel_patcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881426186896000B9362 /* kernel_patcher.h */; }; - 9A878A7D26186897000B9362 /* Net.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881526186896000B9362 /* Net.h */; }; - 9A878A7E26186897000B9362 /* Net.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881526186896000B9362 /* Net.h */; }; - 9A878A7F26186897000B9362 /* Net.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881526186896000B9362 /* Net.h */; }; 9A878A8026186897000B9362 /* card_vlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881626186896000B9362 /* card_vlist.h */; }; 9A878A8126186897000B9362 /* card_vlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881626186896000B9362 /* card_vlist.h */; }; 9A878A8226186897000B9362 /* card_vlist.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87881626186896000B9362 /* card_vlist.h */; }; 9A878A8326186897000B9362 /* AmlGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881726186896000B9362 /* AmlGenerator.cpp */; }; 9A878A8426186897000B9362 /* AmlGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881726186896000B9362 /* AmlGenerator.cpp */; }; 9A878A8526186897000B9362 /* AmlGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881726186896000B9362 /* AmlGenerator.cpp */; }; - 9A878A8626186897000B9362 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881826186896000B9362 /* SelfOem.cpp */; }; - 9A878A8726186897000B9362 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881826186896000B9362 /* SelfOem.cpp */; }; - 9A878A8826186897000B9362 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881826186896000B9362 /* SelfOem.cpp */; }; 9A878A8926186897000B9362 /* BdsConnect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881926186896000B9362 /* BdsConnect.cpp */; }; 9A878A8A26186897000B9362 /* BdsConnect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881926186896000B9362 /* BdsConnect.cpp */; }; 9A878A8B26186897000B9362 /* BdsConnect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87881926186896000B9362 /* BdsConnect.cpp */; }; @@ -524,9 +634,6 @@ 9A878AE926186897000B9362 /* gma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883926186896000B9362 /* gma.cpp */; }; 9A878AEA26186897000B9362 /* gma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883926186896000B9362 /* gma.cpp */; }; 9A878AEB26186897000B9362 /* gma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883926186896000B9362 /* gma.cpp */; }; - 9A878AEC26186897000B9362 /* Net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883A26186896000B9362 /* Net.cpp */; }; - 9A878AED26186897000B9362 /* Net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883A26186896000B9362 /* Net.cpp */; }; - 9A878AEE26186897000B9362 /* Net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87883A26186896000B9362 /* Net.cpp */; }; 9A878AEF26186897000B9362 /* BootLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87883B26186896000B9362 /* BootLog.h */; }; 9A878AF026186897000B9362 /* BootLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87883B26186896000B9362 /* BootLog.h */; }; 9A878AF126186897000B9362 /* BootLog.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87883B26186896000B9362 /* BootLog.h */; }; @@ -551,15 +658,9 @@ 9A878B0426186897000B9362 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884226186896000B9362 /* MemoryOperation.c */; }; 9A878B0526186897000B9362 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884226186896000B9362 /* MemoryOperation.c */; }; 9A878B0626186897000B9362 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884226186896000B9362 /* MemoryOperation.c */; }; - 9A878B0726186897000B9362 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884326186896000B9362 /* SelfOem.h */; }; - 9A878B0826186897000B9362 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884326186896000B9362 /* SelfOem.h */; }; - 9A878B0926186897000B9362 /* SelfOem.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884326186896000B9362 /* SelfOem.h */; }; 9A878B0A26186897000B9362 /* ati.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884426186896000B9362 /* ati.h */; }; 9A878B0B26186897000B9362 /* ati.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884426186896000B9362 /* ati.h */; }; 9A878B0C26186897000B9362 /* ati.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884426186896000B9362 /* ati.h */; }; - 9A878B0D26186897000B9362 /* DevicePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884526186896000B9362 /* DevicePath.cpp */; }; - 9A878B0E26186897000B9362 /* DevicePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884526186896000B9362 /* DevicePath.cpp */; }; - 9A878B0F26186897000B9362 /* DevicePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87884526186896000B9362 /* DevicePath.cpp */; }; 9A878B1026186897000B9362 /* platformdata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884626186896000B9362 /* platformdata.h */; }; 9A878B1126186897000B9362 /* platformdata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884626186896000B9362 /* platformdata.h */; }; 9A878B1226186897000B9362 /* platformdata.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87884626186896000B9362 /* platformdata.h */; }; @@ -638,15 +739,9 @@ 9A878B5B26186897000B9362 /* FixBiosDsdt.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886026186896000B9362 /* FixBiosDsdt.h */; }; 9A878B5C26186897000B9362 /* FixBiosDsdt.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886026186896000B9362 /* FixBiosDsdt.h */; }; 9A878B5D26186897000B9362 /* FixBiosDsdt.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886026186896000B9362 /* FixBiosDsdt.h */; }; - 9A878B5E26186897000B9362 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886126186896000B9362 /* Self.h */; }; - 9A878B5F26186897000B9362 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886126186896000B9362 /* Self.h */; }; - 9A878B6026186897000B9362 /* Self.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87886126186896000B9362 /* Self.h */; }; 9A878B6126186897000B9362 /* usbfix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886226186896000B9362 /* usbfix.cpp */; }; 9A878B6226186897000B9362 /* usbfix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886226186896000B9362 /* usbfix.cpp */; }; 9A878B6326186897000B9362 /* usbfix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886226186896000B9362 /* usbfix.cpp */; }; - 9A878B6426186897000B9362 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886326186896000B9362 /* Self.cpp */; }; - 9A878B6526186897000B9362 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886326186896000B9362 /* Self.cpp */; }; - 9A878B6626186897000B9362 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886326186896000B9362 /* Self.cpp */; }; 9A878B6726186897000B9362 /* card_vlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886426186896000B9362 /* card_vlist.cpp */; }; 9A878B6826186897000B9362 /* card_vlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886426186896000B9362 /* card_vlist.cpp */; }; 9A878B6926186897000B9362 /* card_vlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A87886426186896000B9362 /* card_vlist.cpp */; }; @@ -922,10 +1017,94 @@ 9A878CAA26186898000B9362 /* XObjArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A8788DB26186897000B9362 /* XObjArray.h */; }; 9A87920326188002000B9362 /* Platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87920126188002000B9362 /* Platform.h */; }; 9A87920426188002000B9362 /* XToolsConf.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A87920226188002000B9362 /* XToolsConf.h */; }; + 9AF1EFEB2634217800F7C2C0 /* SettingsUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF1EFE92634217800F7C2C0 /* SettingsUtils.h */; }; + 9AF1EFEC2634217800F7C2C0 /* SettingsUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFEA2634217800F7C2C0 /* SettingsUtils.cpp */; }; + 9AF4D937263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92B263004E100487D15 /* XmlLiteCompositeTypes.cpp */; }; + 9AF4D938263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92B263004E100487D15 /* XmlLiteCompositeTypes.cpp */; }; + 9AF4D939263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92B263004E100487D15 /* XmlLiteCompositeTypes.cpp */; }; + 9AF4D93A263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92C263004E200487D15 /* XmlLiteUnionTypes.cpp */; }; + 9AF4D93B263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92C263004E200487D15 /* XmlLiteUnionTypes.cpp */; }; + 9AF4D93C263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92C263004E200487D15 /* XmlLiteUnionTypes.cpp */; }; + 9AF4D93D263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92D263004E200487D15 /* XmlLiteSimpleTypes.h */; }; + 9AF4D93E263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92D263004E200487D15 /* XmlLiteSimpleTypes.h */; }; + 9AF4D93F263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92D263004E200487D15 /* XmlLiteSimpleTypes.h */; }; + 9AF4D940263004E200487D15 /* XmlLiteUnionTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92E263004E200487D15 /* XmlLiteUnionTypes.h */; }; + 9AF4D941263004E200487D15 /* XmlLiteUnionTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92E263004E200487D15 /* XmlLiteUnionTypes.h */; }; + 9AF4D942263004E200487D15 /* XmlLiteUnionTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D92E263004E200487D15 /* XmlLiteUnionTypes.h */; }; + 9AF4D943263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92F263004E200487D15 /* XmlLiteSimpleTypes.cpp */; }; + 9AF4D944263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92F263004E200487D15 /* XmlLiteSimpleTypes.cpp */; }; + 9AF4D945263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D92F263004E200487D15 /* XmlLiteSimpleTypes.cpp */; }; + 9AF4D946263004E200487D15 /* XmlLiteArrayTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D930263004E200487D15 /* XmlLiteArrayTypes.h */; }; + 9AF4D947263004E200487D15 /* XmlLiteArrayTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D930263004E200487D15 /* XmlLiteArrayTypes.h */; }; + 9AF4D948263004E200487D15 /* XmlLiteArrayTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D930263004E200487D15 /* XmlLiteArrayTypes.h */; }; + 9AF4D949263004E200487D15 /* XmlLiteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D931263004E200487D15 /* XmlLiteParser.h */; }; + 9AF4D94A263004E200487D15 /* XmlLiteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D931263004E200487D15 /* XmlLiteParser.h */; }; + 9AF4D94B263004E200487D15 /* XmlLiteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D931263004E200487D15 /* XmlLiteParser.h */; }; + 9AF4D94C263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D932263004E200487D15 /* XmlLiteArrayTypes.cpp */; }; + 9AF4D94D263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D932263004E200487D15 /* XmlLiteArrayTypes.cpp */; }; + 9AF4D94E263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D932263004E200487D15 /* XmlLiteArrayTypes.cpp */; }; + 9AF4D94F263004E200487D15 /* XmlLiteDictTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D933263004E200487D15 /* XmlLiteDictTypes.h */; }; + 9AF4D950263004E200487D15 /* XmlLiteDictTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D933263004E200487D15 /* XmlLiteDictTypes.h */; }; + 9AF4D951263004E200487D15 /* XmlLiteDictTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D933263004E200487D15 /* XmlLiteDictTypes.h */; }; + 9AF4D952263004E200487D15 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D934263004E200487D15 /* XmlLiteParser.cpp */; }; + 9AF4D953263004E200487D15 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D934263004E200487D15 /* XmlLiteParser.cpp */; }; + 9AF4D954263004E200487D15 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D934263004E200487D15 /* XmlLiteParser.cpp */; }; + 9AF4D955263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D935263004E200487D15 /* XmlLiteDictTypes.cpp */; }; + 9AF4D956263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D935263004E200487D15 /* XmlLiteDictTypes.cpp */; }; + 9AF4D957263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D935263004E200487D15 /* XmlLiteDictTypes.cpp */; }; + 9AF4D958263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D936263004E200487D15 /* XmlLiteCompositeTypes.h */; }; + 9AF4D959263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D936263004E200487D15 /* XmlLiteCompositeTypes.h */; }; + 9AF4D95A263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D936263004E200487D15 /* XmlLiteCompositeTypes.h */; }; + 9AF4D96D263014C600487D15 /* Volume.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D96B263014C500487D15 /* Volume.h */; }; + 9AF4D96E263014C600487D15 /* Volume.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D96B263014C500487D15 /* Volume.h */; }; + 9AF4D96F263014C600487D15 /* Volume.h in Headers */ = {isa = PBXBuildFile; fileRef = 9AF4D96B263014C500487D15 /* Volume.h */; }; + 9AF4D970263014C600487D15 /* Volume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D96C263014C600487D15 /* Volume.cpp */; }; + 9AF4D971263014C600487D15 /* Volume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D96C263014C600487D15 /* Volume.cpp */; }; + 9AF4D972263014C600487D15 /* Volume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4D96C263014C600487D15 /* Volume.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 9A275455263801920095D456 /* Self.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Self.h; sourceTree = ""; }; + 9A275456263801920095D456 /* SelfOem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfOem.h; sourceTree = ""; }; + 9A275457263801930095D456 /* SelfOem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelfOem.cpp; sourceTree = ""; }; + 9A275458263801930095D456 /* ConfigManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigManager.cpp; sourceTree = ""; }; + 9A275459263801930095D456 /* ConfigManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigManager.h; sourceTree = ""; }; + 9A27545A263801930095D456 /* Self.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Self.cpp; sourceTree = ""; }; + 9A27546E263802230095D456 /* SMBIOSPlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMBIOSPlist.h; sourceTree = ""; }; + 9A27546F263802230095D456 /* Config_GUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_GUI.cpp; sourceTree = ""; }; + 9A275470263802230095D456 /* Config_KernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_KernelAndKextPatches.h; sourceTree = ""; }; + 9A275471263802230095D456 /* Config_Graphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Graphics.h; sourceTree = ""; }; + 9A275472263802230095D456 /* Config_ACPI_DSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_DSDT.h; sourceTree = ""; }; + 9A275473263802230095D456 /* Config_Quirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Quirks.cpp; sourceTree = ""; }; + 9A275474263802230095D456 /* Config_Devices_Audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Audio.h; sourceTree = ""; }; + 9A275475263802230095D456 /* Config_Quirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Quirks.h; sourceTree = ""; }; + 9A275476263802230095D456 /* ConfigPlistClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistClass.h; sourceTree = ""; }; + 9A275477263802230095D456 /* Config_ACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI.h; sourceTree = ""; }; + 9A275478263802230095D456 /* Config_Devices_Properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Properties.h; sourceTree = ""; }; + 9A275479263802230095D456 /* Config_Boot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Boot.h; sourceTree = ""; }; + 9A27547A263802230095D456 /* Config_Devices_Arbitrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Arbitrary.h; sourceTree = ""; }; + 9A27547B263802230095D456 /* ConfigPlistAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistAbstract.h; sourceTree = ""; }; + 9A27547C263802230095D456 /* ConfigPlistClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistClass.cpp; sourceTree = ""; }; + 9A27547D263802230095D456 /* Config_SystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SystemParameters.h; sourceTree = ""; }; + 9A27547E263802230095D456 /* Config_ACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI.cpp; sourceTree = ""; }; + 9A27547F263802230095D456 /* Config_Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices.h; sourceTree = ""; }; + 9A275480263802230095D456 /* Config_CPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_CPU.h; sourceTree = ""; }; + 9A275481263802230095D456 /* Config_BootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_BootGraphics.h; sourceTree = ""; }; + 9A275482263802230095D456 /* ConfigPlistAbstract.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistAbstract.cpp; sourceTree = ""; }; + 9A275483263802230095D456 /* Config_ACPI_DSDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI_DSDT.cpp; sourceTree = ""; }; + 9A275484263802230095D456 /* Config_ACPI_SSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_SSDT.h; sourceTree = ""; }; + 9A275485263802230095D456 /* Config_GUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_GUI.h; sourceTree = ""; }; + 9A275486263802230095D456 /* Config_RtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_RtVariables.h; sourceTree = ""; }; + 9A275487263802230095D456 /* SMBIOSPlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMBIOSPlist.cpp; sourceTree = ""; }; + 9A275488263802230095D456 /* Config_Devices_FakeID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_FakeID.h; sourceTree = ""; }; + 9A275489263802230095D456 /* Config_Devices_USB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_USB.h; sourceTree = ""; }; + 9A27548A263802230095D456 /* Config_Devices_AddProperties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_AddProperties.h; sourceTree = ""; }; + 9A2754E626396F2A0095D456 /* SmbiosFillPatchingValues.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SmbiosFillPatchingValues.cpp; sourceTree = ""; }; + 9A2754E726396F2B0095D456 /* SmbiosFillPatchingValues.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SmbiosFillPatchingValues.h; sourceTree = ""; }; + 9A2754EE263985A90095D456 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 9A63C6CA24EBEF78000EB836 /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Version.h; path = ../../Version.h; sourceTree = ""; }; + 9A7D2E902636B4F200187064 /* CloverVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CloverVersion.h; sourceTree = ""; }; + 9A7D2E912636B4F300187064 /* CloverVersion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CloverVersion.cpp; sourceTree = ""; }; 9A87878326186896000B9362 /* stdlib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = stdlib.h; sourceTree = ""; }; 9A87878426186896000B9362 /* limits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = limits.h; sourceTree = ""; }; 9A87878526186896000B9362 /* strings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strings.cpp; sourceTree = ""; }; @@ -1063,10 +1242,8 @@ 9A87881226186896000B9362 /* AcpiPatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AcpiPatcher.cpp; sourceTree = ""; }; 9A87881326186896000B9362 /* StateGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StateGenerator.cpp; sourceTree = ""; }; 9A87881426186896000B9362 /* kernel_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kernel_patcher.h; sourceTree = ""; }; - 9A87881526186896000B9362 /* Net.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Net.h; sourceTree = ""; }; 9A87881626186896000B9362 /* card_vlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = card_vlist.h; sourceTree = ""; }; 9A87881726186896000B9362 /* AmlGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AmlGenerator.cpp; sourceTree = ""; }; - 9A87881826186896000B9362 /* SelfOem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SelfOem.cpp; sourceTree = ""; }; 9A87881926186896000B9362 /* BdsConnect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BdsConnect.cpp; sourceTree = ""; }; 9A87881A26186896000B9362 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = ""; }; 9A87881B26186896000B9362 /* KextList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = KextList.h; sourceTree = ""; }; @@ -1100,7 +1277,6 @@ 9A87883726186896000B9362 /* sse3_patcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sse3_patcher.h; sourceTree = ""; }; 9A87883826186896000B9362 /* kernel_patcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = kernel_patcher.cpp; sourceTree = ""; }; 9A87883926186896000B9362 /* gma.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = gma.cpp; sourceTree = ""; }; - 9A87883A26186896000B9362 /* Net.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Net.cpp; sourceTree = ""; }; 9A87883B26186896000B9362 /* BootLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootLog.h; sourceTree = ""; }; 9A87883C26186896000B9362 /* hda.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = hda.cpp; sourceTree = ""; }; 9A87883D26186896000B9362 /* spd.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = spd.cpp; sourceTree = ""; }; @@ -1109,9 +1285,7 @@ 9A87884026186896000B9362 /* ati.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ati.cpp; sourceTree = ""; }; 9A87884126186896000B9362 /* StartupSound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StartupSound.cpp; sourceTree = ""; }; 9A87884226186896000B9362 /* MemoryOperation.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MemoryOperation.c; sourceTree = ""; }; - 9A87884326186896000B9362 /* SelfOem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SelfOem.h; sourceTree = ""; }; 9A87884426186896000B9362 /* ati.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ati.h; sourceTree = ""; }; - 9A87884526186896000B9362 /* DevicePath.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DevicePath.cpp; sourceTree = ""; }; 9A87884626186896000B9362 /* platformdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platformdata.h; sourceTree = ""; }; 9A87884726186896000B9362 /* kext_inject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = kext_inject.h; sourceTree = ""; }; 9A87884826186896000B9362 /* APFS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APFS.h; sourceTree = ""; }; @@ -1138,9 +1312,7 @@ 9A87885E26186896000B9362 /* FixBiosDsdt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = FixBiosDsdt.cpp; sourceTree = ""; }; 9A87885F26186896000B9362 /* spd.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = spd.h; sourceTree = ""; }; 9A87886026186896000B9362 /* FixBiosDsdt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixBiosDsdt.h; sourceTree = ""; }; - 9A87886126186896000B9362 /* Self.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Self.h; sourceTree = ""; }; 9A87886226186896000B9362 /* usbfix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = usbfix.cpp; sourceTree = ""; }; - 9A87886326186896000B9362 /* Self.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Self.cpp; sourceTree = ""; }; 9A87886426186896000B9362 /* card_vlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = card_vlist.cpp; sourceTree = ""; }; 9A87886526186897000B9362 /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = ""; }; 9A87886626186897000B9362 /* refit.inf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = refit.inf; sourceTree = ""; }; @@ -1236,8 +1408,24 @@ 9A87920126188002000B9362 /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; 9A87920226188002000B9362 /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; 9AC77EC424176BF2005CDD5C /* libCloverX64.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libCloverX64.a; sourceTree = BUILT_PRODUCTS_DIR; }; + 9AF1EFE92634217800F7C2C0 /* SettingsUtils.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SettingsUtils.h; sourceTree = ""; }; + 9AF1EFEA2634217800F7C2C0 /* SettingsUtils.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsUtils.cpp; sourceTree = ""; }; 9AF4165E242CD75C00D2644C /* libCloverX64 DEBUG_ALL=1.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libCloverX64 DEBUG_ALL=1.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 9AF4173B242CDA5800D2644C /* libCloverX64 DEBUG_ALL=2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libCloverX64 DEBUG_ALL=2.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9AF4D92B263004E100487D15 /* XmlLiteCompositeTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteCompositeTypes.cpp; sourceTree = ""; }; + 9AF4D92C263004E200487D15 /* XmlLiteUnionTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteUnionTypes.cpp; sourceTree = ""; }; + 9AF4D92D263004E200487D15 /* XmlLiteSimpleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteSimpleTypes.h; sourceTree = ""; }; + 9AF4D92E263004E200487D15 /* XmlLiteUnionTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteUnionTypes.h; sourceTree = ""; }; + 9AF4D92F263004E200487D15 /* XmlLiteSimpleTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteSimpleTypes.cpp; sourceTree = ""; }; + 9AF4D930263004E200487D15 /* XmlLiteArrayTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteArrayTypes.h; sourceTree = ""; }; + 9AF4D931263004E200487D15 /* XmlLiteParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteParser.h; sourceTree = ""; }; + 9AF4D932263004E200487D15 /* XmlLiteArrayTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteArrayTypes.cpp; sourceTree = ""; }; + 9AF4D933263004E200487D15 /* XmlLiteDictTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteDictTypes.h; sourceTree = ""; }; + 9AF4D934263004E200487D15 /* XmlLiteParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteParser.cpp; sourceTree = ""; }; + 9AF4D935263004E200487D15 /* XmlLiteDictTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteDictTypes.cpp; sourceTree = ""; }; + 9AF4D936263004E200487D15 /* XmlLiteCompositeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteCompositeTypes.h; sourceTree = ""; }; + 9AF4D96B263014C500487D15 /* Volume.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Volume.h; sourceTree = ""; }; + 9AF4D96C263014C600487D15 /* Volume.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Volume.cpp; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -1265,6 +1453,57 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 9A27546D263802230095D456 /* ConfigPlist */ = { + isa = PBXGroup; + children = ( + 9A275483263802230095D456 /* Config_ACPI_DSDT.cpp */, + 9A275472263802230095D456 /* Config_ACPI_DSDT.h */, + 9A275484263802230095D456 /* Config_ACPI_SSDT.h */, + 9A27547E263802230095D456 /* Config_ACPI.cpp */, + 9A275477263802230095D456 /* Config_ACPI.h */, + 9A275479263802230095D456 /* Config_Boot.h */, + 9A275481263802230095D456 /* Config_BootGraphics.h */, + 9A275480263802230095D456 /* Config_CPU.h */, + 9A27548A263802230095D456 /* Config_Devices_AddProperties.h */, + 9A27547A263802230095D456 /* Config_Devices_Arbitrary.h */, + 9A275474263802230095D456 /* Config_Devices_Audio.h */, + 9A275488263802230095D456 /* Config_Devices_FakeID.h */, + 9A275478263802230095D456 /* Config_Devices_Properties.h */, + 9A275489263802230095D456 /* Config_Devices_USB.h */, + 9A27547F263802230095D456 /* Config_Devices.h */, + 9A275471263802230095D456 /* Config_Graphics.h */, + 9A27546F263802230095D456 /* Config_GUI.cpp */, + 9A275485263802230095D456 /* Config_GUI.h */, + 9A275470263802230095D456 /* Config_KernelAndKextPatches.h */, + 9A275473263802230095D456 /* Config_Quirks.cpp */, + 9A275475263802230095D456 /* Config_Quirks.h */, + 9A275486263802230095D456 /* Config_RtVariables.h */, + 9A27547D263802230095D456 /* Config_SystemParameters.h */, + 9A275482263802230095D456 /* ConfigPlistAbstract.cpp */, + 9A27547B263802230095D456 /* ConfigPlistAbstract.h */, + 9A27547C263802230095D456 /* ConfigPlistClass.cpp */, + 9A275476263802230095D456 /* ConfigPlistClass.h */, + 9A275487263802230095D456 /* SMBIOSPlist.cpp */, + 9A27546E263802230095D456 /* SMBIOSPlist.h */, + 9A2754EE263985A90095D456 /* README.md */, + ); + path = ConfigPlist; + sourceTree = ""; + }; + 9A2995712637521F005F46A2 /* Settings */ = { + isa = PBXGroup; + children = ( + 9A27546D263802230095D456 /* ConfigPlist */, + 9A275458263801930095D456 /* ConfigManager.cpp */, + 9A275459263801930095D456 /* ConfigManager.h */, + 9A27545A263801930095D456 /* Self.cpp */, + 9A275455263801920095D456 /* Self.h */, + 9A275457263801930095D456 /* SelfOem.cpp */, + 9A275456263801920095D456 /* SelfOem.h */, + ); + path = Settings; + sourceTree = ""; + }; 9A87878026186896000B9362 /* rEFIt_UEFI */ = { isa = PBXGroup; children = ( @@ -1279,6 +1518,7 @@ 9A87878126186896000B9362 /* PlatformEFI */, 9A8788C026186897000B9362 /* refit */, 9A87886626186897000B9362 /* refit.inf */, + 9A2995712637521F005F46A2 /* Settings */, ); path = rEFIt_UEFI; sourceTree = ""; @@ -1298,26 +1538,26 @@ 9A87878226186896000B9362 /* posix */ = { isa = PBXGroup; children = ( - 9A87878326186896000B9362 /* stdlib.h */, - 9A87878426186896000B9362 /* limits.h */, - 9A87878526186896000B9362 /* strings.cpp */, - 9A87878626186896000B9362 /* stddef.h */, - 9A87878726186896000B9362 /* posix_additions.cpp */, - 9A87878826186896000B9362 /* stdio.cpp */, 9A87878926186896000B9362 /* abort.cpp */, + 9A87879626186896000B9362 /* abort.h */, + 9A87878426186896000B9362 /* limits.h */, + 9A87878726186896000B9362 /* posix_additions.cpp */, + 9A87879426186896000B9362 /* posix_additions.h */, + 9A87878E26186896000B9362 /* posix.h */, + 9A87879226186896000B9362 /* stdarg.h */, + 9A87878F26186896000B9362 /* stdbool.h */, + 9A87878626186896000B9362 /* stddef.h */, + 9A87879326186896000B9362 /* stdint.h */, + 9A87878826186896000B9362 /* stdio.cpp */, + 9A87879126186896000B9362 /* stdio.h */, + 9A87878326186896000B9362 /* stdlib.h */, 9A87878A26186896000B9362 /* string.cpp */, + 9A87879526186896000B9362 /* string.h */, + 9A87878526186896000B9362 /* strings.cpp */, 9A87878B26186896000B9362 /* strings.h */, + 9A87879026186896000B9362 /* strlen.cpp */, 9A87878C26186896000B9362 /* wchar.cpp */, 9A87878D26186896000B9362 /* wchar.h */, - 9A87878E26186896000B9362 /* posix.h */, - 9A87878F26186896000B9362 /* stdbool.h */, - 9A87879026186896000B9362 /* strlen.cpp */, - 9A87879126186896000B9362 /* stdio.h */, - 9A87879226186896000B9362 /* stdarg.h */, - 9A87879326186896000B9362 /* stdint.h */, - 9A87879426186896000B9362 /* posix_additions.h */, - 9A87879526186896000B9362 /* string.h */, - 9A87879626186896000B9362 /* abort.h */, ); path = posix; sourceTree = ""; @@ -1399,6 +1639,18 @@ 9A8787D126186896000B9362 /* cpp_lib */ = { isa = PBXGroup; children = ( + 9AF4D932263004E200487D15 /* XmlLiteArrayTypes.cpp */, + 9AF4D930263004E200487D15 /* XmlLiteArrayTypes.h */, + 9AF4D92B263004E100487D15 /* XmlLiteCompositeTypes.cpp */, + 9AF4D936263004E200487D15 /* XmlLiteCompositeTypes.h */, + 9AF4D935263004E200487D15 /* XmlLiteDictTypes.cpp */, + 9AF4D933263004E200487D15 /* XmlLiteDictTypes.h */, + 9AF4D934263004E200487D15 /* XmlLiteParser.cpp */, + 9AF4D931263004E200487D15 /* XmlLiteParser.h */, + 9AF4D92F263004E200487D15 /* XmlLiteSimpleTypes.cpp */, + 9AF4D92D263004E200487D15 /* XmlLiteSimpleTypes.h */, + 9AF4D92C263004E200487D15 /* XmlLiteUnionTypes.cpp */, + 9AF4D92E263004E200487D15 /* XmlLiteUnionTypes.h */, 9A8787D226186896000B9362 /* undefinable.h */, ); path = cpp_lib; @@ -1431,6 +1683,8 @@ 9A8787E526186896000B9362 /* Platform */ = { isa = PBXGroup; children = ( + 9A2754E626396F2A0095D456 /* SmbiosFillPatchingValues.cpp */, + 9A2754E726396F2B0095D456 /* SmbiosFillPatchingValues.h */, 9A87881226186896000B9362 /* AcpiPatcher.cpp */, 9A87880326186896000B9362 /* AcpiPatcher.h */, 9A87881726186896000B9362 /* AmlGenerator.cpp */, @@ -1450,7 +1704,8 @@ 9A87882F26186896000B9362 /* BootOptions.h */, 9A87886426186896000B9362 /* card_vlist.cpp */, 9A87881626186896000B9362 /* card_vlist.h */, - 9A87885026186896000B9362 /* ConfigPlist */, + 9A7D2E912636B4F300187064 /* CloverVersion.cpp */, + 9A7D2E902636B4F200187064 /* CloverVersion.h */, 9A87882226186896000B9362 /* Console.cpp */, 9A87880226186896000B9362 /* Console.h */, 9A87885926186896000B9362 /* cpu.cpp */, @@ -1462,7 +1717,6 @@ 9A87880026186896000B9362 /* DataHubExt.h */, 9A87885126186896000B9362 /* device_inject.cpp */, 9A87882626186896000B9362 /* device_inject.h */, - 9A87884526186896000B9362 /* DevicePath.cpp */, 9A87881F26186896000B9362 /* Edid.cpp */, 9A87884E26186896000B9362 /* Edid.h */, 9A87884F26186896000B9362 /* Events.cpp */, @@ -1499,8 +1753,6 @@ 9A87884226186896000B9362 /* MemoryOperation.c */, 9A87880426186896000B9362 /* MemoryOperation.h */, 9A87880C26186896000B9362 /* memvendors.h */, - 9A87883A26186896000B9362 /* Net.cpp */, - 9A87881526186896000B9362 /* Net.h */, 9A87885326186896000B9362 /* nvidia.cpp */, 9A87882B26186896000B9362 /* nvidia.h */, 9A87882A26186896000B9362 /* Nvram.cpp */, @@ -1510,12 +1762,10 @@ 9A87881E26186896000B9362 /* PlatformDriverOverride.cpp */, 9A87882D26186896000B9362 /* PlatformDriverOverride.h */, 9A8787E726186896000B9362 /* plist */, - 9A87886326186896000B9362 /* Self.cpp */, - 9A87886126186896000B9362 /* Self.h */, - 9A87881826186896000B9362 /* SelfOem.cpp */, - 9A87884326186896000B9362 /* SelfOem.h */, 9A87886526186897000B9362 /* Settings.cpp */, 9A87881A26186896000B9362 /* Settings.h */, + 9AF1EFEA2634217800F7C2C0 /* SettingsUtils.cpp */, + 9AF1EFE92634217800F7C2C0 /* SettingsUtils.h */, 9A87885526186896000B9362 /* smbios.cpp */, 9A87885426186896000B9362 /* smbios.h */, 9A87884A26186896000B9362 /* sound.cpp */, @@ -1533,6 +1783,8 @@ 9A87880726186896000B9362 /* Utils.h */, 9A87884C26186896000B9362 /* VersionString.cpp */, 9A87885726186896000B9362 /* VersionString.h */, + 9AF4D96C263014C600487D15 /* Volume.cpp */, + 9AF4D96B263014C500487D15 /* Volume.h */, 9A87885D26186896000B9362 /* Volumes.cpp */, 9A87885826186896000B9362 /* Volumes.h */, ); @@ -1570,49 +1822,42 @@ path = plist; sourceTree = ""; }; - 9A87885026186896000B9362 /* ConfigPlist */ = { - isa = PBXGroup; - children = ( - ); - path = ConfigPlist; - sourceTree = ""; - }; 9A87886726186897000B9362 /* libeg */ = { isa = PBXGroup; children = ( - 9A87886826186897000B9362 /* egemb_icons_dark.cpp */, 9A87886926186897000B9362 /* BmLib.cpp */, - 9A87886A26186897000B9362 /* lodepng.h */, - 9A87886B26186897000B9362 /* libegint.h */, - 9A87886C26186897000B9362 /* VectorGraphics.h */, - 9A87886D26186897000B9362 /* egemb_icons.cpp */, - 9A87886E26186897000B9362 /* XPointer.h */, - 9A87886F26186897000B9362 /* image.cpp */, - 9A87887026186897000B9362 /* VectorGraphics.cpp */, - 9A87887126186897000B9362 /* text.cpp */, - 9A87887226186897000B9362 /* XTheme.h */, - 9A87887326186897000B9362 /* lodepng.cpp */, - 9A87887426186897000B9362 /* libeg.h */, - 9A87887526186897000B9362 /* XTheme.cpp */, - 9A87887626186897000B9362 /* scroll_images.cpp */, - 9A87887726186897000B9362 /* XCinema.cpp */, - 9A87887826186897000B9362 /* egemb_font.cpp */, - 9A87887926186897000B9362 /* EfiFileLib.h */, - 9A87887A26186897000B9362 /* nanosvg.cpp */, - 9A87887B26186897000B9362 /* FloatLib.cpp */, - 9A87887C26186897000B9362 /* nanosvgrast.cpp */, - 9A87887D26186897000B9362 /* XCinema.h */, 9A87887E26186897000B9362 /* BmLib.h */, - 9A87887F26186897000B9362 /* load_icns.cpp */, - 9A87888026186897000B9362 /* XPointer.cpp */, - 9A87888126186897000B9362 /* XImage.h */, - 9A87888226186897000B9362 /* XIcon.cpp */, - 9A87888326186897000B9362 /* nanosvg.h */, - 9A87888426186897000B9362 /* XIcon.h */, + 9A87887926186897000B9362 /* EfiFileLib.h */, + 9A87887826186897000B9362 /* egemb_font.cpp */, + 9A87886826186897000B9362 /* egemb_icons_dark.cpp */, + 9A87886D26186897000B9362 /* egemb_icons.cpp */, + 9A87887B26186897000B9362 /* FloatLib.cpp */, 9A87888526186897000B9362 /* FloatLib.h */, - 9A87888626186897000B9362 /* libscreen.cpp */, + 9A87886F26186897000B9362 /* image.cpp */, 9A87888726186897000B9362 /* image.h */, + 9A87887426186897000B9362 /* libeg.h */, + 9A87886B26186897000B9362 /* libegint.h */, + 9A87888626186897000B9362 /* libscreen.cpp */, + 9A87887F26186897000B9362 /* load_icns.cpp */, + 9A87887326186897000B9362 /* lodepng.cpp */, + 9A87886A26186897000B9362 /* lodepng.h */, + 9A87887A26186897000B9362 /* nanosvg.cpp */, + 9A87888326186897000B9362 /* nanosvg.h */, + 9A87887C26186897000B9362 /* nanosvgrast.cpp */, + 9A87887626186897000B9362 /* scroll_images.cpp */, + 9A87887126186897000B9362 /* text.cpp */, + 9A87887026186897000B9362 /* VectorGraphics.cpp */, + 9A87886C26186897000B9362 /* VectorGraphics.h */, + 9A87887726186897000B9362 /* XCinema.cpp */, + 9A87887D26186897000B9362 /* XCinema.h */, + 9A87888226186897000B9362 /* XIcon.cpp */, + 9A87888426186897000B9362 /* XIcon.h */, 9A87888826186897000B9362 /* XImage.cpp */, + 9A87888126186897000B9362 /* XImage.h */, + 9A87888026186897000B9362 /* XPointer.cpp */, + 9A87886E26186897000B9362 /* XPointer.h */, + 9A87887526186897000B9362 /* XTheme.cpp */, + 9A87887226186897000B9362 /* XTheme.h */, ); path = libeg; sourceTree = ""; @@ -1620,29 +1865,29 @@ 9A87889D26186897000B9362 /* entry_scan */ = { isa = PBXGroup; children = ( - 9A87889E26186897000B9362 /* MSPCADB.h */, - 9A87889F26186897000B9362 /* common.cpp */, - 9A8788A026186897000B9362 /* legacy.cpp */, - 9A8788A126186897000B9362 /* secureboot.cpp */, - 9A8788A226186897000B9362 /* CloverDB.h */, - 9A8788A326186897000B9362 /* MSUEFICADB.h */, - 9A8788A426186897000B9362 /* CanonicalDB.h */, - 9A8788A526186897000B9362 /* securemenu.cpp */, - 9A8788A626186897000B9362 /* securevars.cpp */, - 9A8788A726186897000B9362 /* entry_scan.h */, - 9A8788A826186897000B9362 /* securebootkeys.h */, - 9A8788A926186897000B9362 /* secureboot.h */, - 9A8788AA26186897000B9362 /* common.h */, - 9A8788AB26186897000B9362 /* loader.h */, - 9A8788AC26186897000B9362 /* lockedgraphics.cpp */, - 9A8788AD26186897000B9362 /* tool.h */, - 9A8788AE26186897000B9362 /* MSKEK.h */, 9A8788AF26186897000B9362 /* bootscreen.cpp */, 9A8788B026186897000B9362 /* bootscreen.h */, + 9A8788A426186897000B9362 /* CanonicalDB.h */, + 9A8788A226186897000B9362 /* CloverDB.h */, 9A8788B126186897000B9362 /* CloverKEK.h */, - 9A8788B226186897000B9362 /* tool.cpp */, + 9A87889F26186897000B9362 /* common.cpp */, + 9A8788AA26186897000B9362 /* common.h */, + 9A8788A726186897000B9362 /* entry_scan.h */, + 9A8788A026186897000B9362 /* legacy.cpp */, 9A8788B326186897000B9362 /* loader.cpp */, + 9A8788AB26186897000B9362 /* loader.h */, + 9A8788AC26186897000B9362 /* lockedgraphics.cpp */, + 9A8788AE26186897000B9362 /* MSKEK.h */, + 9A87889E26186897000B9362 /* MSPCADB.h */, + 9A8788A326186897000B9362 /* MSUEFICADB.h */, + 9A8788A126186897000B9362 /* secureboot.cpp */, + 9A8788A926186897000B9362 /* secureboot.h */, + 9A8788A826186897000B9362 /* securebootkeys.h */, 9A8788B426186897000B9362 /* securehash.cpp */, + 9A8788A526186897000B9362 /* securemenu.cpp */, + 9A8788A626186897000B9362 /* securevars.cpp */, + 9A8788B226186897000B9362 /* tool.cpp */, + 9A8788AD26186897000B9362 /* tool.h */, ); path = entry_scan; sourceTree = ""; @@ -1746,18 +1991,25 @@ files = ( 9A878B2826186897000B9362 /* Edid.h in Headers */, 9A878AD726186897000B9362 /* boot.h in Headers */, + 9A275497263802230095D456 /* Config_ACPI_DSDT.h in Headers */, + 9A27545E263801930095D456 /* SelfOem.h in Headers */, + 9A2754D0263802230095D456 /* Config_GUI.h in Headers */, 9A878BC126186898000B9362 /* XIcon.h in Headers */, 9A87895126186897000B9362 /* strcmp_test.h in Headers */, 9A878BBE26186898000B9362 /* nanosvg.h in Headers */, 9A878C5126186898000B9362 /* REFIT_MENU_SCREEN.h in Headers */, 9A878A3B26186897000B9362 /* TagFloat.h in Headers */, + 9A275491263802230095D456 /* Config_KernelAndKextPatches.h in Headers */, + 9A2754B8263802230095D456 /* Config_SystemParameters.h in Headers */, 9A878B7326186897000B9362 /* lodepng.h in Headers */, 9A878C5726186898000B9362 /* REFIT_MAINMENU_SCREEN.h in Headers */, 9A878A1726186897000B9362 /* TagArray.h in Headers */, 9A87897826186897000B9362 /* strcasecmp_test.h in Headers */, + 9AF4D949263004E200487D15 /* XmlLiteParser.h in Headers */, 9A878C0026186898000B9362 /* MSPCADB.h in Headers */, 9A878B1026186897000B9362 /* platformdata.h in Headers */, 9A878A3226186897000B9362 /* TagData.h in Headers */, + 9A2754D3263802230095D456 /* Config_RtVariables.h in Headers */, 9A878A4D26186897000B9362 /* MacOsVersion.h in Headers */, 9A87890F26186897000B9362 /* posix_additions.h in Headers */, 9A87892426186897000B9362 /* globals_dtor.h in Headers */, @@ -1765,24 +2017,27 @@ 9A8789CF26186897000B9362 /* Handle.h in Headers */, 9A8788FA26186897000B9362 /* wchar.h in Headers */, 9A87896626186897000B9362 /* global_test.h in Headers */, + 9AF4D94F263004E200487D15 /* XmlLiteDictTypes.h in Headers */, 9A878A7A26186897000B9362 /* kernel_patcher.h in Headers */, 9A8788FD26186897000B9362 /* posix.h in Headers */, 9A878A5F26186897000B9362 /* StateGenerator.h in Headers */, 9A878A2C26186897000B9362 /* TagDate.h in Headers */, + 9A2754DF263802230095D456 /* Config_Devices_AddProperties.h in Headers */, 9A878C4B26186898000B9362 /* menu_globals.h in Headers */, 9A878C6F26186898000B9362 /* menu.h in Headers */, - 9A878A7D26186897000B9362 /* Net.h in Headers */, 9A878A1D26186897000B9362 /* xml.h in Headers */, 9A878B1626186897000B9362 /* APFS.h in Headers */, 9A878BC426186898000B9362 /* FloatLib.h in Headers */, + 9A2754CD263802230095D456 /* Config_ACPI_SSDT.h in Headers */, 9A878A2F26186897000B9362 /* plist.h in Headers */, + 9AF4D96D263014C600487D15 /* Volume.h in Headers */, 9A87891B26186897000B9362 /* printf_lite-test-cpp_conf.h in Headers */, 9A8788E526186897000B9362 /* stddef.h in Headers */, - 9A878B0726186897000B9362 /* SelfOem.h in Headers */, 9A878A3526186897000B9362 /* TagBool.h in Headers */, 9A878C0F26186898000B9362 /* MSUEFICADB.h in Headers */, 9A878BAF26186898000B9362 /* BmLib.h in Headers */, 9A878B4026186897000B9362 /* VersionString.h in Headers */, + 9A2754AC263802230095D456 /* Config_Boot.h in Headers */, 9A8789ED26186897000B9362 /* DsdtFixList.h in Headers */, 9A878AD426186897000B9362 /* KERNEL_AND_KEXT_PATCHES.h in Headers */, 9A878AA126186897000B9362 /* StartupSound.h in Headers */, @@ -1791,14 +2046,17 @@ 9A878AEF26186897000B9362 /* BootLog.h in Headers */, 9A878C2426186898000B9362 /* common.h in Headers */, 9A878C9026186898000B9362 /* shared_ptr.h in Headers */, + 9AF4D946263004E200487D15 /* XmlLiteArrayTypes.h in Headers */, 9A8789DB26186897000B9362 /* OSTypes.h in Headers */, 9A878BCA26186898000B9362 /* image.h in Headers */, 9A878AE326186897000B9362 /* sse3_patcher.h in Headers */, 9A87893026186897000B9362 /* globals_ctor.h in Headers */, 9A878AC526186897000B9362 /* PlatformDriverOverride.h in Headers */, 9A878B0A26186897000B9362 /* ati.h in Headers */, + 9A275467263801930095D456 /* ConfigManager.h in Headers */, 9A878C1226186898000B9362 /* CanonicalDB.h in Headers */, 9A8789B726186897000B9362 /* config-test.h in Headers */, + 9A2754C1263802230095D456 /* Config_CPU.h in Headers */, 9A87920326188002000B9362 /* Platform.h in Headers */, 9A878C2726186898000B9362 /* loader.h in Headers */, 9A878C9326186898000B9362 /* XStringAbstract.h in Headers */, @@ -1815,9 +2073,10 @@ 9A87894526186897000B9362 /* plist_tests.h in Headers */, 9A878B5826186897000B9362 /* spd.h in Headers */, 9A878ABF26186897000B9362 /* nvidia.h in Headers */, - 9A878B5E26186897000B9362 /* Self.h in Headers */, + 9AF4D958263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */, 9A878BAC26186898000B9362 /* XCinema.h in Headers */, 9A878ADA26186897000B9362 /* DataHubCpu.h in Headers */, + 9A2754AF263802230095D456 /* Config_Devices_Arbitrary.h in Headers */, 9A87890626186897000B9362 /* stdio.h in Headers */, 9A878ACB26186897000B9362 /* BootOptions.h in Headers */, 9A878A9E26186897000B9362 /* sse3_5_patcher.h in Headers */, @@ -1826,6 +2085,7 @@ 9A8789E726186897000B9362 /* TagTypes.h in Headers */, 9A878A2926186897000B9362 /* TagInt64.h in Headers */, 9A878A5326186897000B9362 /* Utils.h in Headers */, + 9A2754A6263802230095D456 /* Config_ACPI.h in Headers */, 9A87896926186897000B9362 /* find_replace_mask_Clover_tests.h in Headers */, 9A8789E426186897000B9362 /* Languages.h in Headers */, 9A878B3126186897000B9362 /* ati_reg.h in Headers */, @@ -1834,6 +2094,7 @@ 9A87895D26186897000B9362 /* find_replace_mask_OC_tests.h in Headers */, 9A878BA026186898000B9362 /* EfiFileLib.h in Headers */, 9A878A4726186897000B9362 /* AcpiPatcher.h in Headers */, + 9A2754A0263802230095D456 /* Config_Quirks.h in Headers */, 9A878AB026186897000B9362 /* device_inject.h in Headers */, 9A87891226186897000B9362 /* string.h in Headers */, 9A87899026186897000B9362 /* strlen_test.h in Headers */, @@ -1854,31 +2115,40 @@ 9A87894226186897000B9362 /* XString_test.h in Headers */, 9A87898D26186897000B9362 /* MacOsVersion_test.h in Headers */, 9A8789CC26186897000B9362 /* OSFlags.h in Headers */, + 9A2754EB26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */, 9A8789E126186897000B9362 /* Efi.h in Headers */, 9A878B1326186897000B9362 /* kext_inject.h in Headers */, 9A87891826186897000B9362 /* printlib-test-cpp_conf.h in Headers */, 9A878B9126186898000B9362 /* libeg.h in Headers */, 9A878C8D26186898000B9362 /* XBuffer.h in Headers */, + 9A2754A9263802230095D456 /* Config_Devices_Properties.h in Headers */, 9A87893F26186897000B9362 /* XToolsCommon_test.h in Headers */, 9A878B5B26186897000B9362 /* FixBiosDsdt.h in Headers */, 9A878C0C26186898000B9362 /* CloverDB.h in Headers */, 9A8789D526186897000B9362 /* QuirksCodes.h in Headers */, 9A878A8026186897000B9362 /* card_vlist.h in Headers */, + 9A27548B263802230095D456 /* SMBIOSPlist.h in Headers */, 9A8789D826186897000B9362 /* OneLinerMacros.h in Headers */, 9A878A8C26186897000B9362 /* Settings.h in Headers */, 9A8788DF26186897000B9362 /* limits.h in Headers */, + 9A27549D263802230095D456 /* Config_Devices_Audio.h in Headers */, 9A878C5426186898000B9362 /* shared_with_menu.h in Headers */, 9A878C6C26186898000B9362 /* lib.h in Headers */, 9A878A4A26186897000B9362 /* MemoryOperation.h in Headers */, 9A878C1E26186898000B9362 /* securebootkeys.h in Headers */, 9A878C8726186898000B9362 /* XToolsCommon.h in Headers */, + 9A275494263802230095D456 /* Config_Graphics.h in Headers */, 9A87890C26186897000B9362 /* stdint.h in Headers */, 9A87890026186897000B9362 /* stdbool.h in Headers */, 9A878A6526186897000B9362 /* usbfix.h in Headers */, 9A8789A226186897000B9362 /* printf_lite-test.h in Headers */, 9A63C6CB24EBEF78000EB836 /* Version.h in Headers */, + 9A27545B263801930095D456 /* Self.h in Headers */, + 9A2754DC263802230095D456 /* Config_Devices_USB.h in Headers */, 9A87896C26186897000B9362 /* XStringArray_test.h in Headers */, 9A8789C326186897000B9362 /* syslinux_mbr.h in Headers */, + 9A2754D9263802230095D456 /* Config_Devices_FakeID.h in Headers */, + 9AF4D940263004E200487D15 /* XmlLiteUnionTypes.h in Headers */, 9A8789F626186897000B9362 /* TagKey.h in Headers */, 9A8789B126186897000B9362 /* all_tests.h in Headers */, 9A878A5926186897000B9362 /* Hibernate.h in Headers */, @@ -1886,15 +2156,19 @@ 9A8789DE26186897000B9362 /* Pci.h in Headers */, 9A8789AB26186897000B9362 /* LoadOptions_test.h in Headers */, 9A87899626186897000B9362 /* printlib-test.h in Headers */, + 9AF4D93D263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */, 9A878A3E26186897000B9362 /* DataHubExt.h in Headers */, 9A878B2526186897000B9362 /* b64cdecode.h in Headers */, 9A878B7F26186898000B9362 /* XPointer.h in Headers */, 9A878C8426186898000B9362 /* XStringArray.h in Headers */, 9A878AC826186897000B9362 /* guid.h in Headers */, + 9A2754BE263802230095D456 /* Config_Devices.h in Headers */, 9A878C2D26186898000B9362 /* tool.h in Headers */, 9A87891526186897000B9362 /* abort.h in Headers */, + 9AF1EFEB2634217800F7C2C0 /* SettingsUtils.h in Headers */, 9A87894E26186897000B9362 /* XBuffer_tests.h in Headers */, 9A878CA826186898000B9362 /* XObjArray.h in Headers */, + 9A2754C4263802230095D456 /* Config_BootGraphics.h in Headers */, 9A878AB626186897000B9362 /* LegacyBoot.h in Headers */, 9A878C4826186898000B9362 /* menu_items.h in Headers */, 9A878A1126186897000B9362 /* TagString8.h in Headers */, @@ -1907,13 +2181,16 @@ 9A878B1F26186897000B9362 /* LegacyBiosThunk.h in Headers */, 9A8789C026186897000B9362 /* Devices.h in Headers */, 9A8789C926186897000B9362 /* BootTypes.h in Headers */, + 9A7D2E922636B4F300187064 /* CloverVersion.h in Headers */, 9A8789D226186897000B9362 /* VolumeTypes.h in Headers */, 9A878AC226186897000B9362 /* Events.h in Headers */, 9A878C8126186898000B9362 /* XRBuffer.h in Headers */, 9A878A6226186897000B9362 /* memvendors.h in Headers */, + 9A2754A3263802230095D456 /* ConfigPlistClass.h in Headers */, 9A87896326186897000B9362 /* XArray_tests.h in Headers */, 9A878CA226186898000B9362 /* XString.h in Headers */, 9A878AAA26186897000B9362 /* hda.h in Headers */, + 9A2754B2263802230095D456 /* ConfigPlistAbstract.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1929,6 +2206,7 @@ 9A878C7026186898000B9362 /* menu.h in Headers */, 9A87895E26186897000B9362 /* find_replace_mask_OC_tests.h in Headers */, 9A8789E826186897000B9362 /* TagTypes.h in Headers */, + 9A27548C263802230095D456 /* SMBIOSPlist.h in Headers */, 9A87892526186897000B9362 /* globals_dtor.h in Headers */, 9A878B1126186897000B9362 /* platformdata.h in Headers */, 9A878BC526186898000B9362 /* FloatLib.h in Headers */, @@ -1937,6 +2215,7 @@ 9A878AC626186897000B9362 /* PlatformDriverOverride.h in Headers */, 9A87896426186897000B9362 /* XArray_tests.h in Headers */, 9A878A5A26186897000B9362 /* Hibernate.h in Headers */, + 9A2754A1263802230095D456 /* Config_Quirks.h in Headers */, 9A8789C126186897000B9362 /* Devices.h in Headers */, 9A878A6926186897000B9362 /* AmlGenerator.h in Headers */, 9A8789B826186897000B9362 /* config-test.h in Headers */, @@ -1947,17 +2226,23 @@ 9A87891026186897000B9362 /* posix_additions.h in Headers */, 9A878B2926186897000B9362 /* Edid.h in Headers */, 9A878AF026186897000B9362 /* BootLog.h in Headers */, - 9A878B5F26186897000B9362 /* Self.h in Headers */, 9A878B1A26186897000B9362 /* cpu.h in Headers */, 9A87891326186897000B9362 /* string.h in Headers */, 9A878C3726186898000B9362 /* bootscreen.h in Headers */, 9A878B3226186897000B9362 /* ati_reg.h in Headers */, 9A878A4526186897000B9362 /* Console.h in Headers */, 9A8789BE26186897000B9362 /* undefinable.h in Headers */, + 9AF4D950263004E200487D15 /* XmlLiteDictTypes.h in Headers */, + 9A2754C5263802230095D456 /* Config_BootGraphics.h in Headers */, 9A8789F426186897000B9362 /* gma.h in Headers */, 9A878A8126186897000B9362 /* card_vlist.h in Headers */, + 9AF4D959263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */, + 9A2754AD263802230095D456 /* Config_Boot.h in Headers */, 9A878C1F26186898000B9362 /* securebootkeys.h in Headers */, + 9A2754DD263802230095D456 /* Config_Devices_USB.h in Headers */, 9A87894326186897000B9362 /* XString_test.h in Headers */, + 9AF4D941263004E200487D15 /* XmlLiteUnionTypes.h in Headers */, + 9AF4D96E263014C600487D15 /* Volume.h in Headers */, 9A878C8226186898000B9362 /* XRBuffer.h in Headers */, 9A87896726186897000B9362 /* global_test.h in Headers */, 9A878C1326186898000B9362 /* CanonicalDB.h in Headers */, @@ -1969,6 +2254,7 @@ 9A878C5226186898000B9362 /* REFIT_MENU_SCREEN.h in Headers */, 9A878A3C26186897000B9362 /* TagFloat.h in Headers */, 9A878ADB26186897000B9362 /* DataHubCpu.h in Headers */, + 9A275498263802230095D456 /* Config_ACPI_DSDT.h in Headers */, 9A8789FD26186897000B9362 /* TagDict.h in Headers */, 9A87898826186897000B9362 /* XObjArray_tests.h in Headers */, 9A878C8826186898000B9362 /* XToolsCommon.h in Headers */, @@ -1978,30 +2264,38 @@ 9A878A0026186897000B9362 /* base64.h in Headers */, 9A87894F26186897000B9362 /* XBuffer_tests.h in Headers */, 9A878BA126186898000B9362 /* EfiFileLib.h in Headers */, + 9A275468263801930095D456 /* ConfigManager.h in Headers */, 9A878AC026186897000B9362 /* nvidia.h in Headers */, + 9A2754CE263802230095D456 /* Config_ACPI_SSDT.h in Headers */, 9A878C9426186898000B9362 /* XStringAbstract.h in Headers */, 9A8789A326186897000B9362 /* printf_lite-test.h in Headers */, 9A878B1426186897000B9362 /* kext_inject.h in Headers */, 9A878C1C26186898000B9362 /* entry_scan.h in Headers */, 9A878A4826186897000B9362 /* AcpiPatcher.h in Headers */, 9A878C0126186898000B9362 /* MSPCADB.h in Headers */, + 9AF4D947263004E200487D15 /* XmlLiteArrayTypes.h in Headers */, + 9AF4D94A263004E200487D15 /* XmlLiteParser.h in Headers */, 9A878A7B26186897000B9362 /* kernel_patcher.h in Headers */, 9A878A9026186897000B9362 /* KextList.h in Headers */, 9A878BCB26186898000B9362 /* image.h in Headers */, 9A87897926186897000B9362 /* strcasecmp_test.h in Headers */, 9A87890726186897000B9362 /* stdio.h in Headers */, + 9A27545F263801930095D456 /* SelfOem.h in Headers */, 9A878AAB26186897000B9362 /* hda.h in Headers */, 9A8789C726186897000B9362 /* rename_helper.h in Headers */, 9A878C3A26186898000B9362 /* CloverKEK.h in Headers */, 9A878A9F26186897000B9362 /* sse3_5_patcher.h in Headers */, + 9A2754B9263802230095D456 /* Config_SystemParameters.h in Headers */, 9A8789E526186897000B9362 /* Languages.h in Headers */, 9A878A2D26186897000B9362 /* TagDate.h in Headers */, 9A8789DC26186897000B9362 /* OSTypes.h in Headers */, 9A87899126186897000B9362 /* strlen_test.h in Headers */, 9A8788FE26186897000B9362 /* posix.h in Headers */, + 9A2754A7263802230095D456 /* Config_ACPI.h in Headers */, 9A878A6326186897000B9362 /* memvendors.h in Headers */, 9A87894026186897000B9362 /* XToolsCommon_test.h in Headers */, 9A878ACC26186897000B9362 /* BootOptions.h in Headers */, + 9AF4D93E263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */, 9A87890A26186897000B9362 /* stdarg.h in Headers */, 9A878A9326186897000B9362 /* Nvram.h in Headers */, 9A878C7C26186898000B9362 /* unicode_conversions.h in Headers */, @@ -2016,7 +2310,6 @@ 9A878C8E26186898000B9362 /* XBuffer.h in Headers */, 9A8788F526186897000B9362 /* strings.h in Headers */, 9A87894626186897000B9362 /* plist_tests.h in Headers */, - 9A878B0826186897000B9362 /* SelfOem.h in Headers */, 9A8788DD26186897000B9362 /* stdlib.h in Headers */, 9A878C2E26186898000B9362 /* tool.h in Headers */, 9A87891626186897000B9362 /* abort.h in Headers */, @@ -2028,20 +2321,24 @@ 9A878C1026186898000B9362 /* MSUEFICADB.h in Headers */, 9A878AB126186897000B9362 /* device_inject.h in Headers */, 9A87899726186897000B9362 /* printlib-test.h in Headers */, + 9A2754AA263802230095D456 /* Config_Devices_Properties.h in Headers */, 9A878BB926186898000B9362 /* XImage.h in Headers */, 9A8789D926186897000B9362 /* OneLinerMacros.h in Headers */, 9A878CA326186898000B9362 /* XString.h in Headers */, + 9A2754BF263802230095D456 /* Config_Devices.h in Headers */, 9A87898E26186897000B9362 /* MacOsVersion_test.h in Headers */, 9A8789D626186897000B9362 /* QuirksCodes.h in Headers */, 9A87895226186897000B9362 /* strcmp_test.h in Headers */, 9A878A1226186897000B9362 /* TagString8.h in Headers */, 9A878CA626186898000B9362 /* XArray.h in Headers */, 9A87892E26186897000B9362 /* operatorNewDelete.h in Headers */, + 9A2754D4263802230095D456 /* Config_RtVariables.h in Headers */, 9A878A2A26186897000B9362 /* TagInt64.h in Headers */, 9A878B8026186898000B9362 /* XPointer.h in Headers */, 9A8789EB26186897000B9362 /* remove_ref.h in Headers */, + 9A27545C263801930095D456 /* Self.h in Headers */, 9A87896D26186897000B9362 /* XStringArray_test.h in Headers */, - 9A878A7E26186897000B9362 /* Net.h in Headers */, + 9A2754D1263802230095D456 /* Config_GUI.h in Headers */, 9A878A6626186897000B9362 /* usbfix.h in Headers */, 9A878C2826186898000B9362 /* loader.h in Headers */, 9A878B3826186897000B9362 /* smbios.h in Headers */, @@ -2055,10 +2352,12 @@ 9A878A5426186897000B9362 /* Utils.h in Headers */, 9A878A4E26186897000B9362 /* MacOsVersion.h in Headers */, 9A8789F726186897000B9362 /* TagKey.h in Headers */, + 9A275495263802230095D456 /* Config_Graphics.h in Headers */, 9A878C5526186898000B9362 /* shared_with_menu.h in Headers */, 9A87894C26186897000B9362 /* strncmp_test.h in Headers */, 9A878AC326186897000B9362 /* Events.h in Headers */, 9A878A1826186897000B9362 /* TagArray.h in Headers */, + 9A2754B0263802230095D456 /* Config_Devices_Arbitrary.h in Headers */, 9A8789C426186897000B9362 /* syslinux_mbr.h in Headers */, 9A878C7326186898000B9362 /* screen.h in Headers */, 9A878AC926186897000B9362 /* guid.h in Headers */, @@ -2067,13 +2366,16 @@ 9A878B8C26186898000B9362 /* XTheme.h in Headers */, 9A878B5026186897000B9362 /* DataHub.h in Headers */, 9A878AD826186897000B9362 /* boot.h in Headers */, + 9A2754A4263802230095D456 /* ConfigPlistClass.h in Headers */, 9A878BB026186898000B9362 /* BmLib.h in Headers */, 9A8788E626186897000B9362 /* stddef.h in Headers */, 9A878B2626186897000B9362 /* b64cdecode.h in Headers */, 9A87896A26186897000B9362 /* find_replace_mask_Clover_tests.h in Headers */, 9A8789AC26186897000B9362 /* LoadOptions_test.h in Headers */, 9A87895B26186897000B9362 /* xml_lite-test.h in Headers */, + 9A27549E263802230095D456 /* Config_Devices_Audio.h in Headers */, 9A878A3026186897000B9362 /* plist.h in Headers */, + 9A2754B3263802230095D456 /* ConfigPlistAbstract.h in Headers */, 9A878BC226186898000B9362 /* XIcon.h in Headers */, 9A878C3126186898000B9362 /* MSKEK.h in Headers */, 9A878C4C26186898000B9362 /* menu_globals.h in Headers */, @@ -2084,10 +2386,15 @@ 9A878C2526186898000B9362 /* common.h in Headers */, 9A87891C26186897000B9362 /* printf_lite-test-cpp_conf.h in Headers */, 9A878CA926186898000B9362 /* XObjArray.h in Headers */, + 9A275492263802230095D456 /* Config_KernelAndKextPatches.h in Headers */, + 9A2754DA263802230095D456 /* Config_Devices_FakeID.h in Headers */, 9A8789DF26186897000B9362 /* Pci.h in Headers */, 9A87890D26186897000B9362 /* stdint.h in Headers */, 9A878A6026186897000B9362 /* StateGenerator.h in Headers */, 9A8788FB26186897000B9362 /* wchar.h in Headers */, + 9A2754C2263802230095D456 /* Config_CPU.h in Headers */, + 9A2754EC26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */, + 9A2754E0263802230095D456 /* Config_Devices_AddProperties.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2103,6 +2410,7 @@ 9A878C7126186898000B9362 /* menu.h in Headers */, 9A87895F26186897000B9362 /* find_replace_mask_OC_tests.h in Headers */, 9A8789E926186897000B9362 /* TagTypes.h in Headers */, + 9A27548D263802230095D456 /* SMBIOSPlist.h in Headers */, 9A87892626186897000B9362 /* globals_dtor.h in Headers */, 9A878B1226186897000B9362 /* platformdata.h in Headers */, 9A878BC626186898000B9362 /* FloatLib.h in Headers */, @@ -2111,6 +2419,7 @@ 9A878AC726186897000B9362 /* PlatformDriverOverride.h in Headers */, 9A87896526186897000B9362 /* XArray_tests.h in Headers */, 9A878A5B26186897000B9362 /* Hibernate.h in Headers */, + 9A2754A2263802230095D456 /* Config_Quirks.h in Headers */, 9A8789C226186897000B9362 /* Devices.h in Headers */, 9A878A6A26186897000B9362 /* AmlGenerator.h in Headers */, 9A8789B926186897000B9362 /* config-test.h in Headers */, @@ -2121,17 +2430,23 @@ 9A87891126186897000B9362 /* posix_additions.h in Headers */, 9A878B2A26186897000B9362 /* Edid.h in Headers */, 9A878AF126186897000B9362 /* BootLog.h in Headers */, - 9A878B6026186897000B9362 /* Self.h in Headers */, 9A878B1B26186897000B9362 /* cpu.h in Headers */, 9A87891426186897000B9362 /* string.h in Headers */, 9A878C3826186898000B9362 /* bootscreen.h in Headers */, 9A878B3326186897000B9362 /* ati_reg.h in Headers */, 9A878A4626186897000B9362 /* Console.h in Headers */, 9A8789BF26186897000B9362 /* undefinable.h in Headers */, + 9AF4D951263004E200487D15 /* XmlLiteDictTypes.h in Headers */, + 9A2754C6263802230095D456 /* Config_BootGraphics.h in Headers */, 9A8789F526186897000B9362 /* gma.h in Headers */, 9A878A8226186897000B9362 /* card_vlist.h in Headers */, + 9AF4D95A263004E200487D15 /* XmlLiteCompositeTypes.h in Headers */, + 9A2754AE263802230095D456 /* Config_Boot.h in Headers */, 9A878C2026186898000B9362 /* securebootkeys.h in Headers */, + 9A2754DE263802230095D456 /* Config_Devices_USB.h in Headers */, 9A87894426186897000B9362 /* XString_test.h in Headers */, + 9AF4D942263004E200487D15 /* XmlLiteUnionTypes.h in Headers */, + 9AF4D96F263014C600487D15 /* Volume.h in Headers */, 9A878C8326186898000B9362 /* XRBuffer.h in Headers */, 9A87896826186897000B9362 /* global_test.h in Headers */, 9A878C1426186898000B9362 /* CanonicalDB.h in Headers */, @@ -2143,6 +2458,7 @@ 9A878C5326186898000B9362 /* REFIT_MENU_SCREEN.h in Headers */, 9A878A3D26186897000B9362 /* TagFloat.h in Headers */, 9A878ADC26186897000B9362 /* DataHubCpu.h in Headers */, + 9A275499263802230095D456 /* Config_ACPI_DSDT.h in Headers */, 9A8789FE26186897000B9362 /* TagDict.h in Headers */, 9A87898926186897000B9362 /* XObjArray_tests.h in Headers */, 9A878C8926186898000B9362 /* XToolsCommon.h in Headers */, @@ -2152,30 +2468,38 @@ 9A878A0126186897000B9362 /* base64.h in Headers */, 9A87895026186897000B9362 /* XBuffer_tests.h in Headers */, 9A878BA226186898000B9362 /* EfiFileLib.h in Headers */, + 9A275469263801930095D456 /* ConfigManager.h in Headers */, 9A878AC126186897000B9362 /* nvidia.h in Headers */, + 9A2754CF263802230095D456 /* Config_ACPI_SSDT.h in Headers */, 9A878C9526186898000B9362 /* XStringAbstract.h in Headers */, 9A8789A426186897000B9362 /* printf_lite-test.h in Headers */, 9A878B1526186897000B9362 /* kext_inject.h in Headers */, 9A878C1D26186898000B9362 /* entry_scan.h in Headers */, 9A878A4926186897000B9362 /* AcpiPatcher.h in Headers */, 9A878C0226186898000B9362 /* MSPCADB.h in Headers */, + 9AF4D948263004E200487D15 /* XmlLiteArrayTypes.h in Headers */, + 9AF4D94B263004E200487D15 /* XmlLiteParser.h in Headers */, 9A878A7C26186897000B9362 /* kernel_patcher.h in Headers */, 9A878A9126186897000B9362 /* KextList.h in Headers */, 9A878BCC26186898000B9362 /* image.h in Headers */, 9A87897A26186897000B9362 /* strcasecmp_test.h in Headers */, 9A87890826186897000B9362 /* stdio.h in Headers */, + 9A275460263801930095D456 /* SelfOem.h in Headers */, 9A878AAC26186897000B9362 /* hda.h in Headers */, 9A8789C826186897000B9362 /* rename_helper.h in Headers */, 9A878C3B26186898000B9362 /* CloverKEK.h in Headers */, 9A878AA026186897000B9362 /* sse3_5_patcher.h in Headers */, + 9A2754BA263802230095D456 /* Config_SystemParameters.h in Headers */, 9A8789E626186897000B9362 /* Languages.h in Headers */, 9A878A2E26186897000B9362 /* TagDate.h in Headers */, 9A8789DD26186897000B9362 /* OSTypes.h in Headers */, 9A87899226186897000B9362 /* strlen_test.h in Headers */, 9A8788FF26186897000B9362 /* posix.h in Headers */, + 9A2754A8263802230095D456 /* Config_ACPI.h in Headers */, 9A878A6426186897000B9362 /* memvendors.h in Headers */, 9A87894126186897000B9362 /* XToolsCommon_test.h in Headers */, 9A878ACD26186897000B9362 /* BootOptions.h in Headers */, + 9AF4D93F263004E200487D15 /* XmlLiteSimpleTypes.h in Headers */, 9A87890B26186897000B9362 /* stdarg.h in Headers */, 9A878A9426186897000B9362 /* Nvram.h in Headers */, 9A878C7D26186898000B9362 /* unicode_conversions.h in Headers */, @@ -2190,7 +2514,6 @@ 9A878C8F26186898000B9362 /* XBuffer.h in Headers */, 9A8788F626186897000B9362 /* strings.h in Headers */, 9A87894726186897000B9362 /* plist_tests.h in Headers */, - 9A878B0926186897000B9362 /* SelfOem.h in Headers */, 9A8788DE26186897000B9362 /* stdlib.h in Headers */, 9A878C2F26186898000B9362 /* tool.h in Headers */, 9A87891726186897000B9362 /* abort.h in Headers */, @@ -2202,20 +2525,24 @@ 9A878C1126186898000B9362 /* MSUEFICADB.h in Headers */, 9A878AB226186897000B9362 /* device_inject.h in Headers */, 9A87899826186897000B9362 /* printlib-test.h in Headers */, + 9A2754AB263802230095D456 /* Config_Devices_Properties.h in Headers */, 9A878BBA26186898000B9362 /* XImage.h in Headers */, 9A8789DA26186897000B9362 /* OneLinerMacros.h in Headers */, 9A878CA426186898000B9362 /* XString.h in Headers */, + 9A2754C0263802230095D456 /* Config_Devices.h in Headers */, 9A87898F26186897000B9362 /* MacOsVersion_test.h in Headers */, 9A8789D726186897000B9362 /* QuirksCodes.h in Headers */, 9A87895326186897000B9362 /* strcmp_test.h in Headers */, 9A878A1326186897000B9362 /* TagString8.h in Headers */, 9A878CA726186898000B9362 /* XArray.h in Headers */, 9A87892F26186897000B9362 /* operatorNewDelete.h in Headers */, + 9A2754D5263802230095D456 /* Config_RtVariables.h in Headers */, 9A878A2B26186897000B9362 /* TagInt64.h in Headers */, 9A878B8126186898000B9362 /* XPointer.h in Headers */, 9A8789EC26186897000B9362 /* remove_ref.h in Headers */, + 9A27545D263801930095D456 /* Self.h in Headers */, 9A87896E26186897000B9362 /* XStringArray_test.h in Headers */, - 9A878A7F26186897000B9362 /* Net.h in Headers */, + 9A2754D2263802230095D456 /* Config_GUI.h in Headers */, 9A878A6726186897000B9362 /* usbfix.h in Headers */, 9A878C2926186898000B9362 /* loader.h in Headers */, 9A878B3926186897000B9362 /* smbios.h in Headers */, @@ -2229,10 +2556,12 @@ 9A878A5526186897000B9362 /* Utils.h in Headers */, 9A878A4F26186897000B9362 /* MacOsVersion.h in Headers */, 9A8789F826186897000B9362 /* TagKey.h in Headers */, + 9A275496263802230095D456 /* Config_Graphics.h in Headers */, 9A878C5626186898000B9362 /* shared_with_menu.h in Headers */, 9A87894D26186897000B9362 /* strncmp_test.h in Headers */, 9A878AC426186897000B9362 /* Events.h in Headers */, 9A878A1926186897000B9362 /* TagArray.h in Headers */, + 9A2754B1263802230095D456 /* Config_Devices_Arbitrary.h in Headers */, 9A8789C526186897000B9362 /* syslinux_mbr.h in Headers */, 9A878C7426186898000B9362 /* screen.h in Headers */, 9A878ACA26186897000B9362 /* guid.h in Headers */, @@ -2241,13 +2570,16 @@ 9A878B8D26186898000B9362 /* XTheme.h in Headers */, 9A878B5126186897000B9362 /* DataHub.h in Headers */, 9A878AD926186897000B9362 /* boot.h in Headers */, + 9A2754A5263802230095D456 /* ConfigPlistClass.h in Headers */, 9A878BB126186898000B9362 /* BmLib.h in Headers */, 9A8788E726186897000B9362 /* stddef.h in Headers */, 9A878B2726186897000B9362 /* b64cdecode.h in Headers */, 9A87896B26186897000B9362 /* find_replace_mask_Clover_tests.h in Headers */, 9A8789AD26186897000B9362 /* LoadOptions_test.h in Headers */, 9A87895C26186897000B9362 /* xml_lite-test.h in Headers */, + 9A27549F263802230095D456 /* Config_Devices_Audio.h in Headers */, 9A878A3126186897000B9362 /* plist.h in Headers */, + 9A2754B4263802230095D456 /* ConfigPlistAbstract.h in Headers */, 9A878BC326186898000B9362 /* XIcon.h in Headers */, 9A878C3226186898000B9362 /* MSKEK.h in Headers */, 9A878C4D26186898000B9362 /* menu_globals.h in Headers */, @@ -2258,10 +2590,15 @@ 9A878C2626186898000B9362 /* common.h in Headers */, 9A87891D26186897000B9362 /* printf_lite-test-cpp_conf.h in Headers */, 9A878CAA26186898000B9362 /* XObjArray.h in Headers */, + 9A275493263802230095D456 /* Config_KernelAndKextPatches.h in Headers */, + 9A2754DB263802230095D456 /* Config_Devices_FakeID.h in Headers */, 9A8789E026186897000B9362 /* Pci.h in Headers */, 9A87890E26186897000B9362 /* stdint.h in Headers */, 9A878A6126186897000B9362 /* StateGenerator.h in Headers */, 9A8788FC26186897000B9362 /* wchar.h in Headers */, + 9A2754C3263802230095D456 /* Config_CPU.h in Headers */, + 9A2754ED26396F2B0095D456 /* SmbiosFillPatchingValues.h in Headers */, + 9A2754E1263802230095D456 /* Config_Devices_AddProperties.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2417,6 +2754,7 @@ 9A878C7526186898000B9362 /* main.cpp in Sources */, 9A878A2026186897000B9362 /* TagInt64.cpp in Sources */, 9A878B4926186897000B9362 /* KERNEL_AND_KEXT_PATCHES.cpp in Sources */, + 9A2754E826396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */, 9A878A5C26186897000B9362 /* kext_patcher.cpp in Sources */, 9A87895726186897000B9362 /* LoadOptions_test.cpp in Sources */, 9A878A1A26186897000B9362 /* plist.cpp in Sources */, @@ -2427,6 +2765,8 @@ 9A878C3C26186898000B9362 /* tool.cpp in Sources */, 9A878C5A26186898000B9362 /* REFIT_MENU_SCREEN.cpp in Sources */, 9A87897526186897000B9362 /* plist_tests.cpp in Sources */, + 9A2754D6263802230095D456 /* SMBIOSPlist.cpp in Sources */, + 9AF4D970263014C600487D15 /* Volume.cpp in Sources */, 9A878A5026186897000B9362 /* LegacyBoot.cpp in Sources */, 9A878C6926186898000B9362 /* lib.cpp in Sources */, 9A878AF526186897000B9362 /* spd.cpp in Sources */, @@ -2435,15 +2775,16 @@ 9A878A0826186897000B9362 /* TagKey.cpp in Sources */, 9A878B8E26186898000B9362 /* lodepng.cpp in Sources */, 9A8788E226186897000B9362 /* strings.cpp in Sources */, + 9A275464263801930095D456 /* ConfigManager.cpp in Sources */, 9A8789A826186897000B9362 /* XString_test.cpp in Sources */, 9A878B8226186898000B9362 /* image.cpp in Sources */, 9A878BC726186898000B9362 /* libscreen.cpp in Sources */, 9A878B5226186897000B9362 /* Volumes.cpp in Sources */, - 9A878AEC26186897000B9362 /* Net.cpp in Sources */, 9A878A0226186897000B9362 /* TagArray.cpp in Sources */, 9A878A5626186897000B9362 /* HdaCodecDump.cpp in Sources */, 9A878C9F26186898000B9362 /* XBuffer.cpp in Sources */, 9A878AFB26186897000B9362 /* platformdata.cpp in Sources */, + 9AF4D94C263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */, 9A878B2B26186897000B9362 /* Events.cpp in Sources */, 9A878A8326186897000B9362 /* AmlGenerator.cpp in Sources */, 9A878ADD26186897000B9362 /* MacOsVersion.cpp in Sources */, @@ -2452,11 +2793,12 @@ 9A878BB226186898000B9362 /* load_icns.cpp in Sources */, 9A8789BA26186897000B9362 /* find_replace_mask_OC_tests.cpp in Sources */, 9A8788EB26186897000B9362 /* stdio.cpp in Sources */, + 9A2754CA263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */, 9A878C6326186898000B9362 /* screen.cpp in Sources */, - 9A878B0D26186897000B9362 /* DevicePath.cpp in Sources */, 9A87899C26186897000B9362 /* XArray_tests.cpp in Sources */, 9A878A1426186897000B9362 /* TagDate.cpp in Sources */, 9A87891E26186897000B9362 /* BootLog.cpp in Sources */, + 9AF4D943263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878B8826186898000B9362 /* text.cpp in Sources */, 9A878A9B26186897000B9362 /* Edid.cpp in Sources */, 9A878B7026186897000B9362 /* BmLib.cpp in Sources */, @@ -2468,6 +2810,7 @@ 9A878A2326186897000B9362 /* xml.cpp in Sources */, 9A878AB926186897000B9362 /* kext_inject.cpp in Sources */, 9A8788EE26186897000B9362 /* abort.cpp in Sources */, + 9A275461263801930095D456 /* SelfOem.cpp in Sources */, 9A878BA326186898000B9362 /* nanosvg.cpp in Sources */, 9A878AA726186897000B9362 /* DataHubCpu.cpp in Sources */, 9A878C3F26186898000B9362 /* loader.cpp in Sources */, @@ -2476,6 +2819,7 @@ 9A878AA426186897000B9362 /* Console.cpp in Sources */, 9A878AB326186897000B9362 /* b64cdecode.cpp in Sources */, 9A878B6726186897000B9362 /* card_vlist.cpp in Sources */, + 9AF4D952263004E200487D15 /* XmlLiteParser.cpp in Sources */, 9A878C3326186898000B9362 /* bootscreen.cpp in Sources */, 9A878C0626186898000B9362 /* legacy.cpp in Sources */, 9A878B5526186897000B9362 /* FixBiosDsdt.cpp in Sources */, @@ -2487,11 +2831,9 @@ 9A87898A26186897000B9362 /* find_replace_mask_Clover_tests.cpp in Sources */, 9A8788F126186897000B9362 /* string.cpp in Sources */, 9A878AAD26186897000B9362 /* DataHub.cpp in Sources */, - 9A878A8626186897000B9362 /* SelfOem.cpp in Sources */, 9A878B4626186897000B9362 /* cpu.cpp in Sources */, 9A87892A26186897000B9362 /* pure_virtual.cpp in Sources */, 9A878B3A26186897000B9362 /* smbios.cpp in Sources */, - 9A878B6426186897000B9362 /* Self.cpp in Sources */, 9A878C1826186898000B9362 /* securevars.cpp in Sources */, 9A878BB526186898000B9362 /* XPointer.cpp in Sources */, 9A87892726186897000B9362 /* globals_dtor.cpp in Sources */, @@ -2501,6 +2843,9 @@ 9A878BCD26186898000B9362 /* XImage.cpp in Sources */, 9A87895426186897000B9362 /* XBuffer_tests.cpp in Sources */, 9A878BA926186898000B9362 /* nanosvgrast.cpp in Sources */, + 9A2754B5263802230095D456 /* ConfigPlistClass.cpp in Sources */, + 9AF4D955263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */, + 9AF4D937263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */, 9A878AE026186897000B9362 /* BootOptions.cpp in Sources */, 9A878AE926186897000B9362 /* gma.cpp in Sources */, 9A878C7E26186898000B9362 /* XStringArray.cpp in Sources */, @@ -2511,15 +2856,20 @@ 9A878B7C26186898000B9362 /* egemb_icons.cpp in Sources */, 9A878B9426186898000B9362 /* XTheme.cpp in Sources */, 9A87899326186897000B9362 /* all_tests.cpp in Sources */, + 9A27549A263802230095D456 /* Config_Quirks.cpp in Sources */, 9A878A6E26186897000B9362 /* Utils.cpp in Sources */, 9A878C1526186898000B9362 /* securemenu.cpp in Sources */, 9A878C9926186898000B9362 /* XRBuffer.cpp in Sources */, + 9A2755482639DF1B0095D456 /* xml_lite-test.cpp in Sources */, + 9AF1EFEC2634217800F7C2C0 /* SettingsUtils.cpp in Sources */, + 9A2754C7263802230095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A8789AE26186897000B9362 /* XToolsCommon_test.cpp in Sources */, 9A878A0B26186897000B9362 /* TagData.cpp in Sources */, 9A878B0126186897000B9362 /* StartupSound.cpp in Sources */, 9A878AD126186897000B9362 /* LegacyBiosThunk.cpp in Sources */, 9A878C0326186898000B9362 /* common.cpp in Sources */, 9A878BA626186898000B9362 /* FloatLib.cpp in Sources */, + 9AF4D93A263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */, 9A8788F726186897000B9362 /* wchar.cpp in Sources */, 9A87897B26186897000B9362 /* MacOsVersion_test.cpp in Sources */, 9A87898126186897000B9362 /* printlib-test.cpp in Sources */, @@ -2532,8 +2882,11 @@ 9A878B1C26186897000B9362 /* sound.cpp in Sources */, 9A878B6126186897000B9362 /* usbfix.cpp in Sources */, 9A878B4C26186897000B9362 /* guid.cpp in Sources */, + 9A7D2E932636B4F300187064 /* CloverVersion.cpp in Sources */, + 9A2754BB263802230095D456 /* Config_ACPI.cpp in Sources */, 9A878A3826186897000B9362 /* TagString8.cpp in Sources */, 9A878A7426186897000B9362 /* AcpiPatcher.cpp in Sources */, + 9A27548E263802230095D456 /* Config_GUI.cpp in Sources */, 9A878AF226186897000B9362 /* hda.cpp in Sources */, 9A878AE626186897000B9362 /* kernel_patcher.cpp in Sources */, 9A87897E26186897000B9362 /* strcmp_test.cpp in Sources */, @@ -2543,6 +2896,7 @@ 9A878B8526186898000B9362 /* VectorGraphics.cpp in Sources */, 9A878C8A26186898000B9362 /* shared_ptr.cpp in Sources */, 9A878C9C26186898000B9362 /* XString.cpp in Sources */, + 9A27546A263801930095D456 /* Self.cpp in Sources */, 9A878AFE26186897000B9362 /* ati.cpp in Sources */, 9A878B2E26186897000B9362 /* device_inject.cpp in Sources */, 9A87896026186897000B9362 /* printf_lite-test.cpp in Sources */, @@ -2570,7 +2924,10 @@ 9A878A2726186897000B9362 /* TagBool.cpp in Sources */, 9A878C3D26186898000B9362 /* tool.cpp in Sources */, 9A878C5B26186898000B9362 /* REFIT_MENU_SCREEN.cpp in Sources */, + 9A2754BC263802230095D456 /* Config_ACPI.cpp in Sources */, 9A87897626186897000B9362 /* plist_tests.cpp in Sources */, + 9A27546B263801930095D456 /* Self.cpp in Sources */, + 9AF4D971263014C600487D15 /* Volume.cpp in Sources */, 9A878A5126186897000B9362 /* LegacyBoot.cpp in Sources */, 9A878C6A26186898000B9362 /* lib.cpp in Sources */, 9A878AF626186897000B9362 /* spd.cpp in Sources */, @@ -2583,24 +2940,26 @@ 9A878B8326186898000B9362 /* image.cpp in Sources */, 9A878BC826186898000B9362 /* libscreen.cpp in Sources */, 9A878B5326186897000B9362 /* Volumes.cpp in Sources */, - 9A878AED26186897000B9362 /* Net.cpp in Sources */, 9A878A0326186897000B9362 /* TagArray.cpp in Sources */, 9A878A5726186897000B9362 /* HdaCodecDump.cpp in Sources */, 9A878CA026186898000B9362 /* XBuffer.cpp in Sources */, 9A878AFC26186897000B9362 /* platformdata.cpp in Sources */, + 9AF4D94D263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */, 9A878B2C26186897000B9362 /* Events.cpp in Sources */, 9A878A8426186897000B9362 /* AmlGenerator.cpp in Sources */, 9A878ADE26186897000B9362 /* MacOsVersion.cpp in Sources */, 9A878C6126186898000B9362 /* icns.cpp in Sources */, 9A878C4F26186898000B9362 /* menu_items.cpp in Sources */, 9A878BB326186898000B9362 /* load_icns.cpp in Sources */, + 9A2754C8263802230095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A8789BB26186897000B9362 /* find_replace_mask_OC_tests.cpp in Sources */, 9A8788EC26186897000B9362 /* stdio.cpp in Sources */, 9A878C6426186898000B9362 /* screen.cpp in Sources */, - 9A878B0E26186897000B9362 /* DevicePath.cpp in Sources */, 9A87899D26186897000B9362 /* XArray_tests.cpp in Sources */, + 9A275465263801930095D456 /* ConfigManager.cpp in Sources */, 9A878A1526186897000B9362 /* TagDate.cpp in Sources */, 9A87891F26186897000B9362 /* BootLog.cpp in Sources */, + 9AF4D944263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878B8926186898000B9362 /* text.cpp in Sources */, 9A878A9C26186897000B9362 /* Edid.cpp in Sources */, 9A878B7126186897000B9362 /* BmLib.cpp in Sources */, @@ -2620,7 +2979,9 @@ 9A878AA526186897000B9362 /* Console.cpp in Sources */, 9A878AB426186897000B9362 /* b64cdecode.cpp in Sources */, 9A878B6826186897000B9362 /* card_vlist.cpp in Sources */, + 9AF4D953263004E200487D15 /* XmlLiteParser.cpp in Sources */, 9A878C3426186898000B9362 /* bootscreen.cpp in Sources */, + 9A2755492639DF1B0095D456 /* xml_lite-test.cpp in Sources */, 9A878C0726186898000B9362 /* legacy.cpp in Sources */, 9A878B5626186897000B9362 /* FixBiosDsdt.cpp in Sources */, 9A878A0626186897000B9362 /* base64.cpp in Sources */, @@ -2631,22 +2992,25 @@ 9A87898B26186897000B9362 /* find_replace_mask_Clover_tests.cpp in Sources */, 9A8788F226186897000B9362 /* string.cpp in Sources */, 9A878AAE26186897000B9362 /* DataHub.cpp in Sources */, - 9A878A8726186897000B9362 /* SelfOem.cpp in Sources */, 9A878B4726186897000B9362 /* cpu.cpp in Sources */, 9A87892B26186897000B9362 /* pure_virtual.cpp in Sources */, 9A878B3B26186897000B9362 /* smbios.cpp in Sources */, - 9A878B6526186897000B9362 /* Self.cpp in Sources */, 9A878C1926186898000B9362 /* securevars.cpp in Sources */, 9A878BB626186898000B9362 /* XPointer.cpp in Sources */, 9A87892826186897000B9362 /* globals_dtor.cpp in Sources */, 9A87894926186897000B9362 /* global_test.cpp in Sources */, + 9A275462263801930095D456 /* SelfOem.cpp in Sources */, 9A878A7826186897000B9362 /* StateGenerator.cpp in Sources */, 9A878C6726186898000B9362 /* menu.cpp in Sources */, 9A878BCE26186898000B9362 /* XImage.cpp in Sources */, 9A87895526186897000B9362 /* XBuffer_tests.cpp in Sources */, 9A878BAA26186898000B9362 /* nanosvgrast.cpp in Sources */, + 9AF4D956263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */, + 9AF4D938263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */, 9A878AE126186897000B9362 /* BootOptions.cpp in Sources */, 9A878AEA26186897000B9362 /* gma.cpp in Sources */, + 9A2754E926396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */, + 9A2754B6263802230095D456 /* ConfigPlistClass.cpp in Sources */, 9A878C7F26186898000B9362 /* XStringArray.cpp in Sources */, 9A8789A026186897000B9362 /* strncmp_test.cpp in Sources */, 9A878BBC26186898000B9362 /* XIcon.cpp in Sources */, @@ -2659,11 +3023,13 @@ 9A878C1626186898000B9362 /* securemenu.cpp in Sources */, 9A878C9A26186898000B9362 /* XRBuffer.cpp in Sources */, 9A8789AF26186897000B9362 /* XToolsCommon_test.cpp in Sources */, + 9A27548F263802230095D456 /* Config_GUI.cpp in Sources */, 9A878A0C26186897000B9362 /* TagData.cpp in Sources */, 9A878B0226186897000B9362 /* StartupSound.cpp in Sources */, 9A878AD226186897000B9362 /* LegacyBiosThunk.cpp in Sources */, 9A878C0426186898000B9362 /* common.cpp in Sources */, 9A878BA726186898000B9362 /* FloatLib.cpp in Sources */, + 9AF4D93B263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */, 9A8788F826186897000B9362 /* wchar.cpp in Sources */, 9A87897C26186897000B9362 /* MacOsVersion_test.cpp in Sources */, 9A87898226186897000B9362 /* printlib-test.cpp in Sources */, @@ -2679,6 +3045,7 @@ 9A878A3926186897000B9362 /* TagString8.cpp in Sources */, 9A878A7526186897000B9362 /* AcpiPatcher.cpp in Sources */, 9A878AF326186897000B9362 /* hda.cpp in Sources */, + 9A27549B263802230095D456 /* Config_Quirks.cpp in Sources */, 9A878AE726186897000B9362 /* kernel_patcher.cpp in Sources */, 9A87897F26186897000B9362 /* strcmp_test.cpp in Sources */, 9A878A0F26186897000B9362 /* TagDict.cpp in Sources */, @@ -2692,7 +3059,9 @@ 9A87896126186897000B9362 /* printf_lite-test.cpp in Sources */, 9A87892226186897000B9362 /* BasicIO.cpp in Sources */, 9A87893726186897000B9362 /* operatorNewDelete.cpp in Sources */, + 9A2754D7263802230095D456 /* SMBIOSPlist.cpp in Sources */, 9A878A4226186897000B9362 /* APFS.cpp in Sources */, + 9A2754CB263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */, 9A878ACF26186897000B9362 /* Injectors.cpp in Sources */, 9A878B3E26186897000B9362 /* KextList.cpp in Sources */, ); @@ -2714,7 +3083,10 @@ 9A878A2826186897000B9362 /* TagBool.cpp in Sources */, 9A878C3E26186898000B9362 /* tool.cpp in Sources */, 9A878C5C26186898000B9362 /* REFIT_MENU_SCREEN.cpp in Sources */, + 9A2754BD263802230095D456 /* Config_ACPI.cpp in Sources */, 9A87897726186897000B9362 /* plist_tests.cpp in Sources */, + 9A27546C263801930095D456 /* Self.cpp in Sources */, + 9AF4D972263014C600487D15 /* Volume.cpp in Sources */, 9A878A5226186897000B9362 /* LegacyBoot.cpp in Sources */, 9A878C6B26186898000B9362 /* lib.cpp in Sources */, 9A878AF726186897000B9362 /* spd.cpp in Sources */, @@ -2727,24 +3099,26 @@ 9A878B8426186898000B9362 /* image.cpp in Sources */, 9A878BC926186898000B9362 /* libscreen.cpp in Sources */, 9A878B5426186897000B9362 /* Volumes.cpp in Sources */, - 9A878AEE26186897000B9362 /* Net.cpp in Sources */, 9A878A0426186897000B9362 /* TagArray.cpp in Sources */, 9A878A5826186897000B9362 /* HdaCodecDump.cpp in Sources */, 9A878CA126186898000B9362 /* XBuffer.cpp in Sources */, 9A878AFD26186897000B9362 /* platformdata.cpp in Sources */, + 9AF4D94E263004E200487D15 /* XmlLiteArrayTypes.cpp in Sources */, 9A878B2D26186897000B9362 /* Events.cpp in Sources */, 9A878A8526186897000B9362 /* AmlGenerator.cpp in Sources */, 9A878ADF26186897000B9362 /* MacOsVersion.cpp in Sources */, 9A878C6226186898000B9362 /* icns.cpp in Sources */, 9A878C5026186898000B9362 /* menu_items.cpp in Sources */, 9A878BB426186898000B9362 /* load_icns.cpp in Sources */, + 9A2754C9263802230095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A8789BC26186897000B9362 /* find_replace_mask_OC_tests.cpp in Sources */, 9A8788ED26186897000B9362 /* stdio.cpp in Sources */, 9A878C6526186898000B9362 /* screen.cpp in Sources */, - 9A878B0F26186897000B9362 /* DevicePath.cpp in Sources */, 9A87899E26186897000B9362 /* XArray_tests.cpp in Sources */, + 9A275466263801930095D456 /* ConfigManager.cpp in Sources */, 9A878A1626186897000B9362 /* TagDate.cpp in Sources */, 9A87892026186897000B9362 /* BootLog.cpp in Sources */, + 9AF4D945263004E200487D15 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878B8A26186898000B9362 /* text.cpp in Sources */, 9A878A9D26186897000B9362 /* Edid.cpp in Sources */, 9A878B7226186897000B9362 /* BmLib.cpp in Sources */, @@ -2764,7 +3138,9 @@ 9A878AA626186897000B9362 /* Console.cpp in Sources */, 9A878AB526186897000B9362 /* b64cdecode.cpp in Sources */, 9A878B6926186897000B9362 /* card_vlist.cpp in Sources */, + 9AF4D954263004E200487D15 /* XmlLiteParser.cpp in Sources */, 9A878C3526186898000B9362 /* bootscreen.cpp in Sources */, + 9A27554A2639DF1C0095D456 /* xml_lite-test.cpp in Sources */, 9A878C0826186898000B9362 /* legacy.cpp in Sources */, 9A878B5726186897000B9362 /* FixBiosDsdt.cpp in Sources */, 9A878A0726186897000B9362 /* base64.cpp in Sources */, @@ -2775,22 +3151,25 @@ 9A87898C26186897000B9362 /* find_replace_mask_Clover_tests.cpp in Sources */, 9A8788F326186897000B9362 /* string.cpp in Sources */, 9A878AAF26186897000B9362 /* DataHub.cpp in Sources */, - 9A878A8826186897000B9362 /* SelfOem.cpp in Sources */, 9A878B4826186897000B9362 /* cpu.cpp in Sources */, 9A87892C26186897000B9362 /* pure_virtual.cpp in Sources */, 9A878B3C26186897000B9362 /* smbios.cpp in Sources */, - 9A878B6626186897000B9362 /* Self.cpp in Sources */, 9A878C1A26186898000B9362 /* securevars.cpp in Sources */, 9A878BB726186898000B9362 /* XPointer.cpp in Sources */, 9A87892926186897000B9362 /* globals_dtor.cpp in Sources */, 9A87894A26186897000B9362 /* global_test.cpp in Sources */, + 9A275463263801930095D456 /* SelfOem.cpp in Sources */, 9A878A7926186897000B9362 /* StateGenerator.cpp in Sources */, 9A878C6826186898000B9362 /* menu.cpp in Sources */, 9A878BCF26186898000B9362 /* XImage.cpp in Sources */, 9A87895626186897000B9362 /* XBuffer_tests.cpp in Sources */, 9A878BAB26186898000B9362 /* nanosvgrast.cpp in Sources */, + 9AF4D957263004E200487D15 /* XmlLiteDictTypes.cpp in Sources */, + 9AF4D939263004E200487D15 /* XmlLiteCompositeTypes.cpp in Sources */, 9A878AE226186897000B9362 /* BootOptions.cpp in Sources */, 9A878AEB26186897000B9362 /* gma.cpp in Sources */, + 9A2754EA26396F2B0095D456 /* SmbiosFillPatchingValues.cpp in Sources */, + 9A2754B7263802230095D456 /* ConfigPlistClass.cpp in Sources */, 9A878C8026186898000B9362 /* XStringArray.cpp in Sources */, 9A8789A126186897000B9362 /* strncmp_test.cpp in Sources */, 9A878BBD26186898000B9362 /* XIcon.cpp in Sources */, @@ -2803,11 +3182,13 @@ 9A878C1726186898000B9362 /* securemenu.cpp in Sources */, 9A878C9B26186898000B9362 /* XRBuffer.cpp in Sources */, 9A8789B026186897000B9362 /* XToolsCommon_test.cpp in Sources */, + 9A275490263802230095D456 /* Config_GUI.cpp in Sources */, 9A878A0D26186897000B9362 /* TagData.cpp in Sources */, 9A878B0326186897000B9362 /* StartupSound.cpp in Sources */, 9A878AD326186897000B9362 /* LegacyBiosThunk.cpp in Sources */, 9A878C0526186898000B9362 /* common.cpp in Sources */, 9A878BA826186898000B9362 /* FloatLib.cpp in Sources */, + 9AF4D93C263004E200487D15 /* XmlLiteUnionTypes.cpp in Sources */, 9A8788F926186897000B9362 /* wchar.cpp in Sources */, 9A87897D26186897000B9362 /* MacOsVersion_test.cpp in Sources */, 9A87898326186897000B9362 /* printlib-test.cpp in Sources */, @@ -2823,6 +3204,7 @@ 9A878A3A26186897000B9362 /* TagString8.cpp in Sources */, 9A878A7626186897000B9362 /* AcpiPatcher.cpp in Sources */, 9A878AF426186897000B9362 /* hda.cpp in Sources */, + 9A27549C263802230095D456 /* Config_Quirks.cpp in Sources */, 9A878AE826186897000B9362 /* kernel_patcher.cpp in Sources */, 9A87898026186897000B9362 /* strcmp_test.cpp in Sources */, 9A878A1026186897000B9362 /* TagDict.cpp in Sources */, @@ -2836,7 +3218,9 @@ 9A87896226186897000B9362 /* printf_lite-test.cpp in Sources */, 9A87892326186897000B9362 /* BasicIO.cpp in Sources */, 9A87893826186897000B9362 /* operatorNewDelete.cpp in Sources */, + 9A2754D8263802230095D456 /* SMBIOSPlist.cpp in Sources */, 9A878A4326186897000B9362 /* APFS.cpp in Sources */, + 9A2754CC263802230095D456 /* Config_ACPI_DSDT.cpp in Sources */, 9A878AD026186897000B9362 /* Injectors.cpp in Sources */, 9A878B3F26186897000B9362 /* KextList.cpp in Sources */, ); @@ -2937,6 +3321,7 @@ "-Wmismatched-tags", "-Wimplicit-function-declaration", "-Weffc++", + "-Wunused-local-typedefs", ); SUPPORTED_PLATFORMS = macosx; USE_HEADERMAP = NO; @@ -3028,6 +3413,7 @@ "-Wmismatched-tags", "-Wimplicit-function-declaration", "-Weffc++", + "-Wunused-local-typedefs", ); SUPPORTED_PLATFORMS = macosx; USE_HEADERMAP = NO; diff --git a/Xcode/CloverX64TestNewParser/.cproject b/Xcode/CloverX64TestNewParser/.cproject index bb1d01954..09bda29c1 100644 --- a/Xcode/CloverX64TestNewParser/.cproject +++ b/Xcode/CloverX64TestNewParser/.cproject @@ -5,7 +5,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -215,13 +215,11 @@ - + - + - - - + @@ -237,7 +235,7 @@ - + @@ -273,13 +271,13 @@ - + - @@ -326,12 +326,14 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -499,12 +729,22 @@ + + + + + + + + + + @@ -523,48 +763,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverX64TestNewParser/.project b/Xcode/CloverX64TestNewParser/.project index 98d3d5b50..33ae63399 100644 --- a/Xcode/CloverX64TestNewParser/.project +++ b/Xcode/CloverX64TestNewParser/.project @@ -31,24 +31,24 @@ PARENT-2-PROJECT_LOC/Library/MemLogLibDefault - Posix + OpenCorePkg 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/Platform/Posix + PARENT-2-PROJECT_LOC/OpenCorePkg - cpp_foundation + PosixCompilation 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_foundation - - - cpp_unit_test - 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_unit_test + PARENT-2-PROJECT_LOC/PosixCompilation cpp_util 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_util + /JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--master.3/rEFIt_UEFI/cpp_util + + + rEFIt_UEFI + 2 + PARENT-2-PROJECT_LOC/rEFIt_UEFI diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-as b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-as new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-as @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-g++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-g++ new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-g++ @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-ar b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-ar new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-ar @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-path b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-path new file mode 100755 index 000000000..072c2af1e --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-gcc-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path=/Users/jief/local_brew/local_brew/Homebrew +gcc_prefix=x86_64-apple-darwin18- +gcc_suffix=-10 +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-ld b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-ld new file mode 100755 index 000000000..1e70e2c96 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-ld @@ -0,0 +1,38 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo $(pwd) +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path g++ +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +liblist1=() +[ -f "$ps_dir"/all-all-all-liblist ] && liblist1=( $("$ps_dir"/all-all-all-liblist) ) + +liblist2=() +[ -f "$ps_dir"/"$prefix"-liblist ] && liblist2=( $("$ps_dir"/"$prefix"-liblist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) "${liblist1[@]}" "${liblist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-path b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-path new file mode 100755 index 000000000..072c2af1e --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc102-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path=/Users/jief/local_brew/local_brew/Homebrew +gcc_prefix=x86_64-apple-darwin18- +gcc_suffix=-10 +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation/gcc92-ld b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc92-ld new file mode 100755 index 000000000..fe1642b4b --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation/gcc92-ld @@ -0,0 +1,38 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path g++ +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +liblist1=() +[ -f "$ps_dir"/all-all-all-liblist ] && liblist1=( $("$ps_dir"/all-all-all-liblist) ) + +liblist2=() +[ -f "$ps_dir"/"$prefix"-liblist ] && liblist2=( $("$ps_dir"/"$prefix"-liblist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) "${liblist1[@]}" "${liblist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-includelist b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-includelist index 20c7435c8..00f0c05a1 100755 --- a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-includelist +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-includelist @@ -4,7 +4,22 @@ prefix=$1 echo " -../src +../../../PosixCompilation/UefiMock +../../../PosixCompilation/CloverMock/Include +../../../Include +../../../IntelFrameworkPkg/Include +../../../UefiCpuPkg/Include +../../../OpenCorePkg/Include/Apple +../../../OpenCorePkg/Include/Intel +../../../OpenCorePkg/Include/Acidanthera +../../../OpenCorePkg +../../../MdePkg/Include +../../../MdePkg/Include/X64 +../../../MdePkg/Include/Register/Intel +../../../MdeModulePkg/Include +../../../rEFIT_UEFI/PlatformPOSIX +../../../rEFIT_UEFI/PlatformPOSIX/include +../../../rEFIT_UEFI/include " | awk '$0!=""{ printf " -I'"${prefix}"'%s", $0; }' diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-liblist b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-liblist new file mode 100755 index 000000000..f538562d4 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-liblist @@ -0,0 +1,7 @@ +#echo " +# +#foo +# +#" | awk '$0!=""{ printf " -l%s", $0; }' + +find ../../../PosixCompilation/DEBUG_Libs -name "*.lib" | awk '$0!=""{ printf " %s", $0; }' diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-macrolist b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-macrolist index 87b306cfa..64c7690d8 100755 --- a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-macrolist +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/all-all-all-macrolist @@ -1,5 +1,15 @@ echo " +UNIT_TESTS +UNIT_TESTS_MACOS +JCONST=const +___NOT___ENABLE_SECURE_BOOT +_UINTPTR_T " | awk '$0!=""{ printf " -D%s", $0; }' +#sprintf=__sprintf_is_disabled__ +#wcscmp=__wcsncmp_is_disabled__ +#wcslen=wcslen_fixed +#wcsncmp=wcsncmp_fixed +#wcsstr=wcsstr_fixed diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/clang-c-c++flags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/clang-c-c++flags index 39eacc5c8..f24aa4703 100755 --- a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/clang-c-c++flags +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/clang-c-c++flags @@ -2,9 +2,11 @@ SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` -echo -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin \ - -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers \ - -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang \ - -D NO_MSABI_VA_FUNCS -fsigned-char -fno-omit-frame-pointer -fno-unwind-tables -Wno-msvc-include \ +echo -include Platform.h -Wno-incompatible-ms-struct + +#echo -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin \ +# -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers \ +# -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang \ +# -D NO_MSABI_VA_FUNCS -fsigned-char -fno-omit-frame-pointer -fno-unwind-tables -Wno-msvc-include \ # -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-label diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-c-c++flags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-c-c++flags new file mode 100755 index 000000000..59fed28db --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-c-c++flags @@ -0,0 +1,7 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -include Platform.h -Wignored-qualifiers -Wreorder -fshort-wchar + + diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-g++flags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-g++flags new file mode 100755 index 000000000..f6e8f0a18 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-g++flags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c++2a -fno-rtti -Weffc++ diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-gccflags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-gccflags new file mode 100755 index 000000000..9a64f95ad --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-gccflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c11 diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-ldflags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-ldflags new file mode 100755 index 000000000..317fffc76 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-ldflags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo + diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-slink b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-slink new file mode 100755 index 000000000..498aa3de5 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc102-slink @@ -0,0 +1,106 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#set -x + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +echo prefix=$prefix + + + +#parameter 1 +dsc_file="$1" && shift # path of the dsc file +#echo dsc_file=$dsc_file + +#parameter 2 +component="$1" && shift # path to .inf under edk2 directory, see components section in dsc file. Ie RefindPkg/refind/refind.inf +#echo component=$component + +#parameter 3 +edk2config="$1" && shift # configuration name of edk2 build script (ie DEBUG_GCC49) +#echo edk2config=$edk2config + +#parameter 4 +libname="$1" && shift # lib name generated by eclipse (use ${BuildArtifactFilePrefix}${BuildArtifactFileName} ) +#echo libname=$libname + +#parameter 5 +edk2prefix="$1" && shift # path "$edk2prefix" to edk2 directory +#echo edk2prefix=$edk2prefix + + +#computed variables +component_path="$(dirname "$component")/$(basename "$component" .inf)" +#echo component_path=$component_path + +edk2project="$("$edk2prefix"/../../../cmd_line_tools/get_unique_property PLATFORM_NAME "$dsc_file")" +#echo edk2project=$edk2project + +edk2libname="$("$edk2prefix"/../../../cmd_line_tools/get_unique_property BASE_NAME "$edk2prefix"/"$component").lib" +#echo edk2libname="$edk2libname" + +outputname="${libname%.*}" # output name +#echo outputname="$outputname" + + + + +[[ -f ./"$outputname".dll ]] && rm -f ./"$outputname".dll +[[ -f ./"$outputname".pecoff ]] && rm -f ./"$outputname".pecoff +[[ -f ./"$outputname".efi ]] && rm -f ./"$outputname".efi +[[ -f ./BOOTX64.efi ]] && rm -f ./BOOTX64.efi + +awk '!/'"$edk2libname"'/' "$edk2prefix"/Build/"$edk2project"/"$edk2config"/X64/"$component_path"/OUTPUT/static_library_files.lst > "$outputname"_file_list.lst + +source "$SCRIPT_DIR"/../compilation/"$prefix"-path "gcc" + +"$bin_path" \ + -o "$outputname".dll -nostdlib -Wl,-n,-q,--gc-sections,-z,common-page-size=0x40,--defsym=PECOFF_HEADER_SIZE=0x240 \ + -Wl,--script="$edk2prefix"/BaseTools/Scripts/GccBase.lds,--entry,_ModuleEntryPoint,-u,_ModuleEntryPoint \ + -Wl,-Map,"$outputname".map,-melf_x86_64,--oformat=elf64-x86-64,-pie \ + -g3 -fshort-wchar -fno-builtin -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-common \ + -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address \ + -Wl,--start-group,@"$outputname"_file_list.lst,"$edk2prefix"/Build/"$edk2project"/"$edk2config"/X64/"$component_path"/OUTPUT/AutoGen.obj,"$libname" -Wl,--end-group \ + + +set -x + +if [[ $? == 0 ]] +then + cp -f "$outputname".dll "$outputname".debug + + source "$SCRIPT_DIR"/../compilation/"$prefix"-path "objcopy" + +#[[ $? == 0 ]] && "$bin_path" --strip-unneeded -R .eh_frame "$outputname".dll + "$bin_path" "$outputname".dll + +# genfw_path="/JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--master.2/BaseTools/Source/C/GenFw/DerivedData/GenFw/Build/Products/Debug/GenFw" + genfw_path="$edk2prefix"/BaseTools/Source/C/bin/GenFw + + [[ $? == 0 ]] && "$genfw_path" -e UEFI_APPLICATION -o "$outputname".efi "$outputname".dll + + build_id="$(grep -aEo "CloverBuildIdGrepTag: [^[:cntrl:]]*" < ./"$outputname".efi | sed "s/CloverBuildIdGrepTag: //")" + [[ $? == 0 ]] && cp ./"$outputname".efi "$outputname"-"$build_id".efi + [[ $? == 0 ]] && zip ./"$outputname"-"$build_id".zip ./"$outputname"-"$build_id".efi + +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/Matgen84/EFI_github/CLOVER/CloverX64.efi" +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/mifjpn/EFI_github/CLOVER/CloverX64.efi" +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/iCanaro/EFI_github/CLOVER/CloverX64.efi" + + [[ $? == 0 ]] && echo link successful +else + : +fi + + diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-c-c++flags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-c-c++flags index 45219f1b8..df8dd8984 100755 --- a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-c-c++flags +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-c-c++flags @@ -2,5 +2,5 @@ SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` -echo -g -fshort-wchar +echo -include Platform.h -Wignored-qualifiers -Wreorder diff --git a/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-ldflags b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-ldflags new file mode 100755 index 000000000..317fffc76 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/.settings/compilation_project_specific/gcc92-ldflags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo + diff --git a/Xcode/CloverX64TestNewParser/.settings/language.settings.xml b/Xcode/CloverX64TestNewParser/.settings/language.settings.xml index 283ea0745..17a102b26 100644 --- a/Xcode/CloverX64TestNewParser/.settings/language.settings.xml +++ b/Xcode/CloverX64TestNewParser/.settings/language.settings.xml @@ -1,7 +1,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -33,7 +33,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.codan.core.prefs b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.codan.core.prefs index 067d6fd2b..06e41bd06 100644 --- a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.codan.core.prefs +++ b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.codan.core.prefs @@ -3,6 +3,8 @@ org.eclipse.cdt.codan.checkers.errnoreturn=Warning org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false} org.eclipse.cdt.codan.checkers.errreturnvalue=Error org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"} +org.eclipse.cdt.codan.checkers.localvarreturn=-Warning +org.eclipse.cdt.codan.checkers.localvarreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Returning the address of a local variable\\")"} org.eclipse.cdt.codan.checkers.nocommentinside=-Error org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"} org.eclipse.cdt.codan.checkers.nolinecomment=-Error @@ -17,6 +19,10 @@ org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"} org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"} +org.eclipse.cdt.codan.internal.checkers.BlacklistProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.BlacklistProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function or method is blacklisted\\")",blacklist\=>()} +org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.CStyleCastProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"C-Style cast instead of C++ cast\\")",checkMacro\=>true} org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false} org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning @@ -25,22 +31,40 @@ org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"} org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true} +org.eclipse.cdt.codan.internal.checkers.CopyrightProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.CopyrightProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Lack of copyright information\\")",regex\=>".*Copyright.*"} org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"} org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.FloatCompareProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Direct float comparison\\")"} org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.GotoStatementProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Goto statement used\\")"} org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"} org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"} org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"} +org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MagicNumberProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Avoid magic numbers\\")",checkArray\=>true,checkOperatorParen\=>true,exceptions\=>(1,0,-1,2,1.0,0.0,-1.0)} org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"} org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.MissCaseProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissCaseProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing cases in switch\\")"} +org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissDefaultProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing default in switch\\")",defaultWithAllEnums\=>false} +org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing reference return value in assignment operator\\")"} +org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MissSelfCheckProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Missing self check in assignment operator\\")"} +org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.MultipleDeclarationsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Multiple variable declaration\\")"} org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()} org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning @@ -55,12 +79,18 @@ org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"} org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"} +org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.ShallowCopyProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Miss copy constructor or assignment operator\\")",onlynew\=>false} org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()} +org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.StaticVariableInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Static variable in header file\\")"} org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false} org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false} +org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.SymbolShadowingProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol shadowing\\")",paramFuncParameters\=>true} org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"} org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning @@ -69,5 +99,11 @@ org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true} org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")} +org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem=-Warning +org.eclipse.cdt.codan.internal.checkers.UsingInHeaderProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Using directive in header\\")"} org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"} +org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem=-Error +org.eclipse.cdt.codan.internal.checkers.VirtualMethodCallProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Virtual method call in constructor/destructor\\")"} +org.eclipse.cdt.qt.core.qtproblem=Warning +org.eclipse.cdt.qt.core.qtproblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>true,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>null} diff --git a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.core.prefs b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.core.prefs index e6c77dd01..a5d1ce984 100644 --- a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.core.prefs +++ b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.core.prefs @@ -1,3 +1,8 @@ +doxygen/doxygen_new_line_after_brief=true +doxygen/doxygen_use_brief_tag=false +doxygen/doxygen_use_javadoc_tags=true +doxygen/doxygen_use_pre_tag=false +doxygen/doxygen_use_structural_commands=false eclipse.preferences.version=1 org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=16 org.eclipse.cdt.core.formatter.alignment_for_assignment=16 diff --git a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.managedbuilder.core.prefs index 5342e06d1..fdd4363d3 100644 --- a/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ b/Xcode/CloverX64TestNewParser/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -1,4 +1,12 @@ eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/CPATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/CPLUS_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/CPLUS_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/C_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/appendContributed=true environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/delimiter=\: environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/operation=remove environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPLUS_INCLUDE_PATH/delimiter=\: @@ -15,6 +23,10 @@ environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/C_INCLUDE_PATH/operation=remove environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/append=true environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/LIBRARY_PATH/delimiter=\: +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1974969798/appendContributed=true environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/delimiter=\: environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/operation=remove environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/append=true diff --git a/Xcode/CloverX64TestNewParser/CloverMock/Include/printf_lite-conf.h b/Xcode/CloverX64TestNewParser/CloverMock/Include/printf_lite-conf.h deleted file mode 100755 index 822fd73ca..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/Include/printf_lite-conf.h +++ /dev/null @@ -1,42 +0,0 @@ -// -// printf_lite.hpp -// -// Created by jief the 04 Apr 2019. -// Imported in CLover the 24 Feb 2020 -// -#ifndef __PRINTF_LITE_CONF_H__ -#define __PRINTF_LITE_CONF_H__ - -#include -#include // for size_t -#include -#include - -#ifndef __cplusplus - #ifdef _MSC_VER - typedef uint16_t wchar_t; - #endif - typedef uint32_t char32_t; - typedef uint16_t char16_t; -#endif - -#ifdef _MSC_VER -# define __attribute__(x) -#endif - -#ifdef DEBUG -#define DEFINE_SECTIONS 0 -#endif - -#define PRINTF_LITE_DEFINE_PRINTF_SPRINTF 1 - -#define PRINTF_LITE_BUF_SIZE 255 // not more than 255 -#define PRINTF_LITE_TIMESTAMP_SUPPORT 1 -#define PRINTF_LITE_TIMESTAMP_CUSTOM_FUNCTION 1 -#define PRINTF_EMIT_CR_SUPPORT 0 - -#define PRINTF_LITE_REPLACE_STANDARD_FUNCTION 1 - - - -#endif // __PRINTF_LITE_CONF_H__ diff --git a/Xcode/CloverX64TestNewParser/CloverMock/Library/MemLogLibDefault/MemLogLib.c b/Xcode/CloverX64TestNewParser/CloverMock/Library/MemLogLibDefault/MemLogLib.c deleted file mode 100644 index febafa489..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/Library/MemLogLibDefault/MemLogLib.c +++ /dev/null @@ -1,207 +0,0 @@ -/** @file - Default instance of MemLogLib library for simple log services to memory buffer. -**/ - -#include -#include - -CHAR8* -GetTiming(VOID) -{ - return ""; -} - - - -/** - Inits mem log. - - @retval EFI_SUCCESS The constructor always returns EFI_SUCCESS. - -**/ -EFI_STATUS -EFIAPI -MemLogInit ( - VOID - ) -{ - return EFI_SUCCESS; -} - -/** - Prints a log message to memory buffer. - - @param Timing TRUE to prepend timing to log. - @param DebugMode DebugMode will be passed to Callback function if it is set. - @param Format The format string for the debug message to print. - @param Marker VA_LIST with variable arguments for Format. - -**/ -VOID -EFIAPI -MemLogVA ( - IN CONST BOOLEAN Timing, - IN CONST INTN DebugMode, - IN CONST CHAR8 *Format, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} - -/** - Prints a log to message memory buffer. - - If Format is NULL, then does nothing. - - @param Timing TRUE to prepend timing to log. - @param DebugMode DebugMode will be passed to Callback function if it is set. - @param Format The format string for the debug message to print. - @param ... The variable argument list whose contents are accessed - based on the format string specified by Format. - - **/ -VOID -EFIAPI -MemLog ( - IN CONST BOOLEAN Timing, - IN CONST INTN DebugMode, - IN CONST CHAR8 *Format, - ... - ) -{ - panic("not yet"); -} - - - -/** - Returns pointer to MemLog buffer. - **/ -CHAR8* -EFIAPI -GetMemLogBuffer ( - VOID - ) -{ - panic("not yet"); -} - - - -/** - Returns the length of log (number of chars written) in mem buffer. - **/ -UINTN -EFIAPI -GetMemLogLen ( - VOID - ) -{ - panic("not yet"); -} - - -/** - Sets callback that will be called when message is added to mem log. - **/ -VOID -EFIAPI -SetMemLogCallback ( - MEM_LOG_CALLBACK Callback - ) -{ - panic("not yet"); -} - - -/** - Sets callback that will be called when message is added to mem log. - **/ -MEM_LOG_CALLBACK -EFIAPI -GetMemLogCallback () -{ - panic("not yet"); -} - - -/** - Returns TSC ticks per second. - **/ -UINT64 -EFIAPI -GetMemLogTscTicksPerSecond (VOID) -{ - panic("not yet"); -} - - - -// Microsoft wants _fltused -#ifdef _MSC_VER -#ifdef __cplusplus -extern "C" { -#endif -int _fltused=0; // it should be a single underscore since the double one is the mangled name -#ifdef __cplusplus -} -#endif -#endif - -//static int printfNewline = 1; -//static void transmitS8Printf(const char* buf, unsigned int nbchar, void* context) -//{ -//} - -const char* printf_lite_get_timestamp() -{ - return ""; -} - -/** - Prints a log message to memory buffer. - - @param Timing TRUE to prepend timing to log. - @param DebugMode DebugMode will be passed to Callback function if it is set. - @param Format The format string for the debug message to print. - @param Marker VA_LIST with variable arguments for Format. - -**/ -VOID -EFIAPI -MemLogfVA ( - IN CONST BOOLEAN Timing, - IN CONST INTN DebugMode, - IN CONST CHAR8 *Format, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} - - -/** - Prints a log to message memory buffer. - - If Format is NULL, then does nothing. - - @param Timing TRUE to prepend timing to log. - @param DebugMode DebugMode will be passed to Callback function if it is set. - @param Format The format string for the debug message to print. - @param ... The variable argument list whose contents are accessed - based on the format string specified by Format. - - **/ -VOID -EFIAPI -MemLogf ( - IN CONST BOOLEAN Timing, - IN CONST INTN DebugMode, - IN CONST CHAR8 *Format, - ... - ) -{ - panic("not yet"); -} - diff --git a/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.c b/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.c deleted file mode 100644 index 2a63c2cfa..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.c +++ /dev/null @@ -1,216 +0,0 @@ -// -// Globals.c -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include -#include - -/* - * Get these guid from AutoGen.h - */ -#define GLOBAL_REMOVE_IF_UNREFERENCED - - -// Guids -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 gEfiAcpi20TableGuid = { 0x8868E871, 0xE4F1, 0x11D3, { 0xBC, 0x22, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAppleBootGuid = {0x7C436110, 0xAB2A, 0x4BBB, {0xA8, 0x80, 0xFE, 0x41, 0x99, 0x5C, 0x9F, 0x82}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAppleNvramGuid = {0x4D1EDE05, 0x38C7, 0x4A6A, {0x9C, 0xC6, 0x4B, 0xCC, 0xA8, 0xB3, 0x8C, 0x14}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAppleVendorGuid = {0xAC39C713, 0x7E50, 0x423D, {0x88, 0x9D, 0x27, 0x8F, 0xCC, 0x34, 0x22, 0xB6}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleCoreStorageVariableGuid = { 0x8D63D4FE, 0xBD3C, 0x4AAD, { 0x88, 0x1D, 0x86, 0xFD, 0x97, 0x4B, 0xC1, 0xDF }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleTamperResistantBootVariableGuid = { 0x5D62B28D, 0x6ED2, 0x40B4, { 0xA5, 0x60, 0x6C, 0xD7, 0x9B, 0x93, 0xD3, 0x66 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleWirelessNetworkVariableGuid = { 0x36C28AB5, 0x6566, 0x4C50, { 0x9E, 0xBD, 0xCB, 0xB9, 0x20, 0xF8, 0x38, 0x43 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gApplePersonalizationVariableGuid = { 0xFA4CE28D, 0xB62F, 0x4C99, { 0x9C, 0xC3, 0x68, 0x15, 0x68, 0x6E, 0x30, 0xF9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleNetbootVariableGuid = { 0x37BCBEC7, 0xA645, 0x4215, { 0x97, 0x9E, 0xF5, 0xAE, 0x4D, 0x11, 0x5F, 0x13 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleSecureBootVariableGuid = { 0x94B73556, 0x2197, 0x4702, { 0x82, 0xA8, 0x3E, 0x13, 0x37, 0xDA, 0xFB, 0xFB }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleTamperResistantBootSecureVariableGuid = { 0xF68DA75E, 0x1B55, 0x4E70, { 0xB4, 0x1B, 0xA7, 0xB7, 0xA5, 0xB7, 0x58, 0xEA }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleTamperResistantBootEfiUserVariableGuid = { 0x4E8023FF, 0xA79A, 0x47D1, { 0xA3, 0x42, 0x75, 0x24, 0xCF, 0xC9, 0x6D, 0xC4 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDxeServicesTableGuid = { 0x05AD34BA, 0x6F02, 0x4214, { 0x95, 0x2E, 0x4D, 0xA0, 0x39, 0x8E, 0x2B, 0xB9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventReadyToBootGuid = { 0x7CE88FB3, 0x4BD7, 0x4679, { 0x87, 0xA8, 0xA8, 0xD8, 0xDE, 0xE5, 0x0D, 0x2B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventVirtualAddressChangeGuid = { 0x13FA7698, 0xC831, 0x49C7, { 0x87, 0xEA, 0x8F, 0x43, 0xFC, 0xC2, 0x51, 0x96 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventExitBootServicesGuid = { 0x27ABF055, 0xB1B8, 0x4C26, { 0x80, 0x48, 0x74, 0x8F, 0x37, 0xBA, 0xA2, 0xDF }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileInfoGuid = { 0x09576E92, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileSystemInfoGuid = { 0x09576E93, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = { 0xDB47D7D3, 0xFE81, 0x11D3, { 0x9A, 0x35, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiGlobalVariableGuid = { 0x8BE4DF61, 0x93CA, 0x11D2, { 0xAA, 0x0D, 0x00, 0xE0, 0x98, 0x03, 0x2B, 0x8C }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPartTypeLegacyMbrGuid = { 0x024DEE41, 0x33E7, 0x11D3, { 0x9D, 0x69, 0x00, 0x08, 0xC7, 0x81, 0xF3, 0x9F }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPartTypeSystemPartGuid = { 0xC12A7328, 0xF81F, 0x11D2, { 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B }}; -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 gEfiSasDevicePathGuid = { 0xd487ddb4, 0x008b, 0x11d9, { 0xaf, 0xdc, 0x00, 0x10, 0x83, 0xff, 0xca, 0x4d }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiImageSecurityDatabaseGuid = { 0xd719b2cb, 0x3d3a, 0x4596, {0xa3, 0xbc, 0xda, 0xd0, 0xe, 0x67, 0x65, 0x6f }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertX509Guid = { 0xa5c059a1, 0x94e4, 0x4aa7, {0x87, 0xb5, 0xab, 0x15, 0x5c, 0x2b, 0xf0, 0x72 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertSha1Guid = { 0x826ca512, 0xcf10, 0x4ac9, {0xb1, 0x87, 0xbe, 0x1, 0x49, 0x66, 0x31, 0xbd }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertSha256Guid = { 0xc1c41626, 0x504c, 0x4092, {0xac, 0xa9, 0x41, 0xf9, 0x36, 0x93, 0x43, 0x28 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertPkcs7Guid = { 0x4aafd29d, 0x68df, 0x49ee, {0x8a, 0xa9, 0x34, 0x7d, 0x37, 0x56, 0x65, 0xa7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertRsa2048Guid = { 0x3c5766e8, 0x269c, 0x4e34, {0xaa, 0x14, 0xed, 0x77, 0x6e, 0x85, 0xb3, 0xb6 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertRsa2048Sha256Guid = { 0xe2b36190, 0x879b, 0x4a3d, {0xad, 0x8d, 0xf2, 0xe7, 0xbb, 0xa3, 0x27, 0x84 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCertTypeRsa2048Sha256Guid = { 0xa7717414, 0xc616, 0x4977, {0x94, 0x20, 0x84, 0x47, 0x12, 0xa7, 0x35, 0xbf }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcVendorVariableGuid = { 0x4D1FDA02, 0x38C7, 0x4A6A, { 0x9C, 0xC6, 0x4B, 0xCC, 0xA8, 0xB3, 0x01, 0x02 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcReadOnlyVariableGuid = { 0xE09B9297, 0x7928, 0x4440, { 0x9A, 0xAB, 0xD1, 0xF8, 0x53, 0x6F, 0xBF, 0x0A }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcWriteOnlyVariableGuid = { 0xF0B9AF8F, 0x2222, 0x4840, { 0x8A, 0x37, 0xEC, 0xF7, 0xCC, 0x8C, 0x12, 0xE1 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleOSLoadedNamedEventGuid = { 0xC5C5DA95, 0x7D5C, 0x45E6, { 0x83, 0x72, 0x89, 0xBD, 0x52, 0x6D, 0xE9, 0x56 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gBootChimeVendorVariableGuid = {0x89D4F995, 0x67E3, 0x4895, {0x8F, 0x18, 0x45, 0x4B, 0x65, 0x1D, 0x92, 0x15}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdePkgTokenSpaceGuid = { 0x914AEBE7, 0x4635, 0x459b, { 0xAA, 0x1C, 0x11, 0xE2, 0x19, 0xB0, 0x3A, 0x10 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVTUTF8Guid = { 0xAD15A0D6, 0x8BEC, 0x4ACF, { 0xA0, 0x73, 0xD0, 0x1D, 0xE7, 0x7E, 0x2D, 0x88 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVT100Guid = { 0xDFA66065, 0xB419, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVT100PlusGuid = { 0x7BAEC70B, 0x57E0, 0x4C76, { 0x8E, 0x87, 0x2F, 0x9E, 0x28, 0x08, 0x83, 0x43 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPcAnsiGuid = { 0xE0C14753, 0xF9BE, 0x11D2, { 0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUartDevicePathGuid = { 0x37499a9d, 0x542f, 0x4c89, { 0xa0, 0x26, 0x35, 0xda, 0x14, 0x20, 0x94, 0xe4 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVirtualDiskGuid = { 0x77AB535A, 0x45FC, 0x624B, {0x55, 0x60, 0xF7, 0xB2, 0x81, 0xD1, 0xF9, 0x6E }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiVirtualCdGuid = { 0x3D5ABD30, 0x4175, 0x87CE, {0x6D, 0x64, 0xD2, 0xAD, 0xE5, 0x23, 0xC4, 0xBB }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPersistentVirtualDiskGuid = { 0x5CEA02C9, 0x4D07, 0x69D3, {0x26, 0x9F ,0x44, 0x96, 0xFB, 0xE0, 0x96, 0xF9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPersistentVirtualCdGuid = { 0x08018188, 0x42CD, 0xBB48, {0x10, 0x0F, 0x53, 0x87, 0xD5, 0x3D, 0xED, 0x3D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMdeModulePkgTokenSpaceGuid = { 0xA1AFF049, 0xFDEB, 0x442a, { 0xB3, 0x20, 0x13, 0xAB, 0x4C, 0xB7, 0x2B, 0xBC }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEventLegacyBootGuid = { 0x2A571201, 0x4966, 0x47F6, { 0x8B, 0x86, 0xF3, 0x1E, 0x41, 0xF3, 0x2F, 0x10 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMemoryAttributesTableGuid = { 0xdcfa911d, 0x26eb, 0x469f, {0xa2, 0x20, 0x38, 0xb7, 0xdc, 0x46, 0x12, 0x20}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOpenCorePkgTokenSpaceGuid = { 0x38D40CB0, 0x7E37, 0x4CAA, { 0x91, 0xD3, 0x00, 0x47, 0x70, 0xA8, 0x73, 0x77 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHobListGuid = { 0x7739F24C, 0x93D7, 0x11D4, { 0x9A, 0x3A, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleEfiCertificateGuid = { 0x45E7BC51, 0x913C, 0x42AC, { 0x96, 0xA2, 0x10, 0x71, 0x2F, 0xFB, 0xEB, 0xA7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleVendorVariableGuid = { 0x4D1EDE05, 0x38C7, 0x4A6A, { 0x9C, 0xC6, 0x4B, 0xCC, 0xA8, 0xB3, 0x8C, 0x14 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiDescriptionGuid = {0x3c699197, 0x093c, 0x4c69, {0xb0, 0x6b, 0x12, 0x8a, 0xe3, 0x48, 0x1d, 0xc9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleApfsPartitionTypeGuid = { 0x7C3457EF, 0x0000, 0x11AA, { 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleApfsContainerInfoGuid = { 0x3533CF0D, 0x685F, 0x5EBF, { 0x8D, 0xC6, 0x73, 0x93, 0x48, 0x5B, 0xAF, 0xA2 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleApfsVolumeInfoGuid = { 0x900C7693, 0x8C14, 0x58BA, { 0xB4, 0x4E, 0x97, 0x45, 0x15, 0xD2, 0x7C, 0x78 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBlessedSystemFileInfoGuid = { 0xCA7E4814, 0x2ADC, 0x4ADD, { 0xAB, 0xFF, 0x73, 0x4E, 0x3C, 0xFE, 0x13, 0xF3 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBlessedSystemFolderInfoGuid = { 0x7BD1F02D, 0x9C2F, 0x4581, { 0xBF, 0x12, 0xD5, 0x4a, 0xBA, 0x0D, 0x98, 0xD6 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBlessedOsxFolderInfoGuid = { 0x893CA450, 0x5F5E, 0x48BA, { 0x85, 0x8F, 0x08, 0xC4, 0x5D, 0x80, 0x23, 0x18 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEndOfDxeEventGroupGuid = { 0x2ce967a, 0xdd7e, 0x4ffc, { 0x9e, 0xe7, 0x81, 0xc, 0xf0, 0x47, 0x8, 0x80 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcCustomSmbiosTableGuid = { 0xEB9D2D35, 0x2D88, 0x11D3, { 0x9A, 0x16, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcCustomSmbios3TableGuid = { 0xF2FD1545, 0x9794, 0x4A2C, { 0x99, 0x2E, 0xE5, 0xBB, 0xCF, 0x20, 0xE3, 0x94 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmMD5Guid = { 0x0AF7C79C, 0x65B5, 0x4319, { 0xB0, 0xAE, 0x44, 0xEC, 0x48, 0x4E, 0x4A, 0xD7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha1Guid = { 0x2AE9D80F, 0x3FB2, 0x4095, { 0xB7, 0xB1, 0xE9, 0x31, 0x57, 0xB9, 0x46, 0xB6 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashAlgorithmSha256Guid = { 0x51AA59DE, 0xFDF2, 0x4EA3, { 0xBC, 0x63, 0x87, 0x5F, 0xB7, 0x84, 0x2E, 0xE9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleImageListGuid = { 0x0E93C52B, 0x4B73, 0x5C32, { 0x86, 0xD5, 0x69, 0x25, 0x0A, 0x0B, 0xA7, 0x23 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleArrowCursorImageGuid = { 0x1A10742F, 0xFA80, 0x4B79, { 0x9D, 0xA6, 0x35, 0x70, 0x58, 0xCC, 0x39, 0x7B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleArrowCursor2xImageGuid = { 0x133D55B5, 0x8852, 0x57AC, { 0xA8, 0x42, 0xF9, 0xEE, 0xBF, 0x84, 0x0C, 0x99 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBootVariableGuid = { 0x7C436110, 0xAB2A, 0x4BBB, { 0xA8, 0x80, 0xFE, 0x41, 0x99, 0x5C, 0x9F, 0x82 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleHfsPartitionTypeGuid = { 0x48465300, 0x0000, 0x11AA, { 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleHfsBootPartitionTypeGuid = { 0x426F6F74, 0x0000, 0x11AA, { 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleLegacyLoadAppFileGuid = { 0x2B0585EB, 0xD8B8, 0x49A9, { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBootPickerFileGuid = { 0xE1628C66, 0x2A2D, 0x4DC5, { 0xBD, 0x41, 0xB2, 0x0F, 0x35, 0x38, 0xAA, 0xF7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gMicrosoftVariableGuid = { 0x77FA9ABD, 0x0359, 0x4D32, { 0xBD, 0x60, 0x28, 0xF4, 0xE7, 0x8F, 0x78, 0x4B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiKeyBoardLayoutGuid = { 0x14982a4f, 0xb0ed, 0x45b8, { 0xa8, 0x11, 0x5a, 0x7a, 0x9b, 0xc2, 0x32, 0xdf }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUsbKeyboardLayoutPackageGuid = { 0xc0f3b43, 0x44de, 0x4907, { 0xb4, 0x78, 0x22, 0x5f, 0x6f, 0x62, 0x89, 0xdc }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gUsbKeyboardLayoutKeyGuid = { 0x3a4d7a7c, 0x18a, 0x4b42, { 0x81, 0xb3, 0xdc, 0x10, 0xe3, 0xb5, 0x91, 0xbd }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleKeyboardPlatformInfoGuid = { 0x51871CB9, 0xE25D, 0x44B4, { 0x96, 0x99, 0x0E, 0xE8, 0x64, 0x4C, 0xED, 0x69 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHdaIoDevicePathGuid = { 0xA9003FEB, 0xD806, 0x41DB, { 0xA4, 0x91, 0x54, 0x05, 0xFE, 0xEF, 0x46, 0xC3 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiProcessorSubClassGuid = { 0x26fdeb7e, 0xb8af, 0x4ccf, { 0xaa, 0x97, 0x02, 0x63, 0x3c, 0xe4, 0x8c, 0xa7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMiscSubClassGuid = { 0x772484B2, 0x7482, 0x4b91, { 0x9f, 0x9a, 0xad, 0x43, 0xf8, 0x1c, 0x58, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gApplePlatformProducerNameGuid = { 0x64517CC8, 0x6561, 0x4051, { 0xB0, 0x3C, 0x59, 0x64, 0xB6, 0x0F, 0x4C, 0x7A }}; -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 gEfiComponentName2ProtocolGuid = { 0x6A7A5CFF, 0xE8D9, 0x4F70, { 0xBA, 0xDA, 0x75, 0xAB, 0x30, 0x25, 0xCE, 0x14 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathToTextProtocolGuid = { 0x8B843E20, 0x8132, 0x4852, { 0x90, 0xCC, 0x55, 0x1A, 0x4E, 0x4A, 0x7F, 0x1C }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleFileSystemProtocolGuid = { 0x964E5B22, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextInProtocolGuid = { 0x387477C1, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextInputExProtocolGuid = {0xdd9e7534, 0x7762, 0x4698, { 0x8c, 0x14, 0xf5, 0x85, 0x17, 0xa6, 0x25, 0xaa } }; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleTextOutProtocolGuid = { 0x387477C2, 0x69C7, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUnicodeCollationProtocolGuid = { 0x1D85CD7F, 0xF43D, 0x11D2, { 0x9A, 0x0C, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUnicodeCollation2ProtocolGuid = {0xa4c751fc, 0x23ae, 0x4c3e, { 0x92, 0xe9, 0x49, 0x64, 0xcf, 0x63, 0xf3, 0x49 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiS3SaveProtocolGuid = { 0x125F2DE1, 0xFB85, 0x440C, { 0xA5, 0x4C, 0x4D, 0x99, 0x35, 0x8A, 0x8D, 0x38 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBlockIoProtocolGuid = { 0x964E5B21, 0x6459, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiCpuArchProtocolGuid = { 0x26BACCB1, 0x6F42, 0x11D4, { 0xBC, 0xE7, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDebugPortProtocolGuid = { 0xEBA4E8D2, 0x3858, 0x41EC, { 0xA2, 0x81, 0x26, 0x47, 0xBA, 0x96, 0x60, 0xD0 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathProtocolGuid = { 0x09576E91, 0x6D3F, 0x11D2, { 0x8E, 0x39, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDiskIoProtocolGuid = { 0xCE345171, 0xBA0B, 0x11D2, { 0x8E, 0x4F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiExtScsiPassThruProtocolGuid = { 0x143b7632, 0xb81b, 0x4cb7, {0xab, 0xd3, 0xb6, 0x25, 0xa5, 0xb9, 0xbf, 0xfe }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFirmwareVolume2ProtocolGuid = { 0x220e73b6, 0x6bdb, 0x4413, { 0x84, 0x5, 0xb9, 0x74, 0xb1, 0x8, 0x61, 0x9a } }; -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 gEfiLegacy8259ProtocolGuid = { 0x38321dba, 0x4fe0, 0x4e17, { 0x8a, 0xec, 0x41, 0x30, 0x55, 0xea, 0xed, 0xc1 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadedImageProtocolGuid = { 0x5B1B31A1, 0x9562, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiOEMBadgingProtocolGuid = { 0x170E13C0, 0xBF1B, 0x4218, { 0x87, 0x1D, 0x2A, 0xBD, 0xC6, 0xF8, 0x87, 0xBC }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPciIoProtocolGuid = { 0x4CF5B200, 0x68B8, 0x4CA5, { 0x9E, 0xEC, 0xB2, 0x3E, 0x3F, 0x50, 0x02, 0x9A }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiScsiIoProtocolGuid = { 0x932F47e6, 0x2362, 0x4002, { 0x80, 0x3E, 0x3C, 0xD5, 0x4B, 0x13, 0x8F, 0x85 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiScsiPassThruProtocolGuid = { 0xA59E8FCF, 0xBDA0, 0x43BB, { 0x90, 0xB1, 0xD3, 0x73, 0x2E, 0xCA, 0xA8, 0x77 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimpleNetworkProtocolGuid = { 0xA19832B9, 0xAC25, 0x11D3, { 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiStatusCodeRuntimeProtocolGuid = { 0xD2B2B828, 0x0826, 0x48A7, { 0xB3, 0xDF, 0x98, 0x3C, 0x00, 0x60, 0x24, 0xF0 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUgaDrawProtocolGuid = { 0x982C298B, 0xF4FA, 0x41CB, { 0xB8, 0x38, 0x77, 0xAA, 0x68, 0x8F, 0xB8, 0x39 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid = { 0xF36FF770, 0xA7E1, 0x42CF, { 0x9E, 0xD2, 0x56, 0xF0, 0xF2, 0x71, 0xF4, 0x4C }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAbsolutePointerProtocolGuid = { 0x8D59D32B, 0xC655, 0x4AE9, { 0x9B, 0x15, 0xF2, 0x59, 0x04, 0x99, 0x2A, 0x43 } }; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAcpiTableProtocolGuid = { 0xFFE06BDD, 0x6107, 0x46A6, { 0x7B, 0xB2, 0x5A, 0x9C, 0x7E, 0xC5, 0x27, 0x5C }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEdidActiveProtocolGuid = { 0xBD8C1056, 0x9F36, 0x44EC, { 0x92, 0xA8, 0xA6, 0x33, 0x7F, 0x81, 0x79, 0x86 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEdidDiscoveredProtocolGuid = { 0x1C0C34F6, 0xD380, 0x41FA, { 0xA0, 0x49, 0x8A, 0xD0, 0x6C, 0x1A, 0x66, 0xAA }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiEdidOverrideProtocolGuid = { 0x48ECB431, 0xFB72, 0x45C0, { 0xA9, 0x22, 0xF4, 0x58, 0xFE, 0x04, 0x0B, 0xD5 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiDatabaseProtocolGuid = {0xef9fc172, 0xa1b2, 0x4693, {0xb3, 0x27, 0x6d, 0x32, 0xfc, 0x41, 0x60, 0x42}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiImageProtocolGuid = {0x31a6406a, 0x6bdf, 0x4e46, {0xb2, 0xa2, 0xeb, 0xaa, 0x89, 0xc4, 0x09, 0x20}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHiiProtocolGuid = { 0xd7ad636e, 0xb997, 0x459b, { 0xbf, 0x3f, 0x88, 0x46, 0x89, 0x79, 0x80, 0xe1 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSimplePointerProtocolGuid = { 0x31878C87, 0x0B75, 0x11D5, { 0x9A, 0x4F, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSmbiosProtocolGuid = {0x3583ff6, 0xcb36, 0x4940, { 0x94, 0x7e, 0xb9, 0xb3, 0x9f, 0x4a, 0xfa, 0xf7}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSecurityArchProtocolGuid = { 0xA46423E3, 0x4617, 0x49F1, { 0xB9, 0xFF, 0xD1, 0xBF, 0xA9, 0x11, 0x58, 0x39 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiSecurity2ArchProtocolGuid = { 0x94ab2f58, 0x1438, 0x4ef1, {0x91, 0x52, 0x18, 0x94, 0x1a, 0x3a, 0x0e, 0x68 } }; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleFramebufferInfoProtocolGuid = { 0xE316E100, 0x0751, 0x4C49, { 0x90, 0x56, 0x48, 0x6C, 0x7E, 0x47, 0x29, 0x03 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiConsoleControlProtocolGuid = { 0xF42F7782, 0x012E, 0x4C12, { 0x99, 0x56, 0x49, 0xF9, 0x43, 0x04, 0xF7, 0x21 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleGraphConfigProtocolGuid = {0x03622D6D, 0x362A, 0x4E47, {0x97, 0x10, 0xC2, 0x38, 0xB2, 0x37, 0x55, 0xC1}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLegacyBiosProtocolGuid = { 0xdb9a1e3d, 0x45cb, 0x4abb, { 0x85, 0x3b, 0xe5, 0x38, 0x7f, 0xdb, 0x2e, 0x2d }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiTimerArchProtocolGuid = { 0x26BACCB3, 0x6F42, 0x11D4, { 0xBC, 0xE7, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleImageCodecProtocolGuid = {0x0DFCE9F6, 0xC4E3, 0x45EE, {0xA0, 0x6A, 0xA8, 0x61, 0x3B, 0x98, 0xA5, 0x07}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleEventProtocolGuid = { 0x33BE0EF1, 0x89C9, 0x4A6D, { 0xBB, 0x9F, 0x69, 0xDC, 0x8D, 0xD5, 0x16, 0xB9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiOSInfoProtocolGuid = { 0xC5C5DA95, 0x7D5C, 0x45E6, { 0xB2, 0xF1, 0x3F, 0xD5, 0x2B, 0xB1, 0x00, 0x77 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiKeyboardInfoProtocolGuid = { 0xE82A0A1E, 0x0E4D, 0x45AC, { 0xA6, 0xDC, 0x2A, 0xE0, 0x58, 0x00, 0xD3, 0x11 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gFSInjectProtocolGuid = {0x3F048284, 0x6D4C, 0x11E1, {0xA4, 0xD7, 0x37, 0xE3, 0x48, 0x24, 0x01, 0x9B}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gMsgLogProtocolGuid = {0x511CE018, 0x0018, 0x4002, {0x20, 0x12, 0x17, 0x38, 0x05, 0x01, 0x02, 0x03}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPlatformDriverOverrideProtocolGuid = { 0x6b30c738, 0xa391, 0x11d4, {0x9a, 0x3b, 0x00, 0x90, 0x27, 0x3f, 0xc1, 0x4d } }; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEmuVariableControlProtocolGuid = {0x21F41E73, 0xD214, 0x4FCD, {0x85, 0x50, 0x0D, 0x11, 0x51, 0xCF, 0x8E, 0xFB}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiAudioIoProtocolGuid = { 0xF05B559C, 0x1971, 0x4AF5, { 0xB2, 0xAE, 0xD6, 0x08, 0x08, 0xF7, 0x4F, 0x70 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcQuirksProtocolGuid = {0x511CE020, 0x0020, 0x0714, {0x20, 0x12, 0x17, 0x38, 0x05, 0x01, 0x02, 0x04}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAptioMemoryFixProtocolGuid = {0xC7CBA84E, 0xCC77, 0x461D, {0x9E, 0x3C, 0x6B, 0xE0, 0xCB, 0x79, 0xA7, 0xC1}}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUsbIoProtocolGuid = { 0x2B2F68D6, 0x0CD2, 0x44CF, { 0x8E, 0x8B, 0xBB, 0xA2, 0x0B, 0x1B, 0x5B, 0x75 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFileProtocolGuid = { 0x56EC3091, 0x954C, 0x11D2, { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiFirmwareVolumeProtocolGuid = { 0x389F751F, 0x1838, 0x4388, { 0x83, 0x90, 0xcd, 0x81, 0x54, 0xbd, 0x27, 0xf8 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiBlockIo2ProtocolGuid = { 0xa77b2472, 0xe282, 0x4e9f, {0xa2, 0x45, 0xc2, 0xc0, 0xe2, 0x7b, 0xbc, 0xc1 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDriverBindingProtocolGuid = { 0x18A031AB, 0xB443, 0x4D1A, { 0xA5, 0xC0, 0x0C, 0x09, 0x26, 0x1E, 0x9F, 0x71 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiComponentNameProtocolGuid = { 0x107A772C, 0xD5E1, 0x11D4, { 0x9A, 0x46, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -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 gEfiShellParametersProtocolGuid = { 0x752f3136, 0x4e16, 0x4fdc, {0xa2, 0x2a, 0xe5, 0xf4, 0x68, 0x12, 0xf4, 0xca }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLegacyRegionProtocolGuid = { 0x0fc9013a, 0x0568, 0x4ba9, { 0x9b, 0x7e, 0xc9, 0xc3, 0x90, 0xa6, 0x60, 0x9b }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLegacyRegion2ProtocolGuid = {0x70101eaf, 0x85, 0x440c, {0xb3, 0x56, 0x8e, 0xe3, 0x6f, 0xef, 0x24, 0xf0 } }; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleRtcRamProtocolGuid = { 0xE121EC07, 0x9C42, 0x45EE, { 0xB0, 0xB6, 0xFF, 0xF8, 0xEF, 0x03, 0xC5, 0x21 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiMpServiceProtocolGuid = { 0x3fdda605, 0xa76e, 0x4f46, { 0xad, 0x29, 0x12, 0xf4, 0x53, 0x1b, 0x3d, 0x08 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gFrameworkEfiMpServiceProtocolGuid = { 0xF33261E7, 0x23CB, 0x11D5, { 0xBD, 0x5C, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleRamDiskProtocolGuid = { 0x957932CC, 0x7E8E, 0x433B, { 0x8F, 0x41, 0xD3, 0x91, 0xEA, 0x3C, 0x10, 0xF8 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleDiskImageProtocolGuid = { 0x004B07E8, 0x0B9C, 0x427E, { 0xB0, 0xD4, 0xA4, 0x66, 0xE6, 0xE5, 0x7A, 0x62 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleSecureBootProtocolGuid = { 0x24B73556, 0x2197, 0x4702, { 0x82, 0xA8, 0x3E, 0x13, 0x37, 0xDA, 0xFB, 0xF2 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleImg4VerificationProtocolGuid = { 0x314735F0, 0x26FE, 0x11E8, { 0xA4, 0x70, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleKeyMapDatabaseProtocolGuid = { 0x584B9EBE, 0x80C1, 0x4BD6, { 0x98, 0xB0, 0xA7, 0x78, 0x6E, 0xC2, 0xF2, 0xE2 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleKeyMapAggregatorProtocolGuid = { 0x5B213447, 0x6E73, 0x4901, { 0xA4, 0xF1, 0xB8, 0x64, 0xF3, 0xB7, 0xA1, 0x72 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gApfsEfiBootRecordInfoProtocolGuid = { 0x03B8D751, 0xA02F, 0x4FF8, { 0x9B, 0x1A, 0x55, 0x24, 0xAF, 0xA3, 0x94, 0x5F }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gApfsUnsupportedBdsProtocolGuid = { 0xA196A7CA, 0x14C6, 0x11E7, { 0xB9, 0x06, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPartitionInfoProtocolGuid = { 0x8cf2f62c, 0xbc9b, 0x4821, { 0x80, 0x8d, 0xec, 0x9e, 0xc4, 0x21, 0xa1, 0xa0 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBootPolicyProtocolGuid = { 0x62257758, 0x350C, 0x4D0A, { 0xB0, 0xBD, 0xF6, 0xBE, 0x2E, 0x1E, 0x27, 0x2C }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleSmcIoProtocolGuid = { 0x17407E5A, 0xAF6C, 0x4EE8, { 0x98, 0xA8, 0x00, 0x21, 0x04, 0x53, 0xCD, 0xD9 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiPciRootBridgeIoProtocolGuid = { 0x2F707EBB, 0x4A1A, 0x11D4, { 0x9A, 0x38, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashProtocolGuid = { 0xC5184932, 0xDBA5, 0x46DB, { 0xA5, 0xBA, 0xCC, 0x0B, 0xDA, 0x9C, 0x14, 0x35 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiHashServiceBindingProtocolGuid = { 0x42881c98, 0xa4f3, 0x44b0, { 0xa3, 0x9d, 0xdf, 0xa1, 0x86, 0x67, 0xd8, 0xcd }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDevicePathPropertyDatabaseProtocolGuid = { 0x91BD12FE, 0xF6C3, 0x44FB, { 0xA5, 0xB7, 0x51, 0x22, 0xAB, 0x30, 0x3A, 0xE0 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcFirmwareRuntimeProtocolGuid = { 0x570332E4, 0xFC50, 0x4B21, { 0xAB, 0xE8, 0xAE, 0x72, 0xF0, 0x5B, 0x4F, 0xF7 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcAudioProtocolGuid = { 0x4B228577, 0x6274, 0x4A48, { 0x82, 0xAE, 0x07, 0x13, 0xA1, 0x17, 0x19, 0x87 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleBeepGenProtocolGuid = { 0xC32332DF, 0xFC56, 0x4FE1, { 0x93, 0x58, 0xBA, 0x0D, 0x52, 0x9B, 0x24, 0xCD }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiUserInterfaceThemeProtocolGuid = { 0xD5B0AC65, 0x9A2D, 0x4D2A, { 0xBB, 0xD6, 0xE8, 0x71, 0xA9, 0x5E, 0x04, 0x35 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gApplePlatformInfoDatabaseProtocolGuid = { 0xAC5E4829, 0xA8FD, 0x440B, { 0xAF, 0x33, 0x9F, 0xFE, 0x01, 0x3B, 0x12, 0xD8 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAmiEfiPointerProtocolGuid = { 0x15A10CE7, 0xEAB5, 0x43BF, { 0x90, 0x42, 0x74, 0x43, 0x2E, 0x69, 0x63, 0x77 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAmiEfiKeycodeProtocolGuid = { 0x0ADFB62D, 0xFF74, 0x484C, { 0x89, 0x44, 0xF8, 0x5C, 0x4B, 0xEA, 0x87, 0xA8 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleVOAudioProtocolGuid = { 0xF4CB0B78, 0x243B, 0x11E7, { 0xA5, 0x24, 0xB8, 0xE8, 0x56, 0x2C, 0xBA, 0xFA }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleHighDefinitionAudioProtocolGuid = { 0x3224B169, 0xEC34, 0x46D2, { 0xB7, 0x79, 0xE1, 0xB1, 0x68, 0x7F, 0x52, 0x5F }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcAfterBootCompatProtocolGuid = { 0xC7CBA84E, 0xCC77, 0x461D, { 0x9E, 0x3C, 0x6B, 0xE0, 0xCB, 0x79, 0xA7, 0xC1 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gVMwareMacProtocolGuid = { 0x03F38E56, 0x8231, 0x4469, { 0x94, 0xED, 0x82, 0xAE, 0x53, 0x15, 0x83, 0x4F }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiDataHubProtocolGuid = { 0xAE80D021, 0x618E, 0x11D4, { 0xBC, 0xD7, 0x00, 0x80, 0xC7, 0x3C, 0x88, 0x81 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiLoadFile2ProtocolGuid = { 0x4006c0c1, 0xfcb3, 0x403e, {0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gEfiManagedNetworkProtocolGuid = { 0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 }}; -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 gOcBootstrapProtocolGuid = { 0xBA1EB455, 0xB182, 0x4F14, { 0x85, 0x21, 0xE4, 0x22, 0xC3, 0x25, 0xDE, 0xF6 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcInterfaceProtocolGuid = { 0x53027CDF, 0x3A89, 0x4255, { 0xAE, 0x29, 0xD6, 0x66, 0x6E, 0xFE, 0x99, 0xEF }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gOcLogProtocolGuid = { 0xDBB6008F, 0x89E4, 0x4272, { 0x98, 0x81, 0xCE, 0x3A, 0xFD, 0x97, 0x24, 0xD0 }}; -GLOBAL_REMOVE_IF_UNREFERENCED EFI_GUID gAppleDebugLogProtocolGuid = { 0xDDFA34FB, 0xFE1F, 0x48EA, { 0xB2, 0x13, 0xFB, 0x4A, 0x4C, 0xD5, 0x7B, 0xE3 }}; - diff --git a/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.h b/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.h deleted file mode 100644 index 1cdfaa6fd..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/guids_from_autogen.h +++ /dev/null @@ -1,221 +0,0 @@ -// -// guids_from_autogen.h -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef guids_from_autogen_h -#define guids_from_autogen_h - - -#ifdef __cplusplus -extern "C" { -#endif - -// Guids -extern EFI_GUID gEfiAcpiTableGuid; -extern EFI_GUID gEfiAcpi10TableGuid; -extern EFI_GUID gEfiAcpi20TableGuid; -extern EFI_GUID gEfiAppleBootGuid; -extern EFI_GUID gEfiAppleNvramGuid; -extern EFI_GUID gEfiAppleVendorGuid; -extern EFI_GUID gAppleCoreStorageVariableGuid; -extern EFI_GUID gAppleTamperResistantBootVariableGuid; -extern EFI_GUID gAppleWirelessNetworkVariableGuid; -extern EFI_GUID gApplePersonalizationVariableGuid; -extern EFI_GUID gAppleNetbootVariableGuid; -extern EFI_GUID gAppleSecureBootVariableGuid; -extern EFI_GUID gAppleTamperResistantBootSecureVariableGuid; -extern EFI_GUID gAppleTamperResistantBootEfiUserVariableGuid; -extern EFI_GUID gEfiDxeServicesTableGuid; -extern EFI_GUID gEfiEventReadyToBootGuid; -extern EFI_GUID gEfiEventVirtualAddressChangeGuid; -extern EFI_GUID gEfiEventExitBootServicesGuid; -extern EFI_GUID gEfiFileInfoGuid; -extern EFI_GUID gEfiFileSystemInfoGuid; -extern EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid; -extern EFI_GUID gEfiGlobalVariableGuid; -extern EFI_GUID gEfiPartTypeLegacyMbrGuid; -extern EFI_GUID gEfiPartTypeSystemPartGuid; -extern EFI_GUID gEfiSmbiosTableGuid; -extern EFI_GUID gEfiSmbios3TableGuid; -extern EFI_GUID gEfiSasDevicePathGuid; -extern EFI_GUID gEfiImageSecurityDatabaseGuid; -extern EFI_GUID gEfiCertX509Guid; -extern EFI_GUID gEfiCertSha1Guid; -extern EFI_GUID gEfiCertSha256Guid; -extern EFI_GUID gEfiCertPkcs7Guid; -extern EFI_GUID gEfiCertRsa2048Guid; -extern EFI_GUID gEfiCertRsa2048Sha256Guid; -extern EFI_GUID gEfiCertTypeRsa2048Sha256Guid; -extern EFI_GUID gOcVendorVariableGuid; -extern EFI_GUID gOcReadOnlyVariableGuid; -extern EFI_GUID gOcWriteOnlyVariableGuid; -extern EFI_GUID gAppleOSLoadedNamedEventGuid; -extern EFI_GUID gBootChimeVendorVariableGuid; -extern EFI_GUID gEfiMdePkgTokenSpaceGuid; -extern EFI_GUID gEfiVTUTF8Guid; -extern EFI_GUID gEfiVT100Guid; -extern EFI_GUID gEfiVT100PlusGuid; -extern EFI_GUID gEfiPcAnsiGuid; -extern EFI_GUID gEfiUartDevicePathGuid; -extern EFI_GUID gEfiVirtualDiskGuid; -extern EFI_GUID gEfiVirtualCdGuid; -extern EFI_GUID gEfiPersistentVirtualDiskGuid; -extern EFI_GUID gEfiPersistentVirtualCdGuid; -extern EFI_GUID gEfiMdeModulePkgTokenSpaceGuid; -extern EFI_GUID gEfiEventLegacyBootGuid; -extern EFI_GUID gEfiMemoryAttributesTableGuid; -extern EFI_GUID gOpenCorePkgTokenSpaceGuid; -extern EFI_GUID gEfiHobListGuid; -extern EFI_GUID gAppleEfiCertificateGuid; -extern EFI_GUID gAppleVendorVariableGuid; -extern EFI_GUID gEfiAcpiDescriptionGuid; -extern EFI_GUID gAppleApfsPartitionTypeGuid; -extern EFI_GUID gAppleApfsContainerInfoGuid; -extern EFI_GUID gAppleApfsVolumeInfoGuid; -extern EFI_GUID gAppleBlessedSystemFileInfoGuid; -extern EFI_GUID gAppleBlessedSystemFolderInfoGuid; -extern EFI_GUID gAppleBlessedOsxFolderInfoGuid; -extern EFI_GUID gEfiEndOfDxeEventGroupGuid; -extern EFI_GUID gOcCustomSmbiosTableGuid; -extern EFI_GUID gOcCustomSmbios3TableGuid; -extern EFI_GUID gEfiHashAlgorithmMD5Guid; -extern EFI_GUID gEfiHashAlgorithmSha1Guid; -extern EFI_GUID gEfiHashAlgorithmSha256Guid; -extern EFI_GUID gAppleImageListGuid; -extern EFI_GUID gAppleArrowCursorImageGuid; -extern EFI_GUID gAppleArrowCursor2xImageGuid; -extern EFI_GUID gAppleBootVariableGuid; -extern EFI_GUID gAppleHfsPartitionTypeGuid; -extern EFI_GUID gAppleHfsBootPartitionTypeGuid; -extern EFI_GUID gAppleLegacyLoadAppFileGuid; -extern EFI_GUID gAppleBootPickerFileGuid; -extern EFI_GUID gMicrosoftVariableGuid; -extern EFI_GUID gEfiHiiKeyBoardLayoutGuid; -extern EFI_GUID gUsbKeyboardLayoutPackageGuid; -extern EFI_GUID gUsbKeyboardLayoutKeyGuid; -extern EFI_GUID gAppleKeyboardPlatformInfoGuid; -extern EFI_GUID gEfiHdaIoDevicePathGuid; -extern EFI_GUID gEfiProcessorSubClassGuid; -extern EFI_GUID gEfiMiscSubClassGuid; -extern EFI_GUID gApplePlatformProducerNameGuid; -extern EFI_GUID gEfiAdapterInfoMediaStateGuid; - -// Protocols -extern EFI_GUID gEfiComponentName2ProtocolGuid; -extern EFI_GUID gEfiDevicePathToTextProtocolGuid; -extern EFI_GUID gEfiSimpleFileSystemProtocolGuid; -extern EFI_GUID gEfiSimpleTextInProtocolGuid; -extern EFI_GUID gEfiSimpleTextInputExProtocolGuid; -extern EFI_GUID gEfiSimpleTextOutProtocolGuid; -extern EFI_GUID gEfiUnicodeCollationProtocolGuid; -extern EFI_GUID gEfiUnicodeCollation2ProtocolGuid; -extern EFI_GUID gEfiAcpiS3SaveProtocolGuid; -extern EFI_GUID gEfiBlockIoProtocolGuid; -extern EFI_GUID gEfiCpuArchProtocolGuid; -extern EFI_GUID gEfiDebugPortProtocolGuid; -extern EFI_GUID gEfiDevicePathProtocolGuid; -extern EFI_GUID gEfiDiskIoProtocolGuid; -extern EFI_GUID gEfiExtScsiPassThruProtocolGuid; -extern EFI_GUID gEfiFirmwareVolume2ProtocolGuid; -extern EFI_GUID gEfiGraphicsOutputProtocolGuid; -extern EFI_GUID gEfiHiiFontProtocolGuid; -extern EFI_GUID gEfiLegacy8259ProtocolGuid; -extern EFI_GUID gEfiLoadedImageProtocolGuid; -extern EFI_GUID gEfiOEMBadgingProtocolGuid; -extern EFI_GUID gEfiPciIoProtocolGuid; -extern EFI_GUID gEfiScsiIoProtocolGuid; -extern EFI_GUID gEfiScsiPassThruProtocolGuid; -extern EFI_GUID gEfiSimpleNetworkProtocolGuid; -extern EFI_GUID gEfiStatusCodeRuntimeProtocolGuid; -extern EFI_GUID gEfiUgaDrawProtocolGuid; -extern EFI_GUID gEfiManagedNetworkServiceBindingProtocolGuid; -extern EFI_GUID gEfiAbsolutePointerProtocolGuid; -extern EFI_GUID gEfiAcpiTableProtocolGuid; -extern EFI_GUID gEfiEdidActiveProtocolGuid; -extern EFI_GUID gEfiEdidDiscoveredProtocolGuid; -extern EFI_GUID gEfiEdidOverrideProtocolGuid; -extern EFI_GUID gEfiHiiDatabaseProtocolGuid; -extern EFI_GUID gEfiHiiImageProtocolGuid; -extern EFI_GUID gEfiHiiProtocolGuid; -extern EFI_GUID gEfiSimplePointerProtocolGuid; -extern EFI_GUID gEfiSmbiosProtocolGuid; -extern EFI_GUID gEfiSecurityArchProtocolGuid; -extern EFI_GUID gEfiSecurity2ArchProtocolGuid; -extern EFI_GUID gAppleFramebufferInfoProtocolGuid; -extern EFI_GUID gEfiConsoleControlProtocolGuid; -extern EFI_GUID gAppleGraphConfigProtocolGuid; -extern EFI_GUID gEfiLegacyBiosProtocolGuid; -extern EFI_GUID gEfiTimerArchProtocolGuid; -extern EFI_GUID gAppleImageCodecProtocolGuid; -extern EFI_GUID gAppleEventProtocolGuid; -extern EFI_GUID gEfiOSInfoProtocolGuid; -extern EFI_GUID gEfiKeyboardInfoProtocolGuid; -extern EFI_GUID gFSInjectProtocolGuid; -extern EFI_GUID gMsgLogProtocolGuid; -extern EFI_GUID gEfiPlatformDriverOverrideProtocolGuid; -extern EFI_GUID gEmuVariableControlProtocolGuid; -extern EFI_GUID gEfiAudioIoProtocolGuid; -extern EFI_GUID gOcQuirksProtocolGuid; -extern EFI_GUID gAptioMemoryFixProtocolGuid; -extern EFI_GUID gEfiUsbIoProtocolGuid; -extern EFI_GUID gEfiLoadFileProtocolGuid; -extern EFI_GUID gEfiFirmwareVolumeProtocolGuid; -extern EFI_GUID gEfiBlockIo2ProtocolGuid; -extern EFI_GUID gEfiDriverBindingProtocolGuid; -extern EFI_GUID gEfiComponentNameProtocolGuid; -extern EFI_GUID gEfiDriverConfigurationProtocolGuid; -extern EFI_GUID gEfiDriverConfiguration2ProtocolGuid; -extern EFI_GUID gEfiDriverDiagnosticsProtocolGuid; -extern EFI_GUID gEfiDriverDiagnostics2ProtocolGuid; -extern EFI_GUID gEfiShellParametersProtocolGuid; -extern EFI_GUID gEfiLegacyRegionProtocolGuid; -extern EFI_GUID gEfiLegacyRegion2ProtocolGuid; -extern EFI_GUID gAppleRtcRamProtocolGuid; -extern EFI_GUID gEfiMpServiceProtocolGuid; -extern EFI_GUID gFrameworkEfiMpServiceProtocolGuid; -extern EFI_GUID gAppleRamDiskProtocolGuid; -extern EFI_GUID gAppleDiskImageProtocolGuid; -extern EFI_GUID gAppleSecureBootProtocolGuid; -extern EFI_GUID gAppleImg4VerificationProtocolGuid; -extern EFI_GUID gAppleKeyMapDatabaseProtocolGuid; -extern EFI_GUID gAppleKeyMapAggregatorProtocolGuid; -extern EFI_GUID gApfsEfiBootRecordInfoProtocolGuid; -extern EFI_GUID gApfsUnsupportedBdsProtocolGuid; -extern EFI_GUID gEfiPartitionInfoProtocolGuid; -extern EFI_GUID gAppleBootPolicyProtocolGuid; -extern EFI_GUID gAppleSmcIoProtocolGuid; -extern EFI_GUID gEfiPciRootBridgeIoProtocolGuid; -extern EFI_GUID gEfiHashProtocolGuid; -extern EFI_GUID gEfiHashServiceBindingProtocolGuid; -extern EFI_GUID gEfiDevicePathPropertyDatabaseProtocolGuid; -extern EFI_GUID gOcFirmwareRuntimeProtocolGuid; -extern EFI_GUID gOcAudioProtocolGuid; -extern EFI_GUID gAppleBeepGenProtocolGuid; -extern EFI_GUID gEfiUserInterfaceThemeProtocolGuid; -extern EFI_GUID gApplePlatformInfoDatabaseProtocolGuid; -extern EFI_GUID gAmiEfiPointerProtocolGuid; -extern EFI_GUID gAmiEfiKeycodeProtocolGuid; -extern EFI_GUID gAppleVOAudioProtocolGuid; -extern EFI_GUID gAppleHighDefinitionAudioProtocolGuid; -extern EFI_GUID gOcAfterBootCompatProtocolGuid; -extern EFI_GUID gVMwareMacProtocolGuid; -extern EFI_GUID gEfiDataHubProtocolGuid; -extern EFI_GUID gEfiLoadFile2ProtocolGuid; -extern EFI_GUID gEfiManagedNetworkProtocolGuid; -extern EFI_GUID gEfiIp4Config2ProtocolGuid; -extern EFI_GUID gEfiAdapterInformationProtocolGuid; -extern EFI_GUID gOcBootstrapProtocolGuid; -extern EFI_GUID gOcInterfaceProtocolGuid; -extern EFI_GUID gOcLogProtocolGuid; -extern EFI_GUID gAppleDebugLogProtocolGuid; - -#ifdef __cplusplus -} -#endif - - -#endif /* guids_from_autogen_h */ diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BasicIO.cpp b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BasicIO.cpp deleted file mode 100644 index 8fcd8d9b9..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BasicIO.cpp +++ /dev/null @@ -1,94 +0,0 @@ -/* - * BasicIO.cpp - * - * Created on: 28 Mar 2020 - * - */ - -#include // Only use angled for Platform, else, xcode project won't compile -#include - -#include -#include "../../../../../rEFIt_UEFI/Platform/BasicIO.h" -////#include "EfiExternals.h" -// -//extern "C" { -//#include "Library/UefiBootServicesTableLib.h" -//} - - -// -// Keyboard input -// - -BOOLEAN ReadAllKeyStrokes(void) -{ - BOOLEAN GotKeyStrokes; - EFI_STATUS Status; - EFI_INPUT_KEY key; - - GotKeyStrokes = FALSE; - for (;;) { - Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &key); - if (Status == EFI_SUCCESS) { - GotKeyStrokes = TRUE; - continue; - } - break; - } - return GotKeyStrokes; -} - - -void PauseForKey(const wchar_t* msg) -{ - printf("%ls", msg); - getchar(); -} - -// Jief, TODO : not sure of the difference between this and PauseForKey. Looks like none. Can it be removed ? - -void -WaitForKeyPress( - CHAR16 *Message - ) -{ - EFI_STATUS Status; - UINTN index; - EFI_INPUT_KEY key; - - printf("%ls", Message); - do { - Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &key); - } while(Status == EFI_SUCCESS); - gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &index); - do { - Status = gST->ConIn->ReadKeyStroke (gST->ConIn, &key); - } while(Status == EFI_SUCCESS); -} - -//#if REFIT_DEBUG > 0 -//void DebugPause(void) -//{ -// // show console and wait for key -// SwitchToText(FALSE); -// PauseForKey(L""); -// -// // reset error flag -// haveError = FALSE; -//} -//#endif - -void EndlessIdleLoop(void) -{ - UINTN index; - - for (;;) { - ReadAllKeyStrokes(); - gBS->WaitForEvent(1, &gST->ConIn->WaitForKey, &index); - } -} - - - - diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BootLog.cpp b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BootLog.cpp deleted file mode 100644 index dd260fc91..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/BootLog.cpp +++ /dev/null @@ -1,138 +0,0 @@ -/* - * BootLog.c - * - * - * Created by Slice on 19.08.11. - * Edited by apianti 2012-09-08 - * Initial idea from Kabyl - */ - - -#include // Only use angled for Platform, else, xcode project won't compile -#include - -/** Prints Number of bytes in a row (hex and ascii). Row size is MaxNumber. */ -void -PrintBytesRow(IN UINT8 *Bytes, IN UINTN Number, IN UINTN MaxNumber) -{ - UINTN Index; - - // print hex vals - for (Index = 0; Index < Number; Index++) { - DebugLog(1, "%02hhX ", Bytes[Index]); - } - - // pad to MaxNumber if needed - for (; Index < MaxNumber; Index++) { - DebugLog(1, " "); - } - - DebugLog(1, "| "); - - // print ASCII - for (Index = 0; Index < Number; Index++) { - if (Bytes[Index] >= 0x20 && Bytes[Index] <= 0x7e) { - DebugLog(1, "%c", (CHAR16)Bytes[Index]); - } else { - DebugLog(1, "%c", L'.'); - } - } - - DebugLog(1, "\n"); -} - -/** Prints series of bytes. */ -void -PrintBytes(IN void *Bytes, IN UINTN Number) -{ - UINTN Index; - - for (Index = 0; Index < Number; Index += 16) { - PrintBytesRow((UINT8*)Bytes + Index, ((Index + 16 < Number) ? 16 : (Number - Index)), 16); - } -} - -// Changed MsgLog(...) it now calls this function -// with DebugMode == 0. - apianti -// DebugMode==0 Prints to msg log, only output to log on SaveBooterLog -// DebugMode==1 Prints to msg log and DEBUG_LOG -// DebugMode==2 Prints to msg log, DEBUG_LOG and display console -void EFIAPI DebugLog(IN INTN DebugMode, IN CONST CHAR8 *FormatString, ...) -{ -// VA_LIST Marker; - va_list Marker; - // Make sure the buffer is intact for writing - if (FormatString == NULL || DebugMode < 0) { - return; - } - - // Print message to log buffer -// VA_START(Marker, FormatString); - va_start(Marker, FormatString); - #if __WCHAR_MAX__ < 0xffff - #else - vprintf(FormatString, Marker); - #endif - VA_END(Marker); -} - - - -void DbgHeader(CONST CHAR8 *str) -{ - CHAR8 strLog[50]; - size_t len; - int end = snprintf(strLog, 50, "=== [ %s ] ", str); - if ( end < 0 ) return; - len = 50 - (unsigned int)end; - - memset(&strLog[end], '=', len); - strLog[49] = '\0'; - DebugLog (1, "%s\n", strLog); -} - - -void closeDebugLog() -{ -} - -EFI_STATUS -SaveBooterLog ( - const EFI_FILE* BaseDir OPTIONAL, - const CHAR16 *FileName - ) -{ - return EFI_SUCCESS; -} - -EFI_STATUS -SetupBooterLog ( - BOOLEAN AllowGrownSize - ) -{ - return EFI_SUCCESS; -} - - -void -InitBooterLog (void) -{ -} - - -void EFIAPI DebugLogForOC(IN INTN DebugLevel, IN CONST CHAR8 *FormatString, ...) -{ - VA_LIST Marker; - //UINTN offset = 0; - - // Make sure the buffer is intact for writing - if (FormatString == NULL ) { - return; - } - - // Print message to log buffer - VA_START(Marker, FormatString); - printf(FormatString, Marker); - VA_END(Marker); -} - diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Platform.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Platform.h deleted file mode 100644 index 7ca7f7cd6..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Platform.h +++ /dev/null @@ -1,86 +0,0 @@ -// -// Platform.h.h -// cpp_tests -// -// Created by jief on 23.02.20. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#ifndef Platform_h_h -#define Platform_h_h - -#ifdef _MSC_VER -#include -#endif - -//#pragma clang diagnostic ignored "-Wc99-extensions" - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include -#include -#include -#include -#include "../../../../../rEFIt_UEFI/Platform/BootLog.h" -//#include "BootLog.h" -#include // this is just to define DEBUG, because Slice wrongly did some #ifdef DEBUG - -#ifdef __cplusplus -} -#endif - - -#include -#include -#include -#include -#include -#include -#include -#include "Posix/posix.h" - -#include "../../../../../rEFIt_UEFI/include/OneLinerMacros.h" - -#ifndef __cplusplus -//typedef uint16_t wchar_t; -typedef uint32_t char32_t; -typedef uint16_t char16_t; -typedef uint8_t bool; -#endif - -// Replacement of uintptr_t to avoid warning in printf. It needs macro _UINTPTR_T to avoid to standard definition -typedef unsigned long long uintptr_t; -#undef PRIuPTR -#define PRIuPTR "llu" -//#define _UINTPTR_T - -#include "../../../rEFIt_UEFI/Platform/Posix/abort.h" -#include "../../../rEFIt_UEFI/cpp_foundation/unicode_conversions.h" - -#ifdef __cplusplus -#include "../../../rEFIt_UEFI/cpp_foundation/XString.h" -#include "../../../rEFIt_UEFI/cpp_foundation/XObjArray.h" -#include "../../../rEFIt_UEFI/entry_scan/common.h" -#include "../../../rEFIt_UEFI/libeg/BmLib.h" -#endif -#include "../../../rEFIt_UEFI/Platform/Utils.h" - -//#include "../../../../../cpp_tests/Include/xcode_utf_fixed.h" - - -void CpuDeadLoop(void); - -void PauseForKey(const wchar_t* msg); - -const char* efiStrError(EFI_STATUS Status); - - -//#define DEBUG_VERBOSE 0 -//#define DEBUG( expression ) - -#define MsgLog ::printf - -#endif /* Platform_h_h */ diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/BootLog.h.dis b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/BootLog.h.dis deleted file mode 100755 index 12aeb8a60..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/BootLog.h.dis +++ /dev/null @@ -1,41 +0,0 @@ -/* -Headers collection for procedures -*/ -#ifndef __BOOTLOG__H__ -#define __BOOTLOG__H__ - -#ifdef __cplusplus -extern "C" { -#endif - - -#include - -#ifdef _MSC_VER -#define __attribute__(x) -#endif - -void -EFIAPI -DebugLog ( - IN INTN DebugMode, - IN CONST CHAR8 *FormatString, ...) __attribute__((format(printf, 2, 3))); - - -/** Prints series of bytes. */ -void -PrintBytes ( - IN void *Bytes, - IN UINTN Number - ); - - -void DbgHeader(CONST CHAR8 *str); - - -#ifdef __cplusplus -} // extern "C" -#endif - - -#endif diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix.h deleted file mode 100644 index a29b17a05..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __POSIX_H__ -#define __POSIX_H__ - - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include "posix_additions.h" - -#if defined(__APPLE__) && defined(__clang__) && __WCHAR_MAX__ <= 0xFFFFu -// 2020-03 : w... function are broken under macOs and clang with short-wchar. -// Currently with clang version Apple LLVM version 10.0.0 (clang-1000.11.45.5) with High Sierra -// If it's fixed one day, a version number could added to this #ifdef - -//# include "../../../../../cpp_tests/Include/xcode_utf_fixed.h" -#else -# include -#endif - -// -//inline void* realloc(void *ptr, size_t newsize, size_t oldsize) // not the posix realloc. For EFI we need oldsize -//{ -// (void)oldsize; -// return realloc(ptr, newsize); -//} - - -#endif diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.cpp b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.cpp deleted file mode 100644 index f6d7081aa..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/* - * posix_additions.cpp - * - * Created on: Feb 5, 2021 - * Author: jief - */ - -#include "posix_additions.h" -#include "stdio.h" - -/* - * We need to use AsciiSPrint to be able to use %r and %g - */ -extern "C" { -//# include -//# include - -// UINTN -// EFIAPI -// AsciiSPrint ( -// OUT CHAR8 *StartOfBuffer, -// IN UINTN BufferSize, -// IN CONST CHAR8 *FormatString, -// ... -// ); - -} - -//#include -#include "../../../../../../rEFIt_UEFI/cpp_foundation/XString.h" - -XString8 stdio_static_buf = XString8().takeValueFrom("XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX "); // prealloc stdio_static_buf. It has to be at least 2 chars because of 'while ( n > size - 2 )' in strguid and efiStrError - - -static char efiStrError_buf[40]; -const char* efiStrError(EFI_STATUS Status) -{ - if ( !EFI_ERROR(Status) ) { - snprintf(efiStrError_buf, sizeof(efiStrError_buf), "efi success (%llu,0x%llx)", Status, Status); - }else{ - snprintf(efiStrError_buf, sizeof(efiStrError_buf), "efi error (%llu,0x%llx)", Status, Status); - } - return efiStrError_buf; -} - -//this function print guid in LittleEndian format while we need BigEndian as Apple do -const char* strguid(EFI_GUID* guid) -{ - stdio_static_buf.S8Printf("%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X", guid->Data1, guid->Data2, guid->Data3, guid->Data4[0], guid->Data4[1], guid->Data4[2], guid->Data4[3], guid->Data4[4], guid->Data4[5], guid->Data4[6], guid->Data4[7]); - return stdio_static_buf.s(); -} diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.h deleted file mode 100644 index 79347cb43..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/Posix/posix_additions.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * posix_additions.h - * - * Created on: Feb 5, 2021 - * Author: jief - */ - -#ifndef PLATFORM_POSIX_POSIX_ADDITIONS_H_ -#define PLATFORM_POSIX_POSIX_ADDITIONS_H_ - -const char* efiStrError(EFI_STATUS errnum); -const char* strguid(EFI_GUID* guid); - -//int snwprintf(wchar_t*, size_t len, const char *__restrict format, ...) __attribute__((__format__ (__printf__, 3, 4))); - -#endif /* PLATFORM_POSIX_POSIX_ADDITIONS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/xBootLog.h,dis b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/xBootLog.h,dis deleted file mode 100755 index 0e276ebe2..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/Platform/xBootLog.h,dis +++ /dev/null @@ -1,40 +0,0 @@ -/* -Headers collection for procedures -*/ - -#ifndef __BOOTLOG__H__ -#define __BOOTLOG__H__ - -#define MsgLog ::printf - -#ifdef __cplusplus -extern "C" { -#endif - - -#ifdef _MSC_VER -#define __attribute__(x) -#endif - -void -EFIAPI -DebugLog ( - IN INTN DebugMode, - IN CONST CHAR8 *FormatString, ...) __attribute__((format(printf, 2, 3))); - - -/** Prints series of bytes. */ -void -PrintBytes ( - IN void *Bytes, - IN UINTN Number - ); - - - -#ifdef __cplusplus -} // extern "C" -#endif - - -#endif diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/Efi.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/Efi.h deleted file mode 100644 index 26459c2dc..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/Efi.h +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Efi.h - * - * Created on: 16 Apr 2020 - * Author: jief - */ - -#ifndef MOCK_EFI_H_ -#define MOCK_EFI_H_ - -#include "../../../../../rEFIt_UEFI/include/Efi.h" - -#ifdef __cplusplus -extern "C" { -#endif - -//#include -// -//#include -//#include -// -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -// -//#include -// -//#include -//#include -//#include -//#include -//#include -////#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -// -//#include -// -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -// -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -//#include -// -//#include -//#include -////#include -//#include -//#include -//#include -//#include -// -//#include "../../OpenCorePkg/Include/Acidanthera/Library/OcConsoleLib.h" - -#include "../../guids_from_autogen.h" - -#ifdef __cplusplus -} -#endif - - -#define EFI_SYSTEM_TABLE_MAX_ADDRESS 0xFFFFFFFF - - - -#endif /* INCLUDE_EFI_H_ */ diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/OneLinerMacros.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/OneLinerMacros.h deleted file mode 100644 index 915e0fb89..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/OneLinerMacros.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * OneLinerMacros.h - * - * Created on: 16 Apr 2020 - * Author: jief - */ - - -#include "../../../../../rEFIt_UEFI/include/OneLinerMacros.h" diff --git a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/XToolsConf.h b/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/XToolsConf.h deleted file mode 100755 index 0a01b6591..000000000 --- a/Xcode/CloverX64TestNewParser/CloverMock/rEFIt_UEFI/include/XToolsConf.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef __XTOOLSCONF_H__ -#define __XTOOLSCONF_H__ - - -#define xsize size_t -//#define xisize INTN -#ifdef _MSC_VER -#define MAX_XSIZE SIZE_MAX -#else -#define MAX_XSIZE SIZE_T_MAX -#endif -//#define MAX_XISIZE MAX_INTN - -#define XStringGrowByDefault 10 -#define XArrayGrowByDefault 8 -#define XBufferGrowByDefault 16 - -/* For convience, operator [] is define with int parameter. - * Defining __XTOOLS_CHECK_OVERFLOW__ make a check that the parameter is >= 0 - * TODO : make new XString using __XTOOLS_CHECK_OVERFLOW__ - */ -#define __XTOOLS_CHECK_OVERFLOW__ - -#define Xrealloc(ptr, newsize, oldsize) realloc(ptr, newsize) - -#include "../Platform/Posix/posix.h" - -#define XTOOLS_VA_LIST va_list -#define XTOOLS_VA_START va_start -#define XTOOLS_VA_END va_end - -#endif diff --git a/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/project.pbxproj b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/project.pbxproj index a215c07ca..83ecacce1 100644 --- a/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/project.pbxproj +++ b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/project.pbxproj @@ -7,18 +7,15 @@ objects = { /* Begin PBXBuildFile section */ + 9A071C47261A44080007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9A071C48261A44080007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C49261A44080007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */; }; 9A0B085E240300E000E2B470 /* Platform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B085D240300E000E2B470 /* Platform.cpp */; }; 9A0D113825FF58420040555F /* strcasecmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */; }; - 9A13D98E2610569300863C91 /* CompareSettingsDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A13D98D2610569300863C91 /* CompareSettingsDevices.cpp */; }; - 9A13D99126105B2200863C91 /* CompareSettingsQuirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A13D99026105B2200863C91 /* CompareSettingsQuirks.cpp */; }; 9A272A7F25D5062E00F03E19 /* DataHub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A272A7D25D5062D00F03E19 /* DataHub.cpp */; }; - 9A28CD1F241BB61B00F3D247 /* abort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A28CD1D241BB61B00F3D247 /* abort.cpp */; }; - 9A28CD22241BB61B00F3D247 /* strlen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A28CD1E241BB61B00F3D247 /* strlen.cpp */; }; 9A358B2025CF115200A3850D /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AF425CF115100A3850D /* Config_GUI.cpp */; }; 9A358B2B25CF115200A3850D /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */; }; 9A358B2E25CF115200A3850D /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0F25CF115100A3850D /* Config_ACPI.cpp */; }; - 9A358B2F25CF115200A3850D /* Config_Devices_Properties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1025CF115100A3850D /* Config_Devices_Properties.cpp */; }; - 9A358B3225CF115200A3850D /* CompareSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1625CF115100A3850D /* CompareSettings.cpp */; }; 9A358B3325CF115200A3850D /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */; }; 9A358B3D25CF117A00A3850D /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */; }; 9A358B3E25CF117A00A3850D /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */; }; @@ -36,28 +33,115 @@ 9A36E51F24F3B82A007A1107 /* b64cdecode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E51E24F3B82A007A1107 /* b64cdecode.cpp */; }; 9A36E52624F3BB6B007A1107 /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E52424F3BB6B007A1107 /* FloatLib.cpp */; }; 9A36E53C24F3EDED007A1107 /* base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E53B24F3EDED007A1107 /* base64.cpp */; }; - 9A414767260545FD00440186 /* OpenCore.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEFD25CD9DC100EEAF06 /* OpenCore.lib */; }; - 9A4147682605493600440186 /* BaseLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEB025CD9B7400EEAF06 /* BaseLib.lib */; }; 9A4185C02439F73A00BEAFB8 /* XStringArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */; }; 9A4C576B255AAD07004F0B21 /* MacOsVersion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4C5769255AAD07004F0B21 /* MacOsVersion.cpp */; }; 9A4FFA7E2451C8330050B38B /* XString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4FFA7C2451C8330050B38B /* XString.cpp */; }; + 9A77BAA626336335000FFF8A /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BAA226336334000FFF8A /* SMBIOSPlist.cpp */; }; + 9A77BAA726336335000FFF8A /* SMBIOSPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BAA226336334000FFF8A /* SMBIOSPlist.cpp */; }; + 9A77BAA826336335000FFF8A /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BAA526336335000FFF8A /* ConfigPlistAbstract.cpp */; }; + 9A77BAA926336335000FFF8A /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BAA526336335000FFF8A /* ConfigPlistAbstract.cpp */; }; 9A7D518424FC32F700FA1CC3 /* XBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518124FC32F700FA1CC3 /* XBuffer.cpp */; }; 9A7D518524FC32F700FA1CC3 /* XRBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */; }; 9A838CB425347C36008303F5 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A838CB325347C36008303F5 /* MemoryOperation.c */; }; - 9A838CBA25348237008303F5 /* BaseMemoryLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A838CB925348237008303F5 /* BaseMemoryLib.c */; }; - 9A838CC3253485DC008303F5 /* DebugLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A838CC2253485DC008303F5 /* DebugLib.c */; }; + 9A879273261882D9000B9362 /* MemLogLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87920B261882D9000B9362 /* MemLogLib.c */; }; + 9A879274261882D9000B9362 /* OcDataHubLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87920F261882D9000B9362 /* OcDataHubLib.lib */; }; + 9A879275261882D9000B9362 /* OcXmlLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879210261882D9000B9362 /* OcXmlLib.lib */; }; + 9A879276261882D9000B9362 /* OcConfigurationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879211261882D9000B9362 /* OcConfigurationLib.lib */; }; + 9A879277261882D9000B9362 /* OcFirmwareVolumeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879212261882D9000B9362 /* OcFirmwareVolumeLib.lib */; }; + 9A879278261882D9000B9362 /* OcStorageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879213261882D9000B9362 /* OcStorageLib.lib */; }; + 9A879279261882D9000B9362 /* OcVirtualFsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879214261882D9000B9362 /* OcVirtualFsLib.lib */; }; + 9A87927A261882D9000B9362 /* OcAppleEventLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879215261882D9000B9362 /* OcAppleEventLib.lib */; }; + 9A87927B261882D9000B9362 /* OcCryptoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879216261882D9000B9362 /* OcCryptoLib.lib */; }; + 9A87927C261882D9000B9362 /* OcAudioLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879217261882D9000B9362 /* OcAudioLib.lib */; }; + 9A87927D261882D9000B9362 /* OcDevicePropertyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879218261882D9000B9362 /* OcDevicePropertyLib.lib */; }; + 9A87927E261882D9000B9362 /* OcAppleChunklistLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879219261882D9000B9362 /* OcAppleChunklistLib.lib */; }; + 9A87927F261882D9000B9362 /* OcStringLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921A261882D9000B9362 /* OcStringLib.lib */; }; + 9A879280261882D9000B9362 /* OcTemplateLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921B261882D9000B9362 /* OcTemplateLib.lib */; }; + 9A879281261882D9000B9362 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921C261882D9000B9362 /* OcUnicodeCollationEngGenericLib.lib */; }; + 9A879282261882D9000B9362 /* ControlMsrE2.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921D261882D9000B9362 /* ControlMsrE2.lib */; }; + 9A879283261882D9000B9362 /* OcAppleKeyMapLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921E261882D9000B9362 /* OcAppleKeyMapLib.lib */; }; + 9A879284261882D9000B9362 /* OcConsoleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87921F261882D9000B9362 /* OcConsoleLib.lib */; }; + 9A879285261882D9000B9362 /* OcRtcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879220261882D9000B9362 /* OcRtcLib.lib */; }; + 9A879286261882D9000B9362 /* OcDebugLogLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879221261882D9000B9362 /* OcDebugLogLib.lib */; }; + 9A879287261882DA000B9362 /* OcCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879222261882D9000B9362 /* OcCpuLib.lib */; }; + 9A879288261882DA000B9362 /* OcGuardLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879223261882D9000B9362 /* OcGuardLib.lib */; }; + 9A879289261882DA000B9362 /* OcDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879224261882D9000B9362 /* OcDevicePathLib.lib */; }; + 9A87928A261882DA000B9362 /* OcAppleKernelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879225261882D9000B9362 /* OcAppleKernelLib.lib */; }; + 9A87928B261882DA000B9362 /* OcAppleKeysLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879226261882D9000B9362 /* OcAppleKeysLib.lib */; }; + 9A87928C261882DA000B9362 /* OcInputLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879227261882D9000B9362 /* OcInputLib.lib */; }; + 9A87928D261882DA000B9362 /* OpenRuntime.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879228261882D9000B9362 /* OpenRuntime.lib */; }; + 9A87928E261882DA000B9362 /* OcAppleRamDiskLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879229261882D9000B9362 /* OcAppleRamDiskLib.lib */; }; + 9A87928F261882DA000B9362 /* OcPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922A261882D9000B9362 /* OcPeCoffLib.lib */; }; + 9A879290261882DA000B9362 /* OcApfsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922B261882D9000B9362 /* OcApfsLib.lib */; }; + 9A879291261882DA000B9362 /* OcSmbiosLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922C261882D9000B9362 /* OcSmbiosLib.lib */; }; + 9A879292261882DA000B9362 /* OcSerializeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922D261882D9000B9362 /* OcSerializeLib.lib */; }; + 9A879293261882DA000B9362 /* OcRngLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922E261882D9000B9362 /* OcRngLib.lib */; }; + 9A879294261882DA000B9362 /* OcAfterBootCompatLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87922F261882D9000B9362 /* OcAfterBootCompatLib.lib */; }; + 9A879295261882DA000B9362 /* OcCompressionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879230261882D9000B9362 /* OcCompressionLib.lib */; }; + 9A879296261882DA000B9362 /* OcAppleImageVerificationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879231261882D9000B9362 /* OcAppleImageVerificationLib.lib */; }; + 9A879297261882DA000B9362 /* OcMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879232261882D9000B9362 /* OcMemoryLib.lib */; }; + 9A879298261882DA000B9362 /* OcMacInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879233261882D9000B9362 /* OcMacInfoLib.lib */; }; + 9A879299261882DA000B9362 /* OcBootManagementLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879234261882D9000B9362 /* OcBootManagementLib.lib */; }; + 9A87929A261882DA000B9362 /* OcAppleImg4Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879235261882D9000B9362 /* OcAppleImg4Lib.lib */; }; + 9A87929B261882DA000B9362 /* OcAcpiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879236261882D9000B9362 /* OcAcpiLib.lib */; }; + 9A87929C261882DA000B9362 /* OcAppleDiskImageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879237261882D9000B9362 /* OcAppleDiskImageLib.lib */; }; + 9A87929D261882DA000B9362 /* OcMachoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879238261882D9000B9362 /* OcMachoLib.lib */; }; + 9A87929E261882DA000B9362 /* OcSmcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879239261882D9000B9362 /* OcSmcLib.lib */; }; + 9A87929F261882DA000B9362 /* OcFileLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923A261882D9000B9362 /* OcFileLib.lib */; }; + 9A8792A0261882DA000B9362 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923B261882D9000B9362 /* OcAppleUserInterfaceThemeLib.lib */; }; + 9A8792A1261882DA000B9362 /* OcDeviceTreeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923C261882D9000B9362 /* OcDeviceTreeLib.lib */; }; + 9A8792A2261882DA000B9362 /* OcOSInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923D261882D9000B9362 /* OcOSInfoLib.lib */; }; + 9A8792A3261882DA000B9362 /* OcDriverConnectionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923E261882D9000B9362 /* OcDriverConnectionLib.lib */; }; + 9A8792A4261882DA000B9362 /* OpenCore.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87923F261882D9000B9362 /* OpenCore.lib */; }; + 9A8792A5261882DA000B9362 /* OcHashServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879240261882D9000B9362 /* OcHashServicesLib.lib */; }; + 9A8792A6261882DA000B9362 /* OcMiscLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879241261882D9000B9362 /* OcMiscLib.lib */; }; + 9A8792A7261882DA000B9362 /* OcAppleBootPolicyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879242261882D9000B9362 /* OcAppleBootPolicyLib.lib */; }; + 9A8792A8261882DA000B9362 /* OcAppleSecureBootLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879243261882D9000B9362 /* OcAppleSecureBootLib.lib */; }; + 9A8792A9261882DA000B9362 /* VideoBiosPatchLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879245261882D9000B9362 /* VideoBiosPatchLib.lib */; }; + 9A8792AA261882DA000B9362 /* VBoxPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879246261882D9000B9362 /* VBoxPeCoffLib.lib */; }; + 9A8792AB261882DA000B9362 /* DuetTimerLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879247261882D9000B9362 /* DuetTimerLib.lib */; }; + 9A8792AC261882DA000B9362 /* OpensslLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879248261882D9000B9362 /* OpensslLib.lib */; }; + 9A8792AD261882DA000B9362 /* HdaDevicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879249261882D9000B9362 /* HdaDevicesLib.lib */; }; + 9A8792AE261882DA000B9362 /* WaveLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87924A261882D9000B9362 /* WaveLib.lib */; }; + 9A8792AF261882DA000B9362 /* BasePciCf8Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87924C261882D9000B9362 /* BasePciCf8Lib.lib */; }; + 9A8792B0261882DA000B9362 /* UefiApplicationEntryPoint.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87924D261882D9000B9362 /* UefiApplicationEntryPoint.lib */; }; + 9A8792B1261882DA000B9362 /* BaseLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87924E261882D9000B9362 /* BaseLib.lib */; }; + 9A8792B2261882DA000B9362 /* UefiRuntimeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87924F261882D9000B9362 /* UefiRuntimeServicesTableLib.lib */; }; + 9A8792B3261882DA000B9362 /* BaseMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879250261882D9000B9362 /* BaseMemoryLib.lib */; }; + 9A8792B4261882DA000B9362 /* BaseIoLibIntrinsic.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879251261882D9000B9362 /* BaseIoLibIntrinsic.lib */; }; + 9A8792B5261882DA000B9362 /* DxeServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879252261882D9000B9362 /* DxeServicesLib.lib */; }; + 9A8792B6261882DA000B9362 /* BaseCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879253261882D9000B9362 /* BaseCpuLib.lib */; }; + 9A8792B7261882DA000B9362 /* UefiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879254261882D9000B9362 /* UefiLib.lib */; }; + 9A8792B8261882DA000B9362 /* PeCoffExtraActionLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879255261882D9000B9362 /* PeCoffExtraActionLibNull.lib */; }; + 9A8792B9261882DA000B9362 /* UefiMemoryAllocationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879256261882D9000B9362 /* UefiMemoryAllocationLib.lib */; }; + 9A8792BA261882DA000B9362 /* UefiFileHandleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879257261882D9000B9362 /* UefiFileHandleLib.lib */; }; + 9A8792BB261882DA000B9362 /* DxeHobLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879258261882D9000B9362 /* DxeHobLib.lib */; }; + 9A8792BC261882DA000B9362 /* UefiBootServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879259261882D9000B9362 /* UefiBootServicesTableLib.lib */; }; + 9A8792BD261882DA000B9362 /* BaseDebugLibSerialPort.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925A261882D9000B9362 /* BaseDebugLibSerialPort.lib */; }; + 9A8792BE261882DA000B9362 /* DxeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925B261882D9000B9362 /* DxeServicesTableLib.lib */; }; + 9A8792BF261882DA000B9362 /* BasePciLibCf8.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925C261882D9000B9362 /* BasePciLibCf8.lib */; }; + 9A8792C0261882DA000B9362 /* BasePrintLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925D261882D9000B9362 /* BasePrintLib.lib */; }; + 9A8792C1261882DA000B9362 /* UefiDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925E261882D9000B9362 /* UefiDevicePathLib.lib */; }; + 9A8792C2261882DA000B9362 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A87925F261882D9000B9362 /* BaseDebugPrintErrorLevelLib.lib */; }; + 9A8792C3261882DA000B9362 /* MtrrLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879261261882D9000B9362 /* MtrrLib.lib */; }; + 9A8792C4261882DA000B9362 /* BasePlatformHookLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879263261882D9000B9362 /* BasePlatformHookLibNull.lib */; }; + 9A8792C5261882DA000B9362 /* BaseSerialPortLib16550.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879264261882D9000B9362 /* BaseSerialPortLib16550.lib */; }; + 9A8792C6261882DA000B9362 /* FrameBufferBltLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9A879265261882D9000B9362 /* FrameBufferBltLib.lib */; }; + 9A8792C7261882DA000B9362 /* AutoGen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A879268261882D9000B9362 /* AutoGen.c */; }; + 9A8792C8261882DA000B9362 /* xcode_utf_fixed.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */; }; + 9A8792C9261882DA000B9362 /* BaseMemoryLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926C261882D9000B9362 /* BaseMemoryLib.c */; }; + 9A8792CA261882DA000B9362 /* MemoryAllocationLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */; }; + 9A8792CB261882DA000B9362 /* PrintLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926E261882D9000B9362 /* PrintLib.c */; }; + 9A8792CC261882DA000B9362 /* DebugLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926F261882D9000B9362 /* DebugLib.c */; }; + 9A8792CD261882DA000B9362 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A879270261882D9000B9362 /* Globals.cpp */; }; + 9A8792F6261886F6000B9362 /* posix_additions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E6261886F5000B9362 /* posix_additions.cpp */; }; + 9A8792F7261886F6000B9362 /* abort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E7261886F5000B9362 /* abort.cpp */; }; + 9A8792F8261886F6000B9362 /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F0261886F5000B9362 /* BootLog.cpp */; }; + 9A8792F9261886F6000B9362 /* BasicIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F1261886F5000B9362 /* BasicIO.cpp */; }; 9A9037E625CFE7D100F14179 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */; }; 9A9037E725CFE7D100F14179 /* config-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E425CFE7D000F14179 /* config-test.cpp */; }; 9A9223312402FD1000483CBA /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; 9A9AEB8D243F73CE00FBD7D8 /* unicode_conversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */; }; - 9AA316CD260EF75A0033D29F /* CompareSettingsBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316CB260EF75A0033D29F /* CompareSettingsBoot.cpp */; }; - 9AA316D0260EF7760033D29F /* CompareField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316CE260EF7750033D29F /* CompareField.cpp */; }; - 9AA316D3260EFC410033D29F /* CompareSettingsACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316D1260EFC410033D29F /* CompareSettingsACPI.cpp */; }; - 9AA316D6260F0CBE0033D29F /* CompareSettingsGUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316D4260F0CBE0033D29F /* CompareSettingsGUI.cpp */; }; - 9AA316D9260F259F0033D29F /* CompareSettingsCPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316D8260F259F0033D29F /* CompareSettingsCPU.cpp */; }; - 9AA316DC260F267A0033D29F /* CompareSettingsSystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316DA260F26790033D29F /* CompareSettingsSystemParameters.cpp */; }; - 9AA316DF260F277A0033D29F /* CompareSettingsKernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316DE260F27790033D29F /* CompareSettingsKernelAndKextPatches.cpp */; }; - 9AA316E2260F2BE60033D29F /* CompareSettingsGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA316E0260F2BE50033D29F /* CompareSettingsGraphics.cpp */; }; 9AA3918F25CC75420099DC1F /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A852C0E25CC39E900C5662E /* Settings.cpp */; }; 9AA918C125CD4B7900BD5E8B /* lib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA918BC25CD4B5900BD5E8B /* lib.cpp */; }; 9AA918C725CD4CD300BD5E8B /* BmLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA918C625CD4CD300BD5E8B /* BmLib.cpp */; }; @@ -129,12 +213,7 @@ 9AA925B325CD79AB00BD5E8B /* icns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AB25CD79AA00BD5E8B /* icns.cpp */; }; 9AA925B725CD79AB00BD5E8B /* menu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AC25CD79AA00BD5E8B /* menu.cpp */; }; 9AA925BB25CD79AB00BD5E8B /* screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AE25CD79AB00BD5E8B /* screen.cpp */; }; - 9AA925C025CD87B600BD5E8B /* BasicIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925BF25CD87B600BD5E8B /* BasicIO.cpp */; }; - 9AA925C425CD900800BD5E8B /* posix_additions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E54C25CD41E900BD5E8B /* posix_additions.cpp */; }; - 9AA925CA25CD91BC00BD5E8B /* OpenCore.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925C925CD91BC00BD5E8B /* OpenCore.c */; }; - 9AA925CE25CD94C600BD5E8B /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4CF25CD177500BD5E8B /* BootLog.cpp */; }; 9AA925DE25CD967800BD5E8B /* SafeString.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CE225CD451700BD5E8B /* SafeString.c */; }; - 9AA925F125CD99E300BD5E8B /* BasePcdLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AA925F025CD99E300BD5E8B /* BasePcdLibNull.lib */; }; 9AA9E4D625CD1C9400BD5E8B /* card_vlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */; }; 9AA9E4DC25CD279200BD5E8B /* VersionString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */; }; 9AA9E4EA25CD283400BD5E8B /* XImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E025CD283300BD5E8B /* XImage.cpp */; }; @@ -144,91 +223,310 @@ 9AA9E4FA25CD283400BD5E8B /* XPointer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E725CD283400BD5E8B /* XPointer.cpp */; }; 9AA9E50225CD2FF400BD5E8B /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E50025CD2FF400BD5E8B /* Utils.cpp */; }; 9AA9E53D25CD306700BD5E8B /* loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E51B25CD306700BD5E8B /* loader.cpp */; }; - 9AD0358C25C57A4500E58351 /* MemoryAllocationLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AD0358B25C57A4500E58351 /* MemoryAllocationLib.c */; }; - 9AD0359425C57C8A00E58351 /* PrintLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AD0359325C57C8A00E58351 /* PrintLib.c */; }; + 9AB67BE4261834F300CC853A /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */; }; 9AD0EB24260A497600093F23 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */; }; 9AD7B15026079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD7B14F26079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp */; }; - 9AFB5F78261060CB0078E53D /* CompareSettingsRtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFB5F76261060CB0078E53D /* CompareSettingsRtVariables.cpp */; }; + 9AF1EFF026342D2400F7C2C0 /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFEE26342D2300F7C2C0 /* Settings.cpp */; }; + 9AF1EFF126342D2F00F7C2C0 /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFEE26342D2300F7C2C0 /* Settings.cpp */; }; + 9AF1EFF82634354A00F7C2C0 /* SettingsUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF22634354500F7C2C0 /* SettingsUtils.cpp */; }; + 9AF1EFF92634354A00F7C2C0 /* Volume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF32634354800F7C2C0 /* Volume.cpp */; }; + 9AF1EFFA2634354A00F7C2C0 /* ConfigManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF72634354A00F7C2C0 /* ConfigManager.cpp */; }; + 9AF1EFFB2634355F00F7C2C0 /* Volume.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF32634354800F7C2C0 /* Volume.cpp */; }; + 9AF1EFFC2634359E00F7C2C0 /* SettingsUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF22634354500F7C2C0 /* SettingsUtils.cpp */; }; + 9AF1EFFD263435A400F7C2C0 /* ConfigManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1EFF72634354A00F7C2C0 /* ConfigManager.cpp */; }; + 9AF1F05426343F6E00F7C2C0 /* AssignSettingsBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03826343F6D00F7C2C0 /* AssignSettingsBoot.cpp */; }; + 9AF1F05526343F6E00F7C2C0 /* AssignSettingsBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03826343F6D00F7C2C0 /* AssignSettingsBoot.cpp */; }; + 9AF1F05626343F6E00F7C2C0 /* AssignSettingsDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03A26343F6D00F7C2C0 /* AssignSettingsDevices.cpp */; }; + 9AF1F05726343F6E00F7C2C0 /* AssignSettingsDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03A26343F6D00F7C2C0 /* AssignSettingsDevices.cpp */; }; + 9AF1F05826343F6E00F7C2C0 /* AssignSettingsGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03D26343F6D00F7C2C0 /* AssignSettingsGraphics.cpp */; }; + 9AF1F05926343F6E00F7C2C0 /* AssignSettingsGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03D26343F6D00F7C2C0 /* AssignSettingsGraphics.cpp */; }; + 9AF1F05A26343F6E00F7C2C0 /* AssignSettingsCPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03E26343F6D00F7C2C0 /* AssignSettingsCPU.cpp */; }; + 9AF1F05B26343F6E00F7C2C0 /* AssignSettingsCPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F03E26343F6D00F7C2C0 /* AssignSettingsCPU.cpp */; }; + 9AF1F05C26343F6E00F7C2C0 /* AssignSettingsBootGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04026343F6D00F7C2C0 /* AssignSettingsBootGraphics.cpp */; }; + 9AF1F05D26343F6E00F7C2C0 /* AssignSettingsBootGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04026343F6D00F7C2C0 /* AssignSettingsBootGraphics.cpp */; }; + 9AF1F05E26343F6E00F7C2C0 /* AssignSettingsQuirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04226343F6D00F7C2C0 /* AssignSettingsQuirks.cpp */; }; + 9AF1F05F26343F6E00F7C2C0 /* AssignSettingsQuirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04226343F6D00F7C2C0 /* AssignSettingsQuirks.cpp */; }; + 9AF1F06026343F6E00F7C2C0 /* AssignField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04426343F6D00F7C2C0 /* AssignField.cpp */; }; + 9AF1F06126343F6E00F7C2C0 /* AssignField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04426343F6D00F7C2C0 /* AssignField.cpp */; }; + 9AF1F06226343F6E00F7C2C0 /* AssignSettingsRtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04526343F6D00F7C2C0 /* AssignSettingsRtVariables.cpp */; }; + 9AF1F06326343F6E00F7C2C0 /* AssignSettingsRtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04526343F6D00F7C2C0 /* AssignSettingsRtVariables.cpp */; }; + 9AF1F06426343F6E00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04626343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp */; }; + 9AF1F06526343F6E00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04626343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp */; }; + 9AF1F06626343F6E00F7C2C0 /* AssignSettingsGUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04A26343F6D00F7C2C0 /* AssignSettingsGUI.cpp */; }; + 9AF1F06726343F6E00F7C2C0 /* AssignSettingsGUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04A26343F6D00F7C2C0 /* AssignSettingsGUI.cpp */; }; + 9AF1F06826343F6E00F7C2C0 /* AssignSettingsSmbios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04B26343F6E00F7C2C0 /* AssignSettingsSmbios.cpp */; }; + 9AF1F06926343F6E00F7C2C0 /* AssignSettingsSmbios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04B26343F6E00F7C2C0 /* AssignSettingsSmbios.cpp */; }; + 9AF1F06A26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04E26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp */; }; + 9AF1F06B26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F04E26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp */; }; + 9AF1F06C26343F6E00F7C2C0 /* AssignSettingsACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F05126343F6E00F7C2C0 /* AssignSettingsACPI.cpp */; }; + 9AF1F06D26343F6E00F7C2C0 /* AssignSettingsACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F05126343F6E00F7C2C0 /* AssignSettingsACPI.cpp */; }; + 9AF1F06E26343F6E00F7C2C0 /* AssignSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F05226343F6E00F7C2C0 /* AssignSettings.cpp */; }; + 9AF1F06F26343F6E00F7C2C0 /* AssignSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF1F05226343F6E00F7C2C0 /* AssignSettings.cpp */; }; + 9AF4DA7226332D8500487D15 /* CompareSettingsDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5626332D8500487D15 /* CompareSettingsDevices.cpp */; }; + 9AF4DA7326332D8500487D15 /* CompareSettingsDevices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5626332D8500487D15 /* CompareSettingsDevices.cpp */; }; + 9AF4DA7426332D8500487D15 /* CompareSettingsACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5B26332D8500487D15 /* CompareSettingsACPI.cpp */; }; + 9AF4DA7526332D8500487D15 /* CompareSettingsACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5B26332D8500487D15 /* CompareSettingsACPI.cpp */; }; + 9AF4DA7626332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp */; }; + 9AF4DA7726332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp */; }; + 9AF4DA7826332D8500487D15 /* CompareSettingsSystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5F26332D8500487D15 /* CompareSettingsSystemParameters.cpp */; }; + 9AF4DA7926332D8500487D15 /* CompareSettingsSystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA5F26332D8500487D15 /* CompareSettingsSystemParameters.cpp */; }; + 9AF4DA7A26332D8500487D15 /* CompareField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6126332D8500487D15 /* CompareField.cpp */; }; + 9AF4DA7B26332D8500487D15 /* CompareField.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6126332D8500487D15 /* CompareField.cpp */; }; + 9AF4DA7C26332D8500487D15 /* CompareSettingsGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6326332D8500487D15 /* CompareSettingsGraphics.cpp */; }; + 9AF4DA7D26332D8500487D15 /* CompareSettingsGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6326332D8500487D15 /* CompareSettingsGraphics.cpp */; }; + 9AF4DA7E26332D8500487D15 /* CompareSettingsBootGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6426332D8500487D15 /* CompareSettingsBootGraphics.cpp */; }; + 9AF4DA7F26332D8500487D15 /* CompareSettingsBootGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6426332D8500487D15 /* CompareSettingsBootGraphics.cpp */; }; + 9AF4DA8026332D8500487D15 /* CompareSettingsCPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6526332D8500487D15 /* CompareSettingsCPU.cpp */; }; + 9AF4DA8126332D8500487D15 /* CompareSettingsCPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6526332D8500487D15 /* CompareSettingsCPU.cpp */; }; + 9AF4DA8226332D8500487D15 /* CompareSettingsSmbios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6726332D8500487D15 /* CompareSettingsSmbios.cpp */; }; + 9AF4DA8326332D8500487D15 /* CompareSettingsSmbios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6726332D8500487D15 /* CompareSettingsSmbios.cpp */; }; + 9AF4DA8426332D8500487D15 /* CompareSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6926332D8500487D15 /* CompareSettings.cpp */; }; + 9AF4DA8526332D8500487D15 /* CompareSettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6926332D8500487D15 /* CompareSettings.cpp */; }; + 9AF4DA8626332D8500487D15 /* CompareSettingsRtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6C26332D8500487D15 /* CompareSettingsRtVariables.cpp */; }; + 9AF4DA8726332D8500487D15 /* CompareSettingsRtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6C26332D8500487D15 /* CompareSettingsRtVariables.cpp */; }; + 9AF4DA8826332D8500487D15 /* CompareSettingsGUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6F26332D8500487D15 /* CompareSettingsGUI.cpp */; }; + 9AF4DA8926332D8500487D15 /* CompareSettingsGUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA6F26332D8500487D15 /* CompareSettingsGUI.cpp */; }; + 9AF4DA8A26332D8500487D15 /* CompareSettingsBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA7026332D8500487D15 /* CompareSettingsBoot.cpp */; }; + 9AF4DA8B26332D8500487D15 /* CompareSettingsBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA7026332D8500487D15 /* CompareSettingsBoot.cpp */; }; + 9AF4DA8C26332D8500487D15 /* CompareSettingsQuirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA7126332D8500487D15 /* CompareSettingsQuirks.cpp */; }; + 9AF4DA8D26332D8500487D15 /* CompareSettingsQuirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DA7126332D8500487D15 /* CompareSettingsQuirks.cpp */; }; + 9AF4DFEF261F04B700365AD2 /* usbfix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923B525CD5B1C00BD5E8B /* usbfix.cpp */; }; + 9AF4DFF0261F04B700365AD2 /* card_vlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */; }; + 9AF4DFF1261F04B700365AD2 /* TagInt64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E224F3B537007A1107 /* TagInt64.cpp */; }; + 9AF4DFF2261F04B700365AD2 /* TagDict.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E124F3B537007A1107 /* TagDict.cpp */; }; + 9AF4DFF3261F04B700365AD2 /* MacOsVersion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4C5769255AAD07004F0B21 /* MacOsVersion.cpp */; }; + 9AF4DFF4261F04B700365AD2 /* TagData.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E524F3B537007A1107 /* TagData.cpp */; }; + 9AF4DFF5261F04B700365AD2 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A879270261882D9000B9362 /* Globals.cpp */; }; + 9AF4DFF7261F04B700365AD2 /* secureboot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9252325CD74CA00BD5E8B /* secureboot.cpp */; }; + 9AF4DFF8261F04B700365AD2 /* AcpiPatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240D25CD5B2D00BD5E8B /* AcpiPatcher.cpp */; }; + 9AF4DFF9261F04B700365AD2 /* XBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518124FC32F700FA1CC3 /* XBuffer.cpp */; }; + 9AF4DFFA261F04B700365AD2 /* ati.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240125CD5B2A00BD5E8B /* ati.cpp */; }; + 9AF4DFFB261F04B700365AD2 /* Console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240025CD5B2A00BD5E8B /* Console.cpp */; }; + 9AF4DFFC261F04B700365AD2 /* KextList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923C425CD5B2000BD5E8B /* KextList.cpp */; }; + 9AF4DFFE261F04B700365AD2 /* base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E53B24F3EDED007A1107 /* base64.cpp */; }; + 9AF4DFFF261F04B700365AD2 /* strlen_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */; }; + 9AF4E000261F04B700365AD2 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */; }; + 9AF4E001261F04B700365AD2 /* StateGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9241225CD5B2E00BD5E8B /* StateGenerator.cpp */; }; + 9AF4E002261F04B700365AD2 /* xcode_utf_fixed.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */; }; + 9AF4E004261F04B700365AD2 /* securemenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9252425CD74CA00BD5E8B /* securemenu.cpp */; }; + 9AF4E005261F04B700365AD2 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */; }; + 9AF4E006261F04B700365AD2 /* all_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07125CE730F00EEAF06 /* all_tests.cpp */; }; + 9AF4E007261F04B700365AD2 /* XArray_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07425CE730F00EEAF06 /* XArray_tests.cpp */; }; + 9AF4E008261F04B700365AD2 /* XString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4FFA7C2451C8330050B38B /* XString.cpp */; }; + 9AF4E00A261F04B700365AD2 /* egemb_icons.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9257425CD770F00BD5E8B /* egemb_icons.cpp */; }; + 9AF4E00B261F04B700365AD2 /* XTheme.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E525CD283300BD5E8B /* XTheme.cpp */; }; + 9AF4E00C261F04B700365AD2 /* Volumes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D125CD5B2300BD5E8B /* Volumes.cpp */; }; + 9AF4E00D261F04B700365AD2 /* PrintLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926E261882D9000B9362 /* PrintLib.c */; }; + 9AF4E00E261F04B700365AD2 /* LegacyBiosThunk.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239825CD5B1B00BD5E8B /* LegacyBiosThunk.cpp */; }; + 9AF4E00F261F04B700365AD2 /* HdaCodecDump.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923BB25CD5B1E00BD5E8B /* HdaCodecDump.cpp */; }; + 9AF4E010261F04B700365AD2 /* scroll_images.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256D25CD770D00BD5E8B /* scroll_images.cpp */; }; + 9AF4E011261F04B700365AD2 /* printf_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA91E2625CD59F100BD5E8B /* printf_lite.c */; }; + 9AF4E012261F04B700365AD2 /* find_replace_mask_OC_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */; }; + 9AF4E013261F04B700365AD2 /* DataHubCpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D825CD5B2500BD5E8B /* DataHubCpu.cpp */; }; + 9AF4E014261F04B700365AD2 /* TagKey.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4EC24F3B537007A1107 /* TagKey.cpp */; }; + 9AF4E015261F04B700365AD2 /* strcmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06A25CE730F00EEAF06 /* strcmp_test.cpp */; }; + 9AF4E016261F04B700365AD2 /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E52424F3BB6B007A1107 /* FloatLib.cpp */; }; + 9AF4E017261F04B700365AD2 /* MacOsVersion_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06925CE730F00EEAF06 /* MacOsVersion_test.cpp */; }; + 9AF4E018261F04B700365AD2 /* DevicePath.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240925CD5B2C00BD5E8B /* DevicePath.cpp */; }; + 9AF4E019261F04B700365AD2 /* MemoryOperation.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A838CB325347C36008303F5 /* MemoryOperation.c */; }; + 9AF4E01A261F04B700365AD2 /* tool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9251825CD74C800BD5E8B /* tool.cpp */; }; + 9AF4E01B261F04B700365AD2 /* SelfOem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239425CD5B1A00BD5E8B /* SelfOem.cpp */; }; + 9AF4E01C261F04B700365AD2 /* lockedgraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9251C25CD74C800BD5E8B /* lockedgraphics.cpp */; }; + 9AF4E01D261F04B700365AD2 /* Config_ACPI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0F25CF115100A3850D /* Config_ACPI.cpp */; }; + 9AF4E01E261F04B700365AD2 /* BaseMemoryLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926C261882D9000B9362 /* BaseMemoryLib.c */; }; + 9AF4E01F261F04B700365AD2 /* XIcon.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E225CD283300BD5E8B /* XIcon.cpp */; }; + 9AF4E020261F04B700365AD2 /* smbios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239A25CD5B1C00BD5E8B /* smbios.cpp */; }; + 9AF4E021261F04B700365AD2 /* LoadOptions_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06125CE730F00EEAF06 /* LoadOptions_test.cpp */; }; + 9AF4E022261F04B700365AD2 /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923CE25CD5B2200BD5E8B /* platformdata.cpp */; }; + 9AF4E023261F04B700365AD2 /* XImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E025CD283300BD5E8B /* XImage.cpp */; }; + 9AF4E024261F04B700365AD2 /* Edid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239625CD5B1B00BD5E8B /* Edid.cpp */; }; + 9AF4E025261F04B700365AD2 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9AF4E026261F04B700365AD2 /* securehash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9251D25CD74C900BD5E8B /* securehash.cpp */; }; + 9AF4E028261F04B700365AD2 /* posix_additions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E6261886F5000B9362 /* posix_additions.cpp */; }; + 9AF4E029261F04B700365AD2 /* legacy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9251E25CD74C900BD5E8B /* legacy.cpp */; }; + 9AF4E02A261F04B700365AD2 /* Self.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923E325CD5B2700BD5E8B /* Self.cpp */; }; + 9AF4E02B261F04B700365AD2 /* VectorGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9257325CD770F00BD5E8B /* VectorGraphics.cpp */; }; + 9AF4E02C261F04B700365AD2 /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFB5F792610EDD50078E53D /* Config_Quirks.cpp */; }; + 9AF4E02D261F04B700365AD2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; + 9AF4E02F261F04B700365AD2 /* cpu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FE25CD5B2A00BD5E8B /* cpu.cpp */; }; + 9AF4E030261F04B700365AD2 /* spd.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239B25CD5B1C00BD5E8B /* spd.cpp */; }; + 9AF4E031261F04B700365AD2 /* SafeString.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA90CE225CD451700BD5E8B /* SafeString.c */; }; + 9AF4E032261F04B700365AD2 /* nanosvg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256825CD770C00BD5E8B /* nanosvg.cpp */; }; + 9AF4E033261F04B700365AD2 /* XObjArray_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07325CE730F00EEAF06 /* XObjArray_tests.cpp */; }; + 9AF4E034261F04B700365AD2 /* hda.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FC25CD5B2900BD5E8B /* hda.cpp */; }; + 9AF4E035261F04B700365AD2 /* Hibernate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D925CD5B2500BD5E8B /* Hibernate.cpp */; }; + 9AF4E037261F04B700365AD2 /* XToolsCommon_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */; }; + 9AF4E039261F04B700365AD2 /* XCinema.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E625CD283400BD5E8B /* XCinema.cpp */; }; + 9AF4E03A261F04B700365AD2 /* device_inject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240725CD5B2C00BD5E8B /* device_inject.cpp */; }; + 9AF4E03B261F04B700365AD2 /* sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D025CD5B2300BD5E8B /* sound.cpp */; }; + 9AF4E03C261F04B700365AD2 /* find_replace_mask_Clover_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06E25CE730F00EEAF06 /* find_replace_mask_Clover_tests.cpp */; }; + 9AF4E03D261F04B700365AD2 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9AF4E03E261F04B700365AD2 /* nvidia.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923E025CD5B2700BD5E8B /* nvidia.cpp */; }; + 9AF4E03F261F04B700365AD2 /* APFS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923DA25CD5B2500BD5E8B /* APFS.cpp */; }; + 9AF4E040261F04B700365AD2 /* text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256225CD770B00BD5E8B /* text.cpp */; }; + 9AF4E041261F04B700365AD2 /* config-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E425CFE7D000F14179 /* config-test.cpp */; }; + 9AF4E042261F04B700365AD2 /* VersionString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */; }; + 9AF4E043261F04B700365AD2 /* bootscreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9251F25CD74C900BD5E8B /* bootscreen.cpp */; }; + 9AF4E044261F04B700365AD2 /* BdsConnect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239525CD5B1A00BD5E8B /* BdsConnect.cpp */; }; + 9AF4E045261F04B700365AD2 /* XString_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */; }; + 9AF4E047261F04B700365AD2 /* TagBool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E024F3B537007A1107 /* TagBool.cpp */; }; + 9AF4E048261F04B700365AD2 /* Nvram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D425CD5B2400BD5E8B /* Nvram.cpp */; }; + 9AF4E049261F04B700365AD2 /* shared_with_menu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD469472452B33700D6D0DB /* shared_with_menu.cpp */; }; + 9AF4E04A261F04B700365AD2 /* Config_ACPI_DSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */; }; + 9AF4E04B261F04B700365AD2 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */; }; + 9AF4E04C261F04B700365AD2 /* StartupSound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FF25CD5B2A00BD5E8B /* StartupSound.cpp */; }; + 9AF4E04D261F04B700365AD2 /* REFIT_MENU_SCREEN.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9253925CD764800BD5E8B /* REFIT_MENU_SCREEN.cpp */; }; + 9AF4E04E261F04B700365AD2 /* lodepng.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9257225CD770E00BD5E8B /* lodepng.cpp */; }; + 9AF4E04F261F04B700365AD2 /* icns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AB25CD79AA00BD5E8B /* icns.cpp */; }; + 9AF4E050261F04B700365AD2 /* plist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DD24F3B536007A1107 /* plist.cpp */; }; + 9AF4E051261F04B700365AD2 /* abort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792E7261886F5000B9362 /* abort.cpp */; }; + 9AF4E052261F04B700365AD2 /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F0261886F5000B9362 /* BootLog.cpp */; }; + 9AF4E053261F04B700365AD2 /* Events.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FD25CD5B2900BD5E8B /* Events.cpp */; }; + 9AF4E054261F04B700365AD2 /* FixBiosDsdt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240625CD5B2B00BD5E8B /* FixBiosDsdt.cpp */; }; + 9AF4E055261F04B700365AD2 /* BootOptions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D225CD5B2300BD5E8B /* BootOptions.cpp */; }; + 9AF4E056261F04B700365AD2 /* kext_inject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923E125CD5B2700BD5E8B /* kext_inject.cpp */; }; + 9AF4E057261F04B700365AD2 /* AmlGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FB25CD5B2900BD5E8B /* AmlGenerator.cpp */; }; + 9AF4E058261F04B700365AD2 /* xml.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DF24F3B536007A1107 /* xml.cpp */; }; + 9AF4E059261F04B700365AD2 /* unicode_conversions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */; }; + 9AF4E05A261F04B700365AD2 /* MemLogLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87920B261882D9000B9362 /* MemLogLib.c */; }; + 9AF4E05C261F04B700365AD2 /* nanosvgrast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256725CD770C00BD5E8B /* nanosvgrast.cpp */; }; + 9AF4E05E261F04B700365AD2 /* menu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AC25CD79AA00BD5E8B /* menu.cpp */; }; + 9AF4E05F261F04B700365AD2 /* DebugLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926F261882D9000B9362 /* DebugLib.c */; }; + 9AF4E060261F04B700365AD2 /* kext_patcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923C825CD5B2100BD5E8B /* kext_patcher.cpp */; }; + 9AF4E061261F04B700365AD2 /* menu_items.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9253825CD764800BD5E8B /* menu_items.cpp */; }; + 9AF4E062261F04B700365AD2 /* libscreen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256625CD770C00BD5E8B /* libscreen.cpp */; }; + 9AF4E063261F04B700365AD2 /* screen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925AE25CD79AB00BD5E8B /* screen.cpp */; }; + 9AF4E064261F04B700365AD2 /* Config_GUI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AF425CF115100A3850D /* Config_GUI.cpp */; }; + 9AF4E065261F04B700365AD2 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */; }; + 9AF4E066261F04B700365AD2 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */; }; + 9AF4E068261F04B700365AD2 /* Net.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923E425CD5B2800BD5E8B /* Net.cpp */; }; + 9AF4E069261F04B700365AD2 /* LegacyBoot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923D625CD5B2400BD5E8B /* LegacyBoot.cpp */; }; + 9AF4E06A261F04B700365AD2 /* KERNEL_AND_KEXT_PATCHES.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240F25CD5B2D00BD5E8B /* KERNEL_AND_KEXT_PATCHES.cpp */; }; + 9AF4E06B261F04B700365AD2 /* securevars.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9252925CD74CB00BD5E8B /* securevars.cpp */; }; + 9AF4E06C261F04B700365AD2 /* PlatformDriverOverride.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9239925CD5B1B00BD5E8B /* PlatformDriverOverride.cpp */; }; + 9AF4E06D261F04B700365AD2 /* BmLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA918C625CD4CD300BD5E8B /* BmLib.cpp */; }; + 9AF4E06E261F04B700365AD2 /* gma.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240225CD5B2B00BD5E8B /* gma.cpp */; }; + 9AF4E06F261F04B700365AD2 /* XRBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */; }; + 9AF4E070261F04B700365AD2 /* egemb_icons_dark.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256125CD770A00BD5E8B /* egemb_icons_dark.cpp */; }; + 9AF4E071261F04B700365AD2 /* XStringArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */; }; + 9AF4E072261F04B700365AD2 /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */; }; + 9AF4E073261F04B700365AD2 /* kernel_patcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9240525CD5B2B00BD5E8B /* kernel_patcher.cpp */; }; + 9AF4E074261F04B700365AD2 /* common.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9252A25CD74CB00BD5E8B /* common.cpp */; }; + 9AF4E075261F04B700365AD2 /* printlib-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06B25CE730F00EEAF06 /* printlib-test.cpp */; }; + 9AF4E076261F04B700365AD2 /* ConfigPlistClass.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */; }; + 9AF4E077261F04B700365AD2 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E50025CD2FF400BD5E8B /* Utils.cpp */; }; + 9AF4E078261F04B700365AD2 /* strncmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07525CE730F00EEAF06 /* strncmp_test.cpp */; }; + 9AF4E07A261F04B700365AD2 /* MemoryAllocationLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */; }; + 9AF4E07B261F04B700365AD2 /* TagArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E624F3B537007A1107 /* TagArray.cpp */; }; + 9AF4E07C261F04B700365AD2 /* DataHub.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A272A7D25D5062D00F03E19 /* DataHub.cpp */; }; + 9AF4E07D261F04B700365AD2 /* strcasecmp_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */; }; + 9AF4E07E261F04B700365AD2 /* lib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA918BC25CD4B5900BD5E8B /* lib.cpp */; }; + 9AF4E07F261F04B700365AD2 /* TagString8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4DB24F3B536007A1107 /* TagString8.cpp */; }; + 9AF4E080261F04B700365AD2 /* plist_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06825CE730F00EEAF06 /* plist_tests.cpp */; }; + 9AF4E081261F04B700365AD2 /* loader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E51B25CD306700BD5E8B /* loader.cpp */; }; + 9AF4E082261F04B700365AD2 /* Injectors.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923FA25CD5B2900BD5E8B /* Injectors.cpp */; }; + 9AF4E083261F04B700365AD2 /* load_icns.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256B25CD770D00BD5E8B /* load_icns.cpp */; }; + 9AF4E084261F04B700365AD2 /* global_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD05C25CE730F00EEAF06 /* global_test.cpp */; }; + 9AF4E085261F04B700365AD2 /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA923C325CD5B1F00BD5E8B /* guid.cpp */; }; + 9AF4E087261F04B700365AD2 /* TagDate.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4E424F3B537007A1107 /* TagDate.cpp */; }; + 9AF4E088261F04B700365AD2 /* printf_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06325CE730F00EEAF06 /* printf_lite-test.cpp */; }; + 9AF4E08B261F04B700365AD2 /* XStringArray_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06C25CE730F00EEAF06 /* XStringArray_test.cpp */; }; + 9AF4E08C261F04B700365AD2 /* Settings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A852C0E25CC39E900C5662E /* Settings.cpp */; }; + 9AF4E08D261F04B700365AD2 /* b64cdecode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E51E24F3B82A007A1107 /* b64cdecode.cpp */; }; + 9AF4E08E261F04B700365AD2 /* XBuffer_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06025CE730F00EEAF06 /* XBuffer_tests.cpp */; }; + 9AF4E08F261F04B700365AD2 /* egemb_font.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9257125CD770E00BD5E8B /* egemb_font.cpp */; }; + 9AF4E090261F04B700365AD2 /* TagFloat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A36E4EA24F3B537007A1107 /* TagFloat.cpp */; }; + 9AF4E091261F04B700365AD2 /* image.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9256F25CD770E00BD5E8B /* image.cpp */; }; + 9AF4E092261F04B700365AD2 /* BasicIO.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A8792F1261886F5000B9362 /* BasicIO.cpp */; }; + 9AF4E093261F04B700365AD2 /* REFIT_MAINMENU_SCREEN.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AD7B14F26079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp */; }; + 9AF4E094261F04B700365AD2 /* Platform.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A0B085D240300E000E2B470 /* Platform.cpp */; }; + 9AF4E095261F04B700365AD2 /* XPointer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA9E4E725CD283400BD5E8B /* XPointer.cpp */; }; + 9AF4E11A261F070700365AD2 /* MtrrLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFE5261F045E00365AD2 /* MtrrLib.lib */; }; + 9AF4E133261F0A1200365AD2 /* BaseMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E11E261F0A0E00365AD2 /* BaseMemoryLib.lib */; }; + 9AF4E134261F0A1200365AD2 /* BasePciLibCf8.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E11F261F0A0F00365AD2 /* BasePciLibCf8.lib */; }; + 9AF4E135261F0A1200365AD2 /* DxeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E120261F0A0F00365AD2 /* DxeServicesTableLib.lib */; }; + 9AF4E136261F0A1200365AD2 /* UefiApplicationEntryPoint.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E121261F0A0F00365AD2 /* UefiApplicationEntryPoint.lib */; }; + 9AF4E137261F0A1200365AD2 /* BaseLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E122261F0A0F00365AD2 /* BaseLib.lib */; }; + 9AF4E138261F0A1200365AD2 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E123261F0A0F00365AD2 /* BaseDebugPrintErrorLevelLib.lib */; }; + 9AF4E139261F0A1200365AD2 /* DxeServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E124261F0A0F00365AD2 /* DxeServicesLib.lib */; }; + 9AF4E13A261F0A1200365AD2 /* BasePciCf8Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E125261F0A0F00365AD2 /* BasePciCf8Lib.lib */; }; + 9AF4E13B261F0A1200365AD2 /* DxeHobLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E126261F0A1000365AD2 /* DxeHobLib.lib */; }; + 9AF4E13C261F0A1200365AD2 /* PeCoffExtraActionLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E127261F0A1000365AD2 /* PeCoffExtraActionLibNull.lib */; }; + 9AF4E13D261F0A1200365AD2 /* UefiBootServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E128261F0A1000365AD2 /* UefiBootServicesTableLib.lib */; }; + 9AF4E13E261F0A1200365AD2 /* UefiDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E129261F0A1000365AD2 /* UefiDevicePathLib.lib */; }; + 9AF4E13F261F0A1200365AD2 /* BasePrintLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12A261F0A1000365AD2 /* BasePrintLib.lib */; }; + 9AF4E140261F0A1200365AD2 /* BaseIoLibIntrinsic.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12B261F0A1100365AD2 /* BaseIoLibIntrinsic.lib */; }; + 9AF4E141261F0A1200365AD2 /* UefiMemoryAllocationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12C261F0A1100365AD2 /* UefiMemoryAllocationLib.lib */; }; + 9AF4E142261F0A1200365AD2 /* BaseSerialPortLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12D261F0A1100365AD2 /* BaseSerialPortLibNull.lib */; }; + 9AF4E143261F0A1200365AD2 /* BaseCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12E261F0A1100365AD2 /* BaseCpuLib.lib */; }; + 9AF4E144261F0A1200365AD2 /* UefiFileHandleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E12F261F0A1100365AD2 /* UefiFileHandleLib.lib */; }; + 9AF4E145261F0A1200365AD2 /* UefiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E130261F0A1100365AD2 /* UefiLib.lib */; }; + 9AF4E146261F0A1200365AD2 /* UefiRuntimeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E131261F0A1200365AD2 /* UefiRuntimeServicesTableLib.lib */; }; + 9AF4E147261F0A1200365AD2 /* BaseDebugLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4E132261F0A1200365AD2 /* BaseDebugLibNull.lib */; }; + 9AF4E148261F0A9900365AD2 /* AutoGen.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AF4DFEC261F045E00365AD2 /* AutoGen.c */; }; + 9AF4E17D261F0B3000365AD2 /* ControlMsrE2.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA1261F045E00365AD2 /* ControlMsrE2.lib */; }; + 9AF4E17E261F0B3000365AD2 /* OcAcpiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBA261F045E00365AD2 /* OcAcpiLib.lib */; }; + 9AF4E17F261F0B3000365AD2 /* OcAfterBootCompatLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB3261F045E00365AD2 /* OcAfterBootCompatLib.lib */; }; + 9AF4E180261F0B3000365AD2 /* OcApfsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAF261F045E00365AD2 /* OcApfsLib.lib */; }; + 9AF4E181261F0B3000365AD2 /* OcAppleBootPolicyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC6261F045E00365AD2 /* OcAppleBootPolicyLib.lib */; }; + 9AF4E182261F0B3000365AD2 /* OcAppleChunklistLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9D261F045E00365AD2 /* OcAppleChunklistLib.lib */; }; + 9AF4E183261F0B3000365AD2 /* OcAppleDiskImageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBB261F045E00365AD2 /* OcAppleDiskImageLib.lib */; }; + 9AF4E184261F0B3000365AD2 /* OcAppleEventLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF99261F045E00365AD2 /* OcAppleEventLib.lib */; }; + 9AF4E185261F0B3000365AD2 /* OcAppleImageVerificationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB5261F045E00365AD2 /* OcAppleImageVerificationLib.lib */; }; + 9AF4E186261F0B3000365AD2 /* OcAppleImg4Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB9261F045E00365AD2 /* OcAppleImg4Lib.lib */; }; + 9AF4E187261F0B3000365AD2 /* OcAppleKernelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA9261F045E00365AD2 /* OcAppleKernelLib.lib */; }; + 9AF4E188261F0B3000365AD2 /* OcAppleKeyMapLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA2261F045E00365AD2 /* OcAppleKeyMapLib.lib */; }; + 9AF4E189261F0B3000365AD2 /* OcAppleKeysLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAA261F045E00365AD2 /* OcAppleKeysLib.lib */; }; + 9AF4E18A261F0B3000365AD2 /* OcAppleRamDiskLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAD261F045E00365AD2 /* OcAppleRamDiskLib.lib */; }; + 9AF4E18B261F0B3000365AD2 /* OcAppleSecureBootLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC7261F045E00365AD2 /* OcAppleSecureBootLib.lib */; }; + 9AF4E18C261F0B3000365AD2 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBF261F045E00365AD2 /* OcAppleUserInterfaceThemeLib.lib */; }; + 9AF4E18D261F0B3000365AD2 /* OcAudioLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9B261F045E00365AD2 /* OcAudioLib.lib */; }; + 9AF4E18E261F0B3000365AD2 /* OcBootManagementLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB8261F045E00365AD2 /* OcBootManagementLib.lib */; }; + 9AF4E18F261F0B3000365AD2 /* OcCompressionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB4261F045E00365AD2 /* OcCompressionLib.lib */; }; + 9AF4E190261F0B3000365AD2 /* OcConfigurationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF95261F045E00365AD2 /* OcConfigurationLib.lib */; }; + 9AF4E191261F0B3000365AD2 /* OcConsoleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA3261F045E00365AD2 /* OcConsoleLib.lib */; }; + 9AF4E192261F0B3000365AD2 /* OcCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA6261F045E00365AD2 /* OcCpuLib.lib */; }; + 9AF4E193261F0B3000365AD2 /* OcCryptoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9A261F045E00365AD2 /* OcCryptoLib.lib */; }; + 9AF4E194261F0B3000365AD2 /* OcDataHubLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF93261F045E00365AD2 /* OcDataHubLib.lib */; }; + 9AF4E195261F0B3000365AD2 /* OcDebugLogLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA5261F045E00365AD2 /* OcDebugLogLib.lib */; }; + 9AF4E196261F0B3000365AD2 /* OcDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA8261F045E00365AD2 /* OcDevicePathLib.lib */; }; + 9AF4E197261F0B3000365AD2 /* OcDevicePropertyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9C261F045E00365AD2 /* OcDevicePropertyLib.lib */; }; + 9AF4E198261F0B3000365AD2 /* OcDeviceTreeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC0261F045E00365AD2 /* OcDeviceTreeLib.lib */; }; + 9AF4E199261F0B3000365AD2 /* OcDriverConnectionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC2261F045E00365AD2 /* OcDriverConnectionLib.lib */; }; + 9AF4E19A261F0B3000365AD2 /* OcFileLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBE261F045E00365AD2 /* OcFileLib.lib */; }; + 9AF4E19B261F0B3000365AD2 /* OcFirmwareVolumeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF96261F045E00365AD2 /* OcFirmwareVolumeLib.lib */; }; + 9AF4E19C261F0B3000365AD2 /* OcGuardLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA7261F045E00365AD2 /* OcGuardLib.lib */; }; + 9AF4E19D261F0B3000365AD2 /* OcHashServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC4261F045E00365AD2 /* OcHashServicesLib.lib */; }; + 9AF4E19E261F0B3000365AD2 /* OcInputLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAB261F045E00365AD2 /* OcInputLib.lib */; }; + 9AF4E19F261F0B3000365AD2 /* OcMachoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBC261F045E00365AD2 /* OcMachoLib.lib */; }; + 9AF4E1A0261F0B3000365AD2 /* OcMacInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB7261F045E00365AD2 /* OcMacInfoLib.lib */; }; + 9AF4E1A1261F0B3000365AD2 /* OcMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB6261F045E00365AD2 /* OcMemoryLib.lib */; }; + 9AF4E1A2261F0B3000365AD2 /* OcMiscLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC5261F045E00365AD2 /* OcMiscLib.lib */; }; + 9AF4E1A3261F0B3000365AD2 /* OcOSInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC1261F045E00365AD2 /* OcOSInfoLib.lib */; }; + 9AF4E1A4261F0B3000365AD2 /* OcPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAE261F045E00365AD2 /* OcPeCoffLib.lib */; }; + 9AF4E1A5261F0B3000365AD2 /* OcRngLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB2261F045E00365AD2 /* OcRngLib.lib */; }; + 9AF4E1A6261F0B3000365AD2 /* OcRtcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA4261F045E00365AD2 /* OcRtcLib.lib */; }; + 9AF4E1A7261F0B3000365AD2 /* OcSerializeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB1261F045E00365AD2 /* OcSerializeLib.lib */; }; + 9AF4E1A8261F0B3000365AD2 /* OcSmbiosLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFB0261F045E00365AD2 /* OcSmbiosLib.lib */; }; + 9AF4E1A9261F0B3000365AD2 /* OcSmcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFBD261F045E00365AD2 /* OcSmcLib.lib */; }; + 9AF4E1AA261F0B3000365AD2 /* OcStorageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF97261F045E00365AD2 /* OcStorageLib.lib */; }; + 9AF4E1AB261F0B3000365AD2 /* OcStringLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9E261F045E00365AD2 /* OcStringLib.lib */; }; + 9AF4E1AC261F0B3000365AD2 /* OcTemplateLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF9F261F045E00365AD2 /* OcTemplateLib.lib */; }; + 9AF4E1AD261F0B3000365AD2 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFA0261F045E00365AD2 /* OcUnicodeCollationEngGenericLib.lib */; }; + 9AF4E1AE261F0B3000365AD2 /* OcVirtualFsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF98261F045E00365AD2 /* OcVirtualFsLib.lib */; }; + 9AF4E1AF261F0B3000365AD2 /* OcXmlLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DF94261F045E00365AD2 /* OcXmlLib.lib */; }; + 9AF4E1B0261F0B3000365AD2 /* OpenCore.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC3261F045E00365AD2 /* OpenCore.lib */; }; + 9AF4E1B1261F0B3000365AD2 /* OpenRuntime.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFAC261F045E00365AD2 /* OpenRuntime.lib */; }; + 9AF4E1B2261F0B3F00365AD2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925A925CD79A900BD5E8B /* main.cpp */; }; + 9AF4E1B3261F0C4800365AD2 /* FrameBufferBltLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFE9261F045E00365AD2 /* FrameBufferBltLib.lib */; }; + 9AF4E1BA261F0D4800365AD2 /* VideoBiosPatchLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFC9261F045E00365AD2 /* VideoBiosPatchLib.lib */; }; + 9AF4E1BB261F0D4800365AD2 /* VBoxPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFCA261F045E00365AD2 /* VBoxPeCoffLib.lib */; }; + 9AF4E1BC261F0D4800365AD2 /* DuetTimerLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFCB261F045E00365AD2 /* DuetTimerLib.lib */; }; + 9AF4E1BD261F0D4800365AD2 /* OpensslLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFCC261F045E00365AD2 /* OpensslLib.lib */; }; + 9AF4E1BE261F0D4800365AD2 /* HdaDevicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFCD261F045E00365AD2 /* HdaDevicesLib.lib */; }; + 9AF4E1BF261F0D4800365AD2 /* WaveLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AF4DFCE261F045E00365AD2 /* WaveLib.lib */; }; + 9AF4E1C0261F0D9500365AD2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925A925CD79A900BD5E8B /* main.cpp */; }; 9AFB5F7A2610EDD50078E53D /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFB5F792610EDD50078E53D /* Config_Quirks.cpp */; }; - 9AFDCEA325CD9A3300EEAF06 /* OcDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEA225CD9A3200EEAF06 /* OcDevicePathLib.lib */; }; - 9AFDCEA525CD9B1C00EEAF06 /* BaseCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEA425CD9B1C00EEAF06 /* BaseCpuLib.lib */; }; - 9AFDCEA725CD9B2C00EEAF06 /* BaseSerialPortLib16550.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEA625CD9B2B00EEAF06 /* BaseSerialPortLib16550.lib */; }; - 9AFDCEA925CD9B3700EEAF06 /* FrameBufferBltLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEA825CD9B3700EEAF06 /* FrameBufferBltLib.lib */; }; - 9AFDCEAD25CD9B5800EEAF06 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEAC25CD9B5700EEAF06 /* BaseDebugPrintErrorLevelLib.lib */; }; - 9AFDCEAF25CD9B6500EEAF06 /* BaseIoLibIntrinsic.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEAE25CD9B6500EEAF06 /* BaseIoLibIntrinsic.lib */; }; - 9AFDCEB625CD9BC400EEAF06 /* BasePciCf8Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEB525CD9BC400EEAF06 /* BasePciCf8Lib.lib */; }; - 9AFDCEC225CD9D0700EEAF06 /* BasePciLibCf8.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEC125CD9D0700EEAF06 /* BasePciLibCf8.lib */; }; - 9AFDCEC725CD9D1600EEAF06 /* PeCoffExtraActionLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEC625CD9D1500EEAF06 /* PeCoffExtraActionLibNull.lib */; }; - 9AFDCECC25CD9D2600EEAF06 /* DxeHobLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCECB25CD9D2600EEAF06 /* DxeHobLib.lib */; }; - 9AFDCED125CD9D3000EEAF06 /* DxeServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCED025CD9D3000EEAF06 /* DxeServicesLib.lib */; }; - 9AFDCED625CD9D3D00EEAF06 /* DxeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCED525CD9D3D00EEAF06 /* DxeServicesTableLib.lib */; }; - 9AFDCEDB25CD9D4900EEAF06 /* UefiApplicationEntryPoint.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEDA25CD9D4800EEAF06 /* UefiApplicationEntryPoint.lib */; }; - 9AFDCEE025CD9D5300EEAF06 /* UefiBootServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEDF25CD9D5300EEAF06 /* UefiBootServicesTableLib.lib */; }; - 9AFDCEE525CD9D6000EEAF06 /* UefiDevicePathLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEE425CD9D6000EEAF06 /* UefiDevicePathLib.lib */; }; - 9AFDCEEA25CD9D6B00EEAF06 /* UefiFileHandleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEE925CD9D6B00EEAF06 /* UefiFileHandleLib.lib */; }; - 9AFDCEEF25CD9D7700EEAF06 /* UefiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEEE25CD9D7700EEAF06 /* UefiLib.lib */; }; - 9AFDCEF925CD9D9500EEAF06 /* UefiRuntimeServicesTableLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCEF825CD9D9500EEAF06 /* UefiRuntimeServicesTableLib.lib */; }; - 9AFDCF0425CD9DFA00EEAF06 /* OcXmlLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF0325CD9DFA00EEAF06 /* OcXmlLib.lib */; }; - 9AFDCF0925CD9E0800EEAF06 /* OcVirtualFsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF0825CD9E0800EEAF06 /* OcVirtualFsLib.lib */; }; - 9AFDCF0E25CD9E2100EEAF06 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF0D25CD9E2100EEAF06 /* OcUnicodeCollationEngGenericLib.lib */; }; - 9AFDCF1325CD9E6000EEAF06 /* OcTemplateLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF1225CD9E6000EEAF06 /* OcTemplateLib.lib */; }; - 9AFDCF1825CD9E6A00EEAF06 /* OcStringLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF1725CD9E6A00EEAF06 /* OcStringLib.lib */; }; - 9AFDCF1D25CD9EAD00EEAF06 /* OcStorageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF1C25CD9EAD00EEAF06 /* OcStorageLib.lib */; }; - 9AFDCF2225CD9EBA00EEAF06 /* OcSmcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF2125CD9EBA00EEAF06 /* OcSmcLib.lib */; }; - 9AFDCF2725CD9EC400EEAF06 /* OcSmbiosLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF2625CD9EC400EEAF06 /* OcSmbiosLib.lib */; }; - 9AFDCF2C25CD9ED200EEAF06 /* OcSerializeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF2B25CD9ED100EEAF06 /* OcSerializeLib.lib */; }; - 9AFDCF3125CD9EF800EEAF06 /* OcRtcLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF3025CD9EF800EEAF06 /* OcRtcLib.lib */; }; - 9AFDCF3625CD9F0700EEAF06 /* OcRngLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF3525CD9F0700EEAF06 /* OcRngLib.lib */; }; - 9AFDCF3B25CD9F1300EEAF06 /* OcPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF3A25CD9F1200EEAF06 /* OcPeCoffLib.lib */; }; - 9AFDCF4025CD9F1E00EEAF06 /* OcOSInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF3F25CD9F1D00EEAF06 /* OcOSInfoLib.lib */; }; - 9AFDCF4525CD9F2B00EEAF06 /* OcMiscLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF4425CD9F2B00EEAF06 /* OcMiscLib.lib */; }; - 9AFDCF4A25CD9F3500EEAF06 /* OcMemoryLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF4925CD9F3500EEAF06 /* OcMemoryLib.lib */; }; - 9AFDCF4F25CD9F3F00EEAF06 /* OcMachoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF4E25CD9F3E00EEAF06 /* OcMachoLib.lib */; }; - 9AFDCF5425CD9F4900EEAF06 /* OcMacInfoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF5325CD9F4900EEAF06 /* OcMacInfoLib.lib */; }; - 9AFDCF5925CD9F5400EEAF06 /* OcInputLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF5825CD9F5400EEAF06 /* OcInputLib.lib */; }; - 9AFDCF5E25CD9F6000EEAF06 /* OcHashServicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF5D25CD9F6000EEAF06 /* OcHashServicesLib.lib */; }; - 9AFDCF6325CD9F6A00EEAF06 /* OcGuardLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF6225CD9F6A00EEAF06 /* OcGuardLib.lib */; }; - 9AFDCF6825CD9F7500EEAF06 /* OcFirmwareVolumeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF6725CD9F7500EEAF06 /* OcFirmwareVolumeLib.lib */; }; - 9AFDCF6D25CD9F7F00EEAF06 /* OcFileLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF6C25CD9F7F00EEAF06 /* OcFileLib.lib */; }; - 9AFDCF7225CD9F8800EEAF06 /* OcDriverConnectionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF7125CD9F8800EEAF06 /* OcDriverConnectionLib.lib */; }; - 9AFDCF7725CD9F9200EEAF06 /* OcDeviceTreeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF7625CD9F9200EEAF06 /* OcDeviceTreeLib.lib */; }; - 9AFDCF7C25CD9F9A00EEAF06 /* OcDevicePropertyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF7B25CD9F9A00EEAF06 /* OcDevicePropertyLib.lib */; }; - 9AFDCF9225CD9FE800EEAF06 /* OcDebugLogLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF9125CD9FE800EEAF06 /* OcDebugLogLib.lib */; }; - 9AFDCF9725CD9FF200EEAF06 /* OcDataHubLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF9625CD9FF100EEAF06 /* OcDataHubLib.lib */; }; - 9AFDCF9C25CD9FFA00EEAF06 /* OcCryptoLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCF9B25CD9FFA00EEAF06 /* OcCryptoLib.lib */; }; - 9AFDCFA125CDA00300EEAF06 /* OcCpuLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFA025CDA00200EEAF06 /* OcCpuLib.lib */; }; - 9AFDCFA625CDA00C00EEAF06 /* OcConsoleLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFA525CDA00C00EEAF06 /* OcConsoleLib.lib */; }; - 9AFDCFAB25CDA01500EEAF06 /* OcConfigurationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFAA25CDA01400EEAF06 /* OcConfigurationLib.lib */; }; - 9AFDCFB025CDA01D00EEAF06 /* OcCompressionLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFAF25CDA01D00EEAF06 /* OcCompressionLib.lib */; }; - 9AFDCFB525CDA02500EEAF06 /* OcBootManagementLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFB425CDA02500EEAF06 /* OcBootManagementLib.lib */; }; - 9AFDCFBA25CDA03000EEAF06 /* OcAudioLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFB925CDA02F00EEAF06 /* OcAudioLib.lib */; }; - 9AFDCFBF25CDA03800EEAF06 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFBE25CDA03800EEAF06 /* OcAppleUserInterfaceThemeLib.lib */; }; - 9AFDCFC425CDA04100EEAF06 /* OcAppleSecureBootLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFC325CDA04100EEAF06 /* OcAppleSecureBootLib.lib */; }; - 9AFDCFC925CDA04900EEAF06 /* OcAppleRamDiskLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFC825CDA04900EEAF06 /* OcAppleRamDiskLib.lib */; }; - 9AFDCFCE25CDA05200EEAF06 /* OcAppleKeysLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFCD25CDA05200EEAF06 /* OcAppleKeysLib.lib */; }; - 9AFDCFD325CDA05E00EEAF06 /* OcAppleKeyMapLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFD225CDA05D00EEAF06 /* OcAppleKeyMapLib.lib */; }; - 9AFDCFD825CDA06600EEAF06 /* OcAppleKernelLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFD725CDA06600EEAF06 /* OcAppleKernelLib.lib */; }; - 9AFDCFDD25CDA06F00EEAF06 /* OcAppleImg4Lib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFDC25CDA06F00EEAF06 /* OcAppleImg4Lib.lib */; }; - 9AFDCFE225CDA07800EEAF06 /* OcAppleImageVerificationLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFE125CDA07700EEAF06 /* OcAppleImageVerificationLib.lib */; }; - 9AFDCFE725CDA07F00EEAF06 /* OcAppleEventLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFE625CDA07F00EEAF06 /* OcAppleEventLib.lib */; }; - 9AFDCFEC25CDA08800EEAF06 /* OcAppleDiskImageLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFEB25CDA08800EEAF06 /* OcAppleDiskImageLib.lib */; }; - 9AFDCFF125CDA09200EEAF06 /* OcAppleChunklistLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFF025CDA09100EEAF06 /* OcAppleChunklistLib.lib */; }; - 9AFDCFF625CDA09B00EEAF06 /* OcAppleBootPolicyLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFF525CDA09A00EEAF06 /* OcAppleBootPolicyLib.lib */; }; - 9AFDCFFB25CDA0A300EEAF06 /* OcApfsLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFFA25CDA0A200EEAF06 /* OcApfsLib.lib */; }; - 9AFDD00025CDA0B300EEAF06 /* OcAfterBootCompatLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDCFFF25CDA0B300EEAF06 /* OcAfterBootCompatLib.lib */; }; - 9AFDD00525CDA0BF00EEAF06 /* OcAcpiLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD00425CDA0BF00EEAF06 /* OcAcpiLib.lib */; }; - 9AFDD00B25CDA2AA00EEAF06 /* BasePlatformHookLibNull.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD00A25CDA2AA00EEAF06 /* BasePlatformHookLibNull.lib */; }; - 9AFDD01225CDA2E100EEAF06 /* DuetTimerLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD01125CDA2E100EEAF06 /* DuetTimerLib.lib */; }; - 9AFDD01725CDA31B00EEAF06 /* WaveLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD01625CDA31B00EEAF06 /* WaveLib.lib */; }; - 9AFDD01C25CDA32400EEAF06 /* VideoBiosPatchLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD01B25CDA32400EEAF06 /* VideoBiosPatchLib.lib */; }; - 9AFDD02125CDA32E00EEAF06 /* VBoxPeCoffLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD02025CDA32E00EEAF06 /* VBoxPeCoffLib.lib */; }; - 9AFDD02625CDA33800EEAF06 /* OpensslLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD02525CDA33800EEAF06 /* OpensslLib.lib */; }; - 9AFDD02B25CDA34800EEAF06 /* HdaDevicesLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD02A25CDA34800EEAF06 /* HdaDevicesLib.lib */; }; - 9AFDD03125CDA37900EEAF06 /* MtrrLib.lib in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD03025CDA37900EEAF06 /* MtrrLib.lib */; }; - 9AFDD03725CDA3F900EEAF06 /* AutoGen.obj in Frameworks */ = {isa = PBXBuildFile; fileRef = 9AFDD03625CDA3F900EEAF06 /* AutoGen.obj */; }; - 9AFDD04125CDA73500EEAF06 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA925A925CD79A900BD5E8B /* main.cpp */; }; - 9AFDD04725CDB0F900EEAF06 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AA918B325CD4A0C00BD5E8B /* Globals.cpp */; }; - 9AFDD05025CDBAA700EEAF06 /* MemLogLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD04F25CDBAA700EEAF06 /* MemLogLib.c */; }; 9AFDD05425CDBC1800EEAF06 /* printf_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AA91E2625CD59F100BD5E8B /* printf_lite.c */; }; 9AFDD07D25CE731000EEAF06 /* global_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD05C25CE730F00EEAF06 /* global_test.cpp */; }; 9AFDD08125CE731000EEAF06 /* XBuffer_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD06025CE730F00EEAF06 /* XBuffer_tests.cpp */; }; @@ -248,8 +546,6 @@ 9AFDD0B925CE731000EEAF06 /* XToolsCommon_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */; }; 9AFDD0BD25CE731000EEAF06 /* strlen_test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */; }; 9AFDD0C125CE731000EEAF06 /* find_replace_mask_OC_tests.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */; }; - 9AFDD0D425CEA1C300EEAF06 /* xcode_utf_fixed.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD0D325CEA1C300EEAF06 /* xcode_utf_fixed.cpp */; }; - 9AFDD0D825CEA94A00EEAF06 /* tmp.c in Sources */ = {isa = PBXBuildFile; fileRef = 9AFDD0D725CEA94A00EEAF06 /* tmp.c */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -262,29 +558,37 @@ ); runOnlyForDeploymentPostprocessing = 1; }; + 9AF4E0EA261F04B700365AD2 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteArrayTypes.cpp; sourceTree = ""; }; + 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteUnionTypes.cpp; sourceTree = ""; }; + 9A071C43261A44080007CC44 /* XmlLiteDictTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteDictTypes.h; sourceTree = ""; }; + 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteDictTypes.cpp; sourceTree = ""; }; + 9A071C45261A44080007CC44 /* XmlLiteUnionTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteUnionTypes.h; sourceTree = ""; }; + 9A071C46261A44080007CC44 /* XmlLiteArrayTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteArrayTypes.h; sourceTree = ""; }; 9A0B084A2402FE9300E2B470 /* XArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XArray.h; sourceTree = ""; }; 9A0B084B2402FE9300E2B470 /* XObjArray.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = XObjArray.h; sourceTree = ""; }; 9A0B085D240300E000E2B470 /* Platform.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Platform.cpp; sourceTree = ""; }; 9A0D113625FF583F0040555F /* strcasecmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strcasecmp_test.cpp; sourceTree = ""; }; 9A0D113725FF58400040555F /* strcasecmp_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = strcasecmp_test.h; sourceTree = ""; }; - 9A13D98C2610569300863C91 /* CompareSettingsDevices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsDevices.h; sourceTree = ""; }; - 9A13D98D2610569300863C91 /* CompareSettingsDevices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsDevices.cpp; sourceTree = ""; }; - 9A13D98F26105B2200863C91 /* CompareSettingsQuirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsQuirks.h; sourceTree = ""; }; - 9A13D99026105B2200863C91 /* CompareSettingsQuirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsQuirks.cpp; sourceTree = ""; }; 9A272A7C25D5062D00F03E19 /* DataHubExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataHubExt.h; sourceTree = ""; }; 9A272A7D25D5062D00F03E19 /* DataHub.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DataHub.cpp; sourceTree = ""; }; 9A272A7E25D5062E00F03E19 /* DataHub.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DataHub.h; sourceTree = ""; }; - 9A28CD1D241BB61B00F3D247 /* abort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = abort.cpp; sourceTree = ""; }; - 9A28CD1E241BB61B00F3D247 /* strlen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strlen.cpp; sourceTree = ""; }; 9A358AF425CF115100A3850D /* Config_GUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_GUI.cpp; sourceTree = ""; }; 9A358AF725CF115100A3850D /* Config_KernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_KernelAndKextPatches.h; sourceTree = ""; }; 9A358AF825CF115100A3850D /* Config_Graphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Graphics.h; sourceTree = ""; }; 9A358AFA25CF115100A3850D /* Config_ACPI_DSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_DSDT.h; sourceTree = ""; }; 9A358AFB25CF115100A3850D /* ConfigPlistClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistClass.h; sourceTree = ""; }; - 9A358AFE25CF115100A3850D /* CompareSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettings.h; sourceTree = ""; }; 9A358AFF25CF115100A3850D /* Config_Devices_Audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Audio.h; sourceTree = ""; }; 9A358B0125CF115100A3850D /* Config_Quirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Quirks.h; sourceTree = ""; }; 9A358B0225CF115100A3850D /* Config_ACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI.h; sourceTree = ""; }; @@ -293,13 +597,10 @@ 9A358B0925CF115100A3850D /* Config_Devices_Arbitrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Arbitrary.h; sourceTree = ""; }; 9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistClass.cpp; sourceTree = ""; }; 9A358B0D25CF115100A3850D /* Config_SystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SystemParameters.h; sourceTree = ""; }; - 9A358B0E25CF115100A3850D /* Config_SMBIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SMBIOS.h; sourceTree = ""; }; 9A358B0F25CF115100A3850D /* Config_ACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI.cpp; sourceTree = ""; }; - 9A358B1025CF115100A3850D /* Config_Devices_Properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_Properties.cpp; sourceTree = ""; }; 9A358B1125CF115100A3850D /* Config_Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices.h; sourceTree = ""; }; 9A358B1325CF115100A3850D /* Config_CPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_CPU.h; sourceTree = ""; }; 9A358B1425CF115100A3850D /* Config_BootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_BootGraphics.h; sourceTree = ""; }; - 9A358B1625CF115100A3850D /* CompareSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettings.cpp; sourceTree = ""; }; 9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI_DSDT.cpp; sourceTree = ""; }; 9A358B1A25CF115100A3850D /* Config_ACPI_SSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_SSDT.h; sourceTree = ""; }; 9A358B1B25CF115100A3850D /* Config_GUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_GUI.h; sourceTree = ""; }; @@ -342,17 +643,15 @@ 9A4147662604F82900440186 /* undefinable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = undefinable.h; sourceTree = ""; }; 9A4185BE2439F73A00BEAFB8 /* XStringArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XStringArray.cpp; sourceTree = ""; }; 9A4185BF2439F73A00BEAFB8 /* XStringArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XStringArray.h; sourceTree = ""; }; - 9A4C5762255AAC0A004F0B21 /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; - 9A4C5763255AAC0A004F0B21 /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = ""; }; - 9A4C5765255AAC0A004F0B21 /* printf_lite-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test-cpp_conf.h"; sourceTree = ""; }; - 9A4C5766255AAC0A004F0B21 /* posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix.h; sourceTree = ""; }; 9A4C5769255AAD07004F0B21 /* MacOsVersion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = MacOsVersion.cpp; sourceTree = ""; }; 9A4C576A255AAD07004F0B21 /* MacOsVersion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MacOsVersion.h; sourceTree = ""; }; 9A4FFA7C2451C8330050B38B /* XString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XString.cpp; sourceTree = ""; }; - 9A5022BF25CC44C900E2099D /* Efi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Efi.h; sourceTree = ""; }; - 9A5022C125CC44C900E2099D /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; 9A57C266241A799B0029A39F /* XString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XString.h; sourceTree = ""; }; 9A6BA73C2449977300BDA52C /* XStringAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XStringAbstract.h; sourceTree = ""; }; + 9A77BAA226336334000FFF8A /* SMBIOSPlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SMBIOSPlist.cpp; sourceTree = ""; }; + 9A77BAA326336334000FFF8A /* ConfigPlistAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistAbstract.h; sourceTree = ""; }; + 9A77BAA426336334000FFF8A /* SMBIOSPlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SMBIOSPlist.h; sourceTree = ""; }; + 9A77BAA526336335000FFF8A /* ConfigPlistAbstract.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistAbstract.cpp; sourceTree = ""; }; 9A78DF7E260A531100FE811A /* Languages.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Languages.h; sourceTree = ""; }; 9A7AEDE82459696C003AAD04 /* XToolsCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsCommon.h; sourceTree = ""; }; 9A7D518024FC32F700FA1CC3 /* XBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBuffer.h; sourceTree = ""; }; @@ -361,37 +660,126 @@ 9A7D518324FC32F700FA1CC3 /* XRBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XRBuffer.cpp; sourceTree = ""; }; 9A838CAA25342626008303F5 /* MemoryOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MemoryOperation.h; sourceTree = ""; }; 9A838CB325347C36008303F5 /* MemoryOperation.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = MemoryOperation.c; sourceTree = ""; }; - 9A838CB925348237008303F5 /* BaseMemoryLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseMemoryLib.c; sourceTree = ""; }; - 9A838CBF253485C8008303F5 /* BaseLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = BaseLib.c; sourceTree = ""; }; - 9A838CC2253485DC008303F5 /* DebugLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; - 9A838CC425348610008303F5 /* OcMiscLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcMiscLib.h; sourceTree = ""; }; - 9A838CC52534933F008303F5 /* Base.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Base.h; sourceTree = ""; }; 9A852C0D25CC39E900C5662E /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = ""; }; 9A852C0E25CC39E900C5662E /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = ""; }; + 9A879208261882D9000B9362 /* printf_lite-conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-conf.h"; sourceTree = ""; }; + 9A87920B261882D9000B9362 /* MemLogLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MemLogLib.c; sourceTree = ""; }; + 9A87920C261882D9000B9362 /* ReadmeJief.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = ReadmeJief.txt; sourceTree = ""; }; + 9A87920F261882D9000B9362 /* OcDataHubLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDataHubLib.lib; sourceTree = ""; }; + 9A879210261882D9000B9362 /* OcXmlLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcXmlLib.lib; sourceTree = ""; }; + 9A879211261882D9000B9362 /* OcConfigurationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConfigurationLib.lib; sourceTree = ""; }; + 9A879212261882D9000B9362 /* OcFirmwareVolumeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFirmwareVolumeLib.lib; sourceTree = ""; }; + 9A879213261882D9000B9362 /* OcStorageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStorageLib.lib; sourceTree = ""; }; + 9A879214261882D9000B9362 /* OcVirtualFsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcVirtualFsLib.lib; sourceTree = ""; }; + 9A879215261882D9000B9362 /* OcAppleEventLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleEventLib.lib; sourceTree = ""; }; + 9A879216261882D9000B9362 /* OcCryptoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCryptoLib.lib; sourceTree = ""; }; + 9A879217261882D9000B9362 /* OcAudioLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAudioLib.lib; sourceTree = ""; }; + 9A879218261882D9000B9362 /* OcDevicePropertyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePropertyLib.lib; sourceTree = ""; }; + 9A879219261882D9000B9362 /* OcAppleChunklistLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleChunklistLib.lib; sourceTree = ""; }; + 9A87921A261882D9000B9362 /* OcStringLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStringLib.lib; sourceTree = ""; }; + 9A87921B261882D9000B9362 /* OcTemplateLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcTemplateLib.lib; sourceTree = ""; }; + 9A87921C261882D9000B9362 /* OcUnicodeCollationEngGenericLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcUnicodeCollationEngGenericLib.lib; sourceTree = ""; }; + 9A87921D261882D9000B9362 /* ControlMsrE2.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = ControlMsrE2.lib; sourceTree = ""; }; + 9A87921E261882D9000B9362 /* OcAppleKeyMapLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeyMapLib.lib; sourceTree = ""; }; + 9A87921F261882D9000B9362 /* OcConsoleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConsoleLib.lib; sourceTree = ""; }; + 9A879220261882D9000B9362 /* OcRtcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRtcLib.lib; sourceTree = ""; }; + 9A879221261882D9000B9362 /* OcDebugLogLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDebugLogLib.lib; sourceTree = ""; }; + 9A879222261882D9000B9362 /* OcCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCpuLib.lib; sourceTree = ""; }; + 9A879223261882D9000B9362 /* OcGuardLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcGuardLib.lib; sourceTree = ""; }; + 9A879224261882D9000B9362 /* OcDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePathLib.lib; sourceTree = ""; }; + 9A879225261882D9000B9362 /* OcAppleKernelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKernelLib.lib; sourceTree = ""; }; + 9A879226261882D9000B9362 /* OcAppleKeysLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeysLib.lib; sourceTree = ""; }; + 9A879227261882D9000B9362 /* OcInputLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcInputLib.lib; sourceTree = ""; }; + 9A879228261882D9000B9362 /* OpenRuntime.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenRuntime.lib; sourceTree = ""; }; + 9A879229261882D9000B9362 /* OcAppleRamDiskLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleRamDiskLib.lib; sourceTree = ""; }; + 9A87922A261882D9000B9362 /* OcPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcPeCoffLib.lib; sourceTree = ""; }; + 9A87922B261882D9000B9362 /* OcApfsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcApfsLib.lib; sourceTree = ""; }; + 9A87922C261882D9000B9362 /* OcSmbiosLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmbiosLib.lib; sourceTree = ""; }; + 9A87922D261882D9000B9362 /* OcSerializeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSerializeLib.lib; sourceTree = ""; }; + 9A87922E261882D9000B9362 /* OcRngLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRngLib.lib; sourceTree = ""; }; + 9A87922F261882D9000B9362 /* OcAfterBootCompatLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAfterBootCompatLib.lib; sourceTree = ""; }; + 9A879230261882D9000B9362 /* OcCompressionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCompressionLib.lib; sourceTree = ""; }; + 9A879231261882D9000B9362 /* OcAppleImageVerificationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImageVerificationLib.lib; sourceTree = ""; }; + 9A879232261882D9000B9362 /* OcMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMemoryLib.lib; sourceTree = ""; }; + 9A879233261882D9000B9362 /* OcMacInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMacInfoLib.lib; sourceTree = ""; }; + 9A879234261882D9000B9362 /* OcBootManagementLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcBootManagementLib.lib; sourceTree = ""; }; + 9A879235261882D9000B9362 /* OcAppleImg4Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImg4Lib.lib; sourceTree = ""; }; + 9A879236261882D9000B9362 /* OcAcpiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAcpiLib.lib; sourceTree = ""; }; + 9A879237261882D9000B9362 /* OcAppleDiskImageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleDiskImageLib.lib; sourceTree = ""; }; + 9A879238261882D9000B9362 /* OcMachoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMachoLib.lib; sourceTree = ""; }; + 9A879239261882D9000B9362 /* OcSmcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmcLib.lib; sourceTree = ""; }; + 9A87923A261882D9000B9362 /* OcFileLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFileLib.lib; sourceTree = ""; }; + 9A87923B261882D9000B9362 /* OcAppleUserInterfaceThemeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleUserInterfaceThemeLib.lib; sourceTree = ""; }; + 9A87923C261882D9000B9362 /* OcDeviceTreeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDeviceTreeLib.lib; sourceTree = ""; }; + 9A87923D261882D9000B9362 /* OcOSInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcOSInfoLib.lib; sourceTree = ""; }; + 9A87923E261882D9000B9362 /* OcDriverConnectionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDriverConnectionLib.lib; sourceTree = ""; }; + 9A87923F261882D9000B9362 /* OpenCore.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenCore.lib; sourceTree = ""; }; + 9A879240261882D9000B9362 /* OcHashServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcHashServicesLib.lib; sourceTree = ""; }; + 9A879241261882D9000B9362 /* OcMiscLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMiscLib.lib; sourceTree = ""; }; + 9A879242261882D9000B9362 /* OcAppleBootPolicyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleBootPolicyLib.lib; sourceTree = ""; }; + 9A879243261882D9000B9362 /* OcAppleSecureBootLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleSecureBootLib.lib; sourceTree = ""; }; + 9A879245261882D9000B9362 /* VideoBiosPatchLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VideoBiosPatchLib.lib; sourceTree = ""; }; + 9A879246261882D9000B9362 /* VBoxPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VBoxPeCoffLib.lib; sourceTree = ""; }; + 9A879247261882D9000B9362 /* DuetTimerLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DuetTimerLib.lib; sourceTree = ""; }; + 9A879248261882D9000B9362 /* OpensslLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpensslLib.lib; sourceTree = ""; }; + 9A879249261882D9000B9362 /* HdaDevicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = HdaDevicesLib.lib; sourceTree = ""; }; + 9A87924A261882D9000B9362 /* WaveLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = WaveLib.lib; sourceTree = ""; }; + 9A87924C261882D9000B9362 /* BasePciCf8Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePciCf8Lib.lib; sourceTree = ""; }; + 9A87924D261882D9000B9362 /* UefiApplicationEntryPoint.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiApplicationEntryPoint.lib; sourceTree = ""; }; + 9A87924E261882D9000B9362 /* BaseLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseLib.lib; sourceTree = ""; }; + 9A87924F261882D9000B9362 /* UefiRuntimeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiRuntimeServicesTableLib.lib; sourceTree = ""; }; + 9A879250261882D9000B9362 /* BaseMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseMemoryLib.lib; sourceTree = ""; }; + 9A879251261882D9000B9362 /* BaseIoLibIntrinsic.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseIoLibIntrinsic.lib; sourceTree = ""; }; + 9A879252261882D9000B9362 /* DxeServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeServicesLib.lib; sourceTree = ""; }; + 9A879253261882D9000B9362 /* BaseCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseCpuLib.lib; sourceTree = ""; }; + 9A879254261882D9000B9362 /* UefiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiLib.lib; sourceTree = ""; }; + 9A879255261882D9000B9362 /* PeCoffExtraActionLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = PeCoffExtraActionLibNull.lib; sourceTree = ""; }; + 9A879256261882D9000B9362 /* UefiMemoryAllocationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiMemoryAllocationLib.lib; sourceTree = ""; }; + 9A879257261882D9000B9362 /* UefiFileHandleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiFileHandleLib.lib; sourceTree = ""; }; + 9A879258261882D9000B9362 /* DxeHobLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeHobLib.lib; sourceTree = ""; }; + 9A879259261882D9000B9362 /* UefiBootServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiBootServicesTableLib.lib; sourceTree = ""; }; + 9A87925A261882D9000B9362 /* BaseDebugLibSerialPort.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseDebugLibSerialPort.lib; sourceTree = ""; }; + 9A87925B261882D9000B9362 /* DxeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DxeServicesTableLib.lib; sourceTree = ""; }; + 9A87925C261882D9000B9362 /* BasePciLibCf8.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePciLibCf8.lib; sourceTree = ""; }; + 9A87925D261882D9000B9362 /* BasePrintLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePrintLib.lib; sourceTree = ""; }; + 9A87925E261882D9000B9362 /* UefiDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = UefiDevicePathLib.lib; sourceTree = ""; }; + 9A87925F261882D9000B9362 /* BaseDebugPrintErrorLevelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseDebugPrintErrorLevelLib.lib; sourceTree = ""; }; + 9A879261261882D9000B9362 /* MtrrLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = MtrrLib.lib; sourceTree = ""; }; + 9A879263261882D9000B9362 /* BasePlatformHookLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BasePlatformHookLibNull.lib; sourceTree = ""; }; + 9A879264261882D9000B9362 /* BaseSerialPortLib16550.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = BaseSerialPortLib16550.lib; sourceTree = ""; }; + 9A879265261882D9000B9362 /* FrameBufferBltLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = FrameBufferBltLib.lib; sourceTree = ""; }; + 9A879267261882D9000B9362 /* AutoGen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AutoGen.h; sourceTree = ""; }; + 9A879268261882D9000B9362 /* AutoGen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = AutoGen.c; sourceTree = ""; }; + 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = xcode_utf_fixed.cpp; sourceTree = ""; }; + 9A87926C261882D9000B9362 /* BaseMemoryLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BaseMemoryLib.c; sourceTree = ""; }; + 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; + 9A87926E261882D9000B9362 /* PrintLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PrintLib.c; sourceTree = ""; }; + 9A87926F261882D9000B9362 /* DebugLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = DebugLib.c; sourceTree = ""; }; + 9A879270261882D9000B9362 /* Globals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Globals.cpp; sourceTree = ""; }; + 9A879271261882D9000B9362 /* Base.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Base.h; sourceTree = ""; }; + 9A879272261882D9000B9362 /* xcode_utf_fixed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_utf_fixed.h; sourceTree = ""; }; + 9A8792E6261886F5000B9362 /* posix_additions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = posix_additions.cpp; sourceTree = ""; }; + 9A8792E7261886F5000B9362 /* abort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = abort.cpp; sourceTree = ""; }; + 9A8792E8261886F5000B9362 /* posix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix.h; sourceTree = ""; }; + 9A8792E9261886F5000B9362 /* posix_additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_additions.h; sourceTree = ""; }; + 9A8792EA261886F5000B9362 /* abort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abort.h; sourceTree = ""; }; + 9A8792EC261886F5000B9362 /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = ""; }; + 9A8792ED261886F5000B9362 /* printf_lite-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test-cpp_conf.h"; sourceTree = ""; }; + 9A8792EE261886F5000B9362 /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; + 9A8792EF261886F5000B9362 /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; + 9A8792F0261886F5000B9362 /* BootLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BootLog.cpp; sourceTree = ""; }; + 9A8792F1261886F5000B9362 /* BasicIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BasicIO.cpp; sourceTree = ""; }; + 9A8792F3261886F5000B9362 /* globals_dtor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals_dtor.h; sourceTree = ""; }; + 9A8792F4261886F5000B9362 /* operatorNewDelete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operatorNewDelete.h; sourceTree = ""; }; + 9A8792F5261886F5000B9362 /* globals_ctor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals_ctor.h; sourceTree = ""; }; 9A9037E225CFE7CD00F14179 /* config-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "config-test.h"; sourceTree = ""; }; 9A9037E325CFE7CD00F14179 /* xml_lite-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xml_lite-test.cpp"; sourceTree = ""; }; 9A9037E425CFE7D000F14179 /* config-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "config-test.cpp"; sourceTree = ""; }; 9A9037E525CFE7D000F14179 /* xml_lite-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xml_lite-test.h"; sourceTree = ""; }; - 9A92232D2402FD1000483CBA /* CloverX64TestNewParser UTF16 signed char */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "CloverX64TestNewParser UTF16 signed char"; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A9223302402FD1000483CBA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 9A92232D2402FD1000483CBA /* CloverX64TestNewParser_UTF16_signed */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CloverX64TestNewParser_UTF16_signed; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A9223302402FD1000483CBA /* main.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = main.cpp; sourceTree = ""; }; 9A9AEB8B243F73CE00FBD7D8 /* unicode_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unicode_conversions.h; sourceTree = ""; }; - 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c.preprocessed; fileEncoding = 4; path = unicode_conversions.cpp; sourceTree = ""; }; - 9AA316CB260EF75A0033D29F /* CompareSettingsBoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsBoot.cpp; sourceTree = ""; }; - 9AA316CC260EF75A0033D29F /* CompareSettingsBoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsBoot.h; sourceTree = ""; }; - 9AA316CE260EF7750033D29F /* CompareField.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareField.cpp; sourceTree = ""; }; - 9AA316CF260EF7760033D29F /* CompareField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareField.h; sourceTree = ""; }; - 9AA316D1260EFC410033D29F /* CompareSettingsACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsACPI.cpp; sourceTree = ""; }; - 9AA316D2260EFC410033D29F /* CompareSettingsACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsACPI.h; sourceTree = ""; }; - 9AA316D4260F0CBE0033D29F /* CompareSettingsGUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGUI.cpp; sourceTree = ""; }; - 9AA316D5260F0CBE0033D29F /* CompareSettingsGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGUI.h; sourceTree = ""; }; - 9AA316D7260F259F0033D29F /* CompareSettingsCPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsCPU.h; sourceTree = ""; }; - 9AA316D8260F259F0033D29F /* CompareSettingsCPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsCPU.cpp; sourceTree = ""; }; - 9AA316DA260F26790033D29F /* CompareSettingsSystemParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsSystemParameters.cpp; sourceTree = ""; }; - 9AA316DB260F267A0033D29F /* CompareSettingsSystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsSystemParameters.h; sourceTree = ""; }; - 9AA316DD260F27790033D29F /* CompareSettingsKernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsKernelAndKextPatches.h; sourceTree = ""; }; - 9AA316DE260F27790033D29F /* CompareSettingsKernelAndKextPatches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsKernelAndKextPatches.cpp; sourceTree = ""; }; - 9AA316E0260F2BE50033D29F /* CompareSettingsGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGraphics.cpp; sourceTree = ""; }; - 9AA316E1260F2BE60033D29F /* CompareSettingsGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGraphics.h; sourceTree = ""; }; + 9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = unicode_conversions.cpp; sourceTree = ""; }; 9AA3911825CC56840099DC1F /* FixBiosDsdt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixBiosDsdt.h; sourceTree = ""; }; 9AA3911A25CC56E60099DC1F /* Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Devices.h; sourceTree = ""; }; 9AA3911B25CC56E60099DC1F /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = ""; }; @@ -404,7 +792,6 @@ 9AA3912325CC56E60099DC1F /* Efi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Efi.h; sourceTree = ""; }; 9AA3912425CC56E60099DC1F /* OC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OC.h; sourceTree = ""; }; 9AA3912525CC56E60099DC1F /* XToolsConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsConf.h; sourceTree = ""; }; - 9AA3912625CC57190099DC1F /* OneLinerMacros.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OneLinerMacros.h; sourceTree = ""; }; 9AA909EA25CD451500BD5E8B /* PiPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPei.h; sourceTree = ""; }; 9AA909EB25CD451500BD5E8B /* PiMm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiMm.h; sourceTree = ""; }; 9AA909EC25CD451500BD5E8B /* Uefi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Uefi.h; sourceTree = ""; }; @@ -3746,16 +4133,11 @@ 9AA918AF25CD468F00BD5E8B /* AppleApfsInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppleApfsInfo.h; sourceTree = ""; }; 9AA918B025CD468F00BD5E8B /* EfiImageFormat.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EfiImageFormat.h; sourceTree = ""; }; 9AA918B125CD468F00BD5E8B /* UefiLoader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UefiLoader.h; sourceTree = ""; }; - 9AA918B325CD4A0C00BD5E8B /* Globals.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = Globals.cpp; sourceTree = ""; }; 9AA918BC25CD4B5900BD5E8B /* lib.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = lib.cpp; sourceTree = ""; }; 9AA918BD25CD4B5900BD5E8B /* lib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = lib.h; sourceTree = ""; }; 9AA918C525CD4CD300BD5E8B /* BmLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BmLib.h; sourceTree = ""; }; 9AA918C625CD4CD300BD5E8B /* BmLib.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BmLib.cpp; sourceTree = ""; }; - 9AA918CB25CD4FF600BD5E8B /* guids_from_autogen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = guids_from_autogen.h; sourceTree = ""; }; - 9AA918CC25CD4FFF00BD5E8B /* guids_from_autogen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = guids_from_autogen.c; sourceTree = ""; }; 9AA918D125CD516A00BD5E8B /* BootLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootLog.h; sourceTree = ""; }; - 9AA918D225CD559400BD5E8B /* DevicePathLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = DevicePathLib.c; sourceTree = ""; }; - 9AA918D825CD58DB00BD5E8B /* DevicePathUtilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = DevicePathUtilities.h; sourceTree = ""; }; 9AA918DD25CD597E00BD5E8B /* MBP71.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP71.yaml; sourceTree = ""; }; 9AA918DE25CD597E00BD5E8B /* MBP111.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP111.yaml; sourceTree = ""; }; 9AA918DF25CD597E00BD5E8B /* MBP131.yaml */ = {isa = PBXFileReference; lastKnownFileType = text.yaml; path = MBP131.yaml; sourceTree = ""; }; @@ -4842,8 +5224,6 @@ 9AA91E0325CD598100BD5E8B /* efidebug.tool */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = efidebug.tool; sourceTree = ""; }; 9AA91E2625CD59F100BD5E8B /* printf_lite.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = printf_lite.c; sourceTree = ""; }; 9AA91E2825CD59F100BD5E8B /* printf_lite.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = printf_lite.h; sourceTree = ""; }; - 9AA9238E25CD5A9700BD5E8B /* OcAppleBootPolicyLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OcAppleBootPolicyLib.h; sourceTree = ""; }; - 9AA9238F25CD5A9700BD5E8B /* OcAppleBootPolicyLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OcAppleBootPolicyLib.c; sourceTree = ""; }; 9AA9239125CD5B1900BD5E8B /* memvendors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = memvendors.h; sourceTree = ""; }; 9AA9239225CD5B1A00BD5E8B /* BasicIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BasicIO.h; sourceTree = ""; }; 9AA9239325CD5B1A00BD5E8B /* Net.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Net.h; sourceTree = ""; }; @@ -4859,7 +5239,6 @@ 9AA923B625CD5B1D00BD5E8B /* smbios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smbios.h; sourceTree = ""; }; 9AA923B725CD5B1D00BD5E8B /* Edid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Edid.h; sourceTree = ""; }; 9AA923B825CD5B1D00BD5E8B /* guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guid.h; sourceTree = ""; }; - 9AA923B925CD5B1D00BD5E8B /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; 9AA923BA25CD5B1E00BD5E8B /* hda.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = hda.h; sourceTree = ""; }; 9AA923BB25CD5B1E00BD5E8B /* HdaCodecDump.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = HdaCodecDump.cpp; sourceTree = ""; }; 9AA923BC25CD5B1E00BD5E8B /* Nvram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Nvram.h; sourceTree = ""; }; @@ -4980,11 +5359,6 @@ 9AA925AC25CD79AA00BD5E8B /* menu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = menu.cpp; sourceTree = ""; }; 9AA925AD25CD79AA00BD5E8B /* menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = menu.h; sourceTree = ""; }; 9AA925AE25CD79AB00BD5E8B /* screen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = screen.cpp; sourceTree = ""; }; - 9AA925BF25CD87B600BD5E8B /* BasicIO.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BasicIO.cpp; sourceTree = ""; }; - 9AA925C825CD91BC00BD5E8B /* OpenCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OpenCore.h; sourceTree = ""; }; - 9AA925C925CD91BC00BD5E8B /* OpenCore.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = OpenCore.c; sourceTree = ""; }; - 9AA925F025CD99E300BD5E8B /* BasePcdLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePcdLibNull.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BasePcdLibNull/BasePcdLibNull/OUTPUT/BasePcdLibNull.lib; sourceTree = ""; }; - 9AA9E4CF25CD177500BD5E8B /* BootLog.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = BootLog.cpp; sourceTree = ""; }; 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = card_vlist.cpp; sourceTree = ""; }; 9AA9E4D525CD1C9400BD5E8B /* card_vlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = card_vlist.h; sourceTree = ""; }; 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VersionString.cpp; sourceTree = ""; }; @@ -5003,113 +5377,169 @@ 9AA9E50125CD2FF400BD5E8B /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = ""; }; 9AA9E51325CD306700BD5E8B /* loader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = loader.h; sourceTree = ""; }; 9AA9E51B25CD306700BD5E8B /* loader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = loader.cpp; sourceTree = ""; }; - 9AA9E54B25CD41E900BD5E8B /* posix_additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = posix_additions.h; sourceTree = ""; }; - 9AA9E54C25CD41E900BD5E8B /* posix_additions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = posix_additions.cpp; sourceTree = ""; }; + 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xml_lite-reapeatingdict-test.cpp"; sourceTree = ""; }; + 9AB67BE3261834F300CC853A /* xml_lite-reapeatingdict-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xml_lite-reapeatingdict-test.h"; sourceTree = ""; }; 9AB6EB9D25CF1FAC0001BDBB /* VolumeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VolumeTypes.h; sourceTree = ""; }; 9AB6EB9E25CF1FAD0001BDBB /* BootTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BootTypes.h; sourceTree = ""; }; 9AB6EB9F25CF1FAD0001BDBB /* OSFlags.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSFlags.h; sourceTree = ""; }; 9AB6EBA025CF1FAD0001BDBB /* OSTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OSTypes.h; sourceTree = ""; }; - 9AC790112452C45A0004FBE9 /* abort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = abort.h; sourceTree = ""; }; - 9AD0358A25C579B200E58351 /* PrintLib.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrintLib.h; sourceTree = ""; }; - 9AD0358B25C57A4500E58351 /* MemoryAllocationLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = MemoryAllocationLib.c; sourceTree = ""; }; - 9AD0359325C57C8A00E58351 /* PrintLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = PrintLib.c; sourceTree = ""; }; 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteSimpleTypes.cpp; sourceTree = ""; }; 9AD0EB23260A497500093F23 /* XmlLiteSimpleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteSimpleTypes.h; sourceTree = ""; }; 9AD469472452B33700D6D0DB /* shared_with_menu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = shared_with_menu.cpp; sourceTree = ""; }; 9AD469482452B33700D6D0DB /* shared_with_menu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = shared_with_menu.h; sourceTree = ""; }; 9AD7B14E26079F5C00E850D1 /* REFIT_MAINMENU_SCREEN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = REFIT_MAINMENU_SCREEN.h; sourceTree = ""; }; 9AD7B14F26079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = REFIT_MAINMENU_SCREEN.cpp; sourceTree = ""; }; - 9AFB5F76261060CB0078E53D /* CompareSettingsRtVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsRtVariables.cpp; sourceTree = ""; }; - 9AFB5F77261060CB0078E53D /* CompareSettingsRtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsRtVariables.h; sourceTree = ""; }; + 9AF1EFEE26342D2300F7C2C0 /* Settings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Settings.cpp; sourceTree = ""; }; + 9AF1EFEF26342D2400F7C2C0 /* Settings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Settings.h; sourceTree = ""; }; + 9AF1EFF22634354500F7C2C0 /* SettingsUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SettingsUtils.cpp; sourceTree = ""; }; + 9AF1EFF32634354800F7C2C0 /* Volume.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Volume.cpp; sourceTree = ""; }; + 9AF1EFF42634354800F7C2C0 /* Volume.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Volume.h; sourceTree = ""; }; + 9AF1EFF52634354900F7C2C0 /* ConfigManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigManager.h; sourceTree = ""; }; + 9AF1EFF62634354900F7C2C0 /* SettingsUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SettingsUtils.h; sourceTree = ""; }; + 9AF1EFF72634354A00F7C2C0 /* ConfigManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigManager.cpp; sourceTree = ""; }; + 9AF1F03826343F6D00F7C2C0 /* AssignSettingsBoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsBoot.cpp; sourceTree = ""; }; + 9AF1F03926343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsKernelAndKextPatches.h; sourceTree = ""; }; + 9AF1F03A26343F6D00F7C2C0 /* AssignSettingsDevices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsDevices.cpp; sourceTree = ""; }; + 9AF1F03B26343F6D00F7C2C0 /* AssignSettingsCPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsCPU.h; sourceTree = ""; }; + 9AF1F03C26343F6D00F7C2C0 /* AssignSettingsBootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsBootGraphics.h; sourceTree = ""; }; + 9AF1F03D26343F6D00F7C2C0 /* AssignSettingsGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsGraphics.cpp; sourceTree = ""; }; + 9AF1F03E26343F6D00F7C2C0 /* AssignSettingsCPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsCPU.cpp; sourceTree = ""; }; + 9AF1F03F26343F6D00F7C2C0 /* AssignSettingsQuirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsQuirks.h; sourceTree = ""; }; + 9AF1F04026343F6D00F7C2C0 /* AssignSettingsBootGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsBootGraphics.cpp; sourceTree = ""; }; + 9AF1F04126343F6D00F7C2C0 /* AssignSettingsGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsGUI.h; sourceTree = ""; }; + 9AF1F04226343F6D00F7C2C0 /* AssignSettingsQuirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsQuirks.cpp; sourceTree = ""; }; + 9AF1F04326343F6D00F7C2C0 /* AssignField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignField.h; sourceTree = ""; }; + 9AF1F04426343F6D00F7C2C0 /* AssignField.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignField.cpp; sourceTree = ""; }; + 9AF1F04526343F6D00F7C2C0 /* AssignSettingsRtVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsRtVariables.cpp; sourceTree = ""; }; + 9AF1F04626343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsKernelAndKextPatches.cpp; sourceTree = ""; }; + 9AF1F04726343F6D00F7C2C0 /* AssignSettingsACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsACPI.h; sourceTree = ""; }; + 9AF1F04826343F6D00F7C2C0 /* AssignSettingsBoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsBoot.h; sourceTree = ""; }; + 9AF1F04926343F6D00F7C2C0 /* AssignSettingsGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsGraphics.h; sourceTree = ""; }; + 9AF1F04A26343F6D00F7C2C0 /* AssignSettingsGUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsGUI.cpp; sourceTree = ""; }; + 9AF1F04B26343F6E00F7C2C0 /* AssignSettingsSmbios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsSmbios.cpp; sourceTree = ""; }; + 9AF1F04C26343F6E00F7C2C0 /* AssignSettingsRtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsRtVariables.h; sourceTree = ""; }; + 9AF1F04D26343F6E00F7C2C0 /* AssignSettingsSystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsSystemParameters.h; sourceTree = ""; }; + 9AF1F04E26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsSystemParameters.cpp; sourceTree = ""; }; + 9AF1F04F26343F6E00F7C2C0 /* AssignSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettings.h; sourceTree = ""; }; + 9AF1F05026343F6E00F7C2C0 /* AssignSettingsSmbios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsSmbios.h; sourceTree = ""; }; + 9AF1F05126343F6E00F7C2C0 /* AssignSettingsACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettingsACPI.cpp; sourceTree = ""; }; + 9AF1F05226343F6E00F7C2C0 /* AssignSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AssignSettings.cpp; sourceTree = ""; }; + 9AF1F05326343F6E00F7C2C0 /* AssignSettingsDevices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AssignSettingsDevices.h; sourceTree = ""; }; + 9AF4DA5626332D8500487D15 /* CompareSettingsDevices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsDevices.cpp; sourceTree = ""; }; + 9AF4DA5726332D8500487D15 /* CompareField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareField.h; sourceTree = ""; }; + 9AF4DA5826332D8500487D15 /* CompareSettingsSystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsSystemParameters.h; sourceTree = ""; }; + 9AF4DA5926332D8500487D15 /* CompareSettingsBoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsBoot.h; sourceTree = ""; }; + 9AF4DA5A26332D8500487D15 /* CompareSettingsACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsACPI.h; sourceTree = ""; }; + 9AF4DA5B26332D8500487D15 /* CompareSettingsACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsACPI.cpp; sourceTree = ""; }; + 9AF4DA5C26332D8500487D15 /* CompareSettingsSmbios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsSmbios.h; sourceTree = ""; }; + 9AF4DA5D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsKernelAndKextPatches.cpp; sourceTree = ""; }; + 9AF4DA5E26332D8500487D15 /* CompareSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettings.h; sourceTree = ""; }; + 9AF4DA5F26332D8500487D15 /* CompareSettingsSystemParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsSystemParameters.cpp; sourceTree = ""; }; + 9AF4DA6026332D8500487D15 /* CompareSettingsBootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsBootGraphics.h; sourceTree = ""; }; + 9AF4DA6126332D8500487D15 /* CompareField.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareField.cpp; sourceTree = ""; }; + 9AF4DA6226332D8500487D15 /* CompareSettingsGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGUI.h; sourceTree = ""; }; + 9AF4DA6326332D8500487D15 /* CompareSettingsGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGraphics.cpp; sourceTree = ""; }; + 9AF4DA6426332D8500487D15 /* CompareSettingsBootGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsBootGraphics.cpp; sourceTree = ""; }; + 9AF4DA6526332D8500487D15 /* CompareSettingsCPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsCPU.cpp; sourceTree = ""; }; + 9AF4DA6626332D8500487D15 /* CompareSettingsCPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsCPU.h; sourceTree = ""; }; + 9AF4DA6726332D8500487D15 /* CompareSettingsSmbios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsSmbios.cpp; sourceTree = ""; }; + 9AF4DA6826332D8500487D15 /* CompareSettingsQuirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsQuirks.h; sourceTree = ""; }; + 9AF4DA6926332D8500487D15 /* CompareSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettings.cpp; sourceTree = ""; }; + 9AF4DA6A26332D8500487D15 /* CompareSettingsRtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsRtVariables.h; sourceTree = ""; }; + 9AF4DA6B26332D8500487D15 /* CompareSettingsDevices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsDevices.h; sourceTree = ""; }; + 9AF4DA6C26332D8500487D15 /* CompareSettingsRtVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsRtVariables.cpp; sourceTree = ""; }; + 9AF4DA6D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsKernelAndKextPatches.h; sourceTree = ""; }; + 9AF4DA6E26332D8500487D15 /* CompareSettingsGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGraphics.h; sourceTree = ""; }; + 9AF4DA6F26332D8500487D15 /* CompareSettingsGUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGUI.cpp; sourceTree = ""; }; + 9AF4DA7026332D8500487D15 /* CompareSettingsBoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsBoot.cpp; sourceTree = ""; }; + 9AF4DA7126332D8500487D15 /* CompareSettingsQuirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsQuirks.cpp; sourceTree = ""; }; + 9AF4DF93261F045E00365AD2 /* OcDataHubLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDataHubLib.lib; sourceTree = ""; }; + 9AF4DF94261F045E00365AD2 /* OcXmlLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcXmlLib.lib; sourceTree = ""; }; + 9AF4DF95261F045E00365AD2 /* OcConfigurationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConfigurationLib.lib; sourceTree = ""; }; + 9AF4DF96261F045E00365AD2 /* OcFirmwareVolumeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFirmwareVolumeLib.lib; sourceTree = ""; }; + 9AF4DF97261F045E00365AD2 /* OcStorageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStorageLib.lib; sourceTree = ""; }; + 9AF4DF98261F045E00365AD2 /* OcVirtualFsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcVirtualFsLib.lib; sourceTree = ""; }; + 9AF4DF99261F045E00365AD2 /* OcAppleEventLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleEventLib.lib; sourceTree = ""; }; + 9AF4DF9A261F045E00365AD2 /* OcCryptoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCryptoLib.lib; sourceTree = ""; }; + 9AF4DF9B261F045E00365AD2 /* OcAudioLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAudioLib.lib; sourceTree = ""; }; + 9AF4DF9C261F045E00365AD2 /* OcDevicePropertyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePropertyLib.lib; sourceTree = ""; }; + 9AF4DF9D261F045E00365AD2 /* OcAppleChunklistLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleChunklistLib.lib; sourceTree = ""; }; + 9AF4DF9E261F045E00365AD2 /* OcStringLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcStringLib.lib; sourceTree = ""; }; + 9AF4DF9F261F045E00365AD2 /* OcTemplateLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcTemplateLib.lib; sourceTree = ""; }; + 9AF4DFA0261F045E00365AD2 /* OcUnicodeCollationEngGenericLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcUnicodeCollationEngGenericLib.lib; sourceTree = ""; }; + 9AF4DFA1261F045E00365AD2 /* ControlMsrE2.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = ControlMsrE2.lib; sourceTree = ""; }; + 9AF4DFA2261F045E00365AD2 /* OcAppleKeyMapLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeyMapLib.lib; sourceTree = ""; }; + 9AF4DFA3261F045E00365AD2 /* OcConsoleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcConsoleLib.lib; sourceTree = ""; }; + 9AF4DFA4261F045E00365AD2 /* OcRtcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRtcLib.lib; sourceTree = ""; }; + 9AF4DFA5261F045E00365AD2 /* OcDebugLogLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDebugLogLib.lib; sourceTree = ""; }; + 9AF4DFA6261F045E00365AD2 /* OcCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCpuLib.lib; sourceTree = ""; }; + 9AF4DFA7261F045E00365AD2 /* OcGuardLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcGuardLib.lib; sourceTree = ""; }; + 9AF4DFA8261F045E00365AD2 /* OcDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDevicePathLib.lib; sourceTree = ""; }; + 9AF4DFA9261F045E00365AD2 /* OcAppleKernelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKernelLib.lib; sourceTree = ""; }; + 9AF4DFAA261F045E00365AD2 /* OcAppleKeysLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleKeysLib.lib; sourceTree = ""; }; + 9AF4DFAB261F045E00365AD2 /* OcInputLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcInputLib.lib; sourceTree = ""; }; + 9AF4DFAC261F045E00365AD2 /* OpenRuntime.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenRuntime.lib; sourceTree = ""; }; + 9AF4DFAD261F045E00365AD2 /* OcAppleRamDiskLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleRamDiskLib.lib; sourceTree = ""; }; + 9AF4DFAE261F045E00365AD2 /* OcPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcPeCoffLib.lib; sourceTree = ""; }; + 9AF4DFAF261F045E00365AD2 /* OcApfsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcApfsLib.lib; sourceTree = ""; }; + 9AF4DFB0261F045E00365AD2 /* OcSmbiosLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmbiosLib.lib; sourceTree = ""; }; + 9AF4DFB1261F045E00365AD2 /* OcSerializeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSerializeLib.lib; sourceTree = ""; }; + 9AF4DFB2261F045E00365AD2 /* OcRngLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcRngLib.lib; sourceTree = ""; }; + 9AF4DFB3261F045E00365AD2 /* OcAfterBootCompatLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAfterBootCompatLib.lib; sourceTree = ""; }; + 9AF4DFB4261F045E00365AD2 /* OcCompressionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcCompressionLib.lib; sourceTree = ""; }; + 9AF4DFB5261F045E00365AD2 /* OcAppleImageVerificationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImageVerificationLib.lib; sourceTree = ""; }; + 9AF4DFB6261F045E00365AD2 /* OcMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMemoryLib.lib; sourceTree = ""; }; + 9AF4DFB7261F045E00365AD2 /* OcMacInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMacInfoLib.lib; sourceTree = ""; }; + 9AF4DFB8261F045E00365AD2 /* OcBootManagementLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcBootManagementLib.lib; sourceTree = ""; }; + 9AF4DFB9261F045E00365AD2 /* OcAppleImg4Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleImg4Lib.lib; sourceTree = ""; }; + 9AF4DFBA261F045E00365AD2 /* OcAcpiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAcpiLib.lib; sourceTree = ""; }; + 9AF4DFBB261F045E00365AD2 /* OcAppleDiskImageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleDiskImageLib.lib; sourceTree = ""; }; + 9AF4DFBC261F045E00365AD2 /* OcMachoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMachoLib.lib; sourceTree = ""; }; + 9AF4DFBD261F045E00365AD2 /* OcSmcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcSmcLib.lib; sourceTree = ""; }; + 9AF4DFBE261F045E00365AD2 /* OcFileLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcFileLib.lib; sourceTree = ""; }; + 9AF4DFBF261F045E00365AD2 /* OcAppleUserInterfaceThemeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleUserInterfaceThemeLib.lib; sourceTree = ""; }; + 9AF4DFC0261F045E00365AD2 /* OcDeviceTreeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDeviceTreeLib.lib; sourceTree = ""; }; + 9AF4DFC1261F045E00365AD2 /* OcOSInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcOSInfoLib.lib; sourceTree = ""; }; + 9AF4DFC2261F045E00365AD2 /* OcDriverConnectionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcDriverConnectionLib.lib; sourceTree = ""; }; + 9AF4DFC3261F045E00365AD2 /* OpenCore.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpenCore.lib; sourceTree = ""; }; + 9AF4DFC4261F045E00365AD2 /* OcHashServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcHashServicesLib.lib; sourceTree = ""; }; + 9AF4DFC5261F045E00365AD2 /* OcMiscLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcMiscLib.lib; sourceTree = ""; }; + 9AF4DFC6261F045E00365AD2 /* OcAppleBootPolicyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleBootPolicyLib.lib; sourceTree = ""; }; + 9AF4DFC7261F045E00365AD2 /* OcAppleSecureBootLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OcAppleSecureBootLib.lib; sourceTree = ""; }; + 9AF4DFC9261F045E00365AD2 /* VideoBiosPatchLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VideoBiosPatchLib.lib; sourceTree = ""; }; + 9AF4DFCA261F045E00365AD2 /* VBoxPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = VBoxPeCoffLib.lib; sourceTree = ""; }; + 9AF4DFCB261F045E00365AD2 /* DuetTimerLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = DuetTimerLib.lib; sourceTree = ""; }; + 9AF4DFCC261F045E00365AD2 /* OpensslLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = OpensslLib.lib; sourceTree = ""; }; + 9AF4DFCD261F045E00365AD2 /* HdaDevicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = HdaDevicesLib.lib; sourceTree = ""; }; + 9AF4DFCE261F045E00365AD2 /* WaveLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = WaveLib.lib; sourceTree = ""; }; + 9AF4DFE5261F045E00365AD2 /* MtrrLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = MtrrLib.lib; sourceTree = ""; }; + 9AF4DFE9261F045E00365AD2 /* FrameBufferBltLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = FrameBufferBltLib.lib; sourceTree = ""; }; + 9AF4DFEB261F045E00365AD2 /* AutoGen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AutoGen.h; sourceTree = ""; }; + 9AF4DFEC261F045E00365AD2 /* AutoGen.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = AutoGen.c; sourceTree = ""; }; + 9AF4E0EE261F04B700365AD2 /* CloverX64TestNewParser_UTF16_signed_RELEASE */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CloverX64TestNewParser_UTF16_signed_RELEASE; sourceTree = BUILT_PRODUCTS_DIR; }; + 9AF4E11E261F0A0E00365AD2 /* BaseMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseMemoryLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseMemoryLib/BaseMemoryLib/OUTPUT/BaseMemoryLib.lib; sourceTree = ""; }; + 9AF4E11F261F0A0F00365AD2 /* BasePciLibCf8.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePciLibCf8.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BasePciLibCf8/BasePciLibCf8/OUTPUT/BasePciLibCf8.lib; sourceTree = ""; }; + 9AF4E120261F0A0F00365AD2 /* DxeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeServicesTableLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib/OUTPUT/DxeServicesTableLib.lib; sourceTree = ""; }; + 9AF4E121261F0A0F00365AD2 /* UefiApplicationEntryPoint.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiApplicationEntryPoint.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint/OUTPUT/UefiApplicationEntryPoint.lib; sourceTree = ""; }; + 9AF4E122261F0A0F00365AD2 /* BaseLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib; sourceTree = ""; }; + 9AF4E123261F0A0F00365AD2 /* BaseDebugPrintErrorLevelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseDebugPrintErrorLevelLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib; sourceTree = ""; }; + 9AF4E124261F0A0F00365AD2 /* DxeServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeServicesLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/DxeServicesLib/DxeServicesLib/OUTPUT/DxeServicesLib.lib; sourceTree = ""; }; + 9AF4E125261F0A0F00365AD2 /* BasePciCf8Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePciCf8Lib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib/OUTPUT/BasePciCf8Lib.lib; sourceTree = ""; }; + 9AF4E126261F0A1000365AD2 /* DxeHobLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeHobLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/DxeHobLib/DxeHobLib/OUTPUT/DxeHobLib.lib; sourceTree = ""; }; + 9AF4E127261F0A1000365AD2 /* PeCoffExtraActionLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PeCoffExtraActionLibNull.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull/OUTPUT/PeCoffExtraActionLibNull.lib; sourceTree = ""; }; + 9AF4E128261F0A1000365AD2 /* UefiBootServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiBootServicesTableLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib; sourceTree = ""; }; + 9AF4E129261F0A1000365AD2 /* UefiDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiDevicePathLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib/OUTPUT/UefiDevicePathLib.lib; sourceTree = ""; }; + 9AF4E12A261F0A1000365AD2 /* BasePrintLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePrintLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib; sourceTree = ""; }; + 9AF4E12B261F0A1100365AD2 /* BaseIoLibIntrinsic.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseIoLibIntrinsic.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic/OUTPUT/BaseIoLibIntrinsic.lib; sourceTree = ""; }; + 9AF4E12C261F0A1100365AD2 /* UefiMemoryAllocationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiMemoryAllocationLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib; sourceTree = ""; }; + 9AF4E12D261F0A1100365AD2 /* BaseSerialPortLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseSerialPortLibNull.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseSerialPortLibNull/BaseSerialPortLibNull/OUTPUT/BaseSerialPortLibNull.lib; sourceTree = ""; }; + 9AF4E12E261F0A1100365AD2 /* BaseCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseCpuLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseCpuLib/BaseCpuLib/OUTPUT/BaseCpuLib.lib; sourceTree = ""; }; + 9AF4E12F261F0A1100365AD2 /* UefiFileHandleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiFileHandleLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib/OUTPUT/UefiFileHandleLib.lib; sourceTree = ""; }; + 9AF4E130261F0A1100365AD2 /* UefiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib; sourceTree = ""; }; + 9AF4E131261F0A1200365AD2 /* UefiRuntimeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiRuntimeServicesTableLib.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib; sourceTree = ""; }; + 9AF4E132261F0A1200365AD2 /* BaseDebugLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseDebugLibNull.lib; path = ../../../Build/Clover/RELEASEMACOS_XCODE8/X64/MdePkg/Library/BaseDebugLibNull/BaseDebugLibNull/OUTPUT/BaseDebugLibNull.lib; sourceTree = ""; }; 9AFB5F792610EDD50078E53D /* Config_Quirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Quirks.cpp; sourceTree = ""; }; - 9AFDCEA225CD9A3200EEAF06 /* OcDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDevicePathLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDevicePathLib/OcDevicePathLib/OUTPUT/OcDevicePathLib.lib; sourceTree = ""; }; - 9AFDCEA425CD9B1C00EEAF06 /* BaseCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseCpuLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseCpuLib/BaseCpuLib/OUTPUT/BaseCpuLib.lib; sourceTree = ""; }; - 9AFDCEA625CD9B2B00EEAF06 /* BaseSerialPortLib16550.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseSerialPortLib16550.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550/OUTPUT/BaseSerialPortLib16550.lib; sourceTree = ""; }; - 9AFDCEA825CD9B3700EEAF06 /* FrameBufferBltLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = FrameBufferBltLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib/OUTPUT/FrameBufferBltLib.lib; sourceTree = ""; }; - 9AFDCEAA25CD9B4500EEAF06 /* BaseDebugLibSerialPort.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseDebugLibSerialPort.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseDebugLibSerialPort/BaseDebugLibSerialPort/OUTPUT/BaseDebugLibSerialPort.lib; sourceTree = ""; }; - 9AFDCEAC25CD9B5700EEAF06 /* BaseDebugPrintErrorLevelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseDebugPrintErrorLevelLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseDebugPrintErrorLevelLib/BaseDebugPrintErrorLevelLib/OUTPUT/BaseDebugPrintErrorLevelLib.lib; sourceTree = ""; }; - 9AFDCEAE25CD9B6500EEAF06 /* BaseIoLibIntrinsic.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseIoLibIntrinsic.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseIoLibIntrinsic/BaseIoLibIntrinsic/OUTPUT/BaseIoLibIntrinsic.lib; sourceTree = ""; }; - 9AFDCEB025CD9B7400EEAF06 /* BaseLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseLib/BaseLib/OUTPUT/BaseLib.lib; sourceTree = ""; }; - 9AFDCEB325CD9BB000EEAF06 /* BaseMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BaseMemoryLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BaseMemoryLib/BaseMemoryLib/OUTPUT/BaseMemoryLib.lib; sourceTree = ""; }; - 9AFDCEB525CD9BC400EEAF06 /* BasePciCf8Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePciCf8Lib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BasePciCf8Lib/BasePciCf8Lib/OUTPUT/BasePciCf8Lib.lib; sourceTree = ""; }; - 9AFDCEB725CD9C5300EEAF06 /* MemLogLibDefault.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = MemLogLibDefault.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/MemLogLibDefault/MemLogLibDefault/OUTPUT/MemLogLibDefault.lib; sourceTree = ""; }; - 9AFDCEB925CD9CA300EEAF06 /* BasePrintLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePrintLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib; sourceTree = ""; }; - 9AFDCEC125CD9D0700EEAF06 /* BasePciLibCf8.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePciLibCf8.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BasePciLibCf8/BasePciLibCf8/OUTPUT/BasePciLibCf8.lib; sourceTree = ""; }; - 9AFDCEC625CD9D1500EEAF06 /* PeCoffExtraActionLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PeCoffExtraActionLibNull.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull/OUTPUT/PeCoffExtraActionLibNull.lib; sourceTree = ""; }; - 9AFDCECB25CD9D2600EEAF06 /* DxeHobLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeHobLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/DxeHobLib/DxeHobLib/OUTPUT/DxeHobLib.lib; sourceTree = ""; }; - 9AFDCED025CD9D3000EEAF06 /* DxeServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeServicesLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/DxeServicesLib/DxeServicesLib/OUTPUT/DxeServicesLib.lib; sourceTree = ""; }; - 9AFDCED525CD9D3D00EEAF06 /* DxeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DxeServicesTableLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib/OUTPUT/DxeServicesTableLib.lib; sourceTree = ""; }; - 9AFDCEDA25CD9D4800EEAF06 /* UefiApplicationEntryPoint.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiApplicationEntryPoint.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiApplicationEntryPoint/UefiApplicationEntryPoint/OUTPUT/UefiApplicationEntryPoint.lib; sourceTree = ""; }; - 9AFDCEDF25CD9D5300EEAF06 /* UefiBootServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiBootServicesTableLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiBootServicesTableLib/UefiBootServicesTableLib/OUTPUT/UefiBootServicesTableLib.lib; sourceTree = ""; }; - 9AFDCEE425CD9D6000EEAF06 /* UefiDevicePathLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiDevicePathLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib/OUTPUT/UefiDevicePathLib.lib; sourceTree = ""; }; - 9AFDCEE925CD9D6B00EEAF06 /* UefiFileHandleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiFileHandleLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiFileHandleLib/UefiFileHandleLib/OUTPUT/UefiFileHandleLib.lib; sourceTree = ""; }; - 9AFDCEEE25CD9D7700EEAF06 /* UefiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiLib/UefiLib/OUTPUT/UefiLib.lib; sourceTree = ""; }; - 9AFDCEF325CD9D8A00EEAF06 /* UefiMemoryAllocationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiMemoryAllocationLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiMemoryAllocationLib/UefiMemoryAllocationLib/OUTPUT/UefiMemoryAllocationLib.lib; sourceTree = ""; }; - 9AFDCEF825CD9D9500EEAF06 /* UefiRuntimeServicesTableLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = UefiRuntimeServicesTableLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdePkg/Library/UefiRuntimeServicesTableLib/UefiRuntimeServicesTableLib/OUTPUT/UefiRuntimeServicesTableLib.lib; sourceTree = ""; }; - 9AFDCEFD25CD9DC100EEAF06 /* OpenCore.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OpenCore.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Platform/OpenCore/OpenCoreLib/OUTPUT/OpenCore.lib; sourceTree = ""; }; - 9AFDCF0325CD9DFA00EEAF06 /* OcXmlLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcXmlLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcXmlLib/OcXmlLib/OUTPUT/OcXmlLib.lib; sourceTree = ""; }; - 9AFDCF0825CD9E0800EEAF06 /* OcVirtualFsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcVirtualFsLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcVirtualFsLib/OcVirtualFsLib/OUTPUT/OcVirtualFsLib.lib; sourceTree = ""; }; - 9AFDCF0D25CD9E2100EEAF06 /* OcUnicodeCollationEngGenericLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcUnicodeCollationEngGenericLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcUnicodeCollationEngLib/OcUnicodeCollationEngGenericLib/OUTPUT/OcUnicodeCollationEngGenericLib.lib; sourceTree = ""; }; - 9AFDCF1225CD9E6000EEAF06 /* OcTemplateLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcTemplateLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcTemplateLib/OcTemplateLib/OUTPUT/OcTemplateLib.lib; sourceTree = ""; }; - 9AFDCF1725CD9E6A00EEAF06 /* OcStringLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcStringLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcStringLib/OcStringLib/OUTPUT/OcStringLib.lib; sourceTree = ""; }; - 9AFDCF1C25CD9EAD00EEAF06 /* OcStorageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcStorageLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcStorageLib/OcStorageLib/OUTPUT/OcStorageLib.lib; sourceTree = ""; }; - 9AFDCF2125CD9EBA00EEAF06 /* OcSmcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcSmcLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcSmcLib/OcSmcLib/OUTPUT/OcSmcLib.lib; sourceTree = ""; }; - 9AFDCF2625CD9EC400EEAF06 /* OcSmbiosLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcSmbiosLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcSmbiosLib/OcSmbiosLib/OUTPUT/OcSmbiosLib.lib; sourceTree = ""; }; - 9AFDCF2B25CD9ED100EEAF06 /* OcSerializeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcSerializeLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcSerializeLib/OcSerializeLib/OUTPUT/OcSerializeLib.lib; sourceTree = ""; }; - 9AFDCF3025CD9EF800EEAF06 /* OcRtcLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcRtcLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcRtcLib/OcRtcLib/OUTPUT/OcRtcLib.lib; sourceTree = ""; }; - 9AFDCF3525CD9F0700EEAF06 /* OcRngLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcRngLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcRngLib/OcRngLib/OUTPUT/OcRngLib.lib; sourceTree = ""; }; - 9AFDCF3A25CD9F1200EEAF06 /* OcPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcPeCoffLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcPeCoffLib/OcPeCoffLib/OUTPUT/OcPeCoffLib.lib; sourceTree = ""; }; - 9AFDCF3F25CD9F1D00EEAF06 /* OcOSInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcOSInfoLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcOSInfoLib/OcOSInfoLib/OUTPUT/OcOSInfoLib.lib; sourceTree = ""; }; - 9AFDCF4425CD9F2B00EEAF06 /* OcMiscLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcMiscLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcMiscLib/OcMiscLib/OUTPUT/OcMiscLib.lib; sourceTree = ""; }; - 9AFDCF4925CD9F3500EEAF06 /* OcMemoryLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcMemoryLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcMemoryLib/OcMemoryLib/OUTPUT/OcMemoryLib.lib; sourceTree = ""; }; - 9AFDCF4E25CD9F3E00EEAF06 /* OcMachoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcMachoLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcMachoLib/OcMachoLib/OUTPUT/OcMachoLib.lib; sourceTree = ""; }; - 9AFDCF5325CD9F4900EEAF06 /* OcMacInfoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcMacInfoLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcMacInfoLib/OcMacInfoLib/OUTPUT/OcMacInfoLib.lib; sourceTree = ""; }; - 9AFDCF5825CD9F5400EEAF06 /* OcInputLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcInputLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcInputLib/OcInputLib/OUTPUT/OcInputLib.lib; sourceTree = ""; }; - 9AFDCF5D25CD9F6000EEAF06 /* OcHashServicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcHashServicesLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcHashServicesLib/OcHashServicesLib/OUTPUT/OcHashServicesLib.lib; sourceTree = ""; }; - 9AFDCF6225CD9F6A00EEAF06 /* OcGuardLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcGuardLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcGuardLib/OcGuardLib/OUTPUT/OcGuardLib.lib; sourceTree = ""; }; - 9AFDCF6725CD9F7500EEAF06 /* OcFirmwareVolumeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcFirmwareVolumeLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcFirmwareVolumeLib/OcFirmwareVolumeLib/OUTPUT/OcFirmwareVolumeLib.lib; sourceTree = ""; }; - 9AFDCF6C25CD9F7F00EEAF06 /* OcFileLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcFileLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcFileLib/OcFileLib/OUTPUT/OcFileLib.lib; sourceTree = ""; }; - 9AFDCF7125CD9F8800EEAF06 /* OcDriverConnectionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDriverConnectionLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDriverConnectionLib/OcDriverConnectionLib/OUTPUT/OcDriverConnectionLib.lib; sourceTree = ""; }; - 9AFDCF7625CD9F9200EEAF06 /* OcDeviceTreeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDeviceTreeLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDeviceTreeLib/OcDeviceTreeLib/OUTPUT/OcDeviceTreeLib.lib; sourceTree = ""; }; - 9AFDCF7B25CD9F9A00EEAF06 /* OcDevicePropertyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDevicePropertyLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDevicePropertyLib/OcDevicePropertyLib/OUTPUT/OcDevicePropertyLib.lib; sourceTree = ""; }; - 9AFDCF9125CD9FE800EEAF06 /* OcDebugLogLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDebugLogLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDebugLogLibOc2Clover/OcDebugLogLibOc2Clover/OUTPUT/OcDebugLogLib.lib; sourceTree = ""; }; - 9AFDCF9625CD9FF100EEAF06 /* OcDataHubLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcDataHubLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcDataHubLib/OcDataHubLib/OUTPUT/OcDataHubLib.lib; sourceTree = ""; }; - 9AFDCF9B25CD9FFA00EEAF06 /* OcCryptoLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcCryptoLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcCryptoLib/OcCryptoLib/OUTPUT/OcCryptoLib.lib; sourceTree = ""; }; - 9AFDCFA025CDA00200EEAF06 /* OcCpuLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcCpuLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcCpuLib/OcCpuLib/OUTPUT/OcCpuLib.lib; sourceTree = ""; }; - 9AFDCFA525CDA00C00EEAF06 /* OcConsoleLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcConsoleLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcConsoleLib/OcConsoleLib/OUTPUT/OcConsoleLib.lib; sourceTree = ""; }; - 9AFDCFAA25CDA01400EEAF06 /* OcConfigurationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcConfigurationLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcConfigurationLib/OcConfigurationLib/OUTPUT/OcConfigurationLib.lib; sourceTree = ""; }; - 9AFDCFAF25CDA01D00EEAF06 /* OcCompressionLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcCompressionLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcCompressionLib/OcCompressionLib/OUTPUT/OcCompressionLib.lib; sourceTree = ""; }; - 9AFDCFB425CDA02500EEAF06 /* OcBootManagementLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcBootManagementLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcBootManagementLib/OcBootManagementLib/OUTPUT/OcBootManagementLib.lib; sourceTree = ""; }; - 9AFDCFB925CDA02F00EEAF06 /* OcAudioLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAudioLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAudioLib/OcAudioLib/OUTPUT/OcAudioLib.lib; sourceTree = ""; }; - 9AFDCFBE25CDA03800EEAF06 /* OcAppleUserInterfaceThemeLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleUserInterfaceThemeLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleUserInterfaceThemeLib/OcAppleUserInterfaceThemeLib/OUTPUT/OcAppleUserInterfaceThemeLib.lib; sourceTree = ""; }; - 9AFDCFC325CDA04100EEAF06 /* OcAppleSecureBootLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleSecureBootLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleSecureBootLib/OcAppleSecureBootLib/OUTPUT/OcAppleSecureBootLib.lib; sourceTree = ""; }; - 9AFDCFC825CDA04900EEAF06 /* OcAppleRamDiskLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleRamDiskLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleRamDiskLib/OcAppleRamDiskLib/OUTPUT/OcAppleRamDiskLib.lib; sourceTree = ""; }; - 9AFDCFCD25CDA05200EEAF06 /* OcAppleKeysLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleKeysLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleKeysLib/OcAppleKeysLib/OUTPUT/OcAppleKeysLib.lib; sourceTree = ""; }; - 9AFDCFD225CDA05D00EEAF06 /* OcAppleKeyMapLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleKeyMapLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleKeyMapLib/OcAppleKeyMapLib/OUTPUT/OcAppleKeyMapLib.lib; sourceTree = ""; }; - 9AFDCFD725CDA06600EEAF06 /* OcAppleKernelLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleKernelLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleKernelLib/OcAppleKernelLib/OUTPUT/OcAppleKernelLib.lib; sourceTree = ""; }; - 9AFDCFDC25CDA06F00EEAF06 /* OcAppleImg4Lib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleImg4Lib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleImg4Lib/OcAppleImg4Lib/OUTPUT/OcAppleImg4Lib.lib; sourceTree = ""; }; - 9AFDCFE125CDA07700EEAF06 /* OcAppleImageVerificationLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleImageVerificationLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleImageVerificationLib/OcAppleImageVerificationLib/OUTPUT/OcAppleImageVerificationLib.lib; sourceTree = ""; }; - 9AFDCFE625CDA07F00EEAF06 /* OcAppleEventLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleEventLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleEventLib/OcAppleEventLib/OUTPUT/OcAppleEventLib.lib; sourceTree = ""; }; - 9AFDCFEB25CDA08800EEAF06 /* OcAppleDiskImageLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleDiskImageLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleDiskImageLib/OcAppleDiskImageLib/OUTPUT/OcAppleDiskImageLib.lib; sourceTree = ""; }; - 9AFDCFF025CDA09100EEAF06 /* OcAppleChunklistLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleChunklistLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleChunklistLib/OcAppleChunklistLib/OUTPUT/OcAppleChunklistLib.lib; sourceTree = ""; }; - 9AFDCFF525CDA09A00EEAF06 /* OcAppleBootPolicyLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAppleBootPolicyLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAppleBootPolicyLib/OcAppleBootPolicyLib/OUTPUT/OcAppleBootPolicyLib.lib; sourceTree = ""; }; - 9AFDCFFA25CDA0A200EEAF06 /* OcApfsLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcApfsLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcApfsLib/OcApfsLib/OUTPUT/OcApfsLib.lib; sourceTree = ""; }; - 9AFDCFFF25CDA0B300EEAF06 /* OcAfterBootCompatLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAfterBootCompatLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAfterBootCompatLib/OcAfterBootCompatLib/OUTPUT/OcAfterBootCompatLib.lib; sourceTree = ""; }; - 9AFDD00425CDA0BF00EEAF06 /* OcAcpiLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OcAcpiLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/OpenCorePkg/Library/OcAcpiLib/OcAcpiLib/OUTPUT/OcAcpiLib.lib; sourceTree = ""; }; - 9AFDD00A25CDA2AA00EEAF06 /* BasePlatformHookLibNull.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = BasePlatformHookLibNull.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/MdeModulePkg/Library/BasePlatformHookLibNull/BasePlatformHookLibNull/OUTPUT/BasePlatformHookLibNull.lib; sourceTree = ""; }; - 9AFDD01125CDA2E100EEAF06 /* DuetTimerLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = DuetTimerLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/DuetTimerLib/DuetTimerLib/OUTPUT/DuetTimerLib.lib; sourceTree = ""; }; - 9AFDD01625CDA31B00EEAF06 /* WaveLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = WaveLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/WaveLib/WaveLib/OUTPUT/WaveLib.lib; sourceTree = ""; }; - 9AFDD01B25CDA32400EEAF06 /* VideoBiosPatchLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = VideoBiosPatchLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/VideoBiosPatchLib/VideoBiosPatchLib/OUTPUT/VideoBiosPatchLib.lib; sourceTree = ""; }; - 9AFDD02025CDA32E00EEAF06 /* VBoxPeCoffLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = VBoxPeCoffLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/VBoxPeCoffLib/VBoxPeCoffLib/OUTPUT/VBoxPeCoffLib.lib; sourceTree = ""; }; - 9AFDD02525CDA33800EEAF06 /* OpensslLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = OpensslLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/OpensslLib/OpensslLibNull/OUTPUT/OpensslLib.lib; sourceTree = ""; }; - 9AFDD02A25CDA34800EEAF06 /* HdaDevicesLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = HdaDevicesLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/Library/HdaDevicesLib/HdaDevicesLib/OUTPUT/HdaDevicesLib.lib; sourceTree = ""; }; - 9AFDD03025CDA37900EEAF06 /* MtrrLib.lib */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = MtrrLib.lib; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/CloverEFI/UefiCpuPkg/Library/MtrrLib/MtrrLib/OUTPUT/MtrrLib.lib; sourceTree = ""; }; - 9AFDD03625CDA3F900EEAF06 /* AutoGen.obj */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.objfile"; name = AutoGen.obj; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/rEFIt_UEFI/refit/OUTPUT/AutoGen.obj; sourceTree = ""; }; - 9AFDD03B25CDA4F800EEAF06 /* AutoGen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AutoGen.h; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/rEFIt_UEFI/refit/DEBUG/AutoGen.h; sourceTree = ""; }; - 9AFDD03C25CDA4F900EEAF06 /* AutoGen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = AutoGen.c; path = ../../../../Build/Clover/DEBUGMACOS_XCODE8/X64/rEFIt_UEFI/refit/DEBUG/AutoGen.c; sourceTree = ""; }; - 9AFDD04525CDA9C000EEAF06 /* printf_lite-conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "printf_lite-conf.h"; path = "CloverMock/Include/printf_lite-conf.h"; sourceTree = SOURCE_ROOT; }; 9AFDD04B25CDB52600EEAF06 /* ConfigSample1.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ConfigSample1.h; sourceTree = ""; }; - 9AFDD04F25CDBAA700EEAF06 /* MemLogLib.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; name = MemLogLib.c; path = CloverMock/Library/MemLogLibDefault/MemLogLib.c; sourceTree = SOURCE_ROOT; }; 9AFDD05925CE730F00EEAF06 /* XToolsCommon_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XToolsCommon_test.h; sourceTree = ""; }; 9AFDD05A25CE730F00EEAF06 /* XString_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XString_test.h; sourceTree = ""; }; 9AFDD05B25CE730F00EEAF06 /* plist_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plist_tests.h; sourceTree = ""; }; @@ -5140,17 +5570,12 @@ 9AFDD07425CE730F00EEAF06 /* XArray_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XArray_tests.cpp; sourceTree = ""; }; 9AFDD07525CE730F00EEAF06 /* strncmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strncmp_test.cpp; sourceTree = ""; }; 9AFDD07625CE730F00EEAF06 /* printf_lite-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test.h"; sourceTree = ""; }; - 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XString_test.cpp; sourceTree = ""; }; + 9AFDD07725CE730F00EEAF06 /* XString_test.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 4; path = XString_test.cpp; sourceTree = ""; }; 9AFDD07825CE730F00EEAF06 /* LoadOptions_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadOptions_test.h; sourceTree = ""; }; 9AFDD07925CE730F00EEAF06 /* XToolsCommon_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XToolsCommon_test.cpp; sourceTree = ""; }; 9AFDD07A25CE730F00EEAF06 /* all_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = all_tests.h; sourceTree = ""; }; 9AFDD07B25CE730F00EEAF06 /* strlen_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strlen_test.cpp; sourceTree = ""; }; 9AFDD07C25CE730F00EEAF06 /* find_replace_mask_OC_tests.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = find_replace_mask_OC_tests.cpp; sourceTree = ""; }; - 9AFDD0D125CE9DD800EEAF06 /* ReadmeJief.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = ReadmeJief.txt; sourceTree = ""; }; - 9AFDD0D325CEA1C300EEAF06 /* xcode_utf_fixed.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = xcode_utf_fixed.cpp; path = ../../cpp_tests/src/xcode_utf_fixed.cpp; sourceTree = ""; }; - 9AFDD0D525CEA1E100EEAF06 /* xcode_utf_fixed.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = xcode_utf_fixed.h; path = ../../cpp_tests/Include/xcode_utf_fixed.h; sourceTree = ""; }; - 9AFDD0D625CEA94A00EEAF06 /* tmp.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = tmp.h; sourceTree = ""; }; - 9AFDD0D725CEA94A00EEAF06 /* tmp.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; path = tmp.c; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -5158,85 +5583,178 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 9AFDCED625CD9D3D00EEAF06 /* DxeServicesTableLib.lib in Frameworks */, - 9AFDCF4F25CD9F3F00EEAF06 /* OcMachoLib.lib in Frameworks */, - 9AFDCF9725CD9FF200EEAF06 /* OcDataHubLib.lib in Frameworks */, - 9AFDCFF625CDA09B00EEAF06 /* OcAppleBootPolicyLib.lib in Frameworks */, - 9AFDCF2725CD9EC400EEAF06 /* OcSmbiosLib.lib in Frameworks */, - 9AFDCFC425CDA04100EEAF06 /* OcAppleSecureBootLib.lib in Frameworks */, - 9AFDCF4A25CD9F3500EEAF06 /* OcMemoryLib.lib in Frameworks */, - 9AFDCF9C25CD9FFA00EEAF06 /* OcCryptoLib.lib in Frameworks */, - 9AFDCEE525CD9D6000EEAF06 /* UefiDevicePathLib.lib in Frameworks */, - 9AFDCFE725CDA07F00EEAF06 /* OcAppleEventLib.lib in Frameworks */, - 9AFDCFB525CDA02500EEAF06 /* OcBootManagementLib.lib in Frameworks */, - 9AFDD03125CDA37900EEAF06 /* MtrrLib.lib in Frameworks */, - 9AFDCF5425CD9F4900EEAF06 /* OcMacInfoLib.lib in Frameworks */, - 9AFDD01C25CDA32400EEAF06 /* VideoBiosPatchLib.lib in Frameworks */, - 9AFDCF4025CD9F1E00EEAF06 /* OcOSInfoLib.lib in Frameworks */, - 9AFDCFCE25CDA05200EEAF06 /* OcAppleKeysLib.lib in Frameworks */, - 9AFDCECC25CD9D2600EEAF06 /* DxeHobLib.lib in Frameworks */, - 9AFDCEAF25CD9B6500EEAF06 /* BaseIoLibIntrinsic.lib in Frameworks */, - 9AFDCFF125CDA09200EEAF06 /* OcAppleChunklistLib.lib in Frameworks */, - 9AFDD02625CDA33800EEAF06 /* OpensslLib.lib in Frameworks */, - 9A414767260545FD00440186 /* OpenCore.lib in Frameworks */, - 9AFDCF0925CD9E0800EEAF06 /* OcVirtualFsLib.lib in Frameworks */, - 9AFDCFC925CDA04900EEAF06 /* OcAppleRamDiskLib.lib in Frameworks */, - 9AFDCFA125CDA00300EEAF06 /* OcCpuLib.lib in Frameworks */, - 9AFDCFAB25CDA01500EEAF06 /* OcConfigurationLib.lib in Frameworks */, - 9AFDCEB625CD9BC400EEAF06 /* BasePciCf8Lib.lib in Frameworks */, - 9AFDCEA325CD9A3300EEAF06 /* OcDevicePathLib.lib in Frameworks */, - 9AFDCEC725CD9D1600EEAF06 /* PeCoffExtraActionLibNull.lib in Frameworks */, - 9AFDCF7C25CD9F9A00EEAF06 /* OcDevicePropertyLib.lib in Frameworks */, - 9AFDCFD825CDA06600EEAF06 /* OcAppleKernelLib.lib in Frameworks */, - 9AFDCFBF25CDA03800EEAF06 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */, - 9AFDCEE025CD9D5300EEAF06 /* UefiBootServicesTableLib.lib in Frameworks */, - 9AFDCF7225CD9F8800EEAF06 /* OcDriverConnectionLib.lib in Frameworks */, - 9AFDCF6825CD9F7500EEAF06 /* OcFirmwareVolumeLib.lib in Frameworks */, - 9A4147682605493600440186 /* BaseLib.lib in Frameworks */, - 9AFDCFEC25CDA08800EEAF06 /* OcAppleDiskImageLib.lib in Frameworks */, - 9AFDD03725CDA3F900EEAF06 /* AutoGen.obj in Frameworks */, - 9AFDCFA625CDA00C00EEAF06 /* OcConsoleLib.lib in Frameworks */, - 9AFDCFE225CDA07800EEAF06 /* OcAppleImageVerificationLib.lib in Frameworks */, - 9AFDD01725CDA31B00EEAF06 /* WaveLib.lib in Frameworks */, - 9AFDCF7725CD9F9200EEAF06 /* OcDeviceTreeLib.lib in Frameworks */, - 9AFDCEDB25CD9D4900EEAF06 /* UefiApplicationEntryPoint.lib in Frameworks */, - 9AFDCF9225CD9FE800EEAF06 /* OcDebugLogLib.lib in Frameworks */, - 9AFDCF0E25CD9E2100EEAF06 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */, - 9AFDCEEF25CD9D7700EEAF06 /* UefiLib.lib in Frameworks */, - 9AFDCEA525CD9B1C00EEAF06 /* BaseCpuLib.lib in Frameworks */, - 9AFDCEC225CD9D0700EEAF06 /* BasePciLibCf8.lib in Frameworks */, - 9AFDD02125CDA32E00EEAF06 /* VBoxPeCoffLib.lib in Frameworks */, - 9AFDCFB025CDA01D00EEAF06 /* OcCompressionLib.lib in Frameworks */, - 9AFDCF5925CD9F5400EEAF06 /* OcInputLib.lib in Frameworks */, - 9AFDCF6325CD9F6A00EEAF06 /* OcGuardLib.lib in Frameworks */, - 9AFDCF6D25CD9F7F00EEAF06 /* OcFileLib.lib in Frameworks */, - 9AFDCF3B25CD9F1300EEAF06 /* OcPeCoffLib.lib in Frameworks */, - 9AFDCF2225CD9EBA00EEAF06 /* OcSmcLib.lib in Frameworks */, - 9AFDD00B25CDA2AA00EEAF06 /* BasePlatformHookLibNull.lib in Frameworks */, - 9AFDCF1D25CD9EAD00EEAF06 /* OcStorageLib.lib in Frameworks */, - 9AFDCF1825CD9E6A00EEAF06 /* OcStringLib.lib in Frameworks */, - 9AA925F125CD99E300BD5E8B /* BasePcdLibNull.lib in Frameworks */, - 9AFDCEAD25CD9B5800EEAF06 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */, - 9AFDD01225CDA2E100EEAF06 /* DuetTimerLib.lib in Frameworks */, - 9AFDCFD325CDA05E00EEAF06 /* OcAppleKeyMapLib.lib in Frameworks */, - 9AFDCFFB25CDA0A300EEAF06 /* OcApfsLib.lib in Frameworks */, - 9AFDD00525CDA0BF00EEAF06 /* OcAcpiLib.lib in Frameworks */, - 9AFDCFDD25CDA06F00EEAF06 /* OcAppleImg4Lib.lib in Frameworks */, - 9AFDD02B25CDA34800EEAF06 /* HdaDevicesLib.lib in Frameworks */, - 9AFDCEEA25CD9D6B00EEAF06 /* UefiFileHandleLib.lib in Frameworks */, - 9AFDCF3625CD9F0700EEAF06 /* OcRngLib.lib in Frameworks */, - 9AFDCEF925CD9D9500EEAF06 /* UefiRuntimeServicesTableLib.lib in Frameworks */, - 9AFDCF4525CD9F2B00EEAF06 /* OcMiscLib.lib in Frameworks */, - 9AFDCEA925CD9B3700EEAF06 /* FrameBufferBltLib.lib in Frameworks */, - 9AFDCF0425CD9DFA00EEAF06 /* OcXmlLib.lib in Frameworks */, - 9AFDCF2C25CD9ED200EEAF06 /* OcSerializeLib.lib in Frameworks */, - 9AFDCF5E25CD9F6000EEAF06 /* OcHashServicesLib.lib in Frameworks */, - 9AFDD00025CDA0B300EEAF06 /* OcAfterBootCompatLib.lib in Frameworks */, - 9AFDCED125CD9D3000EEAF06 /* DxeServicesLib.lib in Frameworks */, - 9AFDCEA725CD9B2C00EEAF06 /* BaseSerialPortLib16550.lib in Frameworks */, - 9AFDCF1325CD9E6000EEAF06 /* OcTemplateLib.lib in Frameworks */, - 9AFDCFBA25CDA03000EEAF06 /* OcAudioLib.lib in Frameworks */, - 9AFDCF3125CD9EF800EEAF06 /* OcRtcLib.lib in Frameworks */, + 9A87927F261882D9000B9362 /* OcStringLib.lib in Frameworks */, + 9A8792C4261882DA000B9362 /* BasePlatformHookLibNull.lib in Frameworks */, + 9A8792B3261882DA000B9362 /* BaseMemoryLib.lib in Frameworks */, + 9A879296261882DA000B9362 /* OcAppleImageVerificationLib.lib in Frameworks */, + 9A87929D261882DA000B9362 /* OcMachoLib.lib in Frameworks */, + 9A8792AD261882DA000B9362 /* HdaDevicesLib.lib in Frameworks */, + 9A87929F261882DA000B9362 /* OcFileLib.lib in Frameworks */, + 9A879293261882DA000B9362 /* OcRngLib.lib in Frameworks */, + 9A8792B6261882DA000B9362 /* BaseCpuLib.lib in Frameworks */, + 9A8792B0261882DA000B9362 /* UefiApplicationEntryPoint.lib in Frameworks */, + 9A8792A5261882DA000B9362 /* OcHashServicesLib.lib in Frameworks */, + 9A8792AE261882DA000B9362 /* WaveLib.lib in Frameworks */, + 9A879278261882D9000B9362 /* OcStorageLib.lib in Frameworks */, + 9A8792C0261882DA000B9362 /* BasePrintLib.lib in Frameworks */, + 9A8792C6261882DA000B9362 /* FrameBufferBltLib.lib in Frameworks */, + 9A8792AB261882DA000B9362 /* DuetTimerLib.lib in Frameworks */, + 9A87929C261882DA000B9362 /* OcAppleDiskImageLib.lib in Frameworks */, + 9A8792A7261882DA000B9362 /* OcAppleBootPolicyLib.lib in Frameworks */, + 9A879294261882DA000B9362 /* OcAfterBootCompatLib.lib in Frameworks */, + 9A879287261882DA000B9362 /* OcCpuLib.lib in Frameworks */, + 9A8792B9261882DA000B9362 /* UefiMemoryAllocationLib.lib in Frameworks */, + 9A879297261882DA000B9362 /* OcMemoryLib.lib in Frameworks */, + 9A879281261882D9000B9362 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */, + 9A87928C261882DA000B9362 /* OcInputLib.lib in Frameworks */, + 9A8792BE261882DA000B9362 /* DxeServicesTableLib.lib in Frameworks */, + 9A879276261882D9000B9362 /* OcConfigurationLib.lib in Frameworks */, + 9A879290261882DA000B9362 /* OcApfsLib.lib in Frameworks */, + 9A879286261882D9000B9362 /* OcDebugLogLib.lib in Frameworks */, + 9A8792AA261882DA000B9362 /* VBoxPeCoffLib.lib in Frameworks */, + 9A879291261882DA000B9362 /* OcSmbiosLib.lib in Frameworks */, + 9A879279261882D9000B9362 /* OcVirtualFsLib.lib in Frameworks */, + 9A8792A0261882DA000B9362 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */, + 9A8792AC261882DA000B9362 /* OpensslLib.lib in Frameworks */, + 9A87929A261882DA000B9362 /* OcAppleImg4Lib.lib in Frameworks */, + 9A87928F261882DA000B9362 /* OcPeCoffLib.lib in Frameworks */, + 9A8792A2261882DA000B9362 /* OcOSInfoLib.lib in Frameworks */, + 9A879274261882D9000B9362 /* OcDataHubLib.lib in Frameworks */, + 9A879280261882D9000B9362 /* OcTemplateLib.lib in Frameworks */, + 9A8792C5261882DA000B9362 /* BaseSerialPortLib16550.lib in Frameworks */, + 9A879277261882D9000B9362 /* OcFirmwareVolumeLib.lib in Frameworks */, + 9A879275261882D9000B9362 /* OcXmlLib.lib in Frameworks */, + 9A8792A9261882DA000B9362 /* VideoBiosPatchLib.lib in Frameworks */, + 9A8792B2261882DA000B9362 /* UefiRuntimeServicesTableLib.lib in Frameworks */, + 9A87927B261882D9000B9362 /* OcCryptoLib.lib in Frameworks */, + 9A87927C261882D9000B9362 /* OcAudioLib.lib in Frameworks */, + 9A8792BA261882DA000B9362 /* UefiFileHandleLib.lib in Frameworks */, + 9A879283261882D9000B9362 /* OcAppleKeyMapLib.lib in Frameworks */, + 9A8792B5261882DA000B9362 /* DxeServicesLib.lib in Frameworks */, + 9A8792BD261882DA000B9362 /* BaseDebugLibSerialPort.lib in Frameworks */, + 9A879298261882DA000B9362 /* OcMacInfoLib.lib in Frameworks */, + 9A8792B8261882DA000B9362 /* PeCoffExtraActionLibNull.lib in Frameworks */, + 9A87928B261882DA000B9362 /* OcAppleKeysLib.lib in Frameworks */, + 9A879289261882DA000B9362 /* OcDevicePathLib.lib in Frameworks */, + 9A8792BF261882DA000B9362 /* BasePciLibCf8.lib in Frameworks */, + 9A8792C1261882DA000B9362 /* UefiDevicePathLib.lib in Frameworks */, + 9A87927E261882D9000B9362 /* OcAppleChunklistLib.lib in Frameworks */, + 9A8792A1261882DA000B9362 /* OcDeviceTreeLib.lib in Frameworks */, + 9A8792AF261882DA000B9362 /* BasePciCf8Lib.lib in Frameworks */, + 9A879284261882D9000B9362 /* OcConsoleLib.lib in Frameworks */, + 9A879292261882DA000B9362 /* OcSerializeLib.lib in Frameworks */, + 9A8792A3261882DA000B9362 /* OcDriverConnectionLib.lib in Frameworks */, + 9A8792A8261882DA000B9362 /* OcAppleSecureBootLib.lib in Frameworks */, + 9A879299261882DA000B9362 /* OcBootManagementLib.lib in Frameworks */, + 9A87928E261882DA000B9362 /* OcAppleRamDiskLib.lib in Frameworks */, + 9A879288261882DA000B9362 /* OcGuardLib.lib in Frameworks */, + 9A8792BC261882DA000B9362 /* UefiBootServicesTableLib.lib in Frameworks */, + 9A87929B261882DA000B9362 /* OcAcpiLib.lib in Frameworks */, + 9A879282261882D9000B9362 /* ControlMsrE2.lib in Frameworks */, + 9A8792B7261882DA000B9362 /* UefiLib.lib in Frameworks */, + 9A8792B1261882DA000B9362 /* BaseLib.lib in Frameworks */, + 9A87927D261882D9000B9362 /* OcDevicePropertyLib.lib in Frameworks */, + 9A87928D261882DA000B9362 /* OpenRuntime.lib in Frameworks */, + 9A87928A261882DA000B9362 /* OcAppleKernelLib.lib in Frameworks */, + 9A8792A4261882DA000B9362 /* OpenCore.lib in Frameworks */, + 9A8792B4261882DA000B9362 /* BaseIoLibIntrinsic.lib in Frameworks */, + 9A8792C2261882DA000B9362 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */, + 9A8792A6261882DA000B9362 /* OcMiscLib.lib in Frameworks */, + 9A8792BB261882DA000B9362 /* DxeHobLib.lib in Frameworks */, + 9A87929E261882DA000B9362 /* OcSmcLib.lib in Frameworks */, + 9A8792C3261882DA000B9362 /* MtrrLib.lib in Frameworks */, + 9A87927A261882D9000B9362 /* OcAppleEventLib.lib in Frameworks */, + 9A879295261882DA000B9362 /* OcCompressionLib.lib in Frameworks */, + 9A879285261882D9000B9362 /* OcRtcLib.lib in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 9AF4E096261F04B700365AD2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9AF4E17E261F0B3000365AD2 /* OcAcpiLib.lib in Frameworks */, + 9AF4E18D261F0B3000365AD2 /* OcAudioLib.lib in Frameworks */, + 9AF4E1A1261F0B3000365AD2 /* OcMemoryLib.lib in Frameworks */, + 9AF4E184261F0B3000365AD2 /* OcAppleEventLib.lib in Frameworks */, + 9AF4E19A261F0B3000365AD2 /* OcFileLib.lib in Frameworks */, + 9AF4E180261F0B3000365AD2 /* OcApfsLib.lib in Frameworks */, + 9AF4E19B261F0B3000365AD2 /* OcFirmwareVolumeLib.lib in Frameworks */, + 9AF4E1AF261F0B3000365AD2 /* OcXmlLib.lib in Frameworks */, + 9AF4E1A5261F0B3000365AD2 /* OcRngLib.lib in Frameworks */, + 9AF4E186261F0B3000365AD2 /* OcAppleImg4Lib.lib in Frameworks */, + 9AF4E142261F0A1200365AD2 /* BaseSerialPortLibNull.lib in Frameworks */, + 9AF4E1A3261F0B3000365AD2 /* OcOSInfoLib.lib in Frameworks */, + 9AF4E192261F0B3000365AD2 /* OcCpuLib.lib in Frameworks */, + 9AF4E1A0261F0B3000365AD2 /* OcMacInfoLib.lib in Frameworks */, + 9AF4E145261F0A1200365AD2 /* UefiLib.lib in Frameworks */, + 9AF4E147261F0A1200365AD2 /* BaseDebugLibNull.lib in Frameworks */, + 9AF4E1BF261F0D4800365AD2 /* WaveLib.lib in Frameworks */, + 9AF4E13C261F0A1200365AD2 /* PeCoffExtraActionLibNull.lib in Frameworks */, + 9AF4E144261F0A1200365AD2 /* UefiFileHandleLib.lib in Frameworks */, + 9AF4E141261F0A1200365AD2 /* UefiMemoryAllocationLib.lib in Frameworks */, + 9AF4E11A261F070700365AD2 /* MtrrLib.lib in Frameworks */, + 9AF4E1BA261F0D4800365AD2 /* VideoBiosPatchLib.lib in Frameworks */, + 9AF4E1B3261F0C4800365AD2 /* FrameBufferBltLib.lib in Frameworks */, + 9AF4E1BE261F0D4800365AD2 /* HdaDevicesLib.lib in Frameworks */, + 9AF4E18B261F0B3000365AD2 /* OcAppleSecureBootLib.lib in Frameworks */, + 9AF4E13A261F0A1200365AD2 /* BasePciCf8Lib.lib in Frameworks */, + 9AF4E1B0261F0B3000365AD2 /* OpenCore.lib in Frameworks */, + 9AF4E17D261F0B3000365AD2 /* ControlMsrE2.lib in Frameworks */, + 9AF4E13E261F0A1200365AD2 /* UefiDevicePathLib.lib in Frameworks */, + 9AF4E137261F0A1200365AD2 /* BaseLib.lib in Frameworks */, + 9AF4E1AB261F0B3000365AD2 /* OcStringLib.lib in Frameworks */, + 9AF4E19F261F0B3000365AD2 /* OcMachoLib.lib in Frameworks */, + 9AF4E1BD261F0D4800365AD2 /* OpensslLib.lib in Frameworks */, + 9AF4E19E261F0B3000365AD2 /* OcInputLib.lib in Frameworks */, + 9AF4E135261F0A1200365AD2 /* DxeServicesTableLib.lib in Frameworks */, + 9AF4E17F261F0B3000365AD2 /* OcAfterBootCompatLib.lib in Frameworks */, + 9AF4E146261F0A1200365AD2 /* UefiRuntimeServicesTableLib.lib in Frameworks */, + 9AF4E198261F0B3000365AD2 /* OcDeviceTreeLib.lib in Frameworks */, + 9AF4E134261F0A1200365AD2 /* BasePciLibCf8.lib in Frameworks */, + 9AF4E1AE261F0B3000365AD2 /* OcVirtualFsLib.lib in Frameworks */, + 9AF4E13B261F0A1200365AD2 /* DxeHobLib.lib in Frameworks */, + 9AF4E18E261F0B3000365AD2 /* OcBootManagementLib.lib in Frameworks */, + 9AF4E1A4261F0B3000365AD2 /* OcPeCoffLib.lib in Frameworks */, + 9AF4E1A2261F0B3000365AD2 /* OcMiscLib.lib in Frameworks */, + 9AF4E1A6261F0B3000365AD2 /* OcRtcLib.lib in Frameworks */, + 9AF4E183261F0B3000365AD2 /* OcAppleDiskImageLib.lib in Frameworks */, + 9AF4E190261F0B3000365AD2 /* OcConfigurationLib.lib in Frameworks */, + 9AF4E140261F0A1200365AD2 /* BaseIoLibIntrinsic.lib in Frameworks */, + 9AF4E138261F0A1200365AD2 /* BaseDebugPrintErrorLevelLib.lib in Frameworks */, + 9AF4E19C261F0B3000365AD2 /* OcGuardLib.lib in Frameworks */, + 9AF4E195261F0B3000365AD2 /* OcDebugLogLib.lib in Frameworks */, + 9AF4E1B1261F0B3000365AD2 /* OpenRuntime.lib in Frameworks */, + 9AF4E143261F0A1200365AD2 /* BaseCpuLib.lib in Frameworks */, + 9AF4E197261F0B3000365AD2 /* OcDevicePropertyLib.lib in Frameworks */, + 9AF4E191261F0B3000365AD2 /* OcConsoleLib.lib in Frameworks */, + 9AF4E136261F0A1200365AD2 /* UefiApplicationEntryPoint.lib in Frameworks */, + 9AF4E181261F0B3000365AD2 /* OcAppleBootPolicyLib.lib in Frameworks */, + 9AF4E18F261F0B3000365AD2 /* OcCompressionLib.lib in Frameworks */, + 9AF4E1A9261F0B3000365AD2 /* OcSmcLib.lib in Frameworks */, + 9AF4E193261F0B3000365AD2 /* OcCryptoLib.lib in Frameworks */, + 9AF4E13D261F0A1200365AD2 /* UefiBootServicesTableLib.lib in Frameworks */, + 9AF4E199261F0B3000365AD2 /* OcDriverConnectionLib.lib in Frameworks */, + 9AF4E187261F0B3000365AD2 /* OcAppleKernelLib.lib in Frameworks */, + 9AF4E18A261F0B3000365AD2 /* OcAppleRamDiskLib.lib in Frameworks */, + 9AF4E185261F0B3000365AD2 /* OcAppleImageVerificationLib.lib in Frameworks */, + 9AF4E19D261F0B3000365AD2 /* OcHashServicesLib.lib in Frameworks */, + 9AF4E182261F0B3000365AD2 /* OcAppleChunklistLib.lib in Frameworks */, + 9AF4E1A7261F0B3000365AD2 /* OcSerializeLib.lib in Frameworks */, + 9AF4E1BB261F0D4800365AD2 /* VBoxPeCoffLib.lib in Frameworks */, + 9AF4E1AC261F0B3000365AD2 /* OcTemplateLib.lib in Frameworks */, + 9AF4E189261F0B3000365AD2 /* OcAppleKeysLib.lib in Frameworks */, + 9AF4E13F261F0A1200365AD2 /* BasePrintLib.lib in Frameworks */, + 9AF4E18C261F0B3000365AD2 /* OcAppleUserInterfaceThemeLib.lib in Frameworks */, + 9AF4E139261F0A1200365AD2 /* DxeServicesLib.lib in Frameworks */, + 9AF4E133261F0A1200365AD2 /* BaseMemoryLib.lib in Frameworks */, + 9AF4E1A8261F0B3000365AD2 /* OcSmbiosLib.lib in Frameworks */, + 9AF4E188261F0B3000365AD2 /* OcAppleKeyMapLib.lib in Frameworks */, + 9AF4E1AD261F0B3000365AD2 /* OcUnicodeCollationEngGenericLib.lib in Frameworks */, + 9AF4E196261F0B3000365AD2 /* OcDevicePathLib.lib in Frameworks */, + 9AF4E194261F0B3000365AD2 /* OcDataHubLib.lib in Frameworks */, + 9AF4E1AA261F0B3000365AD2 /* OcStorageLib.lib in Frameworks */, + 9AF4E1BC261F0D4800365AD2 /* DuetTimerLib.lib in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -5286,6 +5804,8 @@ 9AA923DE25CD5B2600BD5E8B /* BootOptions.h */, 9AA9E4D425CD1C9400BD5E8B /* card_vlist.cpp */, 9AA9E4D525CD1C9400BD5E8B /* card_vlist.h */, + 9AF1EFF72634354A00F7C2C0 /* ConfigManager.cpp */, + 9AF1EFF52634354900F7C2C0 /* ConfigManager.h */, 9A358AF325CF115100A3850D /* ConfigPlist */, 9AA9240025CD5B2A00BD5E8B /* Console.cpp */, 9AA9239725CD5B1B00BD5E8B /* Console.h */, @@ -5341,19 +5861,19 @@ 9AA923C525CD5B2000BD5E8B /* nvidia.h */, 9AA923D425CD5B2400BD5E8B /* Nvram.cpp */, 9AA923BC25CD5B1E00BD5E8B /* Nvram.h */, - 9AA923B925CD5B1D00BD5E8B /* Platform.h */, 9AA923CE25CD5B2200BD5E8B /* platformdata.cpp */, 9AA923E225CD5B2700BD5E8B /* platformdata.h */, 9AA9239925CD5B1B00BD5E8B /* PlatformDriverOverride.cpp */, 9AA923D525CD5B2400BD5E8B /* PlatformDriverOverride.h */, 9A36E4D924F3B51C007A1107 /* plist */, - 9A28CCAF241B816400F3D247 /* Posix */, 9AA923E325CD5B2700BD5E8B /* Self.cpp */, 9AA923BF25CD5B1F00BD5E8B /* Self.h */, 9AA9239425CD5B1A00BD5E8B /* SelfOem.cpp */, 9AA9241025CD5B2E00BD5E8B /* SelfOem.h */, 9A852C0E25CC39E900C5662E /* Settings.cpp */, 9A852C0D25CC39E900C5662E /* Settings.h */, + 9AF1EFF22634354500F7C2C0 /* SettingsUtils.cpp */, + 9AF1EFF62634354900F7C2C0 /* SettingsUtils.h */, 9AA9239A25CD5B1C00BD5E8B /* smbios.cpp */, 9AA923B625CD5B1D00BD5E8B /* smbios.h */, 9AA923D025CD5B2300BD5E8B /* sound.cpp */, @@ -5371,50 +5891,17 @@ 9AA9E50125CD2FF400BD5E8B /* Utils.h */, 9AA9E4DA25CD279100BD5E8B /* VersionString.cpp */, 9AA9E4DB25CD279200BD5E8B /* VersionString.h */, + 9AF1EFF32634354800F7C2C0 /* Volume.cpp */, + 9AF1EFF42634354800F7C2C0 /* Volume.h */, 9AA923D125CD5B2300BD5E8B /* Volumes.cpp */, 9AA923D325CD5B2300BD5E8B /* Volumes.h */, ); path = Platform; sourceTree = ""; }; - 9A28CCAF241B816400F3D247 /* Posix */ = { - isa = PBXGroup; - children = ( - 9AC790112452C45A0004FBE9 /* abort.h */, - 9A28CD1D241BB61B00F3D247 /* abort.cpp */, - 9A28CD1E241BB61B00F3D247 /* strlen.cpp */, - ); - path = Posix; - sourceTree = ""; - }; 9A358AF325CF115100A3850D /* ConfigPlist */ = { isa = PBXGroup; children = ( - 9AFB5F792610EDD50078E53D /* Config_Quirks.cpp */, - 9AA316CE260EF7750033D29F /* CompareField.cpp */, - 9AA316CF260EF7760033D29F /* CompareField.h */, - 9A358B1625CF115100A3850D /* CompareSettings.cpp */, - 9A358AFE25CF115100A3850D /* CompareSettings.h */, - 9AA316CB260EF75A0033D29F /* CompareSettingsBoot.cpp */, - 9AA316CC260EF75A0033D29F /* CompareSettingsBoot.h */, - 9AA316D1260EFC410033D29F /* CompareSettingsACPI.cpp */, - 9AA316D2260EFC410033D29F /* CompareSettingsACPI.h */, - 9AA316D4260F0CBE0033D29F /* CompareSettingsGUI.cpp */, - 9AA316D5260F0CBE0033D29F /* CompareSettingsGUI.h */, - 9AA316D8260F259F0033D29F /* CompareSettingsCPU.cpp */, - 9AA316D7260F259F0033D29F /* CompareSettingsCPU.h */, - 9AA316DA260F26790033D29F /* CompareSettingsSystemParameters.cpp */, - 9AA316DB260F267A0033D29F /* CompareSettingsSystemParameters.h */, - 9AA316DE260F27790033D29F /* CompareSettingsKernelAndKextPatches.cpp */, - 9AA316DD260F27790033D29F /* CompareSettingsKernelAndKextPatches.h */, - 9AA316E0260F2BE50033D29F /* CompareSettingsGraphics.cpp */, - 9AA316E1260F2BE60033D29F /* CompareSettingsGraphics.h */, - 9A13D98D2610569300863C91 /* CompareSettingsDevices.cpp */, - 9A13D98C2610569300863C91 /* CompareSettingsDevices.h */, - 9A13D99026105B2200863C91 /* CompareSettingsQuirks.cpp */, - 9A13D98F26105B2200863C91 /* CompareSettingsQuirks.h */, - 9AFB5F76261060CB0078E53D /* CompareSettingsRtVariables.cpp */, - 9AFB5F77261060CB0078E53D /* CompareSettingsRtVariables.h */, 9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */, 9A358AFA25CF115100A3850D /* Config_ACPI_DSDT.h */, 9A358B1A25CF115100A3850D /* Config_ACPI_SSDT.h */, @@ -5427,7 +5914,6 @@ 9A358B0925CF115100A3850D /* Config_Devices_Arbitrary.h */, 9A358AFF25CF115100A3850D /* Config_Devices_Audio.h */, 9A358B1D25CF115100A3850D /* Config_Devices_FakeID.h */, - 9A358B1025CF115100A3850D /* Config_Devices_Properties.cpp */, 9A358B0425CF115100A3850D /* Config_Devices_Properties.h */, 9A358B1E25CF115100A3850D /* Config_Devices_USB.h */, 9A358B1125CF115100A3850D /* Config_Devices.h */, @@ -5435,12 +5921,16 @@ 9A358AF425CF115100A3850D /* Config_GUI.cpp */, 9A358B1B25CF115100A3850D /* Config_GUI.h */, 9A358AF725CF115100A3850D /* Config_KernelAndKextPatches.h */, + 9AFB5F792610EDD50078E53D /* Config_Quirks.cpp */, 9A358B0125CF115100A3850D /* Config_Quirks.h */, 9A358B1C25CF115100A3850D /* Config_RtVariables.h */, - 9A358B0E25CF115100A3850D /* Config_SMBIOS.h */, 9A358B0D25CF115100A3850D /* Config_SystemParameters.h */, + 9A77BAA526336335000FFF8A /* ConfigPlistAbstract.cpp */, + 9A77BAA326336334000FFF8A /* ConfigPlistAbstract.h */, 9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */, 9A358AFB25CF115100A3850D /* ConfigPlistClass.h */, + 9A77BAA226336334000FFF8A /* SMBIOSPlist.cpp */, + 9A77BAA426336334000FFF8A /* SMBIOSPlist.h */, ); path = ConfigPlist; sourceTree = ""; @@ -5449,12 +5939,18 @@ isa = PBXGroup; children = ( 9A4147662604F82900440186 /* undefinable.h */, + 9A071C41261A44070007CC44 /* XmlLiteArrayTypes.cpp */, + 9A071C46261A44080007CC44 /* XmlLiteArrayTypes.h */, 9A358B3925CF117A00A3850D /* XmlLiteCompositeTypes.cpp */, 9A358B3C25CF117A00A3850D /* XmlLiteCompositeTypes.h */, + 9A071C44261A44080007CC44 /* XmlLiteDictTypes.cpp */, + 9A071C43261A44080007CC44 /* XmlLiteDictTypes.h */, 9A358B3A25CF117A00A3850D /* XmlLiteParser.cpp */, 9A358B3725CF117A00A3850D /* XmlLiteParser.h */, 9AD0EB22260A497500093F23 /* XmlLiteSimpleTypes.cpp */, 9AD0EB23260A497500093F23 /* XmlLiteSimpleTypes.h */, + 9A071C42261A44070007CC44 /* XmlLiteUnionTypes.cpp */, + 9A071C45261A44080007CC44 /* XmlLiteUnionTypes.h */, ); path = cpp_lib; sourceTree = ""; @@ -5493,6 +5989,7 @@ 9A36E51C24F3B5B4007A1107 /* rEFIt_UEFI */ = { isa = PBXGroup; children = ( + 9A8792E4261886F5000B9362 /* PlatformPOSIX */, 9A358B3625CF117A00A3850D /* cpp_lib */, 9AFDD05825CE730F00EEAF06 /* cpp_unit_test */, 9A0B08432402FE9300E2B470 /* cpp_foundation */, @@ -5547,85 +6044,265 @@ path = libeg; sourceTree = ""; }; - 9A5022BC25CC432700E2099D /* UefiMock */ = { + 9A879205261882D9000B9362 /* PosixCompilation */ = { isa = PBXGroup; children = ( - 9A838CC52534933F008303F5 /* Base.h */, - 9A838CB7253481FF008303F5 /* Library */, - 9AA918B325CD4A0C00BD5E8B /* Globals.cpp */, + 9A879206261882D9000B9362 /* CloverMock */, + 9A87920D261882D9000B9362 /* DEBUG_Libs */, + 9A87920C261882D9000B9362 /* ReadmeJief.txt */, + 9AF4DF91261F045E00365AD2 /* RELEASE_Libs */, + 9A87926A261882D9000B9362 /* UefiMock */, + 9A879269261882D9000B9362 /* xcode_utf_fixed.cpp */, + 9A879272261882D9000B9362 /* xcode_utf_fixed.h */, ); - path = UefiMock; + name = PosixCompilation; + path = ../../PosixCompilation; sourceTree = ""; }; - 9A5022BD25CC44C900E2099D /* CloverMock */ = { + 9A879206261882D9000B9362 /* CloverMock */ = { isa = PBXGroup; children = ( - 9AFDD04C25CDBA7000EEAF06 /* Library */, - 9AFDD04625CDA9C600EEAF06 /* Include */, - 9AA3911725CC4D200099DC1F /* rEFIt_UEFI */, - 9AA918CB25CD4FF600BD5E8B /* guids_from_autogen.h */, - 9AA918CC25CD4FFF00BD5E8B /* guids_from_autogen.c */, + 9A879207261882D9000B9362 /* Include */, + 9A879209261882D9000B9362 /* Library */, ); path = CloverMock; sourceTree = ""; }; - 9A5022BE25CC44C900E2099D /* include */ = { + 9A879207261882D9000B9362 /* Include */ = { isa = PBXGroup; children = ( - 9A4C5762255AAC0A004F0B21 /* XToolsConf.h */, - 9A5022BF25CC44C900E2099D /* Efi.h */, - 9A4C5765255AAC0A004F0B21 /* printf_lite-test-cpp_conf.h */, - 9A4C5763255AAC0A004F0B21 /* printlib-test-cpp_conf.h */, - 9AA3912625CC57190099DC1F /* OneLinerMacros.h */, + 9A879208261882D9000B9362 /* printf_lite-conf.h */, + ); + path = Include; + sourceTree = ""; + }; + 9A879209261882D9000B9362 /* Library */ = { + isa = PBXGroup; + children = ( + 9A87920A261882D9000B9362 /* MemLogLibDefault */, + ); + path = Library; + sourceTree = ""; + }; + 9A87920A261882D9000B9362 /* MemLogLibDefault */ = { + isa = PBXGroup; + children = ( + 9A87920B261882D9000B9362 /* MemLogLib.c */, + ); + path = MemLogLibDefault; + sourceTree = ""; + }; + 9A87920D261882D9000B9362 /* DEBUG_Libs */ = { + isa = PBXGroup; + children = ( + 9A87920E261882D9000B9362 /* OC */, + 9A879244261882D9000B9362 /* Library */, + 9A87924B261882D9000B9362 /* MdePkg */, + 9A879260261882D9000B9362 /* CloverEFI */, + 9A879262261882D9000B9362 /* MdeModulePkg */, + 9A879266261882D9000B9362 /* Autogen */, + ); + path = DEBUG_Libs; + sourceTree = ""; + }; + 9A87920E261882D9000B9362 /* OC */ = { + isa = PBXGroup; + children = ( + 9A87920F261882D9000B9362 /* OcDataHubLib.lib */, + 9A879210261882D9000B9362 /* OcXmlLib.lib */, + 9A879211261882D9000B9362 /* OcConfigurationLib.lib */, + 9A879212261882D9000B9362 /* OcFirmwareVolumeLib.lib */, + 9A879213261882D9000B9362 /* OcStorageLib.lib */, + 9A879214261882D9000B9362 /* OcVirtualFsLib.lib */, + 9A879215261882D9000B9362 /* OcAppleEventLib.lib */, + 9A879216261882D9000B9362 /* OcCryptoLib.lib */, + 9A879217261882D9000B9362 /* OcAudioLib.lib */, + 9A879218261882D9000B9362 /* OcDevicePropertyLib.lib */, + 9A879219261882D9000B9362 /* OcAppleChunklistLib.lib */, + 9A87921A261882D9000B9362 /* OcStringLib.lib */, + 9A87921B261882D9000B9362 /* OcTemplateLib.lib */, + 9A87921C261882D9000B9362 /* OcUnicodeCollationEngGenericLib.lib */, + 9A87921D261882D9000B9362 /* ControlMsrE2.lib */, + 9A87921E261882D9000B9362 /* OcAppleKeyMapLib.lib */, + 9A87921F261882D9000B9362 /* OcConsoleLib.lib */, + 9A879220261882D9000B9362 /* OcRtcLib.lib */, + 9A879221261882D9000B9362 /* OcDebugLogLib.lib */, + 9A879222261882D9000B9362 /* OcCpuLib.lib */, + 9A879223261882D9000B9362 /* OcGuardLib.lib */, + 9A879224261882D9000B9362 /* OcDevicePathLib.lib */, + 9A879225261882D9000B9362 /* OcAppleKernelLib.lib */, + 9A879226261882D9000B9362 /* OcAppleKeysLib.lib */, + 9A879227261882D9000B9362 /* OcInputLib.lib */, + 9A879228261882D9000B9362 /* OpenRuntime.lib */, + 9A879229261882D9000B9362 /* OcAppleRamDiskLib.lib */, + 9A87922A261882D9000B9362 /* OcPeCoffLib.lib */, + 9A87922B261882D9000B9362 /* OcApfsLib.lib */, + 9A87922C261882D9000B9362 /* OcSmbiosLib.lib */, + 9A87922D261882D9000B9362 /* OcSerializeLib.lib */, + 9A87922E261882D9000B9362 /* OcRngLib.lib */, + 9A87922F261882D9000B9362 /* OcAfterBootCompatLib.lib */, + 9A879230261882D9000B9362 /* OcCompressionLib.lib */, + 9A879231261882D9000B9362 /* OcAppleImageVerificationLib.lib */, + 9A879232261882D9000B9362 /* OcMemoryLib.lib */, + 9A879233261882D9000B9362 /* OcMacInfoLib.lib */, + 9A879234261882D9000B9362 /* OcBootManagementLib.lib */, + 9A879235261882D9000B9362 /* OcAppleImg4Lib.lib */, + 9A879236261882D9000B9362 /* OcAcpiLib.lib */, + 9A879237261882D9000B9362 /* OcAppleDiskImageLib.lib */, + 9A879238261882D9000B9362 /* OcMachoLib.lib */, + 9A879239261882D9000B9362 /* OcSmcLib.lib */, + 9A87923A261882D9000B9362 /* OcFileLib.lib */, + 9A87923B261882D9000B9362 /* OcAppleUserInterfaceThemeLib.lib */, + 9A87923C261882D9000B9362 /* OcDeviceTreeLib.lib */, + 9A87923D261882D9000B9362 /* OcOSInfoLib.lib */, + 9A87923E261882D9000B9362 /* OcDriverConnectionLib.lib */, + 9A87923F261882D9000B9362 /* OpenCore.lib */, + 9A879240261882D9000B9362 /* OcHashServicesLib.lib */, + 9A879241261882D9000B9362 /* OcMiscLib.lib */, + 9A879242261882D9000B9362 /* OcAppleBootPolicyLib.lib */, + 9A879243261882D9000B9362 /* OcAppleSecureBootLib.lib */, + ); + path = OC; + sourceTree = ""; + }; + 9A879244261882D9000B9362 /* Library */ = { + isa = PBXGroup; + children = ( + 9A879245261882D9000B9362 /* VideoBiosPatchLib.lib */, + 9A879246261882D9000B9362 /* VBoxPeCoffLib.lib */, + 9A879247261882D9000B9362 /* DuetTimerLib.lib */, + 9A879248261882D9000B9362 /* OpensslLib.lib */, + 9A879249261882D9000B9362 /* HdaDevicesLib.lib */, + 9A87924A261882D9000B9362 /* WaveLib.lib */, + ); + path = Library; + sourceTree = ""; + }; + 9A87924B261882D9000B9362 /* MdePkg */ = { + isa = PBXGroup; + children = ( + 9A879253261882D9000B9362 /* BaseCpuLib.lib */, + 9A87925A261882D9000B9362 /* BaseDebugLibSerialPort.lib */, + 9A87925F261882D9000B9362 /* BaseDebugPrintErrorLevelLib.lib */, + 9A879251261882D9000B9362 /* BaseIoLibIntrinsic.lib */, + 9A87924E261882D9000B9362 /* BaseLib.lib */, + 9A879250261882D9000B9362 /* BaseMemoryLib.lib */, + 9A87924C261882D9000B9362 /* BasePciCf8Lib.lib */, + 9A87925C261882D9000B9362 /* BasePciLibCf8.lib */, + 9A87925D261882D9000B9362 /* BasePrintLib.lib */, + 9A879258261882D9000B9362 /* DxeHobLib.lib */, + 9A879252261882D9000B9362 /* DxeServicesLib.lib */, + 9A87925B261882D9000B9362 /* DxeServicesTableLib.lib */, + 9A879255261882D9000B9362 /* PeCoffExtraActionLibNull.lib */, + 9A87924D261882D9000B9362 /* UefiApplicationEntryPoint.lib */, + 9A879259261882D9000B9362 /* UefiBootServicesTableLib.lib */, + 9A87925E261882D9000B9362 /* UefiDevicePathLib.lib */, + 9A879257261882D9000B9362 /* UefiFileHandleLib.lib */, + 9A879254261882D9000B9362 /* UefiLib.lib */, + 9A879256261882D9000B9362 /* UefiMemoryAllocationLib.lib */, + 9A87924F261882D9000B9362 /* UefiRuntimeServicesTableLib.lib */, + ); + path = MdePkg; + sourceTree = ""; + }; + 9A879260261882D9000B9362 /* CloverEFI */ = { + isa = PBXGroup; + children = ( + 9A879261261882D9000B9362 /* MtrrLib.lib */, + ); + path = CloverEFI; + sourceTree = ""; + }; + 9A879262261882D9000B9362 /* MdeModulePkg */ = { + isa = PBXGroup; + children = ( + 9A879263261882D9000B9362 /* BasePlatformHookLibNull.lib */, + 9A879264261882D9000B9362 /* BaseSerialPortLib16550.lib */, + 9A879265261882D9000B9362 /* FrameBufferBltLib.lib */, + ); + path = MdeModulePkg; + sourceTree = ""; + }; + 9A879266261882D9000B9362 /* Autogen */ = { + isa = PBXGroup; + children = ( + 9A879267261882D9000B9362 /* AutoGen.h */, + 9A879268261882D9000B9362 /* AutoGen.c */, + ); + path = Autogen; + sourceTree = ""; + }; + 9A87926A261882D9000B9362 /* UefiMock */ = { + isa = PBXGroup; + children = ( + 9A87926B261882D9000B9362 /* Library */, + 9A879270261882D9000B9362 /* Globals.cpp */, + 9A879271261882D9000B9362 /* Base.h */, + ); + path = UefiMock; + sourceTree = ""; + }; + 9A87926B261882D9000B9362 /* Library */ = { + isa = PBXGroup; + children = ( + 9A87926C261882D9000B9362 /* BaseMemoryLib.c */, + 9A87926D261882D9000B9362 /* MemoryAllocationLib.c */, + 9A87926E261882D9000B9362 /* PrintLib.c */, + 9A87926F261882D9000B9362 /* DebugLib.c */, + ); + path = Library; + sourceTree = ""; + }; + 9A8792E4261886F5000B9362 /* PlatformPOSIX */ = { + isa = PBXGroup; + children = ( + 9A8792E5261886F5000B9362 /* posix */, + 9A8792EB261886F5000B9362 /* include */, + 9A8792F0261886F5000B9362 /* BootLog.cpp */, + 9A8792F1261886F5000B9362 /* BasicIO.cpp */, + 9A8792F2261886F5000B9362 /* cpp_util */, + ); + path = PlatformPOSIX; + sourceTree = ""; + }; + 9A8792E5261886F5000B9362 /* posix */ = { + isa = PBXGroup; + children = ( + 9A8792E6261886F5000B9362 /* posix_additions.cpp */, + 9A8792E7261886F5000B9362 /* abort.cpp */, + 9A8792E8261886F5000B9362 /* posix.h */, + 9A8792E9261886F5000B9362 /* posix_additions.h */, + 9A8792EA261886F5000B9362 /* abort.h */, + ); + path = posix; + sourceTree = ""; + }; + 9A8792EB261886F5000B9362 /* include */ = { + isa = PBXGroup; + children = ( + 9A8792EC261886F5000B9362 /* printlib-test-cpp_conf.h */, + 9A8792ED261886F5000B9362 /* printf_lite-test-cpp_conf.h */, + 9A8792EE261886F5000B9362 /* Platform.h */, + 9A8792EF261886F5000B9362 /* XToolsConf.h */, ); path = include; sourceTree = ""; }; - 9A5022C025CC44C900E2099D /* Platform */ = { + 9A8792F2261886F5000B9362 /* cpp_util */ = { isa = PBXGroup; children = ( - 9AA925BF25CD87B600BD5E8B /* BasicIO.cpp */, - 9AA9E4CF25CD177500BD5E8B /* BootLog.cpp */, - 9A5022C125CC44C900E2099D /* Platform.h */, - 9A5022C425CC47B400E2099D /* Posix */, + 9A8792F3261886F5000B9362 /* globals_dtor.h */, + 9A8792F4261886F5000B9362 /* operatorNewDelete.h */, + 9A8792F5261886F5000B9362 /* globals_ctor.h */, ); - path = Platform; - sourceTree = ""; - }; - 9A5022C425CC47B400E2099D /* Posix */ = { - isa = PBXGroup; - children = ( - 9AA9E54C25CD41E900BD5E8B /* posix_additions.cpp */, - 9AA9E54B25CD41E900BD5E8B /* posix_additions.h */, - 9A4C5766255AAC0A004F0B21 /* posix.h */, - ); - path = Posix; - sourceTree = ""; - }; - 9A838CB7253481FF008303F5 /* Library */ = { - isa = PBXGroup; - children = ( - 9AD0358B25C57A4500E58351 /* MemoryAllocationLib.c */, - 9A838CB925348237008303F5 /* BaseMemoryLib.c */, - 9A838CBF253485C8008303F5 /* BaseLib.c */, - 9A838CC2253485DC008303F5 /* DebugLib.c */, - 9A838CC425348610008303F5 /* OcMiscLib.h */, - 9AD0358A25C579B200E58351 /* PrintLib.h */, - 9AD0359325C57C8A00E58351 /* PrintLib.c */, - 9AA918D225CD559400BD5E8B /* DevicePathLib.c */, - 9AA918D825CD58DB00BD5E8B /* DevicePathUtilities.h */, - ); - path = Library; + path = cpp_util; sourceTree = ""; }; 9A9223242402FD1000483CBA = { isa = PBXGroup; children = ( - 9AA925EF25CD994A00BD5E8B /* EdkLibs */, + 9A879205261882D9000B9362 /* PosixCompilation */, 9AA9185625CD465800BD5E8B /* Clover */, - 9AA3919325CC78440099DC1F /* OCMock */, - 9A5022BD25CC44C900E2099D /* CloverMock */, - 9A5022BC25CC432700E2099D /* UefiMock */, 9A92232F2402FD1000483CBA /* Main */, 9A92232E2402FD1000483CBA /* Products */, 9AFDCEB225CD9BB000EEAF06 /* Frameworks */, @@ -5635,7 +6312,8 @@ 9A92232E2402FD1000483CBA /* Products */ = { isa = PBXGroup; children = ( - 9A92232D2402FD1000483CBA /* CloverX64TestNewParser UTF16 signed char */, + 9A92232D2402FD1000483CBA /* CloverX64TestNewParser_UTF16_signed */, + 9AF4E0EE261F04B700365AD2 /* CloverX64TestNewParser_UTF16_signed_RELEASE */, ); name = Products; sourceTree = ""; @@ -5643,28 +6321,17 @@ 9A92232F2402FD1000483CBA /* Main */ = { isa = PBXGroup; children = ( + 9AF1F03726343F6D00F7C2C0 /* Assign */, + 9AF1EFED26342CE400F7C2C0 /* OldSettings */, + 9AF4DA5526332D8500487D15 /* Compare */, 9A9223302402FD1000483CBA /* main.cpp */, 9A0B085D240300E000E2B470 /* Platform.cpp */, 9AFDD04B25CDB52600EEAF06 /* ConfigSample1.h */, - 9AFDD0D325CEA1C300EEAF06 /* xcode_utf_fixed.cpp */, - 9AFDD0D525CEA1E100EEAF06 /* xcode_utf_fixed.h */, - 9AFDD0D125CE9DD800EEAF06 /* ReadmeJief.txt */, - 9AFDD0D625CEA94A00EEAF06 /* tmp.h */, - 9AFDD0D725CEA94A00EEAF06 /* tmp.c */, ); name = Main; path = src; sourceTree = ""; }; - 9AA3911725CC4D200099DC1F /* rEFIt_UEFI */ = { - isa = PBXGroup; - children = ( - 9A5022BE25CC44C900E2099D /* include */, - 9A5022C025CC44C900E2099D /* Platform */, - ); - path = rEFIt_UEFI; - sourceTree = ""; - }; 9AA3911925CC56E60099DC1F /* include */ = { isa = PBXGroup; children = ( @@ -5688,17 +6355,6 @@ path = include; sourceTree = ""; }; - 9AA3919325CC78440099DC1F /* OCMock */ = { - isa = PBXGroup; - children = ( - 9AA9238E25CD5A9700BD5E8B /* OcAppleBootPolicyLib.h */, - 9AA9238F25CD5A9700BD5E8B /* OcAppleBootPolicyLib.c */, - 9AA925C825CD91BC00BD5E8B /* OpenCore.h */, - 9AA925C925CD91BC00BD5E8B /* OpenCore.c */, - ); - path = OCMock; - sourceTree = ""; - }; 9AA909E825CD451500BD5E8B /* MdePkg */ = { isa = PBXGroup; children = ( @@ -12460,11 +13116,11 @@ 9AA9185625CD465800BD5E8B /* Clover */ = { isa = PBXGroup; children = ( + 9AA9185725CD468F00BD5E8B /* Include */, 9AA91E0B25CD59F100BD5E8B /* Library */, - 9AA918D925CD597E00BD5E8B /* OpenCorePkg */, 9AA910B925CD452900BD5E8B /* MdeModulePkg */, 9AA909E825CD451500BD5E8B /* MdePkg */, - 9AA9185725CD468F00BD5E8B /* Include */, + 9AA918D925CD597E00BD5E8B /* OpenCorePkg */, 9A36E51C24F3B5B4007A1107 /* rEFIt_UEFI */, ); name = Clover; @@ -15584,19 +16240,6 @@ path = menu_items; sourceTree = ""; }; - 9AA925EF25CD994A00BD5E8B /* EdkLibs */ = { - isa = PBXGroup; - children = ( - 9AFDD03525CDA3E000EEAF06 /* Autogen */, - 9AFDD02F25CDA36E00EEAF06 /* CloverEFI */, - 9AFDD01025CDA2D100EEAF06 /* Library */, - 9AFDD00F25CDA2AD00EEAF06 /* MdeModulePkg */, - 9AFDD00925CDA1DD00EEAF06 /* MdePkg */, - 9AFDCF0225CD9DD400EEAF06 /* OC */, - ); - path = EdkLibs; - sourceTree = ""; - }; 9AA9E50525CD306700BD5E8B /* entry_scan */ = { isa = PBXGroup; children = ( @@ -15641,6 +16284,224 @@ path = gui; sourceTree = ""; }; + 9AF1EFED26342CE400F7C2C0 /* OldSettings */ = { + isa = PBXGroup; + children = ( + 9AF1EFEE26342D2300F7C2C0 /* Settings.cpp */, + 9AF1EFEF26342D2400F7C2C0 /* Settings.h */, + ); + path = OldSettings; + sourceTree = ""; + }; + 9AF1F03726343F6D00F7C2C0 /* Assign */ = { + isa = PBXGroup; + children = ( + 9AF1F03826343F6D00F7C2C0 /* AssignSettingsBoot.cpp */, + 9AF1F03926343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.h */, + 9AF1F03A26343F6D00F7C2C0 /* AssignSettingsDevices.cpp */, + 9AF1F03B26343F6D00F7C2C0 /* AssignSettingsCPU.h */, + 9AF1F03C26343F6D00F7C2C0 /* AssignSettingsBootGraphics.h */, + 9AF1F03D26343F6D00F7C2C0 /* AssignSettingsGraphics.cpp */, + 9AF1F03E26343F6D00F7C2C0 /* AssignSettingsCPU.cpp */, + 9AF1F03F26343F6D00F7C2C0 /* AssignSettingsQuirks.h */, + 9AF1F04026343F6D00F7C2C0 /* AssignSettingsBootGraphics.cpp */, + 9AF1F04126343F6D00F7C2C0 /* AssignSettingsGUI.h */, + 9AF1F04226343F6D00F7C2C0 /* AssignSettingsQuirks.cpp */, + 9AF1F04326343F6D00F7C2C0 /* AssignField.h */, + 9AF1F04426343F6D00F7C2C0 /* AssignField.cpp */, + 9AF1F04526343F6D00F7C2C0 /* AssignSettingsRtVariables.cpp */, + 9AF1F04626343F6D00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp */, + 9AF1F04726343F6D00F7C2C0 /* AssignSettingsACPI.h */, + 9AF1F04826343F6D00F7C2C0 /* AssignSettingsBoot.h */, + 9AF1F04926343F6D00F7C2C0 /* AssignSettingsGraphics.h */, + 9AF1F04A26343F6D00F7C2C0 /* AssignSettingsGUI.cpp */, + 9AF1F04B26343F6E00F7C2C0 /* AssignSettingsSmbios.cpp */, + 9AF1F04C26343F6E00F7C2C0 /* AssignSettingsRtVariables.h */, + 9AF1F04D26343F6E00F7C2C0 /* AssignSettingsSystemParameters.h */, + 9AF1F04E26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp */, + 9AF1F04F26343F6E00F7C2C0 /* AssignSettings.h */, + 9AF1F05026343F6E00F7C2C0 /* AssignSettingsSmbios.h */, + 9AF1F05126343F6E00F7C2C0 /* AssignSettingsACPI.cpp */, + 9AF1F05226343F6E00F7C2C0 /* AssignSettings.cpp */, + 9AF1F05326343F6E00F7C2C0 /* AssignSettingsDevices.h */, + ); + path = Assign; + sourceTree = ""; + }; + 9AF4DA5526332D8500487D15 /* Compare */ = { + isa = PBXGroup; + children = ( + 9AF4DA5626332D8500487D15 /* CompareSettingsDevices.cpp */, + 9AF4DA5726332D8500487D15 /* CompareField.h */, + 9AF4DA5826332D8500487D15 /* CompareSettingsSystemParameters.h */, + 9AF4DA5926332D8500487D15 /* CompareSettingsBoot.h */, + 9AF4DA5A26332D8500487D15 /* CompareSettingsACPI.h */, + 9AF4DA5B26332D8500487D15 /* CompareSettingsACPI.cpp */, + 9AF4DA5C26332D8500487D15 /* CompareSettingsSmbios.h */, + 9AF4DA5D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp */, + 9AF4DA5E26332D8500487D15 /* CompareSettings.h */, + 9AF4DA5F26332D8500487D15 /* CompareSettingsSystemParameters.cpp */, + 9AF4DA6026332D8500487D15 /* CompareSettingsBootGraphics.h */, + 9AF4DA6126332D8500487D15 /* CompareField.cpp */, + 9AF4DA6226332D8500487D15 /* CompareSettingsGUI.h */, + 9AF4DA6326332D8500487D15 /* CompareSettingsGraphics.cpp */, + 9AF4DA6426332D8500487D15 /* CompareSettingsBootGraphics.cpp */, + 9AF4DA6526332D8500487D15 /* CompareSettingsCPU.cpp */, + 9AF4DA6626332D8500487D15 /* CompareSettingsCPU.h */, + 9AF4DA6726332D8500487D15 /* CompareSettingsSmbios.cpp */, + 9AF4DA6826332D8500487D15 /* CompareSettingsQuirks.h */, + 9AF4DA6926332D8500487D15 /* CompareSettings.cpp */, + 9AF4DA6A26332D8500487D15 /* CompareSettingsRtVariables.h */, + 9AF4DA6B26332D8500487D15 /* CompareSettingsDevices.h */, + 9AF4DA6C26332D8500487D15 /* CompareSettingsRtVariables.cpp */, + 9AF4DA6D26332D8500487D15 /* CompareSettingsKernelAndKextPatches.h */, + 9AF4DA6E26332D8500487D15 /* CompareSettingsGraphics.h */, + 9AF4DA6F26332D8500487D15 /* CompareSettingsGUI.cpp */, + 9AF4DA7026332D8500487D15 /* CompareSettingsBoot.cpp */, + 9AF4DA7126332D8500487D15 /* CompareSettingsQuirks.cpp */, + ); + path = Compare; + sourceTree = ""; + }; + 9AF4DF91261F045E00365AD2 /* RELEASE_Libs */ = { + isa = PBXGroup; + children = ( + 9AF4DFEA261F045E00365AD2 /* Autogen */, + 9AF4DFE4261F045E00365AD2 /* CloverEFI */, + 9AF4DFC8261F045E00365AD2 /* Library */, + 9AF4DFE6261F045E00365AD2 /* MdeModulePkg */, + 9AF4DFCF261F045E00365AD2 /* MdePkg */, + 9AF4DF92261F045E00365AD2 /* OC */, + ); + path = RELEASE_Libs; + sourceTree = ""; + }; + 9AF4DF92261F045E00365AD2 /* OC */ = { + isa = PBXGroup; + children = ( + 9AF4DFA1261F045E00365AD2 /* ControlMsrE2.lib */, + 9AF4DFBA261F045E00365AD2 /* OcAcpiLib.lib */, + 9AF4DFB3261F045E00365AD2 /* OcAfterBootCompatLib.lib */, + 9AF4DFAF261F045E00365AD2 /* OcApfsLib.lib */, + 9AF4DFC6261F045E00365AD2 /* OcAppleBootPolicyLib.lib */, + 9AF4DF9D261F045E00365AD2 /* OcAppleChunklistLib.lib */, + 9AF4DFBB261F045E00365AD2 /* OcAppleDiskImageLib.lib */, + 9AF4DF99261F045E00365AD2 /* OcAppleEventLib.lib */, + 9AF4DFB5261F045E00365AD2 /* OcAppleImageVerificationLib.lib */, + 9AF4DFB9261F045E00365AD2 /* OcAppleImg4Lib.lib */, + 9AF4DFA9261F045E00365AD2 /* OcAppleKernelLib.lib */, + 9AF4DFA2261F045E00365AD2 /* OcAppleKeyMapLib.lib */, + 9AF4DFAA261F045E00365AD2 /* OcAppleKeysLib.lib */, + 9AF4DFAD261F045E00365AD2 /* OcAppleRamDiskLib.lib */, + 9AF4DFC7261F045E00365AD2 /* OcAppleSecureBootLib.lib */, + 9AF4DFBF261F045E00365AD2 /* OcAppleUserInterfaceThemeLib.lib */, + 9AF4DF9B261F045E00365AD2 /* OcAudioLib.lib */, + 9AF4DFB8261F045E00365AD2 /* OcBootManagementLib.lib */, + 9AF4DFB4261F045E00365AD2 /* OcCompressionLib.lib */, + 9AF4DF95261F045E00365AD2 /* OcConfigurationLib.lib */, + 9AF4DFA3261F045E00365AD2 /* OcConsoleLib.lib */, + 9AF4DFA6261F045E00365AD2 /* OcCpuLib.lib */, + 9AF4DF9A261F045E00365AD2 /* OcCryptoLib.lib */, + 9AF4DF93261F045E00365AD2 /* OcDataHubLib.lib */, + 9AF4DFA5261F045E00365AD2 /* OcDebugLogLib.lib */, + 9AF4DFA8261F045E00365AD2 /* OcDevicePathLib.lib */, + 9AF4DF9C261F045E00365AD2 /* OcDevicePropertyLib.lib */, + 9AF4DFC0261F045E00365AD2 /* OcDeviceTreeLib.lib */, + 9AF4DFC2261F045E00365AD2 /* OcDriverConnectionLib.lib */, + 9AF4DFBE261F045E00365AD2 /* OcFileLib.lib */, + 9AF4DF96261F045E00365AD2 /* OcFirmwareVolumeLib.lib */, + 9AF4DFA7261F045E00365AD2 /* OcGuardLib.lib */, + 9AF4DFC4261F045E00365AD2 /* OcHashServicesLib.lib */, + 9AF4DFAB261F045E00365AD2 /* OcInputLib.lib */, + 9AF4DFBC261F045E00365AD2 /* OcMachoLib.lib */, + 9AF4DFB7261F045E00365AD2 /* OcMacInfoLib.lib */, + 9AF4DFB6261F045E00365AD2 /* OcMemoryLib.lib */, + 9AF4DFC5261F045E00365AD2 /* OcMiscLib.lib */, + 9AF4DFC1261F045E00365AD2 /* OcOSInfoLib.lib */, + 9AF4DFAE261F045E00365AD2 /* OcPeCoffLib.lib */, + 9AF4DFB2261F045E00365AD2 /* OcRngLib.lib */, + 9AF4DFA4261F045E00365AD2 /* OcRtcLib.lib */, + 9AF4DFB1261F045E00365AD2 /* OcSerializeLib.lib */, + 9AF4DFB0261F045E00365AD2 /* OcSmbiosLib.lib */, + 9AF4DFBD261F045E00365AD2 /* OcSmcLib.lib */, + 9AF4DF97261F045E00365AD2 /* OcStorageLib.lib */, + 9AF4DF9E261F045E00365AD2 /* OcStringLib.lib */, + 9AF4DF9F261F045E00365AD2 /* OcTemplateLib.lib */, + 9AF4DFA0261F045E00365AD2 /* OcUnicodeCollationEngGenericLib.lib */, + 9AF4DF98261F045E00365AD2 /* OcVirtualFsLib.lib */, + 9AF4DF94261F045E00365AD2 /* OcXmlLib.lib */, + 9AF4DFC3261F045E00365AD2 /* OpenCore.lib */, + 9AF4DFAC261F045E00365AD2 /* OpenRuntime.lib */, + ); + path = OC; + sourceTree = ""; + }; + 9AF4DFC8261F045E00365AD2 /* Library */ = { + isa = PBXGroup; + children = ( + 9AF4DFC9261F045E00365AD2 /* VideoBiosPatchLib.lib */, + 9AF4DFCA261F045E00365AD2 /* VBoxPeCoffLib.lib */, + 9AF4DFCB261F045E00365AD2 /* DuetTimerLib.lib */, + 9AF4DFCC261F045E00365AD2 /* OpensslLib.lib */, + 9AF4DFCD261F045E00365AD2 /* HdaDevicesLib.lib */, + 9AF4DFCE261F045E00365AD2 /* WaveLib.lib */, + ); + path = Library; + sourceTree = ""; + }; + 9AF4DFCF261F045E00365AD2 /* MdePkg */ = { + isa = PBXGroup; + children = ( + 9AF4E12E261F0A1100365AD2 /* BaseCpuLib.lib */, + 9AF4E132261F0A1200365AD2 /* BaseDebugLibNull.lib */, + 9AF4E123261F0A0F00365AD2 /* BaseDebugPrintErrorLevelLib.lib */, + 9AF4E12B261F0A1100365AD2 /* BaseIoLibIntrinsic.lib */, + 9AF4E122261F0A0F00365AD2 /* BaseLib.lib */, + 9AF4E11E261F0A0E00365AD2 /* BaseMemoryLib.lib */, + 9AF4E125261F0A0F00365AD2 /* BasePciCf8Lib.lib */, + 9AF4E11F261F0A0F00365AD2 /* BasePciLibCf8.lib */, + 9AF4E12A261F0A1000365AD2 /* BasePrintLib.lib */, + 9AF4E12D261F0A1100365AD2 /* BaseSerialPortLibNull.lib */, + 9AF4E126261F0A1000365AD2 /* DxeHobLib.lib */, + 9AF4E124261F0A0F00365AD2 /* DxeServicesLib.lib */, + 9AF4E120261F0A0F00365AD2 /* DxeServicesTableLib.lib */, + 9AF4E127261F0A1000365AD2 /* PeCoffExtraActionLibNull.lib */, + 9AF4E121261F0A0F00365AD2 /* UefiApplicationEntryPoint.lib */, + 9AF4E128261F0A1000365AD2 /* UefiBootServicesTableLib.lib */, + 9AF4E129261F0A1000365AD2 /* UefiDevicePathLib.lib */, + 9AF4E12F261F0A1100365AD2 /* UefiFileHandleLib.lib */, + 9AF4E130261F0A1100365AD2 /* UefiLib.lib */, + 9AF4E12C261F0A1100365AD2 /* UefiMemoryAllocationLib.lib */, + 9AF4E131261F0A1200365AD2 /* UefiRuntimeServicesTableLib.lib */, + ); + path = MdePkg; + sourceTree = ""; + }; + 9AF4DFE4261F045E00365AD2 /* CloverEFI */ = { + isa = PBXGroup; + children = ( + 9AF4DFE5261F045E00365AD2 /* MtrrLib.lib */, + ); + path = CloverEFI; + sourceTree = ""; + }; + 9AF4DFE6261F045E00365AD2 /* MdeModulePkg */ = { + isa = PBXGroup; + children = ( + 9AF4DFE9261F045E00365AD2 /* FrameBufferBltLib.lib */, + ); + path = MdeModulePkg; + sourceTree = ""; + }; + 9AF4DFEA261F045E00365AD2 /* Autogen */ = { + isa = PBXGroup; + children = ( + 9AF4DFEB261F045E00365AD2 /* AutoGen.h */, + 9AF4DFEC261F045E00365AD2 /* AutoGen.c */, + ); + path = Autogen; + sourceTree = ""; + }; 9AFDCEB225CD9BB000EEAF06 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -15648,161 +16509,11 @@ name = Frameworks; sourceTree = ""; }; - 9AFDCF0225CD9DD400EEAF06 /* OC */ = { - isa = PBXGroup; - children = ( - 9AFDD00425CDA0BF00EEAF06 /* OcAcpiLib.lib */, - 9AFDCFFF25CDA0B300EEAF06 /* OcAfterBootCompatLib.lib */, - 9AFDCFFA25CDA0A200EEAF06 /* OcApfsLib.lib */, - 9AFDCFF525CDA09A00EEAF06 /* OcAppleBootPolicyLib.lib */, - 9AFDCFF025CDA09100EEAF06 /* OcAppleChunklistLib.lib */, - 9AFDCFEB25CDA08800EEAF06 /* OcAppleDiskImageLib.lib */, - 9AFDCFE625CDA07F00EEAF06 /* OcAppleEventLib.lib */, - 9AFDCFE125CDA07700EEAF06 /* OcAppleImageVerificationLib.lib */, - 9AFDCFDC25CDA06F00EEAF06 /* OcAppleImg4Lib.lib */, - 9AFDCFD725CDA06600EEAF06 /* OcAppleKernelLib.lib */, - 9AFDCFD225CDA05D00EEAF06 /* OcAppleKeyMapLib.lib */, - 9AFDCFCD25CDA05200EEAF06 /* OcAppleKeysLib.lib */, - 9AFDCFC825CDA04900EEAF06 /* OcAppleRamDiskLib.lib */, - 9AFDCFC325CDA04100EEAF06 /* OcAppleSecureBootLib.lib */, - 9AFDCFBE25CDA03800EEAF06 /* OcAppleUserInterfaceThemeLib.lib */, - 9AFDCFB925CDA02F00EEAF06 /* OcAudioLib.lib */, - 9AFDCFB425CDA02500EEAF06 /* OcBootManagementLib.lib */, - 9AFDCFAF25CDA01D00EEAF06 /* OcCompressionLib.lib */, - 9AFDCFAA25CDA01400EEAF06 /* OcConfigurationLib.lib */, - 9AFDCFA525CDA00C00EEAF06 /* OcConsoleLib.lib */, - 9AFDCFA025CDA00200EEAF06 /* OcCpuLib.lib */, - 9AFDCF9B25CD9FFA00EEAF06 /* OcCryptoLib.lib */, - 9AFDCF9625CD9FF100EEAF06 /* OcDataHubLib.lib */, - 9AFDCF9125CD9FE800EEAF06 /* OcDebugLogLib.lib */, - 9AFDCEA225CD9A3200EEAF06 /* OcDevicePathLib.lib */, - 9AFDCF7B25CD9F9A00EEAF06 /* OcDevicePropertyLib.lib */, - 9AFDCF7625CD9F9200EEAF06 /* OcDeviceTreeLib.lib */, - 9AFDCF7125CD9F8800EEAF06 /* OcDriverConnectionLib.lib */, - 9AFDCF6C25CD9F7F00EEAF06 /* OcFileLib.lib */, - 9AFDCF6725CD9F7500EEAF06 /* OcFirmwareVolumeLib.lib */, - 9AFDCF6225CD9F6A00EEAF06 /* OcGuardLib.lib */, - 9AFDCF5D25CD9F6000EEAF06 /* OcHashServicesLib.lib */, - 9AFDCF5825CD9F5400EEAF06 /* OcInputLib.lib */, - 9AFDCF5325CD9F4900EEAF06 /* OcMacInfoLib.lib */, - 9AFDCF4E25CD9F3E00EEAF06 /* OcMachoLib.lib */, - 9AFDCF4925CD9F3500EEAF06 /* OcMemoryLib.lib */, - 9AFDCF4425CD9F2B00EEAF06 /* OcMiscLib.lib */, - 9AFDCF3F25CD9F1D00EEAF06 /* OcOSInfoLib.lib */, - 9AFDCF3A25CD9F1200EEAF06 /* OcPeCoffLib.lib */, - 9AFDCF3525CD9F0700EEAF06 /* OcRngLib.lib */, - 9AFDCF3025CD9EF800EEAF06 /* OcRtcLib.lib */, - 9AFDCF2B25CD9ED100EEAF06 /* OcSerializeLib.lib */, - 9AFDCF2625CD9EC400EEAF06 /* OcSmbiosLib.lib */, - 9AFDCF2125CD9EBA00EEAF06 /* OcSmcLib.lib */, - 9AFDCF1C25CD9EAD00EEAF06 /* OcStorageLib.lib */, - 9AFDCF1725CD9E6A00EEAF06 /* OcStringLib.lib */, - 9AFDCF1225CD9E6000EEAF06 /* OcTemplateLib.lib */, - 9AFDCF0D25CD9E2100EEAF06 /* OcUnicodeCollationEngGenericLib.lib */, - 9AFDCF0825CD9E0800EEAF06 /* OcVirtualFsLib.lib */, - 9AFDCF0325CD9DFA00EEAF06 /* OcXmlLib.lib */, - 9AFDCEFD25CD9DC100EEAF06 /* OpenCore.lib */, - ); - path = OC; - sourceTree = ""; - }; - 9AFDD00925CDA1DD00EEAF06 /* MdePkg */ = { - isa = PBXGroup; - children = ( - 9AFDCEA425CD9B1C00EEAF06 /* BaseCpuLib.lib */, - 9AFDCEAA25CD9B4500EEAF06 /* BaseDebugLibSerialPort.lib */, - 9AFDCEAC25CD9B5700EEAF06 /* BaseDebugPrintErrorLevelLib.lib */, - 9AFDCEAE25CD9B6500EEAF06 /* BaseIoLibIntrinsic.lib */, - 9AFDCEB025CD9B7400EEAF06 /* BaseLib.lib */, - 9AFDCEB325CD9BB000EEAF06 /* BaseMemoryLib.lib */, - 9AA925F025CD99E300BD5E8B /* BasePcdLibNull.lib */, - 9AFDCEB525CD9BC400EEAF06 /* BasePciCf8Lib.lib */, - 9AFDCEC125CD9D0700EEAF06 /* BasePciLibCf8.lib */, - 9AFDCEC625CD9D1500EEAF06 /* PeCoffExtraActionLibNull.lib */, - 9AFDCEB925CD9CA300EEAF06 /* BasePrintLib.lib */, - 9AFDCECB25CD9D2600EEAF06 /* DxeHobLib.lib */, - 9AFDCED025CD9D3000EEAF06 /* DxeServicesLib.lib */, - 9AFDCED525CD9D3D00EEAF06 /* DxeServicesTableLib.lib */, - 9AFDCEDA25CD9D4800EEAF06 /* UefiApplicationEntryPoint.lib */, - 9AFDCEDF25CD9D5300EEAF06 /* UefiBootServicesTableLib.lib */, - 9AFDCEE425CD9D6000EEAF06 /* UefiDevicePathLib.lib */, - 9AFDCEE925CD9D6B00EEAF06 /* UefiFileHandleLib.lib */, - 9AFDCEEE25CD9D7700EEAF06 /* UefiLib.lib */, - 9AFDCEF325CD9D8A00EEAF06 /* UefiMemoryAllocationLib.lib */, - 9AFDCEF825CD9D9500EEAF06 /* UefiRuntimeServicesTableLib.lib */, - ); - path = MdePkg; - sourceTree = ""; - }; - 9AFDD00F25CDA2AD00EEAF06 /* MdeModulePkg */ = { - isa = PBXGroup; - children = ( - 9AFDD00A25CDA2AA00EEAF06 /* BasePlatformHookLibNull.lib */, - 9AFDCEA625CD9B2B00EEAF06 /* BaseSerialPortLib16550.lib */, - 9AFDCEA825CD9B3700EEAF06 /* FrameBufferBltLib.lib */, - ); - path = MdeModulePkg; - sourceTree = ""; - }; - 9AFDD01025CDA2D100EEAF06 /* Library */ = { - isa = PBXGroup; - children = ( - 9AFDD02A25CDA34800EEAF06 /* HdaDevicesLib.lib */, - 9AFDCEB725CD9C5300EEAF06 /* MemLogLibDefault.lib */, - 9AFDD02525CDA33800EEAF06 /* OpensslLib.lib */, - 9AFDD02025CDA32E00EEAF06 /* VBoxPeCoffLib.lib */, - 9AFDD01B25CDA32400EEAF06 /* VideoBiosPatchLib.lib */, - 9AFDD01625CDA31B00EEAF06 /* WaveLib.lib */, - 9AFDD01125CDA2E100EEAF06 /* DuetTimerLib.lib */, - ); - path = Library; - sourceTree = ""; - }; - 9AFDD02F25CDA36E00EEAF06 /* CloverEFI */ = { - isa = PBXGroup; - children = ( - 9AFDD03025CDA37900EEAF06 /* MtrrLib.lib */, - ); - path = CloverEFI; - sourceTree = ""; - }; - 9AFDD03525CDA3E000EEAF06 /* Autogen */ = { - isa = PBXGroup; - children = ( - 9AFDD03625CDA3F900EEAF06 /* AutoGen.obj */, - 9AFDD03C25CDA4F900EEAF06 /* AutoGen.c */, - 9AFDD03B25CDA4F800EEAF06 /* AutoGen.h */, - ); - path = Autogen; - sourceTree = ""; - }; - 9AFDD04625CDA9C600EEAF06 /* Include */ = { - isa = PBXGroup; - children = ( - 9AFDD04525CDA9C000EEAF06 /* printf_lite-conf.h */, - ); - path = Include; - sourceTree = ""; - }; - 9AFDD04C25CDBA7000EEAF06 /* Library */ = { - isa = PBXGroup; - children = ( - 9AFDD04D25CDBA7500EEAF06 /* MemLogLibDefault */, - ); - path = Library; - sourceTree = ""; - }; - 9AFDD04D25CDBA7500EEAF06 /* MemLogLibDefault */ = { - isa = PBXGroup; - children = ( - 9AFDD04F25CDBAA700EEAF06 /* MemLogLib.c */, - ); - path = MemLogLibDefault; - sourceTree = ""; - }; 9AFDD05825CE730F00EEAF06 /* cpp_unit_test */ = { isa = PBXGroup; children = ( + 9AB67BE2261834F300CC853A /* xml_lite-reapeatingdict-test.cpp */, + 9AB67BE3261834F300CC853A /* xml_lite-reapeatingdict-test.h */, 9AFDD07125CE730F00EEAF06 /* all_tests.cpp */, 9AFDD07A25CE730F00EEAF06 /* all_tests.h */, 9A9037E425CFE7D000F14179 /* config-test.cpp */, @@ -15852,9 +16563,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - 9A92232C2402FD1000483CBA /* CloverX64TestNewParser UTF16 signed char */ = { + 9A92232C2402FD1000483CBA /* CloverX64TestNewParser_UTF16_signed */ = { isa = PBXNativeTarget; - buildConfigurationList = 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser UTF16 signed char" */; + buildConfigurationList = 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser_UTF16_signed" */; buildPhases = ( 9A9223292402FD1000483CBA /* Sources */, 9A92232A2402FD1000483CBA /* Frameworks */, @@ -15864,9 +16575,26 @@ ); dependencies = ( ); - name = "CloverX64TestNewParser UTF16 signed char"; + name = CloverX64TestNewParser_UTF16_signed; productName = cpp_tests; - productReference = 9A92232D2402FD1000483CBA /* CloverX64TestNewParser UTF16 signed char */; + productReference = 9A92232D2402FD1000483CBA /* CloverX64TestNewParser_UTF16_signed */; + productType = "com.apple.product-type.tool"; + }; + 9AF4DFED261F04B700365AD2 /* CloverX64TestNewParser_UTF16_signed_RELEASE */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9AF4E0EB261F04B700365AD2 /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser_UTF16_signed_RELEASE" */; + buildPhases = ( + 9AF4DFEE261F04B700365AD2 /* Sources */, + 9AF4E096261F04B700365AD2 /* Frameworks */, + 9AF4E0EA261F04B700365AD2 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CloverX64TestNewParser_UTF16_signed_RELEASE; + productName = cpp_tests; + productReference = 9AF4E0EE261F04B700365AD2 /* CloverX64TestNewParser_UTF16_signed_RELEASE */; productType = "com.apple.product-type.tool"; }; /* End PBXNativeTarget section */ @@ -15876,7 +16604,7 @@ isa = PBXProject; attributes = { LastUpgradeCheck = 1120; - ORGANIZATIONNAME = "JF Knudsen"; + ORGANIZATIONNAME = Jief_Machak; TargetAttributes = { 9A92232C2402FD1000483CBA = { CreatedOnToolsVersion = 10.1; @@ -15896,7 +16624,8 @@ projectDirPath = ""; projectRoot = ""; targets = ( - 9A92232C2402FD1000483CBA /* CloverX64TestNewParser UTF16 signed char */, + 9A92232C2402FD1000483CBA /* CloverX64TestNewParser_UTF16_signed */, + 9AF4DFED261F04B700365AD2 /* CloverX64TestNewParser_UTF16_signed_RELEASE */, ); }; /* End PBXProject section */ @@ -15907,38 +16636,42 @@ buildActionMask = 2147483647; files = ( 9AA9245F25CD5B2E00BD5E8B /* usbfix.cpp in Sources */, - 9AFDD0D425CEA1C300EEAF06 /* xcode_utf_fixed.cpp in Sources */, 9AA9E4D625CD1C9400BD5E8B /* card_vlist.cpp in Sources */, + 9AF1F05826343F6E00F7C2C0 /* AssignSettingsGraphics.cpp in Sources */, 9A36E50424F3B537007A1107 /* TagInt64.cpp in Sources */, + 9AF4DA8626332D8500487D15 /* CompareSettingsRtVariables.cpp in Sources */, 9A36E50024F3B537007A1107 /* TagDict.cpp in Sources */, 9A4C576B255AAD07004F0B21 /* MacOsVersion.cpp in Sources */, 9A36E50C24F3B537007A1107 /* TagData.cpp in Sources */, - 9AA316DC260F267A0033D29F /* CompareSettingsSystemParameters.cpp in Sources */, - 9AD0358C25C57A4500E58351 /* MemoryAllocationLib.c in Sources */, + 9A8792CD261882DA000B9362 /* Globals.cpp in Sources */, 9AA9253025CD74CC00BD5E8B /* secureboot.cpp in Sources */, 9AA924FB25CD5B2E00BD5E8B /* AcpiPatcher.cpp in Sources */, 9A7D518424FC32F700FA1CC3 /* XBuffer.cpp in Sources */, 9AA924E325CD5B2E00BD5E8B /* ati.cpp in Sources */, - 9A28CD1F241BB61B00F3D247 /* abort.cpp in Sources */, 9AA924DF25CD5B2E00BD5E8B /* Console.cpp in Sources */, 9AA9246F25CD5B2E00BD5E8B /* KextList.cpp in Sources */, - 9A13D98E2610569300863C91 /* CompareSettingsDevices.cpp in Sources */, 9A36E53C24F3EDED007A1107 /* base64.cpp in Sources */, 9AFDD0BD25CE731000EEAF06 /* strlen_test.cpp in Sources */, 9A358B3D25CF117A00A3850D /* XmlLiteCompositeTypes.cpp in Sources */, 9AA9250325CD5B2E00BD5E8B /* StateGenerator.cpp in Sources */, - 9AA316D9260F259F0033D29F /* CompareSettingsCPU.cpp in Sources */, + 9A8792C8261882DA000B9362 /* xcode_utf_fixed.cpp in Sources */, 9AA9253125CD74CC00BD5E8B /* securemenu.cpp in Sources */, 9AD0EB24260A497600093F23 /* XmlLiteSimpleTypes.cpp in Sources */, 9AFDD0A525CE731000EEAF06 /* all_tests.cpp in Sources */, 9AFDD0AD25CE731000EEAF06 /* XArray_tests.cpp in Sources */, 9A4FFA7E2451C8330050B38B /* XString.cpp in Sources */, 9AA925A525CD770F00BD5E8B /* egemb_icons.cpp in Sources */, + 9AF1F06826343F6E00F7C2C0 /* AssignSettingsSmbios.cpp in Sources */, 9AA9E4F225CD283400BD5E8B /* XTheme.cpp in Sources */, - 9A28CD22241BB61B00F3D247 /* strlen.cpp in Sources */, + 9AF4DA8C26332D8500487D15 /* CompareSettingsQuirks.cpp in Sources */, + 9AF1F05C26343F6E00F7C2C0 /* AssignSettingsBootGraphics.cpp in Sources */, 9AA9248325CD5B2E00BD5E8B /* Volumes.cpp in Sources */, + 9AF1F06C26343F6E00F7C2C0 /* AssignSettingsACPI.cpp in Sources */, + 9A8792CB261882DA000B9362 /* PrintLib.c in Sources */, + 9AF1F06026343F6E00F7C2C0 /* AssignField.cpp in Sources */, 9AA9241F25CD5B2E00BD5E8B /* LegacyBiosThunk.cpp in Sources */, 9AA9246325CD5B2E00BD5E8B /* HdaCodecDump.cpp in Sources */, + 9AF1F05A26343F6E00F7C2C0 /* AssignSettingsCPU.cpp in Sources */, 9AA9259125CD770F00BD5E8B /* scroll_images.cpp in Sources */, 9AFDD05425CDBC1800EEAF06 /* printf_lite.c in Sources */, 9AFDD0C125CE731000EEAF06 /* find_replace_mask_OC_tests.cpp in Sources */, @@ -15952,127 +16685,340 @@ 9AA9252B25CD74CC00BD5E8B /* tool.cpp in Sources */, 9AA9241325CD5B2E00BD5E8B /* SelfOem.cpp in Sources */, 9AA9252C25CD74CC00BD5E8B /* lockedgraphics.cpp in Sources */, + 9AF1F06E26343F6E00F7C2C0 /* AssignSettings.cpp in Sources */, 9A358B2E25CF115200A3850D /* Config_ACPI.cpp in Sources */, + 9A8792C9261882DA000B9362 /* BaseMemoryLib.c in Sources */, + 9AF4DA7826332D8500487D15 /* CompareSettingsSystemParameters.cpp in Sources */, 9AA9E4EE25CD283400BD5E8B /* XIcon.cpp in Sources */, 9AA9242725CD5B2E00BD5E8B /* smbios.cpp in Sources */, + 9AF1F05426343F6E00F7C2C0 /* AssignSettingsBoot.cpp in Sources */, 9AFDD08525CE731000EEAF06 /* LoadOptions_test.cpp in Sources */, 9AA9247B25CD5B2E00BD5E8B /* platformdata.cpp in Sources */, 9AA9E4EA25CD283400BD5E8B /* XImage.cpp in Sources */, 9AA9241B25CD5B2E00BD5E8B /* Edid.cpp in Sources */, + 9AF4DA8226332D8500487D15 /* CompareSettingsSmbios.cpp in Sources */, + 9A071C48261A44080007CC44 /* XmlLiteUnionTypes.cpp in Sources */, 9AA9252D25CD74CC00BD5E8B /* securehash.cpp in Sources */, - 9AA316E2260F2BE60033D29F /* CompareSettingsGraphics.cpp in Sources */, + 9A8792F6261886F6000B9362 /* posix_additions.cpp in Sources */, 9AA9252E25CD74CC00BD5E8B /* legacy.cpp in Sources */, 9AA924A725CD5B2E00BD5E8B /* Self.cpp in Sources */, 9AA925A125CD770F00BD5E8B /* VectorGraphics.cpp in Sources */, + 9AF1F06A26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp in Sources */, 9AFB5F7A2610EDD50078E53D /* Config_Quirks.cpp in Sources */, 9A9223312402FD1000483CBA /* main.cpp in Sources */, - 9AA316D3260EFC410033D29F /* CompareSettingsACPI.cpp in Sources */, 9AA924D725CD5B2E00BD5E8B /* cpu.cpp in Sources */, + 9AF1EFFA2634354A00F7C2C0 /* ConfigManager.cpp in Sources */, 9AA9242B25CD5B2E00BD5E8B /* spd.cpp in Sources */, 9AA925DE25CD967800BD5E8B /* SafeString.c in Sources */, + 9A77BAA626336335000FFF8A /* SMBIOSPlist.cpp in Sources */, 9AA9258525CD770F00BD5E8B /* nanosvg.cpp in Sources */, 9AFDD0A925CE731000EEAF06 /* XObjArray_tests.cpp in Sources */, + 9AF4DA7A26332D8500487D15 /* CompareField.cpp in Sources */, 9AA924CF25CD5B2E00BD5E8B /* hda.cpp in Sources */, 9AA9249725CD5B2E00BD5E8B /* Hibernate.cpp in Sources */, - 9AFB5F78261060CB0078E53D /* CompareSettingsRtVariables.cpp in Sources */, + 9AF4E1C0261F0D9500365AD2 /* main.cpp in Sources */, 9AFDD0B925CE731000EEAF06 /* XToolsCommon_test.cpp in Sources */, - 9AA316D6260F0CBE0033D29F /* CompareSettingsGUI.cpp in Sources */, 9AA9E4F625CD283400BD5E8B /* XCinema.cpp in Sources */, + 9AF1EFF026342D2400F7C2C0 /* Settings.cpp in Sources */, 9AA924F325CD5B2E00BD5E8B /* device_inject.cpp in Sources */, 9AA9247F25CD5B2E00BD5E8B /* sound.cpp in Sources */, + 9AF4DA8426332D8500487D15 /* CompareSettings.cpp in Sources */, 9AFDD0A125CE731000EEAF06 /* find_replace_mask_Clover_tests.cpp in Sources */, + 9A071C47261A44080007CC44 /* XmlLiteArrayTypes.cpp in Sources */, 9AA9249F25CD5B2E00BD5E8B /* nvidia.cpp in Sources */, 9AA9249B25CD5B2E00BD5E8B /* APFS.cpp in Sources */, 9AA9257925CD770F00BD5E8B /* text.cpp in Sources */, + 9AF1F05626343F6E00F7C2C0 /* AssignSettingsDevices.cpp in Sources */, + 9AF4DA8026332D8500487D15 /* CompareSettingsCPU.cpp in Sources */, 9A9037E725CFE7D100F14179 /* config-test.cpp in Sources */, + 9AF1F05E26343F6E00F7C2C0 /* AssignSettingsQuirks.cpp in Sources */, + 9AF1EFF82634354A00F7C2C0 /* SettingsUtils.cpp in Sources */, 9AA9E4DC25CD279200BD5E8B /* VersionString.cpp in Sources */, 9AA9252F25CD74CC00BD5E8B /* bootscreen.cpp in Sources */, - 9A358B2F25CF115200A3850D /* Config_Devices_Properties.cpp in Sources */, + 9AF4DA7626332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp in Sources */, 9AA9241725CD5B2E00BD5E8B /* BdsConnect.cpp in Sources */, 9AFDD0B525CE731000EEAF06 /* XString_test.cpp in Sources */, - 9AA316D0260EF7760033D29F /* CompareField.cpp in Sources */, - 9AA925C425CD900800BD5E8B /* posix_additions.cpp in Sources */, 9A36E4FC24F3B537007A1107 /* TagBool.cpp in Sources */, 9AA9248B25CD5B2E00BD5E8B /* Nvram.cpp in Sources */, 9AA9253F25CD765000BD5E8B /* shared_with_menu.cpp in Sources */, - 9AFDD0D825CEA94A00EEAF06 /* tmp.c in Sources */, 9A358B3325CF115200A3850D /* Config_ACPI_DSDT.cpp in Sources */, + 9AF4DA7426332D8500487D15 /* CompareSettingsACPI.cpp in Sources */, + 9A071C49261A44080007CC44 /* XmlLiteDictTypes.cpp in Sources */, 9AA924DB25CD5B2E00BD5E8B /* StartupSound.cpp in Sources */, + 9AF4DA7C26332D8500487D15 /* CompareSettingsGraphics.cpp in Sources */, 9AA9253B25CD764900BD5E8B /* REFIT_MENU_SCREEN.cpp in Sources */, 9AA9259D25CD770F00BD5E8B /* lodepng.cpp in Sources */, 9AA925B325CD79AB00BD5E8B /* icns.cpp in Sources */, 9A36E4F424F3B537007A1107 /* plist.cpp in Sources */, + 9AF4DA7E26332D8500487D15 /* CompareSettingsBootGraphics.cpp in Sources */, + 9A8792F7261886F6000B9362 /* abort.cpp in Sources */, + 9A8792F8261886F6000B9362 /* BootLog.cpp in Sources */, 9AA924D325CD5B2E00BD5E8B /* Events.cpp in Sources */, 9AA924EF25CD5B2E00BD5E8B /* FixBiosDsdt.cpp in Sources */, 9AA9248725CD5B2E00BD5E8B /* BootOptions.cpp in Sources */, + 9A77BAA826336335000FFF8A /* ConfigPlistAbstract.cpp in Sources */, 9AA924A325CD5B2E00BD5E8B /* kext_inject.cpp in Sources */, 9AA924CB25CD5B2E00BD5E8B /* AmlGenerator.cpp in Sources */, 9A36E4F824F3B537007A1107 /* xml.cpp in Sources */, 9A9AEB8D243F73CE00FBD7D8 /* unicode_conversions.cpp in Sources */, + 9A879273261882D9000B9362 /* MemLogLib.c in Sources */, + 9A8792C7261882DA000B9362 /* AutoGen.c in Sources */, + 9AF4DA8A26332D8500487D15 /* CompareSettingsBoot.cpp in Sources */, 9AA9258125CD770F00BD5E8B /* nanosvgrast.cpp in Sources */, - 9A358B3225CF115200A3850D /* CompareSettings.cpp in Sources */, 9AA925B725CD79AB00BD5E8B /* menu.cpp in Sources */, + 9A8792CC261882DA000B9362 /* DebugLib.c in Sources */, 9AA9247725CD5B2E00BD5E8B /* kext_patcher.cpp in Sources */, - 9AA925CA25CD91BC00BD5E8B /* OpenCore.c in Sources */, 9AA9253A25CD764900BD5E8B /* menu_items.cpp in Sources */, 9AA9257D25CD770F00BD5E8B /* libscreen.cpp in Sources */, 9AA925BB25CD79AB00BD5E8B /* screen.cpp in Sources */, 9A358B2025CF115200A3850D /* Config_GUI.cpp in Sources */, 9A9037E625CFE7D100F14179 /* xml_lite-test.cpp in Sources */, 9A358B3E25CF117A00A3850D /* XmlLiteParser.cpp in Sources */, - 9AA316DF260F277A0033D29F /* CompareSettingsKernelAndKextPatches.cpp in Sources */, 9AA924AB25CD5B2E00BD5E8B /* Net.cpp in Sources */, 9AA9248F25CD5B2E00BD5E8B /* LegacyBoot.cpp in Sources */, + 9AF4DA8826332D8500487D15 /* CompareSettingsGUI.cpp in Sources */, 9AA924FF25CD5B2E00BD5E8B /* KERNEL_AND_KEXT_PATCHES.cpp in Sources */, 9AA9253225CD74CC00BD5E8B /* securevars.cpp in Sources */, - 9AFDD05025CDBAA700EEAF06 /* MemLogLib.c in Sources */, 9AA9242325CD5B2E00BD5E8B /* PlatformDriverOverride.cpp in Sources */, + 9AF1EFF92634354A00F7C2C0 /* Volume.cpp in Sources */, 9AA918C725CD4CD300BD5E8B /* BmLib.cpp in Sources */, 9AA924E725CD5B2E00BD5E8B /* gma.cpp in Sources */, 9A7D518524FC32F700FA1CC3 /* XRBuffer.cpp in Sources */, + 9AF1F06226343F6E00F7C2C0 /* AssignSettingsRtVariables.cpp in Sources */, 9AA9257525CD770F00BD5E8B /* egemb_icons_dark.cpp in Sources */, 9A4185C02439F73A00BEAFB8 /* XStringArray.cpp in Sources */, + 9AB67BE4261834F300CC853A /* xml_lite-reapeatingdict-test.cpp in Sources */, 9AA924EB25CD5B2E00BD5E8B /* kernel_patcher.cpp in Sources */, 9AA9253325CD74CC00BD5E8B /* common.cpp in Sources */, 9AFDD09925CE731000EEAF06 /* printlib-test.cpp in Sources */, 9A358B2B25CF115200A3850D /* ConfigPlistClass.cpp in Sources */, 9AA9E50225CD2FF400BD5E8B /* Utils.cpp in Sources */, 9AFDD0B125CE731000EEAF06 /* strncmp_test.cpp in Sources */, - 9AA316CD260EF75A0033D29F /* CompareSettingsBoot.cpp in Sources */, - 9AA925CE25CD94C600BD5E8B /* BootLog.cpp in Sources */, + 9A8792CA261882DA000B9362 /* MemoryAllocationLib.c in Sources */, 9A36E51024F3B537007A1107 /* TagArray.cpp in Sources */, 9A272A7F25D5062E00F03E19 /* DataHub.cpp in Sources */, 9A0D113825FF58420040555F /* strcasecmp_test.cpp in Sources */, 9AA918C125CD4B7900BD5E8B /* lib.cpp in Sources */, 9A36E4F024F3B537007A1107 /* TagString8.cpp in Sources */, + 9AF4DA7226332D8500487D15 /* CompareSettingsDevices.cpp in Sources */, 9AFDD08D25CE731000EEAF06 /* plist_tests.cpp in Sources */, 9AA9E53D25CD306700BD5E8B /* loader.cpp in Sources */, 9AA924C725CD5B2E00BD5E8B /* Injectors.cpp in Sources */, 9AA9258925CD770F00BD5E8B /* load_icns.cpp in Sources */, 9AFDD07D25CE731000EEAF06 /* global_test.cpp in Sources */, 9AA9246B25CD5B2E00BD5E8B /* guid.cpp in Sources */, - 9AFDD04125CDA73500EEAF06 /* main.cpp in Sources */, 9A36E50824F3B537007A1107 /* TagDate.cpp in Sources */, 9AFDD08925CE731000EEAF06 /* printf_lite-test.cpp in Sources */, - 9AD0359425C57C8A00E58351 /* PrintLib.c in Sources */, - 9A13D99126105B2200863C91 /* CompareSettingsQuirks.cpp in Sources */, 9AFDD09D25CE731000EEAF06 /* XStringArray_test.cpp in Sources */, 9AA3918F25CC75420099DC1F /* Settings.cpp in Sources */, 9A36E51F24F3B82A007A1107 /* b64cdecode.cpp in Sources */, - 9A838CC3253485DC008303F5 /* DebugLib.c in Sources */, 9AFDD08125CE731000EEAF06 /* XBuffer_tests.cpp in Sources */, - 9AA925C025CD87B600BD5E8B /* BasicIO.cpp in Sources */, - 9A838CBA25348237008303F5 /* BaseMemoryLib.c in Sources */, 9AA9259925CD770F00BD5E8B /* egemb_font.cpp in Sources */, 9A36E51424F3B537007A1107 /* TagFloat.cpp in Sources */, 9AA9259525CD770F00BD5E8B /* image.cpp in Sources */, + 9A8792F9261886F6000B9362 /* BasicIO.cpp in Sources */, + 9AF1F06626343F6E00F7C2C0 /* AssignSettingsGUI.cpp in Sources */, 9AD7B15026079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp in Sources */, 9A0B085E240300E000E2B470 /* Platform.cpp in Sources */, - 9AFDD04725CDB0F900EEAF06 /* Globals.cpp in Sources */, + 9AF1F06426343F6E00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp in Sources */, 9AA9E4FA25CD283400BD5E8B /* XPointer.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; + 9AF4DFEE261F04B700365AD2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9AF4DFEF261F04B700365AD2 /* usbfix.cpp in Sources */, + 9AF4DFF0261F04B700365AD2 /* card_vlist.cpp in Sources */, + 9AF1F05926343F6E00F7C2C0 /* AssignSettingsGraphics.cpp in Sources */, + 9AF4DFF1261F04B700365AD2 /* TagInt64.cpp in Sources */, + 9AF4DA8726332D8500487D15 /* CompareSettingsRtVariables.cpp in Sources */, + 9AF4DFF2261F04B700365AD2 /* TagDict.cpp in Sources */, + 9AF4DFF3261F04B700365AD2 /* MacOsVersion.cpp in Sources */, + 9AF4DFF4261F04B700365AD2 /* TagData.cpp in Sources */, + 9AF4DFF5261F04B700365AD2 /* Globals.cpp in Sources */, + 9AF4DFF7261F04B700365AD2 /* secureboot.cpp in Sources */, + 9AF4DFF8261F04B700365AD2 /* AcpiPatcher.cpp in Sources */, + 9AF4DFF9261F04B700365AD2 /* XBuffer.cpp in Sources */, + 9AF4DFFA261F04B700365AD2 /* ati.cpp in Sources */, + 9AF4DFFB261F04B700365AD2 /* Console.cpp in Sources */, + 9AF4DFFC261F04B700365AD2 /* KextList.cpp in Sources */, + 9AF4DFFE261F04B700365AD2 /* base64.cpp in Sources */, + 9AF4DFFF261F04B700365AD2 /* strlen_test.cpp in Sources */, + 9AF4E000261F04B700365AD2 /* XmlLiteCompositeTypes.cpp in Sources */, + 9AF4E001261F04B700365AD2 /* StateGenerator.cpp in Sources */, + 9AF4E002261F04B700365AD2 /* xcode_utf_fixed.cpp in Sources */, + 9AF4E004261F04B700365AD2 /* securemenu.cpp in Sources */, + 9AF4E005261F04B700365AD2 /* XmlLiteSimpleTypes.cpp in Sources */, + 9AF4E006261F04B700365AD2 /* all_tests.cpp in Sources */, + 9AF4E007261F04B700365AD2 /* XArray_tests.cpp in Sources */, + 9AF4E008261F04B700365AD2 /* XString.cpp in Sources */, + 9AF4E00A261F04B700365AD2 /* egemb_icons.cpp in Sources */, + 9AF1F06926343F6E00F7C2C0 /* AssignSettingsSmbios.cpp in Sources */, + 9AF4E00B261F04B700365AD2 /* XTheme.cpp in Sources */, + 9AF4DA8D26332D8500487D15 /* CompareSettingsQuirks.cpp in Sources */, + 9AF1F05D26343F6E00F7C2C0 /* AssignSettingsBootGraphics.cpp in Sources */, + 9AF4E00C261F04B700365AD2 /* Volumes.cpp in Sources */, + 9AF1F06D26343F6E00F7C2C0 /* AssignSettingsACPI.cpp in Sources */, + 9AF4E148261F0A9900365AD2 /* AutoGen.c in Sources */, + 9AF1F06126343F6E00F7C2C0 /* AssignField.cpp in Sources */, + 9AF4E00D261F04B700365AD2 /* PrintLib.c in Sources */, + 9AF4E00E261F04B700365AD2 /* LegacyBiosThunk.cpp in Sources */, + 9AF1F05B26343F6E00F7C2C0 /* AssignSettingsCPU.cpp in Sources */, + 9AF4E00F261F04B700365AD2 /* HdaCodecDump.cpp in Sources */, + 9AF4E010261F04B700365AD2 /* scroll_images.cpp in Sources */, + 9AF4E011261F04B700365AD2 /* printf_lite.c in Sources */, + 9AF4E012261F04B700365AD2 /* find_replace_mask_OC_tests.cpp in Sources */, + 9AF4E013261F04B700365AD2 /* DataHubCpu.cpp in Sources */, + 9AF4E014261F04B700365AD2 /* TagKey.cpp in Sources */, + 9AF4E015261F04B700365AD2 /* strcmp_test.cpp in Sources */, + 9AF4E016261F04B700365AD2 /* FloatLib.cpp in Sources */, + 9AF4E017261F04B700365AD2 /* MacOsVersion_test.cpp in Sources */, + 9AF4E018261F04B700365AD2 /* DevicePath.cpp in Sources */, + 9AF4E019261F04B700365AD2 /* MemoryOperation.c in Sources */, + 9AF4E01A261F04B700365AD2 /* tool.cpp in Sources */, + 9AF4E01B261F04B700365AD2 /* SelfOem.cpp in Sources */, + 9AF1F06F26343F6E00F7C2C0 /* AssignSettings.cpp in Sources */, + 9AF4E01C261F04B700365AD2 /* lockedgraphics.cpp in Sources */, + 9AF4E01D261F04B700365AD2 /* Config_ACPI.cpp in Sources */, + 9AF4DA7926332D8500487D15 /* CompareSettingsSystemParameters.cpp in Sources */, + 9AF4E01E261F04B700365AD2 /* BaseMemoryLib.c in Sources */, + 9AF4E01F261F04B700365AD2 /* XIcon.cpp in Sources */, + 9AF1F05526343F6E00F7C2C0 /* AssignSettingsBoot.cpp in Sources */, + 9AF4E020261F04B700365AD2 /* smbios.cpp in Sources */, + 9AF4E021261F04B700365AD2 /* LoadOptions_test.cpp in Sources */, + 9AF4E022261F04B700365AD2 /* platformdata.cpp in Sources */, + 9AF4E023261F04B700365AD2 /* XImage.cpp in Sources */, + 9AF4DA8326332D8500487D15 /* CompareSettingsSmbios.cpp in Sources */, + 9AF4E024261F04B700365AD2 /* Edid.cpp in Sources */, + 9AF4E025261F04B700365AD2 /* XmlLiteUnionTypes.cpp in Sources */, + 9AF4E026261F04B700365AD2 /* securehash.cpp in Sources */, + 9AF4E028261F04B700365AD2 /* posix_additions.cpp in Sources */, + 9AF4E029261F04B700365AD2 /* legacy.cpp in Sources */, + 9AF4E02A261F04B700365AD2 /* Self.cpp in Sources */, + 9AF1F06B26343F6E00F7C2C0 /* AssignSettingsSystemParameters.cpp in Sources */, + 9AF4E02B261F04B700365AD2 /* VectorGraphics.cpp in Sources */, + 9AF4E02C261F04B700365AD2 /* Config_Quirks.cpp in Sources */, + 9AF4E02D261F04B700365AD2 /* main.cpp in Sources */, + 9AF1EFFD263435A400F7C2C0 /* ConfigManager.cpp in Sources */, + 9AF4E02F261F04B700365AD2 /* cpu.cpp in Sources */, + 9AF4E030261F04B700365AD2 /* spd.cpp in Sources */, + 9A77BAA726336335000FFF8A /* SMBIOSPlist.cpp in Sources */, + 9AF4E031261F04B700365AD2 /* SafeString.c in Sources */, + 9AF4E032261F04B700365AD2 /* nanosvg.cpp in Sources */, + 9AF4DA7B26332D8500487D15 /* CompareField.cpp in Sources */, + 9AF4E033261F04B700365AD2 /* XObjArray_tests.cpp in Sources */, + 9AF4E034261F04B700365AD2 /* hda.cpp in Sources */, + 9AF4E1B2261F0B3F00365AD2 /* main.cpp in Sources */, + 9AF4E035261F04B700365AD2 /* Hibernate.cpp in Sources */, + 9AF4E037261F04B700365AD2 /* XToolsCommon_test.cpp in Sources */, + 9AF1EFF126342D2F00F7C2C0 /* Settings.cpp in Sources */, + 9AF4E039261F04B700365AD2 /* XCinema.cpp in Sources */, + 9AF4E03A261F04B700365AD2 /* device_inject.cpp in Sources */, + 9AF4DA8526332D8500487D15 /* CompareSettings.cpp in Sources */, + 9AF4E03B261F04B700365AD2 /* sound.cpp in Sources */, + 9AF4E03C261F04B700365AD2 /* find_replace_mask_Clover_tests.cpp in Sources */, + 9AF4E03D261F04B700365AD2 /* XmlLiteArrayTypes.cpp in Sources */, + 9AF4E03E261F04B700365AD2 /* nvidia.cpp in Sources */, + 9AF4E03F261F04B700365AD2 /* APFS.cpp in Sources */, + 9AF1F05726343F6E00F7C2C0 /* AssignSettingsDevices.cpp in Sources */, + 9AF4DA8126332D8500487D15 /* CompareSettingsCPU.cpp in Sources */, + 9AF4E040261F04B700365AD2 /* text.cpp in Sources */, + 9AF1F05F26343F6E00F7C2C0 /* AssignSettingsQuirks.cpp in Sources */, + 9AF4E041261F04B700365AD2 /* config-test.cpp in Sources */, + 9AF4E042261F04B700365AD2 /* VersionString.cpp in Sources */, + 9AF4DA7726332D8500487D15 /* CompareSettingsKernelAndKextPatches.cpp in Sources */, + 9AF4E043261F04B700365AD2 /* bootscreen.cpp in Sources */, + 9AF4E044261F04B700365AD2 /* BdsConnect.cpp in Sources */, + 9AF4E045261F04B700365AD2 /* XString_test.cpp in Sources */, + 9AF4E047261F04B700365AD2 /* TagBool.cpp in Sources */, + 9AF4E048261F04B700365AD2 /* Nvram.cpp in Sources */, + 9AF4E049261F04B700365AD2 /* shared_with_menu.cpp in Sources */, + 9AF4DA7526332D8500487D15 /* CompareSettingsACPI.cpp in Sources */, + 9AF4E04A261F04B700365AD2 /* Config_ACPI_DSDT.cpp in Sources */, + 9AF4E04B261F04B700365AD2 /* XmlLiteDictTypes.cpp in Sources */, + 9AF4DA7D26332D8500487D15 /* CompareSettingsGraphics.cpp in Sources */, + 9AF4E04C261F04B700365AD2 /* StartupSound.cpp in Sources */, + 9AF4E04D261F04B700365AD2 /* REFIT_MENU_SCREEN.cpp in Sources */, + 9AF4E04E261F04B700365AD2 /* lodepng.cpp in Sources */, + 9AF4E04F261F04B700365AD2 /* icns.cpp in Sources */, + 9AF4DA7F26332D8500487D15 /* CompareSettingsBootGraphics.cpp in Sources */, + 9AF4E050261F04B700365AD2 /* plist.cpp in Sources */, + 9AF4E051261F04B700365AD2 /* abort.cpp in Sources */, + 9AF4E052261F04B700365AD2 /* BootLog.cpp in Sources */, + 9AF4E053261F04B700365AD2 /* Events.cpp in Sources */, + 9AF4E054261F04B700365AD2 /* FixBiosDsdt.cpp in Sources */, + 9A77BAA926336335000FFF8A /* ConfigPlistAbstract.cpp in Sources */, + 9AF4E055261F04B700365AD2 /* BootOptions.cpp in Sources */, + 9AF4E056261F04B700365AD2 /* kext_inject.cpp in Sources */, + 9AF4E057261F04B700365AD2 /* AmlGenerator.cpp in Sources */, + 9AF4E058261F04B700365AD2 /* xml.cpp in Sources */, + 9AF4E059261F04B700365AD2 /* unicode_conversions.cpp in Sources */, + 9AF4E05A261F04B700365AD2 /* MemLogLib.c in Sources */, + 9AF4DA8B26332D8500487D15 /* CompareSettingsBoot.cpp in Sources */, + 9AF4E05C261F04B700365AD2 /* nanosvgrast.cpp in Sources */, + 9AF4E05E261F04B700365AD2 /* menu.cpp in Sources */, + 9AF4E05F261F04B700365AD2 /* DebugLib.c in Sources */, + 9AF4E060261F04B700365AD2 /* kext_patcher.cpp in Sources */, + 9AF4E061261F04B700365AD2 /* menu_items.cpp in Sources */, + 9AF4E062261F04B700365AD2 /* libscreen.cpp in Sources */, + 9AF4E063261F04B700365AD2 /* screen.cpp in Sources */, + 9AF4E064261F04B700365AD2 /* Config_GUI.cpp in Sources */, + 9AF4E065261F04B700365AD2 /* xml_lite-test.cpp in Sources */, + 9AF1EFFB2634355F00F7C2C0 /* Volume.cpp in Sources */, + 9AF4E066261F04B700365AD2 /* XmlLiteParser.cpp in Sources */, + 9AF4E068261F04B700365AD2 /* Net.cpp in Sources */, + 9AF4E069261F04B700365AD2 /* LegacyBoot.cpp in Sources */, + 9AF4DA8926332D8500487D15 /* CompareSettingsGUI.cpp in Sources */, + 9AF4E06A261F04B700365AD2 /* KERNEL_AND_KEXT_PATCHES.cpp in Sources */, + 9AF4E06B261F04B700365AD2 /* securevars.cpp in Sources */, + 9AF1EFFC2634359E00F7C2C0 /* SettingsUtils.cpp in Sources */, + 9AF4E06C261F04B700365AD2 /* PlatformDriverOverride.cpp in Sources */, + 9AF4E06D261F04B700365AD2 /* BmLib.cpp in Sources */, + 9AF4E06E261F04B700365AD2 /* gma.cpp in Sources */, + 9AF4E06F261F04B700365AD2 /* XRBuffer.cpp in Sources */, + 9AF1F06326343F6E00F7C2C0 /* AssignSettingsRtVariables.cpp in Sources */, + 9AF4E070261F04B700365AD2 /* egemb_icons_dark.cpp in Sources */, + 9AF4E071261F04B700365AD2 /* XStringArray.cpp in Sources */, + 9AF4E072261F04B700365AD2 /* xml_lite-reapeatingdict-test.cpp in Sources */, + 9AF4E073261F04B700365AD2 /* kernel_patcher.cpp in Sources */, + 9AF4E074261F04B700365AD2 /* common.cpp in Sources */, + 9AF4E075261F04B700365AD2 /* printlib-test.cpp in Sources */, + 9AF4E076261F04B700365AD2 /* ConfigPlistClass.cpp in Sources */, + 9AF4E077261F04B700365AD2 /* Utils.cpp in Sources */, + 9AF4E078261F04B700365AD2 /* strncmp_test.cpp in Sources */, + 9AF4E07A261F04B700365AD2 /* MemoryAllocationLib.c in Sources */, + 9AF4E07B261F04B700365AD2 /* TagArray.cpp in Sources */, + 9AF4E07C261F04B700365AD2 /* DataHub.cpp in Sources */, + 9AF4E07D261F04B700365AD2 /* strcasecmp_test.cpp in Sources */, + 9AF4E07E261F04B700365AD2 /* lib.cpp in Sources */, + 9AF4E07F261F04B700365AD2 /* TagString8.cpp in Sources */, + 9AF4DA7326332D8500487D15 /* CompareSettingsDevices.cpp in Sources */, + 9AF4E080261F04B700365AD2 /* plist_tests.cpp in Sources */, + 9AF4E081261F04B700365AD2 /* loader.cpp in Sources */, + 9AF4E082261F04B700365AD2 /* Injectors.cpp in Sources */, + 9AF4E083261F04B700365AD2 /* load_icns.cpp in Sources */, + 9AF4E084261F04B700365AD2 /* global_test.cpp in Sources */, + 9AF4E085261F04B700365AD2 /* guid.cpp in Sources */, + 9AF4E087261F04B700365AD2 /* TagDate.cpp in Sources */, + 9AF4E088261F04B700365AD2 /* printf_lite-test.cpp in Sources */, + 9AF4E08B261F04B700365AD2 /* XStringArray_test.cpp in Sources */, + 9AF4E08C261F04B700365AD2 /* Settings.cpp in Sources */, + 9AF4E08D261F04B700365AD2 /* b64cdecode.cpp in Sources */, + 9AF4E08E261F04B700365AD2 /* XBuffer_tests.cpp in Sources */, + 9AF4E08F261F04B700365AD2 /* egemb_font.cpp in Sources */, + 9AF4E090261F04B700365AD2 /* TagFloat.cpp in Sources */, + 9AF4E091261F04B700365AD2 /* image.cpp in Sources */, + 9AF4E092261F04B700365AD2 /* BasicIO.cpp in Sources */, + 9AF1F06726343F6E00F7C2C0 /* AssignSettingsGUI.cpp in Sources */, + 9AF4E093261F04B700365AD2 /* REFIT_MAINMENU_SCREEN.cpp in Sources */, + 9AF4E094261F04B700365AD2 /* Platform.cpp in Sources */, + 9AF1F06526343F6E00F7C2C0 /* AssignSettingsKernelAndKextPatches.cpp in Sources */, + 9AF4E095261F04B700365AD2 /* XPointer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; /* End PBXSourcesBuildPhase section */ /* Begin XCBuildConfiguration section */ @@ -16133,14 +17079,11 @@ GCC_PREPROCESSOR_DEFINITIONS = ( JIEF_DEBUG, UNIT_TESTS, + UNIT_TESTS_MACOS, "JCONST=const", - "wcslen=wcslen_fixed", - "wcscmp=__wcscmp_is_disabled__", - "wcsncmp=wcsncmp_fixed", - "wcsstr=wcsstr_fixed", - "sprintf=__sprintf_is_disabled__", "___NOT___ENABLE_SECURE_BOOT", - _UINTPTR_T, + "sprintf=__sprintf_is_disabled__", + "wcscmp=__wcscmp_is_disabled__", ); GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; @@ -16167,26 +17110,25 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/UefiMock", - "$(PROJECT_DIR)/UefiMock/Uefi/X64", - "$(PROJECT_DIR)/CloverMock/Include", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/include", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/Platform", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/Platform/posix", - "$(PROJECT_DIR)/OCMock/Include", + "$(PROJECT_DIR)/../../PosixCompilation/UefiMock", + "$(PROJECT_DIR)/../../PosixCompilation/CloverMock/Include", "$(PROJECT_DIR)/../../Include", - "$(PROJECT_DIR)/../../MdePkg/Include", - "$(PROJECT_DIR)/../../MdeModulePkg/Include", - "$(PROJECT_DIR)/../../MdePkg/Include/X64", - "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", "$(PROJECT_DIR)/../../IntelFrameworkPkg/Include", "$(PROJECT_DIR)/../../UefiCpuPkg/Include", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Apple", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Intel", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Acidanthera", "$(PROJECT_DIR)/../../OpenCorePkg", + "$(PROJECT_DIR)/../../MdePkg/Include", + "$(PROJECT_DIR)/../../MdePkg/Include/X64", + "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", + "$(PROJECT_DIR)/../../MdeModulePkg/Include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX/include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/include", ); INCLUDED_SOURCE_FILE_NAMES = ""; + LLVM_LTO = NO; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; @@ -16258,8 +17200,16 @@ ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = c11; GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = UNIT_TESTS; + GCC_PREPROCESSOR_DEFINITIONS = ( + UNIT_TESTS, + UNIT_TESTS_MACOS, + "JCONST=const", + "___NOT___ENABLE_SECURE_BOOT", + "sprintf=__sprintf_is_disabled__", + "wcscmp=__wcscmp_is_disabled__", + ); GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES; GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = NO; @@ -16285,26 +17235,25 @@ GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = ( "$(PROJECT_DIR)/src", - "$(PROJECT_DIR)/UefiMock", - "$(PROJECT_DIR)/UefiMock/Uefi/X64", - "$(PROJECT_DIR)/CloverMock/Include", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/include", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/Platform", - "$(PROJECT_DIR)/CloverMock/rEFIt_UEFI/Platform/posix", - "$(PROJECT_DIR)/OCMock/Include", + "$(PROJECT_DIR)/../../PosixCompilation/UefiMock", + "$(PROJECT_DIR)/../../PosixCompilation/CloverMock/Include", "$(PROJECT_DIR)/../../Include", - "$(PROJECT_DIR)/../../MdePkg/Include", - "$(PROJECT_DIR)/../../MdeModulePkg/Include", - "$(PROJECT_DIR)/../../MdePkg/Include/X64", - "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", "$(PROJECT_DIR)/../../IntelFrameworkPkg/Include", "$(PROJECT_DIR)/../../UefiCpuPkg/Include", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Apple", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Intel", "$(PROJECT_DIR)/../../OpenCorePkg/Include/Acidanthera", "$(PROJECT_DIR)/../../OpenCorePkg", + "$(PROJECT_DIR)/../../MdePkg/Include", + "$(PROJECT_DIR)/../../MdePkg/Include/X64", + "$(PROJECT_DIR)/../../MdePkg/Include/Register/Intel", + "$(PROJECT_DIR)/../../MdeModulePkg/Include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX", + "$(PROJECT_DIR)/../../rEFIT_UEFI/PlatformPOSIX/include", + "$(PROJECT_DIR)/../../rEFIT_UEFI/include", ); INCLUDED_SOURCE_FILE_NAMES = ""; + LLVM_LTO = YES; MACOSX_DEPLOYMENT_TARGET = 10.13; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; @@ -16329,7 +17278,14 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; - GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "wcslen=wcslen_fixed", + "wcsncmp=wcsncmp_fixed", + "wcsstr=wcsstr_fixed", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; OTHER_CFLAGS = ( "$(inherited)", "-fshort-wchar", @@ -16343,6 +17299,46 @@ buildSettings = { CODE_SIGN_IDENTITY = "-"; CODE_SIGN_STYLE = Automatic; + GCC_OPTIMIZATION_LEVEL = 0; + HEADER_SEARCH_PATHS = "$(inherited)"; + OTHER_CFLAGS = ( + "$(inherited)", + "-fshort-wchar", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; + 9AF4E0EC261F04B700365AD2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + GCC_OPTIMIZATION_LEVEL = z; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "wcslen=wcslen_fixed", + "wcsncmp=wcsncmp_fixed", + "wcsstr=wcsstr_fixed", + ); + HEADER_SEARCH_PATHS = "$(inherited)"; + LLVM_LTO = YES; + OTHER_CFLAGS = ( + "$(inherited)", + "-fshort-wchar", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + 9AF4E0ED261F04B700365AD2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + GCC_OPTIMIZATION_LEVEL = z; + HEADER_SEARCH_PATHS = "$(inherited)"; + LLVM_LTO = YES; OTHER_CFLAGS = ( "$(inherited)", "-fshort-wchar", @@ -16363,7 +17359,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser UTF16 signed char" */ = { + 9A9223342402FD1000483CBA /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser_UTF16_signed" */ = { isa = XCConfigurationList; buildConfigurations = ( 9A9223352402FD1000483CBA /* Debug */, @@ -16372,6 +17368,15 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 9AF4E0EB261F04B700365AD2 /* Build configuration list for PBXNativeTarget "CloverX64TestNewParser_UTF16_signed_RELEASE" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9AF4E0EC261F04B700365AD2 /* Debug */, + 9AF4E0ED261F04B700365AD2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; /* End XCConfigurationList section */ }; rootObject = 9A9223252402FD1000483CBA /* Project object */; diff --git a/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed.xcscheme b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed.xcscheme new file mode 100644 index 000000000..bdc0b7163 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed.xcscheme @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed_RELEASE.xcscheme b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed_RELEASE.xcscheme new file mode 100644 index 000000000..051a62bf2 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/CloverX64TestNewParser.xcodeproj/xcshareddata/xcschemes/CloverX64TestNewParser_UTF16_signed_RELEASE.xcscheme @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/CloverX64TestNewParser/OCMock/Include/Library/xOcConfigurationLib.h b/Xcode/CloverX64TestNewParser/OCMock/Include/Library/xOcConfigurationLib.h deleted file mode 100644 index 0fb7a2d6c..000000000 --- a/Xcode/CloverX64TestNewParser/OCMock/Include/Library/xOcConfigurationLib.h +++ /dev/null @@ -1,39 +0,0 @@ - -typedef struct OC_KERNEL_QUIRKS { - bool AppleCpuPmCfgLock; - bool AppleXcpmCfgLock; - bool AppleXcpmExtraMsrs; - bool AppleXcpmForceBoost; - bool DisableIoMapper; - bool DisableLinkeditJettison; - bool DisableRtcChecksum; - bool DummyPowerManagement; - bool ExternalDiskIcons; - bool IncreasePciBarSize; - bool LapicKernelPanic; - bool PanicNoKextDump; - bool PowerTimeoutKernelPanic; - bool ThirdPartyDrives; - bool XhciPortLimit; -} OC_KERNEL_QUIRKS; - - -typedef struct OC_BOOTER_QUIRKS { - bool AvoidRuntimeDefrag; - bool DevirtualiseMmio; - bool DisableSingleUser; - bool DisableVariableWrite; - bool DiscardHibernateMap; - bool EnableSafeModeSlide; - bool EnableWriteUnprotector; - bool ForceExitBootServices; - bool ProtectMemoryRegions; - bool ProtectSecureBoot; - bool ProtectUefiServices; - bool ProvideCustomSlide; - bool ProvideMaxSlide; - bool RebuildAppleMemoryMap; - bool SetupVirtualMap; - bool SignalAppleOS; - bool SyncRuntimePermissions; -} OC_BOOTER_QUIRKS; diff --git a/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.c b/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.c deleted file mode 100644 index f87b826a9..000000000 --- a/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.c +++ /dev/null @@ -1,20 +0,0 @@ -// -// OcAppleBootPolicyLib.c -// cpp_tests_compare_settings UTF16 signed char -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include -#include - -EFI_STATUS -InternalGetApfsSpecialFileInfo ( - IN EFI_FILE_PROTOCOL *Root, - IN OUT APPLE_APFS_VOLUME_INFO **VolumeInfo OPTIONAL, - IN OUT APPLE_APFS_CONTAINER_INFO **ContainerInfo OPTIONAL - ) -{ - panic("not yet"); -} diff --git a/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.h b/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.h deleted file mode 100644 index aec1f3585..000000000 --- a/Xcode/CloverX64TestNewParser/OCMock/OcAppleBootPolicyLib.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// OcAppleBootPolicyLib.h -// cpp_tests_compare_settings UTF16 signed char -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef OcAppleBootPolicyLib_h -#define OcAppleBootPolicyLib_h - -#include - -#endif /* OcAppleBootPolicyLib_h */ diff --git a/Xcode/CloverX64TestNewParser/OCMock/OpenCore.c b/Xcode/CloverX64TestNewParser/OCMock/OpenCore.c deleted file mode 100644 index c40662f95..000000000 --- a/Xcode/CloverX64TestNewParser/OCMock/OpenCore.c +++ /dev/null @@ -1,15 +0,0 @@ -// -// OpenCore.c -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -//#include "OpenCore.h" - -#include -#include "../../../rEFIt_UEFI/include/OC.h" - -//OC_GLOBAL_CONFIG mOpenCoreConfiguration = {{{0},{0},{0},{0}},{{0},{0}},{{0},{0}},{{0},{0},{{0},{0}},{0},{0},{0},{{0},{0},0}},{{0},{{0},{0},0,0,0,0,0,0,0,0},{0},{{0},{0},{0},0,0,0,0,0,0,{0},{0},{0},0,0},{0},{0}},{{0},{0},{0},0,0,0},{0},{0}}; -//OC_STORAGE_CONTEXT mOpenCoreStorage = {0}; diff --git a/Xcode/CloverX64TestNewParser/OCMock/OpenCore.h b/Xcode/CloverX64TestNewParser/OCMock/OpenCore.h deleted file mode 100644 index c3c46b514..000000000 --- a/Xcode/CloverX64TestNewParser/OCMock/OpenCore.h +++ /dev/null @@ -1,14 +0,0 @@ -// -// OpenCore.h -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef OpenCore_h -#define OpenCore_h - -#include - -#endif /* OpenCore_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Base.h b/Xcode/CloverX64TestNewParser/UefiMock/Base.h deleted file mode 100644 index 49da189c9..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Base.h +++ /dev/null @@ -1,1143 +0,0 @@ -/** @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 - 2018, Intel Corporation. All rights reserved.
-Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
-SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - - -#ifndef __BASE_H__ -#define __BASE_H__ - -// -// Include processor specific binding -// -#include - -#if defined(_MSC_EXTENSIONS) -// -// Disable warning when last field of data structure is a zero sized array. -// -#pragma warning ( disable : 4200 ) -#endif - -// -// 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 -// -#if defined(_MSC_VER) && _MSC_VER < 1800 && !defined (MDE_CPU_EBC) - /// - /// Remove global variable from the linked image if there are no references to - /// it after all compiler and linker optimizations have been performed. - /// - /// - #define GLOBAL_REMOVE_IF_UNREFERENCED __declspec(selectany) -#else - /// - /// Remove the global variable from the linked image if there are no references - /// to it after all compiler and linker optimizations have been performed. - /// - /// - #define GLOBAL_REMOVE_IF_UNREFERENCED -#endif - -// -// Should be used in combination with NORETURN to avoid 'noreturn' returns -// warnings. -// -#ifndef UNREACHABLE - #ifdef __GNUC__ - /// - /// Signal compilers and analyzers that this call is not reachable. It is - /// up to the compiler to remove any code past that point. - /// - #define UNREACHABLE() __builtin_unreachable () - #elif defined (__has_feature) - #if __has_builtin (__builtin_unreachable) - /// - /// Signal compilers and analyzers that this call is not reachable. It is - /// up to the compiler to remove any code past that point. - /// - #define UNREACHABLE() __builtin_unreachable () - #endif - #endif - - #ifndef UNREACHABLE - /// - /// Signal compilers and analyzers that this call is not reachable. It is - /// up to the compiler to remove any code past that point. - /// - #define UNREACHABLE() - #endif -#endif - -// -// 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. -// -#ifndef NORETURN - #if defined (__GNUC__) || defined (__clang__) - /// - /// 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. - /// - #define NORETURN __attribute__((noreturn)) - #elif defined(_MSC_EXTENSIONS) && !defined(MDE_CPU_EBC) - /// - /// 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. - /// - #define NORETURN __declspec(noreturn) - #else - /// - /// 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. - /// - #define NORETURN - #endif -#endif - -// -// Should be used in combination with ANALYZER_NORETURN to avoid 'noreturn' -// returns warnings. -// -#ifndef ANALYZER_UNREACHABLE - #ifdef __clang_analyzer__ - #if __has_builtin (__builtin_unreachable) - /// - /// Signal the analyzer that this call is not reachable. - /// This excludes compilers. - /// - #define ANALYZER_UNREACHABLE() __builtin_unreachable () - #endif - #endif - - #ifndef ANALYZER_UNREACHABLE - /// - /// Signal the analyzer that this call is not reachable. - /// This excludes compilers. - /// - #define ANALYZER_UNREACHABLE() - #endif -#endif - -// -// 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. -// -#ifndef ANALYZER_NORETURN - #ifdef __has_feature - #if __has_feature (attribute_analyzer_noreturn) - /// - /// Signal analyzers that the function cannot return. - /// This excludes compilers. - /// - #define ANALYZER_NORETURN __attribute__((analyzer_noreturn)) - #endif - #endif - - #ifndef ANALYZER_NORETURN - /// - /// Signal the analyzer that the function cannot return. - /// This excludes compilers. - /// - #define ANALYZER_NORETURN - #endif -#endif - -/// -/// Tell the code optimizer that the function will return twice. -/// This prevents wrong optimizations which can cause bugs. -/// -#ifndef RETURNS_TWICE - #if defined (__GNUC__) || defined (__clang__) - /// - /// Tell the code optimizer that the function will return twice. - /// This prevents wrong optimizations which can cause bugs. - /// - #define RETURNS_TWICE __attribute__((returns_twice)) - #else - /// - /// Tell the code optimizer that the function will return twice. - /// This prevents wrong optimizations which can cause bugs. - /// - #define RETURNS_TWICE - #endif -#endif - -// -// For symbol name in assembly code, an extra "_" is sometimes necessary -// - -/// -/// Private worker functions for ASM_PFX() -/// -#define _CONCATENATE(a, b) __CONCATENATE(a, b) -#define __CONCATENATE(a, b) a ## b - -/// -/// The __USER_LABEL_PREFIX__ macro predefined by GNUC represents the prefix -/// on symbols in assembly language. -/// -#define ASM_PFX(name) _CONCATENATE (__USER_LABEL_PREFIX__, name) - -#ifdef __APPLE__ - // - // Apple extension that is used by the linker to optimize code size - // with assembly functions. Put at the end of your .S files - // - #define ASM_FUNCTION_REMOVE_IF_UNREFERENCED .subsections_via_symbols -#else - #define ASM_FUNCTION_REMOVE_IF_UNREFERENCED -#endif - -#ifdef __CC_ARM - // - // Older RVCT ARM compilers don't fully support #pragma pack and require __packed - // as a prefix for the structure. - // - #define PACKED __packed -#else - #define PACKED -#endif - -/// -/// 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. -/// -#define CONST const -#ifndef JCONST -#define JCONST -#endif - -/// -/// Datum is scoped to the current file or function. -/// -#define STATIC static - -/// -/// Undeclared type. -/// -#define VOID void - -// -// Modifiers for Data Types used to self document code. -// This concept is borrowed for UEFI specification. -// - -/// -/// Datum is passed to the function. -/// -#define IN - -/// -/// Datum is returned from the function. -/// -#define OUT - -/// -/// Passing the datum to the function is optional, and a NULL -/// is passed if the value is not supplied. -/// -#define OPTIONAL - -// -// 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. -/// -#define TRUE ((BOOLEAN)(1==1)) - -/// -/// Boolean false value. UEFI Specification defines this value to be 0, -/// but this form is more portable. -/// -#define FALSE ((BOOLEAN)(0==1)) - -/// -/// NULL pointer (VOID *) -/// -#ifndef NULL -#ifdef __cplusplus -#define NULL nullptr -#else -#define NULL ((VOID *) 0) -#endif -#endif - -// -// Null character -// -#define CHAR_NULL 0x0000 - -/// -/// Maximum values for common UEFI Data Types -/// -#define MAX_INT8 ((INT8)0x7F) -#define MAX_UINT8 ((UINT8)0xFF) -#define MAX_INT16 ((INT16)0x7FFF) -#define MAX_UINT16 ((UINT16)0xFFFF) -#define MAX_INT32 ((INT32)0x7FFFFFFF) -#define MAX_UINT32 ((UINT32)0xFFFFFFFF) -#define MAX_INT64 ((INT64)0x7FFFFFFFFFFFFFFFULL) -#define MAX_UINT64 ((UINT64)0xFFFFFFFFFFFFFFFFULL) - -/// -/// Minimum values for the signed UEFI Data Types -/// -#define MIN_INT8 (((INT8) -127) - 1) -#define MIN_INT16 (((INT16) -32767) - 1) -#define MIN_INT32 (((INT32) -2147483647) - 1) -#define MIN_INT64 (((INT64) -9223372036854775807LL) - 1) - -#define BIT0 0x00000001 -#define BIT1 0x00000002 -#define BIT2 0x00000004 -#define BIT3 0x00000008 -#define BIT4 0x00000010 -#define BIT5 0x00000020 -#define BIT6 0x00000040 -#define BIT7 0x00000080 -#define BIT8 0x00000100 -#define BIT9 0x00000200 -#define BIT10 0x00000400 -#define BIT11 0x00000800 -#define BIT12 0x00001000 -#define BIT13 0x00002000 -#define BIT14 0x00004000 -#define BIT15 0x00008000 -#define BIT16 0x00010000 -#define BIT17 0x00020000 -#define BIT18 0x00040000 -#define BIT19 0x00080000 -#define BIT20 0x00100000 -#define BIT21 0x00200000 -#define BIT22 0x00400000 -#define BIT23 0x00800000 -#define BIT24 0x01000000 -#define BIT25 0x02000000 -#define BIT26 0x04000000 -#define BIT27 0x08000000 -#define BIT28 0x10000000 -#define BIT29 0x20000000 -#define BIT30 0x40000000 -#define BIT31 0x80000000 -#define BIT32 0x0000000100000000ULL -#define BIT33 0x0000000200000000ULL -#define BIT34 0x0000000400000000ULL -#define BIT35 0x0000000800000000ULL -#define BIT36 0x0000001000000000ULL -#define BIT37 0x0000002000000000ULL -#define BIT38 0x0000004000000000ULL -#define BIT39 0x0000008000000000ULL -#define BIT40 0x0000010000000000ULL -#define BIT41 0x0000020000000000ULL -#define BIT42 0x0000040000000000ULL -#define BIT43 0x0000080000000000ULL -#define BIT44 0x0000100000000000ULL -#define BIT45 0x0000200000000000ULL -#define BIT46 0x0000400000000000ULL -#define BIT47 0x0000800000000000ULL -#define BIT48 0x0001000000000000ULL -#define BIT49 0x0002000000000000ULL -#define BIT50 0x0004000000000000ULL -#define BIT51 0x0008000000000000ULL -#define BIT52 0x0010000000000000ULL -#define BIT53 0x0020000000000000ULL -#define BIT54 0x0040000000000000ULL -#define BIT55 0x0080000000000000ULL -#define BIT56 0x0100000000000000ULL -#define BIT57 0x0200000000000000ULL -#define BIT58 0x0400000000000000ULL -#define BIT59 0x0800000000000000ULL -#define BIT60 0x1000000000000000ULL -#define BIT61 0x2000000000000000ULL -#define BIT62 0x4000000000000000ULL -#define BIT63 0x8000000000000000ULL - -#define SIZE_1KB 0x00000400 -#define SIZE_2KB 0x00000800 -#define SIZE_4KB 0x00001000 -#define SIZE_8KB 0x00002000 -#define SIZE_16KB 0x00004000 -#define SIZE_32KB 0x00008000 -#define SIZE_64KB 0x00010000 -#define SIZE_128KB 0x00020000 -#define SIZE_256KB 0x00040000 -#define SIZE_512KB 0x00080000 -#define SIZE_1MB 0x00100000 -#define SIZE_2MB 0x00200000 -#define SIZE_4MB 0x00400000 -#define SIZE_8MB 0x00800000 -#define SIZE_16MB 0x01000000 -#define SIZE_32MB 0x02000000 -#define SIZE_64MB 0x04000000 -#define SIZE_128MB 0x08000000 -#define SIZE_256MB 0x10000000 -#define SIZE_512MB 0x20000000 -#define SIZE_1GB 0x40000000 -#define SIZE_2GB 0x80000000 -#define SIZE_4GB 0x0000000100000000ULL -#define SIZE_8GB 0x0000000200000000ULL -#define SIZE_16GB 0x0000000400000000ULL -#define SIZE_32GB 0x0000000800000000ULL -#define SIZE_64GB 0x0000001000000000ULL -#define SIZE_128GB 0x0000002000000000ULL -#define SIZE_256GB 0x0000004000000000ULL -#define SIZE_512GB 0x0000008000000000ULL -#define SIZE_1TB 0x0000010000000000ULL -#define SIZE_2TB 0x0000020000000000ULL -#define SIZE_4TB 0x0000040000000000ULL -#define SIZE_8TB 0x0000080000000000ULL -#define SIZE_16TB 0x0000100000000000ULL -#define SIZE_32TB 0x0000200000000000ULL -#define SIZE_64TB 0x0000400000000000ULL -#define SIZE_128TB 0x0000800000000000ULL -#define SIZE_256TB 0x0001000000000000ULL -#define SIZE_512TB 0x0002000000000000ULL -#define SIZE_1PB 0x0004000000000000ULL -#define SIZE_2PB 0x0008000000000000ULL -#define SIZE_4PB 0x0010000000000000ULL -#define SIZE_8PB 0x0020000000000000ULL -#define SIZE_16PB 0x0040000000000000ULL -#define SIZE_32PB 0x0080000000000000ULL -#define SIZE_64PB 0x0100000000000000ULL -#define SIZE_128PB 0x0200000000000000ULL -#define SIZE_256PB 0x0400000000000000ULL -#define SIZE_512PB 0x0800000000000000ULL -#define SIZE_1EB 0x1000000000000000ULL -#define SIZE_2EB 0x2000000000000000ULL -#define SIZE_4EB 0x4000000000000000ULL -#define SIZE_8EB 0x8000000000000000ULL - -#define BASE_1KB 0x00000400 -#define BASE_2KB 0x00000800 -#define BASE_4KB 0x00001000 -#define BASE_8KB 0x00002000 -#define BASE_16KB 0x00004000 -#define BASE_32KB 0x00008000 -#define BASE_64KB 0x00010000 -#define BASE_128KB 0x00020000 -#define BASE_256KB 0x00040000 -#define BASE_512KB 0x00080000 -#define BASE_1MB 0x00100000 -#define BASE_2MB 0x00200000 -#define BASE_4MB 0x00400000 -#define BASE_8MB 0x00800000 -#define BASE_16MB 0x01000000 -#define BASE_32MB 0x02000000 -#define BASE_64MB 0x04000000 -#define BASE_128MB 0x08000000 -#define BASE_256MB 0x10000000 -#define BASE_512MB 0x20000000 -#define BASE_1GB 0x40000000 -#define BASE_2GB 0x80000000 -#define BASE_4GB 0x0000000100000000ULL -#define BASE_8GB 0x0000000200000000ULL -#define BASE_16GB 0x0000000400000000ULL -#define BASE_32GB 0x0000000800000000ULL -#define BASE_64GB 0x0000001000000000ULL -#define BASE_128GB 0x0000002000000000ULL -#define BASE_256GB 0x0000004000000000ULL -#define BASE_512GB 0x0000008000000000ULL -#define BASE_1TB 0x0000010000000000ULL -#define BASE_2TB 0x0000020000000000ULL -#define BASE_4TB 0x0000040000000000ULL -#define BASE_8TB 0x0000080000000000ULL -#define BASE_16TB 0x0000100000000000ULL -#define BASE_32TB 0x0000200000000000ULL -#define BASE_64TB 0x0000400000000000ULL -#define BASE_128TB 0x0000800000000000ULL -#define BASE_256TB 0x0001000000000000ULL -#define BASE_512TB 0x0002000000000000ULL -#define BASE_1PB 0x0004000000000000ULL -#define BASE_2PB 0x0008000000000000ULL -#define BASE_4PB 0x0010000000000000ULL -#define BASE_8PB 0x0020000000000000ULL -#define BASE_16PB 0x0040000000000000ULL -#define BASE_32PB 0x0080000000000000ULL -#define BASE_64PB 0x0100000000000000ULL -#define BASE_128PB 0x0200000000000000ULL -#define BASE_256PB 0x0400000000000000ULL -#define BASE_512PB 0x0800000000000000ULL -#define BASE_1EB 0x1000000000000000ULL -#define BASE_2EB 0x2000000000000000ULL -#define BASE_4EB 0x4000000000000000ULL -#define BASE_8EB 0x8000000000000000ULL - - - - - - - - - - -#if defined(_MSC_VER) - -#define VA_LIST va_list -#define VA_START(Marker, Parameter) va_start (Marker, Parameter) -#define VA_ARG(Marker, TYPE) va_arg(Marker, TYPE) -#define VA_END(Marker) va_end (Marker) -#define VA_COPY(Dest, Start) va_copy(Dest, Start) - -#else - -typedef __builtin_va_list VA_LIST; - -#define VA_START(Marker, Parameter) __builtin_va_start (Marker, Parameter) - -#define VA_ARG(Marker, TYPE) ((sizeof (TYPE) < sizeof (UINTN)) ? (TYPE)(__builtin_va_arg (Marker, UINTN)) : (TYPE)(__builtin_va_arg (Marker, TYPE))) - -#define VA_END(Marker) __builtin_va_end (Marker) - -#define VA_COPY(Dest, Start) __builtin_va_copy (Dest, Start) - -#endif - - -/// -/// 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. -**/ -#define _BASE_INT_SIZE_OF(TYPE) ((sizeof (TYPE) + sizeof (UINTN) - 1) / sizeof (UINTN)) - -/** - 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. - -**/ -#define BASE_ARG(Marker, TYPE) (*(TYPE *) ((Marker += _BASE_INT_SIZE_OF (TYPE)) - _BASE_INT_SIZE_OF (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. - -**/ -#if (defined(__GNUC__) && __GNUC__ >= 4) || defined(__clang__) -#define OFFSET_OF(TYPE, Field) ((UINTN) __builtin_offsetof(TYPE, Field)) -#endif - -#ifndef OFFSET_OF -#define OFFSET_OF(TYPE, Field) ((UINTN) &(((TYPE *)0)->Field)) -#endif - -/** - 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. - -**/ -#ifdef __cplusplus - #define STATIC_ASSERT(Expression, Message) static_assert(Expression, Message) -#else - #ifdef MDE_CPU_EBC - #define STATIC_ASSERT(Expression, Message) - #elif defined(_MSC_EXTENSIONS) - #define STATIC_ASSERT static_assert - #else - #define STATIC_ASSERT _Static_assert - #endif -#endif - -// -// 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"); - -// -// 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 = 0x7fffffff -} __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. - -**/ -#define BASE_CR(Record, TYPE, Field) ((TYPE *) ((CHAR8 *) (Record) - OFFSET_OF (TYPE, Field))) - -/** - 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. - -**/ -#define ALIGN_VALUE(Value, Alignment) ((Value) + (((Alignment) - (Value)) & ((Alignment) - 1))) - -/** - 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. - -**/ -#define ALIGN_POINTER(Pointer, Alignment) ((VOID *) (ALIGN_VALUE ((UINTN)(Pointer), (Alignment)))) - -/** - 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. - -**/ -#define ALIGN_VARIABLE(Value) ALIGN_VALUE ((Value), sizeof (UINTN)) - - -/** - 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. - -**/ -#define MAX(a, b) \ - (((a) > (b)) ? (a) : (b)) - -/** - 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. - -**/ -#define MIN(a, b) \ - (((a) < (b)) ? (a) : (b)) - -/** - 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. - -**/ -#define ABS(a) \ - (((a) < 0) ? (-(a)) : (a)) - -// -// 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. - -**/ -#define ENCODE_ERROR(StatusCode) ((RETURN_STATUS)(MAX_BIT | (StatusCode))) - -/** - 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. - -**/ -#define ENCODE_WARNING(StatusCode) ((RETURN_STATUS)(StatusCode)) - -/** - 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. - -**/ -#define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0) - -/// -/// The operation completed successfully. -/// -#define RETURN_SUCCESS 0 - -/// -/// The image failed to load. -/// -#define RETURN_LOAD_ERROR ENCODE_ERROR (1) - -/// -/// The parameter was incorrect. -/// -#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2) - -/// -/// The operation is not supported. -/// -#define RETURN_UNSUPPORTED ENCODE_ERROR (3) - -/// -/// The buffer was not the proper size for the request. -/// -#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4) - -/// -/// 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. -/// -#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5) - -/// -/// There is no data pending upon return. -/// -#define RETURN_NOT_READY ENCODE_ERROR (6) - -/// -/// The physical device reported an error while attempting the -/// operation. -/// -#define RETURN_DEVICE_ERROR ENCODE_ERROR (7) - -/// -/// The device can not be written to. -/// -#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8) - -/// -/// The resource has run out. -/// -#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9) - -/// -/// An inconsistency was detected on the file system causing the -/// operation to fail. -/// -#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10) - -/// -/// There is no more space on the file system. -/// -#define RETURN_VOLUME_FULL ENCODE_ERROR (11) - -/// -/// The device does not contain any medium to perform the -/// operation. -/// -#define RETURN_NO_MEDIA ENCODE_ERROR (12) - -/// -/// The medium in the device has changed since the last -/// access. -/// -#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13) - -/// -/// The item was not found. -/// -#define RETURN_NOT_FOUND ENCODE_ERROR (14) - -/// -/// Access was denied. -/// -#define RETURN_ACCESS_DENIED ENCODE_ERROR (15) - -/// -/// The server was not found or did not respond to the request. -/// -#define RETURN_NO_RESPONSE ENCODE_ERROR (16) - -/// -/// A mapping to the device does not exist. -/// -#define RETURN_NO_MAPPING ENCODE_ERROR (17) - -/// -/// A timeout time expired. -/// -#define RETURN_TIMEOUT ENCODE_ERROR (18) - -/// -/// The protocol has not been started. -/// -#define RETURN_NOT_STARTED ENCODE_ERROR (19) - -/// -/// The protocol has already been started. -/// -#define RETURN_ALREADY_STARTED ENCODE_ERROR (20) - -/// -/// The operation was aborted. -/// -#define RETURN_ABORTED ENCODE_ERROR (21) - -/// -/// An ICMP error occurred during the network operation. -/// -#define RETURN_ICMP_ERROR ENCODE_ERROR (22) - -/// -/// A TFTP error occurred during the network operation. -/// -#define RETURN_TFTP_ERROR ENCODE_ERROR (23) - -/// -/// A protocol error occurred during the network operation. -/// -#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24) - -/// -/// A function encountered an internal version that was -/// incompatible with a version requested by the caller. -/// -#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25) - -/// -/// The function was not performed due to a security violation. -/// -#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26) - -/// -/// A CRC error was detected. -/// -#define RETURN_CRC_ERROR ENCODE_ERROR (27) - -/// -/// The beginning or end of media was reached. -/// -#define RETURN_END_OF_MEDIA ENCODE_ERROR (28) - -/// -/// The end of the file was reached. -/// -#define RETURN_END_OF_FILE ENCODE_ERROR (31) - -/// -/// The language specified was invalid. -/// -#define RETURN_INVALID_LANGUAGE ENCODE_ERROR (32) - -/// -/// The security status of the data is unknown or compromised -/// and the data must be updated or replaced to restore a valid -/// security status. -/// -#define RETURN_COMPROMISED_DATA ENCODE_ERROR (33) - -/// -/// A HTTP error occurred during the network operation. -/// -#define RETURN_HTTP_ERROR ENCODE_ERROR (35) - -/// -/// The string contained one or more characters that -/// the device could not render and were skipped. -/// -#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1) - -/// -/// The handle was closed, but the file was not deleted. -/// -#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2) - -/// -/// The handle was closed, but the data to the file was not -/// flushed properly. -/// -#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3) - -/// -/// The resulting buffer was too small, and the data was -/// truncated to the buffer size. -/// -#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4) - -/// -/// The data has not been updated within the timeframe set by -/// local policy for this type of data. -/// -#define RETURN_WARN_STALE_DATA ENCODE_WARNING (5) - -/// -/// The resulting buffer contains UEFI-compliant file system. -/// -#define RETURN_WARN_FILE_SYSTEM ENCODE_WARNING (6) - - -/** - 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. - -**/ -#define SIGNATURE_16(A, B) ((A) | (B << 8)) - -/** - 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. - -**/ -#define SIGNATURE_32(A, B, C, D) (SIGNATURE_16 (A, B) | (SIGNATURE_16 (C, D) << 16)) - -/** - 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. - -**/ -#define SIGNATURE_64(A, B, C, D, E, F, G, H) \ - (SIGNATURE_32 (A, B, C, D) | ((UINT64) (SIGNATURE_32 (E, F, G, H)) << 32)) - -#if defined(_MSC_EXTENSIONS) && !defined (__INTEL_COMPILER) && !defined (MDE_CPU_EBC) - 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. - - **/ - #define RETURN_ADDRESS(L) ((L == 0) ? _ReturnAddress() : (VOID *) 0) -#elif defined (__GNUC__) || defined (__clang__) - void * __builtin_return_address (unsigned int level); - /** - Get the return address of the calling function. - - Based on built-in Function __builtin_return_address that returns - the return address of the current function, or of one of its callers. - - @param L Return Level. - - @return The return address of the calling function. - - **/ - #define RETURN_ADDRESS(L) __builtin_return_address (L) -#else - /** - Get the return address of the calling function. - - @param L Return Level. - - @return 0 as compilers don't support this feature. - - **/ - #define RETURN_ADDRESS(L) ((VOID *) 0) -#endif - -/** - 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. - -**/ -#define ARRAY_SIZE(Array) (sizeof (Array) / sizeof ((Array)[0])) - -#endif diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Globals.cpp b/Xcode/CloverX64TestNewParser/UefiMock/Globals.cpp deleted file mode 100644 index 8b4a52223..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Globals.cpp +++ /dev/null @@ -1,27 +0,0 @@ -// -// Globals.c -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include -#include - -//EFI_HANDLE gImageHandle = NULL; -//EFI_SYSTEM_TABLE *gST = NULL; -//EFI_BOOT_SERVICES *gBS = NULL; -//EFI_RUNTIME_SERVICES *gRT = NULL; -//EFI_DXE_SERVICES *gDS = NULL; - -static class Init { - public: - Init() { - gImageHandle = NULL; - gST = NULL; - gBS = NULL; - gRT = NULL; - gDS = NULL; - } -} init; diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseLib.c deleted file mode 100644 index 93ca8b66b..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseLib.c +++ /dev/null @@ -1,231 +0,0 @@ -// -// BaseLib.c -// cpp_tests UTF16 signed char -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#include - -#include "../../../rEFIt_UEFI/Platform/Posix/abort.h" - -#if defined(__APPLE__) && defined(__clang__) && __WCHAR_MAX__ <= 0xFFFFu -// 2020-03 : w... function are broken under macOs and clang with short-wchar. -// Currently with clang version Apple LLVM version 10.0.0 (clang-1000.11.45.5) with High Sierra -// If it's fixed one day, a version number could added to this #ifdef - -//# include "xcode_utf_fixed.h" -#else -# include -#endif - -#include "../../../rEFIt_UEFI/cpp_foundation/unicode_conversions.h" - - - -CHAR16* StrStr (IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString) -{ - return (CHAR16*)wcsstr(String, SearchString); -} - -CHAR8* AsciiStrStr(CONST CHAR8 *String, CONST CHAR8 *SearchString) -{ - return strstr(String, SearchString); -} - - -UINTN StrLen(const wchar_t* String) -{ - #if __WCHAR_MAX__ <= 0xFFFFu - return wchar_size_of_utf16_string(String); - #else - return wchar_size_of_utf32_string(String); - #endif -} - -#if __WCHAR_MAX__ > 0xFFFFu -UINTN StrLen(const char16_t* String) -{ - return wchar_size_of_utf16_string(String); -} -#endif - - - -UINTN -EFIAPI -AsciiStrDecimalToUintn ( - IN CONST CHAR8 *String - ) -{ - if ( !String ) panic("AsciiStrDecimalToUintn : !String"); - UINTN value; - int ret = sscanf(String, "%llu", &value); - if ( ret == 0 ) return 0; - return value; -} - - -RETURN_STATUS -EFIAPI -AsciiStrDecimalToUintnS ( - IN CONST CHAR8 *String, - OUT CHAR8 **EndPointer, OPTIONAL - OUT UINTN *Data - ) -{ - *Data = 0; - if ( !String ) return RETURN_INVALID_PARAMETER; - int ret = sscanf(String, "%llu", Data); - if ( EndPointer ) *EndPointer += ret; - if ( ret == 0 ) return RETURN_INVALID_PARAMETER; - return RETURN_SUCCESS; -} - -UINTN EFIAPI AsciiStrHexToUintn(IN CONST CHAR8 *String) -{ - if ( !String ) return RETURN_INVALID_PARAMETER; - UINTN value = 0; - int ret = sscanf(String, "%llx", &value); - if ( ret == 0 ) return 0; - return value; -} - -///* -// * Not sure it works exactly like EDK. Espscially in case of error. -// */ -//RETURN_STATUS -//EFIAPI -//AsciiStrHexToUint64S ( -// IN CONST CHAR8 *String, -// OUT CHAR8 **EndPointer, OPTIONAL -// OUT UINT64 *Data -// ) -//{ -//(void)EndPointer; -// if ( !String ) return RETURN_INVALID_PARAMETER; -// int ret = sscanf(String, "%llx", Data); -// if ( ret == 0 ) return 0; -// return EFI_SUCCESS; -//} - -UINT64 -EFIAPI -AsciiStrHexToUint64 ( - IN CONST CHAR8 *String - ) -{ - if ( !String ) return RETURN_INVALID_PARAMETER; - UINTN value = 0; - int ret = sscanf(String, "%llx", &value); - if ( ret == 0 ) return 0; - return value; -} - -UINTN AsciiStrLen(const char* String) -{ - return strlen(String); -} - - -// -// Math Services -// - -UINT64 -EFIAPI -LShiftU64 ( - IN UINT64 Operand, - IN UINTN Count - ) -{ - return Operand << Count; -} -UINT64 -EFIAPI -MultU64x64 ( - IN UINT64 Multiplicand, - IN UINT64 Multiplier - ) -{ - return Multiplicand * Multiplier; -} - - -#pragma GCC diagnostic ignored "-Wunused-parameter" - - - - -RETURN_STATUS -EFIAPI -AsciiStrToUnicodeStrS ( - IN CONST CHAR8 *Source, - OUT CHAR16 *Destination, - IN UINTN DestMax - ) -{ - panic("not yet"); -} - -CHAR16 * -EFIAPI -ConvertDevicePathToText ( - IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath, - IN BOOLEAN DisplayOnly, - IN BOOLEAN AllowShortcuts - ) -{ - panic("not yet"); -} -// -//EFI_DEVICE_PATH_PROTOCOL * -//EFIAPI -//DevicePathFromHandle ( -// IN EFI_HANDLE Handle -// ) -//{ -// panic("not yet"); -//} -// -// -//UINTN -//EFIAPI -//DevicePathNodeLength ( -// IN CONST VOID *Node -// ) -//{ -// panic("not yet"); -//} -// -// -//UINT8 -//EFIAPI -//DevicePathSubType ( -// IN CONST VOID *Node -// ) -//{ -// panic("not yet"); -//} -// -// -//UINT8 -//EFIAPI -//DevicePathType ( -// IN CONST VOID *Node -// ) -//{ -// panic("not yet"); -//} -// -// -//EFI_DEVICE_PATH_PROTOCOL * -//EFIAPI -//DuplicateDevicePath ( -// IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath -// ) -//{ -// panic("not yet"); -//} -// diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseMemoryLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseMemoryLib.c deleted file mode 100644 index 8086ac243..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/BaseMemoryLib.c +++ /dev/null @@ -1,174 +0,0 @@ -// -// BaseMemoryLib.c -// cpp_tests UTF16 signed char -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#include -#include -//#include "../../../../MdePkg/Library/BaseMemoryLib/MemLibInternals.h" -#include - - -void* SetMem(void *Destination, UINTN Length, UINT8 c) -{ - return memset(Destination, c, (size_t)Length); -} - -VOID * -EFIAPI -SetMem32 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT32 Value - ) -{ - for( uint32_t i = 0 ; i < Length/sizeof(Value) ; i++ ) - { - ((__typeof__(&Value))Buffer)[i] = Value; - } - return Buffer; -} - -VOID * -EFIAPI -SetMem64 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT64 Value - ) -{ - for( uint32_t i = 0 ; i < Length/sizeof(Value) ; i++ ) - { - ((__typeof__(&Value))Buffer)[i] = Value; - } - return Buffer; -} - -INTN CompareMem(const void* DestinationBuffer, const void* SourceBuffer, UINTN Length) -{ - return memcmp(SourceBuffer, DestinationBuffer, Length); -} - -void* CopyMem(void *Destination, const void *Source, UINTN Length) -{ - return memmove(Destination, Source, (size_t)Length); -} - -void* ZeroMem(void *Destination, UINTN Length) -{ - return memset(Destination, 0, (size_t)Length); -} - -BOOLEAN -EFIAPI -CompareGuid ( - IN CONST GUID *Guid1, - IN CONST GUID *Guid2 - ) -{ - UINT64 LowPartOfGuid1; - UINT64 LowPartOfGuid2; - UINT64 HighPartOfGuid1; - UINT64 HighPartOfGuid2; - - LowPartOfGuid1 = * ((CONST UINT64*) Guid1); - LowPartOfGuid2 = * ((CONST UINT64*) Guid2); - HighPartOfGuid1 = * ((CONST UINT64*) Guid1 + 1); - HighPartOfGuid2 = * ((CONST UINT64*) Guid2 + 1); - - return (BOOLEAN) (LowPartOfGuid1 == LowPartOfGuid2 && HighPartOfGuid1 == HighPartOfGuid2); -} - -GUID * -EFIAPI -CopyGuid ( - OUT GUID *DestinationGuid, - IN CONST GUID *SourceGuid - ) -{ - *DestinationGuid = *SourceGuid; - return DestinationGuid; -} - -BOOLEAN -EFIAPI -IsZeroGuid ( - IN CONST GUID *Guid - ) -{ - UINT64 LowPartOfGuid; - UINT64 HighPartOfGuid; - - LowPartOfGuid = * ((CONST UINT64*) Guid); - HighPartOfGuid = * ((CONST UINT64*) Guid + 1); - - return (BOOLEAN) (LowPartOfGuid == 0 && HighPartOfGuid == 0); -} - -VOID * -EFIAPI -ScanGuid ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN CONST GUID *Guid - ) -{ - CONST GUID *GuidPtr; - - ASSERT (((UINTN)Buffer & (sizeof (Guid->Data1) - 1)) == 0); - ASSERT (Length <= (MAX_ADDRESS - (UINTN)Buffer + 1)); - ASSERT ((Length & (sizeof (*GuidPtr) - 1)) == 0); - - GuidPtr = (GUID*)Buffer; - Buffer = GuidPtr + Length / sizeof (*GuidPtr); - while (GuidPtr < (CONST GUID*)Buffer) { - if (CompareGuid (GuidPtr, Guid)) { - return (VOID*)GuidPtr; - } - GuidPtr++; - } - return NULL; -} - -CONST VOID * -EFIAPI -InternalMemScanMem16 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT16 Value - ) -{ - CONST UINT16 *Pointer; - - Pointer = (CONST UINT16*)Buffer; - do { - if (*Pointer == Value) { - return Pointer; - } - ++Pointer; - } while (--Length != 0); - return NULL; -} - -VOID * -EFIAPI -ScanMem16 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT16 Value - ) -{ - if (Length == 0) { - return NULL; - } - - ASSERT (Buffer != NULL); - ASSERT (((UINTN)Buffer & (sizeof (Value) - 1)) == 0); - ASSERT ((Length - 1) <= (MAX_ADDRESS - (UINTN)Buffer)); - ASSERT ((Length & (sizeof (Value) - 1)) == 0); - - return (VOID*)InternalMemScanMem16 (Buffer, Length / sizeof (Value), Value); -} diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.c deleted file mode 100644 index 2e5abe49a..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.c +++ /dev/null @@ -1,113 +0,0 @@ -// -// DebugLib.c -// cpp_tests UTF16 signed char -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#include -#include "../../../../rEFIt_UEFI/Platform/Posix/abort.h" - -/** - Prints an assert message containing a filename, line number, and description. - This may be followed by a breakpoint or a dead loop. - - Print a message of the form "ASSERT (): \n" - to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of - PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if - DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then - CpuDeadLoop() is called. If neither of these bits are set, then this function - returns immediately after the message is printed to the debug output device. - DebugAssert() must actively prevent recursion. If DebugAssert() is called while - processing another DebugAssert(), then DebugAssert() must return immediately. - - If FileName is NULL, then a string of "(NULL) Filename" is printed. - If Description is NULL, then a string of "(NULL) Description" is printed. - - @param FileName The pointer to the name of the source file that generated the assert condition. - @param LineNumber The line number in the source file that generated the assert condition - @param Description The pointer to the description of the assert condition. - -**/ -VOID -EFIAPI -DebugAssert ( - IN CONST CHAR8 *FileName, - IN UINTN LineNumber, - IN CONST CHAR8 *Description - ) -{ -// panic(); -// panic("ouch\n"); - panic("%s %llu %s\n", FileName, LineNumber, Description); -} - - -/** - Returns TRUE if ASSERT() macros are enabled. - - This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of - PcdDebugProperyMask is set. Otherwise, FALSE is returned. - - @retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set. - @retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear. - -**/ -BOOLEAN -EFIAPI -DebugAssertEnabled ( - VOID - ) -{ - return TRUE; -} -RETURN_STATUS -EFIAPI -BaseDebugLibSerialPortConstructor ( - VOID - ) -{ - return EFI_SUCCESS; -} -VOID -EFIAPI -DebugPrint ( - IN UINTN ErrorLevel, - IN CONST CHAR8 *Format, - ... - ) -{ - VA_LIST Marker; - - VA_START (Marker, Format); - vprintf(Format, Marker); - VA_END (Marker); -} - -BOOLEAN -EFIAPI -DebugCodeEnabled ( - VOID - ) -{ - return TRUE; -} - -BOOLEAN -EFIAPI -DebugPrintEnabled ( - VOID - ) -{ - return TRUE; -} - -BOOLEAN -EFIAPI -DebugPrintLevelEnabled ( - IN CONST UINTN ErrorLevel - ) -{ - return TRUE; -} diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.h.dis b/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.h.dis deleted file mode 100644 index c0af6a813..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/DebugLib.h.dis +++ /dev/null @@ -1,102 +0,0 @@ -// -// DebugLib.h -// cpp_tests UTF16 signed char -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#ifndef DebugLib_h -#define DebugLib_h - -#include - - -/** - Prints an assert message containing a filename, line number, and description. - This may be followed by a breakpoint or a dead loop. - - Print a message of the form "ASSERT (): \n" - to the debug output device. If DEBUG_PROPERTY_ASSERT_BREAKPOINT_ENABLED bit of - PcdDebugProperyMask is set then CpuBreakpoint() is called. Otherwise, if - DEBUG_PROPERTY_ASSERT_DEADLOOP_ENABLED bit of PcdDebugProperyMask is set then - CpuDeadLoop() is called. If neither of these bits are set, then this function - returns immediately after the message is printed to the debug output device. - DebugAssert() must actively prevent recursion. If DebugAssert() is called while - processing another DebugAssert(), then DebugAssert() must return immediately. - - If FileName is NULL, then a string of "(NULL) Filename" is printed. - If Description is NULL, then a string of "(NULL) Description" is printed. - - @param FileName The pointer to the name of the source file that generated the assert condition. - @param LineNumber The line number in the source file that generated the assert condition - @param Description The pointer to the description of the assert condition. - -**/ -VOID -EFIAPI -DebugAssert ( - IN CONST CHAR8 *FileName, - IN UINTN LineNumber, - IN CONST CHAR8 *Description - ); - -/** - Returns TRUE if ASSERT() macros are enabled. - - This function returns TRUE if the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of - PcdDebugProperyMask is set. Otherwise, FALSE is returned. - - @retval TRUE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is set. - @retval FALSE The DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED bit of PcdDebugProperyMask is clear. - -**/ -BOOLEAN -EFIAPI -DebugAssertEnabled ( - VOID - ); - -/** - Internal worker macro that calls DebugAssert(). - - This macro calls DebugAssert(), passing in the filename, line number, and an - expression that evaluated to FALSE. - - @param Expression Boolean expression that evaluated to FALSE - -**/ -#if defined(__clang__) && defined(__FILE_NAME__) -#define _ASSERT(Expression) DebugAssert (__FILE_NAME__, __LINE__, #Expression) -#else -#define _ASSERT(Expression) DebugAssert (__FILE__, __LINE__, #Expression) -#endif - -/** - Macro that calls DebugAssert() if an expression evaluates to FALSE. - - If MDEPKG_NDEBUG is not defined and the DEBUG_PROPERTY_DEBUG_ASSERT_ENABLED - bit of PcdDebugProperyMask is set, then this macro evaluates the Boolean - expression specified by Expression. If Expression evaluates to FALSE, then - DebugAssert() is called passing in the source filename, source line number, - and Expression. - - @param Expression Boolean expression. - -**/ -#if !defined(MDEPKG_NDEBUG) - #define ASSERT(Expression) \ - do { \ - if (DebugAssertEnabled ()) { \ - if (!(Expression)) { \ - _ASSERT (Expression); \ - ANALYZER_UNREACHABLE (); \ - } \ - } \ - } while (FALSE) -#else - #define ASSERT(Expression) -#endif - - -#endif /* DebugLib_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathLib.c deleted file mode 100644 index 65dc12c16..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathLib.c +++ /dev/null @@ -1,38 +0,0 @@ -// -// DevicePathLib.h -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include - -EFI_DEVICE_PATH_PROTOCOL * -EFIAPI -AppendDevicePath ( - IN CONST EFI_DEVICE_PATH_PROTOCOL *FirstDevicePath, OPTIONAL - IN CONST EFI_DEVICE_PATH_PROTOCOL *SecondDevicePath OPTIONAL - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -GetDevicePathSize ( - IN CONST EFI_DEVICE_PATH_PROTOCOL *DevicePath - ) -{ - panic("not yet"); -} - -EFI_DEVICE_PATH_PROTOCOL * -EFIAPI -GetNextDevicePathInstance ( - IN OUT EFI_DEVICE_PATH_PROTOCOL **DevicePath, - OUT UINTN *Size - ) -{ - panic("not yet"); -} diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathUtilities.h b/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathUtilities.h deleted file mode 100644 index faac8da80..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/DevicePathUtilities.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// DevicePathUtilities.h -// cpp_tests_compare_settings -// -// Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef DevicePathUtilities_h -#define DevicePathUtilities_h - - -#endif /* DevicePathUtilities_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.c deleted file mode 100644 index c9aea2e07..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.c +++ /dev/null @@ -1,84 +0,0 @@ -// -// MemoryAllocationLib.c -// cpp_tests UTF16 signed char -// -// Created by Jief on 30/01/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include - - -void* AllocatePool(UINTN AllocationSize) -{ - return (void*)malloc((size_t)AllocationSize); -} - -void* AllocateZeroPool(UINTN AllocationSize) -{ - void* p = (void*)malloc((size_t)AllocationSize); - memset(p, 0, (size_t)AllocationSize); - return p; -} - -void* AllocateCopyPool (UINTN AllocationSize, CONST VOID *Buffer) -{ - void* p = malloc(AllocationSize); - memcpy(p, Buffer, AllocationSize); - return p; -} - -void* ReallocatePool(UINTN OldSize, UINTN NewSize, void* OldBuffer) -{ - (void)OldSize; - if ( !OldBuffer ) return AllocatePool(NewSize); - return (void*)realloc(OldBuffer, (size_t)NewSize); -} - -void FreePool(IN JCONST VOID *Buffer) -{ - free((void*)Buffer); -} - -//#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-parameter" - -VOID * -EFIAPI -AllocateAlignedPages ( - IN UINTN Pages, - IN UINTN Alignment - ) -{ - panic("not yet"); -} - - -VOID -EFIAPI -FreeAlignedPages ( - IN VOID *Buffer, - IN UINTN Pages - ) -{ - panic("not yet"); -} - -VOID * -EFIAPI -AllocatePages ( - IN UINTN Pages - ) -{ - panic("not yet"); -} - -VOID -EFIAPI -FreePages ( - IN VOID *Buffer, - IN UINTN Pages - ) -{ - panic("not yet"); -} diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.h.dis b/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.h.dis deleted file mode 100644 index c3d3d4767..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/MemoryAllocationLib.h.dis +++ /dev/null @@ -1,126 +0,0 @@ -// -// MemoryAllocationLib.h -// cpp_tests -// -// Created by Jief on 30/01/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef MemoryAllocationLib_h -#define MemoryAllocationLib_h - -/** - Allocates a buffer of type EfiBootServicesData. - - Allocates the number bytes specified by AllocationSize of type EfiBootServicesData and returns a - pointer to the allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is - returned. If there is not enough memory remaining to satisfy the request, then NULL is returned. - - @param AllocationSize The number of bytes to allocate. - - @return A pointer to the allocated buffer or NULL if allocation fails. - -**/ -VOID * -EFIAPI -AllocatePool ( - IN UINTN AllocationSize - ); - - -/** - Allocates and zeros a buffer of type EfiBootServicesData. - - Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, clears the - buffer with zeros, and returns a pointer to the allocated buffer. If AllocationSize is 0, then a - valid buffer of 0 size is returned. If there is not enough memory remaining to satisfy the - request, then NULL is returned. - - @param AllocationSize The number of bytes to allocate and zero. - - @return A pointer to the allocated buffer or NULL if allocation fails. - -**/ -VOID * -EFIAPI -AllocateZeroPool( - IN UINTN AllocationSize - ); - - -/** - Copies a buffer to an allocated buffer of type EfiBootServicesData. - - Allocates the number bytes specified by AllocationSize of type EfiBootServicesData, copies - AllocationSize bytes from Buffer to the newly allocated buffer, and returns a pointer to the - allocated buffer. If AllocationSize is 0, then a valid buffer of 0 size is returned. If there - is not enough memory remaining to satisfy the request, then NULL is returned. - - If Buffer is NULL, then ASSERT(). - If AllocationSize is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param AllocationSize The number of bytes to allocate and zero. - @param Buffer The buffer to copy to the allocated buffer. - - @return A pointer to the allocated buffer or NULL if allocation fails. - -**/ -VOID * -EFIAPI -AllocateCopyPool ( - IN UINTN AllocationSize, - IN CONST VOID *Buffer - ); - -/** - Reallocates a buffer of type EfiBootServicesData. - - Allocates and zeros the number bytes specified by NewSize from memory of type - EfiBootServicesData. If OldBuffer is not NULL, then the smaller of OldSize and - NewSize bytes are copied from OldBuffer to the newly allocated buffer, and - OldBuffer is freed. A pointer to the newly allocated buffer is returned. - If NewSize is 0, then a valid buffer of 0 size is returned. If there is not - enough memory remaining to satisfy the request, then NULL is returned. - - If the allocation of the new buffer is successful and the smaller of NewSize and OldSize - is greater than (MAX_ADDRESS - OldBuffer + 1), then ASSERT(). - - @param OldSize The size, in bytes, of OldBuffer. - @param NewSize The size, in bytes, of the buffer to reallocate. - @param OldBuffer The buffer to copy to the allocated buffer. This is an optional - parameter that may be NULL. - - @return A pointer to the allocated buffer or NULL if allocation fails. - -**/ -VOID * -EFIAPI -ReallocatePool ( - IN UINTN OldSize, - IN UINTN NewSize, - IN VOID *OldBuffer OPTIONAL - ); - - -/** - Frees a buffer that was previously allocated with one of the pool allocation functions in the - Memory Allocation Library. - - Frees the buffer specified by Buffer. Buffer must have been allocated on a previous call to the - pool allocation services of the Memory Allocation Library. If it is not possible to free pool - resources, then this function will perform no actions. - - If Buffer was not allocated with a pool allocation function in the Memory Allocation Library, - then ASSERT(). - - @param Buffer Pointer to the buffer to free. - -**/ -VOID -EFIAPI -FreePool( - IN VOID *Buffer - ); - - -#endif /* MemoryAllocationLib_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/OcMiscLib.h b/Xcode/CloverX64TestNewParser/UefiMock/Library/OcMiscLib.h deleted file mode 100644 index 01d8f8978..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/OcMiscLib.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// OcMiscLib.h -// cpp_tests -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#ifndef OcMiscLib_h -#define OcMiscLib_h - - -#endif /* OcMiscLib_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.c b/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.c deleted file mode 100644 index d9a06cce2..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.c +++ /dev/null @@ -1,93 +0,0 @@ -// -// PrintLib.c -// cpp_tests -// -// Created by Jief on 30/01/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#include "PrintLib.h" - -UINTN -EFIAPI -AsciiSPrint ( - OUT CHAR8 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR8 *FormatString, - ... - ) -{ - va_list va; - va_start(va, FormatString); - int ret = vsnprintf(StartOfBuffer, BufferSize, FormatString, va); - va_end(va); - return (UINTN)ret; // vsnprintf seems to always return >= 0. So cast should be safe. -} - -UINTN -EFIAPI -AsciiBSPrint ( - OUT CHAR8 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR8 *FormatString, - IN BASE_LIST Marker - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -AsciiVSPrint ( - OUT CHAR8 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR8 *FormatString, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -SPrintLength ( - IN CONST CHAR16 *FormatString, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -SPrintLengthAsciiFormat ( - IN CONST CHAR8 *FormatString, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -UnicodeSPrint ( - OUT CHAR16 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR16 *FormatString, - ... - ) -{ - panic("not yet"); -} - -UINTN -EFIAPI -UnicodeVSPrint ( - OUT CHAR16 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR16 *FormatString, - IN VA_LIST Marker - ) -{ - panic("not yet"); -} diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.h b/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.h deleted file mode 100644 index 19283d431..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/PrintLib.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// Header.h -// cpp_tests -// -// Created by Jief on 30/01/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. -// - -#ifndef PrintLib_h -#define PrintLib_h - -/** - Produces a Null-terminated ASCII string in an output buffer based on a Null-terminated - ASCII format string and variable argument list. - - This function is similar as snprintf_s defined in C11. - - Produces a Null-terminated ASCII string in the output buffer specified by StartOfBuffer - and BufferSize. - The ASCII string is produced by parsing the format string specified by FormatString. - Arguments are pulled from the variable argument list based on the contents of the - format string. - The number of ASCII characters in the produced output buffer is returned not including - the Null-terminator. - - If BufferSize > 0 and StartOfBuffer is NULL, then ASSERT(). Also, the output buffer is - unmodified and 0 is returned. - If BufferSize > 0 and FormatString is NULL, then ASSERT(). Also, the output buffer is - unmodified and 0 is returned. - If PcdMaximumAsciiStringLength is not zero, and BufferSize > - (PcdMaximumAsciiStringLength * sizeof (CHAR8)), then ASSERT(). Also, the output buffer - is unmodified and 0 is returned. - If PcdMaximumAsciiStringLength is not zero, and FormatString contains more than - PcdMaximumAsciiStringLength Ascii characters not including the Null-terminator, then - ASSERT(). Also, the output buffer is unmodified and 0 is returned. - - If BufferSize is 0, then no output buffer is produced and 0 is returned. - - @param StartOfBuffer A pointer to the output buffer for the produced Null-terminated - ASCII string. - @param BufferSize The size, in bytes, of the output buffer specified by StartOfBuffer. - @param FormatString A Null-terminated ASCII format string. - @param ... Variable argument list whose contents are accessed based on the - format string specified by FormatString. - - @return The number of ASCII characters in the produced output buffer not including the - Null-terminator. - -**/ -UINTN -EFIAPI -AsciiSPrint ( - OUT CHAR8 *StartOfBuffer, - IN UINTN BufferSize, - IN CONST CHAR8 *FormatString, - ... - ); - - -#endif /* PrintLib_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseLib.h b/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseLib.h deleted file mode 100644 index 267d38993..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseLib.h +++ /dev/null @@ -1,177 +0,0 @@ -// -// BaseLib.h -// cpp_tests UTF16 signed char -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#ifndef BaseLib_h -#define BaseLib_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -//UINTN StrLen(const char16_t* String); -UINTN StrLen(const wchar_t* String); -//int StrCmp(const wchar_t* FirstString, const wchar_t* SecondString); -//int StrnCmp(const wchar_t* FirstString, const wchar_t* SecondString, UINTN Length); -//UINTN StrLen(const wchar_t* String); -UINTN AsciiStrLen(const char* String); -//INTN AsciiStrCmp (const char *FirstString,const char *SecondString); - -CHAR16* StrStr (IN CONST CHAR16 *String, IN CONST CHAR16 *SearchString); - -CHAR8 * -EFIAPI -AsciiStrStr ( - IN CONST CHAR8 *String, - IN CONST CHAR8 *SearchString - ); - - -UINTN -EFIAPI -AsciiStrDecimalToUintn ( - IN CONST CHAR8 *String - ); - -RETURN_STATUS -EFIAPI -AsciiStrDecimalToUintnS ( - IN CONST CHAR8 *String, - OUT CHAR8 **EndPointer, OPTIONAL - OUT UINTN *Data - ); - -RETURN_STATUS -EFIAPI -AsciiStrHexToUintnS ( - IN CONST CHAR8 *String, - OUT CHAR8 **EndPointer, OPTIONAL - OUT UINTN *Data - ); -UINTN -EFIAPI -AsciiStrHexToUintn ( - IN CONST CHAR8 *String - ); - -//RETURN_STATUS -//EFIAPI -//AsciiStrHexToUint64S ( -// IN CONST CHAR8 *String, -// OUT CHAR8 **EndPointer, OPTIONAL -// OUT UINT64 *Data -// ); - -UINT64 -EFIAPI -AsciiStrHexToUint64 ( - IN CONST CHAR8 *String - ); - -// -///** -// Returns a 64-bit Machine Specific Register(MSR). -// -// Reads and returns the 64-bit MSR specified by Index. No parameter checking is -// performed on Index, and some Index values may cause CPU exceptions. The -// caller must either guarantee that Index is valid, or the caller must set up -// exception handlers to catch the exceptions. This function is only available -// on IA-32 and x64. -// -// @param Index The 32-bit MSR index to read. -// -// @return The value of the MSR identified by Index. -// -//**/ -//UINT64 -//EFIAPI -//AsmReadMsr64 ( -// IN UINT32 Index -// ); -// -///** -// Writes a 64-bit value to a Machine Specific Register(MSR), and returns the -// value. -// -// Writes the 64-bit value specified by Value to the MSR specified by Index. The -// 64-bit value written to the MSR is returned. No parameter checking is -// performed on Index or Value, and some of these may cause CPU exceptions. The -// caller must either guarantee that Index and Value are valid, or the caller -// must establish proper exception handlers. This function is only available on -// IA-32 and x64. -// -// @param Index The 32-bit MSR index to write. -// @param Value The 64-bit value to write to the MSR. -// -// @return Value -// -//**/ -//UINT64 -//EFIAPI -//AsmWriteMsr64 ( -// IN UINT32 Index, -// IN UINT64 Value -// ); -// - -// -// Math Services -// - -/** - Shifts a 64-bit integer left between 0 and 63 bits. The low bits are filled - with zeros. The shifted value is returned. - - This function shifts the 64-bit value Operand to the left by Count bits. The - low Count bits are set to zero. The shifted value is returned. - - If Count is greater than 63, then ASSERT(). - - @param Operand The 64-bit operand to shift left. - @param Count The number of bits to shift left. - - @return Operand << Count. - -**/ -UINT64 -EFIAPI -LShiftU64 ( - IN UINT64 Operand, - IN UINTN Count - ); - -/** - Multiples a 64-bit unsigned integer by a 64-bit unsigned integer and - generates a 64-bit unsigned result. - - This function multiples the 64-bit unsigned value Multiplicand by the 64-bit - unsigned value Multiplier and generates a 64-bit unsigned result. This 64- - bit unsigned result is returned. - - @param Multiplicand A 64-bit unsigned value. - @param Multiplier A 64-bit unsigned value. - - @return Multiplicand * Multiplier. - -**/ -UINT64 -EFIAPI -MultU64x64 ( - IN UINT64 Multiplicand, - IN UINT64 Multiplier - ); - - - -#ifdef __cplusplus -} -#endif - -#endif /* BaseLib_h */ diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseMemoryLib.h b/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseMemoryLib.h deleted file mode 100644 index ee7b45c69..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Library/xBaseMemoryLib.h +++ /dev/null @@ -1,507 +0,0 @@ -// -// BaseMemoryLib.h -// cpp_tests UTF16 signed char -// -// Created by jief666 on 12/10/2020. -// Copyright © 2020 jief666. All rights reserved. -// - -/** @file - Provides copy memory, fill memory, zero memory, and GUID functions. - - The Base Memory Library provides optimized implementations for common memory-based operations. - These functions should be used in place of coding your own loops to do equivalent common functions. - This allows optimized library implementations to help increase performance. - -Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.
-SPDX-License-Identifier: BSD-2-Clause-Patent - -**/ - -#ifndef __BASE_MEMORY_LIB__ -#define __BASE_MEMORY_LIB__ - -#ifdef __cplusplus -extern "C" { -#endif - - -#include - -/** - Copies a source buffer to a destination buffer, and returns the destination buffer. - - This function copies Length bytes from SourceBuffer to DestinationBuffer, and returns - DestinationBuffer. The implementation must be reentrant, and it must handle the case - where SourceBuffer overlaps DestinationBuffer. - - If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT(). - If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT(). - - @param DestinationBuffer The pointer to the destination buffer of the memory copy. - @param SourceBuffer The pointer to the source buffer of the memory copy. - @param Length The number of bytes to copy from SourceBuffer to DestinationBuffer. - - @return DestinationBuffer. - -**/ -VOID * -EFIAPI -CopyMem ( - OUT VOID *DestinationBuffer, - IN CONST VOID *SourceBuffer, - IN UINTN Length - ); - -/** - Fills a target buffer with a byte value, and returns the target buffer. - - This function fills Length bytes of Buffer with Value, and returns Buffer. - - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The memory to set. - @param Length The number of bytes to set. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMem ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT8 Value - ); - -/** - Fills a target buffer with a 16-bit value, and returns the target buffer. - - This function fills Length bytes of Buffer with the 16-bit value specified by - Value, and returns Buffer. Value is repeated every 16-bits in for Length - bytes of Buffer. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - If Buffer is not aligned on a 16-bit boundary, then ASSERT(). - If Length is not aligned on a 16-bit boundary, then ASSERT(). - - @param Buffer The pointer to the target buffer to fill. - @param Length The number of bytes in Buffer to fill. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMem16 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT16 Value - ); - -/** - Fills a target buffer with a 32-bit value, and returns the target buffer. - - This function fills Length bytes of Buffer with the 32-bit value specified by - Value, and returns Buffer. Value is repeated every 32-bits in for Length - bytes of Buffer. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - If Buffer is not aligned on a 32-bit boundary, then ASSERT(). - If Length is not aligned on a 32-bit boundary, then ASSERT(). - - @param Buffer The pointer to the target buffer to fill. - @param Length The number of bytes in Buffer to fill. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMem32 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT32 Value - ); - -/** - Fills a target buffer with a 64-bit value, and returns the target buffer. - - This function fills Length bytes of Buffer with the 64-bit value specified by - Value, and returns Buffer. Value is repeated every 64-bits in for Length - bytes of Buffer. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - If Buffer is not aligned on a 64-bit boundary, then ASSERT(). - If Length is not aligned on a 64-bit boundary, then ASSERT(). - - @param Buffer The pointer to the target buffer to fill. - @param Length The number of bytes in Buffer to fill. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMem64 ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINT64 Value - ); - -/** - Fills a target buffer with a value that is size UINTN, and returns the target buffer. - - This function fills Length bytes of Buffer with the UINTN sized value specified by - Value, and returns Buffer. Value is repeated every sizeof(UINTN) bytes for Length - bytes of Buffer. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - If Buffer is not aligned on a UINTN boundary, then ASSERT(). - If Length is not aligned on a UINTN boundary, then ASSERT(). - - @param Buffer The pointer to the target buffer to fill. - @param Length The number of bytes in Buffer to fill. - @param Value The value with which to fill Length bytes of Buffer. - - @return Buffer. - -**/ -VOID * -EFIAPI -SetMemN ( - OUT VOID *Buffer, - IN UINTN Length, - IN UINTN Value - ); - -/** - Fills a target buffer with zeros, and returns the target buffer. - - This function fills Length bytes of Buffer with zeros, and returns Buffer. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to fill with zeros. - @param Length The number of bytes in Buffer to fill with zeros. - - @return Buffer. - -**/ -VOID * -EFIAPI -ZeroMem ( - OUT VOID *Buffer, - IN UINTN Length - ); - -/** - Compares the contents of two buffers. - - This function compares Length bytes of SourceBuffer to Length bytes of DestinationBuffer. - If all Length bytes of the two buffers are identical, then 0 is returned. Otherwise, the - value returned is the first mismatched byte in SourceBuffer subtracted from the first - mismatched byte in DestinationBuffer. - - If Length > 0 and DestinationBuffer is NULL, then ASSERT(). - If Length > 0 and SourceBuffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - DestinationBuffer + 1), then ASSERT(). - If Length is greater than (MAX_ADDRESS - SourceBuffer + 1), then ASSERT(). - - @param DestinationBuffer The pointer to the destination buffer to compare. - @param SourceBuffer The pointer to the source buffer to compare. - @param Length The number of bytes to compare. - - @return 0 All Length bytes of the two buffers are identical. - @retval Non-zero The first mismatched byte in SourceBuffer subtracted from the first - mismatched byte in DestinationBuffer. - -**/ -INTN -EFIAPI -CompareMem ( - IN CONST VOID *DestinationBuffer, - IN CONST VOID *SourceBuffer, - IN UINTN Length - ); - -/** - Scans a target buffer for an 8-bit value, and returns a pointer to the matching 8-bit value - in the target buffer. - - This function searches target the buffer specified by Buffer and Length from the lowest - address to the highest address for an 8-bit value that matches Value. If a match is found, - then a pointer to the matching byte in the target buffer is returned. If no match is found, - then NULL is returned. If Length is 0, then NULL is returned. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to scan. - @param Length The number of bytes in Buffer to scan. - @param Value The value to search for in the target buffer. - - @return A pointer to the matching byte in the target buffer, otherwise NULL. - -**/ -VOID * -EFIAPI -ScanMem8 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT8 Value - ); - -/** - Scans a target buffer for a 16-bit value, and returns a pointer to the matching 16-bit value - in the target buffer. - - This function searches target the buffer specified by Buffer and Length from the lowest - address to the highest address for a 16-bit value that matches Value. If a match is found, - then a pointer to the matching byte in the target buffer is returned. If no match is found, - then NULL is returned. If Length is 0, then NULL is returned. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Buffer is not aligned on a 16-bit boundary, then ASSERT(). - If Length is not aligned on a 16-bit boundary, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to scan. - @param Length The number of bytes in Buffer to scan. - @param Value The value to search for in the target buffer. - - @return A pointer to the matching byte in the target buffer, otherwise NULL. - -**/ -VOID * -EFIAPI -ScanMem16 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT16 Value - ); - -/** - Scans a target buffer for a 32-bit value, and returns a pointer to the matching 32-bit value - in the target buffer. - - This function searches target the buffer specified by Buffer and Length from the lowest - address to the highest address for a 32-bit value that matches Value. If a match is found, - then a pointer to the matching byte in the target buffer is returned. If no match is found, - then NULL is returned. If Length is 0, then NULL is returned. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Buffer is not aligned on a 32-bit boundary, then ASSERT(). - If Length is not aligned on a 32-bit boundary, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to scan. - @param Length The number of bytes in Buffer to scan. - @param Value The value to search for in the target buffer. - - @return A pointer to the matching byte in the target buffer, otherwise NULL. - -**/ -VOID * -EFIAPI -ScanMem32 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT32 Value - ); - -/** - Scans a target buffer for a 64-bit value, and returns a pointer to the matching 64-bit value - in the target buffer. - - This function searches target the buffer specified by Buffer and Length from the lowest - address to the highest address for a 64-bit value that matches Value. If a match is found, - then a pointer to the matching byte in the target buffer is returned. If no match is found, - then NULL is returned. If Length is 0, then NULL is returned. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Buffer is not aligned on a 64-bit boundary, then ASSERT(). - If Length is not aligned on a 64-bit boundary, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to scan. - @param Length The number of bytes in Buffer to scan. - @param Value The value to search for in the target buffer. - - @return A pointer to the matching byte in the target buffer, otherwise NULL. - -**/ -VOID * -EFIAPI -ScanMem64 ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINT64 Value - ); - -/** - Scans a target buffer for a UINTN sized value, and returns a pointer to the matching - UINTN sized value in the target buffer. - - This function searches target the buffer specified by Buffer and Length from the lowest - address to the highest address for a UINTN sized value that matches Value. If a match is found, - then a pointer to the matching byte in the target buffer is returned. If no match is found, - then NULL is returned. If Length is 0, then NULL is returned. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Buffer is not aligned on a UINTN boundary, then ASSERT(). - If Length is not aligned on a UINTN boundary, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the target buffer to scan. - @param Length The number of bytes in Buffer to scan. - @param Value The value to search for in the target buffer. - - @return A pointer to the matching byte in the target buffer, otherwise NULL. - -**/ -VOID * -EFIAPI -ScanMemN ( - IN CONST VOID *Buffer, - IN UINTN Length, - IN UINTN Value - ); - -///** -// Copies a source GUID to a destination GUID. -// -// This function copies the contents of the 128-bit GUID specified by SourceGuid to -// DestinationGuid, and returns DestinationGuid. -// -// If DestinationGuid is NULL, then ASSERT(). -// If SourceGuid is NULL, then ASSERT(). -// -// @param DestinationGuid The pointer to the destination GUID. -// @param SourceGuid The pointer to the source GUID. -// -// @return DestinationGuid. -// -//**/ -//GUID * -//EFIAPI -//CopyGuid ( -// OUT GUID *DestinationGuid, -// IN CONST GUID *SourceGuid -// ); -// -///** -// Compares two GUIDs. -// -// This function compares Guid1 to Guid2. If the GUIDs are identical then TRUE is returned. -// If there are any bit differences in the two GUIDs, then FALSE is returned. -// -// If Guid1 is NULL, then ASSERT(). -// If Guid2 is NULL, then ASSERT(). -// -// @param Guid1 A pointer to a 128 bit GUID. -// @param Guid2 A pointer to a 128 bit GUID. -// -// @retval TRUE Guid1 and Guid2 are identical. -// @retval FALSE Guid1 and Guid2 are not identical. -// -//**/ -//BOOLEAN -//EFIAPI -//CompareGuid ( -// IN CONST GUID *Guid1, -// IN CONST GUID *Guid2 -// ); -// -///** -// Scans a target buffer for a GUID, and returns a pointer to the matching GUID -// in the target buffer. -// -// This function searches target the buffer specified by Buffer and Length from -// the lowest address to the highest address at 128-bit increments for the 128-bit -// GUID value that matches Guid. If a match is found, then a pointer to the matching -// GUID in the target buffer is returned. If no match is found, then NULL is returned. -// If Length is 0, then NULL is returned. -// -// If Length > 0 and Buffer is NULL, then ASSERT(). -// If Buffer is not aligned on a 32-bit boundary, then ASSERT(). -// If Length is not aligned on a 128-bit boundary, then ASSERT(). -// If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). -// -// @param Buffer The pointer to the target buffer to scan. -// @param Length The number of bytes in Buffer to scan. -// @param Guid The value to search for in the target buffer. -// -// @return A pointer to the matching Guid in the target buffer, otherwise NULL. -// -//**/ -//VOID * -//EFIAPI -//ScanGuid ( -// IN CONST VOID *Buffer, -// IN UINTN Length, -// IN CONST GUID *Guid -// ); -// -///** -// Checks if the given GUID is a zero GUID. -// -// This function checks whether the given GUID is a zero GUID. If the GUID is -// identical to a zero GUID then TRUE is returned. Otherwise, FALSE is returned. -// -// If Guid is NULL, then ASSERT(). -// -// @param Guid The pointer to a 128 bit GUID. -// -// @retval TRUE Guid is a zero GUID. -// @retval FALSE Guid is not a zero GUID. -// -//**/ -//BOOLEAN -//EFIAPI -//IsZeroGuid ( -// IN CONST GUID *Guid -// ); - -/** - Checks if the contents of a buffer are all zeros. - - This function checks whether the contents of a buffer are all zeros. If the - contents are all zeros, return TRUE. Otherwise, return FALSE. - - If Length > 0 and Buffer is NULL, then ASSERT(). - If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). - - @param Buffer The pointer to the buffer to be checked. - @param Length The size of the buffer (in bytes) to be checked. - - @retval TRUE Contents of the buffer are all zeros. - @retval FALSE Contents of the buffer are not all zeros. - -**/ -BOOLEAN -EFIAPI -IsZeroBuffer ( - IN CONST VOID *Buffer, - IN UINTN Length - ); - - - - -#ifdef __cplusplus -} -#endif - - -#endif // __BASE_MEMORY_LIB__ - diff --git a/Xcode/CloverX64TestNewParser/UefiMock/Uefi.h.dis b/Xcode/CloverX64TestNewParser/UefiMock/Uefi.h.dis deleted file mode 100644 index 0e25db0aa..000000000 --- a/Xcode/CloverX64TestNewParser/UefiMock/Uefi.h.dis +++ /dev/null @@ -1,131 +0,0 @@ -// -// Uefi.h -// cpp_tests -// -// Created by Jief on 12/10/2020. -// Copyright © 2020 JF Knudsen. All rights reserved. -// - -#ifndef Uefi_h -#define Uefi_h - -#include - -// -//#include -// -//#define IN -//#define OUT -// -//#ifndef TRUE -//#define TRUE true -//#endif -//#ifndef FALSE -//#define FALSE false -//#endif -////#define VA_LIST va_list -////#define VA_START va_start -////#define VA_END va_end -////#define VA_ARG va_arg -////#define VA_COPY va_copy -// -//#define VOID void -//#define EFIAPI -//#define CONST const -// -//typedef UINTN RETURN_STATUS; -//typedef RETURN_STATUS EFI_STATUS; -//#define MAX_BIT 0x8000000000000000ULL -//#define ENCODE_ERROR(StatusCode) ((RETURN_STATUS)(MAX_BIT | (StatusCode))) -// -//#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9) -// -// -//#define RETURN_SUCCESS 0 -//#define RETURN_LOAD_ERROR ENCODE_ERROR (1) -//#define RETURN_INVALID_PARAMETER ENCODE_ERROR (2) -//#define RETURN_UNSUPPORTED ENCODE_ERROR (3) -//#define RETURN_BAD_BUFFER_SIZE ENCODE_ERROR (4) -//#define RETURN_BUFFER_TOO_SMALL ENCODE_ERROR (5) -//#define RETURN_NOT_READY ENCODE_ERROR (6) -//#define RETURN_DEVICE_ERROR ENCODE_ERROR (7) -//#define RETURN_WRITE_PROTECTED ENCODE_ERROR (8) -//#define RETURN_OUT_OF_RESOURCES ENCODE_ERROR (9) -//#define RETURN_VOLUME_CORRUPTED ENCODE_ERROR (10) -//#define RETURN_VOLUME_FULL ENCODE_ERROR (11) -//#define RETURN_NO_MEDIA ENCODE_ERROR (12) -//#define RETURN_MEDIA_CHANGED ENCODE_ERROR (13) -//#define RETURN_NOT_FOUND ENCODE_ERROR (14) -//#define RETURN_ACCESS_DENIED ENCODE_ERROR (15) -//#define RETURN_NO_RESPONSE ENCODE_ERROR (16) -//#define RETURN_NO_MAPPING ENCODE_ERROR (17) -//#define RETURN_TIMEOUT ENCODE_ERROR (18) -//#define RETURN_NOT_STARTED ENCODE_ERROR (19) -//#define RETURN_ALREADY_STARTED ENCODE_ERROR (20) -//#define RETURN_ABORTED ENCODE_ERROR (21) -//#define RETURN_ICMP_ERROR ENCODE_ERROR (22) -//#define RETURN_TFTP_ERROR ENCODE_ERROR (23) -//#define RETURN_PROTOCOL_ERROR ENCODE_ERROR (24) -//#define RETURN_INCOMPATIBLE_VERSION ENCODE_ERROR (25) -//#define RETURN_SECURITY_VIOLATION ENCODE_ERROR (26) -//#define RETURN_CRC_ERROR ENCODE_ERROR (27) -//#define RETURN_END_OF_MEDIA ENCODE_ERROR (28) -//#define RETURN_END_OF_FILE ENCODE_ERROR (31) -// -//#define RETURN_WARN_UNKNOWN_GLYPH ENCODE_WARNING (1) -//#define RETURN_WARN_DELETE_FAILURE ENCODE_WARNING (2) -//#define RETURN_WARN_WRITE_FAILURE ENCODE_WARNING (3) -//#define RETURN_WARN_BUFFER_TOO_SMALL ENCODE_WARNING (4) -// -//// -//// Enumeration of EFI_STATUS. -//// -//#define EFI_SUCCESS RETURN_SUCCESS -//#define EFI_LOAD_ERROR RETURN_LOAD_ERROR -//#define EFI_INVALID_PARAMETER RETURN_INVALID_PARAMETER -//#define EFI_UNSUPPORTED RETURN_UNSUPPORTED -//#define EFI_BAD_BUFFER_SIZE RETURN_BAD_BUFFER_SIZE -//#define EFI_BUFFER_TOO_SMALL RETURN_BUFFER_TOO_SMALL -//#define EFI_NOT_READY RETURN_NOT_READY -//#define EFI_DEVICE_ERROR RETURN_DEVICE_ERROR -//#define EFI_WRITE_PROTECTED RETURN_WRITE_PROTECTED -//#define EFI_OUT_OF_RESOURCES RETURN_OUT_OF_RESOURCES -//#define EFI_VOLUME_CORRUPTED RETURN_VOLUME_CORRUPTED -//#define EFI_VOLUME_FULL RETURN_VOLUME_FULL -//#define EFI_NO_MEDIA RETURN_NO_MEDIA -//#define EFI_MEDIA_CHANGED RETURN_MEDIA_CHANGED -//#define EFI_NOT_FOUND RETURN_NOT_FOUND -//#define EFI_ACCESS_DENIED RETURN_ACCESS_DENIED -//#define EFI_NO_RESPONSE RETURN_NO_RESPONSE -//#define EFI_NO_MAPPING RETURN_NO_MAPPING -//#define EFI_TIMEOUT RETURN_TIMEOUT -//#define EFI_NOT_STARTED RETURN_NOT_STARTED -//#define EFI_ALREADY_STARTED RETURN_ALREADY_STARTED -//#define EFI_ABORTED RETURN_ABORTED -//#define EFI_ICMP_ERROR RETURN_ICMP_ERROR -//#define EFI_TFTP_ERROR RETURN_TFTP_ERROR -//#define EFI_PROTOCOL_ERROR RETURN_PROTOCOL_ERROR -//#define EFI_INCOMPATIBLE_VERSION RETURN_INCOMPATIBLE_VERSION -//#define EFI_SECURITY_VIOLATION RETURN_SECURITY_VIOLATION -//#define EFI_CRC_ERROR RETURN_CRC_ERROR -//#define EFI_END_OF_MEDIA RETURN_END_OF_MEDIA -//#define EFI_END_OF_FILE RETURN_END_OF_FILE -// -//#define EFI_WARN_UNKNOWN_GLYPH RETURN_WARN_UNKNOWN_GLYPH -//#define EFI_WARN_DELETE_FAILURE RETURN_WARN_DELETE_FAILURE -//#define EFI_WARN_WRITE_FAILURE RETURN_WARN_WRITE_FAILURE -//#define EFI_WARN_BUFFER_TOO_SMALL RETURN_WARN_BUFFER_TOO_SMALL -// -//#define RETURN_ERROR(StatusCode) (((INTN)(RETURN_STATUS)(StatusCode)) < 0) -//#define EFI_ERROR(A) RETURN_ERROR(A) -// -// -//#define OPTIONAL -//#define ASSERT(x) -// -//#ifdef _MSC_VER -//#define __typeof__(x) decltype(x) -//#endif - - -#endif /* Uefi_h */ diff --git a/Xcode/CloverX64TestNewParser/config-small.plist b/Xcode/CloverX64TestNewParser/config-small.plist new file mode 100644 index 000000000..0a53cffcc --- /dev/null +++ b/Xcode/CloverX64TestNewParser/config-small.plist @@ -0,0 +1,9 @@ + + + + + SMBIOS + + + + diff --git a/Xcode/CloverX64TestNewParser/config-test1.plist b/Xcode/CloverX64TestNewParser/config-test1.plist index 6469eeb7b..8eef8d8e6 100644 --- a/Xcode/CloverX64TestNewParser/config-test1.plist +++ b/Xcode/CloverX64TestNewParser/config-test1.plist @@ -81,7 +81,7 @@ Comment - ACPI1 + ACPI1 Disabled Find @@ -211,13 +211,30 @@ No #smartUPS - RenameDevices + #RenameDevices - aa + _SBZZZ.PCI0.RP02.PXSX bb c + RenameDevices + + + _SB.PCI0.RP05.PXSX + UPSB + _SB.PCI0.RP05.PXSY + UPSY + + + _SB.PCI0.RP05.UPSB.DSB1.NHI0 + UPS0 + + + _SB.PCI0.RP03.PXSX + BRG3 + + Boot @@ -315,7 +332,7 @@ Properties - !Properties_key1 + #Properties_key1 pci-aspm-default 0 @@ -356,7 +373,7 @@ Test2Value2 - Arbitrary + #Arbitrary Comment @@ -778,6 +795,8 @@ 0x0306D0 ForceKextsToLoad + + \ ForceKext KernelLapic @@ -896,20 +915,10 @@ Comment Enable TRIM for SSD - Disabled - Find - - AEFQUExFIFNTRAA= - - InfoPlistPatch - - Name - com.apple.iokit.IOAHCIBlockStorage + 01 Replace - - AAAAAAAAAAAAAAA= - + 02 Comment @@ -1477,6 +1486,8 @@ SMBIOS + SmbiosVersion + 36 BiosReleaseDate 08/08/17 BiosVendor @@ -1547,9 +1558,25 @@ Vendor v2 + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 8192 + Slot + 4 + #Type + DDR2 + Vendor + v2 + SlotCount - 4 + 8 Mobile @@ -1561,6 +1588,10 @@ W89G91VFDH2G Slots + + Device + HDMI + Device NVidia @@ -1576,6 +1607,10 @@ F1AB23C0-C35A-473E-BDB7-455C3A6271E8 Version 1.0 + Trust + + MemoryRank + 2 SystemParameters diff --git a/Xcode/CloverX64TestNewParser/config.plist b/Xcode/CloverX64TestNewParser/config.plist new file mode 100644 index 000000000..8eef8d8e6 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/config.plist @@ -0,0 +1,1723 @@ + + + + + ACPI + + AutoMerge + + DSDT + + Debug + + Fixes + + #AddDTGP_0001 + + AddDTGP_0001 + + AddHDMI_8000000 + + AddIMEI_80000 + + AddMCHC_0008 + + AddPNLF_1000000 + + DeleteUnused_400000 + + FIX_ACST_4000000 + + FIX_ADP1_800000 + + FIX_INTELGFX_100000 + + FIX_RTC_20000 + + FIX_S3D_2000000 + + FIX_TMR_40000 + + FIX_WAK_200000 + + FakeLPC_0020 + + FixAirport_4000 + + FixDarwin + + FixDarwin7_10000 + + FixDisplay + + FixFirewire_0800 + + FixHDA_8000 + + FixHPET_0010 + + FixHeaders_20000000 + + FixIDE_0200 + + FixIPIC_0040 + + FixLAN_2000 + + FixRegions_10000000 + + FixSATA_0400 + + FixSBUS_0080 + + FixShutdown_0004 + + FixUSB_1000 + + + Name + aa + Patches + + + Comment + ACPI1 + Disabled + + Find + + AA== + + Replace + + AQ== + + + + Comment + ACPI2 + Disabled + + Find + + Ag== + + Replace + + Aw== + + + + Comment + change EHC1 to EH01 + Disabled + + Find + + RUhDMQ== + + Replace + + RUgwMQ== + + + + ReuseFFFF + + Rtc8Allowed + + SuspendOverride + + + DisableASPM + + DisabledAML + + aa + bb + #bb + cc + + DropTables + + + Signature + SSDT + TableId + CpuPm + Length + 12 + DropForAllOS + yes + + + HaltEnabler + + PatchAPIC + + ResetAddress + 0 + ResetValue + 02 + SSDT + + C3Latency + 0xd + DoubleFirstState + + DropOem + + EnableC2 + + EnableC4 + + EnableC6 + + EnableC7 + + #Generate + + CStates + + PStates + + + Generate + + CStates + + PStates + + + MaxMultiplier + 12 + MinMultiplier + 11 + PLimitDict + 2 + PluginType + 1 + UnderVoltStep + 5 + UseSystemIO + + + SortedOrder + + dd + cc + + smartUPS + No + #smartUPS + + #RenameDevices + + _SBZZZ.PCI0.RP02.PXSX + bb + c + + + RenameDevices + + + _SB.PCI0.RP05.PXSX + UPSB + _SB.PCI0.RP05.PXSY + UPSY + + + _SB.PCI0.RP05.UPSB.DSB1.NHI0 + UPS0 + + + _SB.PCI0.RP03.PXSX + BRG3 + + + + Boot + + Arguments + -v arch=i386 slide=0 dart=0 -xcpm darkwake=1 npci=0x2000 nv_disable=1 cpus=1 rootless=0 debug=0x100 aa + BlackList + + hh + + CustomLogo + Apple + Debug + + DefaultLoader + ii + DefaultVolume + LastBootedVolume + DisableCloverHotkeys + + HibernationFixup + + Legacy + LegacyBiosDefault + LegacyBiosDefaultEntry + 12 + NeverDoRecovery + + NeverHibernate + + NoEarlyProgress + + Policy + Allow + Secure + + SignatureFixup + + SkipHibernateTimeout + + StrictHibernate + + Timeout + -1 + WhiteList + + ff + gg + + XMPDetection + 1 + + BootGraphics + + DefaultBackgroundColor + 0xF1F1F1 + EFILoginHiDPI + 2 + UIScale + 4 + flagstate + 3 + + CPU + + BusSpeedkHz + 800 + C2 + + #C4 + + C6 + + FrequencyMHz + 2000 + HWPEnable + + HWPValue + 0x7 + Latency + 0x3 + QEMU + + QPI + 4 + TDP + 6 + TurboDisable + + Type + 0x5 + UseARTFrequency + + + Devices + + Properties + + #Properties_key1 + + pci-aspm-default + 0 + AAPL,GfxYTile + + AQAAAA== + + AAPL,ig-platform-id + + AAAbWQ== + + AAPL,slot-name + Internal@0,2,0 + device-id + + G1kAAA== + + + Test2 + + Test2Key1 + AQAAAA== + Test2Key2 + Test2Value2 + + !PrimaryGPU + + TestPrimaryGPU + AQAAAA== + Test2Key2 + Test2Value2 + + SecondaryGPU + + Test2SecondaryGPU + AQAAAA== + Test2Key2 + Test2Value2 + + + #Arbitrary + + + Comment + C1 + PciAddr + 00:00.01 + CustomProperties + + + Disabled + + Key + ll + Value + mm + + + Disabled + + Key + nn + Value + 1 + + + Disabled + + Key + oo + Value + + Ag== + + + + + + AddProperties + + + Device + SATA + Disabled + + Key + 10 + Value + 11 + + + AirportBridgeDeviceName + airp + Audio + + AFGLowPowerState + + Inject + 0x11 + ResetHDA + + + DisableFunctions + 0x18F6 + FakeID + + ATI + 0x22221002 + IMEI + 0x22221002 + IntelGFX + 0x22221002 + LAN + 0x22221002 + NVidia + 0x22221002 + SATA + 0x22221002 + WIFI + 0x22221002 + XHCI + 0x22221002 + + ForceHPET + + Inject + + IntelMaxValue + 0x710 + NoDefaultProperties + + SetIntelBacklight + + SetIntelMaxBacklight + + USB + + AddClockID + + FixOwnership + + HighCurrent + + Inject + + + UseIntelHDMI + + + DisableDrivers + + Ps2KeyboardDxe + OsxAptioFixDrv + + + GUI + + EmbeddedThemeType + Dark + ConsoleMode + Max + Mouse + + DoubleClickTime + 501 + Enabled + + Mirror + + Speed + 5 + + Custom + + Entries + + + AddArguments + addarg + #Arguments + arg + BootBgColor + bootbgcolor + CustomLogo + Apple + Disabled + + DriveImage + driveimage + FullTitle + title + Hidden + Always + Hotkey + H + Image + image + Path + path + Settings + settings + SubEntries + + + AddArguments + arg2 + FullTitle + title111 + + + AddArguments + arg3 + Title + title2 + + + Arguments + arg4 + FullTitle + title3 + + + AddArguments + arg5 + Title + title4 + + + Type + Oldest + Volume + v1 + VolumeType + Internal + + + Legacy + + + Disabled + + FullTitle + title + Hidden + + Hotkey + I + Type + Windows + Volume + v2 + + + Tool + + + Arguments + b + Disabled + + Hidden + + Hotkey + b + Path + path + Title + title + Volume + tool1 + + + + CustomIcons + + Hide + + sdfsdfdf + sdfsfdf + + Language + es + Scan + + Entries + + Tool + + Linux + + Legacy + + Kernel + + + ScreenResolution + 1366x768 + ShowOptimus + + TextOnly + + Theme + theme + + Graphics + + ATI + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + IOPCIPrimaryMatch + 0x1002888 + IOPCISubDevId + 0x106B + LoadVBios + + Model + cc + VRAM + 2000 + VideoPorts + 3 + + + NVIDIA + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + aa + VRAM + 1000 + VideoPorts + 1 + + + IOPCIPrimaryMatch + 0x10DE999 + IOPCISubDevId + 0x106B + LoadVBios + + Model + bb + VRAM + 1000 + VideoPorts + 2 + + + BootDisplay + 12 + DualLink + 1 + EDID + + Custom + AP///////wBMo0cwAAAAAAAUAQOAHBB46h2FkVZZjyYYUFQAAAABAQEBAQEBAQEBAQEBAQEBOB1W1FAAFjAwICUAFZwQAAAZAAAADwAAAAAAAAAAACXZBmoAAAAA/gBTQU1TVU5HCiBMo0FUAAAA/gBMVE4xMjVBVDAxNDAxAF0= + Inject + + ProductID + 0x9777 + VendorID + 0x1007 + + FBName + Exmoor + Inject + + LoadVBios + + NVCAP + 0304 + NvidiaGeneric + + NvidiaNoEFI + + NvidiaSingle + + PatchVBios + + PatchVBiosBytes + + + Find + + AwQF + + Replace + + BgcI + + + + VRAM + 1500 + VideoPorts + 2 + display-cfg + 04 + ig-platform-id + 0x59230000 + + KernelAndKextPatches + + ATIConnectorsController + ATICtl + ATIConnectorsData + 111213 + ATIConnectorsPatch + 141516 + AppleIntelCPUPM + + AppleRTC + + BootPatches + + + Comment + c3 + Disabled + + Find + + MTI= + + MatchBuild + 10.12.6 + MatchOS + 10.12 + Replace + + MzQ= + + + + Debug + + DellSMBIOSPatch + + FakeCPUID + 0x0306D0 + ForceKextsToLoad + + + \ + ForceKext + + KernelLapic + + KernelPm + + KernelToPatch + + + #Comment + Disable panic kext logging on 10.14 Release kernel + Disabled + + Find + + igKEwHRC + + MaskFind + + //////// + + MaskReplace + + AAAAAP8A + + MatchOS + 10.14 + Replace + + igKEwOtC + + + + Comment + Disable panic kext logging on 10.13 Release kernel + Disabled + + Find + + igKEwHRE + + MatchOS + 10.13 + Replace + + igKEwOtE + + + + Comment + Lapic panic patch example + Disabled + + Find + + 6AAA//+DAAAAAAAA + + MaskFind + + /wAA////AAAAAP// + + MaskReplace + + /wAA//////////// + + MaskStart + + /////wA= + + MatchOS + All + RangeFind + 200 + Replace + + 6AAA//8xwJCQkJCQ + + StartPattern + + ACnHeAAx241H+oM= + + + + Comment + Symbolic patch example got lapic panic + Disabled + + Find + + 6AAA//+DAAAAAAAA + + MaskFind + + /wAA////AAAAAP// + + MaskReplace + + /wAA//////////// + + MatchOS + All + Procedure + _lapic_interrupt + RangeFind + 200 + Replace + + 6AAA//8xwJCQkJCQ + + + + KernelXCPM + + KextsToPatch + + + Comment + Enable TRIM for SSD + Find + 01 + Replace + 02 + + + Comment + External icons patch + Disabled + + Find + + RXh0ZXJuYWw= + + InfoPlistPatch + + MatchOS + 10.11.x,10.12.x,10.13.x,10.14.x,10.15.x + Name + com.apple.driver.AppleAHCIPort + Replace + + SW50ZXJuYWw= + + + + Comment + framebuffer4K + Disabled + + Find + + AwAiDQADAwMAAAACAAAwAQ== + + InfoPlistPatch + + Name + AppleIntelFramebufferAzul + Replace + + AwAiDQADAwMAAAAEAAAAAw== + + + + Comment + Disable NVDARequiredOS + Disabled + + Find + + TlZEQVJlcXVpcmVkT1MA + + InfoPlistPatch + + Name + NVDAStartupWeb + Replace + + AAAAAAAAAAAAAAAAAAAA + + + + Comment + Disable board-id check to prevent no signal + Disabled + + Find + + SI01qjQ= + + InfoPlistPatch + + Name + com.apple.driver.AppleGraphicsDevicePolicy + Replace + + Dx+AAAA= + + + + Comment + Prevent AGDP from loading + Disabled + + Find + + ugUAAAA= + + InfoPlistPatch + + MatchOS + 10.15.x + Name + com.apple.driver.AppleGraphicsDevicePolicy + Replace + + ugAAAAA= + + + + Comment + Atheros Locale Fix + Disabled + + Find + + g/g3 + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AirPortAtheros40 + Replace + + g/gh + + + + Comment + IONVMeFamily IONameMatch + Disabled + + Find + + PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#1 (Sierra) + Disabled + + Find + + ibPoAgAAweAMBQAQAACJgw== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + ibPoAgAAweAJBQAQAACJgw== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#2 (Sierra) + Disabled + + Find + + D7aMiIIAAACD+QwPhTIBAA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + D7aMiIIAAACD+QkPhTIBAA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#3 (Sierra) + Disabled + + Find + + AMeDpAAAAAAQAABIi0gISA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + AMeDpAAAAAACAABIi0gISA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#4 (Sierra) + Disabled + + Find + + SYnGTYX2dGFBwecMSWP/vg== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + SYnGTYX2dGFBwecJSWP/vg== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#5 (Sierra) + Disabled + + Find + + hv8PAABIwegMD7cPgeH/Dw== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + hv8PAABIwegJD7cPgeH/Dw== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#6_7 (Sierra) + Disabled + + Find + + icGB4f8PAABIAdFIgfn/DwAAdzs= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + icGB4f8BAABIAdFIgfn/AQAAdzs= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#8 (Sierra) + Disabled + + Find + + SYHF/w8AAEnB7QxJiwQkSA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + SYHF/w8AAEnB7QlJiwQkSA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#9_10 (Sierra) + Disabled + + Find + + BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIB + AABBvAAQAABJKfQ= + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIB + AABBvAACAABJKfQ= + + + + Comment + IONVMeFamily Pike R. Alpha Patch#11 (Sierra) + Disabled + + Find + + AABJiY4iAQAAugAQAABIKQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + AABJiY4iAQAAugACAABIKQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#12 (Sierra) + Disabled + + Find + + yAAAAEkp17gAEAAATYskJA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + yAAAAEkp17gAAgAATYskJA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#13 (Sierra) + Disabled + + Find + + 4b+AQBUGTYnWugAQAABFMQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + 4b+AQBUGTYnWugACAABFMQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#14 (Sierra) + Disabled + + Find + + iWTY+EmBxAAQAABJgccA8A== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + iWTY+EmBxAACAABJgccA8A== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#15 (Sierra) + Disabled + + Find + + Bf8PAABIwegMZvfB/w8PlQ== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + Bf8PAABIwegJZvfB/w8PlQ== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#16 (Sierra) + Disabled + + Find + + weIIQQ+2wcHgDEQJ0EQJwA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + weIIQQ+2wcHgCUQJ0EQJwA== + + + + Comment + IONVMeFamily Pike R. Alpha Patch#17 (Sierra) + Disabled + + Find + + RYTJD5XAD7bAweAMRAnYRA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + IONVMeFamily + Replace + + RYTJD5XAD7bAweAJRAnYRA== + + + + Comment + change 15 port limit to 26 in XHCI kext (100-series) + Disabled + + Find + + g32MEA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AppleUSBXHCIPCI + Replace + + g32MGw== + + + + Comment + change 15 port limit to 26 in XHCI kext (100-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.x + Name + AppleUSBXHCISPT + Replace + + g710////Gw== + + + + Comment + 15 to 20 port limit (9-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.6 + Name + AppleUSBXHCIPCI + Replace + + g710////FQ== + + + + Comment + 15 to 26 port limit (100-series) + Disabled + + Find + + g710////EA== + + InfoPlistPatch + + MatchOS + 10.12.6 + Name + AppleUSBXHCIPCI + Replace + + g710////Gw== + + + + Comment + USB 10.13.6 by PMHeart + Disabled + + Find + + g32IDw+DpwQAAA== + + InfoPlistPatch + + MatchOS + 10.13.6 + Name + com.apple.driver.usb.AppleUSBXHCI + Replace + + g32ID5CQkJCQkA== + + + + + RtVariables + + BooterConfig + 0x1 + CsrActiveConfig + 0x2 + MLB + 12345678901234567 + ROM + + MBRwYnHo + + Block + + + Comment + c1 + Disabled + false + Guid + 522e186f-964a-4ac7-9299-7a9f32a2473e + Name + name1 + + + + SMBIOS + + SmbiosVersion + 36 + BiosReleaseDate + 08/08/17 + BiosVendor + Apple Inc. + BiosVersion + MBP81.88Z.004D.B00.1708080655 + Board-ID + Mac-94245B3640C91C81 + BoardManufacturer + Apple Inc. + BoardSerialNumber + W89135306OPDM6CAD + BoardType + 10 + BoardVersion + 1.0 + ChassisAssetTag + MacBook-Aluminum + ChassisManufacturer + Apple Inc. + ChassisType + 0x0A + Family + MacBook Pro + FirmwareFeatures + 0xC00DE137 + FirmwareFeaturesMask + 0xFF1FFF3F + LocationInChassis + Part Component + Manufacturer + Apple Inc. + Memory + + Channels + 2 + Modules + + + Frequency + 333 + Part + Part1 + Serial + Ser1 + Size + 2048 + Slot + 1 + Type + DDR + Vendor + v1 + + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 4096 + Slot + 2 + Type + DDR2 + Vendor + v2 + + + Frequency + 366 + Part + Part2 + Serial + Ser2 + Size + 8192 + Slot + 4 + #Type + DDR2 + Vendor + v2 + + + SlotCount + 8 + + Mobile + + PlatformFeature + 0xFFFF + ProductName + MacBookPro8,1 + SerialNumber + W89G91VFDH2G + Slots + + + Device + HDMI + + + Device + NVidia + ID + 1 + Name + APPL,sdfsdf + Type + 1 + + + SmUUID + F1AB23C0-C35A-473E-BDB7-455C3A6271E8 + Version + 1.0 + Trust + + MemoryRank + 2 + + SystemParameters + + BacklightLevel + 2 + CustomUUID + 2926A57C-FF0E-4A64-980F-23483BD41969 + InjectKexts + Yes + InjectSystemID + + NoCaches + + NvidiaWeb + + + Quirks + + AvoidRuntimeDefrag + + DevirtualiseMmio + + DisableSingleUser + + DisableVariableWrite + + DiscardHibernateMap + + EnableSafeModeSlide + + EnableWriteUnprotector + + ForceExitBootServices + + MmioWhitelist + + + Comment + c1 + Address + 12345678 + Enabled + + + + Comment + + Address + 12345678 + Enabled + + + + #Comment + c1 + Address + abcde + Enabled + + + + ProtectMemoryRegions + + ProtectSecureBoot + + ProtectUefiServices + + ProvideConsoleGopEnable + + ProvideCustomSlide + + ProvideMaxSlide + 0 + RebuildAppleMemoryMap + + SetupVirtualMap + + SignalAppleOS + + SyncRuntimePermissions + + + + FuzzyMatch + + KernelCache + Auto + AppleXcpmExtraMsrs + + AppleXcpmForceBoost + + DisableIoMapper + + DisableLinkeditJettison + + DummyPowerManagement + + ExternalDiskIcons + + IncreasePciBarSize + + PowerTimeoutKernelPanic + + ThirdPartyDrives + + XhciPortLimit + + + + diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignField.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignField.cpp new file mode 100644 index 000000000..b1fbe9a22 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignField.cpp @@ -0,0 +1,217 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettings.h" +#include +#include "../../include/OSFlags.h" + +uint64_t AssignField_nbError = 0; +XString8 AssignField_firstErrorField; + + +bool AssignField(bool& SETTINGS_DATA_value, bool newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(undefinable_bool& SETTINGS_DATA_value, undefinable_bool newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +//bool AssignField(unsigned char& SETTINGS_DATA_value, unsigned char newValue, const XString8& label) +//{ +// SETTINGS_DATA_value = newValue; +// return true; +//} + +bool AssignField(uint8_t& SETTINGS_DATA_value, uint8_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(int8_t& SETTINGS_DATA_value, int8_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(uint16_t& SETTINGS_DATA_value, uint16_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(undefinable_uint16& SETTINGS_DATA_value, undefinable_uint16 newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(int16_t& SETTINGS_DATA_value, int16_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(uint32_t& SETTINGS_DATA_value, uint32_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(undefinable_uint32& SETTINGS_DATA_value, undefinable_uint32 newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(int32_t& SETTINGS_DATA_value, int32_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + + +bool AssignField(uint64_t& SETTINGS_DATA_value, uint64_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(int64_t& SETTINGS_DATA_value, int64_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(size_t& SETTINGS_DATA_value, size_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(wchar_t& SETTINGS_DATA_value, wchar_t newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XString8& SETTINGS_DATA_value, const XString8& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XStringW& SETTINGS_DATA_value, const XStringW& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(undefinable_XString8& SETTINGS_DATA_value, const undefinable_XString8& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XBuffer& SETTINGS_DATA_value, const XBuffer& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XBuffer& SETTINGS_DATA_value, const XmlData& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue.value(); + return true; +} + +bool AssignField(XString8Array& SETTINGS_DATA_value, const XString8Array& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XString8Array& SETTINGS_DATA_value, const ConstXString8Array& newValue, const XString8& label) +{ + SETTINGS_DATA_value.import(newValue); + return true; +} + +bool AssignField(XStringWArray& SETTINGS_DATA_value, const XStringWArray& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(XStringWArray& SETTINGS_DATA_value, const ConstXStringWArray& newValue, const XString8& label) +{ +// SETTINGS_DATA_value.import(newValue); + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(ConstXStringWArray& SETTINGS_DATA_value, const ConstXStringWArray& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(EFI_GRAPHICS_OUTPUT_BLT_PIXEL& SETTINGS_DATA_value, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(MISC_SLOT_TYPE& SETTINGS_DATA_value, MISC_SLOT_TYPE newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(TAG_TYPE& SETTINGS_DATA_value, TAG_TYPE newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + +bool AssignField(LanguageCode& SETTINGS_DATA_value, LanguageCode newValue, const XString8& label) +{ + SETTINGS_DATA_value = newValue; + return true; +} + + +// +//bool AssignField(void*& SETTINGS_DATA_value, size_t& oldSize, const void* newValue, size_t newSize, const XString8& label) +//{ +// SETTINGS_DATA_value = malloc(newSize); +// memcpy(SETTINGS_DATA_value, newValue, newSize); +// oldSize = newSize; +// return true; +//} +//// +// +//bool AssignField(uint8_t*& SETTINGS_DATA_value, size_t& oldSize, const uint8_t* newValue, size_t newSize, const XString8& label) +//{ +// return AssignField((void*&)SETTINGS_DATA_value, (size_t&)oldSize, (void*)newValue, newSize, label); +//} +// +//bool AssignField(uint8_t SETTINGS_DATA_value[], size_t oldSize, const uint8_t* newValue, size_t newSize, const XString8& label) +//{ +// if ( oldSize == newSize) { +// memcpy(SETTINGS_DATA_value, newValue, newSize); +// }else{ +// panic("------------> AssignField bug\n"); +// } +// return true; +//} +// diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignField.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignField.h new file mode 100644 index 000000000..a436a7a82 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignField.h @@ -0,0 +1,61 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignFIELD_H_ +#define _CONFIGPLIST_AssignFIELD_H_ + +//#include "../../" + +extern "C" { + #include +} + +extern uint64_t AssignField_nbError; +extern XString8 AssignField_firstErrorField; + +bool AssignFieldFailed(const XString8& msg); +bool AssignFieldFailed(const XString8& field, const XString8& SETTINGS_DATA_value, const XString8& newValue); + +bool AssignField(bool& SETTINGS_DATA_value, bool newValue, const XString8& label); +bool AssignField(undefinable_bool& SETTINGS_DATA_value, undefinable_bool newValue, const XString8& label); +bool AssignField(uint8_t& SETTINGS_DATA_value, uint8_t newValue, const XString8& label); +bool AssignField(int8_t& SETTINGS_DATA_value, int8_t newValue, const XString8& label); +bool AssignField(uint16_t& SETTINGS_DATA_value, uint16_t newValue, const XString8& label); +bool AssignField(undefinable_uint16& SETTINGS_DATA_value, undefinable_uint16 newValue, const XString8& label); +bool AssignField(int16_t& SETTINGS_DATA_value, int16_t newValue, const XString8& label); +bool AssignField(uint32_t& SETTINGS_DATA_value, uint32_t newValue, const XString8& label); +bool AssignField(undefinable_uint32& SETTINGS_DATA_value, undefinable_uint32 newValue, const XString8& label); +bool AssignField(int32_t& SETTINGS_DATA_value, int32_t newValue, const XString8& label); +bool AssignField(uint64_t& SETTINGS_DATA_value, uint64_t newValue, const XString8& label); +bool AssignField(int64_t& SETTINGS_DATA_value, int64_t newValue, const XString8& label); +bool AssignField(size_t& SETTINGS_DATA_value, size_t newValue, const XString8& label); +bool AssignField(wchar_t& SETTINGS_DATA_value, wchar_t newValue, const XString8& label); +bool AssignField(XString8& SETTINGS_DATA_value, const XString8& newValue, const XString8& label); +bool AssignField(XStringW& SETTINGS_DATA_value, const XStringW& newValue, const XString8& label); +bool AssignField(undefinable_XString8& SETTINGS_DATA_value, const undefinable_XString8& newValue, const XString8& label); +bool AssignField(XBuffer& SETTINGS_DATA_value, const XBuffer& newValue, const XString8& label); +bool AssignField(XBuffer& SETTINGS_DATA_value, const XmlData& newValue, const XString8& label); +bool AssignField(XString8Array& SETTINGS_DATA_value, const XString8Array& newValue, const XString8& label); +bool AssignField(XString8Array& SETTINGS_DATA_value, const ConstXString8Array& newValue, const XString8& label); +bool AssignField(XStringWArray& SETTINGS_DATA_value, const XStringWArray& newValue, const XString8& label); +bool AssignField(XStringWArray& SETTINGS_DATA_value, const ConstXStringWArray& newValue, const XString8& label); +bool AssignField(EFI_GRAPHICS_OUTPUT_BLT_PIXEL& SETTINGS_DATA_value, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& newValue, const XString8& label); + +bool AssignField(MISC_SLOT_TYPE& SETTINGS_DATA_value, MISC_SLOT_TYPE newValue, const XString8& label); +bool AssignField(TAG_TYPE& SETTINGS_DATA_value, TAG_TYPE newValue, const XString8& label); +bool AssignField(LanguageCode& SETTINGS_DATA_value, LanguageCode newValue, const XString8& label); + +bool AssignField(void*& SETTINGS_DATA_value, size_t& oldSize, const void* newValue, size_t newSize, const XString8& label); +//bool AssignField(void*& SETTINGS_DATA_value, size_t oldSize, const void* newValue, size_t newSize, const XString8& label); +bool AssignField(uint8_t*& SETTINGS_DATA_value, size_t& oldSize, const uint8_t* newValue, size_t newSize, const XString8& label); +bool AssignField(uint8_t SETTINGS_DATA_value[], size_t oldSize, const uint8_t* newValue, size_t newSize, const XString8& label); + + +#define Assign(x) AssignField(oldS.x, newS.dget##x(), S8Printf("%s.%s", label.c_str(), STRINGIZE(x))) +#define sizeAssign(x) true + +#endif /* _CONFIGPLIST_AssignFIELD_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.cpp new file mode 100644 index 000000000..5ac4cca00 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.cpp @@ -0,0 +1,56 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettings.h" +#include + +#include "AssignField.h" +#include "AssignSettingsBoot.h" +#include "AssignSettingsACPI.h" +#include "AssignSettingsGUI.h" +#include "AssignSettingsCPU.h" +#include "AssignSettingsSystemParameters.h" +#include "AssignSettingsKernelAndKextPatches.h" +#include "AssignSettingsGraphics.h" +#include "AssignSettingsDevices.h" +#include "AssignSettingsQuirks.h" +#include "AssignSettingsRtVariables.h" +#include "AssignSettingsSmbios.h" +#include "AssignSettingsBootGraphics.h" + + +uint64_t AssignOldNewSettings(SETTINGS_DATA& oldS, const ConfigPlistClass& newS, const SmbiosPlistClass& smbiosPlist, const XString8& label) +{ + AssignField_nbError = 0; + AssignField_firstErrorField.setEmpty(); + + AssignBoot("Boot"_XS8, oldS.Boot, newS.Boot); + AssignAcpi("ACPI"_XS8, oldS.ACPI, newS.ACPI); + AssignGUI("GUI"_XS8, oldS.GUI, newS.GUI); + AssignCPU("CPU"_XS8, oldS.CPU, newS.CPU); + AssignSystemParameters("CPU"_XS8, oldS.SystemParameters, newS.SystemParameters); + AssignKernelAndKextPatches("KernelAndKextPatches"_XS8, oldS.KernelAndKextPatches, newS.KernelAndKextPatches); + AssignGraphics("Graphics"_XS8, oldS.Graphics, newS.Graphics); + AssignField(oldS.DisabledDriverArray, newS.dgetDisabledDriverArray(), "DisabledDriverArray"_XS8); + AssignDevices("Devices"_XS8, oldS.Devices, newS.Devices); + AssignQuirks("Quirks"_XS8, oldS.Quirks, newS.Quirks); + AssignRtVariables("RtVariables"_XS8, oldS.RtVariables, newS.RtVariables); + AssignSmbios("Smbios"_XS8, oldS.Smbios, newS.getSMBIOS(), smbiosPlist); + AssignBootGraphics("BootGraphics"_XS8, oldS.BootGraphics, newS.BootGraphics); + + + if ( AssignField_nbError == 0 ) { +// DebugLog(2, "Great, new parsing give the same result\n"); +// PauseForKey(""_XSW); + return AssignField_nbError; + }else{ +// DebugLog(2, "New parsing gives %llu error(s)\n", nbError); +// PauseForKey(L""); + return AssignField_nbError; + } +} + diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.h new file mode 100644 index 000000000..309d17f05 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettings.h @@ -0,0 +1,19 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGS_H_ +#define _CONFIGPLIST_AssignSETTINGS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/SMBIOSPlist.h" + +uint64_t AssignOldNewSettings(SETTINGS_DATA& olDSettings, const ConfigPlistClass& configPlist, const SmbiosPlistClass& smbiosPlist, const XString8& label = ""_XS8); + + + +#endif /* _CONFIGPLIST_AssignSETTINGS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.cpp new file mode 100644 index 000000000..848dfac3e --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.cpp @@ -0,0 +1,131 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsACPI.h" +#include +#include "AssignField.h" + + +void AssignAcpi_ACPIDropTable(const XString8& label, SETTINGS_DATA::ACPIClass::ACPIDropTablesClass& oldS, const ConfigPlistClass::ACPI_Class::ACPI_DropTables_Class& newS) +{ + Assign(Signature); + Assign(TableId); + Assign(TabLength); + Assign(OtherOS); +} + +void AssignACPI_DropTableArray(const XString8 &label, XObjArray &oldS, const XmlArray &newS) { + if ( sizeAssign(size()) ) { + for ( size_t idx = 0 ; idx < newS.size() ; ++idx ) { + oldS.AddReference(new SETTINGS_DATA::ACPIClass::ACPIDropTablesClass(), true); + AssignAcpi_ACPIDropTable(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignAcpi_DSDT_DSDTPatch(const XString8& label, SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch& oldS, const ConfigPlistClass::ACPI_Class::DSDT_Class::ACPI_DSDT_Patch_Class& newS) +{ + Assign(Disabled); + Assign(PatchDsdtLabel); + Assign(PatchDsdtFind); + Assign(PatchDsdtReplace); + Assign(PatchDsdtTgt); + oldS.PatchDsdtMenuItem.BValue = !newS.dgetDisabled(); +} + +void AssignAcpi_DSDT(const XString8& label, SETTINGS_DATA::ACPIClass::DSDTClass& oldS, const ConfigPlistClass::ACPI_Class::DSDT_Class& newS) +{ + Assign(DsdtName); + Assign(DebugDSDT); + Assign(Rtc8Allowed); + Assign(PNLF_UID); + Assign(FixDsdt); + Assign(ReuseFFFF); + Assign(SuspendOverride); +// if ( AssignField(oldS.DSDTPatchArray.size(), newS.Patches.size(), S8Printf("%s.DSDTPatchArray.size()", label.c_str())) ) { + for ( size_t idx = 0 ; idx < newS.Patches.size() ; ++idx ) { + oldS.DSDTPatchArray.AddReference(new SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch(), true); + AssignAcpi_DSDT_DSDTPatch(S8Printf("%s.DSDTPatchArray[%zu]", label.c_str(), idx), oldS.DSDTPatchArray[idx], newS.Patches[idx]); + } +// } +} + +void AssignAcpi_SSDT_Generate(const XString8& label, SETTINGS_DATA::ACPIClass::SSDTClass::GenerateClass& oldS, const ConfigPlistClass::ACPI_Class::SSDT_Class::XmlUnionGenerate& newS) +{ + Assign(GeneratePStates); + Assign(GenerateCStates); + Assign(GenerateAPSN); + Assign(GenerateAPLF); + Assign(GeneratePluginType); +} + +void AssignAcpi_SSDT(const XString8& label, SETTINGS_DATA::ACPIClass::SSDTClass& oldS, const ConfigPlistClass::ACPI_Class::SSDT_Class& newS) +{ + Assign(DropSSDTSetting); + Assign(NoOemTableId); + Assign(NoDynamicExtract); + Assign(EnableISS); + Assign(EnableC7); + Assign(_EnableC6); + Assign(_EnableC4); + Assign(_EnableC2); + Assign(_C3Latency); + Assign(PLimitDict); + Assign(UnderVoltStep); + Assign(DoubleFirstState); + Assign(MinMultiplier); + Assign(MaxMultiplier); + Assign(PluginType); + AssignAcpi_SSDT_Generate(S8Printf("%s.Generate", label.c_str()), oldS.Generate, newS.Generate); +} + + +//---------------------------------------------------------------------------------------------------------- + +void AssignAcpi_ACPI_NAME(const XString8& label, ACPI_NAME& oldS, const XString8& newS) +{ + AssignField(oldS.Name, newS, S8Printf("%s.Name", label.c_str())); +} + +void AssignAcpi_ACPI_RENAME_DEVICE(const XString8& label, ACPI_RENAME_DEVICE& oldS, const XmlAddKey& newS) +{ + AssignAcpi_ACPI_NAME(S8Printf("%s.acpiName", label.c_str()), oldS.acpiName, newS.key().value()); + AssignField(oldS.renameTo, newS.value(), S8Printf("%s.renameTo", label.c_str())); +} + +void AssignACPI_ACPI_RENAME_DEVICEArray(const XString8 &label, XObjArray &oldS, const ConfigPlistClass::ACPI_Class::ACPI_RenamesDevices_Class& newS) +{ +// if ( AssignField(oldS.size(), newS.size(), S8Printf("%s size", label.c_str())) ) { + for ( size_t idx = 0 ; idx < newS.size() ; ++idx ) { + oldS.AddReference(new ACPI_RENAME_DEVICE(), true); + AssignAcpi_ACPI_RENAME_DEVICE(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.getAtIndex(idx)); + } +// } +} + + +//---------------------------------------------------------------------------------------------------------- + + +void AssignAcpi(const XString8& label, SETTINGS_DATA::ACPIClass& oldS, const ConfigPlistClass::ACPI_Class& newS) +{ + Assign(ResetAddr); + Assign(ResetVal); + Assign(SlpSmiEnable); + Assign(FixHeaders); + Assign(FixMCFG); + Assign(NoASPM); + Assign(smartUPS); + Assign(PatchNMI); + Assign(AutoMerge); + Assign(DisabledAML); + Assign(SortedACPI); + AssignACPI_ACPI_RENAME_DEVICEArray(S8Printf("%s.DeviceRename", label.c_str()), oldS.DeviceRename, newS.RenameDevices); + AssignACPI_DropTableArray(S8Printf("%s.ACPIDropTablesArray", label.c_str()), oldS.ACPIDropTablesArray, newS.ACPIDropTablesArray); + AssignAcpi_DSDT(S8Printf("%s.DSDT", label.c_str()), oldS.DSDT, newS.DSDT); + AssignAcpi_SSDT(S8Printf("%s.SSDT", label.c_str()), oldS.SSDT, newS.SSDT); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.h new file mode 100644 index 000000000..3bb2185fd --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsACPI.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSACPI_H_ +#define _CONFIGPLIST_AssignSETTINGSACPI_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignAcpi(const XString8& label, SETTINGS_DATA::ACPIClass& oldS, const ConfigPlistClass::ACPI_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSACPI_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.cpp new file mode 100644 index 000000000..541280838 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.cpp @@ -0,0 +1,42 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignBoot(const XString8& label, SETTINGS_DATA::BootClass& oldS, const ConfigPlistClass::Boot_Class& newS) +{ + Assign(Timeout); + Assign(SkipHibernateTimeout); + Assign(DisableCloverHotkeys); + Assign(BootArgs); + Assign(NeverDoRecovery); + Assign(LastBootedVolume); + Assign(DefaultVolume); + Assign(DefaultLoader); + Assign(DebugLog); + Assign(FastBoot); + Assign(NoEarlyProgress); + Assign(NeverHibernate); + Assign(StrictHibernate); + Assign(RtcHibernateAware); + Assign(HibernationFixup); + Assign(SignatureFixup); + Assign(SecureSetting); + Assign(SecureBootPolicy); + Assign(SecureBootWhiteList); + Assign(SecureBootBlackList); + Assign(XMPDetection); + AssignField(oldS.LegacyBoot, newS.dgetLegacyBoot(gFirmwareClover), S8Printf("%s.LegacyBoot", label.c_str())); +// Assign(LegacyBoot); + Assign(LegacyBiosDefaultEntry); + Assign(CustomLogoType); + Assign(CustomLogoAsXString8); + Assign(CustomLogoAsData); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.h new file mode 100644 index 000000000..b46aa8281 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBoot.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSBOOT_H_ +#define _CONFIGPLIST_AssignSETTINGSBOOT_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignBoot(const XString8& label, SETTINGS_DATA::BootClass& oldS, const ConfigPlistClass::Boot_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSBOOT_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.cpp new file mode 100644 index 000000000..e5b7adb23 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.cpp @@ -0,0 +1,19 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBootGraphics.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignBootGraphics(const XString8& label, SETTINGS_DATA::BootGraphicsClass& oldS, const ConfigPlistClass::BootGraphics_Class& newS) +{ + Assign(DefaultBackgroundColor); + Assign(UIScale); + Assign(EFILoginHiDPI); + oldS._flagstate = newS.dget_flagstate(); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.h new file mode 100644 index 000000000..244bf3d08 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsBootGraphics.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ +#define _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignBootGraphics(const XString8& label, SETTINGS_DATA::BootGraphicsClass& oldS, const ConfigPlistClass::BootGraphics_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.cpp new file mode 100644 index 000000000..0afa77837 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.cpp @@ -0,0 +1,31 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignCPU(const XString8& label, SETTINGS_DATA::CPUClass& oldS, const ConfigPlistClass::CPU_Class& newS) +{ + Assign(QPI); + Assign(CpuFreqMHz); + Assign(CpuType); + Assign(QEMU); + Assign(UseARTFreq); + Assign(BusSpeed); + Assign(UserChange); + Assign(SavingMode); + Assign(HWPEnable); + Assign(HWPValue); + Assign(TDP); + Assign(TurboDisabled); + Assign(_EnableC6); + Assign(_EnableC4); + Assign(_EnableC2); + Assign(_C3Latency); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.h new file mode 100644 index 000000000..e2456c254 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsCPU.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSCPU_H_ +#define _CONFIGPLIST_AssignSETTINGSCPU_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignCPU(const XString8& label, SETTINGS_DATA::CPUClass& oldS, const ConfigPlistClass::CPU_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSBOOT_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.cpp new file mode 100644 index 000000000..9ae93afc0 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.cpp @@ -0,0 +1,177 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignDevicesAudio(const XString8& label, SETTINGS_DATA::DevicesClass::AudioClass& oldS, const ConfigPlistClass::DevicesClass::Devices_Audio_Class& newS) +{ + Assign(ResetHDA); + Assign(HDAInjection); + Assign(HDALayoutId); + Assign(AFGLowPowerState); +} + + + +void AssignSimplePropertyClass(const XString8& label, SETTINGS_DATA::DevicesClass::SimplePropertyClass& oldS, const ConfigPlistClass::DevicesClass::SimplePropertyClass_Class& newS) +{ + Assign(Key); + Assign(Value); + Assign(ValueType); + AssignField(oldS.MenuItem.BValue, !newS.dgetDisabled(), S8Printf("%s.enabled", label.c_str())); +} + + +void AssignDevicesUSB(const XString8& label, SETTINGS_DATA::DevicesClass::USBClass& oldS, const ConfigPlistClass::DevicesClass::Devices_USB_Class& newS) +{ + Assign(USBInjection); + Assign(USBFixOwnership); + Assign(InjectClockID); + Assign(HighCurrent); + Assign(NameEH00); +// compare(NameXH00); +} + +void AssignDevicesFakeID(const XString8& label, SETTINGS_DATA::DevicesClass::FakeIDClass& oldS, const ConfigPlistClass::DevicesClass::Devices_FakeID_Class& newS) +{ + Assign(FakeATI); + Assign(FakeNVidia); + Assign(FakeIntel); + Assign(FakeLAN); + Assign(FakeWIFI); + Assign(FakeSATA); + Assign(FakeXHCI); + Assign(FakeIMEI); +} + +//--------------------------------------------- ArbProperties + + +void AssignArbitraryPropertyClassCustomPropertyArray(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ +// AssignDEV_ADDPROPERTY(label, oldS, newS); +// Assign(Device); +// Assign(Key); +// Assign(Value); + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size(); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignSimplePropertyClass(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignArbitraryPropertyClass(const XString8& label, SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass& oldS, const ConfigPlistClass::DevicesClass::Devices_Arbitrary_Class& newS) +{ + Assign(Device); + Assign(Label); + AssignArbitraryPropertyClassCustomPropertyArray(S8Printf("%s.CustomPropertyArray", label.c_str()), oldS.CustomPropertyArray, newS.CustomProperties); +} + +void AssignArbitraryPropertyClassArray(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size(); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignArbitraryPropertyClass(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + + +//--------------------------------------------- AddProperties + +//void AssignProperties(const XString8& label, SETTINGS_DATA::DevicesClass::PropertiesClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion& newS) +//{ +// Assign(cDeviceProperties); +// AssignPropertiesAsDict(S8Printf("%s.newProperties", label.c_str()), oldS.PropertyArray, newS.PropertiesAsDict); +//} + +void AssignAddPropertyDict(const XString8& label, SETTINGS_DATA::DevicesClass::AddPropertyClass& oldS, const ConfigPlistClass::DevicesClass::Devices_AddProperties_Dict_Class& newS) +{ + Assign(Device); + Assign(Key); + Assign(Value); + Assign(ValueType); + AssignField(oldS.MenuItem.BValue, !newS.dgetDisabled(), S8Printf("%s.enabled", label.c_str())); +} + +void AssignAddPropertiesClassAddPropertyAsArray(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size(); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignAddPropertyDict(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +//--------------------------------------------- Properties + +void AssignPropertiesAsDictElementPropertiesArray(const XString8& label, SETTINGS_DATA::DevicesClass::SimplePropertyClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion::Property& newS) +{ + Assign(Key); + Assign(Value); + Assign(ValueType); + AssignField(oldS.MenuItem.BValue, newS.dgetBValue(), S8Printf("%s.enabled", label.c_str())); +} + +void AssignPropertiesAsDictElement(const XString8& label, SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion::Properties4DeviceClass& newS) +{ + Assign(Enabled); + Assign(DevicePathAsString); +// if ( AssignField(oldS.propertiesArray.size(), newS.valueArray().size(), S8Printf("%s size", label.c_str()) ) ) { + for ( size_t idx = 0; idx < newS.valueArray().size(); ++idx ) + { + oldS.propertiesArray.AddReference(new (remove_ref(decltype(oldS.propertiesArray))::type)(), true); + AssignPropertiesAsDictElementPropertiesArray(S8Printf("%s[%zu]", label.c_str(), idx), oldS.propertiesArray[idx], newS.valueArray()[idx]); + } +// } +} + +void AssignPropertiesClass(const XString8& label, SETTINGS_DATA::DevicesClass::PropertiesClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion& newS) +{ + Assign(propertiesAsString); + if ( newS.PropertiesAsDict.isDefined() ) { + for ( size_t idx = 0; idx < newS.PropertiesAsDict.valueArray().size(); ++idx ) + { + oldS.PropertyArray.AddReference(new (remove_ref(decltype(oldS.PropertyArray))::type)(), true); + AssignPropertiesAsDictElement(S8Printf("%s[%zu]", label.c_str(), idx), oldS.PropertyArray[idx], newS.PropertiesAsDict.valueArray()[idx]); + } + } +} + +//--------------------------------------------- + +void AssignDevices(const XString8& label, SETTINGS_DATA::DevicesClass& oldS, const ConfigPlistClass::DevicesClass& newS) +{ + Assign(StringInjector); + Assign(IntelMaxBacklight); + Assign(IntelBacklight); + Assign(IntelMaxValue); + Assign(LANInjection); + Assign(HDMIInjection); + Assign(NoDefaultProperties); + Assign(UseIntelHDMI); + Assign(ForceHPET); + Assign(DisableFunctions); + Assign(AirportBridgeDeviceName); + AssignDevicesAudio(S8Printf("%s.Audio", label.c_str()), oldS.Audio, newS.Audio); + AssignDevicesUSB(S8Printf("%s.USB", label.c_str()), oldS.USB, newS.USB); + AssignDevicesFakeID(S8Printf("%s.FakeID", label.c_str()), oldS.FakeID, newS.FakeID); + + AssignAddPropertiesClassAddPropertyAsArray(S8Printf("%s.AddPropertyArray", label.c_str()), oldS.AddPropertyArray, newS.AddProperties); + AssignArbitraryPropertyClassArray(S8Printf("%s.ArbitraryArray", label.c_str()), oldS.ArbitraryArray, newS.Arbitrary); + AssignPropertiesClass(S8Printf("%s.Properties", label.c_str()), oldS.Properties, newS.Properties); + +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.h new file mode 100644 index 000000000..6ce009e6e --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsDevices.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSDEVICES_H_ +#define _CONFIGPLIST_AssignSETTINGSDEVICES_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignDevices(const XString8& label, SETTINGS_DATA::DevicesClass& oldS, const ConfigPlistClass::DevicesClass& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSDEVICES_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.cpp new file mode 100644 index 000000000..3d1d29e6a --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.cpp @@ -0,0 +1,174 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignGUI_Mouse(const XString8& label, SETTINGS_DATA::GUIClass::MouseClass& oldS, const ConfigPlistClass::GUI_Class::GUI_Mouse_Class& newS) +{ + Assign(PointerSpeed); + Assign(PointerEnabled); + Assign(DoubleClickTime); + Assign(PointerMirror); +} + +void AssignGUI_Scan(const XString8& label, SETTINGS_DATA::GUIClass::ScanClass& oldS, const ConfigPlistClass::GUI_Class::GUI_Scan_Class& newS) +{ + Assign(DisableEntryScan); + Assign(DisableToolScan); + Assign(KernelScan); + Assign(LinuxScan); + Assign(LegacyFirst); + Assign(NoLegacy); +} + +void AssignCustomSubEntry(const XString8& label, CUSTOM_LOADER_SUBENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_SubEntry_Class& newS) +{ + Assign(Disabled); + Assign(_Arguments); + Assign(_AddArguments); + Assign(_FullTitle); + Assign(_Title); + Assign(_NoCaches); +} + +void AssignCustomSubEntries(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignCustomSubEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignCustomEntry(const XString8& label, CUSTOM_LOADER_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Entry_Class& newS) +{ + Assign(Disabled); + Assign(ImageData); + Assign(DriveImageData); + Assign(Volume); + Assign(Path); + Assign(Arguments); + Assign(AddArguments); + Assign(FullTitle); + Assign(Settings); + Assign(Hotkey); + Assign(CommonSettings); + Assign(Hidden); + Assign(AlwaysHidden); + Assign(Type); + Assign(VolumeType); + Assign(KernelScan); + Assign(CustomLogoAsXString8); + Assign(CustomLogoAsData); + Assign(BootBgColor); + Assign(InjectKexts); + Assign(NoCaches); + AssignCustomSubEntries(S8Printf("%s.SubEntriesSettings", label.c_str()), oldS.SubEntriesSettings, newS.SubEntries); + + Assign(m_DriveImagePath); + Assign(m_Title); + Assign(CustomLogoTypeSettings); + Assign(m_ImagePath); + + Assign(ForceTextMode); + +} + +void AssignCustomEntries(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignCustomEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignLegacyEntry(const XString8& label, CUSTOM_LEGACY_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Legacy_Class& newS) +{ + Assign(Disabled); + Assign(ImagePath); + Assign(ImageData); + Assign(DriveImagePath); + Assign(DriveImageData); + Assign(Volume); + Assign(FullTitle); + Assign(Title); + Assign(Hotkey); + Assign(Hidden); + Assign(AlwaysHidden); + Assign(Type); + Assign(VolumeType); +} + +void AssignLegacyEntries(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignLegacyEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignToolEntry(const XString8& label, CUSTOM_TOOL_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Tool_Class& newS) +{ + Assign(Disabled); + Assign(ImagePath); + Assign(ImageData); + Assign(Volume); + Assign(Path); + Assign(Arguments); + Assign(Title); + Assign(FullTitle); + Assign(Hotkey); + Assign(Hidden); + Assign(AlwaysHidden); + Assign(VolumeType); +} + +void AssignToolEntries(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignToolEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignGUI(const XString8& label, SETTINGS_DATA::GUIClass& oldS, const ConfigPlistClass::GUI_Class& newS) +{ + Assign(Timezone); + Assign(Theme); + Assign(EmbeddedThemeType); + Assign(PlayAsync); + Assign(CustomIcons); + Assign(TextOnly); + Assign(ShowOptimus); + Assign(ScreenResolution); + Assign(ProvideConsoleGop); + Assign(ConsoleMode); + Assign(languageCode); + Assign(Language); + Assign(KbdPrevLang); + Assign(HVHideStrings); + AssignGUI_Scan(S8Printf("%s.Scan", label.c_str()), oldS.Scan, newS.Scan); + AssignGUI_Mouse(S8Printf("%s.Mouse", label.c_str()), oldS.Mouse, newS.Mouse); + AssignCustomEntries(S8Printf("%s.CustomEntriesSettings", label.c_str()), oldS.CustomEntriesSettings, newS.Custom.Entries); + AssignLegacyEntries(S8Printf("%s.CustomLegacySettings", label.c_str()), oldS.CustomLegacySettings, newS.Custom.Legacy); + AssignToolEntries(S8Printf("%s.CustomToolSettings", label.c_str()), oldS.CustomToolSettings, newS.Custom.Tool); + +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.h new file mode 100644 index 000000000..ddb5e46ca --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGUI.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSGUI_H_ +#define _CONFIGPLIST_AssignSETTINGSGUI_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignGUI(const XString8& label, SETTINGS_DATA::GUIClass& oldS, const ConfigPlistClass::GUI_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSGUI_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.cpp new file mode 100644 index 000000000..35bd5258f --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.cpp @@ -0,0 +1,101 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsGraphics.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +//void AssignDcfg(const XString8& label, SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS) +//{ +// XBuffer xbuffer = newS.dgetDcfg(); +// AssignField(oldS.Dcfg, sizeof(oldS.Dcfg), xbuffer.data(), xbuffer.size(), label); +//} + +void AssignVBIOS_PATCH_BYTES(const XString8& label, VBIOS_PATCH& oldS, const ConfigPlistClass::Graphics_Class::Graphics_PatchVBiosBytes_Class& newS) +{ + Assign(Find); + Assign(Replace); +} + +void AssignVBIOS_PATCH_BYTES_ARRAY(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size(); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignVBIOS_PATCH_BYTES(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignEDID(const XString8& label, SETTINGS_DATA::GraphicsClass::EDIDClass& oldS, const ConfigPlistClass::Graphics_Class::Graphics_EDID_Class& newS) +{ + Assign(InjectEDID); + Assign(CustomEDID); + Assign(VendorEDID); + Assign(ProductEDID); + Assign(EdidFixHorizontalSyncPulseWidth); + Assign(EdidFixVideoInputSignal); +} + +void AssignInjectAsDict(const XString8& label, SETTINGS_DATA::GraphicsClass::InjectAsDictClass& oldS, const ConfigPlistClass::Graphics_Class::XmlInjectUnion& newS) +{ + Assign(GraphicsInjector); + Assign(InjectIntel); + Assign(InjectATI); + Assign(InjectNVidia); +} + +void AssignGRAPHIC_CARD(const XString8& label, SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD& oldS, const ConfigPlistClass::Graphics_Class::Graphics_ATI_NVIDIA_Class& newS) +{ + Assign(Signature); + Assign(Model); + Assign(Id); + Assign(SubId); + Assign(VideoRam); + Assign(VideoPorts); + Assign(LoadVBios); +} + +void AssignGRAPHIC_CARD_ARRAY(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size(); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignGRAPHIC_CARD(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignGraphics(const XString8& label, SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS) +{ + Assign(PatchVBios); + AssignVBIOS_PATCH_BYTES_ARRAY(S8Printf("%s.PatchVBiosBytes", label.c_str()), oldS.PatchVBiosBytes, newS.PatchVBiosBytesArray); +// Assign(InjectAsBool); + Assign(RadeonDeInit); + Assign(LoadVBios); + Assign(VRAM); + Assign(RefCLK); + Assign(FBName); + Assign(VideoPorts); + Assign(NvidiaGeneric); + Assign(NvidiaNoEFI); + Assign(NvidiaSingle); + oldS.Dcfg.setSize(newS.dgetDcfg().size()); + memcpy(oldS.Dcfg.data(), newS.dgetDcfg().data(), oldS.Dcfg.size()); + oldS.NVCAP.setSize(newS.dgetNVCAP().size()); + memcpy(oldS.NVCAP.data(), newS.dgetNVCAP().data(), oldS.NVCAP.size()); + Assign(BootDisplay); + Assign(DualLink); + Assign(_IgPlatform); + AssignEDID(S8Printf("%s.EDID", label.c_str()), oldS.EDID, newS.EDID); + AssignInjectAsDict(S8Printf("%s.Dcfg", label.c_str()), oldS.InjectAsDict, newS.Inject); + AssignGRAPHIC_CARD_ARRAY(S8Printf("%s.ATICardList", label.c_str()), oldS.ATICardList, newS.ATI); + AssignGRAPHIC_CARD_ARRAY(S8Printf("%s.NVIDIACardList", label.c_str()), oldS.NVIDIACardList, newS.NVIDIA); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.h new file mode 100644 index 000000000..975287fe5 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsGraphics.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSGRAPHICS_H_ +#define _CONFIGPLIST_AssignSETTINGSGRAPHICS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignGraphics(const XString8& label, SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSGRAPHICS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.cpp new file mode 100644 index 000000000..5125ad3ca --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.cpp @@ -0,0 +1,111 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsKernelAndKextPatches.h" +#include +//#include "../../include/OSFlags.h" +#include "AssignField.h" + + +void AssignAbstractPtach(const XString8& label, ABSTRACT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_AbstractPatch_Class& newS) +{ + Assign(Disabled); + Assign(Find); + Assign(Replace); + Assign(MaskFind); + Assign(MaskReplace); + Assign(StartPattern); + Assign(StartMask); + Assign(SearchLen); + Assign(Count); + Assign(Skip); + Assign(MatchOS); + Assign(MatchBuild); + Assign(Label); + oldS.MenuItem.BValue = (uint8_t)(!newS.dgetDisabled()); + +} + +void AssignABSTRACT_KEXT_OR_KERNEL_PATCH(const XString8& label, ABSTRACT_KEXT_OR_KERNEL_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::ABSTRACT_KEXT_OR_KERNEL_PATCH& newS) +{ + AssignAbstractPtach(label, oldS, newS); + Assign(ProcedureName); +} + +void AssignKextPatch(const XString8& label, KEXT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KextsToPatch_Class& newS) +{ + AssignABSTRACT_KEXT_OR_KERNEL_PATCH(label, oldS, newS); + Assign(IsPlistPatch); + Assign(Name); +} + +void AssignKextPatches(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignKextPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignKernelPatch(const XString8& label, KERNEL_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KernelToPatch_Class& newS) +{ + AssignABSTRACT_KEXT_OR_KERNEL_PATCH(label, oldS, newS); +} + +void AssignKernelPatches(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignKernelPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignBootPatch(const XString8& label, BOOT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_BootPatch_Class& newS) +{ + AssignAbstractPtach(label, oldS, newS); + Assign(Label); +} + +void AssignBootPatches(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignBootPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignKernelAndKextPatches(const XString8& label, KERNEL_AND_KEXT_PATCHES& oldS, const ConfigPlistClass::KernelAndKextPatches_Class& newS) +{ + Assign(KPDebug); + Assign(KPKernelLapic); + Assign(KPKernelXCPM); + Assign(_KPKernelPm); + Assign(KPPanicNoKextDump); + Assign(_KPAppleIntelCPUPM); + Assign(KPAppleRTC); + Assign(EightApple); + Assign(KPDELLSMBIOS); + Assign(FakeCPUID); + Assign(KPATIConnectorsController); + Assign(KPATIConnectorsData); + Assign(KPATIConnectorsPatch); + Assign(ForceKextsToLoad); + AssignKextPatches(S8Printf("%s.KextPatches", label.c_str()), oldS.KextPatches, newS.KextsToPatch); + AssignKernelPatches(S8Printf("%s.KernelPatches", label.c_str()), oldS.KernelPatches, newS.KernelToPatch); + AssignBootPatches(S8Printf("%s.BootPatches", label.c_str()), oldS.BootPatches, newS.BootPatches); + +} + diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.h new file mode 100644 index 000000000..c399d2574 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsKernelAndKextPatches.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSKERNELANDKEXTPATCH_H_ +#define _CONFIGPLIST_AssignSETTINGSKERNELANDKEXTPATCH_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignKernelAndKextPatches(const XString8& label, KERNEL_AND_KEXT_PATCHES& oldS, const ConfigPlistClass::KernelAndKextPatches_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.cpp new file mode 100644 index 000000000..a8c247302 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.cpp @@ -0,0 +1,80 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignOcKernelQuirks(const XString8& label, SETTINGS_DATA::QuirksClass::OcKernelQuirksClass& oldS, const ConfigPlistClass::Quirks_Class::OcKernelQuirks_Class& newS) +{ +// oldS.AppleCpuPmCfgLock = 0; +// oldS.AppleXcpmCfgLock = 0; + Assign(AppleXcpmExtraMsrs); + Assign(AppleXcpmForceBoost); +// oldS.CustomSmbiosGuid = 0; + Assign(DisableIoMapper); + oldS.DisableLinkeditJettison = newS.dgetDisableLinkeditJettison(); +// oldS.DisableRtcChecksum = 0; + Assign(DummyPowerManagement); + Assign(ExternalDiskIcons); + Assign(IncreasePciBarSize); +// oldS.LapicKernelPanic = 0; +// oldS.PanicNoKextDump = 0; + Assign(PowerTimeoutKernelPanic); + Assign(ThirdPartyDrives); + Assign(XhciPortLimit); +} + +void AssignOcBooterQuirks(const XString8& label, SETTINGS_DATA::QuirksClass::OcBooterQuirksClass& oldS, const ConfigPlistClass::Quirks_Class::OcBooterQuirks_Class& newS) +{ + Assign(AvoidRuntimeDefrag); + Assign(DevirtualiseMmio); + Assign(DisableSingleUser); + Assign(DisableVariableWrite); + Assign(DiscardHibernateMap); + Assign(EnableSafeModeSlide); + Assign(EnableWriteUnprotector); + Assign(ForceExitBootServices); + Assign(ProtectMemoryRegions); + Assign(ProtectSecureBoot); + Assign(ProtectUefiServices); + Assign(ProvideCustomSlide); + Assign(ProvideMaxSlide); + Assign(RebuildAppleMemoryMap); + Assign(SetupVirtualMap); + Assign(SignalAppleOS); + Assign(SyncRuntimePermissions); +} + +void AssignMmioWhiteList(const XString8& label, SETTINGS_DATA::QuirksClass::MMIOWhiteList& oldS, const ConfigPlistClass::Quirks_Class::Quirks_MmioWhitelist_Class& newS) +{ + Assign(address); + Assign(comment); + Assign(enabled); +} + +void AssignMmioWhiteListArray(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignMmioWhiteList(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignQuirks(const XString8& label, SETTINGS_DATA::QuirksClass& oldS, const ConfigPlistClass::Quirks_Class& newS) +{ + Assign(FuzzyMatch); + Assign(OcKernelCache); + AssignOcKernelQuirks(S8Printf("%s.OcKernelQuirks", label.c_str()), oldS.OcKernelQuirks, newS.OcKernelQuirks); + AssignOcBooterQuirks(S8Printf("%s.OcBooterQuirks", label.c_str()), oldS.OcBooterQuirks, newS.OcBooterQuirks); + AssignMmioWhiteListArray(S8Printf("%s.mmioWhiteListArray", label.c_str()), oldS.mmioWhiteListArray, newS.MmioWhitelist); + Assign(QuirksMask); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.h new file mode 100644 index 000000000..991a82de5 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsQuirks.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSQUIRKS_H_ +#define _CONFIGPLIST_AssignSETTINGSQUIRKS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignQuirks(const XString8& label, SETTINGS_DATA::QuirksClass& oldS, const ConfigPlistClass::Quirks_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSQUIRKS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.cpp new file mode 100644 index 000000000..4dcf05e62 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.cpp @@ -0,0 +1,41 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsRtVariables.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignRT_VARIABLE(const XString8& label, SETTINGS_DATA::RtVariablesClass::RT_VARIABLES& oldS, const ConfigPlistClass::RtVariables_Class::Devices_RtVariables_Block& newS) +{ + Assign(Disabled); + Assign(Comment); + Assign(Name); + oldS.Guid = newS.dgetGuid(); +} + +void AssignRT_VARIABLES(const XString8& label, XObjArray& oldS, const XmlArray& newS) +{ + if ( sizeAssign(size()) ) { + for ( size_t idx = 0; idx < newS.size (); ++idx ) + { + oldS.AddReference(new (remove_ref(decltype(oldS))::type)(), true); + AssignRT_VARIABLE(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void AssignRtVariables(const XString8& label, SETTINGS_DATA::RtVariablesClass& oldS, const ConfigPlistClass::RtVariables_Class& newS) +{ + Assign(RtROMAsString); + Assign(RtROMAsData); + Assign(RtMLBSetting); + Assign(CsrActiveConfig); + Assign(BooterConfig); + Assign(BooterCfgStr); + AssignRT_VARIABLES(S8Printf("%s.BlockRtVariableArray", label.c_str()), oldS.BlockRtVariableArray, newS.Block); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.h new file mode 100644 index 000000000..85d0803b1 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsRtVariables.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSRTVARIABLES_H_ +#define _CONFIGPLIST_AssignSETTINGSRTVARIABLES_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignRtVariables(const XString8& label, SETTINGS_DATA::RtVariablesClass& oldS, const ConfigPlistClass::RtVariables_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSRTVARIABLES_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.cpp new file mode 100644 index 000000000..e6223f2f1 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.cpp @@ -0,0 +1,99 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/SMBIOSPlist.h" + +void AssignMemoryUserSlot(const XString8& label, RAM_SLOT_INFO& oldS, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass& newS) +{ + Assign(ModuleSize); + Assign(Frequency); + Assign(Vendor); + Assign(PartNo); + Assign(SerialNo); + Assign(Type); + Assign(InUse); +} + +void AssignMemoryUser(const XString8& label, XObjArray& oldS, size_t count, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleArrayClass& newS) +{ + for ( size_t idx = 0 ; idx < MAX_RAM_SLOTS ; ++idx ) + { + AssignMemoryUserSlot(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.dgetSolt(idx)); + } +} + +void AssignMemory(const XString8& label, SETTINGS_DATA::SmbiosClass::MemoryClass& oldS, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass& newS) +{ + Assign(SlotCounts); + Assign(UserChannels); + AssignMemoryUser(S8Printf("%s.Memory", label.c_str()), oldS.User, oldS.SlotCounts, newS.Modules); + +} + +//------------------------------------------------------------------------------------------------------- + +void AssignSlotDevice(const XString8& label, SLOT_DEVICE& oldS, const SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass& newS) +{ + Assign(SlotID); + Assign(SlotType); + Assign(SlotName); + // othger field are assigned by GetDevices after settings are read. +} + +void AssignSlotDevices(const XString8& label, XObjArray& oldS, const SmbiosPlistClass::SmbiosDictClass::SlotDeviceArrayClass& newS) +{ + for ( size_t idx = 0 ; idx < 16 ; ++idx ) + { + AssignSlotDevice(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.dgetSoltDevice(idx)); + } +} + +//------------------------------------------------------------------------------------------------------- + +#define AssignSMBIOS(oldField, newField) if ( smbiosPlist.isDefined() && smbiosPlist.SMBIOS.get##newField().isDefined() ) oldS.oldField = smbiosPlist.SMBIOS.dget##oldField(); else oldS.oldField = newS.dget##oldField(); + +void AssignSmbios(const XString8& label, SETTINGS_DATA::SmbiosClass& oldS, const SmbiosPlistClass::SmbiosDictClass& newS, const SmbiosPlistClass& smbiosPlist) +{ + if ( smbiosPlist.isDefined() && smbiosPlist.SMBIOS.getBiosVendor().isDefined() ) oldS.BiosVendor = smbiosPlist.SMBIOS.dgetBiosVendor(); + else oldS.BiosVendor = newS.dgetBiosVendor(); + AssignSMBIOS(_RomVersion, BiosVersion); + AssignSMBIOS(_EfiVersion, EfiVersion); + AssignSMBIOS(_ReleaseDate, BiosReleaseDate); + AssignSMBIOS(ManufactureName, Manufacturer); + AssignSMBIOS(ProductName, ProductName); + AssignSMBIOS(VersionNr, Version); + AssignSMBIOS(SerialNr, SerialNumber); + AssignSMBIOS(SmUUID, SmUUID); + AssignSMBIOS(FamilyName, Family); + AssignSMBIOS(BoardManufactureName, BoardManufacturer); + AssignSMBIOS(BoardSerialNumber, BoardSerialNumber); + AssignSMBIOS(BoardNumber, BoardID); + AssignSMBIOS(LocationInChassis, LocationInChassis); + AssignSMBIOS(BoardVersion, BoardVersion); + AssignSMBIOS(BoardType, BoardType); + if ( smbiosPlist.isDefined() && smbiosPlist.SMBIOS.getMobile().isDefined() ) oldS.Mobile = smbiosPlist.SMBIOS.dgetMobile(gMobile); + else oldS.Mobile = newS.dgetMobile(gMobile); + AssignSMBIOS(ChassisType, ChassisType); + AssignSMBIOS(ChassisManufacturer, ChassisManufacturer); + AssignSMBIOS(ChassisAssetTag, ChassisAssetTag); + AssignSMBIOS(SmbiosVersion, SmbiosVersion); + Assign(Attribute); + Assign(TrustSMBIOS); + if ( smbiosPlist.isDefined() && smbiosPlist.SMBIOS.getMobile().isDefined() ) oldS.Mobile = smbiosPlist.SMBIOS.dgetMobile(gMobile); + else oldS.Mobile = newS.dgetMobile(gMobile); + Assign(InjectMemoryTables); + AssignSMBIOS(gPlatformFeature, PlatformFeature); + AssignSMBIOS(NoRomInfo, NoRomInfo); + AssignSMBIOS(gFwFeatures, FirmwareFeatures); + AssignSMBIOS(gFwFeaturesMask, FirmwareFeaturesMask); + AssignMemory(S8Printf("%s.Memory", label.c_str()), oldS.Memory, newS.Memory); + AssignSlotDevices(S8Printf("%s.SlotDevices", label.c_str()), oldS.SlotDevices, newS.Slots); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.h new file mode 100644 index 000000000..bf0e1fdfd --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSmbios.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSSMBIOS_H_ +#define _CONFIGPLIST_AssignSETTINGSSMBIOS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignSmbios(const XString8& label, SETTINGS_DATA::SmbiosClass& oldS, const SmbiosPlistClass::SmbiosDictClass& newS, const SmbiosPlistClass& smbiosPlist); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSSMBIOS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.cpp b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.cpp new file mode 100644 index 000000000..c60e54ead --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.cpp @@ -0,0 +1,23 @@ +/* + * AssignSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "AssignSettingsBoot.h" +#include +#include "AssignField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignSystemParameters(const XString8& label, SETTINGS_DATA::SystemParametersClass& oldS, const ConfigPlistClass::SystemParameters_Class& newS) +{ + Assign(WithKexts); + Assign(WithKextsIfNoFakeSMC); + Assign(NoCaches); + Assign(BacklightLevel); + Assign(BacklightLevelConfig); + Assign(CustomUuid); + Assign(_InjectSystemID); + Assign(NvidiaWeb); +} diff --git a/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.h b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.h new file mode 100644 index 000000000..cca4c6f55 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Assign/AssignSettingsSystemParameters.h @@ -0,0 +1,18 @@ +/* + * AssignSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_AssignSETTINGSSYSTEMPARAMETERS_H_ +#define _CONFIGPLIST_AssignSETTINGSSYSTEMPARAMETERS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void AssignSystemParameters(const XString8& label, SETTINGS_DATA::SystemParametersClass& oldS, const ConfigPlistClass::SystemParameters_Class& newS); + + + +#endif /* _CONFIGPLIST_AssignSETTINGSSYSTEMPARAMETERS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareField.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareField.cpp new file mode 100644 index 000000000..0beb86d6b --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareField.cpp @@ -0,0 +1,217 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettings.h" +#include +#include "../../include/OSFlags.h" + +uint64_t compareField_nbError = 0; +XString8 compareField_firstErrorField; + +bool CompareFieldFailed(const XString8& field) +{ + MsgLog("ERROR CONFIG PLIST : the field '%s' differs in new SETTINGS_DATA\n", field.c_str()); + compareField_nbError += 1; + if ( compareField_firstErrorField.isEmpty() ) compareField_firstErrorField = field; + return false; +} + +bool CompareFieldFailed(const XString8& field, const XString8& oldValue, const XString8& newValue) +{ + MsgLog("ERROR CONFIG PLIST : the field '%s' differs in new SETTINGS_DATA. oldS value '%s', new value '%s'\n", field.c_str(), oldValue.c_str(), newValue.c_str()); + compareField_nbError += 1; + if ( compareField_firstErrorField.isEmpty() ) compareField_firstErrorField = field; + return false; +} + + +bool compareField(bool oldValue, bool newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%d", oldValue), S8Printf("%d", newValue)); + return true; +} + +bool compareField(undefinable_bool oldValue, undefinable_bool newValue, const XString8& label) +{ + if ( oldValue.isDefined() != newValue.isDefined() ) return CompareFieldFailed(S8Printf("%s.isDefined()", label.c_str()), S8Printf("%d", oldValue.isDefined()), S8Printf("%d", newValue.isDefined())); + if ( !oldValue.isDefined() ) return true; + if ( oldValue.value() != newValue.value() ) return CompareFieldFailed(label, S8Printf("%d", oldValue.value()), S8Printf("%d", newValue.value())); + return true; +} + +//bool compareField(unsigned char oldValue, unsigned char newValue, const XString8& label) +//{ +// if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%u", oldValue), S8Printf("%u", newValue)); +// return true; +//} + +bool compareField(uint8_t oldValue, uint8_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%u", oldValue), S8Printf("%u", newValue)); + return true; +} + +bool compareField(int8_t oldValue, int8_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%d", oldValue), S8Printf("%d", newValue)); + return true; +} + +bool compareField(uint16_t oldValue, uint16_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%u", oldValue), S8Printf("%u", newValue)); + return true; +} + +bool compareField(undefinable_uint16 oldValue, undefinable_uint16 newValue, const XString8& label) +{ + if ( oldValue.isDefined() != newValue.isDefined() ) return CompareFieldFailed(S8Printf("%s.isDefined()", label.c_str()), S8Printf("%d", oldValue.isDefined()), S8Printf("%d", newValue.isDefined())); + if ( !oldValue.isDefined() ) return true; + if ( oldValue.value() != newValue.value() ) return CompareFieldFailed(label, S8Printf("%d", oldValue.value()), S8Printf("%d", newValue.value())); + return true; +} + +bool compareField(int16_t oldValue, int16_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%d", oldValue), S8Printf("%d", newValue)); + return true; +} + +bool compareField(uint32_t oldValue, uint32_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%u", oldValue), S8Printf("%u", newValue)); + return true; +} + +bool compareField(undefinable_uint32 oldValue, undefinable_uint32 newValue, const XString8& label) +{ + if ( oldValue.isDefined() != newValue.isDefined() ) return CompareFieldFailed(S8Printf("%s.isDefined()", label.c_str()), S8Printf("%d", oldValue.isDefined()), S8Printf("%d", newValue.isDefined())); + if ( !oldValue.isDefined() ) return true; + if ( oldValue.value() != newValue.value() ) return CompareFieldFailed(label, S8Printf("%d", oldValue.value()), S8Printf("%d", newValue.value())); + return true; +} + +bool compareField(int32_t oldValue, int32_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%d", oldValue), S8Printf("%d", newValue)); + return true; +} + + +bool compareField(uint64_t oldValue, uint64_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%llu", oldValue), S8Printf("%llu", newValue)); + return true; +} + +bool compareField(int64_t oldValue, int64_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%lld", oldValue), S8Printf("%lld", newValue)); + return true; +} + +bool compareField(size_t oldValue, size_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%zu", oldValue), S8Printf("%zu", newValue)); + return true; +} + +bool compareField(wchar_t oldValue, wchar_t newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%d", oldValue), S8Printf("%d", newValue)); + return true; +} + +bool compareField(const XString8& oldValue, const XString8& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, oldValue, newValue); + return true; +} + +bool compareField(const undefinable_XString8& oldValue, const undefinable_XString8& newValue, const XString8& label) +{ + if ( oldValue.isDefined() != newValue.isDefined() ) return CompareFieldFailed(S8Printf("%s.isDefined()", label.c_str()), S8Printf("%u", oldValue.isDefined()), S8Printf("%u", newValue.isDefined())); + if ( !oldValue.isDefined() ) return true; + if ( oldValue.value() != newValue.value() ) return CompareFieldFailed(label, oldValue.value(), newValue.value()); + return true; +} + +bool compareField(const XBuffer& oldValue, const XBuffer& newValue, const XString8& label) +{ + if ( oldValue != newValue ) { + (void)(oldValue != newValue); + return CompareFieldFailed(label); + } + return true; +} + +bool compareField(const XBuffer& oldValue, const XmlData& newValue, const XString8& label) +{ + if ( !newValue.isDefined() ) { + if ( oldValue.notEmpty() ) return CompareFieldFailed(S8Printf("%s.isDefined()", label.c_str()), "oldValue.notEmpty()"_XS8, "!newValue.isDefined()"_XS8); + return true; + } + if ( oldValue != newValue.value() ) return CompareFieldFailed(label); + return true; +} + +bool compareField(const XString8Array& oldValue, const XString8Array& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%s", oldValue.ConcatAll().c_str()), S8Printf("%s", newValue.ConcatAll().c_str())); + return true; +} + +bool compareField(const XString8Array& oldValue, const ConstXString8Array& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%s", oldValue.ConcatAll().c_str()), S8Printf("%s", newValue.ConcatAll().c_str())); + return true; +} + +bool compareField(const XStringWArray& oldValue, const XStringWArray& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%ls", oldValue.ConcatAll().wc_str()), S8Printf("%ls", newValue.ConcatAll().wc_str())); + return true; +} + +bool compareField(const XStringWArray& oldValue, const ConstXStringWArray& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%ls", oldValue.ConcatAll().wc_str()), S8Printf("%ls", newValue.ConcatAll().wc_str())); + return true; +} + +bool compareField(const ConstXStringWArray& oldValue, const ConstXStringWArray& newValue, const XString8& label) +{ + if ( oldValue != newValue ) return CompareFieldFailed(label, S8Printf("%ls", oldValue.ConcatAll().wc_str()), S8Printf("%ls", newValue.ConcatAll().wc_str())); + return true; +} + +bool compareField(const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& oldValue, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& newValue, const XString8& label) +{ + if ( memcmp(&oldValue, &newValue, sizeof(EFI_GRAPHICS_OUTPUT_BLT_PIXEL)) != 0 ) return CompareFieldFailed(label); + return true; +} + +bool compareField(const void* oldValue, size_t oldSize, const void* newValue, size_t newSize, const XString8& label) +{ + if ( oldSize != newSize ) return CompareFieldFailed(S8Printf("%s size", label.c_str()), S8Printf("%zu", oldSize), S8Printf("%zu", newSize)); + if ( memcmp(oldValue, newValue, oldSize) != 0 ) return CompareFieldFailed(S8Printf("%s", label.c_str())); + return true; +} + +bool compareField(const void* oldValue, size_t oldSize, XBuffer newValue, const XString8& label) +{ + if ( oldSize != newValue.size() ) return CompareFieldFailed(S8Printf("%s size", label.c_str()), S8Printf("%zu", oldSize), S8Printf("%zu", newValue.size())); + if ( memcmp(oldValue, newValue.data(), oldSize) != 0 ) return CompareFieldFailed(S8Printf("%s", label.c_str())); + return true; +} + + +bool compareField(const uint8_t* oldValue, size_t oldSize, const uint8_t* newValue, size_t newSize, const XString8& label) +{ + return compareField((void*)oldValue, oldSize, (void*)newValue,newSize, label); +} + diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareField.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareField.h new file mode 100644 index 000000000..f6dc11604 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareField.h @@ -0,0 +1,58 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPAREFIELD_H_ +#define _CONFIGPLIST_COMPAREFIELD_H_ + +//#include "../../" + +extern "C" { + #include +} + +extern uint64_t compareField_nbError; +extern XString8 compareField_firstErrorField; + +bool CompareFieldFailed(const XString8& msg); +bool CompareFieldFailed(const XString8& field, const XString8& oldValue, const XString8& newValue); + +bool compareField(bool oldValue, bool newValue, const XString8& label); +bool compareField(undefinable_bool oldValue, undefinable_bool newValue, const XString8& label); +bool compareField(uint8_t oldValue, uint8_t newValue, const XString8& label); +bool compareField(int8_t oldValue, int8_t newValue, const XString8& label); +bool compareField(uint16_t oldValue, uint16_t newValue, const XString8& label); +bool compareField(undefinable_uint16 oldValue, undefinable_uint16 newValue, const XString8& label); +bool compareField(int16_t oldValue, int16_t newValue, const XString8& label); +bool compareField(uint32_t oldValue, uint32_t newValue, const XString8& label); +bool compareField(undefinable_uint32 oldValue, undefinable_uint32 newValue, const XString8& label); +bool compareField(int32_t oldValue, int32_t newValue, const XString8& label); +bool compareField(uint64_t oldValue, uint64_t newValue, const XString8& label); +bool compareField(int64_t oldValue, int64_t newValue, const XString8& label); +bool compareField(size_t oldValue, size_t newValue, const XString8& label); +bool compareField(wchar_t oldValue, wchar_t newValue, const XString8& label); +bool compareField(const XString8& oldValue, const XString8& newValue, const XString8& label); +bool compareField(const undefinable_XString8& oldValue, const undefinable_XString8& newValue, const XString8& label); +bool compareField(const XBuffer& oldValue, const XBuffer& newValue, const XString8& label); +bool compareField(const XBuffer& oldValue, const XmlData& newValue, const XString8& label); +bool compareField(const XString8Array& oldValue, const XString8Array& newValue, const XString8& label); +bool compareField(const XString8Array& oldValue, const ConstXString8Array& newValue, const XString8& label); +bool compareField(const XStringWArray& oldValue, const XStringWArray& newValue, const XString8& label); +bool compareField(const XStringWArray& oldValue, const ConstXStringWArray& newValue, const XString8& label); +bool compareField(const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& oldValue, const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& newValue, const XString8& label); + +bool compareField(const void* oldValue, size_t oldSize, const void* newValue, size_t newSize, const XString8& label); +bool compareField(const uint8_t* oldValue, size_t oldSize, const uint8_t* newValue, size_t newSize, const XString8& label); + + +#define compare(x) compareField(oldS.x, newS.dget##x(), S8Printf("%s.%s", label.c_str(), STRINGIZE(x))) +#define fcompare(x) compareField(oldS.x, newS.x, S8Printf("%s.%s", label.c_str(), STRINGIZE(x))) +//#define compare2(x, y) compareField(oldS.x.y, newS.x.dget##y(), CONCAT(STRINGIZE(x) STRINGIZE(.) STRINGIZE(y), _XS8 )) +//#define compare3(x, y, z) compareField(oldS.x.y.z, newS.x.y.dget##z(), S8Printf("%s.%s.%s", STRINGIZE(x), STRINGIZE(y), STRINGIZE(z))) +//#define compare3array(x, y, idx, z) compareField(oldS.x.y[idx].z, newS.x.y[idx].dget##z(), S8Printf("%s.%s[%zu].%s", STRINGIZE(x), STRINGIZE(y), idx, STRINGIZE(z))) +//#define fcompare2(x, y) compareField(oldS.x.y, newS.x.y, CONCAT(STRINGIZE(x) STRINGIZE(.) STRINGIZE(y), _XS8 )) + +#endif /* _CONFIGPLIST_COMPAREFIELD_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.cpp new file mode 100644 index 000000000..d262d1404 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.cpp @@ -0,0 +1,56 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettings.h" +#include +//#include "../../include/OSFlags.h" +#include "CompareField.h" +#include "CompareSettingsBoot.h" +#include "CompareSettingsACPI.h" +#include "CompareSettingsGUI.h" +#include "CompareSettingsCPU.h" +#include "CompareSettingsSystemParameters.h" +#include "CompareSettingsKernelAndKextPatches.h" +#include "CompareSettingsGraphics.h" +#include "CompareSettingsDevices.h" +#include "CompareSettingsQuirks.h" +#include "CompareSettingsRtVariables.h" +#include "CompareSettingsSmbios.h" +#include "CompareSettingsBootGraphics.h" + + +uint64_t CompareOldNewSettings(const SETTINGS_DATA& oldS, const ConfigPlistClass& newS, const XString8& label) +{ + compareField_nbError = 0; + compareField_firstErrorField.setEmpty(); + + CompareBoot("Boot"_XS8, oldS.Boot, newS.Boot); + CompareAcpi("ACPI"_XS8, oldS.ACPI, newS.ACPI); + CompareGUI("GUI"_XS8, oldS.GUI, newS.GUI); + CompareCPU("CPU"_XS8, oldS.CPU, newS.CPU); + CompareSystemParameters("CPU"_XS8, oldS.SystemParameters, newS.SystemParameters); + CompareKernelAndKextPatches("KernelAndKextPatches"_XS8, oldS.KernelAndKextPatches, newS.KernelAndKextPatches); + CompareGraphics("Graphics"_XS8, oldS.Graphics, newS.Graphics); + compareField(oldS.DisabledDriverArray, newS.dgetDisabledDriverArray(), "DisabledDriverArray"_XS8); + CompareDevices("Devices"_XS8, oldS.Devices, newS.Devices); + CompareQuirks("Quirks"_XS8, oldS.Quirks, newS.Quirks); + CompareRtVariables("RtVariables"_XS8, oldS.RtVariables, newS.RtVariables); + CompareSmbios("Smbios"_XS8, oldS.Smbios, newS.getSMBIOS()); + CompareBootGraphics("BootGraphics"_XS8, oldS.BootGraphics, newS.BootGraphics); + + + if ( compareField_nbError == 0 ) { +// DebugLog(2, "Great, new parsing give the same result\n"); +// PauseForKey(""_XSW); + return compareField_nbError; + }else{ +// DebugLog(2, "New parsing gives %llu error(s)\n", nbError); +// PauseForKey(L""); + return compareField_nbError; + } +} + diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.h new file mode 100644 index 000000000..bce1f2383 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettings.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGS_H_ +#define _CONFIGPLIST_COMPARESETTINGS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +uint64_t CompareOldNewSettings(const SETTINGS_DATA& olDSettings, const ConfigPlistClass& configPlist, const XString8& label = ""_XS8); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.cpp new file mode 100644 index 000000000..508890e2a --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.cpp @@ -0,0 +1,128 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsACPI.h" +#include +#include "CompareField.h" + + +void CompareAcpi_ACPIDropTable(const XString8& label, const SETTINGS_DATA::ACPIClass::ACPIDropTablesClass& oldS, const ConfigPlistClass::ACPI_Class::ACPI_DropTables_Class& newS) +{ + compare(Signature); + compare(TableId); + compare(TabLength); + compare(OtherOS); +} + +void CompareACPI_DropTableArray(const XString8 &label, const XObjArray &oldS, const XmlArray &newS) { + if ( fcompare(size()) ) { + for ( size_t idx = 0 ; idx < oldS.size() ; ++idx ) { + CompareAcpi_ACPIDropTable(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareAcpi_DSDT_DSDTPatch(const XString8& label, const SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch& oldS, const ConfigPlistClass::ACPI_Class::DSDT_Class::ACPI_DSDT_Patch_Class& newS) +{ + compare(Disabled); + compare(PatchDsdtLabel); + compare(PatchDsdtFind); + compare(PatchDsdtReplace); + compare(PatchDsdtTgt); + compareField(oldS.PatchDsdtMenuItem.BValue, (uint8_t)(!newS.dgetBValue()), S8Printf("%s.PatchDsdtMenuItem.BValue", label.c_str())); +} + +void CompareAcpi_DSDT(const XString8& label, const SETTINGS_DATA::ACPIClass::DSDTClass& oldS, const ConfigPlistClass::ACPI_Class::DSDT_Class& newS) +{ + compare(DsdtName); + compare(DebugDSDT); + compare(Rtc8Allowed); + compare(PNLF_UID); + compare(FixDsdt); + compare(ReuseFFFF); + compare(SuspendOverride); + if ( compareField(oldS.DSDTPatchArray.size(), newS.Patches.size(), S8Printf("%s.DSDTPatchArray.size()", label.c_str())) ) { + for ( size_t idx = 0 ; idx < oldS.DSDTPatchArray.size() ; ++idx ) { + CompareAcpi_DSDT_DSDTPatch(S8Printf("%s.DSDTPatchArray[%zu]", label.c_str(), idx), oldS.DSDTPatchArray[idx], newS.Patches[idx]); + } + } +} + +void CompareAcpi_SSDT_Generate(const XString8& label, const SETTINGS_DATA::ACPIClass::SSDTClass::GenerateClass& oldS, const ConfigPlistClass::ACPI_Class::SSDT_Class::XmlUnionGenerate& newS) +{ + compare(GeneratePStates); + compare(GenerateCStates); + compare(GenerateAPSN); + compare(GenerateAPLF); + compare(GeneratePluginType); +} + +void CompareAcpi_SSDT(const XString8& label, const SETTINGS_DATA::ACPIClass::SSDTClass& oldS, const ConfigPlistClass::ACPI_Class::SSDT_Class& newS) +{ + compare(DropSSDTSetting); + compare(NoOemTableId); + compare(NoDynamicExtract); + compare(EnableISS); + compare(EnableC7); + compare(_EnableC6); + compare(_EnableC4); + compare(_EnableC2); + compare(_C3Latency); + compare(PLimitDict); + compare(UnderVoltStep); + compare(DoubleFirstState); + compare(MinMultiplier); + compare(MaxMultiplier); + compare(PluginType); + CompareAcpi_SSDT_Generate(S8Printf("%s.Generate", label.c_str()), oldS.Generate, newS.Generate); +} + + +//---------------------------------------------------------------------------------------------------------- + +void CompareAcpi_ACPI_NAME(const XString8& label, const ACPI_NAME& oldS, const XString8& newS) +{ + compareField(oldS.Name, newS, S8Printf("%s.Name", label.c_str())); +} + +void CompareAcpi_ACPI_RENAME_DEVICE(const XString8& label, const ACPI_RENAME_DEVICE& oldS, const XmlAddKey& newS) +{ + CompareAcpi_ACPI_NAME(S8Printf("%s.acpiName", label.c_str()), oldS.acpiName, newS.key().value()); + compareField(oldS.renameTo, newS.value(), S8Printf("%s.renameTo", label.c_str())); +} + +void CompareACPI_ACPI_RENAME_DEVICEArray(const XString8 &label, const XObjArray &oldS, const ConfigPlistClass::ACPI_Class::ACPI_RenamesDevices_Class& newS) +{ + if ( compareField(oldS.size(), newS.size(), S8Printf("%s size", label.c_str())) ) { + for ( size_t idx = 0 ; idx < oldS.size() ; ++idx ) { + CompareAcpi_ACPI_RENAME_DEVICE(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.getAtIndex(idx)); + } + } +} + + +//---------------------------------------------------------------------------------------------------------- + + +void CompareAcpi(const XString8& label, const SETTINGS_DATA::ACPIClass& oldS, const ConfigPlistClass::ACPI_Class& newS) +{ + compare(ResetAddr); + compare(ResetVal); + compare(SlpSmiEnable); + compare(FixHeaders); + compare(FixMCFG); + compare(NoASPM); + compare(smartUPS); + compare(PatchNMI); + compare(AutoMerge); + compare(DisabledAML); + compare(SortedACPI); + CompareACPI_ACPI_RENAME_DEVICEArray(S8Printf("%s.DeviceRename", label.c_str()), oldS.DeviceRename, newS.RenameDevices); + CompareACPI_DropTableArray(S8Printf("%s.ACPIDropTablesArray", label.c_str()), oldS.ACPIDropTablesArray, newS.ACPIDropTablesArray); + CompareAcpi_DSDT(S8Printf("%s.DSDT", label.c_str()), oldS.DSDT, newS.DSDT); + CompareAcpi_SSDT(S8Printf("%s.SSDT", label.c_str()), oldS.SSDT, newS.SSDT); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.h new file mode 100644 index 000000000..3ae713399 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsACPI.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSACPI_H_ +#define _CONFIGPLIST_COMPARESETTINGSACPI_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareAcpi(const XString8& label, const SETTINGS_DATA::ACPIClass& oldS, const ConfigPlistClass::ACPI_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSACPI_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.cpp new file mode 100644 index 000000000..9b075470b --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.cpp @@ -0,0 +1,42 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareBoot(const XString8& label, const SETTINGS_DATA::BootClass& oldS, const ConfigPlistClass::Boot_Class& newS) +{ + compare(Timeout); + compare(SkipHibernateTimeout); + compare(DisableCloverHotkeys); + compare(BootArgs); + compare(NeverDoRecovery); + compare(LastBootedVolume); + compare(DefaultVolume); + compare(DefaultLoader); + compare(DebugLog); + compare(FastBoot); + compare(NoEarlyProgress); + compare(NeverHibernate); + compare(StrictHibernate); + compare(RtcHibernateAware); + compare(HibernationFixup); + compare(SignatureFixup); + compare(SecureSetting); + compare(SecureBootPolicy); + compare(SecureBootWhiteList); + compare(SecureBootBlackList); + compare(XMPDetection); + compareField(oldS.LegacyBoot, newS.dgetLegacyBoot(gFirmwareClover), S8Printf("%s.LegacyBoot", label.c_str())); +// compare(LegacyBoot); + compare(LegacyBiosDefaultEntry); + compare(CustomLogoType); + compare(CustomLogoAsXString8); + compare(CustomLogoAsData); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.h new file mode 100644 index 000000000..52cab139c --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBoot.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSBOOT_H_ +#define _CONFIGPLIST_COMPARESETTINGSBOOT_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareBoot(const XString8& label, const SETTINGS_DATA::BootClass& oldS, const ConfigPlistClass::Boot_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSBOOT_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.cpp new file mode 100644 index 000000000..c3cda71ea --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.cpp @@ -0,0 +1,19 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBootGraphics.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareBootGraphics(const XString8& label, const SETTINGS_DATA::BootGraphicsClass& oldS, const ConfigPlistClass::BootGraphics_Class& newS) +{ + compare(DefaultBackgroundColor); + compare(UIScale); + compare(EFILoginHiDPI); + compare(_flagstate); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.h new file mode 100644 index 000000000..7216579f3 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsBootGraphics.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ +#define _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareBootGraphics(const XString8& label, const SETTINGS_DATA::BootGraphicsClass& oldS, const ConfigPlistClass::BootGraphics_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSBOOTGRAPHICS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.cpp new file mode 100644 index 000000000..c88ae6901 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.cpp @@ -0,0 +1,31 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareCPU(const XString8& label, const SETTINGS_DATA::CPUClass& oldS, const ConfigPlistClass::CPU_Class& newS) +{ + compare(QPI); + compare(CpuFreqMHz); + compare(CpuType); + compare(QEMU); + compare(UseARTFreq); + compare(BusSpeed); + compare(UserChange); + compare(SavingMode); + compare(HWPEnable); + compare(HWPValue); + compare(TDP); + compare(TurboDisabled); + compare(_EnableC6); + compare(_EnableC4); + compare(_EnableC2); + compare(_C3Latency); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.h new file mode 100644 index 000000000..3ad9ec9f8 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsCPU.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSCPU_H_ +#define _CONFIGPLIST_COMPARESETTINGSCPU_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareCPU(const XString8& label, const SETTINGS_DATA::CPUClass& oldS, const ConfigPlistClass::CPU_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSBOOT_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsDevices.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsDevices.cpp new file mode 100644 index 000000000..5497037ff --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsDevices.cpp @@ -0,0 +1,181 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareDevicesAudio(const XString8& label, const SETTINGS_DATA::DevicesClass::AudioClass& oldS, const ConfigPlistClass::DevicesClass::Devices_Audio_Class& newS) +{ + compare(ResetHDA); + compare(HDAInjection); + compare(HDALayoutId); + compare(AFGLowPowerState); +} + + +void CompareDevicesUSB(const XString8& label, const SETTINGS_DATA::DevicesClass::USBClass& oldS, const ConfigPlistClass::DevicesClass::Devices_USB_Class& newS) +{ + compare(USBInjection); + compare(USBFixOwnership); + compare(InjectClockID); + compare(HighCurrent); + compare(NameEH00); +// compare(NameXH00); +} + +void CompareDevicesFakeID(const XString8& label, const SETTINGS_DATA::DevicesClass::FakeIDClass& oldS, const ConfigPlistClass::DevicesClass::Devices_FakeID_Class& newS) +{ + compare(FakeATI); + compare(FakeNVidia); + compare(FakeIntel); + compare(FakeLAN); + compare(FakeWIFI); + compare(FakeSATA); + compare(FakeXHCI); + compare(FakeIMEI); +} + +//--------------------------------------------- SimpleProperty + + +void CompareSimplePropertyClass(const XString8& label, const SETTINGS_DATA::DevicesClass::SimplePropertyClass& oldS, const ConfigPlistClass::DevicesClass::SimplePropertyClass_Class& newS) +{ + compare(Key); + compare(Value); + compare(ValueType); + compareField(oldS.MenuItem.BValue, (uint8_t)!newS.dgetDisabled(), S8Printf("%s.MenuItem.BValue", label.c_str())); +} + +//--------------------------------------------- ArbProperties + + +void CompareArbitraryPropertyClassCustomPropertyArray(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ +// CompareDEV_ADDPROPERTY(label, oldS, newS); +// compare(Device); +// compare(Key); +// compare(Value); + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size(); ++idx ) + { + CompareSimplePropertyClass(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareArbitraryPropertyClass(const XString8& label, const SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass& oldS, const ConfigPlistClass::DevicesClass::Devices_Arbitrary_Class& newS) +{ + compare(Device); + compare(Label); + CompareArbitraryPropertyClassCustomPropertyArray(S8Printf("%s.CustomPropertyArray", label.c_str()), oldS.CustomPropertyArray, newS.CustomProperties); +} + +void CompareArbitraryPropertyClassArray(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size(); ++idx ) + { +// CompareArbitraryPropertyClass(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx].dgetDevice(), newS[idx].dgetComment(), newS[idx].CustomProperties); + CompareArbitraryPropertyClass(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + + +//--------------------------------------------- AddProperties + +//void CompareProperties(const XString8& label, const SETTINGS_DATA::DevicesClass::PropertiesClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion& newS) +//{ +// compare(cDeviceProperties); +// ComparePropertiesAsDict(S8Printf("%s.newProperties", label.c_str()), oldS.PropertyArray, newS.PropertiesAsDict); +//} + +void CompareAddPropertyDict(const XString8& label, const SETTINGS_DATA::DevicesClass::AddPropertyClass& oldS, const ConfigPlistClass::DevicesClass::Devices_AddProperties_Dict_Class& newS) +{ + compare(Device); + compare(Key); + compare(Value); + compare(ValueType); + compareField(oldS.MenuItem.BValue, (uint8_t)!newS.dgetDisabled(), S8Printf("%s.MenuItem.BValue", label.c_str())); +} + +void CompareAddPropertiesClassAddPropertyAsArray(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size(); ++idx ) + { + CompareAddPropertyDict(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +//--------------------------------------------- Properties + +void ComparePropertiesAsDictElementPropertiesArray(const XString8& label, const SETTINGS_DATA::DevicesClass::SimplePropertyClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion::Property& newS) +{ + compare(Key); + compare(Value); + compare(ValueType); + compareField(oldS.MenuItem.BValue, newS.dgetBValue(), S8Printf("%s.enabled", label.c_str())); +} + +void ComparePropertiesAsDictElement(const XString8& label, const SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion::Properties4DeviceClass& newS) +{ + compare(Enabled); + compare(DevicePathAsString); + if ( compareField(oldS.propertiesArray.size(), newS.valueArray().size(), S8Printf("%s size", label.c_str()) ) ) { + for ( size_t idx = 0; idx < oldS.propertiesArray.size(); ++idx ) + { + ComparePropertiesAsDictElementPropertiesArray(S8Printf("%s[%zu]", label.c_str(), idx), oldS.propertiesArray[idx], newS.valueArray()[idx]); + } + } +} + +void ComparePropertiesClass(const XString8& label, const SETTINGS_DATA::DevicesClass::PropertiesClass& oldS, const ConfigPlistClass::DevicesClass::PropertiesUnion& newS) +{ + compare(propertiesAsString); +//for(size_t idx=0;idx +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareGUI_Mouse(const XString8& label, const SETTINGS_DATA::GUIClass::MouseClass& oldS, const ConfigPlistClass::GUI_Class::GUI_Mouse_Class& newS) +{ + compare(PointerSpeed); + compare(PointerEnabled); + compare(DoubleClickTime); + compare(PointerMirror); +} + +void CompareGUI_Scan(const XString8& label, const SETTINGS_DATA::GUIClass::ScanClass& oldS, const ConfigPlistClass::GUI_Class::GUI_Scan_Class& newS) +{ + compare(DisableEntryScan); + compare(DisableToolScan); + compare(KernelScan); + compare(LinuxScan); + compare(LegacyFirst); + compare(NoLegacy); +} + +void CompareCustomSubEntry(const XString8& label, const CUSTOM_LOADER_SUBENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_SubEntry_Class& newS) +{ + compare(Disabled); + compare(_Arguments); + compare(_AddArguments); + compare(_FullTitle); + compare(_Title); + compare(_NoCaches); +} + +void CompareCustomSubEntries(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareCustomSubEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareCustomEntry(const XString8& label, const CUSTOM_LOADER_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Entry_Class& newS) +{ + compare(Disabled); + compare(ImageData); + compare(DriveImageData); + compare(Volume); + compare(Path); + compare(Arguments); + compare(AddArguments); + compare(FullTitle); + compare(Settings); + compare(Hotkey); + compare(CommonSettings); + compare(Hidden); + compare(AlwaysHidden); + compare(Type); + compare(VolumeType); + compare(KernelScan); + compare(CustomLogoAsXString8); + compare(CustomLogoAsData); + compare(BootBgColor); + compare(InjectKexts); + compare(NoCaches); + CompareCustomSubEntries(S8Printf("%s.SubEntriesSettings", label.c_str()), oldS.SubEntriesSettings, newS.SubEntries); + + compare(m_DriveImagePath); + compare(m_Title); + compare(CustomLogoTypeSettings); + compare(m_ImagePath); + +} + +void CompareCustomEntries(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareCustomEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareLegacyEntry(const XString8& label, const CUSTOM_LEGACY_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Legacy_Class& newS) +{ + compare(Disabled); + compare(ImagePath); + compare(ImageData); + compare(DriveImagePath); + compare(DriveImageData); + compare(Volume); + compare(FullTitle); + compare(Title); + compare(Hotkey); + compare(Hidden); + compare(AlwaysHidden); + compare(Type); + compare(VolumeType); +} + +void CompareLegacyEntries(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareLegacyEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareToolEntry(const XString8& label, const CUSTOM_TOOL_ENTRY_SETTINGS& oldS, const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Tool_Class& newS) +{ + compare(Disabled); + compare(ImagePath); + compare(ImageData); + compare(Volume); + compare(Path); + compare(Arguments); + compare(Title); + compare(FullTitle); + compare(Hotkey); + compare(Hidden); + compare(AlwaysHidden); + compare(VolumeType); +} + +void CompareToolEntries(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareToolEntry(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareGUI(const XString8& label, const SETTINGS_DATA::GUIClass& oldS, const ConfigPlistClass::GUI_Class& newS) +{ + compare(Timezone); + compare(Theme); + compare(EmbeddedThemeType); + compare(PlayAsync); + compare(CustomIcons); + compare(TextOnly); + compare(ShowOptimus); + compare(ScreenResolution); + compare(ProvideConsoleGop); + compare(ConsoleMode); + compare(languageCode); + compare(Language); + compare(KbdPrevLang); + compare(HVHideStrings); + CompareGUI_Scan(S8Printf("%s.Scan", label.c_str()), oldS.Scan, newS.Scan); + CompareGUI_Mouse(S8Printf("%s.Mouse", label.c_str()), oldS.Mouse, newS.Mouse); + CompareCustomEntries(S8Printf("%s.CustomEntriesSettings", label.c_str()), oldS.CustomEntriesSettings, newS.Custom.Entries); + CompareLegacyEntries(S8Printf("%s.CustomLegacySettings", label.c_str()), oldS.CustomLegacySettings, newS.Custom.Legacy); + CompareToolEntries(S8Printf("%s.CustomToolSettings", label.c_str()), oldS.CustomToolSettings, newS.Custom.Tool); + + fcompare(getDarkEmbedded(false)); + fcompare(getDarkEmbedded(true)); + +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGUI.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGUI.h new file mode 100644 index 000000000..1271fc500 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGUI.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSGUI_H_ +#define _CONFIGPLIST_COMPARESETTINGSGUI_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareGUI(const XString8& label, const SETTINGS_DATA::GUIClass& oldS, const ConfigPlistClass::GUI_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSGUI_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.cpp new file mode 100644 index 000000000..92517840f --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.cpp @@ -0,0 +1,97 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsGraphics.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +//void CompareDcfg(const XString8& label, const SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS) +//{ +// XBuffer xbuffer = newS.dgetDcfg(); +// compareField(oldS.Dcfg, sizeof(oldS.Dcfg), xbuffer.data(), xbuffer.size(), label); +//} + +void CompareVBIOS_PATCH_BYTES(const XString8& label, const VBIOS_PATCH& oldS, const ConfigPlistClass::Graphics_Class::Graphics_PatchVBiosBytes_Class& newS) +{ + compare(Find); + compare(Replace); +} + +void CompareVBIOS_PATCH_BYTES_ARRAY(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size(); ++idx ) + { + CompareVBIOS_PATCH_BYTES(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareEDID(const XString8& label, const SETTINGS_DATA::GraphicsClass::EDIDClass& oldS, const ConfigPlistClass::Graphics_Class::Graphics_EDID_Class& newS) +{ + compare(InjectEDID); + compare(CustomEDID); + compare(VendorEDID); + compare(ProductEDID); + compare(EdidFixHorizontalSyncPulseWidth); + compare(EdidFixVideoInputSignal); +} + +void CompareInjectAsDict(const XString8& label, const SETTINGS_DATA::GraphicsClass::InjectAsDictClass& oldS, const ConfigPlistClass::Graphics_Class::XmlInjectUnion& newS) +{ + compare(GraphicsInjector); + compare(InjectIntel); + compare(InjectATI); + compare(InjectNVidia); +} + +void CompareGRAPHIC_CARD(const XString8& label, const SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD& oldS, const ConfigPlistClass::Graphics_Class::Graphics_ATI_NVIDIA_Class& newS) +{ + compare(Signature); + compare(Model); + compare(Id); + compare(SubId); + compare(VideoRam); + compare(VideoPorts); + compare(LoadVBios); +} + +void CompareGRAPHIC_CARD_ARRAY(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size(); ++idx ) + { + CompareGRAPHIC_CARD(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareGraphics(const XString8& label, const SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS) +{ + compare(PatchVBios); + CompareVBIOS_PATCH_BYTES_ARRAY(S8Printf("%s.PatchVBiosBytes", label.c_str()), oldS.PatchVBiosBytes, newS.PatchVBiosBytesArray); +// compare(InjectAsBool); + compare(RadeonDeInit); + compare(LoadVBios); + compare(VRAM); + compare(RefCLK); + compare(FBName); + compare(VideoPorts); + compare(NvidiaGeneric); + compare(NvidiaNoEFI); + compare(NvidiaSingle); + compareField(oldS.Dcfg, oldS.Dcfg.size(), newS.dgetDcfg().data(), newS.dgetDcfg().size(), S8Printf("%s.Dcfg", label.c_str())); + compareField(oldS.NVCAP, oldS.NVCAP.size(), newS.dgetNVCAP().data(), newS.dgetNVCAP().size(), S8Printf("%s.NVCAP", label.c_str())); + compare(BootDisplay); + compare(DualLink); + compare(_IgPlatform); + CompareEDID(S8Printf("%s.EDID", label.c_str()), oldS.EDID, newS.EDID); + CompareInjectAsDict(S8Printf("%s.Dcfg", label.c_str()), oldS.InjectAsDict, newS.Inject); + CompareGRAPHIC_CARD_ARRAY(S8Printf("%s.ATICardList", label.c_str()), oldS.ATICardList, newS.ATI); + CompareGRAPHIC_CARD_ARRAY(S8Printf("%s.NVIDIACardList", label.c_str()), oldS.NVIDIACardList, newS.NVIDIA); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.h new file mode 100644 index 000000000..a138a6256 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsGraphics.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSGRAPHICS_H_ +#define _CONFIGPLIST_COMPARESETTINGSGRAPHICS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareGraphics(const XString8& label, const SETTINGS_DATA::GraphicsClass& oldS, const ConfigPlistClass::Graphics_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSGRAPHICS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.cpp new file mode 100644 index 000000000..d30091946 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.cpp @@ -0,0 +1,106 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsKernelAndKextPatches.h" +#include +//#include "../../include/OSFlags.h" +#include "CompareField.h" + + +void CompareAbstractPtach(const XString8& label, const ABSTRACT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_AbstractPatch_Class& newS) +{ + compare(Disabled); + compare(Find); + compare(Replace); + compare(MaskFind); + compare(MaskReplace); + compare(StartPattern); + compare(StartMask); + compare(SearchLen); + compare(Count); + compare(Skip); + compare(MatchOS); + compare(MatchBuild); + compare(Label); + compareField(oldS.MenuItem.BValue, (uint8_t)(!newS.dgetDisabled()), S8Printf("%s.MenuItem.BValue", label.c_str())); +} + +void CompareABSTRACT_KEXT_OR_KERNEL_PATCH(const XString8& label, const ABSTRACT_KEXT_OR_KERNEL_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::ABSTRACT_KEXT_OR_KERNEL_PATCH& newS) +{ + CompareAbstractPtach(label, oldS, newS); + compare(ProcedureName); +} + +void CompareKextPatch(const XString8& label, const KEXT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KextsToPatch_Class& newS) +{ + CompareABSTRACT_KEXT_OR_KERNEL_PATCH(label, oldS, newS); + compare(IsPlistPatch); + compare(Name); +} + +void CompareKextPatches(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareKextPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareKernelPatch(const XString8& label, const KERNEL_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KernelToPatch_Class& newS) +{ + CompareABSTRACT_KEXT_OR_KERNEL_PATCH(label, oldS, newS); +} + +void CompareKernelPatches(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareKernelPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareBootPatch(const XString8& label, const BOOT_PATCH& oldS, const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_BootPatch_Class& newS) +{ + CompareAbstractPtach(label, oldS, newS); +} + +void CompareBootPatches(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareBootPatch(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareKernelAndKextPatches(const XString8& label, const KERNEL_AND_KEXT_PATCHES& oldS, const ConfigPlistClass::KernelAndKextPatches_Class& newS) +{ + compare(KPDebug); + compare(KPKernelLapic); + compare(KPKernelXCPM); + compare(_KPKernelPm); + compare(KPPanicNoKextDump); + compare(_KPAppleIntelCPUPM); + compare(KPAppleRTC); + compare(EightApple); + compare(KPDELLSMBIOS); + compare(FakeCPUID); + compare(KPATIConnectorsController); + compare(KPATIConnectorsData); + compare(KPATIConnectorsPatch); + compare(ForceKextsToLoad); + CompareKextPatches(S8Printf("%s.KextPatches", label.c_str()), oldS.KextPatches, newS.KextsToPatch); + CompareKernelPatches(S8Printf("%s.KernelPatches", label.c_str()), oldS.KernelPatches, newS.KernelToPatch); + CompareBootPatches(S8Printf("%s.BootPatches", label.c_str()), oldS.BootPatches, newS.BootPatches); + +} + diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.h new file mode 100644 index 000000000..b0bd06b59 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsKernelAndKextPatches.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSKERNELANDKEXTPATCH_H_ +#define _CONFIGPLIST_COMPARESETTINGSKERNELANDKEXTPATCH_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareKernelAndKextPatches(const XString8& label, const KERNEL_AND_KEXT_PATCHES& oldS, const ConfigPlistClass::KernelAndKextPatches_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.cpp new file mode 100644 index 000000000..23507b01c --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.cpp @@ -0,0 +1,79 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareOcKernelQuirks(const XString8& label, const SETTINGS_DATA::QuirksClass::OcKernelQuirksClass& oldS, const ConfigPlistClass::Quirks_Class::OcKernelQuirks_Class& newS) +{ +// compare(AppleCpuPmCfgLock); +// compare(AppleXcpmCfgLock); + compare(AppleXcpmExtraMsrs); + compare(AppleXcpmForceBoost); +// compare(CustomSmbiosGuid); + compare(DisableIoMapper); + compare(DisableLinkeditJettison); +// compare(DisableRtcChecksum); + compare(DummyPowerManagement); + compare(ExternalDiskIcons); + compare(IncreasePciBarSize); +// compare(LapicKernelPanic); +// compare(PanicNoKextDump); + compare(PowerTimeoutKernelPanic); + compare(ThirdPartyDrives); + compare(XhciPortLimit); +} + +void CompareOcBooterQuirks(const XString8& label, const SETTINGS_DATA::QuirksClass::OcBooterQuirksClass& oldS, const ConfigPlistClass::Quirks_Class::OcBooterQuirks_Class& newS) +{ + compare(AvoidRuntimeDefrag); + compare(DevirtualiseMmio); + compare(DisableSingleUser); + compare(DisableVariableWrite); + compare(DiscardHibernateMap); + compare(EnableSafeModeSlide); + compare(EnableWriteUnprotector); + compare(ForceExitBootServices); + compare(ProtectMemoryRegions); + compare(ProtectSecureBoot); + compare(ProtectUefiServices); + compare(ProvideCustomSlide); + compare(ProvideMaxSlide); + compare(RebuildAppleMemoryMap); + compare(SetupVirtualMap); + compare(SignalAppleOS); + compare(SyncRuntimePermissions); +} + +void CompareMmioWhiteList(const XString8& label, const SETTINGS_DATA::QuirksClass::MMIOWhiteList& oldS, const ConfigPlistClass::Quirks_Class::Quirks_MmioWhitelist_Class& newS) +{ + compare(address); + compare(comment); + compare(enabled); +} + +void CompareMmioWhiteListArray(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareMmioWhiteList(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareQuirks(const XString8& label, const SETTINGS_DATA::QuirksClass& oldS, const ConfigPlistClass::Quirks_Class& newS) +{ + compare(FuzzyMatch); + compare(OcKernelCache); + CompareOcKernelQuirks(S8Printf("%s.OcKernelQuirks", label.c_str()), oldS.OcKernelQuirks, newS.OcKernelQuirks); + CompareOcBooterQuirks(S8Printf("%s.OcBooterQuirks", label.c_str()), oldS.OcBooterQuirks, newS.OcBooterQuirks); + CompareMmioWhiteListArray(S8Printf("%s.mmioWhiteListArray", label.c_str()), oldS.mmioWhiteListArray, newS.MmioWhitelist); + compare(QuirksMask); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.h new file mode 100644 index 000000000..904ba8938 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsQuirks.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSQUIRKS_H_ +#define _CONFIGPLIST_COMPARESETTINGSQUIRKS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareQuirks(const XString8& label, const SETTINGS_DATA::QuirksClass& oldS, const ConfigPlistClass::Quirks_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSQUIRKS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.cpp new file mode 100644 index 000000000..84a88e980 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.cpp @@ -0,0 +1,41 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsRtVariables.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareRT_VARIABLE(const XString8& label, const SETTINGS_DATA::RtVariablesClass::RT_VARIABLES& oldS, const ConfigPlistClass::RtVariables_Class::Devices_RtVariables_Block& newS) +{ + compare(Disabled); + compare(Comment); + compare(Name); + EFI_GUID guid = newS.dgetGuid(); + compareField((void*)&oldS.Guid, sizeof(oldS.Guid), (void*)&guid, sizeof(guid), S8Printf("%s.Guid", label.c_str())); +} + +void CompareRT_VARIABLES(const XString8& label, const XObjArray& oldS, const XmlArray& newS) +{ + if ( fcompare(size()) ) { + for ( size_t idx = 0; idx < oldS.size (); ++idx ) + { + CompareRT_VARIABLE(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS[idx]); + } + } +} + +void CompareRtVariables(const XString8& label, const SETTINGS_DATA::RtVariablesClass& oldS, const ConfigPlistClass::RtVariables_Class& newS) +{ + compare(RtROMAsString); + compare(RtROMAsData); + compare(RtMLBSetting); + compare(CsrActiveConfig); + compare(BooterConfig); + compare(BooterCfgStr); + CompareRT_VARIABLES(S8Printf("%s.BlockRtVariableArray", label.c_str()), oldS.BlockRtVariableArray, newS.Block); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.h new file mode 100644 index 000000000..9d944fbc6 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsRtVariables.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSRTVARIABLES_H_ +#define _CONFIGPLIST_COMPARESETTINGSRTVARIABLES_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareRtVariables(const XString8& label, const SETTINGS_DATA::RtVariablesClass& oldS, const ConfigPlistClass::RtVariables_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSRTVARIABLES_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.cpp new file mode 100644 index 000000000..3edf1563d --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.cpp @@ -0,0 +1,95 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareMemoryUserSlot(const XString8& label, const RAM_SLOT_INFO& oldS, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass& newS) +{ + compare(ModuleSize); + compare(Frequency); + compare(Vendor); + compare(PartNo); + compare(SerialNo); + compare(Type); + compare(InUse); +} + +void CompareMemoryUser(const XString8& label, const XObjArray& oldS, size_t count, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleArrayClass& newS) +{ + for ( size_t idx = 0 ; idx < MAX_RAM_SLOTS ; ++idx ) + { + CompareMemoryUserSlot(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.dgetSolt(idx)); + } +} + +void CompareMemory(const XString8& label, const SETTINGS_DATA::SmbiosClass::MemoryClass& oldS, const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass& newS) +{ + compare(SlotCounts); + compare(UserChannels); + CompareMemoryUser(S8Printf("%s.Memory", label.c_str()), oldS.User, oldS.SlotCounts, newS.Modules); + +} + +//------------------------------------------------------------------------------------------------------- + +void CompareSlotDevice(const XString8& label, const SLOT_DEVICE& oldS, const SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass& newS) +{ + compare(SlotID); + compare(SlotType); + compare(SlotName); + // othger field are assigned by GetDevices after settings are read. +} + +void CompareSlotDevices(const XString8& label, const XObjArray& oldS, const SmbiosPlistClass::SmbiosDictClass::SlotDeviceArrayClass& newS) +{ + for ( size_t idx = 0 ; idx < 16 ; ++idx ) + { + CompareSlotDevice(S8Printf("%s[%zu]", label.c_str(), idx), oldS[idx], newS.dgetSoltDevice(idx)); + } +} + +//------------------------------------------------------------------------------------------------------- + +void CompareSmbios(const XString8& label, const SETTINGS_DATA::SmbiosClass& oldS, const SmbiosPlistClass::SmbiosDictClass& newS) +{ + compare(BiosVendor); + compare(_RomVersion); + compare(_EfiVersion); + compare(_ReleaseDate); + compare(ManufactureName); + compare(ProductName); + compare(VersionNr); + compare(SerialNr); + compare(SmUUID); + compare(FamilyName); + compare(BoardManufactureName); + compare(BoardSerialNumber); + compare(BoardNumber); + compare(LocationInChassis); + compare(BoardVersion); + compare(BoardType); + compareField(oldS.Mobile, newS.dgetMobile(gMobile), S8Printf("%s.Mobile", label.c_str())); + compare(ChassisType); + compare(ChassisManufacturer); + compare(ChassisAssetTag); + compare(SmbiosVersion); + compare(Attribute); + compare(TrustSMBIOS); + compare(InjectMemoryTables); + compare(gPlatformFeature); + compare(NoRomInfo); + compare(gFwFeatures); + compare(gFwFeaturesMask); + CompareMemory(S8Printf("%s.Memory", label.c_str()), oldS.Memory, newS.Memory); + CompareSlotDevices(S8Printf("%s.SlotDevices", label.c_str()), oldS.SlotDevices, newS.Slots); +// char RBr[8]; +// newS.dgetRBr(RBr); +// compareField((void*)oldS.RBr, 8, (void*)RBr, 8, S8Printf("%s.RBr", label.c_str())); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.h new file mode 100644 index 000000000..ed972f257 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSmbios.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSSMBIOS_H_ +#define _CONFIGPLIST_COMPARESETTINGSSMBIOS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareSmbios(const XString8& label, const SETTINGS_DATA::SmbiosClass& oldS, const SmbiosPlistClass::SmbiosDictClass& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSSMBIOS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.cpp b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.cpp new file mode 100644 index 000000000..982a28a40 --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.cpp @@ -0,0 +1,23 @@ +/* + * CompareSettings.cpp + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#include "CompareSettingsBoot.h" +#include +#include "CompareField.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareSystemParameters(const XString8& label, const SETTINGS_DATA::SystemParametersClass& oldS, const ConfigPlistClass::SystemParameters_Class& newS) +{ + compare(WithKexts); + compare(WithKextsIfNoFakeSMC); + compare(NoCaches); + compare(BacklightLevel); + compare(BacklightLevelConfig); + compare(CustomUuid); + compare(_InjectSystemID); + compare(NvidiaWeb); +} diff --git a/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.h b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.h new file mode 100644 index 000000000..e44e2d07d --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/Compare/CompareSettingsSystemParameters.h @@ -0,0 +1,18 @@ +/* + * CompareSettings.h + * + * Created on: Feb 2, 2021 + * Author: jief + */ + +#ifndef _CONFIGPLIST_COMPARESETTINGSSYSTEMPARAMETERS_H_ +#define _CONFIGPLIST_COMPARESETTINGSSYSTEMPARAMETERS_H_ + +#include "../../Platform/Settings.h" +#include "../../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" + +void CompareSystemParameters(const XString8& label, const SETTINGS_DATA::SystemParametersClass& oldS, const ConfigPlistClass::SystemParameters_Class& newS); + + + +#endif /* _CONFIGPLIST_COMPARESETTINGSSYSTEMPARAMETERS_H_ */ diff --git a/Xcode/CloverX64TestNewParser/src/ConfigSample1.h b/Xcode/CloverX64TestNewParser/src/ConfigSample1.h index 23d720fac..647f6a844 100644 --- a/Xcode/CloverX64TestNewParser/src/ConfigSample1.h +++ b/Xcode/CloverX64TestNewParser/src/ConfigSample1.h @@ -3,7 +3,7 @@ // cpp_tests_compare_settings // // Created by Jief on 05/02/2021. -// Copyright © 2021 JF Knudsen. All rights reserved. +// Copyright © 2021 Jief_Machak. All rights reserved. // #ifndef ConfigSample1_h diff --git a/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.cpp b/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.cpp new file mode 100755 index 000000000..cf32012ef --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.cpp @@ -0,0 +1,5559 @@ +/* + Slice 2012 + */ + +/* + * Jief : this is from version cc3c8fe0a7bab653101244a661bb12636f4c54a1, 2021-04-23, just before the switch to new xml parser + */ + +#include +#include "Settings.h" +#include "../../../../rEFIt_UEFI/Platform/FixBiosDsdt.h" +#include "../../../../rEFIt_UEFI/Platform/../include/VolumeTypes.h" +#include "../../../../rEFIt_UEFI/Platform/../include/OSFlags.h" +#include "../../../../rEFIt_UEFI/Platform/../include/OSTypes.h" +#include "../../../../rEFIt_UEFI/Platform/../include/BootTypes.h" +#include "../../../../rEFIt_UEFI/Platform/../include/QuirksCodes.h" +#include "../../../../rEFIt_UEFI/Platform/../entry_scan/loader.h" +#include "../../../../rEFIt_UEFI/Platform/../Platform/BootLog.h" +#include "../../../../rEFIt_UEFI/Platform/../entry_scan/secureboot.h" +#include "../../../../rEFIt_UEFI/Platform/../libeg/XTheme.h" +#include "../../../../rEFIt_UEFI/Platform/cpu.h" +#include "../../../../rEFIt_UEFI/Platform/VersionString.h" +#include "../../../../rEFIt_UEFI/Platform/card_vlist.h" +#include "../../../../rEFIt_UEFI/Platform/Injectors.h" +#include "../../../../rEFIt_UEFI/Platform/../include/Pci.h" +#include "../../../../rEFIt_UEFI/Platform/../include/Devices.h" +#include "../../../../rEFIt_UEFI/Platform/smbios.h" +#include "../../../../rEFIt_UEFI/Platform/Net.h" +#include "../../../../rEFIt_UEFI/Platform/Nvram.h" +#include "../../../../rEFIt_UEFI/Platform/BootOptions.h" +#include "../../../../rEFIt_UEFI/Platform/SelfOem.h" +#include "../../../../rEFIt_UEFI/Platform/ati_reg.h" +#include "../../../../rEFIt_UEFI/Platform/ati.h" +#include "../../../../rEFIt_UEFI/Platform/nvidia.h" +#include "../../../../rEFIt_UEFI/Platform/gma.h" +#include "../../../../rEFIt_UEFI/Platform/Edid.h" +#include "../../../../rEFIt_UEFI/Platform/hda.h" +#include "../../../../rEFIt_UEFI/Platform/../../Version.h" +#include "../../../../rEFIt_UEFI/Platform/../entry_scan/bootscreen.h" + +#ifndef DEBUG_ALL +#define DEBUG_SET 1 +#else +#define DEBUG_SET DEBUG_ALL +#endif + +#if DEBUG_SET == 0 +#define DBG(...) +#else +#define DBG(...) DebugLog (DEBUG_SET, __VA_ARGS__) +#endif + +//#define DUMP_KERNEL_KEXT_PATCHES 1 + +//#define SHORT_LOCATE 1 + +//#define kXMLTagArray "array" + +//EFI_GUID gRandomUUID = {0x0A0B0C0D, 0x0000, 0x1010, {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}}; + +#define NUM_OF_CONFIGS 3 +#define GEN_PMCON_1 0xA0 + + +static struct FIX_CONFIG { const CHAR8* oldName; const CHAR8* newName; UINT32 bitData; } FixesConfig[] = +{ + { "AddDTGP_0001", "AddDTGP", FIX_DTGP }, + { "FixDarwin_0002", "FixDarwin", FIX_WARNING }, + { "FixShutdown_0004", "FixShutdown", FIX_SHUTDOWN }, + { "AddMCHC_0008", "AddMCHC", FIX_MCHC }, + { "FixHPET_0010", "FixHPET", FIX_HPET }, + { "FakeLPC_0020", "FakeLPC", FIX_LPC }, + { "FixIPIC_0040", "FixIPIC", FIX_IPIC }, + { "FixSBUS_0080", "FixSBUS", FIX_SBUS }, + { "FixDisplay_0100", "FixDisplay", FIX_DISPLAY }, + { "FixIDE_0200", "FixIDE", FIX_IDE }, + { "FixSATA_0400", "FixSATA", FIX_SATA }, + { "FixFirewire_0800", "FixFirewire", FIX_FIREWIRE }, + { "FixUSB_1000", "FixUSB", FIX_USB }, + { "FixLAN_2000", "FixLAN", FIX_LAN }, + { "FixAirport_4000", "FixAirport", FIX_WIFI }, + { "FixHDA_8000", "FixHDA", FIX_HDA }, + { "FixDarwin7_10000", "FixDarwin7", FIX_DARWIN }, + { "FIX_RTC_20000", "FixRTC", FIX_RTC }, + { "FIX_TMR_40000", "FixTMR", FIX_TMR }, + { "AddIMEI_80000", "AddIMEI", FIX_IMEI }, + { "FIX_INTELGFX_100000", "FixIntelGfx", FIX_INTELGFX }, + { "FIX_WAK_200000", "FixWAK", FIX_WAK }, + { "DeleteUnused_400000", "DeleteUnused", FIX_UNUSED }, + { "FIX_ADP1_800000", "FixADP1", FIX_ADP1 }, + { "AddPNLF_1000000", "AddPNLF", FIX_PNLF }, + { "FIX_S3D_2000000", "FixS3D", FIX_S3D }, + { "FIX_ACST_4000000", "FixACST", FIX_ACST }, + { "AddHDMI_8000000", "AddHDMI", FIX_HDMI }, + { "FixRegions_10000000", "FixRegions", FIX_REGIONS }, + { "FixHeaders_20000000", "FixHeaders", FIX_HEADERS }, + { NULL, "FixMutex", FIX_MUTEX } +}; + + + + + +static EFI_STATUS +SaveSettings(SETTINGS_DATA& settingsData); + +// +//ACPI_NAME_LIST * +//ParseACPIName(const XString8& String) +//{ +// ACPI_NAME_LIST* List = NULL; +// ACPI_NAME_LIST* Next = NULL; +// INTN i, j, Len, pos0, pos1; +// Len = String.length(); +// // DBG("parse ACPI name: %s\n", String); +// if (Len > 0) { +// //Parse forward but put in stack LIFO "_SB.PCI0.RP02.PXSX" -1,3,8,13,18 +// pos0 = -1; +// while (pos0 < Len) { +// List = (__typeof__(List))AllocateZeroPool(sizeof(ACPI_NAME_LIST)); +// List->Next = Next; +// List->Name = (__typeof__(List->Name))AllocateZeroPool(5); +// pos1 = pos0 + 1; +// while ((pos1 < Len) && String[pos1] != '.') pos1++; // 3,8,13,18 +// // if ((pos1 == Len) || (String[pos1] == ',')) { //always +// for (i = pos0 + 1, j = 0; i < pos1; i++) { +// List->Name[j++] = String.data()[i]; // String[i] return a char32_t. what if there is an utf8 char ? +// // Jief : if it's an utf8 multibytes char, it'll be properly converted to the corresponding UTF32 char. +// // So this is an unsafe downcast ! +// // Plus : this can write more than 5 bytes in List->Name !! +// } +// // extend by '_' up to 4 symbols +// if (j < 4) { +// SetMem(List->Name + j, 4 - j, '_'); +// } +// List->Name[4] = '\0'; +// // } +// // DBG("string between [%d,%d]: %s\n", pos0, pos1, List->Name); +// pos0 = pos1; //comma or zero@end +// Next = List; +// } +// } +// return List; +//} + + + + +// +// returns binary setting in a new allocated buffer and data length in dataLen. +// data can be specified in base64 encoded +// or in hex encoded +// +UINT8 +*GetDataSetting ( + IN const TagDict* Dict, + IN CONST CHAR8 *PropName, + OUT UINTN *DataLen + ) +{ + const TagStruct* Prop; + UINT8 *Data = NULL; + + Prop = Dict->propertyForKey(PropName); + if (Prop != NULL) { + if (Prop->isData() /*&& Prop->dataLen > 0*/) { //rehabman: allow zero length data + // data property + Data = (__typeof__(Data))AllocateZeroPool(Prop->getData()->dataLenValue()); + CopyMem(Data, Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); + + if (DataLen != NULL) *DataLen = Prop->getData()->dataLenValue(); + /* + DBG("Data: %p, Len: %d = ", Data, Prop->dataLen); + for (i = 0; i < Prop->dataLen; i++) { + DBG("%02hhX ", Data[i]); + } + DBG("\n"); + */ + } else if ( Prop->isString() ) { + // assume data in hex encoded string property + size_t Len = (UINT32)Prop->getString()->stringValue().length() >> 1; // number of hex digits + Data = (__typeof__(Data))AllocateZeroPool(Len); // 2 chars per byte, one more byte for odd number + Len = hex2bin(Prop->getString()->stringValue(), Data, Len); + + if (DataLen != NULL) *DataLen = Len; + /* + DBG("Data(str): %p, Len: %d = ", data, len); + for (i = 0; i < Len; i++) { + DBG("%02hhX ", data[i]); + } + DBG("\n"); + */ + } else { + MsgLog("ATTENTION : PropName '%s' is not data or string. Ignored", PropName); + if (DataLen != NULL) *DataLen = 0; + } + }else{ + if (DataLen != NULL) *DataLen = 0; + } + return Data; +} + +EFI_STATUS +LoadUserSettings ( + IN const XStringW& ConfName, + TagDict** Dict) +{ + EFI_STATUS Status = EFI_NOT_FOUND; + UINTN Size = 0; + CHAR8* ConfigPtr = NULL; +// XStringW ConfigPlistPath; +// XStringW ConfigOemPath; + + // DbgHeader("LoadUserSettings"); + + // load config + if ( ConfName.isEmpty() || Dict == NULL ) { + return EFI_NOT_FOUND; + } + +// ConfigPlistPath = SWPrintf("%ls.plist", ConfName.wc_str()); +// ConfigOemPath = SWPrintf("%ls\\%ls.plist", selfOem.getOOEMPath.wc_str(), ConfName.wc_str()); + Status = EFI_NOT_FOUND; + XStringW configFilename = SWPrintf("%ls.plist", ConfName.wc_str()); + if ( selfOem.oemDirExists() ) { + if (FileExists (&selfOem.getOemDir(), configFilename)) { + Status = egLoadFile(&selfOem.getOemDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); + if (EFI_ERROR(Status)) { + DBG("Cannot find %ls at path (%s): '%ls', trying '%ls'\n", configFilename.wc_str(), efiStrError(Status), selfOem.getOemFullPath().wc_str(), self.getCloverDirFullPath().wc_str()); + }else{ + DBG("Using %ls at path: %ls\n", configFilename.wc_str(), selfOem.getOemFullPath().wc_str()); + } + } + } + if (EFI_ERROR(Status)) { + if ( FileExists(&self.getCloverDir(), configFilename.wc_str())) { + Status = egLoadFile(&self.getCloverDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); + } + if (EFI_ERROR(Status)) { + DBG("Cannot find %ls at path '%ls' : %s\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str(), efiStrError(Status)); + } else { + DBG("Using %ls at path: %ls\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str()); + } + } + + if (!EFI_ERROR(Status) && ConfigPtr != NULL) { + Status = ParseXML((const CHAR8*)ConfigPtr, Dict, Size); + if (EFI_ERROR(Status)) { + // Dict = NULL; + DBG("config.plist parse error Status=%s\n", efiStrError(Status)); + return Status; + } + } + // free configPtr ? + return Status; +} + +//STATIC BOOLEAN AddCustomLoaderEntry(IN CUSTOM_LOADER_ENTRY *Entry) +//{ +// if (Entry == NULL) return FALSE; +// settingsData.GUI.CustomEntries.AddReference(Entry, true); +// return TRUE; +//} + +//STATIC BOOLEAN AddCustomLegacyEntry (IN CUSTOM_LEGACY_ENTRY_SETTINGS *Entry) +//{ +// if (Entry == NULL) return FALSE; +// settingsData.GUI.CustomLegacy.AddReference(Entry, true); +// return TRUE; +//} +//STATIC +//BOOLEAN +//AddCustomToolEntry ( +// IN CUSTOM_TOOL_ENTRY *Entry +// ) +//{ +// if (Entry == NULL) return FALSE; +// settingsData.GUI.CustomTool.AddReference(Entry, true); +// return TRUE; +//} + +//STATIC +//BOOLEAN +//AddCustomSubEntry ( +// IN OUT CUSTOM_LOADER_ENTRY *Entry, +// IN CUSTOM_LOADER_ENTRY *SubEntry) +//{ +// if ((Entry == NULL) || (SubEntry == NULL)) return FALSE; +// Entry->SubEntries.AddReference(Entry, true); +// return TRUE; +//} + +// +//STATIC +//CUSTOM_LOADER_SUBENTRY_SETTINGS +//*DuplicateCustomEntryToSubEntry ( +// IN CUSTOM_LOADER_ENTRY_SETTINGS *Entry +// ) +//{ +// if (Entry == NULL) { +// return NULL; +// } +// +// CUSTOM_LOADER_SUBENTRY_SETTINGS* DuplicateEntry = new CUSTOM_LOADER_SUBENTRY_SETTINGS; +// if (DuplicateEntry != NULL) { +//// DuplicateEntry->Volume = Entry->Volume; //ok +//// DuplicateEntry->Path = Entry->Path; //ok +//// DuplicateEntry->LoadOptions = Entry->LoadOptions; +// DuplicateEntry->FullTitle = Entry->FullTitle; //ok +// DuplicateEntry->Title = Entry->Title; //ok +//// DuplicateEntry->ImagePath = Entry->ImagePath; //ok +//// DuplicateEntry->BootBgColor = Entry->BootBgColor; //ok +//// DuplicateEntry->Image = Entry->Image; +//// DuplicateEntry->Hotkey = Entry->Hotkey; //ok +//// DuplicateEntry->Flags = Entry->Flags; +//// DuplicateEntry->Type = Entry->Type; //ok +//// DuplicateEntry->VolumeType = Entry->VolumeType; //ok +//// DuplicateEntry->KernelScan = Entry->KernelScan; //ok +//// DuplicateEntry->CustomLogoType = Entry->CustomLogoType; +//// DuplicateEntry->CustomLogoAsXString8 = Entry->CustomLogoAsXString8; //ok +//// DuplicateEntry->CustomLogoAsData = Entry->CustomLogoAsData; //ok +//// DuplicateEntry->CustomLogoImage = Entry->CustomLogoImage; +//// DuplicateEntry->KernelAndKextPatches = Entry->KernelAndKextPatches; +// } +// +// return DuplicateEntry; +//} + +STATIC +BOOLEAN +FillinKextPatches (IN OUT KERNEL_AND_KEXT_PATCHES *Patches, + const TagDict* DictPointer) +{ + const TagStruct* Prop; + const TagArray* arrayProp; + // UINTN i; + + if (Patches == NULL || DictPointer == NULL) { + return FALSE; + } + +// Prop = DictPointer->propertyForKey("OcFuzzyMatch"); +//if ( Prop ) panic("config.plist/KernelAndKextPatches/OcFuzzyMatch has been moved in section config.plist/Quirks. Update your config.plist"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->FuzzyMatch = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = DictPointer->propertyForKey("OcKernelCache"); +//if ( Prop ) panic("config.plist/KernelAndKextPatches/OcKernelCache has been moved in section config.plist/Quirks. Update your config.plist"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// if ( Prop->isString() ) { +// if ( Prop->getString()->stringValue().notEmpty() ) { +// Patches->OcKernelCache = Prop->getString()->stringValue(); +// }else{ +// Patches->OcKernelCache = "Auto"_XS8; +// } +// }else{ +// MsgLog("MALFORMED PLIST : KernelAndKextPatches/KernelCache must be a string"); +// Patches->OcKernelCache = "Auto"_XS8; +// } +// } + + { +// const TagDict* OcQuirksDict = DictPointer->dictPropertyForKey("OcQuirks"); +//if ( OcQuirksDict ) panic("config.plist/KernelAndKextPatches/OcQuirks has been merged in the config.plist/Quirks section. Update your config.plist"); +// if ( OcQuirksDict ) +// { +// Prop = OcQuirksDict->propertyForKey("AppleCpuPmCfgLock"); +//if ( !Prop ) panic("Cannot find AppleCpuPmCfgLock in OcQuirks under KernelAndKextPatches (OC kernel quirks)"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.AppleCpuPmCfgLock = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("AppleXcpmCfgLock"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.AppleXcpmCfgLock = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("AppleXcpmExtraMsrs"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.AppleXcpmExtraMsrs = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("AppleXcpmForceBoost"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.AppleXcpmForceBoost = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("CustomSMBIOSGuid"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.CustomSmbiosGuid = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("DisableIoMapper"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.DisableIoMapper = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("DisableLinkeditJettison"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.DisableLinkeditJettison = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("DisableRtcChecksum"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.DisableRtcChecksum = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("DummyPowerManagement"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.DummyPowerManagement = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("ExternalDiskIcons"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.ExternalDiskIcons = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("IncreasePciBarSize"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.IncreasePciBarSize = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("LapicKernelPanic"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.LapicKernelPanic = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("PanicNoKextDump"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.PanicNoKextDump = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("PowerTimeoutKernelPanic"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.PowerTimeoutKernelPanic = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("ThirdPartyDrives"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.ThirdPartyDrives = IsPropertyNotNullAndTrue(Prop); +// } +// +// Prop = OcQuirksDict->propertyForKey("XhciPortLimit"); +// if (Prop != NULL || GlobalConfig.gBootChanged) { +// Patches->OcKernelQuirks.XhciPortLimit = IsPropertyNotNullAndTrue(Prop); +// } +// } + } + + Prop = DictPointer->propertyForKey("Debug"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPDebug = IsPropertyNotNullAndTrue(Prop); + } +/* + Prop = GetProperty(DictPointer, "KernelCpu"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPKernelCpu = IsPropertyTrue(Prop); + } +*/ + Prop = DictPointer->propertyForKey("KernelLapic"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPKernelLapic = IsPropertyNotNullAndTrue(Prop); + } + + Prop = DictPointer->propertyForKey("KernelXCPM"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPKernelXCPM = IsPropertyNotNullAndTrue(Prop); + if (IsPropertyNotNullAndTrue(Prop)) { + DBG("KernelXCPM: enabled\n"); + } + } + + Prop = DictPointer->propertyForKey("KernelPm"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->_KPKernelPm = IsPropertyNotNullAndTrue(Prop); + } + + Prop = DictPointer->propertyForKey("PanicNoKextDump"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPPanicNoKextDump = IsPropertyNotNullAndTrue(Prop); + } + + Prop = DictPointer->propertyForKey("AppleIntelCPUPM"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->_KPAppleIntelCPUPM = IsPropertyNotNullAndTrue(Prop); + } +// //anyway +// if (GlobalConfig.NeedPMfix) { +// Patches->KPKernelPm = TRUE; +// Patches->KPAppleIntelCPUPM = TRUE; +// } + + Prop = DictPointer->propertyForKey("AppleRTC"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->KPAppleRTC = !IsPropertyNotNullAndFalse(Prop); //default = TRUE + } + + Prop = DictPointer->propertyForKey("EightApple"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->EightApple = IsPropertyNotNullAndTrue(Prop); + } + + // + // Dell SMBIOS Patch + // + // syscl: we do not need GlobalConfig.gBootChanged and Prop is empty condition + // this change will boost Dell SMBIOS Patch a bit + // but the major target is to make code clean + Prop = DictPointer->propertyForKey("DellSMBIOSPatch"); + Patches->KPDELLSMBIOS = IsPropertyNotNullAndTrue(Prop); // default == FALSE +// gRemapSmBiosIsRequire = Patches->KPDELLSMBIOS; + + Prop = DictPointer->propertyForKey("FakeCPUID"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + Patches->FakeCPUID = (UINT32)GetPropertyAsInteger(Prop, 0); + DBG("FakeCPUID: %X\n", Patches->FakeCPUID); + } + + Prop = DictPointer->propertyForKey("ATIConnectorsController"); + if ( Prop != NULL && Prop->isString() ) { + UINTN len = 0, i=0; + + // ATIConnectors patch + Patches->KPATIConnectorsController = Prop->getString()->stringValue(); + + UINT8* p = GetDataSetting (DictPointer, "ATIConnectorsData", &len); + Patches->KPATIConnectorsData.stealValueFrom(p, len); + p = GetDataSetting (DictPointer, "ATIConnectorsPatch", &i); + Patches->KPATIConnectorsPatch.stealValueFrom(p, i); + + if (Patches->KPATIConnectorsData.isEmpty() + || Patches->KPATIConnectorsPatch.isEmpty() + || Patches->KPATIConnectorsData.size() != Patches->KPATIConnectorsPatch.size()) { + // invalid params - no patching + DBG("ATIConnectors patch: invalid parameters!\n"); + + Patches->KPATIConnectorsController.setEmpty(); + Patches->KPATIConnectorsData.setEmpty(); + Patches->KPATIConnectorsPatch.setEmpty(); + } + } + + /* + * ForceKextsToLoad is an array of string + */ + arrayProp = DictPointer->arrayPropertyForKey("ForceKextsToLoad"); + if ( arrayProp != NULL ) { + INTN i; + INTN Count = arrayProp->arrayContent().size(); + if (Count > 0) { + const TagStruct* Prop2 = NULL; + + DBG("ForceKextsToLoad: %lld requested\n", Count); + + for (i = 0; i < Count; i++) { + Prop2 = &arrayProp->arrayContent()[i]; + if ( !Prop2->isString() ) { + MsgLog("ATTENTION : property not string in ForceKextsToLoad\n"); + continue; + } + + if ( Prop2->getString()->stringValue().notEmpty() && Prop2->getString()->stringValue() != "\\"_XS8 ) { + Patches->ForceKextsToLoad.Add(Prop2->getString()->stringValue()); + DBG(" - [%zu]: %ls\n", Patches->ForceKextsToLoad.size(), Patches->ForceKextsToLoad[Patches->ForceKextsToLoad.size()-1].wc_str()); + } + } + } + } + + // KextsToPatch is an array of dict + arrayProp = DictPointer->arrayPropertyForKey("KextsToPatch"); + if (arrayProp != NULL) { + INTN Count = arrayProp->arrayContent().size(); + Patches->KextPatches.setEmpty(); + + if (Count > 0) { + const TagDict* Prop2 = NULL; + const TagStruct* Dict = NULL; + + DBG("KextsToPatch: %lld requested\n", Count); + for (INTN i = 0; i < Count; i++) { + UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; + Prop2 = arrayProp->dictElementAt(i); + if ( !Prop2->isDict() ) { + MsgLog("ATTENTION : property not dict in KextsToPatch\n"); + continue; + } + DBG(" - [%02lld]:", i); + + Dict = Prop2->propertyForKey("Name"); + if (Dict == NULL) { + DBG(" patch without Name, skipped\n"); + continue; + } + if ( !Dict->isString() ) { + MsgLog("ATTENTION : Name property not string in KextsToPatch\n"); + continue; + } + + KEXT_PATCH* newKextPatchPtr = new KEXT_PATCH(); + KEXT_PATCH& newKextPatch = *newKextPatchPtr; + + newKextPatch.Name = Dict->getString()->stringValue(); + newKextPatch.Label.takeValueFrom(newKextPatch.Name); + + Dict = Prop2->propertyForKey("Comment"); + if (Dict != NULL) { + newKextPatch.Label += " ("; + newKextPatch.Label += Dict->getString()->stringValue(); + newKextPatch.Label += ")"; + + } else { + newKextPatch.Label += " (NoLabel)"; + } + DBG(" %s", newKextPatch.Label.c_str()); + + // newPatch.MenuItem.BValue = TRUE; + Dict = Prop2->propertyForKey("Disabled"); + newKextPatch.Disabled = IsPropertyNotNullAndTrue(Dict); //if absent then false, BValue = !Disabled + newKextPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(Dict); //if absent then false, BValue = !Disabled + + // if ((Dict != NULL) && IsPropertyNotNullAndTrue(Dict)) { + // newPatch.MenuItem.BValue = FALSE; + // } + + + Dict = Prop2->propertyForKey("RangeFind"); + newKextPatch.SearchLen = GetPropertyAsInteger(Dict, 0); //default 0 will be calculated later + + Dict = Prop2->propertyForKey("Skip"); + newKextPatch.Skip = GetPropertyAsInteger(Dict, 0); //default 0 will be calculated later + + UINT8* TmpData = GetDataSetting(Prop2, "StartPattern", &FindLen); + if (TmpData != NULL) { + newKextPatch.StartPattern.stealValueFrom(TmpData, FindLen); + } + + TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); + ReplaceLen = MIN(ReplaceLen, FindLen); + if (FindLen != 0) { + if (TmpData != NULL) newKextPatch.StartMask.ncpy(TmpData, ReplaceLen); // KextsToPatch + newKextPatch.StartMask.setSize(FindLen, 0xFF); + } + if (TmpData != NULL) { + FreePool(TmpData); + } + + TmpData = GetDataSetting (Prop2, "Find", &FindLen); + UINT8* TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); + + if (!FindLen || !ReplaceLen) { + DBG(" - invalid Find/Replace data - skipping!\n"); + continue; + } + + Dict = Prop2->propertyForKey("Procedure"); + if ( Dict != NULL ) { + if ( Dict->isString() ) { + newKextPatch.ProcedureName = Dict->getString()->stringValue(); + }else{ + MsgLog("ATTENTION : Procedure property not string in KextsToPatch\n"); + } + } + + + newKextPatch.Find.stealValueFrom(TmpData, FindLen); + + TmpData = GetDataSetting (Prop2, "MaskFind", &MaskLen); + MaskLen = (MaskLen > FindLen)? FindLen : MaskLen; + + if (TmpData == NULL || MaskLen == 0) { + } else { + newKextPatch.MaskFind.ncpy(TmpData, MaskLen); + newKextPatch.MaskFind.setSize(FindLen, 0xFF); + } + FreePool(TmpData); + // take into account a possibility to set ReplaceLen < FindLen. In this case assumes MaskReplace = 0 for the rest of bytes + ReplaceLen = MIN(ReplaceLen, FindLen); + newKextPatch.Replace.ncpy(TmpPatch, ReplaceLen); + newKextPatch.Replace.setSize(FindLen, 0); + FreePool(TmpPatch); + + MaskLen = 0; + TmpData = GetDataSetting (Prop2, "MaskReplace", &MaskLen); + MaskLen = MIN(ReplaceLen, MaskLen); + if (TmpData == NULL || MaskLen == 0) { + } else { + newKextPatch.MaskReplace.ncpy(TmpData, MaskLen); //other bytes are zeros, means no replace + newKextPatch.MaskReplace.setSize(FindLen, 0); + } + FreePool(TmpData); + + newKextPatch.Count = 1; + Dict = Prop2->propertyForKey("Count"); + if (Dict != NULL) { + newKextPatch.Count = GetPropertyAsInteger(Dict, 1); + } + + // check enable/disabled patch (OS based) by Micky1979 + Dict = Prop2->propertyForKey("MatchOS"); + if ((Dict != NULL) && (Dict->isString())) { + newKextPatch.MatchOS = Dict->getString()->stringValue(); + DBG(" :: MatchOS: %s", newKextPatch.MatchOS.c_str()); + } + + Dict = Prop2->propertyForKey("MatchBuild"); + if ((Dict != NULL) && (Dict->isString())) { + newKextPatch.MatchBuild = Dict->getString()->stringValue(); + DBG(" :: MatchBuild: %s", newKextPatch.MatchBuild.c_str()); + } + + // check if this is Info.plist patch or kext binary patch + Dict = Prop2->propertyForKey("InfoPlistPatch"); + newKextPatch.IsPlistPatch = IsPropertyNotNullAndTrue(Dict); + + if (newKextPatch.IsPlistPatch) { + DBG(" :: PlistPatch"); + } else { + DBG(" :: BinPatch"); + } + + DBG(" :: data len: %zu\n", newKextPatch.Find.size()); + if (!newKextPatch.MenuItem.BValue) { + DBG(" patch disabled at config\n"); + } + Patches->KextPatches.AddReference(newKextPatchPtr, true); + } + } + + //settingsData.NrKexts = (INT32)i; + //there is one moment. This data is allocated in BS memory but will be used + // after OnExitBootServices. This is wrong and these arrays should be reallocated + // but I am not sure + } + + /* + * KernelToPatch is an array of dict + */ + arrayProp = DictPointer->arrayPropertyForKey("KernelToPatch"); + if (arrayProp != NULL) { + INTN i; + INTN Count = arrayProp->arrayContent().size(); + //delete old and create new + Patches->KernelPatches.setEmpty(); + if (Count > 0) { + const TagDict* Prop2 = NULL; + const TagStruct* prop3 = NULL; + DBG("KernelToPatch: %lld requested\n", Count); + for (i = 0; i < Count; i++) { + UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; + UINT8 *TmpData, *TmpPatch; + + Prop2 = arrayProp->dictElementAt(i, "KernelToPatch"_XS8); + + DBG(" - [%02lld]:", i); + + KERNEL_PATCH* newKernelPatchPtr = new KERNEL_PATCH; + KERNEL_PATCH& newKernelPatch = *newKernelPatchPtr; + + newKernelPatch.Label = "NoLabel"_XS8; + prop3 = Prop2->propertyForKey("Comment"); + if (prop3 != NULL) { + if ( prop3->isString() ) { + newKernelPatch.Label = prop3->getString()->stringValue(); + }else{ + MsgLog("ATTENTION : Comment property not string in KernelToPatch\n"); + } + } + DBG(" %s", newKernelPatch.Label.c_str()); + +// newKernelPatch.Name = "kernel"_XS8; + + prop3 = Prop2->propertyForKey("Disabled"); + newKernelPatch.Disabled = IsPropertyNotNullAndTrue(prop3); + newKernelPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(prop3); + + prop3 = Prop2->propertyForKey("RangeFind"); + newKernelPatch.SearchLen = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later + + prop3 = Prop2->propertyForKey("Skip"); + newKernelPatch.Skip = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later + + TmpData = GetDataSetting (Prop2, "StartPattern", &FindLen); + if (TmpData != NULL) { + newKernelPatch.StartPattern.stealValueFrom(TmpData, FindLen); + } + + TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); + ReplaceLen = MIN(ReplaceLen, FindLen); + if (FindLen != 0) { + if (TmpData != NULL) newKernelPatch.StartMask.ncpy(TmpData, ReplaceLen); // KernelToPatch + newKernelPatch.StartMask.setSize(FindLen, 0xFF); + } + if (TmpData != NULL) { + FreePool(TmpData); + } + + + TmpData = GetDataSetting (Prop2, "Find", &FindLen); + TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); +//replace len can be smaller if mask using + if (!FindLen || !ReplaceLen /*|| (FindLen != ReplaceLen)*/) { + DBG(" :: invalid Find/Replace data - skipping!\n"); + continue; + } + + prop3 = Prop2->propertyForKey("Procedure"); + if (prop3 != NULL) { + if ( prop3->isString() ) { + newKernelPatch.ProcedureName = prop3->getString()->stringValue(); + }else{ + MsgLog("ATTENTION : Procedure property not string in KernelToPatch\n"); + } + } + + + newKernelPatch.Find.stealValueFrom(TmpData, FindLen); + + TmpData = GetDataSetting (Prop2, "MaskFind", &MaskLen); + MaskLen = (MaskLen > FindLen)? FindLen : MaskLen; + if (TmpData == NULL || MaskLen == 0) { + } else { + newKernelPatch.MaskFind.ncpy(TmpData, MaskLen); + newKernelPatch.MaskFind.setSize(FindLen, 0xFF); + } + FreePool(TmpData); + // this is "Replace" string len of ReplaceLen + ReplaceLen = MIN(ReplaceLen, FindLen); + newKernelPatch.Replace.ncpy(TmpPatch, ReplaceLen); + newKernelPatch.Replace.setSize(FindLen, 0); + FreePool(TmpPatch); + MaskLen = 0; + TmpData = GetDataSetting (Prop2, "MaskReplace", &MaskLen); //reuse MaskLen + MaskLen = MIN(ReplaceLen, MaskLen); + if (TmpData == NULL || MaskLen == 0) { + } else { + newKernelPatch.MaskReplace.ncpy(TmpData, MaskLen); + newKernelPatch.MaskReplace.setSize(FindLen, 0); + } + FreePool(TmpData); + newKernelPatch.Count = 0; + + prop3 = Prop2->propertyForKey("Count"); + if (prop3 != NULL) { + newKernelPatch.Count = GetPropertyAsInteger(prop3, 0); + } + + // check enable/disabled patch (OS based) by Micky1979 + prop3 = Prop2->propertyForKey("MatchOS"); + if ((prop3 != NULL) && (prop3->isString())) { + newKernelPatch.MatchOS = prop3->getString()->stringValue(); + DBG(" :: MatchOS: %s", newKernelPatch.MatchOS.c_str()); + } + + prop3 = Prop2->propertyForKey("MatchBuild"); + if ((prop3 != NULL) && (prop3->isString())) { + newKernelPatch.MatchBuild = prop3->getString()->stringValue(); + DBG(" :: MatchBuild: %s", newKernelPatch.MatchBuild.c_str()); + } + DBG(" :: data len: %zu\n", newKernelPatch.Find.size()); + Patches->KernelPatches.AddReference(newKernelPatchPtr, true); + } + } + } + + /* + * BootPatches is an array of dict + */ + arrayProp = DictPointer->arrayPropertyForKey("BootPatches"); + if (arrayProp != NULL) { + INTN i; + INTN Count = arrayProp->arrayContent().size(); + //delete old and create new + Patches->BootPatches.setEmpty(); + if (Count > 0) { + const TagDict* Prop2 = NULL; + const TagStruct* prop3 = NULL; + + DBG("BootPatches: %lld requested\n", Count); + for (i = 0; i < Count; i++) { + UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; + UINT8 *TmpData, *TmpPatch; + + Prop2 = arrayProp->dictElementAt(i, "BootPatches"_XS8); + + DBG(" - [%02lld]:", i); + + BOOT_PATCH* newBootPatchPtr = new BOOT_PATCH; + BOOT_PATCH& newBootPatch = *newBootPatchPtr; + + newBootPatch.Label = "NoLabel"_XS8; + prop3 = Prop2->propertyForKey("Comment"); + if (prop3 != NULL) { + if ( prop3->isString() ) { + newBootPatch.Label = prop3->getString()->stringValue(); + }else{ + MsgLog("ATTENTION : Comment property not string in KernelToPatch\n"); + } + } + DBG(" %s", newBootPatch.Label.c_str()); + +// newBootPatch.Name = "boot.efi"_XS8; + + prop3 = Prop2->propertyForKey("Disabled"); + newBootPatch.Disabled = IsPropertyNotNullAndTrue(prop3); + newBootPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(prop3); + newBootPatch.MenuItem.ItemType = BoolValue; + + prop3 = Prop2->propertyForKey("RangeFind"); + newBootPatch.SearchLen = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later + + prop3 = Prop2->propertyForKey("Skip"); + newBootPatch.Skip = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later + + TmpData = GetDataSetting (Prop2, "StartPattern", &FindLen); + if (TmpData != NULL) { + newBootPatch.StartPattern.stealValueFrom(TmpData, FindLen); + } + + TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); + ReplaceLen = MIN(ReplaceLen, FindLen); + if (FindLen != 0) { + if (TmpData != NULL) { + newBootPatch.StartMask.ncpy(TmpData, ReplaceLen); + } + newBootPatch.StartMask.setSize(FindLen, 0xFF); + } + if (TmpData != NULL) { + FreePool(TmpData); + } + + + TmpData = GetDataSetting (Prop2, "Find", &FindLen); + TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); + if (!FindLen || !ReplaceLen) { + DBG(" :: invalid Find/Replace data - skipping!\n"); + continue; + } + ReplaceLen = MIN(ReplaceLen, FindLen); + newBootPatch.Find.stealValueFrom(TmpData, FindLen); + + MaskLen = 0; + TmpData = GetDataSetting(Prop2, "MaskFind", &MaskLen); + MaskLen = MIN(FindLen, MaskLen); + if (TmpData == NULL || MaskLen == 0) { + } else { + newBootPatch.MaskFind.ncpy(TmpData, MaskLen); + newBootPatch.MaskFind.setSize(FindLen, 0xFF); + } + FreePool(TmpData); + newBootPatch.Replace.ncpy(TmpPatch, ReplaceLen); + newBootPatch.Replace.setSize(FindLen, 0); + FreePool(TmpPatch); + MaskLen = 0; + TmpData = GetDataSetting(Prop2, "MaskReplace", &MaskLen); + MaskLen = MIN(ReplaceLen, MaskLen); + if (TmpData == NULL || MaskLen == 0) { + } else { + newBootPatch.MaskReplace.ncpy(TmpData, MaskLen); + newBootPatch.MaskReplace.setSize(FindLen, 0); + } + FreePool(TmpData); + newBootPatch.Count = 0; + + prop3 = Prop2->propertyForKey("Count"); + if (prop3 != NULL) { + newBootPatch.Count = GetPropertyAsInteger(prop3, 0); + } + + prop3 = Prop2->propertyForKey("MatchOS"); + if ((prop3 != NULL) && (prop3->isString())) { + newBootPatch.MatchOS = prop3->getString()->stringValue(); + DBG(" :: MatchOS: %s", newBootPatch.MatchOS.c_str()); + } + + prop3 = Prop2->propertyForKey("MatchBuild"); + if ((prop3 != NULL) && (prop3->isString())) { + newBootPatch.MatchBuild = prop3->getString()->stringValue(); + DBG(" :: MatchBuild: %s", newBootPatch.MatchBuild.c_str()); + } + + DBG(" :: data len: %zu\n", newBootPatch.Find.size()); + Patches->BootPatches.AddReference(newBootPatchPtr, true); + } + } + } + + + return TRUE; +} + + + + +//BOOLEAN IsOSValid(const XString8& MatchOS, const MacOsVersion& CurrOS) +//{ +// /* example for valid matches are: +// 10.7, only 10.7 (10.7.1 will be skipped) +// 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) +// 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) +// */ +// +// BOOLEAN ret = FALSE; +// +// if (MatchOS.isEmpty() || CurrOS.isEmpty()) { +// return TRUE; //undefined matched corresponds to old behavior +// } +// +//// osToc = GetStrArraySeparatedByChar(MatchOS, '.'); +// XString8Array osToc = Split(MatchOS, "."_XS8).trimEachString(); +// XString8Array currOStoc = Split(CurrOS, "."_XS8).trimEachString(); +// +// if ( osToc.size() > 0 && currOStoc.size() > 0 && osToc[0] == "11"_XS8 && currOStoc[0] == "11"_XS8 ) { +// if (osToc.size() == 1 ) return true; +// if (osToc.size() == 2 ) { +// if ( osToc[1].isEqualIC("x") ) return true; +// if ( currOStoc.size() == 2 && osToc[1] == currOStoc[1] ) return true; +// } +// } +// if (osToc.size() == 2) { +// if (currOStoc.size() == 2) { +// if ( osToc[0] == currOStoc[0] && osToc[1] == currOStoc[1]) { +// ret = TRUE; +// } +// } +// } else if (osToc.size() == 3) { +// if (currOStoc.size() == 3) { +// if ( osToc[0] == currOStoc[0] +// && osToc[1] == currOStoc[1] +// && osToc[2] == currOStoc[2]) { +// ret = TRUE; +// } else if ( osToc[0] == currOStoc[0] +// && osToc[1] == currOStoc[1] +// && osToc[2].isEqualIC("x") ) { +// ret = TRUE; +// } +// } else if (currOStoc.size() == 2) { +// if ( osToc[0] == currOStoc[0] +// && osToc[1] == currOStoc[1] ) { +// ret = TRUE; +// } else if ( osToc[0] == currOStoc[0] +// && osToc[1] == currOStoc[1] +// && osToc[2].isEqualIC("x") == 0 ) { +// ret = TRUE; +// } +// } +// } +// return ret; +//} + +static UINT8 CheckVolumeType(UINT8 VolumeType, const TagStruct* Prop) +{ + if ( !Prop->isString() ) { + MsgLog("ATTENTION : Prop property not string in CheckVolumeType\n"); + return 0; + } + UINT8 VolumeTypeTmp = VolumeType; + if (Prop->getString()->stringValue().isEqualIC("Internal")) { + VolumeTypeTmp |= VOLTYPE_INTERNAL; + } else if (Prop->getString()->stringValue().isEqualIC("External")) { + VolumeTypeTmp |= VOLTYPE_EXTERNAL; + } else if (Prop->getString()->stringValue().isEqualIC("Optical")) { + VolumeTypeTmp |= VOLTYPE_OPTICAL; + } else if (Prop->getString()->stringValue().isEqualIC("FireWire")) { + VolumeTypeTmp |= VOLTYPE_FIREWIRE; + } + return VolumeTypeTmp; +} + +static UINT8 GetVolumeType(const TagDict* DictPointer) +{ + const TagStruct* Prop; + UINT8 VolumeType = 0; + + Prop = DictPointer->propertyForKey("VolumeType"); + if (Prop != NULL) { + if (Prop->isString()) { + VolumeType = CheckVolumeType(0, Prop); + } else if (Prop->isArray()) { + INTN i; + INTN Count = Prop->getArray()->arrayContent().size(); + if (Count > 0) { + for (i = 0; i < Count; i++) { + const TagStruct* Prop2 = &Prop->getArray()->arrayContent()[i]; + if ( !Prop2->isString() || Prop2->getString()->stringValue().isEmpty() ) { + continue; + } + VolumeType = CheckVolumeType(VolumeType, Prop2); + } + } + } + } + return VolumeType; +} + + + +BOOLEAN +FillinCustomSubEntry ( + UINT8 parentType, + IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, + const TagDict* DictPointer, + IN BOOLEAN SubEntry, + SETTINGS_DATA& settingsData) +{ + const TagStruct* Prop; + + if ( Entry == NULL ) panic("Entry == NULL"); + if ( DictPointer == NULL ) panic("DictPointer == NULL"); + + Prop = DictPointer->propertyForKey("Disabled"); + Entry->Disabled = IsPropertyNotNullAndTrue(Prop); + +// Prop = DictPointer->propertyForKey("Volume"); +// if (Prop != NULL && (Prop->isString())) { +// Entry->Volume = Prop->getString()->stringValue(); +// } + +// Prop = DictPointer->propertyForKey("Path"); +// if (Prop != NULL && (Prop->isString())) { +// Entry->Path = Prop->getString()->stringValue(); +// } + +// Prop = DictPointer->propertyForKey("Settings"); +// if (Prop != NULL && (Prop->isString())) { +// Entry->Settings = Prop->getString()->stringValue(); +// } + +// Prop = DictPointer->propertyForKey("CommonSettings"); +// Entry->CommonSettings = IsPropertyNotNullAndTrue(Prop); + + + Prop = DictPointer->propertyForKey("AddArguments"); + if (Prop != NULL && (Prop->isString())) { +// if (Entry->LoadOptions.notEmpty()) { +// Entry->Options.SPrintf("%s %s", Entry->Options.c_str(), Prop->getString()->stringValue()); +// } else { +// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); +// } + Entry->_AddArguments = Prop->getString()->stringValue(); +// Entry->LoadOptions.import(Split(Prop->getString()->stringValue(), " ")); + } else { + Prop = DictPointer->propertyForKey("Arguments"); + if (Prop != NULL && (Prop->isString())) { +// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); + Entry->_Arguments = Prop->getString()->stringValue(); +// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); + } + } + Prop = DictPointer->propertyForKey("Title"); + if (Prop != NULL && (Prop->isString())) { + Entry->_Title = Prop->getString()->stringValue(); +// Entry->FullTitle.setEmpty(); // jief : erase the copy from the parent + } + Prop = DictPointer->propertyForKey("FullTitle"); + if (Prop != NULL && (Prop->isString())) { + Entry->_FullTitle = Prop->getString()->stringValue(); +// Entry->Title.setEmpty(); // jief : erase the copy from the parent. Could also be the previous settings, but Title is not used when FullTitle exists. + } + +// Entry->ImageData.setEmpty(); +// Prop = DictPointer->propertyForKey("Image"); +// if (Prop != NULL) { +// Entry->ImagePath.setEmpty(); +// Entry->Image.setEmpty(); +// if (Prop->isString()) { +// Entry->ImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); +// } +// // we can't load the file yet, as ThemeDir is not initialized +// } else { +// UINTN DataLen = 0; +// UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); +// if (TmpData) { +// Entry->ImageData.stealValueFrom(TmpData, DataLen); +//// TODO remove from settings +// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { +// Entry->Image.setFilled(); +// } +// } +// } +// +// Prop = DictPointer->propertyForKey("Hotkey"); +// if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { +// if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { +// Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); +// } +// } + +// // Whether or not to draw boot screen +// Prop = DictPointer->propertyForKey("CustomLogo"); +// if (Prop != NULL) { +// if (IsPropertyNotNullAndTrue(Prop)) { +// Entry->CustomLogoType = CUSTOM_BOOT_APPLE; +// } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { +// Entry->CustomLogoAsXString8 = Prop->getString()->stringValue(); +// if (Prop->getString()->stringValue().isEqualIC("Apple")) { +// Entry->CustomLogoType = CUSTOM_BOOT_APPLE; +// } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { +// Entry->CustomLogoType = CUSTOM_BOOT_ALT_APPLE; +// } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { +// Entry->CustomLogoType = CUSTOM_BOOT_THEME; +// } else { +// XStringW customLogo = XStringW() = Prop->getString()->stringValue(); +// Entry->CustomLogoType = CUSTOM_BOOT_USER; +//// TODO : remove reading of image from settings +// Entry->CustomLogoImage.LoadXImage(&self.getSelfVolumeRootDir(), customLogo); +// if (Entry->CustomLogoImage.isEmpty()) { +// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); +// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; +// } +// } +// } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { +// Entry->CustomLogoType = CUSTOM_BOOT_USER; +// Entry->CustomLogoAsData = Prop->getData()->data(); +//// TODO : remove reading of image from settings +// Entry->CustomLogoImage.FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); +// if (Entry->CustomLogoImage.isEmpty()) { +// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); +// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; +// } +// } else { +// Entry->CustomLogoType = CUSTOM_BOOT_USER_DISABLED; +// } +// DBG("Custom entry boot %s LogoWidth = (0x%lld)\n", CustomBootModeToStr(Entry->CustomLogoType), Entry->CustomLogoImage.GetWidth()); +// } else { +// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; +// } + +// Prop = DictPointer->propertyForKey("BootBgColor"); +// if (Prop != NULL && Prop->isString()) { +// UINTN Color; +// Color = AsciiStrHexToUintn(Prop->getString()->stringValue()); +// +// Entry->BootBgColor.Red = (Color >> 24) & 0xFF; +// Entry->BootBgColor.Green = (Color >> 16) & 0xFF; +// Entry->BootBgColor.Blue = (Color >> 8) & 0xFF; +// Entry->BootBgColor.Reserved = (Color >> 0) & 0xFF; +// } +// +// // Hidden Property, Values: +// // - No (show the entry) +// // - Yes (hide the entry but can be show with F3) +// // - Always (always hide the entry) +// Prop = DictPointer->propertyForKey("Hidden"); +// if (Prop != NULL) { +// if ((Prop->isString()) && +// (Prop->getString()->stringValue().isEqualIC("Always"))) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); +// } else if (IsPropertyNotNullAndTrue(Prop)) { +// DBG(" hiding entry because Hidden flag is YES\n"); +// Entry->Hidden = true; +// } else { +// Entry->Hidden = false; +// } +// } +// +// Prop = DictPointer->propertyForKey("Type"); +// if (Prop != NULL && (Prop->isString())) { +// if ((Prop->getString()->stringValue().isEqualIC("OSX")) || +// (Prop->getString()->stringValue().isEqualIC("macOS"))) { +// Entry->Type = OSTYPE_OSX; +// } else if (Prop->getString()->stringValue().isEqualIC("OSXInstaller")) { +// Entry->Type = OSTYPE_OSX_INSTALLER; +// } else if (Prop->getString()->stringValue().isEqualIC("OSXRecovery")) { +// Entry->Type = OSTYPE_RECOVERY; +// } else if (Prop->getString()->stringValue().isEqualIC("Windows")) { +// Entry->Type = OSTYPE_WINEFI; +// } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { +// Entry->Type = OSTYPE_LIN; +//// TODO remove from here +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); +// } else if (Prop->getString()->stringValue().isEqualIC("LinuxKernel")) { +// Entry->Type = OSTYPE_LINEFI; +// } else { +// DBG("** Warning: unknown custom entry Type '%s'\n", Prop->getString()->stringValue().c_str()); +// Entry->Type = OSTYPE_OTHER; +// } +// } else { +// if (Entry->Type == 0 && Entry->Path.notEmpty()) { +// // Try to set Entry->type from Entry->Path +// Entry->Type = GetOSTypeFromPath(Entry->Path); +// } +// } + +// Entry->VolumeType = GetVolumeType(DictPointer); + +// if (Entry->LoadOptions.isEmpty() && OSTYPE_IS_WINDOWS(parentType)) { +// Entry->LoadOptions.Add("-s"); +// Entry->LoadOptions.Add("-h"); +// } + if (Entry->_Title.dgetValue().isEmpty()) { + if (OSTYPE_IS_OSX_RECOVERY(parentType)) { + Entry->_Title = "Recovery"_XS8; + } else if (OSTYPE_IS_OSX_INSTALLER(parentType)) { + Entry->_Title = "Install macOS"_XS8; + } + } +// if (Entry->Image.isEmpty() && (Entry->ImagePath.isEmpty())) { +// if (OSTYPE_IS_OSX_RECOVERY(parentType)) { +// Entry->ImagePath = L"mac"_XSW; +// } +// } + // OS Specific flags + if (OSTYPE_IS_OSX(parentType) || OSTYPE_IS_OSX_RECOVERY(parentType) || OSTYPE_IS_OSX_INSTALLER(parentType)) { + + // InjectKexts default values +// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_CHECKFAKESMC); + // Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_WITHKEXTS); + +// Prop = DictPointer->propertyForKey("InjectKexts"); +// if (Prop != NULL) { +// if ( Prop->isTrueOrYes() ) { +// Entry->InjectKexts = 1; +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); +// } else if ( Prop->isFalseOrNn() ) { +// Entry->InjectKexts = 0; +// // nothing to do +// } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("Detect") ) { +// Entry->InjectKexts = 2; +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); +// } else { +// Entry->InjectKexts = -1; +// DBG("** Warning: unknown custom entry InjectKexts value '%s'\n", Prop->getString()->stringValue().c_str()); +// } +// } else { +// Entry->InjectKexts = -1; +// // Use global settings +// if (settingsData.WithKexts) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); +// } +// if (settingsData.WithKextsIfNoFakeSMC) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); +// } +// } + + // NoCaches default value +// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_NOCACHES); + + Prop = DictPointer->propertyForKey("NoCaches"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); + Entry->_NoCaches = true; + } else { + // Use global settings + if (settingsData.SystemParameters.NoCaches) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); + Entry->_NoCaches = false; + } + } + } + +// // KernelAndKextPatches +// if (!SubEntry) { // CopyKernelAndKextPatches already in: DuplicateCustomEntry if SubEntry == TRUE +// //DBG("Copying global patch settings\n"); +//// CopyKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches)), +// // (KERNEL_AND_KEXT_PATCHES *)(((UINTN)&settingsData) + OFFSET_OF(SETTINGS_DATA, KernelAndKextPatches))); +// +//// CopyKernelAndKextPatches(&Entry->KernelAndKextPatches, &settingsData.KernelAndKextPatches); +// Entry->KernelAndKextPatches = settingsData.KernelAndKextPatches; +// +// //#ifdef DUMP_KERNEL_KEXT_PATCHES +// // DumpKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches))); +// //#endif +// +// } + + } + +// if (Entry->Type == OSTYPE_LINEFI) { +// Prop = DictPointer->propertyForKey("Kernel"); +// if (Prop != NULL) { +// if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { +// if ((Prop->getString()->stringValue()[0] == 'N') || (Prop->getString()->stringValue()[0] == 'n')) { +// Entry->KernelScan = KERNEL_SCAN_NEWEST; +// } else if ((Prop->getString()->stringValue()[0] == 'O') || (Prop->getString()->stringValue()[0] == 'o')) { +// Entry->KernelScan = KERNEL_SCAN_OLDEST; +// } else if ((Prop->getString()->stringValue()[0] == 'F') || (Prop->getString()->stringValue()[0] == 'f')) { +// Entry->KernelScan = KERNEL_SCAN_FIRST; +// } else if ((Prop->getString()->stringValue()[0] == 'L') || (Prop->getString()->stringValue()[0] == 'l')) { +// Entry->KernelScan = KERNEL_SCAN_LAST; +// } else if ((Prop->getString()->stringValue()[0] == 'M') || (Prop->getString()->stringValue()[0] == 'm')) { +// Entry->KernelScan = KERNEL_SCAN_MOSTRECENT; +// } else if ((Prop->getString()->stringValue()[0] == 'E') || (Prop->getString()->stringValue()[0] == 'e')) { +// Entry->KernelScan = KERNEL_SCAN_EARLIEST; +// } +// } +// } +// } + +// /* +// * Sub entries +// * an array of dict OR a bool +// */ +// Prop = DictPointer->propertyForKey("SubEntries"); +// if (Prop != NULL) { +// if ( Prop->isBool() && Prop->getBool()->boolValue() ) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); +// } else if ( Prop->isArray() ) { +// CUSTOM_LOADER_SUBENTRY_SETTINGS *CustomSubEntry; +// INTN i; +// INTN Count = Prop->getArray()->arrayContent().size(); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); +// for (i = 0; i < Count; i++) { +// const TagDict* Dict = Prop->getArray()->dictElementAt(i, "SubEntries"_XS8); +// // Allocate a sub entry +// CustomSubEntry = DuplicateCustomSubEntry(Entry); +// if (CustomSubEntry) { +// if ( FillinCustomSubEntry(CustomSubEntry, Dict, TRUE) ) { +// Entry->SubEntriesSettings.AddReference(CustomSubEntry, true); +// }else{ +// delete CustomSubEntry; +// } +// } +// } +// }else{ +// MsgLog("MALFORMED PLIST : SubEntries must be a bool OR an array of dict"); +// } +// } + return TRUE; +} + + +BOOLEAN +FillinCustomEntry ( + IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, + const TagDict* DictPointer, + IN BOOLEAN SubEntry, + SETTINGS_DATA& settingsData) +{ + const TagStruct* Prop; + + if ( Entry == NULL ) panic("Entry == NULL"); + if ( DictPointer == NULL ) panic("DictPointer == NULL"); + + Prop = DictPointer->propertyForKey("Disabled"); + Entry->Disabled = IsPropertyNotNullAndTrue(Prop); + + Prop = DictPointer->propertyForKey("Volume"); + if (Prop != NULL && (Prop->isString())) { + Entry->Volume = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("Path"); + if (Prop != NULL && (Prop->isString())) { + Entry->Path = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("Settings"); + if (Prop != NULL && (Prop->isString())) { + Entry->Settings = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("CommonSettings"); + Entry->CommonSettings = IsPropertyNotNullAndTrue(Prop); + + + Prop = DictPointer->propertyForKey("AddArguments"); + if (Prop != NULL && (Prop->isString())) { +// if (Entry->LoadOptions.notEmpty()) { +// Entry->Options.SPrintf("%s %s", Entry->Options.c_str(), Prop->getString()->stringValue()); +// } else { +// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); +// } + Entry->AddArguments = Prop->getString()->stringValue(); +// Entry->LoadOptions.import(Split(Prop->getString()->stringValue(), " ")); + } else { + Prop = DictPointer->propertyForKey("Arguments"); + if (Prop != NULL && (Prop->isString())) { + Entry->Arguments = Prop->getString()->stringValue(); +// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); +// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); + } + } + Prop = DictPointer->propertyForKey("Title"); + if (Prop != NULL && (Prop->isString())) { + Entry->m_Title = Prop->getString()->stringValue(); + } + Prop = DictPointer->propertyForKey("FullTitle"); + if (Prop != NULL && (Prop->isString())) { + Entry->FullTitle = Prop->getString()->stringValue(); + } + + Entry->m_ImagePath.setEmpty(); + Entry->ImageData.setEmpty(); + Prop = DictPointer->propertyForKey("Image"); + if (Prop != NULL) { + Entry->m_ImagePath.setEmpty(); +// Entry->Image.setEmpty(); + if (Prop->isString()) { + Entry->m_ImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); + } + // we can't load the file yet, as ThemeDir is not initialized + } else { + UINTN DataLen = 0; + UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); + if (TmpData) { + Entry->ImageData.stealValueFrom(TmpData, DataLen); +// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { +// Entry->Image.setFilled(); +// } + } + } + + Entry->m_DriveImagePath.setEmpty(); + Entry->DriveImageData.setEmpty(); + Prop = DictPointer->propertyForKey("DriveImage"); + if (Prop != NULL) { +// Entry->DriveImage.setEmpty(); + if (Prop->isString()) { + Entry->m_DriveImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); + } + // we can't load the file yet, as ThemeDir is not initialized + } else { + UINTN DataLen = 0; + UINT8 *TmpData = GetDataSetting (DictPointer, "DriveImageData", &DataLen); + if (TmpData) { + Entry->DriveImageData.stealValueFrom(TmpData, DataLen); +// if (!EFI_ERROR(Entry->DriveImage.Image.FromPNG(TmpData, DataLen))) { +// Entry->DriveImage.setFilled(); +// } +// FreePool(TmpData); + } + } + + Prop = DictPointer->propertyForKey("Hotkey"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { + Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); + } + } + + // Whether or not to draw boot screen + Prop = DictPointer->propertyForKey("CustomLogo"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_APPLE; + } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + Entry->CustomLogoAsXString8 = Prop->getString()->stringValue(); + if (Prop->getString()->stringValue().isEqualIC("Apple")) { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_APPLE; + } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_ALT_APPLE; + } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_THEME; + } else { + XStringW customLogo = XStringW() = Prop->getString()->stringValue(); + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER; +// Entry->CustomLogoImage.LoadXImage(&self.getSelfVolumeRootDir(), customLogo); +// if (Entry->CustomLogoImage.isEmpty()) { +// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); +// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; +// } + } + } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER; + Entry->CustomLogoAsData = Prop->getData()->data(); +// Entry->CustomLogoImage.FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); +// if (Entry->CustomLogoImage.isEmpty()) { +// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); +// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; +// } + } else { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER_DISABLED; + } + DBG("Custom entry boot %s\n", CustomBootModeToStr(Entry->CustomLogoTypeSettings)); + } else { + Entry->CustomLogoTypeSettings = CUSTOM_BOOT_DISABLED; + } + + Prop = DictPointer->propertyForKey("BootBgColor"); + if (Prop != NULL && Prop->isString()) { + UINTN Color; + Color = AsciiStrHexToUintn(Prop->getString()->stringValue()); + + Entry->BootBgColor.Red = (Color >> 24) & 0xFF; + Entry->BootBgColor.Green = (Color >> 16) & 0xFF; + Entry->BootBgColor.Blue = (Color >> 8) & 0xFF; + Entry->BootBgColor.Reserved = (Color >> 0) & 0xFF; + } + + // Hidden Property, Values: + // - No (show the entry) + // - Yes (hide the entry but can be show with F3) + // - Always (always hide the entry) + Entry->AlwaysHidden = false; + Entry->Hidden = false; + Prop = DictPointer->propertyForKey("Hidden"); + if (Prop != NULL) { + if ((Prop->isString()) && + (Prop->getString()->stringValue().isEqualIC("Always"))) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); + Entry->AlwaysHidden = true; + } else if (IsPropertyNotNullAndTrue(Prop)) { + DBG(" hiding entry because Hidden flag is YES\n"); + Entry->Hidden = true; + } + } + + Prop = DictPointer->propertyForKey("Type"); + if (Prop != NULL && (Prop->isString())) { + if ((Prop->getString()->stringValue().isEqualIC("OSX")) || + (Prop->getString()->stringValue().isEqualIC("macOS"))) { + Entry->Type = OSTYPE_OSX; + } else if (Prop->getString()->stringValue().isEqualIC("OSXInstaller")) { + Entry->Type = OSTYPE_OSX_INSTALLER; + } else if (Prop->getString()->stringValue().isEqualIC("OSXRecovery")) { + Entry->Type = OSTYPE_RECOVERY; + } else if (Prop->getString()->stringValue().isEqualIC("Windows")) { + Entry->Type = OSTYPE_WINEFI; + } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { + Entry->Type = OSTYPE_LIN; +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); + } else if (Prop->getString()->stringValue().isEqualIC("LinuxKernel")) { + Entry->Type = OSTYPE_LINEFI; + } else { + DBG("** Warning: unknown custom entry Type '%s'\n", Prop->getString()->stringValue().c_str()); + Entry->Type = OSTYPE_OTHER; + } + } else { + if (Entry->Type == 0 && Entry->Path.notEmpty()) { + // Try to set Entry->type from Entry->Path + Entry->Type = GetOSTypeFromPath(Entry->Path); + } + } + + Entry->VolumeType = GetVolumeType(DictPointer); + +// if (Entry->LoadOptions.isEmpty() && OSTYPE_IS_WINDOWS(Entry->Type)) { +// Entry->LoadOptions.Add("-s"); +// Entry->LoadOptions.Add("-h"); +// } +// if (Entry->Title.isEmpty()) { +// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { +// Entry->Title = L"Recovery"_XSW; +// } else if (OSTYPE_IS_OSX_INSTALLER(Entry->Type)) { +// Entry->Title = L"Install macOS"_XSW; +// } +// } +// if (Entry->Image.isEmpty() && (Entry->ImagePath.isEmpty())) { +// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { +// Entry->ImagePath = L"mac"_XSW; +// } +// } +// if (Entry->DriveImage.isEmpty() && (Entry->DriveImagePath.isEmpty())) { +// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { +// Entry->DriveImagePath = L"recovery"_XSW; +// } +// } + // OS Specific flags + if (OSTYPE_IS_OSX(Entry->Type) || OSTYPE_IS_OSX_RECOVERY(Entry->Type) || OSTYPE_IS_OSX_INSTALLER(Entry->Type)) { + + // InjectKexts default values +// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_CHECKFAKESMC); + // Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_WITHKEXTS); + + Prop = DictPointer->propertyForKey("InjectKexts"); + if (Prop != NULL) { + if ( Prop->isTrueOrYes() ) { + Entry->InjectKexts = 1; +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); + } else if ( Prop->isFalseOrNn() ) { + Entry->InjectKexts = 0; + // nothing to do + } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("Detect") ) { + Entry->InjectKexts = 2; +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); + } else { + Entry->InjectKexts = -2; + DBG("** Warning: unknown custom entry InjectKexts value '%s'\n", Prop->getString()->stringValue().c_str()); + } + } else { + Entry->InjectKexts = -1; + // Use global settings + if (settingsData.SystemParameters.WithKexts) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); + } + if (settingsData.SystemParameters.WithKextsIfNoFakeSMC) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); + } + } + + // NoCaches default value +// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_NOCACHES); + + Prop = DictPointer->propertyForKey("NoCaches"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); + Entry->NoCaches = true; + } else { + // Use global settings + if (settingsData.SystemParameters.NoCaches) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); + } + } + } + + // KernelAndKextPatches + if (!SubEntry) { // CopyKernelAndKextPatches already in: DuplicateCustomEntry if SubEntry == TRUE + //DBG("Copying global patch settings\n"); +// CopyKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches)), + // (KERNEL_AND_KEXT_PATCHES *)(((UINTN)&settingsData) + OFFSET_OF(SETTINGS_DATA, KernelAndKextPatches))); + +// CopyKernelAndKextPatches(&Entry->KernelAndKextPatches, &settingsData.KernelAndKextPatches); +// Entry->KernelAndKextPatches = settingsData.KernelAndKextPatches; + + //#ifdef DUMP_KERNEL_KEXT_PATCHES + // DumpKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches))); + //#endif + + } + + } + + if (Entry->Type == OSTYPE_LINEFI) { + Prop = DictPointer->propertyForKey("Kernel"); + if (Prop != NULL) { + if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ((Prop->getString()->stringValue()[0] == 'N') || (Prop->getString()->stringValue()[0] == 'n')) { + Entry->KernelScan = KERNEL_SCAN_NEWEST; + } else if ((Prop->getString()->stringValue()[0] == 'O') || (Prop->getString()->stringValue()[0] == 'o')) { + Entry->KernelScan = KERNEL_SCAN_OLDEST; + } else if ((Prop->getString()->stringValue()[0] == 'F') || (Prop->getString()->stringValue()[0] == 'f')) { + Entry->KernelScan = KERNEL_SCAN_FIRST; + } else if ((Prop->getString()->stringValue()[0] == 'L') || (Prop->getString()->stringValue()[0] == 'l')) { + Entry->KernelScan = KERNEL_SCAN_LAST; + } else if ((Prop->getString()->stringValue()[0] == 'M') || (Prop->getString()->stringValue()[0] == 'm')) { + Entry->KernelScan = KERNEL_SCAN_MOSTRECENT; + } else if ((Prop->getString()->stringValue()[0] == 'E') || (Prop->getString()->stringValue()[0] == 'e')) { + Entry->KernelScan = KERNEL_SCAN_EARLIEST; + } + } + } + } + + /* + * Sub entries + * an array of dict OR a bool + */ + Prop = DictPointer->propertyForKey("SubEntries"); + if (Prop != NULL) { + /*if ( Prop->isBool() && Prop->getBool()->boolValue() ) { + Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); + } else*/ if ( Prop->isArray() ) { + INTN Count = Prop->getArray()->arrayContent().size(); +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); + for (INTN i = 0; i < Count; i++) { + const TagDict* Dict = Prop->getArray()->dictElementAt(i, "SubEntries"_XS8); + // Allocate a sub entry +// CustomSubEntry = DuplicateCustomEntryToSubEntry(Entry); + CUSTOM_LOADER_SUBENTRY_SETTINGS* CustomSubEntry = new CUSTOM_LOADER_SUBENTRY_SETTINGS; + if (CustomSubEntry) { + if ( FillinCustomSubEntry(Entry->Type, CustomSubEntry, Dict, TRUE, settingsData) ) { + Entry->SubEntriesSettings.AddReference(CustomSubEntry, true); + }else{ + delete CustomSubEntry; + } + } + } + }else{ + MsgLog("MALFORMED PLIST : SubEntries must be an array of dict"); + } + } + return TRUE; +} + +static BOOLEAN +FillingCustomLegacy ( + IN OUT CUSTOM_LEGACY_ENTRY_SETTINGS *Entry, + const TagDict* DictPointer + ) +{ + const TagStruct* Prop; + if ((Entry == NULL) || (DictPointer == NULL)) { + return FALSE; + } + + Prop = DictPointer->propertyForKey("Disabled"); + if (IsPropertyNotNullAndTrue(Prop)) { + Entry->Disabled = true; + } + + Prop = DictPointer->propertyForKey("Volume"); + if (Prop != NULL && (Prop->isString())) { + Entry->Volume = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("FullTitle"); + if (Prop != NULL && (Prop->isString())) { + Entry->FullTitle = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("Title"); + if (Prop != NULL && (Prop->isString())) { + Entry->Title = Prop->getString()->stringValue(); + } + Prop = DictPointer->propertyForKey("Image"); + if (Prop != NULL) { + if (Prop->isString()) { + Entry->ImagePath = Prop->getString()->stringValue(); +// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Prop->getString()->stringValue()); + } + } else { + UINTN DataLen = 0; + UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); + if (TmpData) { + Entry->ImageData.stealValueFrom(TmpData, DataLen); +// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { +// Entry->Image.setFilled(); +// } +// FreePool(TmpData); + } + } + + Prop = DictPointer->propertyForKey("DriveImage"); + if (Prop != NULL) { + if (Prop->isString()) { + Entry->DriveImagePath = Prop->getString()->stringValue(); +// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Prop->getString()->stringValue()); + } + } else { + UINTN DataLen = 0; + UINT8 *TmpData = GetDataSetting (DictPointer, "DriveImageData", &DataLen); + if (TmpData) { + Entry->DriveImageData.stealValueFrom(TmpData, DataLen); +// if (!EFI_ERROR(Entry->DriveImage.Image.FromPNG(TmpData, DataLen))) { +// Entry->DriveImage.setFilled(); +// } +// FreePool(TmpData); + } + } + + Prop = DictPointer->propertyForKey("Hotkey"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { + Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); + } + } + + // Hidden Property, Values: + // - No (show the entry) + // - Yes (hide the entry but can be show with F3) + // - Always (always hide the entry) + Prop = DictPointer->propertyForKey("Hidden"); + if (Prop != NULL) { + if ((Prop->isString()) && + (Prop->getString()->stringValue().isEqualIC("Always"))) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); + Entry->AlwaysHidden = true; + } else if (IsPropertyNotNullAndTrue(Prop)) { + DBG(" hiding entry because Hidden flag is YES\n"); + Entry->Hidden = true; + } else { + Entry->Hidden = false; + } + } + + Prop = DictPointer->propertyForKey("Type"); + if (Prop != NULL && (Prop->isString())) { + if (Prop->getString()->stringValue().isEqualIC("Windows")) { + Entry->Type = OSTYPE_WIN; + } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { + Entry->Type = OSTYPE_LIN; + } else { + Entry->Type = OSTYPE_OTHER; + } + } + + Entry->VolumeType = GetVolumeType(DictPointer); + return TRUE; +} + +static BOOLEAN +FillingCustomTool (IN OUT CUSTOM_TOOL_ENTRY_SETTINGS *Entry, const TagDict* DictPointer) +{ + const TagStruct* Prop; + if ((Entry == NULL) || (DictPointer == NULL)) { + return FALSE; + } + + Prop = DictPointer->propertyForKey("Disabled"); + if (IsPropertyNotNullAndTrue(Prop)) { + Entry->Disabled = true; + } + + Prop = DictPointer->propertyForKey("Volume"); + if (Prop != NULL && (Prop->isString())) { + Entry->Volume.takeValueFrom(Prop->getString()->stringValue()); + } + + Prop = DictPointer->propertyForKey("Path"); + if (Prop != NULL && (Prop->isString())) { + Entry->Path.takeValueFrom(Prop->getString()->stringValue()); + } + + Prop = DictPointer->propertyForKey("Arguments"); + if (Prop != NULL && (Prop->isString())) { +// if (!Entry->Options.isEmpty()) { +// Entry->Options.setEmpty(); +// } else { +// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); +// } +// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); + Entry->Arguments = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("Title"); + if (Prop != NULL && (Prop->isString())) { + Entry->Title = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("FullTitle"); + if (Prop != NULL && (Prop->isString())) { + Entry->FullTitle = Prop->getString()->stringValue(); + } + + Prop = DictPointer->propertyForKey("Image"); + if (Prop != NULL) { + Entry->ImagePath.setEmpty(); + if (Prop->isString()) { + Entry->ImagePath = Prop->getString()->stringValue(); + } +// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Entry->ImagePath); + } else { + UINTN DataLen = 0; + UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); + if (TmpData) { + Entry->ImageData.stealValueFrom(TmpData, DataLen); +// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { +// Entry->Image.setFilled(); +// } +// FreePool(TmpData); + } + } + Prop = DictPointer->propertyForKey("Hotkey"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { + Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); + } + } + + // Hidden Property, Values: + // - No (show the entry) + // - Yes (hide the entry but can be show with F3) + // - Always (always hide the entry) + Prop = DictPointer->propertyForKey("Hidden"); + if (Prop != NULL) { + if ((Prop->isString()) && + (Prop->getString()->stringValue().isEqualIC("Always"))) { +// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); + Entry->AlwaysHidden = true; + } else if (IsPropertyNotNullAndTrue(Prop)) { + DBG(" hiding entry because Hidden flag is YES\n"); + Entry->Hidden = true; + } else { + Entry->Hidden = false; + } + } + + Entry->VolumeType = GetVolumeType(DictPointer); + + return TRUE; +} + +/* + * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global + * and is passed by non-const reference. + * This temporary during the refactoring + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +// EDID reworked by Sherlocks +static void +GetEDIDSettings(const TagDict* DictPointer, SETTINGS_DATA& settingsData) +{ + #pragma GCC diagnostic pop + const TagStruct* Prop; + const TagDict* Dict; + UINTN j = 128; + + Dict = DictPointer->dictPropertyForKey("EDID"); + if (Dict != NULL) { + Prop = Dict->propertyForKey("Inject"); + settingsData.Graphics.EDID.InjectEDID = IsPropertyNotNullAndTrue(Prop); // default = false! + + if (settingsData.Graphics.EDID.InjectEDID){ + //DBG("Inject EDID\n"); + Prop = Dict->propertyForKey("Custom"); + if (Prop != NULL) { + UINT8* Data = GetDataSetting(Dict, "Custom", &j); + settingsData.Graphics.EDID.CustomEDID.stealValueFrom(Data, j); + if ((j % 128) != 0) { + DBG(" Custom EDID has wrong length=%llu\n", j); + settingsData.Graphics.EDID.CustomEDID.setEmpty(); + } else { + DBG(" Custom EDID is ok\n"); +// settingsData.CustomEDIDsize = (UINT16)j; +// InitializeEdidOverride(); + } + } + + Prop = Dict->propertyForKey("VendorID"); + if (Prop) { + settingsData.Graphics.EDID.VendorEDID = (UINT16)GetPropertyAsInteger(Prop, settingsData.Graphics.EDID.VendorEDID); + //DBG(" VendorID = 0x%04lx\n", settingsData.Graphics.EDID.VendorEDID); + } + + Prop = Dict->propertyForKey("ProductID"); + if (Prop) { + settingsData.Graphics.EDID.ProductEDID = (UINT16)GetPropertyAsInteger(Prop, settingsData.Graphics.EDID.ProductEDID); + //DBG(" ProductID = 0x%04lx\n", settingsData.Graphics.EDID.ProductEDID); + } + + Prop = Dict->propertyForKey("HorizontalSyncPulseWidth"); + if (Prop) { + settingsData.Graphics.EDID.EdidFixHorizontalSyncPulseWidth = (UINT16)GetPropertyAsInteger(Prop, settingsData.Graphics.EDID.EdidFixHorizontalSyncPulseWidth); + //DBG(" EdidFixHorizontalSyncPulseWidth = 0x%02lx\n", settingsData.Graphics.EDID.EdidFixHorizontalSyncPulseWidth); + } + + Prop = Dict->propertyForKey("VideoInputSignal"); + if (Prop) { + settingsData.Graphics.EDID.EdidFixVideoInputSignal = (UINT8)GetPropertyAsInteger(Prop, settingsData.Graphics.EDID.EdidFixVideoInputSignal); + //DBG(" EdidFixVideoInputSignal = 0x%02lx\n", settingsData.Graphics.EDID.EdidFixVideoInputSignal); + } + } else { + //DBG("Not Inject EDID\n"); + } + } +} + +// Jief : GetEarlyUserSettings is ready to disappear... +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +EFI_STATUS GetEarlyUserSettings ( + const TagDict* CfgDict, + SETTINGS_DATA& settingsData + ) +{ + #pragma GCC diagnostic pop + + EFI_STATUS Status = EFI_SUCCESS; +// const TagDict* Dict; +// const TagDict* Dict2; +// const TagDict* DictPointer; +// const TagStruct* Prop; +// const TagArray* arrayProp; +// void *Value = NULL; +// BOOLEAN SpecialBootMode = FALSE; + +// { +// UINTN Size = 0; +// //read aptiofixflag from nvram for special boot +// Status = GetVariable2(L"aptiofixflag", &gEfiAppleBootGuid, &Value, &Size); +// if (!EFI_ERROR(Status)) { +// SpecialBootMode = TRUE; +// FreePool(Value); +// } +// } + + GlobalConfig.KextPatchesAllowed = TRUE; + GlobalConfig.KernelPatchesAllowed = TRUE; + settingsData.KernelAndKextPatches.KPAppleRTC = TRUE; + settingsData.KernelAndKextPatches.KPDELLSMBIOS = FALSE; // default is false + + if (CfgDict != NULL) { + //DBG("Loading early settings\n"); + DbgHeader("GetEarlyUserSettings"); + + const TagDict* BootDict = CfgDict->dictPropertyForKey("Boot"); + if (BootDict != NULL) { + const TagStruct* Prop = BootDict->propertyForKey("Timeout"); + if (Prop != NULL) { + settingsData.Boot.Timeout = GetPropertyAsInteger(Prop, settingsData.Boot.Timeout); + DBG("timeout set to %lld\n", settingsData.Boot.Timeout); + } + + Prop = BootDict->propertyForKey("SkipHibernateTimeout"); + settingsData.Boot.SkipHibernateTimeout = IsPropertyNotNullAndTrue(Prop); + + //DisableCloverHotkeys + Prop = BootDict->propertyForKey("DisableCloverHotkeys"); + settingsData.Boot.DisableCloverHotkeys = IsPropertyNotNullAndTrue(Prop); + + Prop = BootDict->propertyForKey("Arguments"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + settingsData.Boot.BootArgs = Prop->getString()->stringValue(); + } + + // defaults if "DefaultVolume" is not present or is empty + settingsData.Boot.LastBootedVolume = FALSE; + // settingsData.Boot.DefaultVolume = NULL; + + Prop = BootDict->propertyForKey("DefaultVolume"); + if (Prop != NULL) { + if ( Prop->isString() && Prop->getString()->stringValue().notEmpty() ) { + settingsData.Boot.DefaultVolume.setEmpty(); + // check for special value for remembering boot volume + if (Prop->getString()->stringValue().isEqualIC("LastBootedVolume")) { + settingsData.Boot.LastBootedVolume = TRUE; + } else { + settingsData.Boot.DefaultVolume = Prop->getString()->stringValue(); + } + } + } + + Prop = BootDict->propertyForKey("DefaultLoader"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in DefaultLoader\n"); + }else{ + settingsData.Boot.DefaultLoader = Prop->getString()->stringValue(); + } + } + + Prop = BootDict->propertyForKey("Debug"); + if ( Prop ) { + if ( Prop->isString() ) { + if ( Prop->getString()->stringValue().isEqualIC("true") ) settingsData.Boot.DebugLog = true; + else if ( Prop->getString()->stringValue().isEqualIC("false") ) settingsData.Boot.DebugLog = false; + else MsgLog("MALFORMED config.plist : property Boot/Debug must be true, false, or scratch\n"); + }else if ( Prop->isBool() ) { + settingsData.Boot.DebugLog = Prop->getBool()->boolValue(); + }else{ + MsgLog("MALFORMED config.plist : property Boot/Debug must be a string (true, false) or or \n"); + } + } + + Prop = BootDict->propertyForKey("Fast"); + settingsData.Boot.FastBoot = IsPropertyNotNullAndTrue(Prop); + + Prop = BootDict->propertyForKey("NoEarlyProgress"); + settingsData.Boot.NoEarlyProgress = IsPropertyNotNullAndTrue(Prop); + +// if (SpecialBootMode) { +// GlobalConfig.isFastBoot() = TRUE; +// DBG("Fast option enabled\n"); +// } + + Prop = BootDict->propertyForKey("NeverHibernate"); + settingsData.Boot.NeverHibernate = IsPropertyNotNullAndTrue(Prop); + + Prop = BootDict->propertyForKey("StrictHibernate"); + settingsData.Boot.StrictHibernate = IsPropertyNotNullAndTrue(Prop); + + Prop = BootDict->propertyForKey("RtcHibernateAware"); + settingsData.Boot.RtcHibernateAware = IsPropertyNotNullAndTrue(Prop); + + Prop = BootDict->propertyForKey("HibernationFixup"); + if (Prop) { + settingsData.Boot.HibernationFixup = IsPropertyNotNullAndTrue(Prop); //it will be set automatically + } + + Prop = BootDict->propertyForKey("SignatureFixup"); + settingsData.Boot.SignatureFixup = IsPropertyNotNullAndTrue(Prop); + + // Prop = GetProperty(DictPointer, "GetLegacyLanAddress"); + // GetLegacyLanAddress = IsPropertyTrue(Prop); + + // Secure boot + /* this parameter, which should be called SecureBootSetupMode, is ignored if : + * it is true + * SecureBoot is already true. + */ + settingsData.Boot.SecureSetting = -1; + Prop = BootDict->propertyForKey("Secure"); + if (Prop != NULL) { + if ( Prop->isTrue() ) settingsData.Boot.SecureSetting = 1; + if ( Prop->isFalse() ) settingsData.Boot.SecureSetting = 0; +// if ( Prop->isFalse() ) { +// // Only disable setup mode, we want always secure boot +// settingsData.Boot.SecureBootSetupMode = 0; +// } else if ( Prop->isTrue() && !settingsData.Boot.SecureBoot ) { +// // This mode will force boot policy even when no secure boot or it is disabled +// settingsData.Boot.SecureBootSetupMode = 1; +// settingsData.Boot.SecureBoot = 1; +// } + } + // Secure boot policy + Prop = BootDict->propertyForKey("Policy"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ((Prop->getString()->stringValue()[0] == 'D') || (Prop->getString()->stringValue()[0] == 'd')) { + // Deny all images + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_DENY; + } else if ((Prop->getString()->stringValue()[0] == 'A') || (Prop->getString()->stringValue()[0] == 'a')) { + // Allow all images + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_ALLOW; + } else if ((Prop->getString()->stringValue()[0] == 'Q') || (Prop->getString()->stringValue()[0] == 'q')) { + // Query user + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_QUERY; + } else if ((Prop->getString()->stringValue()[0] == 'I') || (Prop->getString()->stringValue()[0] == 'i')) { + // Insert + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_INSERT; + } else if ((Prop->getString()->stringValue()[0] == 'W') || (Prop->getString()->stringValue()[0] == 'w')) { + // White list + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_WHITELIST; + } else if ((Prop->getString()->stringValue()[0] == 'B') || (Prop->getString()->stringValue()[0] == 'b')) { + // Black list + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_BLACKLIST; + } else if ((Prop->getString()->stringValue()[0] == 'U') || (Prop->getString()->stringValue()[0] == 'u')) { + // User policy + settingsData.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_USER; + } + } + // Secure boot white list + const TagArray* arrayProp = BootDict->arrayPropertyForKey("WhiteList"); + if (arrayProp != NULL) { + INTN i; + INTN Count = arrayProp->arrayContent().size(); + if (Count > 0) { + settingsData.Boot.SecureBootWhiteList.setEmpty(); + for (i = 0; i < Count; i++) { + const TagStruct* prop2 = &arrayProp->arrayContent()[i]; + if ( !prop2->isString() ) { + MsgLog("MALFORMED PLIST : WhiteList must be an array of string"); + continue; + } + if ( prop2->getString()->stringValue().notEmpty() ) { + settingsData.Boot.SecureBootWhiteList.AddNoNull(prop2->getString()->stringValue()); + } + } + } + } + // Secure boot black list + arrayProp = BootDict->arrayPropertyForKey("BlackList"); + if (arrayProp != NULL && arrayProp->isArray()) { + INTN i; + INTN Count = arrayProp->arrayContent().size(); + if (Count > 0) { + settingsData.Boot.SecureBootBlackList.setEmpty(); + for (i = 0; i < Count; i++) { + const TagStruct* prop2 = &arrayProp->arrayContent()[i]; + if ( !prop2->isString() ) { + MsgLog("MALFORMED PLIST : BlackList must be an array of string"); + continue; + } + if ( prop2->getString()->stringValue().notEmpty() ) { + settingsData.Boot.SecureBootBlackList.AddNoNull(prop2->getString()->stringValue()); + } + } + } + } + + // XMP memory profiles + // -1 = do not detect + // 0 = Detect the better XMP profile + // 1 = Use first profile if present + // 2 = Use second profile + Prop = BootDict->propertyForKey("XMPDetection"); + if (Prop != NULL) { + settingsData.Boot.XMPDetection = 0; + if ( Prop->isFalse() ) { + settingsData.Boot.XMPDetection = -1; + } else if ( Prop->isString() ) { + if ((Prop->getString()->stringValue()[0] == 'n') || + (Prop->getString()->stringValue()[0] == 'N') || + (Prop->getString()->stringValue()[0] == '-')) { + settingsData.Boot.XMPDetection = -1; + } else { + settingsData.Boot.XMPDetection = (INT8)AsciiStrDecimalToUintn(Prop->getString()->stringValue().c_str()); + } + } else if (Prop->isInt64()) { + settingsData.Boot.XMPDetection = (INT8)Prop->getInt64()->intValue(); + } + // Check that the setting value is sane + if ((settingsData.Boot.XMPDetection < -1) || (settingsData.Boot.XMPDetection > 2)) { + settingsData.Boot.XMPDetection = -1; + } + } + + // Legacy bios protocol + Prop = BootDict->propertyForKey("Legacy"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : Prop property not string in Legacy\n"); + }else{ + settingsData.Boot.LegacyBoot = Prop->getString()->stringValue(); + } + } else if (gFirmwareClover) { + // default for CLOVER EFI boot + settingsData.Boot.LegacyBoot = "PBR"_XS8; + } else { + // default for UEFI boot + settingsData.Boot.LegacyBoot = "LegacyBiosDefault"_XS8; + } + + // Entry for LegacyBiosDefault + Prop = BootDict->propertyForKey("LegacyBiosDefaultEntry"); + if (Prop != NULL) { + settingsData.Boot.LegacyBiosDefaultEntry = (UINT16)GetPropertyAsInteger(Prop, 0); // disabled by default + } + + // Whether or not to draw boot screen + settingsData.Boot.CustomLogoAsXString8.setEmpty(); + settingsData.Boot.CustomLogoAsData.setEmpty(); + Prop = BootDict->propertyForKey("CustomLogo"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_APPLE; + } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + settingsData.Boot.CustomLogoAsXString8 = Prop->getString()->stringValue(); + if (Prop->getString()->stringValue().isEqualIC("Apple")) { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_APPLE; + } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_ALT_APPLE; + } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_THEME; + } else { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_USER; +// if (settingsData.Boot.CustomLogo != NULL) { +// delete settingsData.Boot.CustomLogo; +// } +// settingsData.Boot.CustomLogo = new XImage; +// settingsData.Boot.CustomLogo->LoadXImage(&self.getSelfVolumeRootDir(), customLogo); +// if (settingsData.Boot.CustomLogo->isEmpty()) { +// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); +// settingsData.Boot.CustomBoot = CUSTOM_BOOT_DISABLED; +// } + } + } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { + settingsData.Boot.CustomLogoAsData = Prop->getData()->data(); + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_USER; +// if (settingsData.Boot.CustomLogo != NULL) { +// delete settingsData.Boot.CustomLogo; +// } +// settingsData.Boot.CustomLogo = new XImage; +// settingsData.Boot.CustomLogo->FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); +// if (settingsData.Boot.CustomLogo->isEmpty()) { +// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); +// settingsData.Boot.CustomBoot = CUSTOM_BOOT_DISABLED; +// } + } else { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_USER_DISABLED; + } + } else { + settingsData.Boot.CustomLogoType = CUSTOM_BOOT_DISABLED; + } + + } + + //*** SYSTEM *** + settingsData.SystemParameters.WithKexts = TRUE; //default + const TagDict* SystemParametersDict = CfgDict->dictPropertyForKey("SystemParameters"); + if (SystemParametersDict != NULL) { + // Inject kexts + const TagStruct* Prop = SystemParametersDict->propertyForKey("InjectKexts"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.SystemParameters.WithKexts = TRUE; + } else if ((Prop->isString()) && + (Prop->getString()->stringValue().isEqualIC("Detect"))) { + // settingsData.WithKexts = TRUE; + settingsData.SystemParameters.WithKextsIfNoFakeSMC = TRUE; + } + } + + // No caches - obsolete + Prop = SystemParametersDict->propertyForKey("NoCaches"); + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.SystemParameters.NoCaches = TRUE; + } + //test float - success +// Prop = SystemParametersDict->propertyForKey("BlueValue"); +// float tmpF = GetPropertyFloat(Prop, 1.2f); +// DBG(" get BlueValue=%f\n", tmpF); + + } + + // KernelAndKextPatches + const TagDict* KernelAndKextPatchesDict = CfgDict->dictPropertyForKey("KernelAndKextPatches"); + if (KernelAndKextPatchesDict != NULL) { + FillinKextPatches(&settingsData.KernelAndKextPatches, KernelAndKextPatchesDict); + } + + const TagDict* GUIDict = CfgDict->dictPropertyForKey("GUI"); + if (GUIDict != NULL) { + const TagStruct* Prop = GUIDict->propertyForKey("Timezone"); + settingsData.GUI.Timezone = (INT32)GetPropertyAsInteger(Prop, settingsData.GUI.Timezone); +// //initialize Daylight when we know timezone +//#ifdef CLOVER_BUILD +// EFI_TIME Now; +// gRT->GetTime(&Now, NULL); +// INT32 NowHour = Now.Hour + settingsData.GUI.Timezone; +// if (NowHour < 0 ) NowHour += 24; +// if (NowHour >= 24 ) NowHour -= 24; +// ThemeX.Daylight = (NowHour > 8) && (NowHour < 20); +//#endif + + Prop = GUIDict->propertyForKey("Theme"); + if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { +// ThemeX.Theme.takeValueFrom(Prop->getString()->stringValue()); + settingsData.GUI.Theme.takeValueFrom(Prop->getString()->stringValue()); +// DBG("Default theme: %ls\n", settingsData.GUI.Theme.wc_str()); +// OldChosenTheme = 0xFFFF; //default for embedded +// for (UINTN i = 0; i < ThemeNameArray.size(); i++) { +// //now comparison is case sensitive +// if ( settingsData.GUI.Theme.isEqualIC(ThemeNameArray[i]) ) { +// OldChosenTheme = i; +// break; +// } +// } + } + // get embedded theme property even when starting with other themes, as they may be changed later + Prop = GUIDict->propertyForKey("EmbeddedThemeType"); + if (Prop && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + settingsData.GUI.EmbeddedThemeType = Prop->getString()->stringValue(); + if (Prop->getString()->stringValue().isEqualIC("Dark")) { +// settingsData.GUI.DarkEmbedded = TRUE; + //ThemeX.Font = FONT_GRAY; + } else if (Prop->getString()->stringValue().isEqualIC("Light")) { +// settingsData.GUI.DarkEmbedded = FALSE; + //ThemeX.Font = FONT_ALFA; + } else if (Prop->getString()->stringValue().isEqualIC("Daytime")) { +// settingsData.GUI.DarkEmbedded = !ThemeX.Daylight; + //ThemeX.Font = ThemeX.Daylight?FONT_ALFA:FONT_GRAY; + } + } + Prop = GUIDict->propertyForKey("PlayAsync"); //PlayAsync + settingsData.GUI.PlayAsync = IsPropertyNotNullAndTrue(Prop); + + // CustomIcons + Prop = GUIDict->propertyForKey("CustomIcons"); + settingsData.GUI.CustomIcons = IsPropertyNotNullAndTrue(Prop); + Prop = GUIDict->propertyForKey("TextOnly"); + settingsData.GUI.TextOnly = IsPropertyNotNullAndTrue(Prop); + Prop = GUIDict->propertyForKey("ShowOptimus"); + settingsData.GUI.ShowOptimus = IsPropertyNotNullAndTrue(Prop); + + Prop = GUIDict->propertyForKey("ScreenResolution"); + if (Prop != NULL) { + if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + settingsData.GUI.ScreenResolution.takeValueFrom(Prop->getString()->stringValue()); + } + } + + Prop = GUIDict->propertyForKey("ProvideConsoleGop"); + settingsData.GUI.ProvideConsoleGop = !IsPropertyNotNullAndFalse(Prop); //default is true + + Prop = GUIDict->propertyForKey("ConsoleMode"); + if (Prop != NULL) { + if (Prop->isInt64()) { + settingsData.GUI.ConsoleMode = Prop->getInt64()->intValue(); + } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + if ( Prop->getString()->stringValue().contains("Max") ) { + settingsData.GUI.ConsoleMode = -1; + DBG("ConsoleMode will be set to highest mode\n"); + } else if ( Prop->getString()->stringValue().contains("Min") ) { + settingsData.GUI.ConsoleMode = -2; + DBG("ConsoleMode will be set to lowest mode\n"); + } else { + settingsData.GUI.ConsoleMode = (INT32)AsciiStrDecimalToUintn(Prop->getString()->stringValue()); + } + } + if (settingsData.GUI.ConsoleMode > 0) { + DBG("ConsoleMode will be set to mode #%lld\n", settingsData.GUI.ConsoleMode); + } + } + + Prop = GUIDict->propertyForKey("Language"); + if (Prop != NULL) { + settingsData.GUI.Language = Prop->getString()->stringValue(); + if ( Prop->getString()->stringValue().contains("en") ) { + settingsData.GUI.languageCode = english; +// settingsData.GUI.Codepage = 0xC0; +// settingsData.GUI.CodepageSize = 0; + } else if ( Prop->getString()->stringValue().contains("ru")) { + settingsData.GUI.languageCode = russian; +// settingsData.GUI.Codepage = 0x410; +// settingsData.GUI.CodepageSize = 0x40; + } else if ( Prop->getString()->stringValue().contains("ua")) { + settingsData.GUI.languageCode = ukrainian; +// settingsData.GUI.Codepage = 0x400; +// settingsData.GUI.CodepageSize = 0x60; + } else if ( Prop->getString()->stringValue().contains("fr")) { + settingsData.GUI.languageCode = french; //default is extended latin + } else if ( Prop->getString()->stringValue().contains("it")) { + settingsData.GUI.languageCode = italian; + } else if ( Prop->getString()->stringValue().contains("es")) { + settingsData.GUI.languageCode = spanish; + } else if ( Prop->getString()->stringValue().contains("pt")) { + settingsData.GUI.languageCode = portuguese; + } else if ( Prop->getString()->stringValue().contains("br")) { + settingsData.GUI.languageCode = brasil; + } else if ( Prop->getString()->stringValue().contains("de")) { + settingsData.GUI.languageCode = german; + } else if ( Prop->getString()->stringValue().contains("nl")) { + settingsData.GUI.languageCode = dutch; + } else if ( Prop->getString()->stringValue().contains("pl")) { + settingsData.GUI.languageCode = polish; + } else if ( Prop->getString()->stringValue().contains("cz")) { + settingsData.GUI.languageCode = czech; + } else if ( Prop->getString()->stringValue().contains("hr")) { + settingsData.GUI.languageCode = croatian; + } else if ( Prop->getString()->stringValue().contains("id")) { + settingsData.GUI.languageCode = indonesian; + } else if ( Prop->getString()->stringValue().contains("zh_CN")) { + settingsData.GUI.languageCode = chinese; +// settingsData.GUI.Codepage = 0x3400; +// settingsData.GUI.CodepageSize = 0x19C0; + } else if ( Prop->getString()->stringValue().contains("ro")) { + settingsData.GUI.languageCode = romanian; + } else if ( Prop->getString()->stringValue().contains("ko")) { + settingsData.GUI.languageCode = korean; +// settingsData.GUI.Codepage = 0x1100; +// settingsData.GUI.CodepageSize = 0x100; + } + } + +// if (settingsData.Language != NULL) { // settingsData.Language != NULL cannot be false because settingsData.Language is dclared as CHAR8 Language[16]; Must we replace by settingsData.Language[0] != NULL + Prop = GUIDict->propertyForKey("KbdPrevLang"); + if (Prop != NULL) { + settingsData.GUI.KbdPrevLang = IsPropertyNotNullAndTrue(Prop); + } +// } + + const TagDict* MouseDict = GUIDict->dictPropertyForKey("Mouse"); + if (MouseDict != NULL) { + const TagStruct* prop = MouseDict->propertyForKey("Speed"); + if (prop != NULL) { + settingsData.GUI.Mouse.PointerSpeed = (INT32)GetPropertyAsInteger(prop, 0); + settingsData.GUI.Mouse.PointerEnabled = (settingsData.GUI.Mouse.PointerSpeed != 0); + } + //but we can disable mouse even if there was positive speed + prop = MouseDict->propertyForKey("Enabled"); + if (IsPropertyNotNullAndFalse(prop)) { + settingsData.GUI.Mouse.PointerEnabled = FALSE; + } + + prop = MouseDict->propertyForKey("Mirror"); + if (IsPropertyNotNullAndTrue(prop)) { + settingsData.GUI.Mouse.PointerMirror = TRUE; + } + + prop = MouseDict->propertyForKey("DoubleClickTime"); + if (prop != NULL) { + settingsData.GUI.Mouse.DoubleClickTime = (UINT64)GetPropertyAsInteger(prop, 500); + } + } + // hide by name/uuid. Array of string + const TagArray* HideArray = GUIDict->arrayPropertyForKey("Hide"); + if (HideArray != NULL) { + INTN i; + INTN Count = HideArray->arrayContent().size(); + if (Count > 0) { + settingsData.GUI.HVHideStrings.setEmpty(); + for (i = 0; i < Count; i++) { + const TagStruct* prop2 = &HideArray->arrayContent()[i]; + if ( !prop2->isString()) { + MsgLog("MALFORMED PLIST : Hide must be an array of string"); + continue; + } + if ( prop2->getString()->stringValue().notEmpty() ) { + settingsData.GUI.HVHideStrings.Add(prop2->getString()->stringValue()); + DBG("Hiding entries with string %s\n", prop2->getString()->stringValue().c_str()); + } + } + } + } + settingsData.GUI.Scan.LinuxScan = TRUE; + // Disable loader scan + Prop = GUIDict->propertyForKey("Scan"); + if (Prop != NULL) { + if (IsPropertyNotNullAndFalse(Prop)) { + settingsData.GUI.Scan.DisableEntryScan = TRUE; + settingsData.GUI.Scan.DisableToolScan = TRUE; + settingsData.GUI.Scan.NoLegacy = TRUE; + } else if (Prop->isDict()) { + const TagStruct* prop2 = Prop->getDict()->propertyForKey("Entries"); + if (IsPropertyNotNullAndFalse(prop2)) { + settingsData.GUI.Scan.DisableEntryScan = TRUE; + } + prop2 = Prop->getDict()->propertyForKey("Tool"); + if (IsPropertyNotNullAndFalse(prop2)) { + settingsData.GUI.Scan.DisableToolScan = TRUE; + } + prop2 = Prop->getDict()->propertyForKey("Linux"); + settingsData.GUI.Scan.LinuxScan = !IsPropertyNotNullAndFalse(prop2); + prop2 = Prop->getDict()->propertyForKey("Legacy"); + if (prop2 != NULL) { + if (prop2->isFalse()) { + settingsData.GUI.Scan.NoLegacy = TRUE; + } else if ((prop2->isString()) && prop2->getString()->stringValue().notEmpty() ) { + if ((prop2->getString()->stringValue()[0] == 'N') || (prop2->getString()->stringValue()[0] == 'n')) { + settingsData.GUI.Scan.NoLegacy = TRUE; + } else if ((prop2->getString()->stringValue()[0] == 'F') || (prop2->getString()->stringValue()[0] == 'f')) { + settingsData.GUI.Scan.LegacyFirst = TRUE; + } + } + } + prop2 = Prop->getDict()->propertyForKey("Kernel"); + if (prop2 != NULL) { + if (prop2->isFalse()) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_NONE; + } else if ((prop2->isString()) && prop2->getString()->stringValue().notEmpty() ) { + if ((prop2->getString()->stringValue()[0] == 'N') || (prop2->getString()->stringValue()[0] == 'n')) { + settingsData.GUI.Scan.KernelScan = ( prop2->getString()->stringValue().length() > 1 && (prop2->getString()->stringValue()[1] == 'E' || prop2->getString()->stringValue()[1] == 'e') ) ? KERNEL_SCAN_NEWEST : KERNEL_SCAN_NONE; + } else if ((prop2->getString()->stringValue()[0] == 'O') || (prop2->getString()->stringValue()[0] == 'o')) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_OLDEST; + } else if ((prop2->getString()->stringValue()[0] == 'F') || (prop2->getString()->stringValue()[0] == 'f')) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_FIRST; + } else if ((prop2->getString()->stringValue()[0] == 'L') || (prop2->getString()->stringValue()[0] == 'l')) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_LAST; + } else if ((prop2->getString()->stringValue()[0] == 'M') || (prop2->getString()->stringValue()[0] == 'm')) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_MOSTRECENT; + } else if ((prop2->getString()->stringValue()[0] == 'E') || (prop2->getString()->stringValue()[0] == 'e')) { + settingsData.GUI.Scan.KernelScan = KERNEL_SCAN_EARLIEST; + } + } + } + } + } + // Custom entries + const TagDict* CustomDict2 = GUIDict->dictPropertyForKey("Custom"); + if (CustomDict2 != NULL) { + const TagArray* arrayProp = CustomDict2->arrayPropertyForKey("Entries"); // Entries is an array of dict + if (arrayProp != NULL) { + INTN Count = arrayProp->arrayContent().size(); + if (Count > 0) { + for (INTN i = 0; i < Count; i++) { + const TagDict* Dict3 = arrayProp->dictElementAt(i, "Custom/Entries"_XS8); + // Allocate an entry + CUSTOM_LOADER_ENTRY_SETTINGS* Entry = new CUSTOM_LOADER_ENTRY_SETTINGS; + // Fill it in + if ( FillinCustomEntry(Entry, Dict3, FALSE, settingsData) ) { + settingsData.GUI.CustomEntriesSettings.AddReference(Entry, true); + }else{ + delete Entry; + } + } + } + } + const TagArray* LegacyArray = CustomDict2->arrayPropertyForKey("Legacy"); // is an array of dict + if (LegacyArray != NULL) { + CUSTOM_LEGACY_ENTRY_SETTINGS *Entry; + INTN i; + INTN Count = LegacyArray->arrayContent().size(); + if (Count > 0) { + for (i = 0; i < Count; i++) { + const TagDict* Dict3 = LegacyArray->dictElementAt(i, "Legacy"_XS8); + // Allocate an entry + Entry = new CUSTOM_LEGACY_ENTRY_SETTINGS; + // Fill it in + if ( FillingCustomLegacy(Entry, Dict3) ) { + settingsData.GUI.CustomLegacySettings.AddReference(Entry, true); + }else{ + delete Entry; + } + } + } + } + const TagArray* ToolArray = CustomDict2->arrayPropertyForKey("Tool"); // is an array of dict + if (ToolArray != NULL) { + INTN i; + INTN Count = ToolArray->arrayContent().size(); + if (Count > 0) { + for (i = 0; i < Count; i++) { + const TagDict* Dict3 = ToolArray->dictElementAt(i, "Tool"_XS8); + // Allocate an entry + CUSTOM_TOOL_ENTRY_SETTINGS* Entry = new CUSTOM_TOOL_ENTRY_SETTINGS; + // Fill it in + if ( FillingCustomTool(Entry, Dict3) ) { + settingsData.GUI.CustomToolSettings.AddReference(Entry, true); + }else{ + delete Entry; + } + } + } + } + } + } + const TagDict* GraphicsDict = CfgDict->dictPropertyForKey("Graphics"); + if (GraphicsDict != NULL) { + + const TagStruct* Prop = GraphicsDict->propertyForKey("PatchVBios"); + settingsData.Graphics.PatchVBios = IsPropertyNotNullAndTrue(Prop); + + settingsData.Graphics.PatchVBiosBytes.setEmpty(); + + const TagArray* Dict2 = GraphicsDict->arrayPropertyForKey("PatchVBiosBytes"); // array of dict + if (Dict2 != NULL) { + INTN Count = Dict2->arrayContent().size(); + if (Count > 0) { + UINTN FindSize = 0; + UINTN ReplaceSize = 0; + BOOLEAN Valid; + // alloc space for up to 16 entries +// settingsData.Graphics.PatchVBiosBytes = (__typeof__(settingsData.Graphics.PatchVBiosBytes))AllocateZeroPool(Count * sizeof(VBIOS_PATCH_BYTES)); + + // get all entries + for (INTN i = 0; i < Count; i++) { + const TagDict* dict3 = Dict2->dictElementAt(i, "Graphics/PatchVBiosBytes"_XS8); + Valid = TRUE; + // read entry + VBIOS_PATCH* VBiosPatchPtr = new VBIOS_PATCH; + VBIOS_PATCH& VBiosPatch = *VBiosPatchPtr; +// VBiosPatch = &settingsData.Graphics.PatchVBiosBytes[settingsData.Graphics.PatchVBiosBytesCount]; + UINT8* DataSetting = GetDataSetting (dict3, "Find", &FindSize); + VBiosPatch.Find.stealValueFrom(DataSetting, FindSize); + DataSetting = GetDataSetting (dict3, "Replace", &ReplaceSize); + VBiosPatch.Replace.stealValueFrom(DataSetting, ReplaceSize); + + if ( VBiosPatch.Find.size() == 0 ) { + Valid = FALSE; + DBG("PatchVBiosBytes[%lld]: missing Find data\n", i); + } + + if ( VBiosPatch.Replace.size() == 0 ) { + Valid = FALSE; + DBG("PatchVBiosBytes[%lld]: missing Replace data\n", i); + } + + if (VBiosPatch.Find.size() != VBiosPatch.Replace.size()) { + Valid = FALSE; + DBG("PatchVBiosBytes[%lld]: Find and Replace data are not the same size\n", i); + } + + if (Valid) { +// VBiosPatch->NumberOfBytes = FindSize; + // go to next entry +// ++settingsData.Graphics.PatchVBiosBytesCount; + settingsData.Graphics.PatchVBiosBytes.AddReference(VBiosPatchPtr, true); + } else { + // error - release mem + delete VBiosPatchPtr; +// if (VBiosPatch->Find != NULL) { +// FreePool(VBiosPatch->Find); +// VBiosPatch->Find = NULL; +// } +// if (VBiosPatch->Replace != NULL) { +// FreePool(VBiosPatch->Replace); +// VBiosPatch->Replace = NULL; +// } + } + } + +// if (settingsData.Graphics.PatchVBiosBytesCount == 0) { +// FreePool(settingsData.Graphics.PatchVBiosBytes); +// settingsData.Graphics.PatchVBiosBytes = NULL; +// } + } + } + + GetEDIDSettings(GraphicsDict, settingsData); + } + + const TagArray* DisableDriversArray = CfgDict->arrayPropertyForKey("DisableDrivers"); // array of string + if (DisableDriversArray != NULL) { + INTN i; + INTN Count = DisableDriversArray->arrayContent().size(); + if (Count > 0) { + settingsData.DisabledDriverArray.setEmpty(); + + for (i = 0; i < Count; i++) { + const TagStruct* Prop = &DisableDriversArray->arrayContent()[i]; + if ( !Prop->isString()) { + MsgLog("MALFORMED PLIST : DisableDrivers must be an array of string"); + continue; + } + if ( Prop->getString()->stringValue().notEmpty() ) + settingsData.DisabledDriverArray.Add(Prop->getString()->stringValue()); + } + } + } + + const TagDict* DevicesDict = CfgDict->dictPropertyForKey("Devices"); + if (DevicesDict != NULL) { + const TagDict* Dict2 = DevicesDict->dictPropertyForKey("Audio"); + if (Dict2 != NULL) { + // HDA + const TagStruct* Prop = Dict2->propertyForKey("ResetHDA"); + settingsData.Devices.Audio.ResetHDA = IsPropertyNotNullAndTrue(Prop); + } + } + + const TagDict* RtVariablesDict = CfgDict->dictPropertyForKey("RtVariables"); + if (RtVariablesDict != NULL) { + const TagStruct* Prop = RtVariablesDict->propertyForKey("ROM"); + if (Prop != NULL) { + if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr0") ) { + settingsData.RtVariables.RtROMAsString = Prop->getString()->stringValue(); + } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr1") ) { + settingsData.RtVariables.RtROMAsString = Prop->getString()->stringValue(); + } else if ( Prop->isString() || Prop->isData() ) { // GetDataSetting accept both + UINTN ROMLength = 0; + uint8_t* ROM = GetDataSetting(RtVariablesDict, "ROM", &ROMLength); + settingsData.RtVariables.RtROMAsData.stealValueFrom(ROM, ROMLength); + } else { + MsgLog("MALFORMED PLIST : property not string or data in RtVariables/ROM\n"); + } + } + } + + settingsData.Quirks.mmioWhiteListArray.setEmpty(); + // const TagDict* OcQuirksDict = CfgDict->dictPropertyForKey("OcQuirks"); +//if ( OcQuirksDict ) panic("config.plist/OcQuirks has been renamed Quirks. Update your config.plist"); + + const TagDict* OcQuirksDict = CfgDict->dictPropertyForKey("Quirks"); +//if ( !OcQuirksDict ) panic("Cannot find config.plist/Quirks"); + if (OcQuirksDict != NULL) { + const TagStruct* Prop; + Prop = OcQuirksDict->propertyForKey("AvoidRuntimeDefrag"); +//if ( !Prop ) panic("Cannot find AvoidRuntimeDefrag in OcQuirks under root (OC booter quirks)"); + settingsData.Quirks.OcBooterQuirks.AvoidRuntimeDefrag = !IsPropertyNotNullAndFalse(Prop); //true if absent so no panic + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.AvoidRuntimeDefrag? QUIRK_DEFRAG:0; + Prop = OcQuirksDict->propertyForKey( "DevirtualiseMmio"); + settingsData.Quirks.OcBooterQuirks.DevirtualiseMmio = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.DevirtualiseMmio? QUIRK_MMIO:0; + Prop = OcQuirksDict->propertyForKey( "DisableSingleUser"); + settingsData.Quirks.OcBooterQuirks.DisableSingleUser = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.DisableSingleUser? QUIRK_SU:0; + Prop = OcQuirksDict->propertyForKey( "DisableVariableWrite"); + settingsData.Quirks.OcBooterQuirks.DisableVariableWrite = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.DisableVariableWrite? QUIRK_VAR:0; + Prop = OcQuirksDict->propertyForKey( "DiscardHibernateMap"); + settingsData.Quirks.OcBooterQuirks.DiscardHibernateMap = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.DiscardHibernateMap? QUIRK_HIBER:0; + Prop = OcQuirksDict->propertyForKey( "EnableSafeModeSlide"); + settingsData.Quirks.OcBooterQuirks.EnableSafeModeSlide = !IsPropertyNotNullAndFalse(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.EnableSafeModeSlide? QUIRK_SAFE:0; + Prop = OcQuirksDict->propertyForKey( "EnableWriteUnprotector"); + settingsData.Quirks.OcBooterQuirks.EnableWriteUnprotector = !IsPropertyNotNullAndFalse(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.EnableWriteUnprotector? QUIRK_UNPROT:0; + Prop = OcQuirksDict->propertyForKey( "ForceExitBootServices"); + settingsData.Quirks.OcBooterQuirks.ForceExitBootServices = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.ForceExitBootServices? QUIRK_EXIT:0; + Prop = OcQuirksDict->propertyForKey( "ProtectMemoryRegions"); + settingsData.Quirks.OcBooterQuirks.ProtectMemoryRegions = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.ProtectMemoryRegions? QUIRK_REGION:0; + Prop = OcQuirksDict->propertyForKey( "ProtectSecureBoot"); + settingsData.Quirks.OcBooterQuirks.ProtectSecureBoot = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.ProtectSecureBoot? QUIRK_SECURE:0; + Prop = OcQuirksDict->propertyForKey( "ProtectUefiServices"); + settingsData.Quirks.OcBooterQuirks.ProtectUefiServices = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.ProtectUefiServices? QUIRK_UEFI:0; + //it is in GUI section +// Prop = OcQuirksDict->propertyForKey( "ProvideConsoleGopEnable"); +// settingsData.ProvideConsoleGop = !IsPropertyNotNullAndFalse(Prop); + Prop = OcQuirksDict->propertyForKey( "ProvideCustomSlide"); + settingsData.Quirks.OcBooterQuirks.ProvideCustomSlide = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.ProvideCustomSlide? QUIRK_CUSTOM:0; + Prop = OcQuirksDict->propertyForKey( "ProvideMaxSlide"); + settingsData.Quirks.OcBooterQuirks.ProvideMaxSlide = (UINT8)GetPropertyAsInteger(Prop, 0); // cast will be safe when the new parser will ensure that the value is UINT8 + Prop = OcQuirksDict->propertyForKey( "RebuildAppleMemoryMap"); + settingsData.Quirks.OcBooterQuirks.RebuildAppleMemoryMap = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.RebuildAppleMemoryMap? QUIRK_MAP:0; + Prop = OcQuirksDict->propertyForKey( "SetupVirtualMap"); + settingsData.Quirks.OcBooterQuirks.SetupVirtualMap = !IsPropertyNotNullAndFalse(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.SetupVirtualMap? QUIRK_VIRT:0; + Prop = OcQuirksDict->propertyForKey( "SignalAppleOS"); + settingsData.Quirks.OcBooterQuirks.SignalAppleOS = IsPropertyNotNullAndTrue(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.SignalAppleOS? QUIRK_OS:0; + Prop = OcQuirksDict->propertyForKey( "SyncRuntimePermissions"); + settingsData.Quirks.OcBooterQuirks.SyncRuntimePermissions = !IsPropertyNotNullAndFalse(Prop); + settingsData.Quirks.QuirksMask |= settingsData.Quirks.OcBooterQuirks.SyncRuntimePermissions? QUIRK_PERM:0; + settingsData.Quirks.mmioWhiteListArray.setEmpty(); + + const TagArray* Dict2 = OcQuirksDict->arrayPropertyForKey("MmioWhitelist"); // array of dict + if (Dict2 != NULL) { + INTN Count = Dict2->arrayContent().size(); + //OC_SCHEMA_INTEGER_IN ("Address", OC_MMIO_WL_STRUCT, Address), + //OC_SCHEMA_STRING_IN ("Comment", OC_MMIO_WL_STRUCT, Comment), + //OC_SCHEMA_BOOLEAN_IN ("Enabled", OC_MMIO_WL_STRUCT, Enabled), + if (Count > 0) { + for (INTN i = 0; i < Count; i++) + { + const TagDict* Dict3 = Dict2->dictElementAt(i, "MmioWhitelist"_XS8); + SETTINGS_DATA::QuirksClass::MMIOWhiteList* mmioWhiteListPtr = new SETTINGS_DATA::QuirksClass::MMIOWhiteList(); + SETTINGS_DATA::QuirksClass::MMIOWhiteList& mmioWhiteList = *mmioWhiteListPtr; + + const TagStruct* Prop2 = Dict3->propertyForKey("Comment"); + if (Prop2 != NULL && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { + mmioWhiteList.comment = Prop2->getString()->stringValue(); + } else { + mmioWhiteList.comment = " (NoLabel)"_XS8; + } + + Prop2 = Dict3->propertyForKey("Address"); + if (Prop2 != 0) { + mmioWhiteList.address = GetPropertyAsInteger(Prop2, 0); + Prop2 = Dict3->propertyForKey("Enabled"); + mmioWhiteList.enabled = IsPropertyNotNullAndTrue(Prop2); + } + settingsData.Quirks.mmioWhiteListArray.AddReference(mmioWhiteListPtr, true); + } + } + } + + Prop = OcQuirksDict->propertyForKey("FuzzyMatch"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + settingsData.Quirks.FuzzyMatch = !IsPropertyNotNullAndFalse(Prop); + } + + Prop = OcQuirksDict->propertyForKey("KernelCache"); + if (Prop != NULL || GlobalConfig.gBootChanged) { + if ( Prop->isString() ) { + if ( Prop->getString()->stringValue().notEmpty() ) { + settingsData.Quirks.OcKernelCache = Prop->getString()->stringValue(); + }else{ + settingsData.Quirks.OcKernelCache = "Auto"_XS8; + } + }else{ + MsgLog("MALFORMED PLIST : Quirks/KernelCache must be a string"); + settingsData.Quirks.OcKernelCache = "Auto"_XS8; + } + } + + + // Booter Quirks +// Prop = OcQuirksDict->propertyForKey("AppleCpuPmCfgLock"); +// settingsData.KernelAndKextPatches.OcKernelQuirks.AppleCpuPmCfgLock = IsPropertyNotNullAndTrue(Prop); +// settingsData.Quirks.OcKernelQuirks.AppleCpuPmCfgLock = settingsData.KernelAndKextPatches.KPAppleIntelCPUPM || GlobalConfig.NeedPMfix; + +// Prop = OcQuirksDict->propertyForKey("AppleXcpmCfgLock"); // +// settingsData.KernelAndKextPatches.OcKernelQuirks.AppleXcpmCfgLock = IsPropertyNotNullAndTrue(Prop); +// settingsData.Quirks.OcKernelQuirks.AppleXcpmCfgLock = GlobalConfig.KPKernelPm || GlobalConfig.NeedPMfix; + + Prop = OcQuirksDict->propertyForKey("AppleXcpmExtraMsrs"); + settingsData.Quirks.OcKernelQuirks.AppleXcpmExtraMsrs = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("AppleXcpmForceBoost"); + settingsData.Quirks.OcKernelQuirks.AppleXcpmForceBoost = IsPropertyNotNullAndTrue(Prop); + +// We can't use that Quirks because we don't delegate SMBios to OC. +// Prop = OcQuirksDict->propertyForKey("CustomSMBIOSGuid"); +// settingsData.KernelAndKextPatches.OcKernelQuirks.CustomSmbiosGuid = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("DisableIoMapper"); +//if ( !Prop ) panic("Cannot find DisableIoMapper in config.plist/Quirks. You forgot to merge your quirks into one section. Update your config.plist"); + settingsData.Quirks.OcKernelQuirks.DisableIoMapper = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("DisableLinkeditJettison"); + settingsData.Quirks.OcKernelQuirks.DisableLinkeditJettison = IsPropertyNotNullAndTrue(Prop); + + // Prop = OcQuirksDict->propertyForKey("DisableRtcChecksum"); + // settingsData.KernelAndKextPatches.OcKernelQuirks.DisableRtcChecksum = IsPropertyNotNullAndTrue(Prop); +// settingsData.Quirks.OcKernelQuirks.DisableRtcChecksum = settingsData.KernelAndKextPatches.KPAppleRTC; + + Prop = OcQuirksDict->propertyForKey("DummyPowerManagement"); + settingsData.Quirks.OcKernelQuirks.DummyPowerManagement = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("ExternalDiskIcons"); + settingsData.Quirks.OcKernelQuirks.ExternalDiskIcons = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("IncreasePciBarSize"); + settingsData.Quirks.OcKernelQuirks.IncreasePciBarSize = IsPropertyNotNullAndTrue(Prop); + + // Prop = OcQuirksDict->propertyForKey("LapicKernelPanic"); + // settingsData.KernelAndKextPatches.OcKernelQuirks.LapicKernelPanic = IsPropertyNotNullAndTrue(Prop); +// settingsData.Quirks.OcKernelQuirks.LapicKernelPanic = settingsData.KernelAndKextPatches.KPKernelLapic; + +// Prop = OcQuirksDict->propertyForKey("PanicNoKextDump"); +// settingsData.KernelAndKextPatches.OcKernelQuirks.PanicNoKextDump = IsPropertyNotNullAndTrue(Prop); //KPPanicNoKextDump +// settingsData.Quirks.OcKernelQuirks.PanicNoKextDump = settingsData.KernelAndKextPatches.KPPanicNoKextDump; + + Prop = OcQuirksDict->propertyForKey("PowerTimeoutKernelPanic"); + settingsData.Quirks.OcKernelQuirks.PowerTimeoutKernelPanic = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("ThirdPartyDrives"); + settingsData.Quirks.OcKernelQuirks.ThirdPartyDrives = IsPropertyNotNullAndTrue(Prop); + + Prop = OcQuirksDict->propertyForKey("XhciPortLimit"); + settingsData.Quirks.OcKernelQuirks.XhciPortLimit = IsPropertyNotNullAndTrue(Prop); + } + } + + return Status; +} + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" + +void +ParseSMBIOSSettings(SETTINGS_DATA& settingsData, const TagDict* DictPointer) +{ +#pragma GCC diagnostic pop + + const TagStruct* Prop; + const TagStruct* Prop1; + + + // TODO!!! + BOOLEAN Default = FALSE; + + + Prop = DictPointer->propertyForKey("ProductName"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductName\n"); + }else{ + DBG("ProductName SETTINGS_DATA=%s\n", settingsData.Smbios.ProductName.c_str()); + DBG("ProductName setting=%s\n", Prop->getString()->stringValue().c_str()); + MACHINE_TYPES Model; + settingsData.Smbios.ProductName = Prop->getString()->stringValue(); + DBG("ProductName new SETTINGS_DATA=%s\n", settingsData.Smbios.ProductName.c_str()); + // let's fill all other fields based on this ProductName + // to serve as default + Model = GetModelFromString(settingsData.Smbios.ProductName); + if (Model != MaxMachineType) { + DBG("SetDMISettingsForModel=%d\n", Model); + SetDMISettingsForModel(settingsData, Model, FALSE); + GlobalConfig.CurrentModel = Model; + Default = TRUE; + } else { + //if new model then fill at least as iMac13,2, except custom ProductName + // something else? + SetDMISettingsForModel(settingsData, iMac132, FALSE); + GlobalConfig.CurrentModel = MaxMachineType; + } + } + } + DBG("Using ProductName : %s\n", settingsData.Smbios.ProductName.c_str()); + + Prop = DictPointer->propertyForKey("SmbiosVersion"); + settingsData.Smbios.SmbiosVersion = (UINT16)GetPropertyAsInteger(Prop, 0x204); + + // Check for BiosVersion and BiosReleaseDate by Sherlocks + Prop = DictPointer->propertyForKey("BiosVersion"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + DBG("BiosVersion: not set, Using BiosVersion from clover\n"); + }else{ + settingsData.Smbios._RomVersion = Prop->getString()->stringValue(); + + const CHAR8* i = GlobalConfig.RomVersionUsed.c_str(); + const CHAR8* j = Prop->getString()->stringValue().c_str(); + + i += AsciiStrLen(i); + while (*i != '.') { + i--; + } + + j += AsciiStrLen(j); + while (*j != '.') { + j--; + } + + if (((i[1] > '0') && (j[1] == '0')) || ((i[1] >= j[1]) && (i[2] > j[2]))) { + DBG("Using latest BiosVersion from clover\n"); + } else if ((i[1] == j[1]) && (i[2] == j[2])) { + if (((i[3] > '0') && (j[3] == '0')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { + DBG("Using latest BiosVersion from clover\n"); + } else if ((i[3] == j[3]) && (i[4] == j[4])) { + if (((i[5] > '0') && (j[5] == '0')) || ((i[5] > '1') && (j[5] == '1')) || + ((i[5] > '2') && (j[5] == '2')) || ((i[5] >= j[5]) && (i[6] > j[6]))) { + DBG("Using latest BiosVersion from clover\n"); + } else if ((i[5] == j[5]) && (i[6] == j[6])) { + DBG("Found same BiosVersion in clover and config\n"); + } else { + GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); + DBG("Using latest BiosVersion from config\n"); + } + } else { + GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); + DBG("Using latest BiosVersion from config\n"); + } + } else { + GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); + DBG("Using latest BiosVersion from config\n"); + } + } + } else { + DBG("BiosVersion: not set, Using BiosVersion from clover\n"); + } + DBG("BiosVersion: %s\n", GlobalConfig.RomVersionUsed.c_str()); + + Prop1 = DictPointer->propertyForKey("BiosReleaseDate"); + if (Prop1 != NULL) { + if ( !Prop1->isString() ) { + MsgLog("ATTENTION : property not string in BiosReleaseDate\n"); + }else{ + settingsData.Smbios._ReleaseDate = Prop1->getString()->stringValue(); + if (Prop != NULL) { // Prop is BiosVersion + const CHAR8* i = GlobalConfig.ReleaseDateUsed.c_str(); + const CHAR8* j = settingsData.Smbios._ReleaseDate.c_str(); + + if ((AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 8)) { + if (((i[6] > '0') && (j[6] == '0')) || ((i[6] >= j[6]) && (i[7] > j[7]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[6] == j[6]) && (i[7] == j[7])) { + if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[0] == j[0]) && (i[1] == j[1])) { + if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || + ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[3] == j[3]) && (i[4] == j[4])) { + //DBG("Found same BiosReleaseDate in clover and config\n"); + } else { + GlobalConfig.ReleaseDateUsed = settingsData.Smbios._ReleaseDate; + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed = settingsData.Smbios._ReleaseDate; + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed = settingsData.Smbios._ReleaseDate; + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else if ((AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 10)) { + if (((i[6] > '0') && (j[8] == '0')) || ((i[6] >= j[8]) && (i[7] > j[9]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[6] == j[8]) && (i[7] == j[9])) { + if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[0] == j[0]) && (i[1] == j[1])) { + if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || + ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[3] == j[3]) && (i[4] == j[4])) { + //DBG("Found same BiosReleaseDate in clover and config\n"); + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else if ((AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 10)) { + if (((i[8] > '0') && (j[8] == '0')) || ((i[8] >= j[8]) && (i[9] > j[9]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[8] == j[8]) && (i[9] == j[9])) { + if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[0] == j[0]) && (i[1] == j[1])) { + if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || + ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[3] == j[3]) && (i[4] == j[4])) { + //DBG("Found same BiosReleaseDate in clover and config\n"); + } else { + GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else if ((AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 8)) { + if (((i[8] > '0') && (j[6] == '0')) || ((i[8] >= j[6]) && (i[9] > j[7]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[8] == j[6]) && (i[9] == j[7])) { + if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[0] == j[0]) && (i[1] == j[1])) { + if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || + ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { + //DBG("Found old BiosReleaseDate from config\n"); + //DBG("Using latest BiosReleaseDate from clover\n"); + } else if ((i[3] == j[3]) && (i[4] == j[4])) { + //DBG("Found same BiosReleaseDate in clover and config\n"); + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); + //DBG("Using latest BiosReleaseDate from config\n"); + } + } else { + //DBG("Found unknown date format from config\n"); + if (Prop != NULL) { + i = GlobalConfig.ReleaseDateUsed.c_str(); + j = GlobalConfig.RomVersionUsed.c_str(); + + j += AsciiStrLen(j); + while (*j != '.') { + j--; + } + + if ((AsciiStrLen(i) == 8)) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("Using the date of used BiosVersion\n"); + } else if ((AsciiStrLen(i) == 10)) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("Using the date of used BiosVersion\n"); + } + } else { + //DBG("Using BiosReleaseDate from clover\n"); + } + } + } else { + //DBG("BiosReleaseDate: set to %s from config, Ignore BiosReleaseDate\n", Prop1->getString()->stringValue().c_str()); + //DBG("Using BiosReleaseDate from clover\n"); + } + } + } else { + if (Prop != NULL) { + const CHAR8* i = GlobalConfig.ReleaseDateUsed.c_str(); + const CHAR8* j = GlobalConfig.RomVersionUsed.c_str(); + + j += AsciiStrLen(j); + while (*j != '.') { + j--; + } + + if ((AsciiStrLen(i) == 8)) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("BiosReleaseDate: not set, Using the date of used BiosVersion\n"); + } else if ((AsciiStrLen(i) == 10)) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("BiosReleaseDate: not set, Using the date of used BiosVersion\n"); + } + } else { + //DBG("BiosReleaseDate: not set, Using BiosReleaseDate from clover\n"); + } + } + DBG("BiosReleaseDate: %s\n", GlobalConfig.ReleaseDateUsed.c_str()); + + Prop = DictPointer->propertyForKey("EfiVersion"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in EfiVersion\n"); + if ( GlobalConfig.EfiVersionUsed.notEmpty() ) { + DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } + }else{ + settingsData.Smbios._EfiVersion = Prop->getString()->stringValue(); + settingsData.Smbios._EfiVersion.trim(); + if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) > AsciiStrVersionToUint64(settingsData.Smbios._EfiVersion, 4, 5)) { + DBG("Using latest EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } else if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) < AsciiStrVersionToUint64(settingsData.Smbios._EfiVersion, 4, 5)) { + GlobalConfig.EfiVersionUsed = settingsData.Smbios._EfiVersion; + DBG("Using latest EfiVersion from config: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } else { + DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } + } + } else if ( GlobalConfig.EfiVersionUsed.notEmpty() ) { + DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } + + Prop = DictPointer->propertyForKey("FirmwareFeatures"); + if (Prop != NULL) { + settingsData.Smbios.gFwFeatures = (UINT32)GetPropertyAsInteger(Prop, settingsData.Smbios.gFwFeatures); + DBG("Using FirmwareFeatures from config: 0x%08X\n", settingsData.Smbios.gFwFeatures); + } else { + DBG("Using FirmwareFeatures from clover: 0x%08X\n", settingsData.Smbios.gFwFeatures); + } + + Prop = DictPointer->propertyForKey("FirmwareFeaturesMask"); + if (Prop != NULL) { + settingsData.Smbios.gFwFeaturesMask = (UINT32)GetPropertyAsInteger(Prop, settingsData.Smbios.gFwFeaturesMask); + DBG("Using FirmwareFeaturesMask from config: 0x%08X\n", settingsData.Smbios.gFwFeaturesMask); + } else { + DBG("Using FirmwareFeaturesMask from clover: 0x%08X\n", settingsData.Smbios.gFwFeaturesMask); + } + + Prop = DictPointer->propertyForKey("PlatformFeature"); + if (Prop != NULL) { + settingsData.Smbios.gPlatformFeature = (UINT64)GetPropertyAsInteger(Prop, (INTN)settingsData.Smbios.gPlatformFeature); + } else { + if (settingsData.Smbios.gPlatformFeature == 0xFFFF) { + DBG("PlatformFeature will not set in SMBIOS\n"); + } else { +DBG("Using PlatformFeature from clover: 0x%llX\n", settingsData.Smbios.gPlatformFeature); + } + } + + Prop = DictPointer->propertyForKey("BiosVendor"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in BiosVendor\n"); + }else{ + settingsData.Smbios.BiosVendor = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("Manufacturer"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Manufacturer\n"); + }else{ + settingsData.Smbios.ManufactureName = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("Version"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Version\n"); + }else{ + settingsData.Smbios.VersionNr = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("Family"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Family\n"); + }else{ + settingsData.Smbios.FamilyName = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("SerialNumber"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in SerialNumber\n"); + }else{ + settingsData.Smbios.SerialNr = Prop->getString()->stringValue(); +DBG("settingsData.Smbios.SerialNr: %s\n", settingsData.Smbios.SerialNr.c_str()); + } + } + + Prop = DictPointer->propertyForKey("SmUUID"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in SmUUID\n"); + }else{ + if (IsValidGuidString(Prop->getString()->stringValue())) { + settingsData.Smbios.SmUUID = Prop->getString()->stringValue(); + } else { + DBG("Error: invalid SmUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop->getString()->stringValue().c_str()); + } + } + } + + Prop = DictPointer->propertyForKey("BoardManufacturer"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in BoardManufacturer\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + settingsData.Smbios.BoardManufactureName = Prop->getString()->stringValue(); + } + } + } + + Prop = DictPointer->propertyForKey("BoardSerialNumber"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in BoardSerialNumber\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + settingsData.Smbios.BoardSerialNumber = Prop->getString()->stringValue(); + } + } + } + + Prop = DictPointer->propertyForKey("Board-ID"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Board-ID\n"); + }else{ + settingsData.Smbios.BoardNumber = Prop->getString()->stringValue(); + DBG("Board-ID set from config as %s\n", settingsData.Smbios.BoardNumber.c_str()); + } + } + + if (!Default) { + settingsData.Smbios.BoardVersion = settingsData.Smbios.ProductName; + } + Prop = DictPointer->propertyForKey("BoardVersion"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in BoardVersion\n"); + }else{ + settingsData.Smbios.BoardVersion = Prop->getString()->stringValue(); +DBG("%s : BoardVersion: %s\n",__PRETTY_FUNCTION__, settingsData.Smbios.BoardVersion.c_str()); + } + } + + Prop = DictPointer->propertyForKey("BoardType"); + if (Prop != NULL) { + settingsData.Smbios.BoardType = (UINT8)GetPropertyAsInteger(Prop, settingsData.Smbios.BoardType); + DBG("BoardType: 0x%hhX\n", settingsData.Smbios.BoardType); + } + + Prop = DictPointer->propertyForKey("Mobile"); + if (Prop != NULL) { + if (IsPropertyNotNullAndFalse(Prop)) + settingsData.Smbios.Mobile = FALSE; + else if (IsPropertyNotNullAndTrue(Prop)) + settingsData.Smbios.Mobile = TRUE; + } else if (!Default) { + settingsData.Smbios.Mobile = settingsData.Smbios.ProductName.contains("MacBook"); + } + + Prop = DictPointer->propertyForKey("LocationInChassis"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in LocationInChassis\n"); + }else{ + settingsData.Smbios.LocationInChassis = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("ChassisManufacturer"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ChassisManufacturer\n"); + }else{ + settingsData.Smbios.ChassisManufacturer = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("ChassisAssetTag"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ChassisAssetTag\n"); + }else{ + settingsData.Smbios.ChassisAssetTag = Prop->getString()->stringValue(); + } + } + + Prop = DictPointer->propertyForKey("ChassisType"); + if (Prop != NULL) { + settingsData.Smbios.ChassisType = (UINT8)GetPropertyAsInteger(Prop, settingsData.Smbios.ChassisType); + DBG("ChassisType: 0x%hhX\n", settingsData.Smbios.ChassisType); + } + + Prop = DictPointer->propertyForKey("NoRomInfo"); + if (Prop != NULL) { + settingsData.Smbios.NoRomInfo = IsPropertyNotNullAndTrue(Prop); + } +} + +/* + * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global + * and is passed by non-const reference. + * This temporary during the refactoring + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +static void getACPISettings(const TagDict *CfgDict, SETTINGS_DATA& settingsData) +{ + #pragma GCC diagnostic pop + const TagDict* ACPIDict = CfgDict->dictPropertyForKey("ACPI"); + if (ACPIDict) { + const TagArray* DropTablesArray = ACPIDict->arrayPropertyForKey("DropTables"); // array of dict + if (DropTablesArray) { + INTN i; + INTN Count = DropTablesArray->arrayContent().size(); + + if (Count > 0) { +// DBG("Table to drop %lld tables:\n", Count); + + for (i = 0; i < Count; i++) + { + SETTINGS_DATA::ACPIClass::ACPIDropTablesClass* ACPIDropTables = new SETTINGS_DATA::ACPIClass::ACPIDropTablesClass; +// UINT32 Signature = 0; +// UINT32 TabLength = 0; +// UINT64 TableId = 0; +// BOOLEAN OtherOS = FALSE; + + const TagDict* Dict2 = DropTablesArray->dictElementAt(i, "ACPI/DropTables"_XS8); + +// DBG(" - [%02lld]: Drop table ", i); + // Get the table signatures to drop + const TagStruct* Prop2 = Dict2->propertyForKey("Signature"); + if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { + CHAR8 s1 = 0, s2 = 0, s3 = 0, s4 = 0; + const CHAR8 *str = Prop2->getString()->stringValue().c_str(); + if (*str) { + s1 = *str++; + } + if (*str) { + s2 = *str++; + } + if (*str) { + s3 = *str++; + } + if (*str) { + s4 = *str++; + } + ACPIDropTables->Signature = SIGNATURE_32(s1, s2, s3, s4); +// DBG(" signature=\"%c%c%c%c\" (%8.8X)\n", s1, s2, s3, s4, ACPIDropTables->Signature); + } + // Get the table ids to drop + Prop2 = Dict2->propertyForKey("TableId"); + if (Prop2 != NULL) { + if ( !Prop2->isString() ) { + MsgLog("ATTENTION : property not string in TableId\n"); + }else{ + UINTN IdIndex = 0; + CHAR8 Id[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + const CHAR8 *Str = Prop2->getString()->stringValue().c_str(); + if (Str) { + while (*Str && (IdIndex < 8)) { + // DBG("%c", *Str); + Id[IdIndex++] = *Str++; + } + } + + CopyMem(&ACPIDropTables->TableId, (CHAR8*)&Id[0], 8); +// DBG(" table-id=\"%s\" (%16.16llX)\n", Id, ACPIDropTables->TableId); + } + } + // Get the table len to drop + Prop2 = Dict2->propertyForKey("Length"); + if (Prop2 != NULL) { + ACPIDropTables->TabLength = (UINT32)GetPropertyAsInteger(Prop2, 0); +// DBG(" length=%d(0x%X)", ACPIDropTables->TabLength, ACPIDropTables->TabLength); + } + // Check if to drop for other OS as well + Prop2 = Dict2->propertyForKey("DropForAllOS"); + if (Prop2 != NULL) { + ACPIDropTables->OtherOS = IsPropertyNotNullAndTrue(Prop2); + } + settingsData.ACPI.ACPIDropTablesArray.AddReference(ACPIDropTables, true); +// DBG("----\n"); + //set to drop +// if (GlobalConfig.ACPIDropTables) { +// ACPI_DROP_TABLE *DropTable = GlobalConfig.ACPIDropTables; +// DBG(" - set table: %08X, %16llx to drop:", Signature, TableId); +// Dropped = FALSE; +// while (DropTable) { +// if (((Signature == DropTable->Signature) && +// (!TableId || (DropTable->TableId == TableId)) && +// (!TabLength || (DropTable->Length == TabLength))) || +// (!Signature && (DropTable->TableId == TableId))) { +// DropTable->MenuItem.BValue = TRUE; +// DropTable->OtherOS = OtherOS; +// settingsData.ACPI.SSDT.DropSSDT = FALSE; //if one item=true then dropAll=false by default +// //DBG(" true"); +// Dropped = TRUE; +// } +// DropTable = DropTable->Next; +// } +// DBG(" %s\n", Dropped ? "yes" : "no"); +// } + } + } + } + + const TagDict* DSDTDict = ACPIDict->dictPropertyForKey("DSDT"); + if (DSDTDict) { + //settingsData.ACPI.DSDT.FixDsdt by default is "DSDT.aml", but name "BIOS" will mean autopatch + const TagStruct* Prop = DSDTDict->propertyForKey("Name"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in DSDT/Name\n"); + }else{ + settingsData.ACPI.DSDT.DsdtName = Prop->getString()->stringValue(); + } + } + + Prop = DSDTDict->propertyForKey("Debug"); + settingsData.ACPI.DSDT.DebugDSDT = IsPropertyNotNullAndTrue(Prop); + + Prop = DSDTDict->propertyForKey("Rtc8Allowed"); + settingsData.ACPI.DSDT.Rtc8Allowed = IsPropertyNotNullAndTrue(Prop); + + Prop = DSDTDict->propertyForKey("PNLF_UID"); + settingsData.ACPI.DSDT.PNLF_UID = (UINT8)GetPropertyAsInteger(Prop, 0x0A); + + Prop = DSDTDict->propertyForKey("FixMask"); + settingsData.ACPI.DSDT.FixDsdt = (UINT32)GetPropertyAsInteger(Prop, settingsData.ACPI.DSDT.FixDsdt); + + const TagDict* FixesDict = DSDTDict->dictPropertyForKey("Fixes"); + if (FixesDict != NULL) { + UINTN Index; + // DBG("Fixes will override DSDT fix mask %08X!\n", settingsData.ACPI.DSDT.FixDsdt); + settingsData.ACPI.DSDT.FixDsdt = 0; + for (Index = 0; Index < sizeof(FixesConfig)/sizeof(FixesConfig[0]); Index++) { + const TagStruct* Prop2 = FixesDict->propertyForKey(FixesConfig[Index].newName); + if (!Prop2 && FixesConfig[Index].oldName) { + Prop2 = FixesDict->propertyForKey(FixesConfig[Index].oldName); + } + if (IsPropertyNotNullAndTrue(Prop2)) { + settingsData.ACPI.DSDT.FixDsdt |= FixesConfig[Index].bitData; + } + } + } + DBG(" - final DSDT Fix mask=%08X\n", settingsData.ACPI.DSDT.FixDsdt); + + const TagArray* PatchesArray = DSDTDict->arrayPropertyForKey("Patches"); // array of dict + if (PatchesArray != NULL) { + INTN i; + INTN Count = PatchesArray->arrayContent().size(); + if (Count > 0) { +// settingsData.ACPI.DSDT.DSDTPatchArray.size() = (UINT32)Count; +// settingsData.PatchDsdtFind = (__typeof__(settingsData.PatchDsdtFind))AllocateZeroPool(Count * sizeof(UINT8*)); +// settingsData.PatchDsdtReplace = (__typeof__(settingsData.PatchDsdtReplace))AllocateZeroPool(Count * sizeof(UINT8*)); +// settingsData.PatchDsdtTgt = (__typeof__(settingsData.PatchDsdtTgt))AllocateZeroPool(Count * sizeof(UINT8*)); +// settingsData.LenToFind = (__typeof__(settingsData.LenToFind))AllocateZeroPool(Count * sizeof(UINT32)); +// settingsData.LenToReplace = (__typeof__(settingsData.LenToReplace))AllocateZeroPool(Count * sizeof(UINT32)); +// settingsData.PatchDsdtLabel = (__typeof__(settingsData.PatchDsdtLabel))AllocateZeroPool(Count * sizeof(UINT8*)); +// settingsData.PatchDsdtMenuItem = new INPUT_ITEM[Count]; + DBG("PatchesDSDT: %lld requested\n", Count); + settingsData.ACPI.DSDT.DSDTPatchArray.setEmpty(); + for (i = 0; i < Count; i++) + { + SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch* dsdtPatchPtr = new SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch(); + SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch& dsdtPatch = *dsdtPatchPtr; + UINTN Size = 0; + const TagDict* Prop2 = PatchesArray->dictElementAt(i,"DSDT/Patches"_XS8); + DBG(" - [%02lld]:", i); + XString8 DSDTPatchesLabel; + + const TagStruct* Prop3 = Prop2->propertyForKey("Comment"); + if (Prop3 != NULL && (Prop3->isString()) && Prop3->getString()->stringValue().notEmpty()) { + DSDTPatchesLabel = Prop3->getString()->stringValue(); + } else { + DSDTPatchesLabel = "(NoLabel)"_XS8; + } + dsdtPatch.PatchDsdtLabel = DSDTPatchesLabel; + DBG(" (%s)", dsdtPatch.PatchDsdtLabel.c_str()); + + Prop3 = Prop2->propertyForKey("Disabled"); + dsdtPatch.Disabled = IsPropertyNotNullAndTrue(Prop3); + dsdtPatch.PatchDsdtMenuItem.BValue = !IsPropertyNotNullAndTrue(Prop3); + + //DBG(" DSDT bin patch #%d ", i); + UINT8* data = GetDataSetting (Prop2, "Find", &Size); + dsdtPatch.PatchDsdtFind.stealValueFrom(data, Size); + DBG(" lenToFind: %zu", dsdtPatch.PatchDsdtFind.size()); + data = GetDataSetting (Prop2, "Replace", &Size); + dsdtPatch.PatchDsdtReplace.stealValueFrom(data, Size); + DBG(", lenToReplace: %zu", dsdtPatch.PatchDsdtReplace.size()); + data = GetDataSetting (Prop2, "TgtBridge", &Size); + if ( Size != 0 ) { + if ( Size != 4 ) { + DBG("\n TgtBridge must 4 bytes. It's %llu byte(s). Ignored\n", Size); + }else{ + dsdtPatch.PatchDsdtTgt.stealValueFrom(data, Size); + DBG(", Target Bridge: %c%c%c%c", dsdtPatch.PatchDsdtTgt[0], dsdtPatch.PatchDsdtTgt[1], dsdtPatch.PatchDsdtTgt[2], dsdtPatch.PatchDsdtTgt[3]); + } + } + DBG("\n"); + if (!dsdtPatch.PatchDsdtMenuItem.BValue) { + DBG(" patch disabled at config\n"); + } + settingsData.ACPI.DSDT.DSDTPatchArray.AddReference(dsdtPatchPtr, true); + } + } //if count > 0 + } //if prop PatchesDSDT + + Prop = DSDTDict->propertyForKey("ReuseFFFF"); + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.ACPI.DSDT.ReuseFFFF = TRUE; + } + + Prop = DSDTDict->propertyForKey("SuspendOverride"); + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.ACPI.DSDT.SuspendOverride = TRUE; + } + /* + Prop = GetProperty(Dict2, "DropOEM_DSM"); + defDSM = FALSE; + + if (Prop != NULL) { + defDSM = TRUE; //set by user + if (IsPropertyTrue(Prop)) { + settingsData.DropOEM_DSM = 0xFFFF; + } else if (IsPropertyFalse(Prop)) { + settingsData.DropOEM_DSM = 0; + } else if (Prop->isInt()) { + settingsData.DropOEM_DSM = (UINT16)(UINTN)Prop->??; + } else if (Prop->type == kTagTypeDict) { + Prop2 = GetProperty(Prop, "ATI"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_ATI; + } + + Prop2 = GetProperty(Prop, "NVidia"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_NVIDIA; + } + + Prop2 = GetProperty(Prop, "IntelGFX"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_INTEL; + } + + Prop2 = GetProperty(Prop, "HDA"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_HDA; + } + + Prop2 = GetProperty(Prop, "HDMI"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_HDMI; + } + + Prop2 = GetProperty(Prop, "SATA"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_SATA; + } + + Prop2 = GetProperty(Prop, "LAN"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_LAN; + } + + Prop2 = GetProperty(Prop, "WIFI"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_WIFI; + } + + Prop2 = GetProperty(Prop, "USB"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_USB; + } + + Prop2 = GetProperty(Prop, "LPC"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_LPC; + } + + Prop2 = GetProperty(Prop, "SmBUS"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_SMBUS; + } + + Prop2 = GetProperty(Prop, "Firewire"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_FIREWIRE; + } + + Prop2 = GetProperty(Prop, "IDE"); + if (IsPropertyTrue(Prop2)) { + settingsData.DropOEM_DSM |= DEV_IDE; + } + } + } + */ + } + + const TagDict* SSDTDict = ACPIDict->dictPropertyForKey("SSDT"); + if (SSDTDict) { + const TagStruct* Prop2 = SSDTDict->propertyForKey("Generate"); + if (Prop2 != NULL) { + if (IsPropertyNotNullAndTrue(Prop2)) { + settingsData.ACPI.SSDT.Generate.GeneratePStates = TRUE; + settingsData.ACPI.SSDT.Generate.GenerateCStates = TRUE; + settingsData.ACPI.SSDT.Generate.GenerateAPSN = TRUE; + settingsData.ACPI.SSDT.Generate.GenerateAPLF = TRUE; + settingsData.ACPI.SSDT.Generate.GeneratePluginType = TRUE; + + } else if (IsPropertyNotNullAndFalse(Prop2)) { + settingsData.ACPI.SSDT.Generate.GeneratePStates = FALSE; + settingsData.ACPI.SSDT.Generate.GenerateCStates = FALSE; + settingsData.ACPI.SSDT.Generate.GenerateAPSN = FALSE; + settingsData.ACPI.SSDT.Generate.GenerateAPLF = FALSE; + settingsData.ACPI.SSDT.Generate.GeneratePluginType = FALSE; + + } else if (Prop2->isDict()) { + const TagStruct* Prop = Prop2->getDict()->propertyForKey("PStates"); + if (Prop) { + settingsData.ACPI.SSDT.Generate.GeneratePStates = IsPropertyNotNullAndTrue(Prop); + } + Prop = Prop2->getDict()->propertyForKey("CStates"); + if (Prop) { + settingsData.ACPI.SSDT.Generate.GenerateCStates = IsPropertyNotNullAndTrue(Prop); + } + Prop = Prop2->getDict()->propertyForKey("APSN"); + if (Prop) { + settingsData.ACPI.SSDT.Generate.GenerateAPSN = IsPropertyNotNullAndTrue(Prop); + } + Prop = Prop2->getDict()->propertyForKey("APLF"); + if (Prop) { + settingsData.ACPI.SSDT.Generate.GenerateAPLF = IsPropertyNotNullAndTrue(Prop); + } + Prop = Prop2->getDict()->propertyForKey("PluginType"); + if (Prop) { + settingsData.ACPI.SSDT.Generate.GeneratePluginType = IsPropertyNotNullAndTrue(Prop); + } + } + } + + const TagStruct* Prop = SSDTDict->propertyForKey("DropOem"); + settingsData.ACPI.SSDT.DropSSDTSetting = IsPropertyNotNullAndTrue(Prop); + + Prop = SSDTDict->propertyForKey("NoOemTableId"); // to disable OEM table ID on ACPI/orgin/SSDT file names + settingsData.ACPI.SSDT.NoOemTableId = IsPropertyNotNullAndTrue(Prop); + + Prop = SSDTDict->propertyForKey("NoDynamicExtract"); // to disable extracting child SSDTs + settingsData.ACPI.SSDT.NoDynamicExtract = IsPropertyNotNullAndTrue(Prop); + + Prop = SSDTDict->propertyForKey("UseSystemIO"); + settingsData.ACPI.SSDT.EnableISS = IsPropertyNotNullAndTrue(Prop); + + Prop = SSDTDict->propertyForKey("EnableC7"); + if (Prop) { + settingsData.ACPI.SSDT.EnableC7 = IsPropertyNotNullAndTrue(Prop); + DBG("EnableC7: %s\n", settingsData.ACPI.SSDT.EnableC7 ? "yes" : "no"); + } + + Prop = SSDTDict->propertyForKey("EnableC6"); + if (Prop) { + settingsData.ACPI.SSDT._EnableC6 = IsPropertyNotNullAndTrue(Prop); + DBG("EnableC6: %s\n", settingsData.ACPI.SSDT._EnableC6 ? "yes" : "no"); + } + + Prop = SSDTDict->propertyForKey("EnableC4"); + if (Prop) { + settingsData.ACPI.SSDT._EnableC4 = IsPropertyNotNullAndTrue(Prop); + DBG("EnableC4: %s\n", settingsData.ACPI.SSDT._EnableC4 ? "yes" : "no"); + } + + Prop = SSDTDict->propertyForKey("EnableC2"); + if (Prop) { + settingsData.ACPI.SSDT._EnableC2 = IsPropertyNotNullAndTrue(Prop); + DBG("EnableC2: %s\n", settingsData.ACPI.SSDT._EnableC2 ? "yes" : "no"); + } + + Prop = SSDTDict->propertyForKey("C3Latency"); + settingsData.ACPI.SSDT._C3Latency = (UINT16)GetPropertyAsInteger(Prop, settingsData.ACPI.SSDT._C3Latency); + DBG("C3Latency: %d\n", settingsData.ACPI.SSDT._C3Latency); + + Prop = SSDTDict->propertyForKey("PLimitDict"); + settingsData.ACPI.SSDT.PLimitDict = (UINT8)GetPropertyAsInteger(Prop, 0); + + Prop = SSDTDict->propertyForKey("UnderVoltStep"); + settingsData.ACPI.SSDT.UnderVoltStep = (UINT8)GetPropertyAsInteger(Prop, 0); + + Prop = SSDTDict->propertyForKey("DoubleFirstState"); + settingsData.ACPI.SSDT.DoubleFirstState = IsPropertyNotNullAndTrue(Prop); + + Prop = SSDTDict->propertyForKey("MinMultiplier"); + settingsData.ACPI.SSDT.MinMultiplier = (UINT8)GetPropertyAsInteger(Prop, settingsData.ACPI.SSDT.MinMultiplier); + DBG("MinMultiplier: %d\n", settingsData.ACPI.SSDT.MinMultiplier); + + Prop = SSDTDict->propertyForKey("MaxMultiplier"); + settingsData.ACPI.SSDT.MaxMultiplier = (UINT8)GetPropertyAsInteger(Prop, settingsData.ACPI.SSDT.MaxMultiplier); + DBG("MaxMultiplier: %d\n", settingsData.ACPI.SSDT.MaxMultiplier); + + Prop = SSDTDict->propertyForKey("PluginType"); + settingsData.ACPI.SSDT.PluginType = (UINT8)GetPropertyAsInteger(Prop, settingsData.ACPI.SSDT.PluginType); + DBG("PluginType: %d\n", settingsData.ACPI.SSDT.PluginType); + } + + // Prop = GetProperty(DictPointer, "DropMCFG"); + // settingsData.DropMCFG = IsPropertyTrue(Prop); + + const TagStruct* Prop = ACPIDict->propertyForKey("ResetAddress"); + if (Prop) { + settingsData.ACPI.ResetAddr = (UINT32)GetPropertyAsInteger(Prop, 0x64); + DBG("ResetAddr: 0x%llX\n", settingsData.ACPI.ResetAddr); + + if (settingsData.ACPI.ResetAddr == 0x64) { + settingsData.ACPI.ResetVal = 0xFE; + } else if (settingsData.ACPI.ResetAddr == 0xCF9) { + settingsData.ACPI.ResetVal = 0x06; + } + + DBG("Calc ResetVal: 0x%hhX\n", settingsData.ACPI.ResetVal); + } + + Prop = ACPIDict->propertyForKey("ResetValue"); + settingsData.ACPI.ResetVal = (UINT8)GetPropertyAsInteger(Prop, settingsData.ACPI.ResetVal); + DBG("ResetVal: 0x%hhX\n", settingsData.ACPI.ResetVal); + //other known pair is 0x0CF9/0x06. What about 0x92/0x01 ? + + Prop = ACPIDict->propertyForKey("HaltEnabler"); + settingsData.ACPI.SlpSmiEnable = IsPropertyNotNullAndTrue(Prop); + + // + Prop = ACPIDict->propertyForKey("FixHeaders"); + settingsData.ACPI.FixHeaders = IsPropertyNotNullAndTrue(Prop); + + Prop = ACPIDict->propertyForKey("FixMCFG"); + settingsData.ACPI.FixMCFG = IsPropertyNotNullAndTrue(Prop); + + + Prop = ACPIDict->propertyForKey("DisableASPM"); + settingsData.ACPI.NoASPM = IsPropertyNotNullAndTrue(Prop); + + Prop = ACPIDict->propertyForKey("smartUPS"); + if (Prop) { + settingsData.ACPI.smartUPS = IsPropertyNotNullAndTrue(Prop); + DBG("smartUPS: present\n"); + } + + Prop = ACPIDict->propertyForKey("PatchAPIC"); + settingsData.ACPI.PatchNMI = IsPropertyNotNullAndTrue(Prop); + + const TagArray* SortedOrderArray = ACPIDict->arrayPropertyForKey("SortedOrder"); // array of string + if (SortedOrderArray) { + INTN i; + INTN Count = SortedOrderArray->arrayContent().size(); + const TagStruct* Prop2 = NULL; + if (Count > 0) { + settingsData.ACPI.SortedACPI.setEmpty(); + + for (i = 0; i < Count; i++) { + Prop2 = &SortedOrderArray->arrayContent()[i]; + if ( !Prop2->isString()) { + MsgLog("MALFORMED PLIST : SortedOrder must be an array of string"); + continue; + } + settingsData.ACPI.SortedACPI.Add(Prop2->getString()->stringValue()); + } + } + } + + Prop = ACPIDict->propertyForKey("AutoMerge"); + settingsData.ACPI.AutoMerge = IsPropertyNotNullAndTrue(Prop); + + const TagArray* DisabledAMLArray = ACPIDict->arrayPropertyForKey("DisabledAML"); // array of string + if (DisabledAMLArray) { + INTN i; + INTN Count = DisabledAMLArray->arrayContent().size(); + const TagStruct* Prop2 = NULL; + if (Count > 0) { + settingsData.ACPI.DisabledAML.setEmpty(); + for (i = 0; i < Count; i++) { + Prop2 = &DisabledAMLArray->arrayContent()[i]; + if ( !Prop2->isString()) { + MsgLog("MALFORMED PLIST : DisabledAML must be an array of string"); + continue; + } + settingsData.ACPI.DisabledAML.Add(Prop2->getString()->stringValue()); + } + } + } + //arrayPropertyForKey + const TagDict* RenameDevicesDict = NULL; + INTN arraySize = 0; + const TagArray* RenameDevicesArray = ACPIDict->arrayPropertyForKey("RenameDevices"); + bool RenDevIsArray = (RenameDevicesArray != NULL); + if (RenDevIsArray) { + arraySize = RenameDevicesArray->arrayContent().size(); + } else { + RenameDevicesDict = ACPIDict->dictPropertyForKey("RenameDevices"); // dict of key/string + if (RenameDevicesDict) { + arraySize = 1; + } + } + if (arraySize > 0) { + settingsData.ACPI.DeviceRename.setEmpty(); //else will not change + } + for (INTN i = 0; i < arraySize; i++) { + if (RenDevIsArray) { + RenameDevicesDict = RenameDevicesArray->dictElementAt(i, "RenameDevices"_XS8); + } + if (!RenameDevicesDict) break; + INTN Count = RenameDevicesDict->dictKeyCount(); + if (Count > 0) { + for (INTN j = 0; j < Count; j++) { + const TagKey* key; + const TagStruct* value; + if ( !EFI_ERROR(RenameDevicesDict->getKeyAndValueAtIndex(j, &key, &value)) ) { + if ( value->isString() && value->getString()->stringValue().notEmpty() ) { + ACPI_RENAME_DEVICE* List2 = new ACPI_RENAME_DEVICE(); + List2->acpiName.Name = key->keyStringValue(); + List2->renameTo = value->getString()->stringValue(); + settingsData.ACPI.DeviceRename.AddReference(List2, false); + // Debug print. We use getSplittedName() and then ConcatAll because getSplittedName() format components (trim or expand to 4 chars). + DBG("'%s' -> will be renamed to '%s'\n", List2->acpiName.getSplittedName().ConcatAll(":").c_str(), List2->renameTo.c_str()); + } + } + } //for j < dict size + } + } //for i < array size + } +} + +/* + * 2021-04, Jief : this is untouched old code (except a small bug when name starts with '#') to create ArbProperties the old way + * Old way = only one structure DEV_PROPERTY, Properties and ArbProperties are mixed together, no objetcs (XString, XBuffer). + * This is temporary and is used to check that new code gives the same result as the old. To be remove in a while + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +void SETTINGS_DATA::DevicesClass::FillDevicePropertiesOld(SETTINGS_DATA& settingsData, const TagDict* DevicesDict) +{ +#pragma GCC diagnostic pop + /* + * Properties is a single string, or a dict + */ + const TagStruct* Prop = DevicesDict->propertyForKey("Properties"); + if (Prop != NULL) { + if (Prop->isString()) { + } + else if ( Prop->isDict() ) { + INTN i; + const TagDict* PropertiesDict = Prop->getDict(); + INTN Count = PropertiesDict->dictKeyCount(); //ok + //settingsData.Devices.AddProperties = new DEV_PROPERTY[Count]; // seems bug, only ArbProperties is used in this block + DEV_PROPERTY *DevPropDevice; + DEV_PROPERTY *DevProps; + DEV_PROPERTY **Child; + + if (Count > 0) { + DBG("Add %lld devices (kTagTypeDict):\n", Count); + + for (i = 0; i < Count; i++) { + const TagKey* key; + const TagStruct* value; + EFI_DEVICE_PATH_PROTOCOL* DevicePath = NULL; + if ( !EFI_ERROR(PropertiesDict->getKeyAndValueAtIndex(i, &key, &value)) ) { //take a with DevicePath. If GetKeyValueAtIndex return success, key and value != NULL + XStringW DevicePathStr = key->keyStringValue(); + // DBG("Device: %ls\n", DevicePathStr); + if (key->keyStringValue().startWithOrEqualTo("#")) { + continue; + } + + // when key in Devices/Properties is one of the strings "PrimaryGPU" / "SecondaryGPU", use device path of first / second gpu accordingly +#ifdef CLOVER_BUILD + if ( DevicePathStr.isEqualIC("PrimaryGPU") ) { + DevicePath = DevicePathFromHandle(gGraphics[0].Handle); // first gpu + } else if ( DevicePathStr.isEqualIC("SecondaryGPU") && NGFX > 1) { + DevicePath = DevicePathFromHandle(gGraphics[1].Handle); // second gpu + } else { + DevicePath = ConvertTextToDevicePath(DevicePathStr.wc_str()); //TODO + } + if (DevicePath == NULL) { + continue; + } +#endif + //Create Device node + DevPropDevice = settingsData.Devices.ArbProperties; + settingsData.Devices.ArbProperties = new DEV_PROPERTY; + settingsData.Devices.ArbProperties->Next = DevPropDevice; //next device + settingsData.Devices.ArbProperties->Child = NULL; + settingsData.Devices.ArbProperties->Device = 0; //to differ from arbitrary + settingsData.Devices.ArbProperties->DevicePath = DevicePath; //this is pointer + settingsData.Devices.ArbProperties->Label = S8Printf("%s", key->keyStringValue().c_str()).forgetDataWithoutFreeing(); + Child = &(settingsData.Devices.ArbProperties->Child); + + if ((value != NULL) && (value->isDict())) { + INTN PropCount = 0; + const TagDict* valueDict = value->getDict(); + PropCount = valueDict->dictKeyCount(); + // DBG("Add %d properties:\n", PropCount); + for (INTN j = 0; j < PropCount; j++) { + DevProps = *Child; + + const TagKey* key2; + const TagStruct* value2; + if (EFI_ERROR(valueDict->getKeyAndValueAtIndex(j, &key2, &value2))) { + continue; + } + if (key2->keyStringValue().isEmpty()) { + continue; + } + if (key2->keyStringValue()[0] == '#') { + continue; + } + + *Child = new DEV_PROPERTY; + (*Child)->Next = DevProps; +// if (key2->keyStringValue()[0] != '#') { + (*Child)->MenuItem.BValue = TRUE; + (*Child)->Key = S8Printf("%s", key2->keyStringValue().c_str()).forgetDataWithoutFreeing(); +// } +// else { +// (*Child)->MenuItem.BValue = FALSE; +// (*Child)->Key = S8Printf("%s", key2->keyStringValue().c_str() + 1).forgetDataWithoutFreeing(); +// } + + // DBG("%s\n type %d\n", (*Child)->Key, Prop3->type); + if (value2 && (value2->isString()) && value2->getString()->stringValue().notEmpty()) { + //first suppose it is Ascii string + (*Child)->Value = (UINT8*)S8Printf("%s", value2->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); + (*Child)->ValueLen = value2->getString()->stringValue().sizeInBytesIncludingTerminator(); + (*Child)->ValueType = kTagTypeString; + } + else if (value2 && (value2->isInt64())) { + if ( value2->getInt64()->intValue() < MIN_INT32 || value2->getInt64()->intValue() > MAX_INT32 ) { + MsgLog("Invalid int value for key %s\n", key2->keyStringValue().c_str()); + }else{ + INT32 intValue = (INT32)value2->getInt64()->intValue(); + (*Child)->Value = (__typeof__((*Child)->Value))AllocatePool(sizeof(intValue)); + *(INT32*)((*Child)->Value) = intValue; + (*Child)->ValueLen = sizeof(intValue); + (*Child)->ValueType = kTagTypeInteger; + } + } + else if (value2 && value2->isTrue() ) { + (*Child)->Value = (__typeof__((*Child)->Value))AllocateZeroPool(4); + (*Child)->Value[0] = TRUE; + (*Child)->ValueLen = 1; + (*Child)->ValueType = kTagTypeTrue; + } + else if ( value2 && value2->isFalse() ) { + (*Child)->Value = (__typeof__((*Child)->Value))AllocateZeroPool(4); + //(*Child)->Value[0] = FALSE; + (*Child)->ValueLen = 1; + (*Child)->ValueType = kTagTypeFalse; + } + else if (value2 && (value2->isData())) { + UINTN Size = value2->getData()->dataLenValue(); + // (*Child)->Value = GetDataSetting(value2, "Value", &Size); //TODO + UINT8* Data = (__typeof__(Data))AllocateZeroPool(Size); + CopyMem(Data, value2->getData()->dataValue(), Size); + (*Child)->Value = Data; + (*Child)->ValueLen = Size; + (*Child)->ValueType = kTagTypeData; + } + } + } + } + } + } + } + } + + const TagArray* ArbitraryTagArray = DevicesDict->arrayPropertyForKey("Arbitrary"); // array of dict + if (ArbitraryTagArray != NULL) { + INTN Index; + INTN Count = ArbitraryTagArray->arrayContent().size(); + DEV_PROPERTY *DevProp; + + if (Count > 0) { + DBG("Add %lld devices (Arbitrary):\n", Count); + for (Index = 0; Index < Count; Index++) { + UINTN DeviceAddr = 0U; + XString8 Label; + DBG(" - [%02lld]:", Index); + const TagDict* Dict2 = ArbitraryTagArray->dictElementAt(Index, "Arbitrary"_XS8); + const TagStruct* Prop3; + Prop3 = Dict2->propertyForKey("PciAddr"); + if (Prop3 != NULL) { + UINT8 Bus, Dev, Func; + + if ( !Prop3->isString() ) { + MsgLog("ATTENTION : property not string in PciAddr\n"); + continue; + } + if ( Prop3->getString()->stringValue().length() < 2 || Prop3->getString()->stringValue()[2] != ':') { + DBG(" wrong PciAddr string: %s\n", Prop3->getString()->stringValue().c_str()); + continue; + } + CONST CHAR8* Str = Prop3->getString()->stringValue().c_str(); + Bus = hexstrtouint8(Str); + Dev = hexstrtouint8(&Str[3]); + Func = hexstrtouint8(&Str[6]); + DeviceAddr = PCIADDR(Bus, Dev, Func); + Label.S8Printf("[%02hhX:%02hhX.%02hhX] ", Bus, Dev, Func); + DBG(" %s", Label.c_str()); + } else { + DBG(" no PciAddr\n"); + continue; + } + + Prop3 = Dict2->propertyForKey("Comment"); + if (Prop3 != NULL) { + if ( !Prop3->isString() ) { + MsgLog("ATTENTION : property not string in Comment\n"); + }else{ + Label += Prop3->getString()->stringValue(); + DBG(" (%s)", Prop3->getString()->stringValue().c_str()); + } + } + DBG("\n"); + const TagArray* CustomPropertiesArray = Dict2->arrayPropertyForKey("CustomProperties"); // array of dict + if (CustomPropertiesArray != NULL) { + const TagDict* Dict3; + INTN PropIndex; + INTN PropCount = CustomPropertiesArray->arrayContent().size(); + + for (PropIndex = 0; PropIndex < PropCount; PropIndex++) { + Dict3 = CustomPropertiesArray->dictElementAt(PropIndex, "CustomProperties"_XS8); + DevProp = settingsData.Devices.ArbProperties; + settingsData.Devices.ArbProperties = new DEV_PROPERTY; + settingsData.Devices.ArbProperties->Next = DevProp; + + settingsData.Devices.ArbProperties->Device = (UINT32)DeviceAddr; + settingsData.Devices.ArbProperties->Label = (__typeof__(settingsData.Devices.ArbProperties->Label))AllocateCopyPool(Label.sizeInBytesIncludingTerminator(), Label.c_str()); + + const TagStruct* DisabledProp = Dict3->propertyForKey("Disabled"); + settingsData.Devices.ArbProperties->MenuItem.BValue = !IsPropertyNotNullAndTrue(DisabledProp); + + DisabledProp = Dict3->propertyForKey("Key"); + if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { + settingsData.Devices.ArbProperties->Key = S8Printf("%s", DisabledProp->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); + } + + DisabledProp = Dict3->propertyForKey("Value"); + if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { + //first suppose it is Ascii string + settingsData.Devices.ArbProperties->Value = (UINT8*)S8Printf("%s", DisabledProp->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); + settingsData.Devices.ArbProperties->ValueLen = DisabledProp->getString()->stringValue().sizeInBytesIncludingTerminator(); + settingsData.Devices.ArbProperties->ValueType = kTagTypeString; + } else if (DisabledProp && (DisabledProp->isInt64())) { + if ( DisabledProp->getInt64()->intValue() < MIN_INT32 || DisabledProp->getInt64()->intValue() > MAX_INT32 ) { + MsgLog("Invalid int value for key 'Value'\n"); + }else{ + INT32 intValue = (INT32)DisabledProp->getInt64()->intValue(); + settingsData.Devices.ArbProperties->Value = (__typeof__(settingsData.Devices.ArbProperties->Value))AllocatePool(sizeof(intValue)); + // CopyMem(settingsData.ArbProperties->Value, &Prop3->intValue, 4); + *(INT32*)(settingsData.Devices.ArbProperties->Value) = intValue; + settingsData.Devices.ArbProperties->ValueLen = sizeof(intValue); + settingsData.Devices.ArbProperties->ValueType = kTagTypeInteger; + } + } else if ( DisabledProp && DisabledProp->isTrue() ) { + settingsData.Devices.ArbProperties->Value = (__typeof__(settingsData.Devices.ArbProperties->Value))AllocateZeroPool(4); + settingsData.Devices.ArbProperties->Value[0] = TRUE; + settingsData.Devices.ArbProperties->ValueLen = 1; + settingsData.Devices.ArbProperties->ValueType = kTagTypeTrue; + } else if ( DisabledProp && DisabledProp->isFalse() ) { + settingsData.Devices.ArbProperties->Value = (__typeof__(settingsData.Devices.ArbProperties->Value))AllocateZeroPool(4); + //settingsData.ArbProperties->Value[0] = FALSE; + settingsData.Devices.ArbProperties->ValueLen = 1; + settingsData.Devices.ArbProperties->ValueType = kTagTypeFalse; + } else { + //else data + UINTN Size = 0; + settingsData.Devices.ArbProperties->Value = GetDataSetting (Dict3, "Value", &Size); + settingsData.Devices.ArbProperties->ValueLen = Size; + settingsData.Devices.ArbProperties->ValueType = kTagTypeData; + } + + //Special case. In future there must be more such cases + if ((AsciiStrStr(settingsData.Devices.ArbProperties->Key, "-platform-id") != NULL)) { + CopyMem((CHAR8*)&settingsData.Graphics._IgPlatform, settingsData.Devices.ArbProperties->Value, 4); + } + } //for() device properties + } + } //for() devices + } + // settingsData.NrAddProperties = 0xFFFE; + } +} + + +/* + * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global + * and is passed by non-const reference. + * This temporary during the refactoring + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& settingsData) +{ +#pragma GCC diagnostic pop +// EFI_STATUS Status = EFI_NOT_FOUND; + + if (CfgDict != NULL) { + DbgHeader ("GetUserSettings"); + + // Boot settings. + // Discussion. Why Arguments is here? It should be SystemParameters property! + // we will read them again because of change in GUI menu. It is not only EarlySettings + // + const TagDict* BootDict = CfgDict->dictPropertyForKey("Boot"); + if (BootDict != NULL) { + + const TagStruct* Prop = BootDict->propertyForKey("Arguments"); + if ( Prop != NULL && Prop->isString() && Prop->getString()->stringValue().notEmpty() && !settingsData.Boot.BootArgs.contains(Prop->getString()->stringValue()) ) { + settingsData.Boot.BootArgs = Prop->getString()->stringValue(); + //gBootArgsChanged = TRUE; + //GlobalConfig.gBootChanged = TRUE; + } + + Prop = BootDict->propertyForKey("NeverDoRecovery"); + settingsData.Boot.NeverDoRecovery = IsPropertyNotNullAndTrue(Prop); + } + + //Graphics + + const TagDict* GraphicsDict = CfgDict->dictPropertyForKey("Graphics"); + if (GraphicsDict != NULL) { + INTN i; + const TagStruct* Prop = GraphicsDict->propertyForKey("Inject"); + if (Prop != NULL) { + if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.Graphics.InjectAsDict.GraphicsInjector = TRUE; + settingsData.Graphics.InjectAsDict.InjectIntel = TRUE; + settingsData.Graphics.InjectAsDict.InjectATI = TRUE; + settingsData.Graphics.InjectAsDict.InjectNVidia = TRUE; + } else if (Prop->isDict()) { + const TagDict* Dict2 = Prop->getDict(); + const TagStruct* Prop2 = Dict2->propertyForKey("Intel"); + if (Prop2 != NULL) { + settingsData.Graphics.InjectAsDict.InjectIntel = IsPropertyNotNullAndTrue(Prop2); + } + + Prop2 = Dict2->propertyForKey("ATI"); + if (Prop2 != NULL) { + settingsData.Graphics.InjectAsDict.InjectATI = IsPropertyNotNullAndTrue(Prop2); + } + + Prop2 = Dict2->propertyForKey("NVidia"); + if (Prop2 != NULL) { + settingsData.Graphics.InjectAsDict.InjectNVidia = IsPropertyNotNullAndTrue(Prop2); + } + } else { + settingsData.Graphics.InjectAsDict.GraphicsInjector = FALSE; + settingsData.Graphics.InjectAsDict.InjectIntel = FALSE; + settingsData.Graphics.InjectAsDict.InjectATI = FALSE; + settingsData.Graphics.InjectAsDict.InjectNVidia = FALSE; + } + } + + Prop = GraphicsDict->propertyForKey("RadeonDeInit"); + settingsData.Graphics.RadeonDeInit = IsPropertyNotNullAndTrue(Prop); + + Prop = GraphicsDict->propertyForKey("VRAM"); + settingsData.Graphics.VRAM = (UINTN)GetPropertyAsInteger(Prop, (INTN)settingsData.Graphics.VRAM); //Mb + // + Prop = GraphicsDict->propertyForKey("RefCLK"); + settingsData.Graphics.RefCLK = (UINT16)GetPropertyAsInteger(Prop, 0); + + Prop = GraphicsDict->propertyForKey("LoadVBios"); + settingsData.Graphics.LoadVBios = IsPropertyNotNullAndTrue(Prop); +// +// for (i = 0; i < (INTN)NGFX; i++) { +// gGraphics[i].LoadVBios = settingsData.Graphics.LoadVBios; //default +// } + + Prop = GraphicsDict->propertyForKey("VideoPorts"); + settingsData.Graphics.VideoPorts = (UINT16)GetPropertyAsInteger(Prop, settingsData.Graphics.VideoPorts); + + Prop = GraphicsDict->propertyForKey("BootDisplay"); + settingsData.Graphics.BootDisplay = (INT8)GetPropertyAsInteger(Prop, -1); + + Prop = GraphicsDict->propertyForKey("FBName"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in FBName\n"); + }else{ + settingsData.Graphics.FBName = Prop->getString()->stringValue(); + } + } + + Prop = GraphicsDict->propertyForKey("NVCAP"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in NVCAP\n"); + }else{ + hex2bin (Prop->getString()->stringValue(), (UINT8*)&settingsData.Graphics.NVCAP[0], sizeof(settingsData.Graphics.NVCAP)); + DBG("Read NVCAP:"); + + for (i = 0; i<20; i++) { + DBG("%02hhX", settingsData.Graphics.NVCAP[i]); + } + + DBG("\n"); + //thus confirmed this procedure is working + } + } + + Prop = GraphicsDict->propertyForKey("display-cfg"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in display-cfg\n"); + }else{ + hex2bin (Prop->getString()->stringValue(), (UINT8*)&settingsData.Graphics.Dcfg[0], sizeof(settingsData.Graphics.Dcfg)); + } + } + + Prop = GraphicsDict->propertyForKey("DualLink"); + settingsData.Graphics.DualLink = (UINT32)GetPropertyAsInteger(Prop, settingsData.Graphics.DualLink); + + //InjectEDID - already done in earlysettings + //No! Take again + GetEDIDSettings(GraphicsDict, settingsData); + + // ErmaC: NvidiaGeneric + Prop = GraphicsDict->propertyForKey("NvidiaGeneric"); + settingsData.Graphics.NvidiaGeneric = IsPropertyNotNullAndTrue(Prop); + + Prop = GraphicsDict->propertyForKey("NvidiaNoEFI"); + settingsData.Graphics.NvidiaNoEFI = IsPropertyNotNullAndTrue(Prop); + + Prop = GraphicsDict->propertyForKey("NvidiaSingle"); + settingsData.Graphics.NvidiaSingle = IsPropertyNotNullAndTrue(Prop); + + Prop = GraphicsDict->propertyForKey("ig-platform-id"); + settingsData.Graphics._IgPlatform = (UINT32)GetPropertyAsInteger(Prop, settingsData.Graphics._IgPlatform); + + Prop = GraphicsDict->propertyForKey("snb-platform-id"); + settingsData.Graphics._IgPlatform = (UINT32)GetPropertyAsInteger(Prop, settingsData.Graphics._IgPlatform); + + FillCardList(GraphicsDict, settingsData); //#@ Getcardslist + } + + const TagDict* DevicesDict = CfgDict->dictPropertyForKey("Devices"); + if (DevicesDict != NULL) { + const TagStruct* Prop = DevicesDict->propertyForKey("Inject"); + settingsData.Devices.StringInjector = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("SetIntelBacklight"); + settingsData.Devices.IntelBacklight = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("SetIntelMaxBacklight"); + settingsData.Devices.IntelMaxBacklight = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("IntelMaxValue"); + settingsData.Devices.IntelMaxValue = (UINT16)GetPropertyAsInteger(Prop, settingsData.Devices.IntelMaxValue); + + + settingsData.Devices.FillDevicePropertiesOld(settingsData, DevicesDict); + + /* + * Properties is a single string, or a dict + */ + Prop = DevicesDict->propertyForKey("Properties"); + if (Prop != NULL) { + if (Prop->isString()) { + settingsData.Devices.Properties.propertiesAsString = Prop->getString()->stringValue(); + size_t binaryPropSize = hex2bin(settingsData.Devices.Properties.propertiesAsString, NULL, 0); + if ( binaryPropSize > MAX_UINT32 ) { + MsgLog("settingsData.Devices.Properties.cDeviceProperties is too big"); + settingsData.Devices.Properties.propertiesAsString.setEmpty(); + } + } + else if ( Prop->isDict() ) { + INTN i; + const TagDict* PropertiesDict = Prop->getDict(); + INTN Count = PropertiesDict->dictKeyCount(); //ok + + if (Count > 0) { + DBG("Add %lld devices (kTagTypeDict):\n", Count); + + for (i = 0; i < Count; i++) { + const TagKey* key; + const TagStruct* value; +// EFI_DEVICE_PATH_PROTOCOL* DevicePath = NULL; + if ( !EFI_ERROR(PropertiesDict->getKeyAndValueAtIndex(i, &key, &value)) ) { //take a with DevicePath. If GetKeyValueAtIndex return success, key and value != NULL + + if ( key->keyStringValue().startWithOrEqualTo('#') ) continue; // Commented out, ignored. This is a tempororay litle change of behavior because that's how the new parser will works. + if ( key->keyStringValue().isEqual("!") ) { + // '!' means disabled. If Label is only '!', means an empty disabled label... + continue; + } + + XStringW DevicePathStr = key->keyStringValue(); + // DBG("Device: %ls\n", DevicePathStr); + + // when key in Devices/Properties is one of the strings "PrimaryGPU" / "SecondaryGPU", use device path of first / second gpu accordingly +//#ifdef CLOVER_BUILD +// if ( DevicePathStr.isEqualIC("PrimaryGPU") ) { +// DevicePath = DevicePathFromHandle(gGraphics[0].Handle); // first gpu +// } else if ( DevicePathStr.isEqualIC("SecondaryGPU") && NGFX > 1) { +// DevicePath = DevicePathFromHandle(gGraphics[1].Handle); // second gpu +// } else { +// DevicePath = ConvertTextToDevicePath(DevicePathStr.wc_str()); //TODO +// } +// if (DevicePath == NULL) { +// continue; +// } +//#endif + //Create Device node +// DevPropDevice = settingsData.Devices.ArbProperties; + SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass* devProperty = new SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass; +// devProperty->DevicePath = DevicePath; //this is pointer TODO ? + devProperty->DevicePathAsString.SWPrintf("%s", key->keyStringValue().c_str()); + if ( key->keyStringValue().startWith('!') ) { + // '!' means disabled. If Label is only '!', means an empty disabled label... + devProperty->DevicePathAsString = key->keyStringValue().subString(1, MAX_XSIZE); + devProperty->Enabled = false; +// devProperty->MenuItem.BValue = true; + }else{ + devProperty->DevicePathAsString = key->keyStringValue(); + devProperty->Enabled = true; +// devProperty->MenuItem.BValue = false; + } + +// settingsData.Devices.ArbProperties.InsertRef(devProperty, 0, false); // TODO + settingsData.Devices.Properties.PropertyArray.AddReference(devProperty, true); + + if ((value != NULL) && (value->isDict())) { + INTN PropCount = 0; + const TagDict* valueDict = value->getDict(); + PropCount = valueDict->dictKeyCount(); + // DBG("Add %d properties:\n", PropCount); + for (INTN j = 0; j < PropCount; j++) { + const TagKey* key2; + const TagStruct* value2; + if (EFI_ERROR(valueDict->getKeyAndValueAtIndex(j, &key2, &value2))) { + continue; + } + if ( key2->keyStringValue().startWithOrEqualTo('#') ) continue; + if ( key2->keyStringValue().isEqual("!") ) continue; + + SETTINGS_DATA::DevicesClass::SimplePropertyClass* ChildPtr = new SETTINGS_DATA::DevicesClass::SimplePropertyClass; + SETTINGS_DATA::DevicesClass::SimplePropertyClass& Child = *ChildPtr; + + if ( key2->keyStringValue().startWith('!') ) { // startWaith return false if XString == '#' + Child.MenuItem.BValue = FALSE; + Child.Key = key2->keyStringValue().subString(1, MAX_XSIZE); + } + else { + Child.MenuItem.BValue = devProperty->Enabled; + Child.Key = key2->keyStringValue(); + } + + + // DBG("%s\n type %d\n", Child.Key, Prop3->type); + if (value2 && (value2->isString()) && value2->getString()->stringValue().notEmpty()) { + //first suppose it is Ascii string + Child.Value.ncpy(value2->getString()->stringValue().c_str(), value2->getString()->stringValue().sizeInBytesIncludingTerminator()); + Child.ValueType = kTagTypeString; + } + else if (value2 && (value2->isInt64())) { + if ( value2->getInt64()->intValue() < MIN_INT32 || value2->getInt64()->intValue() > MAX_INT32 ) { + MsgLog("Invalid int value for key %s\n", key2->keyStringValue().c_str()); + }else{ + INT32 intValue = (INT32)value2->getInt64()->intValue(); + Child.Value.cpy(intValue); + Child.ValueType = kTagTypeInteger; + } + } + else if (value2 && value2->isTrue() ) { + uint8_t b = 1; + Child.Value.cpy(b); + Child.ValueType = kTagTypeTrue; + } + else if ( value2 && value2->isFalse() ) { + uint8_t b = 0; + Child.Value.cpy(b); + Child.ValueType = kTagTypeFalse; + } + else if (value2 && (value2->isData())) { + Child.Value = value2->getData()->data(); + Child.ValueType = kTagTypeData; + } + devProperty->propertiesArray.AddReference(ChildPtr, true); + } + } + } + } + } + } + } + + Prop = DevicesDict->propertyForKey("LANInjection"); + settingsData.Devices.LANInjection = !IsPropertyNotNullAndFalse(Prop); //default = TRUE + + Prop = DevicesDict->propertyForKey("HDMIInjection"); + settingsData.Devices.HDMIInjection = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("NoDefaultProperties"); + settingsData.Devices.NoDefaultProperties = !IsPropertyNotNullAndFalse(Prop); + + const TagArray* ArbitraryArray = DevicesDict->arrayPropertyForKey("Arbitrary"); // array of dict + if (ArbitraryArray != NULL) { + INTN Index; + INTN Count = ArbitraryArray->arrayContent().size(); + + if (Count > 0) { + DBG("Add %lld devices (Arbitrary):\n", Count); + for (Index = 0; Index < Count; Index++) { + UINTN DeviceAddr = 0U; + XString8 Label; + DBG(" - [%02lld]:", Index); + const TagDict* Dict2 = ArbitraryArray->dictElementAt(Index, "Arbitrary"_XS8); + const TagStruct* Prop3; + Prop3 = Dict2->propertyForKey("PciAddr"); + if (Prop3 != NULL) { + UINT8 Bus, Dev, Func; + + if ( !Prop3->isString() ) { + MsgLog("ATTENTION : property not string in PciAddr\n"); + continue; + } + if ( Prop3->getString()->stringValue().length() < 2 || Prop3->getString()->stringValue()[2] != ':') { + DBG(" wrong PciAddr string: %s\n", Prop3->getString()->stringValue().c_str()); + continue; + } + CONST CHAR8* Str = Prop3->getString()->stringValue().c_str(); + Bus = hexstrtouint8(Str); + Dev = hexstrtouint8(&Str[3]); + Func = hexstrtouint8(&Str[6]); + DeviceAddr = PCIADDR(Bus, Dev, Func); + Label.S8Printf("[%02hhX:%02hhX.%02hhX] ", Bus, Dev, Func); + DBG(" %s", Label.c_str()); + } else { + DBG(" no PciAddr\n"); + continue; + } + + Prop3 = Dict2->propertyForKey("Comment"); + if (Prop3 != NULL) { + if ( !Prop3->isString() ) { + MsgLog("ATTENTION : property not string in Comment\n"); + }else{ + Label += Prop3->getString()->stringValue(); + DBG(" (%s)", Prop3->getString()->stringValue().c_str()); + } + } + DBG("\n"); + const TagArray* CustomPropertiesArray = Dict2->arrayPropertyForKey("CustomProperties"); // array of dict + if (CustomPropertiesArray != NULL) { + const TagDict* Dict3; + INTN PropIndex; + INTN PropCount = CustomPropertiesArray->arrayContent().size(); + SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass* arbProp = NULL; + + for (PropIndex = 0; PropIndex < PropCount; PropIndex++) { + Dict3 = CustomPropertiesArray->dictElementAt(PropIndex, "CustomProperties"_XS8); + SETTINGS_DATA::DevicesClass::SimplePropertyClass* newDevProp = new SETTINGS_DATA::DevicesClass::SimplePropertyClass; + + const TagStruct* DisabledProp = Dict3->propertyForKey("Disabled"); + newDevProp->MenuItem.BValue = !IsPropertyNotNullAndTrue(DisabledProp); + + DisabledProp = Dict3->propertyForKey("Key"); + if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { + newDevProp->Key = DisabledProp->getString()->stringValue(); + } + + DisabledProp = Dict3->propertyForKey("Value"); + if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { + //first suppose it is Ascii string + newDevProp->Value.ncpy(DisabledProp->getString()->stringValue().c_str(), DisabledProp->getString()->stringValue().sizeInBytesIncludingTerminator()); + newDevProp->ValueType = kTagTypeString; + } else if (DisabledProp && (DisabledProp->isInt64())) { + if ( DisabledProp->getInt64()->intValue() < MIN_INT32 || DisabledProp->getInt64()->intValue() > MAX_INT32 ) { + MsgLog("Invalid int value for key 'Value'\n"); + }else{ + INT32 intValue = (INT32)DisabledProp->getInt64()->intValue(); + newDevProp->Value.cpy(intValue); + newDevProp->ValueType = kTagTypeInteger; + } + } else if ( DisabledProp && DisabledProp->isTrue() ) { + newDevProp->Value.cpy((uint32_t)1); + newDevProp->ValueType = kTagTypeTrue; + } else if ( DisabledProp && DisabledProp->isFalse() ) { + newDevProp->Value.cpy((uint32_t)0); + newDevProp->ValueType = kTagTypeFalse; + } else { + //else data + UINTN Size = 0; + uint8_t* Data = GetDataSetting (Dict3, "Value", &Size); + newDevProp->Value.stealValueFrom(Data, Size); + newDevProp->ValueType = kTagTypeData; + } + + //Special case. In future there must be more such cases +// if ( newDevProp->Key.contains("-platform-id") ) { +// CopyMem((CHAR8*)&settingsData.Graphics.IgPlatform, newDevProp->Value.data(), 4); +// } + if ( arbProp == NULL ) { + arbProp = new SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass(); + arbProp->Device = (UINT32)DeviceAddr; + arbProp->Label = Label; + settingsData.Devices.ArbitraryArray.AddReference(arbProp, true); + } + arbProp->CustomPropertyArray.AddReference(newDevProp, true); + } //for() device properties + } + } //for() devices + } + // settingsData.NrAddProperties = 0xFFFE; + } + //can use AddProperties with ArbProperties + const TagArray* AddPropertiesArray = DevicesDict->arrayPropertyForKey("AddProperties"); // array of dict + if (AddPropertiesArray != NULL) { + INTN i; + INTN Count = AddPropertiesArray->arrayContent().size(); + INTN Index = 0; //begin from 0 if second enter +//count = 0x1F1E1D1C1B1A1918 + if (Count > 0) { + DBG("Add %lld properties:\n", Count); + settingsData.Devices.AddPropertyArray.setEmpty(); + + for (i = 0; i < Count; i++) { + UINTN Size = 0; + DBG(" - [%02lld]:", i); + const TagDict* Dict2 = AddPropertiesArray->dictElementAt(i, "AddProperties"_XS8); + const TagStruct* DeviceProp = Dict2->propertyForKey("Device"); + SETTINGS_DATA::DevicesClass::AddPropertyClass* Property = new SETTINGS_DATA::DevicesClass::AddPropertyClass(); + + if (DeviceProp && (DeviceProp->isString()) && DeviceProp->getString()->stringValue().notEmpty()) { + if (DeviceProp->getString()->stringValue().isEqualIC("ATI")) { + Property->Device = (UINT32)DEV_ATI; + } else if (DeviceProp->getString()->stringValue().isEqualIC("NVidia")) { + Property->Device = (UINT32)DEV_NVIDIA; + } else if (DeviceProp->getString()->stringValue().isEqualIC("IntelGFX")) { + Property->Device = (UINT32)DEV_INTEL; + } else if (DeviceProp->getString()->stringValue().isEqualIC("LAN")) { + Property->Device = (UINT32)DEV_LAN; + } else if (DeviceProp->getString()->stringValue().isEqualIC("WIFI")) { + Property->Device = (UINT32)DEV_WIFI; + } else if (DeviceProp->getString()->stringValue().isEqualIC("Firewire")) { + Property->Device = (UINT32)DEV_FIREWIRE; + } else if (DeviceProp->getString()->stringValue().isEqualIC("SATA")) { + Property->Device = (UINT32)DEV_SATA; + } else if (DeviceProp->getString()->stringValue().isEqualIC("IDE")) { + Property->Device = (UINT32)DEV_IDE; + } else if (DeviceProp->getString()->stringValue().isEqualIC("HDA")) { + Property->Device = (UINT32)DEV_HDA; + } else if (DeviceProp->getString()->stringValue().isEqualIC("HDMI")) { + Property->Device = (UINT32)DEV_HDMI; + } else if (DeviceProp->getString()->stringValue().isEqualIC("LPC")) { + Property->Device = (UINT32)DEV_LPC; + } else if (DeviceProp->getString()->stringValue().isEqualIC("SmBUS")) { + Property->Device = (UINT32)DEV_SMBUS; + } else if (DeviceProp->getString()->stringValue().isEqualIC("USB")) { + Property->Device = (UINT32)DEV_USB; + } else { + DBG(" unknown device, ignored\n"/*, i*/); + continue; + } + } + + if ( DeviceProp->isString() ) DBG(" %s ", DeviceProp->getString()->stringValue().c_str()); + + const TagStruct* Prop2 = Dict2->propertyForKey("Disabled"); + Property->MenuItem.BValue = !IsPropertyNotNullAndTrue(Prop2); + + Prop2 = Dict2->propertyForKey("Key"); + if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { + Property->Key = Prop2->getString()->stringValue(); + } + + Prop2 = Dict2->propertyForKey("Value"); + if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { + //first suppose it is Ascii string + Property->Value.ncpy(Prop2->getString()->stringValue().c_str(), Prop2->getString()->stringValue().sizeInBytesIncludingTerminator()); + Property->ValueType = kTagTypeString; + } else if (Prop2 && (Prop2->isInt64())) { + if ( Prop2->getInt64()->intValue() < MIN_INT32 || Prop2->getInt64()->intValue() > MAX_INT32 ) { + MsgLog("Invalid int value for key 'Value'\n"); + }else{ + INT32 intValue = (INT32)Prop2->getInt64()->intValue(); + Property->Value.cat(intValue); + Property->ValueType = kTagTypeInteger; +// Property->Value = (__typeof__(Property->Value))AllocatePool (sizeof(intValue)); +// // CopyMem(settingsData.AddProperties[Index].Value, &Prop2->intValue, 4); +// *(INT32*)(Property->Value) = intValue; +// Property->ValueLen = sizeof(intValue); + } + } else { + //else data + uint8_t* Data = GetDataSetting (Dict2, "Value", &Size); + Property->Value.stealValueFrom(Data, Size); + Property->ValueType = kTagTypeData; + } + + DBG("Key: %s, len: %zu\n", Property->Key.c_str(), Property->Value.size()); + + if (!Property->MenuItem.BValue) { + DBG(" property disabled at config\n"); + } + + settingsData.Devices.AddPropertyArray.AddReference(Property, true); + ++Index; + } + +// settingsData.Devices.AddPropertyArray.size() = Index; + } + } + //end AddProperties + + const TagDict* FakeIDDict = DevicesDict->dictPropertyForKey("FakeID"); + if (FakeIDDict != NULL) { + const TagStruct* Prop2 = FakeIDDict->propertyForKey("ATI"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeATI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("NVidia"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeNVidia = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("IntelGFX"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeIntel = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("LAN"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeLAN = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("WIFI"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeWIFI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("SATA"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeSATA = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("XHCI"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeXHCI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + + Prop2 = FakeIDDict->propertyForKey("IMEI"); + if (Prop2 && (Prop2->isString())) { + settingsData.Devices.FakeID.FakeIMEI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); + } + } + + Prop = DevicesDict->propertyForKey("UseIntelHDMI"); + settingsData.Devices.UseIntelHDMI = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("ForceHPET"); + settingsData.Devices.ForceHPET = IsPropertyNotNullAndTrue(Prop); + + Prop = DevicesDict->propertyForKey("DisableFunctions"); + if (Prop && (Prop->isString())) { + settingsData.Devices.DisableFunctions = (UINT32)AsciiStrHexToUint64(Prop->getString()->stringValue()); + } + + Prop = DevicesDict->propertyForKey("AirportBridgeDeviceName"); + if (Prop && (Prop->isString())) { + if ( Prop->getString()->stringValue().length() != 4 ) { + MsgLog("ERROR IN PLIST : AirportBridgeDeviceName must 4 chars long"); + }else{ + settingsData.Devices.AirportBridgeDeviceName = Prop->getString()->stringValue(); + } + } + + const TagDict* AudioDict = DevicesDict->dictPropertyForKey("Audio"); + if (AudioDict != NULL) { + // HDA + // Prop = GetProperty(Prop2, "ResetHDA"); + // settingsData.ResetHDA = IsPropertyTrue(Prop); + Prop = AudioDict->propertyForKey("Inject"); + if (Prop != NULL) { + // enabled by default + // syntax: + // - HDAInjection=No or 0 - disables injection + // - HDAInjection=887 - injects layout-id 887 decimal (0x00000377) + // - HDAInjection=0x377 - injects layout-id 887 decimal (0x00000377) + // - HDAInjection=Detect - reads codec device id (eg. 0x0887) + // converts it to decimal 887 and injects this as layout-id. + // if hex device is cannot be converted to decimal, injects legacy value 12 decimal + // - all other values are equal to HDAInjection=Detect + if (Prop->isInt64()) { + settingsData.Devices.Audio.HDALayoutId = (INT32)Prop->getInt64()->intValue(); //must be signed + settingsData.Devices.Audio.HDAInjection = (settingsData.Devices.Audio.HDALayoutId > 0); + } else if (Prop->isString()){ + if ( Prop->getString()->stringValue().notEmpty() && (Prop->getString()->stringValue()[0] == 'n' || Prop->getString()->stringValue()[0] == 'N') ) { + // if starts with n or N, then no HDA injection + settingsData.Devices.Audio.HDAInjection = FALSE; + } else if ( Prop->getString()->stringValue().length() > 1 && + Prop->getString()->stringValue()[0] == '0' && + ( Prop->getString()->stringValue()[1] == 'x' || Prop->getString()->stringValue()[1] == 'X' ) ) { + // assume it's a hex layout id + settingsData.Devices.Audio.HDALayoutId = (INT32)AsciiStrHexToUintn(Prop->getString()->stringValue()); + settingsData.Devices.Audio.HDAInjection = TRUE; + } else { + // assume it's a decimal layout id + settingsData.Devices.Audio.HDALayoutId = (INT32)AsciiStrDecimalToUintn(Prop->getString()->stringValue()); + settingsData.Devices.Audio.HDAInjection = TRUE; + } + } + } + + Prop = AudioDict->propertyForKey("AFGLowPowerState"); + settingsData.Devices.Audio.AFGLowPowerState = IsPropertyNotNullAndTrue(Prop); + } + + const TagDict* USBDict = DevicesDict->dictPropertyForKey("USB"); + if (USBDict != NULL) { + // USB + Prop = USBDict->propertyForKey("Inject"); + settingsData.Devices.USB.USBInjection = !IsPropertyNotNullAndFalse(Prop); // enabled by default + + Prop = USBDict->propertyForKey("AddClockID"); + settingsData.Devices.USB.InjectClockID = IsPropertyNotNullAndTrue(Prop); // disabled by default + // enabled by default for CloverEFI + // disabled for others + settingsData.Devices.USB.USBFixOwnership = gFirmwareClover; + Prop = USBDict->propertyForKey("FixOwnership"); + if (Prop != NULL) { + settingsData.Devices.USB.USBFixOwnership = IsPropertyNotNullAndTrue(Prop); + } + DBG("USB FixOwnership: %s\n", settingsData.Devices.USB.USBFixOwnership?"yes":"no"); + + Prop = USBDict->propertyForKey("HighCurrent"); + settingsData.Devices.USB.HighCurrent = IsPropertyNotNullAndTrue(Prop); + + Prop = USBDict->propertyForKey("NameEH00"); + settingsData.Devices.USB.NameEH00 = IsPropertyNotNullAndTrue(Prop); + } + } + + //*** ACPI ***// + + getACPISettings(CfgDict, settingsData); + + + + + //done until here + + + + + + + //*** SMBIOS ***// + const TagDict* SMBIOSDict = CfgDict->dictPropertyForKey("SMBIOS"); + if (SMBIOSDict != NULL) { + + ParseSMBIOSSettings(settingsData, SMBIOSDict); + + const TagStruct* Prop = SMBIOSDict->propertyForKey("Trust"); + if (Prop != NULL) { + if (IsPropertyNotNullAndFalse(Prop)) { + settingsData.Smbios.TrustSMBIOS = FALSE; + } else if (IsPropertyNotNullAndTrue(Prop)) { + settingsData.Smbios.TrustSMBIOS = TRUE; + } + } + Prop = SMBIOSDict->propertyForKey("MemoryRank"); + settingsData.Smbios.Attribute = (INT8)GetPropertyAsInteger(Prop, -1); //1==Single Rank, 2 == Dual Rank, 0==undefined -1 == keep as is + + // Delete the user memory when a new config is selected + INTN i = 0; + for (i = 0; i < settingsData.Smbios.Memory.SlotCounts && i < MAX_RAM_SLOTS; i++) { + settingsData.Smbios.Memory.User[i].ModuleSize = 0; + settingsData.Smbios.Memory.User[i].InUse = 0; + } + settingsData.Smbios.Memory.SlotCounts = 0; + settingsData.Smbios.Memory.UserChannels = 0; + settingsData.Smbios.InjectMemoryTables = FALSE; + + // Inject memory tables into SMBIOS + const TagDict* MemoryDict = SMBIOSDict->dictPropertyForKey("Memory"); + if (MemoryDict != NULL){ + // Get memory table count + const TagStruct* Prop2 = MemoryDict->propertyForKey("SlotCount"); + settingsData.Smbios.Memory.SlotCounts = (UINT8)GetPropertyAsInteger(Prop2, 0); + // Get memory channels + Prop2 = MemoryDict->propertyForKey("Channels"); + settingsData.Smbios.Memory.UserChannels = (UINT8)GetPropertyAsInteger(Prop2, 0); + // Get memory tables + const TagArray* ModulesArray = MemoryDict->arrayPropertyForKey("Modules"); // array of dict + if (ModulesArray != NULL) { + INTN Count = ModulesArray->arrayContent().size(); + for (i = 0; i < Count; i++) { + const TagDict* Prop3 = ModulesArray->dictElementAt(i, "SMBIOS/Memory/Modules"_XS8); + int Slot = MAX_RAM_SLOTS; + RAM_SLOT_INFO *SlotPtr; + // Get memory slot + Prop2 = Prop3->propertyForKey("Slot"); + if (Prop2 == NULL) { + continue; + } + + if (Prop2->isString() && Prop2->getString()->stringValue().notEmpty() ) { + Slot = (UINT8)AsciiStrDecimalToUintn(Prop2->getString()->stringValue()); + } else if (Prop2->isInt64()) { + Slot = (UINT8)Prop2->getInt64()->intValue(); + } else { + continue; + } + + if (Slot >= MAX_RAM_SLOTS) { + continue; + } + + SlotPtr = &settingsData.Smbios.Memory.User[Slot]; + + // Get memory size + Prop2 = Prop3->propertyForKey("Size"); + SlotPtr->ModuleSize = (UINT32)GetPropertyAsInteger(Prop2, SlotPtr->ModuleSize); + // Get memory frequency + Prop2 = Prop3->propertyForKey("Frequency"); + SlotPtr->Frequency = (UINT32)GetPropertyAsInteger(Prop2, SlotPtr->Frequency); + // Get memory vendor + Prop2 = Prop3->propertyForKey("Vendor"); + if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { + SlotPtr->Vendor.S8Printf("%s", Prop2->getString()->stringValue().c_str()); + } + // Get memory part number + Prop2 = Prop3->propertyForKey("Part"); + if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { + SlotPtr->PartNo.S8Printf("%s", Prop2->getString()->stringValue().c_str()); + } + // Get memory serial number + Prop2 = Prop3->propertyForKey("Serial"); + if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { + SlotPtr->SerialNo.S8Printf("%s", Prop2->getString()->stringValue().c_str()); + } + // Get memory type + SlotPtr->Type = MemoryTypeDdr3; + Prop2 = Prop3->propertyForKey("Type"); + if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { + if (Prop2->getString()->stringValue().isEqualIC("DDR2")) { + SlotPtr->Type = MemoryTypeDdr2; + } else if (Prop2->getString()->stringValue().isEqualIC("DDR3")) { + SlotPtr->Type = MemoryTypeDdr3; + } else if (Prop2->getString()->stringValue().isEqualIC("DDR4")) { + SlotPtr->Type = MemoryTypeDdr4; + } else if (Prop2->getString()->stringValue().isEqualIC("DDR")) { + SlotPtr->Type = MemoryTypeDdr; + } + } + + SlotPtr->InUse = (SlotPtr->ModuleSize > 0); + if (SlotPtr->InUse) { + if (settingsData.Smbios.Memory.SlotCounts <= Slot) { + settingsData.Smbios.Memory.SlotCounts = Slot + 1; + } + } + } + + if (settingsData.Smbios.Memory.SlotCounts > 0) { + settingsData.Smbios.InjectMemoryTables = TRUE; + } + } + } + + const TagArray* SlotsArray = SMBIOSDict->arrayPropertyForKey("Slots"); // array of dict + if (SlotsArray != NULL) { + INTN DeviceN; + INTN Count = SlotsArray->arrayContent().size(); + + for (INTN Index = 0; Index < Count; ++Index) { + const TagDict* SlotsDict = SlotsArray->dictElementAt(Index, "SMBIOS/Slots"_XS8); + if (!Index) { + DBG("Slots->Devices:\n"); + } + + const TagStruct* Prop2 = SlotsDict->propertyForKey("Device"); + DeviceN = -1; + if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { + if (Prop2->getString()->stringValue().isEqualIC("ATI")) { + DeviceN = 0; + } else if (Prop2->getString()->stringValue().isEqualIC("NVidia")) { + DeviceN = 1; + } else if (Prop2->getString()->stringValue().isEqualIC("IntelGFX")) { + DeviceN = 2; + } else if (Prop2->getString()->stringValue().isEqualIC("LAN")) { + DeviceN = 5; + } else if (Prop2->getString()->stringValue().isEqualIC("WIFI")) { + DeviceN = 6; + } else if (Prop2->getString()->stringValue().isEqualIC("Firewire")) { + DeviceN = 12; + } else if (Prop2->getString()->stringValue().isEqualIC("HDMI")) { + DeviceN = 4; + } else if (Prop2->getString()->stringValue().isEqualIC("USB")) { + DeviceN = 11; + } else if (Prop2->getString()->stringValue().isEqualIC("NVME")) { + DeviceN = 13; + } else { + DBG(" - add properties to unknown device %s, ignored\n", Prop2->getString()->stringValue().c_str()); + continue; + } + } else { + DBG(" - no device property for slot\n"); + continue; + } + + if (DeviceN >= 0) { + SLOT_DEVICE *SlotDevice = &settingsData.Smbios.SlotDevices[DeviceN]; + Prop2 = SlotsDict->propertyForKey("ID"); + SlotDevice->SlotID = (UINT8)GetPropertyAsInteger(Prop2, DeviceN); + SlotDevice->SlotType = SlotTypePci; + + Prop2 = SlotsDict->propertyForKey("Type"); + if (Prop2 != NULL) { + switch ((UINT8)GetPropertyAsInteger(Prop2, 0)) { + case 0: + SlotDevice->SlotType = SlotTypePci; + break; + + case 1: + SlotDevice->SlotType = SlotTypePciExpressX1; + break; + + case 2: + SlotDevice->SlotType = SlotTypePciExpressX2; + break; + + case 4: + SlotDevice->SlotType = SlotTypePciExpressX4; + break; + + case 8: + SlotDevice->SlotType = SlotTypePciExpressX8; + break; + + case 16: + SlotDevice->SlotType = SlotTypePciExpressX16; + break; + + default: + SlotDevice->SlotType = SlotTypePciExpress; + break; + } + } + Prop2 = SlotsDict->propertyForKey("Name"); + if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { + SlotDevice->SlotName = Prop2->getString()->stringValue(); + } else { + SlotDevice->SlotName.S8Printf("PCI Slot %lld", DeviceN); + } + + DBG(" - %s\n", SlotDevice->SlotName.c_str()); + } + } + } + } + + //CPU + settingsData.CPU.CpuType = GetAdvancedCpuType(); //let it be default + settingsData.CPU.SavingMode = 0xFF; //default + const TagDict* CPUDict = CfgDict->dictPropertyForKey("CPU"); + if (CPUDict != NULL) { + const TagStruct* Prop = CPUDict->propertyForKey("QPI"); + if (Prop != NULL) { + settingsData.CPU.QPI = (UINT16)GetPropertyAsInteger(Prop, settingsData.CPU.QPI); + DBG("QPI: %dMHz\n", settingsData.CPU.QPI); + } + + Prop = CPUDict->propertyForKey("FrequencyMHz"); + if (Prop != NULL) { + settingsData.CPU.CpuFreqMHz = (UINT32)GetPropertyAsInteger(Prop, settingsData.CPU.CpuFreqMHz); + DBG("CpuFreq: %dMHz\n", settingsData.CPU.CpuFreqMHz); + } + + Prop = CPUDict->propertyForKey("Type"); + if (Prop != NULL) { + settingsData.CPU.CpuType = (UINT16)GetPropertyAsInteger(Prop, settingsData.CPU.CpuType); + DBG("CpuType: %hX\n", settingsData.CPU.CpuType); + } + + Prop = CPUDict->propertyForKey("QEMU"); + settingsData.CPU.QEMU = IsPropertyNotNullAndTrue(Prop); + if (settingsData.CPU.QEMU) { + DBG("QEMU: true\n"); + } + + Prop = CPUDict->propertyForKey("UseARTFrequency"); + if (Prop != NULL) { + settingsData.CPU.UseARTFreq = IsPropertyNotNullAndTrue(Prop); + } + + settingsData.CPU.UserChange = FALSE; + Prop = CPUDict->propertyForKey("BusSpeedkHz"); + if (Prop != NULL) { + settingsData.CPU.BusSpeed = (UINT32)GetPropertyAsInteger(Prop, settingsData.CPU.BusSpeed); + DBG("BusSpeed: %dkHz\n", settingsData.CPU.BusSpeed); + settingsData.CPU.UserChange = TRUE; + } + + Prop = CPUDict->propertyForKey("C6"); + if (Prop != NULL) { +// settingsData.ACPI.SSDT.EnableC6 = IsPropertyNotNullAndTrue(Prop); + settingsData.CPU._EnableC6 = IsPropertyNotNullAndTrue(Prop); + } + + Prop = CPUDict->propertyForKey("C4"); + if (Prop != NULL) { +// settingsData.ACPI.SSDT.EnableC4 = IsPropertyNotNullAndTrue(Prop); + settingsData.CPU._EnableC4 = IsPropertyNotNullAndTrue(Prop); + } + + Prop = CPUDict->propertyForKey("C2"); + if (Prop != NULL) { +// settingsData.ACPI.SSDT.EnableC2 = IsPropertyNotNullAndTrue(Prop); + settingsData.CPU._EnableC2 = IsPropertyNotNullAndTrue(Prop); + } + + //Usually it is 0x03e9, but if you want Turbo, you may set 0x00FA + Prop = CPUDict->propertyForKey("Latency"); +// settingsData.ACPI.SSDT.C3Latency = (UINT16)GetPropertyAsInteger(Prop, settingsData.ACPI.SSDT.C3Latency); + if ( Prop != NULL ) settingsData.CPU._C3Latency = (UINT16)GetPropertyAsInteger(Prop, 0); + + Prop = CPUDict->propertyForKey("SavingMode"); + settingsData.CPU.SavingMode = (UINT8)GetPropertyAsInteger(Prop, 0xFF); //the default value means not set + + Prop = CPUDict->propertyForKey("HWPEnable"); + settingsData.CPU.HWPEnable = IsPropertyNotNullAndTrue(Prop); +// if (settingsData.CPU.HWPEnable && (gCPUStructure.Model >= CPU_MODEL_SKYLAKE_U)) { +// GlobalConfig.HWP = TRUE; +//#ifdef CLOVER_BUILD +// AsmWriteMsr64 (MSR_IA32_PM_ENABLE, 1); +//#endif +// } + Prop = CPUDict->propertyForKey("HWPValue"); + if ( Prop ) settingsData.CPU.HWPValue = (UINT32)GetPropertyAsInteger(Prop, 0); +// if (Prop && GlobalConfig.HWP) { +//#ifdef CLOVER_BUILD +// AsmWriteMsr64 (MSR_IA32_HWP_REQUEST, settingsData.CPU.HWPValue); +//#endif +// } + + Prop = CPUDict->propertyForKey("TDP"); + settingsData.CPU.TDP = (UINT8)GetPropertyAsInteger(Prop, 0); + + Prop = CPUDict->propertyForKey("TurboDisable"); + if (Prop && IsPropertyNotNullAndTrue(Prop)) { +#ifdef CLOVER_BUILD + UINT64 msr = AsmReadMsr64(MSR_IA32_MISC_ENABLE); +#endif + settingsData.CPU.TurboDisabled = 1; +#ifdef CLOVER_BUILD + msr &= ~(1ULL<<38); + AsmWriteMsr64 (MSR_IA32_MISC_ENABLE, msr); +#endif + } + } + + // RtVariables + settingsData.RtVariables.RtROMAsData.setEmpty(); + const TagDict* RtVariablesDict = CfgDict->dictPropertyForKey("RtVariables"); + if (RtVariablesDict != NULL) { + // ROM: bin data or base 64 encoded bin data + const TagStruct* Prop = RtVariablesDict->propertyForKey("ROM"); + if (Prop != NULL) { + if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr0") ) { + settingsData.RtVariables.RtROMAsString = Prop->getString()->stringValue(); + } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr1") ) { + settingsData.RtVariables.RtROMAsString = Prop->getString()->stringValue(); + } else if ( Prop->isString() || Prop->isData() ) { // GetDataSetting accept both + UINTN ROMLength = 0; + uint8_t* ROM = GetDataSetting(RtVariablesDict, "ROM", &ROMLength); + settingsData.RtVariables.RtROMAsData.stealValueFrom(ROM, ROMLength); + } else { + MsgLog("MALFORMED PLIST : property not string or data in RtVariables/ROM\n"); + } + } + + // MLB: some value + Prop = RtVariablesDict->propertyForKey("MLB"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in RtVariables/MLB\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + settingsData.RtVariables.RtMLBSetting = Prop->getString()->stringValue(); + } + } + } + // CsrActiveConfig + Prop = RtVariablesDict->propertyForKey("CsrActiveConfig"); + settingsData.RtVariables.CsrActiveConfig = (UINT32)GetPropertyAsInteger(Prop, 0x2E7); //the value 0xFFFF means not set + + //BooterConfig + Prop = RtVariablesDict->propertyForKey("BooterConfig"); + settingsData.RtVariables.BooterConfig = (UINT16)GetPropertyAsInteger(Prop, 0); //the value 0 means not set + //let it be string like "log=0" + Prop = RtVariablesDict->propertyForKey("BooterCfg"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in RtVariables/BooterCfg\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + settingsData.RtVariables.BooterCfgStr = Prop->getString()->stringValue(); + } + } + } + //Block external variables + const TagArray* BlockArray = RtVariablesDict->arrayPropertyForKey("Block"); // array of dict + if (BlockArray != NULL) { + INTN i; + INTN Count = BlockArray->arrayContent().size(); + settingsData.RtVariables.BlockRtVariableArray.setEmpty(); + SETTINGS_DATA::RtVariablesClass::RT_VARIABLES* RtVariablePtr = new SETTINGS_DATA::RtVariablesClass::RT_VARIABLES(); + SETTINGS_DATA::RtVariablesClass::RT_VARIABLES& RtVariable = *RtVariablePtr; + for (i = 0; i < Count; i++) { + const TagDict* BlockDict = BlockArray->dictElementAt(i, "Block"_XS8); + const TagStruct* Prop2 = BlockDict->propertyForKey("Comment"); + if ( Prop2 != NULL ) { + if ( !Prop2->isString() ) { + MsgLog("ATTENTION : property not string in Block/Comment\n"); + }else{ + if( Prop2->getString()->stringValue().notEmpty() ) { + DBG(" %s\n", Prop2->getString()->stringValue().c_str()); + RtVariable.Comment = Prop2->getString()->stringValue(); + } + } + } + Prop2 = BlockDict->propertyForKey("Disabled"); + if (IsPropertyNotNullAndTrue(Prop2)) { + RtVariable.Disabled = true; +// continue; + } + Prop2 = BlockDict->propertyForKey("Guid"); + if ( Prop2 != NULL ) { + if ( !Prop2->isString() ) { + MsgLog("ATTENTION : property not string in Block/Guid\n"); + }else{ + if( Prop2->getString()->stringValue().notEmpty() ) { + if (IsValidGuidString(Prop2->getString()->stringValue())) { + StrToGuidLE(Prop2->getString()->stringValue(), &RtVariable.Guid); + }else{ + StrToGuidLE(nullGuidAsString, &RtVariable.Guid); + DBG("Error: invalid GUID for RT var '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop2->getString()->stringValue().c_str()); + } + } + } + } + + Prop2 = BlockDict->propertyForKey("Name"); + RtVariable.Name.setEmpty(); + if ( Prop2 != NULL ) { + if ( !Prop2->isString() ) { + MsgLog("ATTENTION : property not string in Block/Name\n"); + }else{ + if( Prop2->getString()->stringValue().notEmpty() ) { + RtVariable.Name = Prop2->getString()->stringValue(); + } + } + } + settingsData.RtVariables.BlockRtVariableArray.AddReference(RtVariablePtr, true); + } + } + } + +// if (settingsData.RtVariables.RtROM.isEmpty()) { +// EFI_GUID uuid; +// StrToGuidLE(settingsData.Smbios.SmUUID, &uuid); +// settingsData.RtVariables.RtROM.ncpy(&uuid.Data4[2], 6); +// } + +// if (settingsData.RtVariables.RtMLB.isEmpty()) { +// settingsData.RtVariables.RtMLB = settingsData.Smbios.BoardSerialNumber; +// } + + // if CustomUUID and InjectSystemID are not specified + // then use InjectSystemID=TRUE and SMBIOS UUID + // to get Chameleon's default behaviour (to make user's life easier) +// CopyMem((void*)&gUuid, (void*)&settingsData.SmUUID, sizeof(EFI_GUID)); + + // SystemParameters again - values that can depend on previous params + const TagDict* SystemParametersDict = CfgDict->dictPropertyForKey("SystemParameters"); + if (SystemParametersDict != NULL) { + //BacklightLevel + const TagStruct* Prop = SystemParametersDict->propertyForKey("BacklightLevel"); + if (Prop != NULL) { + settingsData.SystemParameters.BacklightLevel = (UINT16)GetPropertyAsInteger(Prop, settingsData.SystemParameters.BacklightLevel); + settingsData.SystemParameters.BacklightLevelConfig = TRUE; + } + + Prop = SystemParametersDict->propertyForKey("CustomUUID"); + if (Prop != NULL) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in SystemParameters/CustomUUID\n"); + }else{ + if (IsValidGuidString(Prop->getString()->stringValue())) { + settingsData.SystemParameters.CustomUuid = Prop->getString()->stringValue(); + // if CustomUUID specified, then default for InjectSystemID=FALSE + // to stay compatibile with previous Clover behaviour + DBG("The UUID is valid\n"); + }else{ + DBG("Error: invalid CustomUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop->getString()->stringValue().c_str()); + settingsData.SystemParameters.CustomUuid = {0}; + } + } + } + //else gUuid value from SMBIOS + // DBG("Finally use %s\n", strguid(&gUuid)); + + settingsData.SystemParameters._InjectSystemID = 2; + Prop = SystemParametersDict->propertyForKey("InjectSystemID"); + if ( Prop ) { + if ( Prop->isBool() ) settingsData.SystemParameters._InjectSystemID = Prop->getBool()->boolValue(); + else if ( Prop->isString() ) { + // TODO a function that takes a string and return if it's true or false + if ( Prop->getString()->stringValue().isEqualIC("true") ) settingsData.SystemParameters._InjectSystemID = 1; + else if ( Prop->getString()->stringValue()[0] == 'y' ) settingsData.SystemParameters._InjectSystemID = 1; + else if ( Prop->getString()->stringValue()[0] == 'Y' ) settingsData.SystemParameters._InjectSystemID = 1; + else if ( Prop->getString()->stringValue().isEqualIC("false") ) settingsData.SystemParameters._InjectSystemID = 0; + else if ( Prop->getString()->stringValue().isEqualIC("n") ) settingsData.SystemParameters._InjectSystemID = 0; + else if ( Prop->getString()->stringValue().isEqualIC("N") ) settingsData.SystemParameters._InjectSystemID = 0; + else { + DBG("MALFORMED PLIST : SMBIOS/InjectSystemID must be true, yes, false, no, or non existant"); + } + }else{ + DBG("MALFORMED PLIST : SMBIOS/InjectSystemID must be , or non existant"); + } + } + + Prop = SystemParametersDict->propertyForKey("NvidiaWeb"); + settingsData.SystemParameters.NvidiaWeb = IsPropertyNotNullAndTrue(Prop); + + } + + + const TagDict* BootGraphicsDict = CfgDict->dictPropertyForKey("BootGraphics"); + if (BootGraphicsDict != NULL) { + const TagStruct* Prop = BootGraphicsDict->propertyForKey("DefaultBackgroundColor"); + settingsData.BootGraphics.DefaultBackgroundColor = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); //the value 0x80000000 means not set + + Prop = BootGraphicsDict->propertyForKey("UIScale"); + settingsData.BootGraphics.UIScale = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); + + Prop = BootGraphicsDict->propertyForKey("EFILoginHiDPI"); + settingsData.BootGraphics.EFILoginHiDPI = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); + + Prop = BootGraphicsDict->propertyForKey("flagstate"); + settingsData.BootGraphics._flagstate = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); + + } + /* + //Example + RMde + + char + + QQ== + + + + DictPointer = GetProperty(Dict, "SMCKeys"); + if (DictPointer != NULL) { //sss + TagStruct* Key, ValArray; + for (Key = DictPointer->tag; Key != NULL; Key = Key->tagNext) { + ValArray = Prop->tag; + if (Key->type != kTagTypeKey || ValArray == NULL) { + DBG(" ERROR: Tag is not , type = %d\n", Key->type); + continue; + } + //.... + } + } + */ + /* + { + EFI_GUID AppleGuid; + + CopyMem((void*)&AppleGuid, (void*)&gUuid, sizeof(EFI_GUID)); + AppleGuid.Data1 = SwapBytes32 (AppleGuid.Data1); + AppleGuid.Data2 = SwapBytes16 (AppleGuid.Data2); + AppleGuid.Data3 = SwapBytes16 (AppleGuid.Data3); + DBG("Platform Uuid: %s, InjectSystemID: %s\n", strguid(&AppleGuid), settingsData.InjectSystemID ? "Yes" : "No"); + } + */ + + if (GlobalConfig.gBootChanged) { + const TagDict* KernelAndKextPatchesDict = CfgDict->dictPropertyForKey("KernelAndKextPatches"); + if (KernelAndKextPatchesDict != NULL) { + DBG("refill kernel patches bcoz GlobalConfig.gBootChanged\n"); + FillinKextPatches(&settingsData.KernelAndKextPatches, KernelAndKextPatchesDict); + } + } else { + //DBG("\n ConfigName: %ls n", settingsData.ConfigName); + } + if (GlobalConfig.gThemeChanged) { + settingsData.GUI.Theme.setEmpty(); + const TagDict* GUIDict = CfgDict->dictPropertyForKey("GUI"); + if (GUIDict != NULL) { + const TagStruct* Prop = GUIDict->propertyForKey("Theme"); + if ((Prop != NULL) && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { + settingsData.GUI.Theme.takeValueFrom(Prop->getString()->stringValue()); + DBG("Theme from new config: %ls\n", settingsData.GUI.Theme.wc_str()); + } + } + } + SaveSettings(settingsData); + } + //DBG("config.plist read and return %s\n", efiStrError(Status)); + return EFI_SUCCESS; +} +/* +static CONST CHAR8 *SearchString( + IN CONST CHAR8 *Source, + IN UINT64 SourceSize, + IN CONST CHAR8 *Search, + IN UINTN SearchSize + ) +{ + CONST CHAR8 *End = Source + SourceSize; + + while (Source < End) { + if (CompareMem(Source, Search, SearchSize) == 0) { + return Source; + } else { + Source++; + } + } + return NULL; +} +*/ + + + + +EFI_STATUS +static SaveSettings(SETTINGS_DATA& settingsData) +{ + // TODO: SetVariable().. + // here we can apply user settings instead of default one + gMobile = settingsData.Smbios.Mobile; + + if ((settingsData.CPU.BusSpeed != 0) && (settingsData.CPU.BusSpeed > 10 * Kilo) && (settingsData.CPU.BusSpeed < 500 * Kilo)) { + switch (gCPUStructure.Model) { + case CPU_MODEL_PENTIUM_M: + case CPU_MODEL_ATOM:// Atom + case CPU_MODEL_DOTHAN:// Pentium M, Dothan, 90nm + case CPU_MODEL_YONAH:// Core Duo/Solo, Pentium M DC + case CPU_MODEL_MEROM:// Core Xeon, Core 2 Duo, 65nm, Mobile + //case CPU_MODEL_CONROE:// Core Xeon, Core 2 Duo, 65nm, Desktop like Merom but not mobile + case CPU_MODEL_CELERON: + case CPU_MODEL_PENRYN:// Core 2 Duo/Extreme, Xeon, 45nm , Mobile + case CPU_MODEL_NEHALEM:// Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm + case CPU_MODEL_FIELDS:// Core i7, i5 LGA1156, "Clarksfield", "Lynnfield", "Jasper", 45nm + case CPU_MODEL_DALES:// Core i7, i5, Nehalem + case CPU_MODEL_CLARKDALE:// Core i7, i5, i3 LGA1156, "Westmere", "Clarkdale", , 32nm + case CPU_MODEL_WESTMERE:// Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm + case CPU_MODEL_NEHALEM_EX:// Core i7, Nehalem-Ex Xeon, "Beckton" + case CPU_MODEL_WESTMERE_EX:// Core i7, Nehalem-Ex Xeon, "Eagleton" + gCPUStructure.ExternalClock = settingsData.CPU.BusSpeed; + //DBG("Read ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + default: + //DBG("Read ExternalClock: %d MHz\n", (INT32)(DivU64x32(settingsData.BusSpeed, Kilo))); + + // for sandy bridge or newer + // to match ExternalClock 25 MHz like real mac, divide BusSpeed by 4 + gCPUStructure.ExternalClock = (settingsData.CPU.BusSpeed + 3) / 4; + //DBG("Corrected ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + } + + gCPUStructure.FSBFrequency = MultU64x64 (settingsData.CPU.BusSpeed, Kilo); //kHz -> Hz + gCPUStructure.MaxSpeed = (UINT32)(DivU64x32 ((UINT64)settingsData.CPU.BusSpeed * gCPUStructure.MaxRatio, 10000)); //kHz->MHz + } + + if ((settingsData.CPU.CpuFreqMHz > 100) && (settingsData.CPU.CpuFreqMHz < 20000)) { + gCPUStructure.MaxSpeed = settingsData.CPU.CpuFreqMHz; + } + + // to determine the use of Table 132 + if (settingsData.CPU.QPI) { + GlobalConfig.SetTable132 = TRUE; + //DBG("QPI: use Table 132\n"); + } + else { + switch (gCPUStructure.Model) { + case CPU_MODEL_NEHALEM:// Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm + case CPU_MODEL_WESTMERE:// Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm + case CPU_MODEL_NEHALEM_EX:// Core i7, Nehalem-Ex Xeon, "Beckton" + case CPU_MODEL_WESTMERE_EX:// Core i7, Nehalem-Ex Xeon, "Eagleton" + GlobalConfig.SetTable132 = TRUE; + DBG("QPI: use Table 132\n"); + break; + default: + //DBG("QPI: disable Table 132\n"); + break; + } + } + + gCPUStructure.CPUFrequency = MultU64x64 (gCPUStructure.MaxSpeed, Mega); + + return EFI_SUCCESS; +} + + + diff --git a/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.h b/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.h new file mode 100644 index 000000000..621c2c2ab --- /dev/null +++ b/Xcode/CloverX64TestNewParser/src/OldSettings/Settings.h @@ -0,0 +1,16 @@ +#ifndef __OLD_SETTINGS_H__ +#define __OLD_SETTINGS_H__ + +#include "../../../../rEFIt_UEFI/Platform/plist/TagDict.h" +#include "../../../../rEFIt_UEFI/Platform/Settings.h" + +EFI_STATUS +GetEarlyUserSettings ( + const TagDict* CfgDict, + SETTINGS_DATA& gSettings + ); + +EFI_STATUS +GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); + +#endif diff --git a/Xcode/CloverX64TestNewParser/src/Platform.cpp b/Xcode/CloverX64TestNewParser/src/Platform.cpp index 0b66d8988..ba22f2936 100755 --- a/Xcode/CloverX64TestNewParser/src/Platform.cpp +++ b/Xcode/CloverX64TestNewParser/src/Platform.cpp @@ -3,7 +3,7 @@ // cpp_tests // // Created by jief on 23.02.20. -// Copyright © 2020 JF Knudsen. All rights reserved. +// Copyright © 2020 Jief_Machak. All rights reserved. // #include "Platform.h" diff --git a/Xcode/CloverX64TestNewParser/src/ReadmeJief.txt b/Xcode/CloverX64TestNewParser/src/ReadmeJief.txt deleted file mode 100644 index a956eb46e..000000000 --- a/Xcode/CloverX64TestNewParser/src/ReadmeJief.txt +++ /dev/null @@ -1,2 +0,0 @@ - -wcslen=wcslen_fixed wcscmp=__wcscmp_is_disabled__ wcsncmp=wcsncmp_fixed wcsstr=wcsstr_fixed sprintf=__sprintf_is_disabled__ diff --git a/Xcode/CloverX64TestNewParser/src/main.cpp b/Xcode/CloverX64TestNewParser/src/main.cpp index ef46f4f69..790eee335 100755 --- a/Xcode/CloverX64TestNewParser/src/main.cpp +++ b/Xcode/CloverX64TestNewParser/src/main.cpp @@ -3,190 +3,490 @@ // cpp_tests // // Created by jief on 23.02.20. -// Copyright © 2020 JF Knudsen. All rights reserved. +// Copyright © 2020 Jief_Machak. All rights reserved. // -#include + +#include +#include +#include +#include +#include +#include #include +//#include +//#include +//#include +//#include + +//#include + #include #include #include "../../../rEFIt_UEFI/Platform/plist/plist.h" #include "../../../rEFIt_UEFI/Platform/Settings.h" #include "../../../rEFIt_UEFI/cpp_unit_test/all_tests.h" -#include "../../../../../cpp_tests/Include/xcode_utf_fixed.h" -#include "ConfigSample1.h" +#include "../../../PosixCompilation/xcode_utf_fixed.h" #include "../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h" -#include "../../../rEFIt_UEFI/Platform/ConfigPlist/CompareSettings.h" +#include "../../../rEFIt_UEFI/Platform/ConfigPlist/SMBIOSPlist.h" + +#include "ConfigSample1.h" +#include "Compare/CompareField.h" +#include "Compare/CompareSettings.h" +#include "Assign/AssignSettings.h" + +#include "OldSettings/Settings.h" + +extern bool gEnableCloverLog; - -int test1() +static EFI_STATUS readFile(const char* filename, char** sourcePtr, size_t* newLen) { - char *source = NULL; - size_t newLen = 0; - FILE *fp = fopen("config-test1.plist", "r"); -// FILE *fp = fopen("/JiefLand/5.Devel/Clover/user config/eng_redaesm/config.plist", "r"); + char*& source = *sourcePtr; + *newLen = 0; + FILE *fp = fopen(filename, "r"); if (fp == NULL) { - fputs("Error fopen config plist", stderr); - exit(-1); +// fputs("Error fopen config plist", stderr); + return EFI_NOT_FOUND; } /* Go to the end of the file. */ if (fseek(fp, 0L, SEEK_END) == 0) { /* Get the size of the file. */ long bufsize = ftell(fp); if (bufsize == -1) { - fputs("Error ftell config plist", stderr); - exit(-1); +// fputs("Error ftell config plist", stderr); + return EFI_LOAD_ERROR; } - + /* Allocate our buffer to that size. */ source = (char*)malloc(sizeof(char) * (bufsize + 1)); - + /* Go back to the start of the file. */ if (fseek(fp, 0L, SEEK_SET) != 0) { - fputs("Error fseek config plist", stderr); - exit(-1); +// fputs("Error fseek config plist", stderr); + return EFI_LOAD_ERROR; } - + /* Read the entire file into memory. */ - newLen = fread(source, sizeof(char), bufsize, fp); + *newLen = fread(source, sizeof(char), bufsize, fp); if ( ferror( fp ) != 0 ) { - fputs("Error reading config plist", stderr); - exit(-1); +// fputs("Error reading config plist", stderr); + return EFI_LOAD_ERROR; } else { - source[newLen++] = '\0'; /* Just to be safe. */ + source[*newLen] = '\0'; /* Just to be safe. */ } } fclose(fp); + return EFI_SUCCESS; +} - TagDict* dict = NULL; - EFI_STATUS Status = ParseXML(source, &dict, (UINT32)newLen); - printf("ParseXML returns %s\n", efiStrError(Status)); +static EFI_STATUS oldParse(const char *source, size_t newLen, bool enableCloverLog, bool enableLog, TagDict** dict, SETTINGS_DATA* settings) +{ + EFI_STATUS Status = ParseXML(source, dict, (UINT32)newLen); + if ( enableLog ) printf("ParseXML returns %s\n", efiStrError(Status)); if ( EFI_ERROR(Status) ) { return Status; } -// XString8 s; -// dict->sprintf(0, &s); -// printf("%s\n", s.c_str()); - + // XString8 s; + // dict->sprintf(0, &s); + // printf("%s\n", s.c_str()); + + Status = GetEarlyUserSettings(*dict, *settings); + //printf("settings=%llx, &ResetHDA=%llx %d\n", uintptr_t(&settings), uintptr_t(&settings.Devices.Audio.ResetHDA), settings.Devices.Audio.ResetHDA); + if ( enableLog ) printf("GetEarlyUserSettings returns %s\n", efiStrError(Status)); + + Status = GetUserSettings(*dict, *settings); + if ( enableLog ) printf("GetUserSettings returns %s\n", efiStrError(Status)); + return Status; +} + +static EFI_STATUS test1(const char *source, size_t newLen, bool enableCloverLog, bool enableLog) +{ + EFI_STATUS Status; + TagDict* dict = NULL; SETTINGS_DATA settings; - Status = GetEarlyUserSettings(dict, settings); -//printf("settings=%llx, &ResetHDA=%llx %d\n", uintptr_t(&settings), uintptr_t(&settings.Devices.Audio.ResetHDA), settings.Devices.Audio.ResetHDA); - printf("GetEarlyUserSettings returns %s\n", efiStrError(Status)); - Status = GetUserSettings(dict, settings); - printf("GetUserSettings returns %s\n", efiStrError(Status)); - if ( !settings.Devices.compareOldAndCompatibleArb() ) { - printf("!compareOldAndCompatibleArb"); + gEnableCloverLog = enableCloverLog; + if ( enableCloverLog ) enableLog = true; + + Status = oldParse(source, newLen, enableCloverLog, enableLog, &dict, &settings); + + bool compareOldAndCompatibleArbOK = settings.Devices.compareOldAndCompatibleArb(); + if ( !compareOldAndCompatibleArbOK ) { + if ( enableLog ) printf("!compareOldAndCompatibleArb"); } - + // if ( !compareOldAndNewArb(settings.Devices.newArbProperties, settings.Devices.oldArbProperties) ) { // printf("aie"); // } + + ConfigPlistClass configPlist; + + XmlLiteParser xmlLiteParser; + xmlLiteParser.init(source, newLen); + + gEnableCloverLog = enableLog; + + if ( enableLog ) printf("\n"); + if ( enableLog ) printf("=== [ Parse ] ====================\n"); + configPlist.parse(&xmlLiteParser, ""_XS8); + for ( size_t idx = 0 ; idx < xmlLiteParser.getErrorsAndWarnings().size() ; idx++ ) { + const XmlParserMessage& xmlMsg = xmlLiteParser.getErrorsAndWarnings()[idx]; + if ( enableLog ) printf("%s: %s\n", xmlMsg.isError ? "Error" : "Warning", xmlMsg.msg.c_str()); + } + + if ( enableLog ) printf("\n"); + if ( enableLog ) printf("=== [ CompareOldNewSettings ] ====================\n"); + + uint64_t nbError = 0; + +// nbError = CompareOldNewSettings(settings, configPlist); +// if ( nbError == 0 ) +// { +// SETTINGS_DATA settings2; +// AssignOldNewSettings(settings2, configPlist, SmbiosPlistClass()); +// if ( !settings.isEqual(settings2) ) { +// nbError++; +// if ( enableLog ) printf("Binary comparison failed\n"); +//bool b_tmp = settings.isEqual(settings2); +//(void)b_tmp; +// return EFI_COMPROMISED_DATA; +// } +// } +// +//#if __cplusplus > 201703L +// if ( nbError == 0 ) +// { +// SETTINGS_DATA settings2; +// AssignOldNewSettings(settings2, configPlist); +// if ( !(settings == settings2) ) { +// nbError++; +// if ( enableLog ) printf("Binary comparison(2) failed\n"); +// return EFI_COMPROMISED_DATA; +// } +// } +//#endif + + if ( nbError == 0 ) + { + SETTINGS_DATA settings2; + AssignOldNewSettings(settings2, configPlist, SmbiosPlistClass()); +// if ( !(settings == settings2) ) { +// nbError++; +// if ( enableLog ) printf("Binary comparison(2) failed\n"); +// return EFI_COMPROMISED_DATA; +// } + SETTINGS_DATA settings3; + settings3.takeValueFrom(configPlist); + if ( !settings3.isEqual(settings2) ) { + bool b_tmp = settings3.isEqual(settings2); + (void)b_tmp; + nbError++; + } + } + + if ( nbError == 0 ) { + if ( enableLog ) printf("Comparison OK\n"); + }else{ + if ( enableLog ) printf("Nb errors : %lld\n", nbError); + } + + return 0; +} + +EFI_STATUS test1(const char *source, bool enableCloverLog, bool enableLog) +{ + return test1(source, strlen(source), enableCloverLog, enableLog); +} + +EFI_STATUS test1_file(const char* filename, bool disableCloverLog, bool noLog) +{ + EFI_STATUS Status; + char * source; + size_t newLen; + +printf("Debug test file:%s\n", filename); + Status = readFile(filename, &source, &newLen); + printf("readFile returns %s\n", efiStrError(Status)); + if ( EFI_ERROR(Status) ) { + return Status; + } + + return test1(source, newLen, disableCloverLog, noLog); +} + + +#include + + +EFI_STATUS test_speed(const char* filename) +{ + EFI_STATUS Status; + char * source; + size_t newLen; + TagDict* dict = NULL; + SETTINGS_DATA settings; + + printf("Speed test with file:%s\n", filename); + Status = readFile(filename, &source, &newLen); + printf("readFile returns %s\n", efiStrError(Status)); + if ( EFI_ERROR(Status) ) { + return Status; + } + + auto t1 = std::chrono::high_resolution_clock::now(); + + for ( size_t i = 0 ; i < 1000 ; ++i ) { + Status = oldParse(source, newLen, false, false, &dict, &settings); +// dict->FreeTag(); + } + + auto t2 = std::chrono::high_resolution_clock::now(); + + XmlLiteParser xmlLiteParser; + ConfigPlistClass configPlist; + for ( size_t i = 0 ; i < 1000 ; ++i ) { + xmlLiteParser.init(source, newLen); + configPlist.parse(&xmlLiteParser, ""_XS8); + } + + auto t3 = std::chrono::high_resolution_clock::now(); + + /* Getting number of milliseconds as an integer. */ + auto s_int = std::chrono::duration_cast( (t2 - t1) / 1 ); + printf("Elpased time %lld ms\n", s_int.count()); + + auto s_int3 = std::chrono::duration_cast( (t3 - t2) / 1 ); + printf("Elpased time %lld ms\n", s_int3.count()); + + return EFI_SUCCESS; +} + + + + + + + +int nbStructuralProblem = 0; +int nbConfigPlistRead = 0; + +bool printFileBefore = true; + +EFI_STATUS test4testers(const char* filename) +{ + EFI_STATUS Status; + char * source; + size_t newLen; + + if ( printFileBefore ) printf("file:%s\n", filename); + + gEnableCloverLog = false; + + Status = readFile(filename, &source, &newLen); + if ( EFI_ERROR(Status) ) { + fprintf(stderr, "Cannot read the file '%s'. Status = %s\n", filename, efiStrError(Status)); + return Status; + } + LString8 source8 = LString8(source); + if ( source8.containsIC("ShowPicker"_XS8) ) { + // it's OC + return EFI_SUCCESS; + } + if ( source8.startWithOrEqualToIC("bplist"_XS8) ) { + // it's compressed + return EFI_SUCCESS; + } + if ( !source8.startWithOrEqualToIC(" 0 ) { +// // printf("nbError > 0"); +// if ( !printFileBefore ) printf("file:%s\n", filename); +// return EFI_COMPROMISED_DATA; +// } + + { + SETTINGS_DATA settings2; + AssignOldNewSettings(settings2, configPlist, SmbiosPlistClass()); +// if ( !settings.isEqual(settings2) ) { +// if ( !printFileBefore ) printf("file:%s\n", filename); +// bool b_tmp = settings.isEqual(settings2); +// (void)b_tmp; +// return EFI_COMPROMISED_DATA; +// } + SETTINGS_DATA settings3; + settings3.takeValueFrom(configPlist); + if ( !settings3.isEqual(settings2) ) { + if ( !printFileBefore ) printf("file:%s\n", filename); + bool b_tmp = settings3.isEqual(settings2); + (void)b_tmp; + return EFI_COMPROMISED_DATA; + } + } + + #if __cplusplus > 201703L + { + SETTINGS_DATA settings2; + AssignOldNewSettings(settings2, configPlist); + if ( !(settings == settings2) ) { + if ( !printFileBefore ) printf("file:%s\n", filename); + return EFI_COMPROMISED_DATA; + } + } + #endif + + if ( source8.contains("Boot"_XS8) || source8.contains("KernelAndKextPatches"_XS8) || source8.contains("GUI"_XS8) ) { + if ( !printFileBefore ) printf("file:%s\n", filename); + } +// printf("ZZZZZZfile:%s\n", filename); + return EFI_SUCCESS; } +static bool iterate_test_file(const XString8 &fileFullPath) +{ + //printf("fileZZZ:%s %s\n", fileFullPath.c_str(), fileFullPath.basename().c_str()); + if ( fileFullPath.basename().containsIC("config") && fileFullPath.basename().endWithOrEqualToIC(".plist"_XS8) ) { + EFI_STATUS Status = test4testers(fileFullPath.c_str()); + if ( EFI_ERROR(Status) ) { + if ( Status == EFI_NOT_FOUND ) { + }else if ( Status == RETURN_HTTP_ERROR ) { + }else{ + // fprintf(stderr, "There is a problem is my new parser with the field '%s'. Do NOT change your config.plist.\n", compareField_firstErrorField.c_str()); + fprintf(stderr, "Please send the file '%s' as is to me. DO NOT modify the file please, or I won't catch that bug in my new parser. Thanks.\n", fileFullPath.c_str()); + // fprintf(stderr, "Press any key :"); + // getchar(); + // fprintf(stderr, "\n"); + return false; + } + } + } + return true; +} -class PlistTest : public XmlDict +class TestEq { public: - XmlStringWArray DisableDrivers = XmlStringWArray(); - - XmlDictField m_fields[1] = { - {"DisableDrivers", DisableDrivers}, - }; - virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + uint8_t foo[2] = {1, 2}; + #if __cplusplus > 201703L + bool operator == (const TestEq&) const = default; + #endif }; -int test2() +bool iterateFileSystem(const XString8& path) { - char *source = NULL; - size_t newLen = 0; - FILE *fp = fopen("config-test2.plist", "r"); - if (fp == NULL) { - fputs("Error fopen config plist", stderr); - exit(-1); - } - /* Go to the end of the file. */ - if (fseek(fp, 0L, SEEK_END) == 0) { - /* Get the size of the file. */ - long bufsize = ftell(fp); - if (bufsize == -1) { - fputs("Error ftell config plist", stderr); - exit(-1); - } - - /* Allocate our buffer to that size. */ - source = (char*)malloc(sizeof(char) * (bufsize + 1)); - - /* Go back to the start of the file. */ - if (fseek(fp, 0L, SEEK_SET) != 0) { - fputs("Error fseek config plist", stderr); - exit(-1); - } - - /* Read the entire file into memory. */ - newLen = fread(source, sizeof(char), bufsize, fp); - if ( ferror( fp ) != 0 ) { - fputs("Error reading config plist", stderr); - exit(-1); - } else { - source[newLen++] = '\0'; /* Just to be safe. */ - } - } - fclose(fp); +// printf("folder:%s\n", path.c_str()); +// TestEq t1; +// TestEq t2; +// printf("t1 == t2 %d\n", t1 == t2); - bool b; - PlistTest plistTest; - - XmlLiteParser xmlLiteParser; - xmlLiteParser.init(source, newLen); - xmlLiteParser.moveForwardUntilSignificant(); - xmlLiteParser.skipHeader(); - printf("\n"); - printf("=== [ Parse ] ====================\n"); - b = plistTest.parseFromXmlLite(&xmlLiteParser, ""_XS8, true); - if ( b ) + XString8 correctedPath = path; + while ( correctedPath.contains("//") ) correctedPath.replaceAll("//"_XS8, "/"_XS8); + if ( correctedPath == "/"_XS8 ) correctedPath.setEmpty(); + + DIR *dir; + struct dirent *entry; + + if ( !(dir = opendir(path.c_str())) ) + return true; + + XString8 file; + XString8 subPath; + XString8 fullpath; + XString8Array folderNameArray; + + while ((entry = readdir(dir)) != NULL) { - b = plistTest.validate(&xmlLiteParser, ""_XS8, XmlParserPosition(), true); - } - if ( xmlLiteParser.getErrorsAndWarnings().size() > 0 ) { - for ( size_t idx = 0 ; idx < xmlLiteParser.getErrorsAndWarnings().size() ; idx++ ) { - const XmlParserMessage& xmlMsg = xmlLiteParser.getErrorsAndWarnings()[idx]; - printf("%s: %s\n", xmlMsg.isError ? "Error" : "Warning", xmlMsg.msg.c_str()); + if (entry->d_type == DT_DIR) { + if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0) + continue; + file.takeValueFrom(entry->d_name); + fullpath = S8Printf("%s/%s", correctedPath.c_str(), file.c_str()); + if ( fullpath == "/System"_XS8 ) continue; + if ( fullpath == "/Library"_XS8 ) continue; + if ( fullpath == "/private"_XS8 ) continue; + if ( fullpath == "/usr"_XS8 ) continue; + if ( fullpath.containsIC(".Spotlight-V100"_XS8) ) continue; + if ( fullpath.startWithOrEqualToIC("/Users") && file == "Library"_XS8 ) continue; + if ( file.endWithOrEqualToIC(".app"_XS8) ) continue; + if ( file == "DerivedData"_XS8 ) continue; +// printf("%*s[%s]\n", indent, "", entry->d_name); + folderNameArray.Add(fullpath); + } else { + file.takeValueFrom(entry->d_name); + fullpath = S8Printf("%s/%s", path.c_str(), file.c_str()); + if ( ! iterate_test_file(fullpath) ) return false; } - }else{ - printf("Your plist looks so wonderful. Well done!\n"); } - printf("\n"); - return 0; -} + closedir(dir); -extern "C" void tmp(); + for ( size_t idx = 0 ; idx < folderNameArray.size() ; ++idx ) + { + if( !iterateFileSystem(folderNameArray[idx]) ) return false; + } + return true; +} extern "C" int main(int argc, const char * argv[]) { @@ -195,17 +495,81 @@ extern "C" int main(int argc, const char * argv[]) (void)argv; setlocale(LC_ALL, "en_US"); // to allow printf unicode char +// xcode_utf_fixed_tests(); -char buf[] = { 'a', '\xef', '\xbb', '\xbf', 'b', 0}; -XString8 s5 = S8Printf("01234567890123456789"); -s5.S8Printf("%s", buf); -//const char* buf2 = s5.c_str(); + gEnableCloverLog = false; - xcode_utf_fixed_tests(); +#if defined(JIEF_DEBUG) + +// EFI_STATUS Status; + +// const char* emptyConfigPlist = ""; +// Status = test1(emptyConfigPlist, strlen(emptyConfigPlist), true, true); +// if ( EFI_ERROR(Status) ) { +// printf("*************************************************** ERROR **********************************\n"); +// exit(1); +// } + +// test1("", false, true); +// test1("SMBIOS", false, true); - return test1(); -// return test2(); +// test1_file("config-test1.plist", true, true); +// test1_file("/JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--master.3/Xcode/CloverConfigPlistValidator/config-test2.plist", true, true); +// test1_file("config-small.plist", true, true); +// test1_file("/System/Library/CoreServices/Certificate Assistant.app/Contents/Resources/3_CreateAndConfigure.bundle/Contents/Resources/CertificateAssistantTrustedApps.plist", true, true); + // test1_file("/JiefLand/3.Infos/3.Infos-Hackintosh/3.Infos-Dell M4300/Precision M4300 --1D-00-00-00-B1-C2/config.plist", true, true); +// test_speed("/JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--master.3/Xcode/CloverConfigPlistValidator/config-nowarning-noerror.plist"); +// iterateFileSystem("/JiefLand/5.Devel/Clover/user config"_XS8); -// return all_tests() ? 0 : -1 ; +#else + printf("Version 13\n"); + if ( argc == 0 ) { + printf("Usage %s [path to file or folder to scan]\n", argv[0]); + return -1; + } + size_t nb = 0; + if ( argc == 1 ) { + if ( !iterateFileSystem("/"_XS8) ) nb += 1; + }else{ + for ( int idx = 1 ; nb == 0 && idx < argc ; ++idx ) { // nb == 0 because I want to stop at the first problem. + XString8 file; + file.takeValueFrom(argv[idx]); + struct stat st_stat; + if ( stat(file.c_str(), &st_stat) != 0 ) { + fprintf(stderr, "Cannot access '%s'. Skipped.\n", file.c_str()); + continue; + } + if ( S_ISDIR(st_stat.st_mode) ) { + printf("Look for config.plist in folder '%s'\n", file.c_str()); + if ( !iterateFileSystem(file) ) nb += 1; + }else{ +// if ( !iterate_test(file) ) nb += 1; + if ( EFI_ERROR(test1_file(file.c_str(), true, true)) ) nb += 1; + } + } + } + if ( nb == 0 ) { + if ( nbStructuralProblem > 0 ) { + printf("%d file(s) ignored because of xml structural problem (missing closing tag or like).\n", nbStructuralProblem); + } + printf("%d file(s) read. No parsing bug detected. Great. Let me know\n", nbConfigPlistRead); + } +#endif + + return 0; } + + + + + + +// +// +//bool b; +//b = "aa"_XS8.endWithOrEqualToIC("config.plist"_XS8); +//b = "config.plist"_XS8.endWithOrEqualToIC("config.plist"_XS8); +//b = "Config.plist"_XS8.endWithOrEqualToIC("config.plist"_XS8); +//b = "AAConfig.plist"_XS8.endWithOrEqualToIC("config.plist"_XS8); +//b = "AAConfig.plista"_XS8.endWithOrEqualToIC("config.plist"_XS8); diff --git a/Xcode/cpp_tests/.cproject b/Xcode/cpp_tests/.cproject index 78215c9bf..8362b5341 100644 --- a/Xcode/cpp_tests/.cproject +++ b/Xcode/cpp_tests/.cproject @@ -5,7 +5,7 @@ - + @@ -41,7 +41,7 @@ - + @@ -69,7 +69,7 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -481,12 +699,24 @@ + + + + + + + + + + + + @@ -523,6 +753,12 @@ + + + + + + @@ -541,6 +777,12 @@ + + + + + + diff --git a/Xcode/cpp_tests/.gitignore b/Xcode/cpp_tests/.gitignore index 680c8ed03..a7e5f79a5 100644 --- a/Xcode/cpp_tests/.gitignore +++ b/Xcode/cpp_tests/.gitignore @@ -1,2 +1,5 @@ /Gcc92-Debug/ -/Clang-Debug/ \ No newline at end of file +/Clang-Debug/ +/DEBUG-GCC92-UTF16signed/ +/DEBUG-GCC92-UTF32/ +/DEBUG_XCODE8_UTF32/ diff --git a/Xcode/cpp_tests/.project b/Xcode/cpp_tests/.project index ee23cbd2a..08c38813e 100644 --- a/Xcode/cpp_tests/.project +++ b/Xcode/cpp_tests/.project @@ -31,24 +31,19 @@ PARENT-2-PROJECT_LOC/Library/MemLogLibDefault - Posix + OpenCorePkg 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/Platform/Posix + PARENT-2-PROJECT_LOC/OpenCorePkg - cpp_foundation + PosixCompilation 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_foundation + PARENT-2-PROJECT_LOC/PosixCompilation - cpp_unit_test + rEFIt_UEFI 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_unit_test - - - cpp_util - 2 - PARENT-2-PROJECT_LOC/rEFIt_UEFI/cpp_util + PARENT-2-PROJECT_LOC/rEFIt_UEFI diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-as b/Xcode/cpp_tests/.settings/compilation/gcc102-as new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-as @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-g++ b/Xcode/cpp_tests/.settings/compilation/gcc102-g++ new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-g++ @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-gcc b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc new file mode 100755 index 000000000..aa46be719 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc @@ -0,0 +1,44 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +macrolist1=() +[ -f "$ps_dir"/all-all-all-macrolist ] && macrolist1=( $("$ps_dir"/all-all-all-macrolist) ) + +macrolist2=() +[ -f "$ps_dir"/"$prefix"-macrolist ] && macrolist2=( $("$ps_dir"/"$prefix"-macrolist) ) + +includelist1=() +[ -f "$ps_dir"/all-all-all-includelist ] && includelist1=( $("$ps_dir"/all-all-all-includelist) ) + +includelist2=() +[ -f "$ps_dir"/"$prefix"-includelist ] && includelist2=( $("$ps_dir"/"$prefix"-includelist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) $("$ps_dir"/"$prefix"-c-c++flags) "${macrolist1[@]}" "${macrolist2[@]}" "${includelist1[@]}" "${includelist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-ar b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-ar new file mode 100755 index 000000000..4479a9f82 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-ar @@ -0,0 +1,24 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` + +me=`basename "$0"` +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +source "$SCRIPT_DIR"/"$prefix"-path "$name" +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +cmdArgs=() +cmdArgs=( "$bin_path" $@ ) + +echo ${cmdArgs[@]} + +exec ${cmdArgs[@]} diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-path b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-path new file mode 100755 index 000000000..ddcbcc76f --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-gcc-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path="$SCRIPT_DIR"/../../../../toolchain.gcc102.kbl/cross +gcc_prefix=x86_64-clover-linux-gnu-gcc- +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-ld b/Xcode/cpp_tests/.settings/compilation/gcc102-ld new file mode 100755 index 000000000..fe1642b4b --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-ld @@ -0,0 +1,38 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path g++ +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +liblist1=() +[ -f "$ps_dir"/all-all-all-liblist ] && liblist1=( $("$ps_dir"/all-all-all-liblist) ) + +liblist2=() +[ -f "$ps_dir"/"$prefix"-liblist ] && liblist2=( $("$ps_dir"/"$prefix"-liblist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) "${liblist1[@]}" "${liblist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/cpp_tests/.settings/compilation/gcc102-path b/Xcode/cpp_tests/.settings/compilation/gcc102-path new file mode 100755 index 000000000..3de8775a9 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc102-path @@ -0,0 +1,7 @@ +#this is sourced. + +gcc_path="$SCRIPT_DIR"/../../../../toolchain.gcc102.kbl/cross +gcc_prefix=x86_64-clover-linux-gnu- +gcc_suffix= +#only bin_path is used bt the caller +bin_path="$gcc_path"/bin/"$gcc_prefix""$1""$gcc_suffix" diff --git a/Xcode/cpp_tests/.settings/compilation/gcc92-ld b/Xcode/cpp_tests/.settings/compilation/gcc92-ld new file mode 100755 index 000000000..fe1642b4b --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation/gcc92-ld @@ -0,0 +1,38 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +#echo prefix=$prefix + +#clang doesn't know -Wno-unused-but-set-variable +args=( "$@" ) +#args=( "${args[@]/-Wno-unused-but-set-variable/}" ) # doesn't work, it generates an empty arg +#for i in "${args[@]}"; do echo $i; done + +source "$SCRIPT_DIR"/"$prefix"-path g++ +ps_dir="$SCRIPT_DIR"/../compilation_project_specific + +liblist1=() +[ -f "$ps_dir"/all-all-all-liblist ] && liblist1=( $("$ps_dir"/all-all-all-liblist) ) + +liblist2=() +[ -f "$ps_dir"/"$prefix"-liblist ] && liblist2=( $("$ps_dir"/"$prefix"-liblist) ) + + +cmdArgs=() +cmdArgs=( "$bin_path" $("$ps_dir"/"$prefix"-"$name"flags) "${liblist1[@]}" "${liblist2[@]}" "${args[@]}" ) + +echo "${cmdArgs[@]}" + +exec "${cmdArgs[@]}" diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-includelist b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-includelist index 20c7435c8..00f0c05a1 100755 --- a/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-includelist +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-includelist @@ -4,7 +4,22 @@ prefix=$1 echo " -../src +../../../PosixCompilation/UefiMock +../../../PosixCompilation/CloverMock/Include +../../../Include +../../../IntelFrameworkPkg/Include +../../../UefiCpuPkg/Include +../../../OpenCorePkg/Include/Apple +../../../OpenCorePkg/Include/Intel +../../../OpenCorePkg/Include/Acidanthera +../../../OpenCorePkg +../../../MdePkg/Include +../../../MdePkg/Include/X64 +../../../MdePkg/Include/Register/Intel +../../../MdeModulePkg/Include +../../../rEFIT_UEFI/PlatformPOSIX +../../../rEFIT_UEFI/PlatformPOSIX/include +../../../rEFIT_UEFI/include " | awk '$0!=""{ printf " -I'"${prefix}"'%s", $0; }' diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-liblist b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-liblist new file mode 100755 index 000000000..7f44c7e1f --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-liblist @@ -0,0 +1,7 @@ +#echo " +# +#foo +# +#" | awk '$0!=""{ printf " -l%s", $0; }' + +#find ../../../PosixCompilation/Libs -name "*.lib" | awk '$0!=""{ printf " %s", $0; }' diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-macrolist b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-macrolist index 87b306cfa..64c7690d8 100755 --- a/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-macrolist +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/all-all-all-macrolist @@ -1,5 +1,15 @@ echo " +UNIT_TESTS +UNIT_TESTS_MACOS +JCONST=const +___NOT___ENABLE_SECURE_BOOT +_UINTPTR_T " | awk '$0!=""{ printf " -D%s", $0; }' +#sprintf=__sprintf_is_disabled__ +#wcscmp=__wcsncmp_is_disabled__ +#wcslen=wcslen_fixed +#wcsncmp=wcsncmp_fixed +#wcsstr=wcsstr_fixed diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/clang-c-c++flags b/Xcode/cpp_tests/.settings/compilation_project_specific/clang-c-c++flags index 39eacc5c8..f24aa4703 100755 --- a/Xcode/cpp_tests/.settings/compilation_project_specific/clang-c-c++flags +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/clang-c-c++flags @@ -2,9 +2,11 @@ SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` -echo -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin \ - -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers \ - -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang \ - -D NO_MSABI_VA_FUNCS -fsigned-char -fno-omit-frame-pointer -fno-unwind-tables -Wno-msvc-include \ +echo -include Platform.h -Wno-incompatible-ms-struct + +#echo -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin \ +# -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers \ +# -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang \ +# -D NO_MSABI_VA_FUNCS -fsigned-char -fno-omit-frame-pointer -fno-unwind-tables -Wno-msvc-include \ # -Wno-unused-variable -Wno-unused-function -Wno-unknown-pragmas -Wno-unused-label diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-c-c++flags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-c-c++flags new file mode 100755 index 000000000..df8dd8984 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-c-c++flags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -include Platform.h -Wignored-qualifiers -Wreorder + diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-g++flags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-g++flags new file mode 100755 index 000000000..1b2c63229 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-g++flags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c++11 -fno-rtti -Weffc++ diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-gccflags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-gccflags new file mode 100755 index 000000000..9a64f95ad --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-gccflags @@ -0,0 +1,5 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo -std=c11 diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-ldflags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-ldflags new file mode 100755 index 000000000..317fffc76 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-ldflags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo + diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-slink b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-slink new file mode 100755 index 000000000..498aa3de5 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc102-slink @@ -0,0 +1,106 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +#set -x + +#echo `pwd` +#echo BASH_SOURCE="${BASH_SOURCE[@]}" +#echo "$0" "$@" + +me=`basename "$0"` # get invocation name (not the name of the target of the link) +#echo me=$me + +name="${me##*-}" +#echo name=$name + +prefix=${me%-$name} +echo prefix=$prefix + + + +#parameter 1 +dsc_file="$1" && shift # path of the dsc file +#echo dsc_file=$dsc_file + +#parameter 2 +component="$1" && shift # path to .inf under edk2 directory, see components section in dsc file. Ie RefindPkg/refind/refind.inf +#echo component=$component + +#parameter 3 +edk2config="$1" && shift # configuration name of edk2 build script (ie DEBUG_GCC49) +#echo edk2config=$edk2config + +#parameter 4 +libname="$1" && shift # lib name generated by eclipse (use ${BuildArtifactFilePrefix}${BuildArtifactFileName} ) +#echo libname=$libname + +#parameter 5 +edk2prefix="$1" && shift # path "$edk2prefix" to edk2 directory +#echo edk2prefix=$edk2prefix + + +#computed variables +component_path="$(dirname "$component")/$(basename "$component" .inf)" +#echo component_path=$component_path + +edk2project="$("$edk2prefix"/../../../cmd_line_tools/get_unique_property PLATFORM_NAME "$dsc_file")" +#echo edk2project=$edk2project + +edk2libname="$("$edk2prefix"/../../../cmd_line_tools/get_unique_property BASE_NAME "$edk2prefix"/"$component").lib" +#echo edk2libname="$edk2libname" + +outputname="${libname%.*}" # output name +#echo outputname="$outputname" + + + + +[[ -f ./"$outputname".dll ]] && rm -f ./"$outputname".dll +[[ -f ./"$outputname".pecoff ]] && rm -f ./"$outputname".pecoff +[[ -f ./"$outputname".efi ]] && rm -f ./"$outputname".efi +[[ -f ./BOOTX64.efi ]] && rm -f ./BOOTX64.efi + +awk '!/'"$edk2libname"'/' "$edk2prefix"/Build/"$edk2project"/"$edk2config"/X64/"$component_path"/OUTPUT/static_library_files.lst > "$outputname"_file_list.lst + +source "$SCRIPT_DIR"/../compilation/"$prefix"-path "gcc" + +"$bin_path" \ + -o "$outputname".dll -nostdlib -Wl,-n,-q,--gc-sections,-z,common-page-size=0x40,--defsym=PECOFF_HEADER_SIZE=0x240 \ + -Wl,--script="$edk2prefix"/BaseTools/Scripts/GccBase.lds,--entry,_ModuleEntryPoint,-u,_ModuleEntryPoint \ + -Wl,-Map,"$outputname".map,-melf_x86_64,--oformat=elf64-x86-64,-pie \ + -g3 -fshort-wchar -fno-builtin -fno-strict-aliasing -ffunction-sections -fdata-sections -fno-common \ + -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address \ + -Wl,--start-group,@"$outputname"_file_list.lst,"$edk2prefix"/Build/"$edk2project"/"$edk2config"/X64/"$component_path"/OUTPUT/AutoGen.obj,"$libname" -Wl,--end-group \ + + +set -x + +if [[ $? == 0 ]] +then + cp -f "$outputname".dll "$outputname".debug + + source "$SCRIPT_DIR"/../compilation/"$prefix"-path "objcopy" + +#[[ $? == 0 ]] && "$bin_path" --strip-unneeded -R .eh_frame "$outputname".dll + "$bin_path" "$outputname".dll + +# genfw_path="/JiefLand/5.Devel/Clover/Clover-projects/Clover--CloverHackyColor--master.2/BaseTools/Source/C/GenFw/DerivedData/GenFw/Build/Products/Debug/GenFw" + genfw_path="$edk2prefix"/BaseTools/Source/C/bin/GenFw + + [[ $? == 0 ]] && "$genfw_path" -e UEFI_APPLICATION -o "$outputname".efi "$outputname".dll + + build_id="$(grep -aEo "CloverBuildIdGrepTag: [^[:cntrl:]]*" < ./"$outputname".efi | sed "s/CloverBuildIdGrepTag: //")" + [[ $? == 0 ]] && cp ./"$outputname".efi "$outputname"-"$build_id".efi + [[ $? == 0 ]] && zip ./"$outputname"-"$build_id".zip ./"$outputname"-"$build_id".efi + +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/Matgen84/EFI_github/CLOVER/CloverX64.efi" +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/mifjpn/EFI_github/CLOVER/CloverX64.efi" +# [[ $? == 0 ]] && cp ./"$outputname".efi "/JiefLand/5.Devel/Clover/user config/iCanaro/EFI_github/CLOVER/CloverX64.efi" + + [[ $? == 0 ]] && echo link successful +else + : +fi + + diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-c-c++flags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-c-c++flags index 45219f1b8..df8dd8984 100755 --- a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-c-c++flags +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-c-c++flags @@ -2,5 +2,5 @@ SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` -echo -g -fshort-wchar +echo -include Platform.h -Wignored-qualifiers -Wreorder diff --git a/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-ldflags b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-ldflags new file mode 100755 index 000000000..317fffc76 --- /dev/null +++ b/Xcode/cpp_tests/.settings/compilation_project_specific/gcc92-ldflags @@ -0,0 +1,6 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +echo + diff --git a/Xcode/cpp_tests/.settings/language.settings.xml b/Xcode/cpp_tests/.settings/language.settings.xml index 283ea0745..2f0d8bad9 100644 --- a/Xcode/cpp_tests/.settings/language.settings.xml +++ b/Xcode/cpp_tests/.settings/language.settings.xml @@ -1,7 +1,7 @@ - + @@ -11,7 +11,7 @@ - + @@ -23,7 +23,7 @@ - + @@ -33,7 +33,29 @@ - + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Xcode/cpp_tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs b/Xcode/cpp_tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs index 5342e06d1..3468d2b10 100644 --- a/Xcode/cpp_tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs +++ b/Xcode/cpp_tests/.settings/org.eclipse.cdt.managedbuilder.core.prefs @@ -1,4 +1,12 @@ eclipse.preferences.version=1 +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/CPATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/CPATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/CPLUS_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/CPLUS_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/C_INCLUDE_PATH/delimiter=\: +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/C_INCLUDE_PATH/operation=remove +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/append=true +environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/appendContributed=true environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/delimiter=\: environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPATH/operation=remove environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/CPLUS_INCLUDE_PATH/delimiter=\: @@ -15,6 +23,10 @@ environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/C_INCLUDE_PATH/operation=remove environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/append=true environment/buildEnvironmentInclude/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.573872575/appendContributed=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/LIBRARY_PATH/delimiter=\: +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/LIBRARY_PATH/operation=remove +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/append=true +environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338.1821388193/appendContributed=true environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/delimiter=\: environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/LIBRARY_PATH/operation=remove environment/buildEnvironmentLibrary/cdt.managedbuild.config.gnu.macosx.exe.debug.1043399644.1294514338/append=true diff --git a/Xcode/cpp_tests/cpp_tests.xcodeproj/project.pbxproj b/Xcode/cpp_tests/cpp_tests.xcodeproj/project.pbxproj index b420c34e9..69e637ec6 100644 --- a/Xcode/cpp_tests/cpp_tests.xcodeproj/project.pbxproj +++ b/Xcode/cpp_tests/cpp_tests.xcodeproj/project.pbxproj @@ -7,7 +7,51 @@ objects = { /* Begin PBXBuildFile section */ + 9A071C0B26196C200007CC44 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FCBA26184686006F973B /* xml_lite-test.cpp */; }; + 9A071C0C26196C200007CC44 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FCBA26184686006F973B /* xml_lite-test.cpp */; }; + 9A071C0D26196C200007CC44 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FCBA26184686006F973B /* xml_lite-test.cpp */; }; + 9A071C0E26196C210007CC44 /* xml_lite-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FCBA26184686006F973B /* xml_lite-test.cpp */; }; + 9A071C1726196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */; }; + 9A071C1826196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */; }; + 9A071C1926196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */; }; + 9A071C1A26196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */; }; + 9A071C1B26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */; }; + 9A071C1C26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */; }; + 9A071C1D26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */; }; + 9A071C1E26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */; }; + 9A071C1F26196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */; }; + 9A071C2026196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */; }; + 9A071C2126196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */; }; + 9A071C2226196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */; }; + 9A071C2526196C7D0007CC44 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2326196C7C0007CC44 /* Utils.cpp */; }; + 9A071C2626196C7D0007CC44 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2326196C7C0007CC44 /* Utils.cpp */; }; + 9A071C2726196C7D0007CC44 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2326196C7C0007CC44 /* Utils.cpp */; }; + 9A071C2826196C7D0007CC44 /* Utils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2326196C7C0007CC44 /* Utils.cpp */; }; + 9A071C2B26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */; }; + 9A071C2C26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */; }; + 9A071C2D26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */; }; + 9A071C2E26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */; }; + 9A071C312619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C322619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C332619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C342619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */; }; + 9A071C372619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */; }; + 9A071C382619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */; }; + 9A071C392619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */; }; + 9A071C3A2619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */; }; + 9A071C3D2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9A071C3E2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9A071C3F2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */; }; + 9A071C402619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */; }; 9A0B08742403B08400E2B470 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; + 9A27552E2639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */; }; + 9A27552F2639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2755302639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2755312639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */; }; + 9A2755442639CE540095D456 /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755422639CE530095D456 /* platformdata.cpp */; }; + 9A2755452639CE540095D456 /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755422639CE530095D456 /* platformdata.cpp */; }; + 9A2755462639CE540095D456 /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755422639CE530095D456 /* platformdata.cpp */; }; + 9A2755472639CE540095D456 /* platformdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A2755422639CE530095D456 /* platformdata.cpp */; }; 9A2A7C7324576CCE00422263 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; 9A3D2C57261855D000F0D7A1 /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A3D2C4B261855D000F0D7A1 /* BootLog.cpp */; }; 9A3D2C58261855D000F0D7A1 /* BootLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A3D2C4B261855D000F0D7A1 /* BootLog.cpp */; }; @@ -29,6 +73,10 @@ 9A3D2C692618594400F0D7A1 /* printf_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A82F1AD26184668006F973B /* printf_lite.c */; }; 9A3D2C6A2618594500F0D7A1 /* printf_lite.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A82F1AD26184668006F973B /* printf_lite.c */; }; 9A57C21B2418B9A00029A39F /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; + 9A77BA9E26333138000FFF8A /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BA9C26333138000FFF8A /* guid.cpp */; }; + 9A77BA9F2633313B000FFF8A /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BA9C26333138000FFF8A /* guid.cpp */; }; + 9A77BAA02633313B000FFF8A /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BA9C26333138000FFF8A /* guid.cpp */; }; + 9A77BAA12633313C000FFF8A /* guid.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A77BA9C26333138000FFF8A /* guid.cpp */; }; 9A82002526184688006F973B /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FDD426184687006F973B /* FloatLib.cpp */; }; 9A82002626184688006F973B /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FDD426184687006F973B /* FloatLib.cpp */; }; 9A82002726184688006F973B /* FloatLib.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A82FDD426184687006F973B /* FloatLib.cpp */; }; @@ -227,6 +275,10 @@ 9A8791FF261878EA000B9362 /* BaseLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A8791FC261878EA000B9362 /* BaseLib.c */; }; 9A879200261878EA000B9362 /* BaseLib.c in Sources */ = {isa = PBXBuildFile; fileRef = 9A8791FC261878EA000B9362 /* BaseLib.c */; }; 9A9223312402FD1000483CBA /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A9223302402FD1000483CBA /* main.cpp */; }; + 9AB73A1D261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */; }; + 9AB73A1E261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */; }; + 9AB73A1F261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */; }; + 9AB73A20261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */; }; /* End PBXBuildFile section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -269,7 +321,29 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 9A071C1026196C4A0007CC44 /* XmlLiteParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteParser.h; sourceTree = ""; }; + 9A071C1126196C4A0007CC44 /* XmlLiteSimpleTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteSimpleTypes.h; sourceTree = ""; }; + 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteCompositeTypes.cpp; sourceTree = ""; }; + 9A071C1326196C4A0007CC44 /* undefinable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = undefinable.h; sourceTree = ""; }; + 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteParser.cpp; sourceTree = ""; }; + 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteSimpleTypes.cpp; sourceTree = ""; }; + 9A071C1626196C4A0007CC44 /* XmlLiteCompositeTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteCompositeTypes.h; sourceTree = ""; }; + 9A071C2326196C7C0007CC44 /* Utils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Utils.cpp; sourceTree = ""; }; + 9A071C2426196C7C0007CC44 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Utils.h; sourceTree = ""; }; + 9A071C2926196CA40007CC44 /* xml_lite-reapeatingdict-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "xml_lite-reapeatingdict-test.h"; sourceTree = ""; }; + 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "xml_lite-reapeatingdict-test.cpp"; sourceTree = ""; }; + 9A071C2F2619FC940007CC44 /* XmlLiteUnionTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteUnionTypes.h; sourceTree = ""; }; + 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteUnionTypes.cpp; sourceTree = ""; }; + 9A071C352619FDA20007CC44 /* XmlLiteDictTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteDictTypes.h; sourceTree = ""; }; + 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteDictTypes.cpp; sourceTree = ""; }; + 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XmlLiteArrayTypes.cpp; sourceTree = ""; }; + 9A071C3C2619FF840007CC44 /* XmlLiteArrayTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XmlLiteArrayTypes.h; sourceTree = ""; }; 9A0B08862403B08400E2B470 /* cpp_tests UTF32 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cpp_tests UTF32"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A2754F22639A1FA0095D456 /* Readme.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = Readme.md; sourceTree = ""; }; + 9A2755042639A1FA0095D456 /* ConfigPlistAbstract.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistAbstract.h; sourceTree = ""; }; + 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistAbstract.cpp; sourceTree = ""; }; + 9A2755422639CE530095D456 /* platformdata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = platformdata.cpp; sourceTree = ""; }; + 9A2755432639CE540095D456 /* platformdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platformdata.h; sourceTree = ""; }; 9A2A7C8624576CCE00422263 /* cpp_tests UTF32 c++17 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cpp_tests UTF32 c++17"; sourceTree = BUILT_PRODUCTS_DIR; }; 9A3D2C4B261855D000F0D7A1 /* BootLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = BootLog.cpp; sourceTree = ""; }; 9A3D2C4D261855D000F0D7A1 /* posix_additions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = posix_additions.cpp; sourceTree = ""; }; @@ -282,6 +356,8 @@ 9A3D2C55261855D000F0D7A1 /* operatorNewDelete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = operatorNewDelete.h; sourceTree = ""; }; 9A3D2C56261855D000F0D7A1 /* globals_ctor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = globals_ctor.h; sourceTree = ""; }; 9A57C22F2418B9A00029A39F /* cpp_tests UTF16 unsigned char */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cpp_tests UTF16 unsigned char"; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A77BA9C26333138000FFF8A /* guid.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = guid.cpp; sourceTree = ""; }; + 9A77BA9D26333138000FFF8A /* guid.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = guid.h; sourceTree = ""; }; 9A82EAC326184660006F973B /* PiPei.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiPei.h; sourceTree = ""; }; 9A82EAC426184660006F973B /* PiMm.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PiMm.h; sourceTree = ""; }; 9A82EAC526184660006F973B /* Uefi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Uefi.h; sourceTree = ""; }; @@ -4392,7 +4468,7 @@ 9A82FCC926184686006F973B /* strncmp_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strncmp_test.cpp; sourceTree = ""; }; 9A82FCCA26184686006F973B /* printf_lite-test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printf_lite-test.h"; sourceTree = ""; }; 9A82FCCB26184686006F973B /* config-test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = "config-test.cpp"; sourceTree = ""; }; - 9A82FCCC26184686006F973B /* XString_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XString_test.cpp; sourceTree = ""; }; + 9A82FCCC26184686006F973B /* XString_test.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp.preprocessed; fileEncoding = 4; path = XString_test.cpp; sourceTree = ""; }; 9A82FCCD26184686006F973B /* LoadOptions_test.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoadOptions_test.h; sourceTree = ""; }; 9A82FCCE26184686006F973B /* XToolsCommon_test.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XToolsCommon_test.cpp; sourceTree = ""; }; 9A82FCCF26184686006F973B /* all_tests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = all_tests.h; sourceTree = ""; }; @@ -4572,6 +4648,7 @@ 9A8791FC261878EA000B9362 /* BaseLib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = BaseLib.c; sourceTree = ""; }; 9A92232D2402FD1000483CBA /* cpp_tests UTF16 signed char */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = "cpp_tests UTF16 signed char"; sourceTree = BUILT_PRODUCTS_DIR; }; 9A9223302402FD1000483CBA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = clover_strlen.cpp; path = "../../../../Clover--CloverHackyColor--master.2/rEFIt_UEFI/PlatformPOSIX/posix/clover_strlen.cpp"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -4606,6 +4683,44 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 9A071C0F26196C4A0007CC44 /* cpp_lib */ = { + isa = PBXGroup; + children = ( + 9A071C3B2619FF840007CC44 /* XmlLiteArrayTypes.cpp */, + 9A071C3C2619FF840007CC44 /* XmlLiteArrayTypes.h */, + 9A071C1326196C4A0007CC44 /* undefinable.h */, + 9A071C1226196C4A0007CC44 /* XmlLiteCompositeTypes.cpp */, + 9A071C1626196C4A0007CC44 /* XmlLiteCompositeTypes.h */, + 9A071C362619FDA30007CC44 /* XmlLiteDictTypes.cpp */, + 9A071C352619FDA20007CC44 /* XmlLiteDictTypes.h */, + 9A071C1426196C4A0007CC44 /* XmlLiteParser.cpp */, + 9A071C1026196C4A0007CC44 /* XmlLiteParser.h */, + 9A071C1526196C4A0007CC44 /* XmlLiteSimpleTypes.cpp */, + 9A071C1126196C4A0007CC44 /* XmlLiteSimpleTypes.h */, + 9A071C302619FC960007CC44 /* XmlLiteUnionTypes.cpp */, + 9A071C2F2619FC940007CC44 /* XmlLiteUnionTypes.h */, + ); + path = cpp_lib; + sourceTree = ""; + }; + 9A2754EF2639A1FA0095D456 /* Settings */ = { + isa = PBXGroup; + children = ( + 9A2754F52639A1FA0095D456 /* ConfigPlist */, + 9A2754F22639A1FA0095D456 /* Readme.md */, + ); + path = Settings; + sourceTree = ""; + }; + 9A2754F52639A1FA0095D456 /* ConfigPlist */ = { + isa = PBXGroup; + children = ( + 9A27550B2639A1FA0095D456 /* ConfigPlistAbstract.cpp */, + 9A2755042639A1FA0095D456 /* ConfigPlistAbstract.h */, + ); + path = ConfigPlist; + sourceTree = ""; + }; 9A3D2C4926184AB900F0D7A1 /* PlatformPOSIX */ = { isa = PBXGroup; children = ( @@ -4621,11 +4736,12 @@ 9A3D2C4C261855D000F0D7A1 /* posix */ = { isa = PBXGroup; children = ( - 9A3D2C4D261855D000F0D7A1 /* posix_additions.cpp */, 9A3D2C4E261855D000F0D7A1 /* abort.cpp */, - 9A3D2C4F261855D000F0D7A1 /* posix.h */, - 9A3D2C50261855D000F0D7A1 /* posix_additions.h */, 9A3D2C51261855D000F0D7A1 /* abort.h */, + 9AB73A1C261DAD1D00EEBB9F /* clover_strlen.cpp */, + 9A3D2C4D261855D000F0D7A1 /* posix_additions.cpp */, + 9A3D2C50261855D000F0D7A1 /* posix_additions.h */, + 9A3D2C4F261855D000F0D7A1 /* posix.h */, ); path = posix; sourceTree = ""; @@ -10967,69 +11083,69 @@ 9A82F9CF26184672006F973B /* Library */ = { isa = PBXGroup; children = ( + 9A82F9EE26184672006F973B /* DuetBdsLib */, + 9A82FAFF26184673006F973B /* DuetTimerLib */, + 9A82FACA26184673006F973B /* OcAcpiLib */, + 9A82FB0226184673006F973B /* OcAfterBootCompatLib */, + 9A82FA0F26184672006F973B /* OcApfsLib */, + 9A82FAC426184673006F973B /* OcAppleBootPolicyLib */, + 9A82FA2426184672006F973B /* OcAppleChunklistLib */, + 9A82FAE826184673006F973B /* OcAppleDiskImageLib */, + 9A82FA0726184672006F973B /* OcAppleEventLib */, + 9A82FA3126184672006F973B /* OcAppleImageConversionLib */, + 9A82FA2E26184672006F973B /* OcAppleImageVerificationLib */, + 9A82FA5026184672006F973B /* OcAppleImg4Lib */, + 9A82FB3026184673006F973B /* OcAppleKernelLib */, + 9A82FA9B26184673006F973B /* OcAppleKeyMapLib */, + 9A82FAC126184673006F973B /* OcAppleKeysLib */, + 9A82FB8226184674006F973B /* OcAppleRamDiskLib */, + 9A82FAB426184673006F973B /* OcAppleSecureBootLib */, + 9A82FAC726184673006F973B /* OcAppleUserInterfaceThemeLib */, + 9A82FB2126184673006F973B /* OcAudioLib */, + 9A82FA6A26184673006F973B /* OcBootManagementLib */, + 9A82FAFA26184673006F973B /* OcBootServicesTableLib */, + 9A82FB7426184674006F973B /* OcCompilerIntrinsicsLib */, + 9A82FA7C26184673006F973B /* OcCompressionLib */, + 9A82FB5B26184674006F973B /* OcConfigurationLib */, + 9A82FA2A26184672006F973B /* OcConsoleControlEntryModeLib */, + 9A82F9F626184672006F973B /* OcConsoleLib */, + 9A82FB4F26184673006F973B /* OcCpuLib */, + 9A82FA3426184672006F973B /* OcCryptoLib */, + 9A82F9E926184672006F973B /* OcDataHubLib */, + 9A82FB1926184673006F973B /* OcDebugLogLib */, + 9A82FB6226184674006F973B /* OcDebugLogLibOc2Clover */, + 9A82FB1526184673006F973B /* OcDevicePathLib */, + 9A82FB6B26184674006F973B /* OcDevicePropertyLib */, + 9A82FA1626184672006F973B /* OcDeviceTreeLib */, + 9A82FB5F26184674006F973B /* OcDriverConnectionLib */, + 9A82FB4426184673006F973B /* OcFileLib */, + 9A82FAE426184673006F973B /* OcFirmwarePasswordLib */, + 9A82FB1026184673006F973B /* OcFirmwareVolumeLib */, + 9A82FAB726184673006F973B /* OcGuardLib */, + 9A82FA2026184672006F973B /* OcHashServicesLib */, + 9A82FAF626184673006F973B /* OcHdaDevicesLib */, + 9A82FA2726184672006F973B /* OcHeciLib */, + 9A82FAA926184673006F973B /* OcHiiDatabaseLib */, + 9A82FACE26184673006F973B /* OcInputLib */, 9A82F9D026184672006F973B /* OcMachoLib */, 9A82F9D826184672006F973B /* OcMacInfoLib */, - 9A82F9DD26184672006F973B /* OcStringLib */, - 9A82F9E126184672006F973B /* OcPngLib */, - 9A82F9E626184672006F973B /* OcSerializeLib */, - 9A82F9E926184672006F973B /* OcDataHubLib */, - 9A82F9EE26184672006F973B /* DuetBdsLib */, - 9A82F9F626184672006F973B /* OcConsoleLib */, - 9A82FA0226184672006F973B /* OcRtcLib */, - 9A82FA0726184672006F973B /* OcAppleEventLib */, - 9A82FA0F26184672006F973B /* OcApfsLib */, - 9A82FA1626184672006F973B /* OcDeviceTreeLib */, - 9A82FA1926184672006F973B /* OcUnicodeCollationEngLib */, - 9A82FA2026184672006F973B /* OcHashServicesLib */, - 9A82FA2426184672006F973B /* OcAppleChunklistLib */, - 9A82FA2726184672006F973B /* OcHeciLib */, - 9A82FA2A26184672006F973B /* OcConsoleControlEntryModeLib */, - 9A82FA2E26184672006F973B /* OcAppleImageVerificationLib */, - 9A82FA3126184672006F973B /* OcAppleImageConversionLib */, - 9A82FA3426184672006F973B /* OcCryptoLib */, - 9A82FA4626184672006F973B /* OcMiscLib */, - 9A82FA4D26184672006F973B /* OcTimerLib */, - 9A82FA5026184672006F973B /* OcAppleImg4Lib */, - 9A82FA6A26184673006F973B /* OcBootManagementLib */, - 9A82FA7C26184673006F973B /* OcCompressionLib */, - 9A82FA9B26184673006F973B /* OcAppleKeyMapLib */, - 9A82FA9E26184673006F973B /* OcSmbiosLib */, - 9A82FAA626184673006F973B /* OcStorageLib */, - 9A82FAA926184673006F973B /* OcHiiDatabaseLib */, - 9A82FAB426184673006F973B /* OcAppleSecureBootLib */, - 9A82FAB726184673006F973B /* OcGuardLib */, - 9A82FAC126184673006F973B /* OcAppleKeysLib */, - 9A82FAC426184673006F973B /* OcAppleBootPolicyLib */, - 9A82FAC726184673006F973B /* OcAppleUserInterfaceThemeLib */, - 9A82FACA26184673006F973B /* OcAcpiLib */, - 9A82FACE26184673006F973B /* OcInputLib */, - 9A82FAE426184673006F973B /* OcFirmwarePasswordLib */, - 9A82FAE826184673006F973B /* OcAppleDiskImageLib */, - 9A82FAEE26184673006F973B /* OcRngLib */, - 9A82FAF626184673006F973B /* OcHdaDevicesLib */, - 9A82FAFA26184673006F973B /* OcBootServicesTableLib */, - 9A82FAFF26184673006F973B /* DuetTimerLib */, - 9A82FB0226184673006F973B /* OcAfterBootCompatLib */, - 9A82FB1026184673006F973B /* OcFirmwareVolumeLib */, - 9A82FB1526184673006F973B /* OcDevicePathLib */, - 9A82FB1926184673006F973B /* OcDebugLogLib */, - 9A82FB2126184673006F973B /* OcAudioLib */, - 9A82FB2926184673006F973B /* OcVirtualFsLib */, - 9A82FB3026184673006F973B /* OcAppleKernelLib */, - 9A82FB4126184673006F973B /* OcPeCoffLib */, - 9A82FB4426184673006F973B /* OcFileLib */, - 9A82FB4F26184673006F973B /* OcCpuLib */, - 9A82FB5B26184674006F973B /* OcConfigurationLib */, - 9A82FB5F26184674006F973B /* OcDriverConnectionLib */, - 9A82FB6226184674006F973B /* OcDebugLogLibOc2Clover */, - 9A82FB6826184674006F973B /* OcXmlLib */, - 9A82FB6B26184674006F973B /* OcDevicePropertyLib */, - 9A82FB6E26184674006F973B /* OcOSInfoLib */, - 9A82FB7126184674006F973B /* OcTemplateLib */, - 9A82FB7426184674006F973B /* OcCompilerIntrinsicsLib */, 9A82FB7826184674006F973B /* OcMemoryLib */, - 9A82FB8226184674006F973B /* OcAppleRamDiskLib */, + 9A82FA4626184672006F973B /* OcMiscLib */, + 9A82FB6E26184674006F973B /* OcOSInfoLib */, + 9A82FB4126184673006F973B /* OcPeCoffLib */, + 9A82F9E126184672006F973B /* OcPngLib */, + 9A82FAEE26184673006F973B /* OcRngLib */, + 9A82FA0226184672006F973B /* OcRtcLib */, + 9A82F9E626184672006F973B /* OcSerializeLib */, + 9A82FA9E26184673006F973B /* OcSmbiosLib */, 9A82FB8526184674006F973B /* OcSmcLib */, + 9A82FAA626184673006F973B /* OcStorageLib */, + 9A82F9DD26184672006F973B /* OcStringLib */, + 9A82FB7126184674006F973B /* OcTemplateLib */, + 9A82FA4D26184672006F973B /* OcTimerLib */, + 9A82FA1926184672006F973B /* OcUnicodeCollationEngLib */, + 9A82FB2926184673006F973B /* OcVirtualFsLib */, + 9A82FB6826184674006F973B /* OcXmlLib */, ); path = Library; sourceTree = ""; @@ -12672,6 +12788,7 @@ isa = PBXGroup; children = ( 9A82FE1826184687006F973B /* cpp_foundation */, + 9A071C0F26196C4A0007CC44 /* cpp_lib */, 9A82FCA726184686006F973B /* cpp_unit_test */, 9A82FDFA26184687006F973B /* gui */, 9A82FCDC26184686006F973B /* include */, @@ -12679,6 +12796,7 @@ 9A82FCF026184686006F973B /* Platform */, 9A3D2C4926184AB900F0D7A1 /* PlatformPOSIX */, 9A82FDBE26184687006F973B /* refit.inf */, + 9A2754EF2639A1FA0095D456 /* Settings */, ); path = rEFIt_UEFI; sourceTree = ""; @@ -12686,6 +12804,8 @@ 9A82FCA726184686006F973B /* cpp_unit_test */ = { isa = PBXGroup; children = ( + 9A071C2A26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp */, + 9A071C2926196CA40007CC44 /* xml_lite-reapeatingdict-test.h */, 9A82FCC526184686006F973B /* all_tests.cpp */, 9A82FCCF26184686006F973B /* all_tests.h */, 9A82FCCB26184686006F973B /* config-test.cpp */, @@ -12759,6 +12879,12 @@ 9A82FCF026184686006F973B /* Platform */ = { isa = PBXGroup; children = ( + 9A2755422639CE530095D456 /* platformdata.cpp */, + 9A2755432639CE540095D456 /* platformdata.h */, + 9A77BA9C26333138000FFF8A /* guid.cpp */, + 9A77BA9D26333138000FFF8A /* guid.h */, + 9A071C2326196C7C0007CC44 /* Utils.cpp */, + 9A071C2426196C7C0007CC44 /* Utils.h */, 9A878CAF26187477000B9362 /* b64cdecode.cpp */, 9A878CB026187478000B9362 /* b64cdecode.h */, 9A82FD5726184686006F973B /* MacOsVersion.cpp */, @@ -12822,22 +12948,22 @@ 9A82FE1826184687006F973B /* cpp_foundation */ = { isa = PBXGroup; children = ( + 9A82FE1E26184687006F973B /* shared_ptr.cpp */, + 9A82FE2026184687006F973B /* shared_ptr.h */, + 9A82FE2226184687006F973B /* unicode_conversions.cpp */, 9A82FE1926184687006F973B /* unicode_conversions.h */, - 9A82FE1A26184687006F973B /* XStringArray.cpp */, + 9A82FE2726184687006F973B /* XArray.h */, + 9A82FE2526184687006F973B /* XBuffer.cpp */, + 9A82FE1F26184687006F973B /* XBuffer.h */, + 9A82FE2826184687006F973B /* XObjArray.h */, + 9A82FE2326184687006F973B /* XRBuffer.cpp */, 9A82FE1B26184687006F973B /* XRBuffer.h */, + 9A82FE2426184687006F973B /* XString.cpp */, + 9A82FE2626184687006F973B /* XString.h */, + 9A82FE2126184687006F973B /* XStringAbstract.h */, + 9A82FE1A26184687006F973B /* XStringArray.cpp */, 9A82FE1C26184687006F973B /* XStringArray.h */, 9A82FE1D26184687006F973B /* XToolsCommon.h */, - 9A82FE1E26184687006F973B /* shared_ptr.cpp */, - 9A82FE1F26184687006F973B /* XBuffer.h */, - 9A82FE2026184687006F973B /* shared_ptr.h */, - 9A82FE2126184687006F973B /* XStringAbstract.h */, - 9A82FE2226184687006F973B /* unicode_conversions.cpp */, - 9A82FE2326184687006F973B /* XRBuffer.cpp */, - 9A82FE2426184687006F973B /* XString.cpp */, - 9A82FE2526184687006F973B /* XBuffer.cpp */, - 9A82FE2626184687006F973B /* XString.h */, - 9A82FE2726184687006F973B /* XArray.h */, - 9A82FE2826184687006F973B /* XObjArray.h */, ); path = cpp_foundation; sourceTree = ""; @@ -13236,12 +13362,15 @@ 9A82FE6226184688006F973B /* XObjArray_tests.cpp in Sources */, 9A82FE8E26184688006F973B /* TagFloat.cpp in Sources */, 9A878CB326187478000B9362 /* b64cdecode.cpp in Sources */, + 9A071C1D26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */, 9A82FE6A26184688006F973B /* strncmp_test.cpp in Sources */, 9A82FE5626184688006F973B /* XStringArray_test.cpp in Sources */, 9A82FEA626184688006F973B /* TagDate.cpp in Sources */, 9A82FEB226184688006F973B /* xml.cpp in Sources */, + 9A071C2126196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878F7626187672000B9362 /* DataPatcher.c in Sources */, 9A82FE3E26184688006F973B /* strcasecmp_test.cpp in Sources */, + 9A77BAA02633313B000FFF8A /* guid.cpp in Sources */, 9A8200AA26184688006F973B /* XRBuffer.cpp in Sources */, 9A8200A626184688006F973B /* unicode_conversions.cpp in Sources */, 9A82FE7626184688006F973B /* XToolsCommon_test.cpp in Sources */, @@ -13253,8 +13382,10 @@ 9A82FE5E26184688006F973B /* all_tests.cpp in Sources */, 9A82009E26184688006F973B /* XStringArray.cpp in Sources */, 9A3D2C682618594400F0D7A1 /* printf_lite.c in Sources */, + 9A071C3F2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */, 9A82FE5226184688006F973B /* printlib-test.cpp in Sources */, 9A82FE4626184688006F973B /* plist_tests.cpp in Sources */, + 9AB73A1F261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */, 9A82FE7A26184688006F973B /* strlen_test.cpp in Sources */, 9A82FE9E26184688006F973B /* TagData.cpp in Sources */, 9A82FE2A26184688006F973B /* global_test.cpp in Sources */, @@ -13268,21 +13399,29 @@ 9A3D2C5C261855D000F0D7A1 /* posix_additions.cpp in Sources */, 9A3D2C60261855D000F0D7A1 /* abort.cpp in Sources */, 9A0B08742403B08400E2B470 /* main.cpp in Sources */, + 9A071C2D26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */, 9A82FE7226184688006F973B /* XString_test.cpp in Sources */, 9A82FE3226184688006F973B /* LoadOptions_test.cpp in Sources */, 9A87876F26186302000B9362 /* MemoryAllocationLib.c in Sources */, + 9A071C2726196C7D0007CC44 /* Utils.cpp in Sources */, 9A8791FF261878EA000B9362 /* BaseLib.c in Sources */, 9A8200A226184688006F973B /* shared_ptr.cpp in Sources */, 9A82FE5A26184688006F973B /* find_replace_mask_Clover_tests.cpp in Sources */, 9A82FEAE26184688006F973B /* TagInt64.cpp in Sources */, + 9A2755302639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A82FF3626184688006F973B /* MacOsVersion.cpp in Sources */, 9A82FE9226184688006F973B /* TagArray.cpp in Sources */, + 9A071C392619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */, 9A87877326186302000B9362 /* PrintLib.c in Sources */, 9A82FEAA26184688006F973B /* plist.cpp in Sources */, + 9A2755462639CE540095D456 /* platformdata.cpp in Sources */, + 9A071C1926196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */, 9A82FE3626184688006F973B /* printf_lite-test.cpp in Sources */, 9A82FE7E26184688006F973B /* find_replace_mask_OC_tests.cpp in Sources */, 9A87876726186302000B9362 /* xcode_utf_fixed.cpp in Sources */, + 9A071C332619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */, 9A82FEB626184688006F973B /* TagBool.cpp in Sources */, + 9A071C0D26196C200007CC44 /* xml_lite-test.cpp in Sources */, 9A82FE6626184688006F973B /* XArray_tests.cpp in Sources */, 9A3D2C58261855D000F0D7A1 /* BootLog.cpp in Sources */, ); @@ -13298,12 +13437,15 @@ 9A82FE6426184688006F973B /* XObjArray_tests.cpp in Sources */, 9A82FE9026184688006F973B /* TagFloat.cpp in Sources */, 9A878CB426187478000B9362 /* b64cdecode.cpp in Sources */, + 9A071C1E26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */, 9A82FE6C26184688006F973B /* strncmp_test.cpp in Sources */, 9A82FE5826184688006F973B /* XStringArray_test.cpp in Sources */, 9A82FEA826184688006F973B /* TagDate.cpp in Sources */, 9A82FEB426184688006F973B /* xml.cpp in Sources */, + 9A071C2226196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878F7726187672000B9362 /* DataPatcher.c in Sources */, 9A82FE4026184688006F973B /* strcasecmp_test.cpp in Sources */, + 9A77BA9F2633313B000FFF8A /* guid.cpp in Sources */, 9A8200AC26184688006F973B /* XRBuffer.cpp in Sources */, 9A8200A826184688006F973B /* unicode_conversions.cpp in Sources */, 9A82FE7826184688006F973B /* XToolsCommon_test.cpp in Sources */, @@ -13315,8 +13457,10 @@ 9A82FE6026184688006F973B /* all_tests.cpp in Sources */, 9A8200A026184688006F973B /* XStringArray.cpp in Sources */, 9A3D2C692618594400F0D7A1 /* printf_lite.c in Sources */, + 9A071C402619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */, 9A82FE5426184688006F973B /* printlib-test.cpp in Sources */, 9A82FE4826184688006F973B /* plist_tests.cpp in Sources */, + 9AB73A20261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */, 9A82FE7C26184688006F973B /* strlen_test.cpp in Sources */, 9A82FEA026184688006F973B /* TagData.cpp in Sources */, 9A82FE2C26184688006F973B /* global_test.cpp in Sources */, @@ -13330,21 +13474,29 @@ 9A3D2C5E261855D000F0D7A1 /* posix_additions.cpp in Sources */, 9A3D2C62261855D000F0D7A1 /* abort.cpp in Sources */, 9A2A7C7324576CCE00422263 /* main.cpp in Sources */, + 9A071C2E26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */, 9A82FE7426184688006F973B /* XString_test.cpp in Sources */, 9A82FE3426184688006F973B /* LoadOptions_test.cpp in Sources */, 9A87877126186302000B9362 /* MemoryAllocationLib.c in Sources */, + 9A071C2826196C7D0007CC44 /* Utils.cpp in Sources */, 9A879200261878EA000B9362 /* BaseLib.c in Sources */, 9A8200A426184688006F973B /* shared_ptr.cpp in Sources */, 9A82FE5C26184688006F973B /* find_replace_mask_Clover_tests.cpp in Sources */, 9A82FEB026184688006F973B /* TagInt64.cpp in Sources */, + 9A2755312639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A82FF3826184688006F973B /* MacOsVersion.cpp in Sources */, 9A82FE9426184688006F973B /* TagArray.cpp in Sources */, + 9A071C3A2619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */, 9A87877526186302000B9362 /* PrintLib.c in Sources */, 9A82FEAC26184688006F973B /* plist.cpp in Sources */, + 9A2755472639CE540095D456 /* platformdata.cpp in Sources */, + 9A071C1A26196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */, 9A82FE3826184688006F973B /* printf_lite-test.cpp in Sources */, 9A82FE8026184688006F973B /* find_replace_mask_OC_tests.cpp in Sources */, 9A87876926186302000B9362 /* xcode_utf_fixed.cpp in Sources */, + 9A071C342619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */, 9A82FEB826184688006F973B /* TagBool.cpp in Sources */, + 9A071C0E26196C210007CC44 /* xml_lite-test.cpp in Sources */, 9A82FE6826184688006F973B /* XArray_tests.cpp in Sources */, 9A3D2C5A261855D000F0D7A1 /* BootLog.cpp in Sources */, ); @@ -13360,12 +13512,15 @@ 9A82FE6326184688006F973B /* XObjArray_tests.cpp in Sources */, 9A82FE8F26184688006F973B /* TagFloat.cpp in Sources */, 9A878CB226187478000B9362 /* b64cdecode.cpp in Sources */, + 9A071C1C26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */, 9A82FE6B26184688006F973B /* strncmp_test.cpp in Sources */, 9A82FE5726184688006F973B /* XStringArray_test.cpp in Sources */, 9A82FEA726184688006F973B /* TagDate.cpp in Sources */, 9A82FEB326184688006F973B /* xml.cpp in Sources */, + 9A071C2026196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878F7526187672000B9362 /* DataPatcher.c in Sources */, 9A82FE3F26184688006F973B /* strcasecmp_test.cpp in Sources */, + 9A77BAA12633313C000FFF8A /* guid.cpp in Sources */, 9A8200AB26184688006F973B /* XRBuffer.cpp in Sources */, 9A8200A726184688006F973B /* unicode_conversions.cpp in Sources */, 9A82FE7726184688006F973B /* XToolsCommon_test.cpp in Sources */, @@ -13377,8 +13532,10 @@ 9A82FE5F26184688006F973B /* all_tests.cpp in Sources */, 9A82009F26184688006F973B /* XStringArray.cpp in Sources */, 9A3D2C6A2618594500F0D7A1 /* printf_lite.c in Sources */, + 9A071C3E2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */, 9A82FE5326184688006F973B /* printlib-test.cpp in Sources */, 9A82FE4726184688006F973B /* plist_tests.cpp in Sources */, + 9AB73A1E261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */, 9A82FE7B26184688006F973B /* strlen_test.cpp in Sources */, 9A82FE9F26184688006F973B /* TagData.cpp in Sources */, 9A82FE2B26184688006F973B /* global_test.cpp in Sources */, @@ -13392,21 +13549,29 @@ 9A3D2C5D261855D000F0D7A1 /* posix_additions.cpp in Sources */, 9A3D2C61261855D000F0D7A1 /* abort.cpp in Sources */, 9A57C21B2418B9A00029A39F /* main.cpp in Sources */, + 9A071C2C26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */, 9A82FE7326184688006F973B /* XString_test.cpp in Sources */, 9A82FE3326184688006F973B /* LoadOptions_test.cpp in Sources */, 9A87877026186302000B9362 /* MemoryAllocationLib.c in Sources */, + 9A071C2626196C7D0007CC44 /* Utils.cpp in Sources */, 9A8791FE261878EA000B9362 /* BaseLib.c in Sources */, 9A8200A326184688006F973B /* shared_ptr.cpp in Sources */, 9A82FE5B26184688006F973B /* find_replace_mask_Clover_tests.cpp in Sources */, 9A82FEAF26184688006F973B /* TagInt64.cpp in Sources */, + 9A27552F2639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A82FF3726184688006F973B /* MacOsVersion.cpp in Sources */, 9A82FE9326184688006F973B /* TagArray.cpp in Sources */, + 9A071C382619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */, 9A87877426186302000B9362 /* PrintLib.c in Sources */, 9A82FEAB26184688006F973B /* plist.cpp in Sources */, + 9A2755452639CE540095D456 /* platformdata.cpp in Sources */, + 9A071C1826196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */, 9A82FE3726184688006F973B /* printf_lite-test.cpp in Sources */, 9A82FE7F26184688006F973B /* find_replace_mask_OC_tests.cpp in Sources */, 9A87876826186302000B9362 /* xcode_utf_fixed.cpp in Sources */, + 9A071C322619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */, 9A82FEB726184688006F973B /* TagBool.cpp in Sources */, + 9A071C0C26196C200007CC44 /* xml_lite-test.cpp in Sources */, 9A82FE6726184688006F973B /* XArray_tests.cpp in Sources */, 9A3D2C59261855D000F0D7A1 /* BootLog.cpp in Sources */, ); @@ -13422,12 +13587,15 @@ 9A82FE6526184688006F973B /* XArray_tests.cpp in Sources */, 9A82009D26184688006F973B /* XStringArray.cpp in Sources */, 9A82FEA126184688006F973B /* TagDict.cpp in Sources */, + 9A071C1B26196C4B0007CC44 /* XmlLiteParser.cpp in Sources */, 9A82FE3526184688006F973B /* printf_lite-test.cpp in Sources */, 9A878CB126187478000B9362 /* b64cdecode.cpp in Sources */, 9A82FF3526184688006F973B /* MacOsVersion.cpp in Sources */, 9A82FE9D26184688006F973B /* TagData.cpp in Sources */, + 9A071C1F26196C4B0007CC44 /* XmlLiteSimpleTypes.cpp in Sources */, 9A878F7426187672000B9362 /* DataPatcher.c in Sources */, 9A82FEB526184688006F973B /* TagBool.cpp in Sources */, + 9A77BA9E26333138000FFF8A /* guid.cpp in Sources */, 9A82FEAD26184688006F973B /* TagInt64.cpp in Sources */, 9A8200A926184688006F973B /* XRBuffer.cpp in Sources */, 9A87877626186302000B9362 /* DebugLib.c in Sources */, @@ -13439,8 +13607,10 @@ 9A82FEA526184688006F973B /* TagDate.cpp in Sources */, 9A82FE9526184688006F973B /* base64.cpp in Sources */, 9A82FE5926184688006F973B /* find_replace_mask_Clover_tests.cpp in Sources */, + 9A071C3D2619FF850007CC44 /* XmlLiteArrayTypes.cpp in Sources */, 9A82FE4926184688006F973B /* MacOsVersion_test.cpp in Sources */, 9A82FE5D26184688006F973B /* all_tests.cpp in Sources */, + 9AB73A1D261DAD1D00EEBB9F /* clover_strlen.cpp in Sources */, 9A9223312402FD1000483CBA /* main.cpp in Sources */, 9A87860A26186301000B9362 /* MemLogLib.c in Sources */, 9A82FE6926184688006F973B /* strncmp_test.cpp in Sources */, @@ -13454,21 +13624,29 @@ 9A82FE4D26184688006F973B /* strcmp_test.cpp in Sources */, 9A3D2C5B261855D000F0D7A1 /* posix_additions.cpp in Sources */, 9A82FE5126184688006F973B /* printlib-test.cpp in Sources */, + 9A071C2B26196CA40007CC44 /* xml_lite-reapeatingdict-test.cpp in Sources */, 9A87876E26186302000B9362 /* MemoryAllocationLib.c in Sources */, 9A82FE7526184688006F973B /* XToolsCommon_test.cpp in Sources */, 9A82FEB926184688006F973B /* TagString8.cpp in Sources */, + 9A071C2526196C7D0007CC44 /* Utils.cpp in Sources */, 9A8791FD261878EA000B9362 /* BaseLib.c in Sources */, 9A82FE3D26184688006F973B /* strcasecmp_test.cpp in Sources */, 9A82FE5526184688006F973B /* XStringArray_test.cpp in Sources */, 9A87877226186302000B9362 /* PrintLib.c in Sources */, + 9A27552E2639A1FA0095D456 /* ConfigPlistAbstract.cpp in Sources */, 9A82FE2926184688006F973B /* global_test.cpp in Sources */, 9A82FE3126184688006F973B /* LoadOptions_test.cpp in Sources */, + 9A071C372619FDA70007CC44 /* XmlLiteDictTypes.cpp in Sources */, 9A82FE7D26184688006F973B /* find_replace_mask_OC_tests.cpp in Sources */, 9A8200A126184688006F973B /* shared_ptr.cpp in Sources */, + 9A2755442639CE540095D456 /* platformdata.cpp in Sources */, + 9A071C1726196C4B0007CC44 /* XmlLiteCompositeTypes.cpp in Sources */, 9A87876626186302000B9362 /* xcode_utf_fixed.cpp in Sources */, 9A82FE7926184688006F973B /* strlen_test.cpp in Sources */, 9A87858F26185FE3000B9362 /* printf_lite.c in Sources */, + 9A071C312619FC970007CC44 /* XmlLiteUnionTypes.cpp in Sources */, 9A82FE9126184688006F973B /* TagArray.cpp in Sources */, + 9A071C0B26196C200007CC44 /* xml_lite-test.cpp in Sources */, 9A8200AD26184688006F973B /* XString.cpp in Sources */, 9A3D2C63261855D000F0D7A1 /* BasicIO.cpp in Sources */, ); diff --git a/Xcode/cpp_tests/cpp_tests.xcodeproj/xcshareddata/xcschemes/cpp_tests UTF16 signed char.xcscheme b/Xcode/cpp_tests/cpp_tests.xcodeproj/xcshareddata/xcschemes/cpp_tests UTF16 signed char.xcscheme index ddb446c51..f3c129417 100644 --- a/Xcode/cpp_tests/cpp_tests.xcodeproj/xcshareddata/xcschemes/cpp_tests UTF16 signed char.xcscheme +++ b/Xcode/cpp_tests/cpp_tests.xcodeproj/xcshareddata/xcschemes/cpp_tests UTF16 signed char.xcscheme @@ -63,7 +63,7 @@ +#include #include #include "../../../rEFIt_UEFI/PlatformPOSIX/posix/abort.h" diff --git a/Xcode/cpp_tests/src/main.cpp b/Xcode/cpp_tests/src/main.cpp index 51f5a6309..7b41be38a 100755 --- a/Xcode/cpp_tests/src/main.cpp +++ b/Xcode/cpp_tests/src/main.cpp @@ -20,8 +20,10 @@ extern "C" int main(int argc, const char * argv[]) (void)argv; setlocale(LC_ALL, "en_US"); // to allow printf unicode char - xcode_utf_fixed_tests(); - +// xcode_utf_fixed_tests(); + int i = 2; + bool b; + b = i; return all_tests() ? 0 : -1 ; } diff --git a/rEFIt_UEFI/Platform/AcpiPatcher.cpp b/rEFIt_UEFI/Platform/AcpiPatcher.cpp index d84d388dc..5d83c91c1 100644 --- a/rEFIt_UEFI/Platform/AcpiPatcher.cpp +++ b/rEFIt_UEFI/Platform/AcpiPatcher.cpp @@ -28,8 +28,9 @@ #include "platformdata.h" #include "smbios.h" #include "cpu.h" -#include "Self.h" -#include "SelfOem.h" +#include "../Settings/Self.h" +#include "../Settings/SelfOem.h" +#include "Settings.h" #define EBDA_BASE_ADDRESS 0x40E diff --git a/rEFIt_UEFI/Platform/AcpiPatcher.h b/rEFIt_UEFI/Platform/AcpiPatcher.h index 80ad45076..57b7214b0 100644 --- a/rEFIt_UEFI/Platform/AcpiPatcher.h +++ b/rEFIt_UEFI/Platform/AcpiPatcher.h @@ -8,7 +8,8 @@ #ifndef PLATFORM_ACPIPATCHER_H_ #define PLATFORM_ACPIPATCHER_H_ -#include "../Platform/Settings.h" +#include "../Platform/Volume.h" +#include "../Platform/MacOsVersion.h" #pragma pack(push) #pragma pack(1) diff --git a/rEFIt_UEFI/Platform/CloverVersion.cpp b/rEFIt_UEFI/Platform/CloverVersion.cpp new file mode 100644 index 000000000..475c59d8e --- /dev/null +++ b/rEFIt_UEFI/Platform/CloverVersion.cpp @@ -0,0 +1,33 @@ +/* + * CloverVersion.cpp + * + * Created on: Apr 26, 2021 + * Author: jief + */ + +#include "CloverVersion.h" +#include "../../Version.h" + + +#ifdef FIRMWARE_REVISION +CONST CHAR16 *gFirmwareRevision = FIRMWARE_REVISION; +CONST CHAR8* gRevisionStr = REVISION_STR; +CONST CHAR8* gFirmwareBuildDate = FIRMWARE_BUILDDATE; +CONST CHAR8* gBuildInfo = BUILDINFOS_STR; +#else +CONST CHAR16 *gFirmwareRevision = L"unknown"; +CONST CHAR8* gRevisionStr = "unknown"; +CONST CHAR8* gFirmwareBuildDate = "unknown"; +CONST CHAR8* gBuildInfo = NULL; +#endif +#ifdef BUILD_ID +const LString8 gBuildId __attribute__((used)) = LString8(BUILD_ID); +const LString8 gBuildIdGrepTag __attribute__((used)) = "CloverBuildIdGrepTag: " BUILD_ID; +#else +const LString8 gBuildId __attribute__((used)) = "unknown"; +const LString8 gBuildIdGrepTag __attribute__((used)) = "CloverBuildIdGrepTag: " "unknown"; +#endif + +// __attribute__((used)) seems to not always work. So, in AboutRefit(), there is a trick to let the compiler thinks it's used. +const LString8 path_independant __attribute__((used)) = "path_independant"; + diff --git a/rEFIt_UEFI/Platform/CloverVersion.h b/rEFIt_UEFI/Platform/CloverVersion.h new file mode 100644 index 000000000..40cb2c63a --- /dev/null +++ b/rEFIt_UEFI/Platform/CloverVersion.h @@ -0,0 +1,26 @@ +/* + * CloverVersion.h + * + * Created on: Apr 26, 2021 + * Author: jief + */ + +#ifndef PLATFORM_CLOVERVERSION_H_ +#define PLATFORM_CLOVERVERSION_H_ + +#include "../cpp_foundation/XString.h" + +extern CONST CHAR16 *gFirmwareRevision; +extern CONST CHAR8* gRevisionStr; +extern CONST CHAR8* gFirmwareBuildDate; +extern CONST CHAR8* gBuildInfo; +extern const LString8 gBuildId; +extern const LString8 path_independant; +extern const LString8 gBuildIdGrepTag; + + +class CloverVersion +{ +}; + +#endif /* PLATFORM_CLOVERVERSION_H_ */ diff --git a/rEFIt_UEFI/Platform/DataHubCpu.cpp b/rEFIt_UEFI/Platform/DataHubCpu.cpp index d3e87c207..dcbd9fb60 100644 --- a/rEFIt_UEFI/Platform/DataHubCpu.cpp +++ b/rEFIt_UEFI/Platform/DataHubCpu.cpp @@ -44,6 +44,7 @@ #include "smbios.h" #include "cpu.h" #include "DataHubCpu.h" +#include "../Platform/CloverVersion.h" #include @@ -215,7 +216,6 @@ EFI_STATUS EFIAPI SetVariablesForOSX(LOADER_ENTRY *Entry) { // The variable names used should be made global constants to prevent them being allocated multiple times - UINT32 Attributes; UINT32 Color; CONST CHAR8 *None; @@ -227,7 +227,7 @@ SetVariablesForOSX(LOADER_ENTRY *Entry) // UINT64 os_version = AsciiOSVersionToUint64(Entry->OSVersion); CHAR8 *PlatformLang; - EFI_GUID uuid; + EFI_GUIDClass uuid; gSettings.getUUID(&uuid); // @@ -268,15 +268,15 @@ SetVariablesForOSX(LOADER_ENTRY *Entry) SetNvramVariable(L"FirmwareFeatures", &gEfiAppleNvramGuid, Attributes, - sizeof(gSettings.Smbios.gFwFeatures), - &gSettings.Smbios.gFwFeatures); + sizeof(gSettings.Smbios.FirmwareFeatures), + &gSettings.Smbios.FirmwareFeatures); // Download-Fritz: Should be added to SMBIOS or at least to some other config section AddNvramVariable(L"FirmwareFeaturesMask", &gEfiAppleNvramGuid, Attributes, - sizeof(gSettings.Smbios.gFwFeaturesMask), - &gSettings.Smbios.gFwFeaturesMask); + sizeof(gSettings.Smbios.FirmwareFeaturesMask), + &gSettings.Smbios.FirmwareFeaturesMask); // HW_MLB and HW_ROM are also around on some Macs with the same values as MLB and ROM AddNvramXString8(L"HW_BID", &gEfiAppleNvramGuid, Attributes, gSettings.Smbios.BoardNumber); @@ -529,7 +529,7 @@ SetupDataForOSX(BOOLEAN Hibernate) LogDataHubXStringW(&gEfiMiscSubClassGuid, L"SystemSerialNumber", SerialNumber); if (gSettings.ShouldInjectSystemID()) { - EFI_GUID uuid; + EFI_GUIDClass uuid; gSettings.getUUID(&uuid); LogDataHub(&gEfiMiscSubClassGuid, L"system-id", &uuid, sizeof(uuid)); } diff --git a/rEFIt_UEFI/Platform/DevicePath.cpp b/rEFIt_UEFI/Platform/DevicePath.cpp deleted file mode 100644 index dd7c7ac85..000000000 --- a/rEFIt_UEFI/Platform/DevicePath.cpp +++ /dev/null @@ -1,1621 +0,0 @@ -///** @file DevicePath.c -// BDS internal function define the default device path string, it can be -// replaced by platform device path. -// -//Copyright (c) 2004 - 2009, Intel Corporation. All rights reserved.
-//This program and the accompanying materials -//are licensed and made available under the terms and conditions of the BSD License -//which accompanies this distribution. The full text of the license may be found at -//http://opensource.org/licenses/bsd-license.php -// -//THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -//WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -// -//**/ -// -//#include // Only use angled for Platform, else, xcode project won't compile -////#include -////#include "InternalBdsLib.h" -// -///** -// Concatenates a formatted unicode string to allocated pool. -// The caller must free the resulting buffer. -// -// @param Str Tracks the allocated pool, size in use, and amount of pool allocated. -// @param Fmt The format string -// @param ... The data will be printed. -// -// @return Allocated buffer with the formatted string printed in it. -// The caller must free the allocated buffer. -// The buffer allocation is not packed. -// -//**/ -//CHAR16 * -//EFIAPI -//CatPrint ( -// IN OUT POOL_PRINT *Str, -// IN CONST CHAR16 *Fmt, -// ... -// ) -//{ -// CHAR16 *AppendStr; -// VA_LIST Args; -// UINTN StringSize; -// -// AppendStr = (__typeof__(AppendStr))AllocateZeroPool(0x1000); -// if (AppendStr == NULL) { -// return Str->Str; -// } -// -// VA_START (Args, Fmt); -// UnicodeVSPrint (AppendStr, 0x1000, Fmt, Args); -// VA_END (Args); -// if (NULL == Str->Str) { -// StringSize = StrSize (AppendStr); -// Str->Str = (__typeof__(Str->Str))AllocateZeroPool(StringSize); -//// ASSERT (Str->Str != NULL); -// } else { -// StringSize = StrSize (AppendStr); -// StringSize += (StrSize (Str->Str) - sizeof (UINT16)); -// -// Str->Str = (__typeof__(Str->Str))ReallocatePool ( -// StrSize (Str->Str), -// StringSize, -// Str->Str -// ); -//// ASSERT (Str->Str != NULL); -// } -// -// Str->Maxlen = MAX_CHAR * sizeof (UINT16); -// if (StringSize < Str->Maxlen) { -// StrCatS (Str->Str, StringSize, AppendStr); -// Str->Len = StringSize - sizeof (UINT16); -// } -// -// FreePool(AppendStr); -// return Str->Str; -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathPci ( -// IN OUT POOL_PRINT *Str, -// IN PCI_DEVICE_PATH *DevPath -// ) -//{ -// PCI_DEVICE_PATH *Pci; -// -// Pci = DevPath; -// CatPrint (Str, L"Pci(%x|%x)", (UINTN) Pci->Device, (UINTN) Pci->Function); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathPccard ( -// IN OUT POOL_PRINT *Str, -// IN PCCARD_DEVICE_PATH *DevPath -// ) -//{ -// PCCARD_DEVICE_PATH *Pccard; -// -// Pccard = DevPath; -// CatPrint (Str, L"Pcmcia(Function%x)", (UINTN) Pccard->FunctionNumber); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathMemMap ( -// IN OUT POOL_PRINT *Str, -// IN MEMMAP_DEVICE_PATH *DevPath -// ) -//{ -// MEMMAP_DEVICE_PATH *MemMap; -// -// MemMap = DevPath; -// CatPrint ( -// Str, -// L"MemMap(%d:%lx-%lx)", -// (UINTN) MemMap->MemoryType, -// MemMap->StartingAddress, -// MemMap->EndingAddress -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathController ( -// IN OUT POOL_PRINT *Str, -// IN CONTROLLER_DEVICE_PATH *DevPath -// ) -//{ -// CONTROLLER_DEVICE_PATH *Controller; -// -// Controller = DevPath; -// CatPrint (Str, L"Ctrl(%d)", (UINTN) Controller->ControllerNumber); -//} -// -// -///** -// Convert Vendor device path to device name. -// -// @param Str The buffer store device name -// @param DevPath Pointer to vendor device path -// -//**/ -//void -//DevPathVendor ( -// IN OUT POOL_PRINT *Str, -// IN VENDOR_DEVICE_PATH *DevPath -// ) -//{ -// VENDOR_DEVICE_PATH *Vendor; -// CONST CHAR16 *Type; -// UINTN DataLength; -// UINTN Index; -//// UINT32 FlowControlMap; -// -// UINT16 Info; -// -// Vendor = DevPath; -// -// switch (DevicePathType (&Vendor->Header)) { -// case HARDWARE_DEVICE_PATH: -// Type = L"Hw"; -// break; -// -// case MESSAGING_DEVICE_PATH: -// Type = L"Msg"; -// /* if (CompareGuid (&Vendor->Guid, &gEfiPcAnsiGuid)) { -// CatPrint (Str, L"VenPcAnsi()"); -// return ; -// } else if (CompareGuid (&Vendor->Guid, &gEfiVT100Guid)) { -// CatPrint (Str, L"VenVt100()"); -// return ; -// } else if (CompareGuid (&Vendor->Guid, &gEfiVT100PlusGuid)) { -// CatPrint (Str, L"VenVt100Plus()"); -// return ; -// } else if (CompareGuid (&Vendor->Guid, &gEfiVTUTF8Guid)) { -// CatPrint (Str, L"VenUft8()"); -// return ; -// } else if (CompareGuid (&Vendor->Guid, &gEfiUartDevicePathGuid )) { -// FlowControlMap = (((UART_FLOW_CONTROL_DEVICE_PATH *) Vendor)->FlowControlMap); -// switch (FlowControlMap & 0x00000003) { -// case 0: -// CatPrint (Str, L"UartFlowCtrl(%s)", L"None"); -// break; -// -// case 1: -// CatPrint (Str, L"UartFlowCtrl(%s)", L"Hardware"); -// break; -// -// case 2: -// CatPrint (Str, L"UartFlowCtrl(%s)", L"XonXoff"); -// break; -// -// default: -// break; -// } -// -// return ; -// -// } else -//*/ -// if (CompareGuid (&Vendor->Guid, &gEfiSasDevicePathGuid)) { -// CatPrint ( -// Str, -// L"SAS(%lx,%lx,%x,", -// ((SAS_DEVICE_PATH *) Vendor)->SasAddress, -// ((SAS_DEVICE_PATH *) Vendor)->Lun, -// (UINTN) ((SAS_DEVICE_PATH *) Vendor)->RelativeTargetPort -// ); -// Info = (((SAS_DEVICE_PATH *) Vendor)->DeviceTopology); -// if ((Info & 0x0f) == 0) { -// CatPrint (Str, L"NoTopology,0,0,0,"); -// } else if (((Info & 0x0f) == 1) || ((Info & 0x0f) == 2)) { -// CatPrint ( -// Str, -// L"%s,%s,%s,", -// ((Info & (0x1 << 4)) != 0) ? L"SATA" : L"SAS", -// ((Info & (0x1 << 5)) != 0) ? L"External" : L"Internal", -// ((Info & (0x1 << 6)) != 0) ? L"Expanded" : L"Direct" -// ); -// if ((Info & 0x0f) == 1) { -// CatPrint (Str, L"0,"); -// } else { -// CatPrint (Str, L"%x,", (UINTN) ((Info >> 8) & 0xff)); -// } -// } else { -// CatPrint (Str, L"0,0,0,0,"); -// } -// -// CatPrint (Str, L"%x)", (UINTN) ((SAS_DEVICE_PATH *) Vendor)->Reserved); -// return ; -// -// } else if (CompareGuid (&Vendor->Guid, &gEfiDebugPortProtocolGuid)) { -// CatPrint (Str, L"DebugPort()"); -// return ; -// } -// break; -// -// case MEDIA_DEVICE_PATH: -// Type = L"Media"; -// break; -// -// default: -// Type = L"?"; -// break; -// } -// -// CatPrint (Str, L"Ven%s(%s", Type, strguid(&Vendor->Guid)); -// DataLength = DevicePathNodeLength (&Vendor->Header) - sizeof (VENDOR_DEVICE_PATH); -// if (DataLength > 0) { -// CatPrint (Str, L","); -// for (Index = 0; Index < DataLength; Index++) { -// CatPrint (Str, L"%02x", (UINTN) ((VENDOR_DEVICE_PATH_WITH_DATA *) Vendor)->VendorDefinedData[Index]); -// } -// } -// CatPrint (Str, L")"); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathAcpi ( -// IN OUT POOL_PRINT *Str, -// IN ACPI_HID_DEVICE_PATH *DevPath -// ) -//{ -// ACPI_HID_DEVICE_PATH *Acpi; -// -// Acpi = DevPath; -// if ((Acpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { -// CatPrint (Str, L"Acpi(PNP%04x,%x)", (UINTN) EISA_ID_TO_NUM (Acpi->HID), (UINTN) Acpi->UID); -// } else { -// CatPrint (Str, L"Acpi(%08x,%x)", (UINTN) Acpi->HID, (UINTN) Acpi->UID); -// } -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathExtendedAcpi ( -// IN OUT POOL_PRINT *Str, -// IN ACPI_EXTENDED_HID_DEVICE_PATH *DevPath -// ) -//{ -// ACPI_EXTENDED_HID_DEVICE_PATH *ExtendedAcpi; -// -// // -// // Index for HID, UID and CID strings, 0 for non-exist -// // -// UINT16 HIDSTRIdx; -// UINT16 UIDSTRIdx; -// UINT16 CIDSTRIdx; -// UINT16 Index; -// UINT16 Length; -// UINT16 Anchor; -// CHAR8 *AsChar8Array; -// -// HIDSTRIdx = 0; -// UIDSTRIdx = 0; -// CIDSTRIdx = 0; -// ExtendedAcpi = DevPath; -// Length = (UINT16) DevicePathNodeLength ((EFI_DEVICE_PATH_PROTOCOL *) ExtendedAcpi); -// -// AsChar8Array = (CHAR8 *) ExtendedAcpi; -// -// // -// // find HIDSTR -// // -// Anchor = 16; -// for (Index = Anchor; Index < Length && AsChar8Array[Index] != '\0'; Index++) { -// ; -// } -// if (Index > Anchor) { -// HIDSTRIdx = Anchor; -// } -// // -// // find UIDSTR -// // -// Anchor = (UINT16) (Index + 1); -// for (Index = Anchor; Index < Length && AsChar8Array[Index] != '\0'; Index++) { -// ; -// } -// if (Index > Anchor) { -// UIDSTRIdx = Anchor; -// } -// // -// // find CIDSTR -// // -// Anchor = (UINT16) (Index + 1); -// for (Index = Anchor; Index < Length && AsChar8Array[Index] != '\0'; Index++) { -// ; -// } -// if (Index > Anchor) { -// CIDSTRIdx = Anchor; -// } -// -// if (HIDSTRIdx == 0 && CIDSTRIdx == 0 && ExtendedAcpi->UID == 0) { -// CatPrint (Str, L"AcpiExp("); -// if ((ExtendedAcpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { -// CatPrint (Str, L"PNP%04x,", (UINTN) EISA_ID_TO_NUM (ExtendedAcpi->HID)); -// } else { -// CatPrint (Str, L"%08x,", (UINTN) ExtendedAcpi->HID); -// } -// if ((ExtendedAcpi->CID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { -// CatPrint (Str, L"PNP%04x,", (UINTN) EISA_ID_TO_NUM (ExtendedAcpi->CID)); -// } else { -// CatPrint (Str, L"%08x,", (UINTN) ExtendedAcpi->CID); -// } -// if (UIDSTRIdx != 0) { -// CatPrint (Str, L"%a)", AsChar8Array + UIDSTRIdx); -// } else { -// CatPrint (Str, L"\"\")"); -// } -// } else { -// CatPrint (Str, L"AcpiEx("); -// if ((ExtendedAcpi->HID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { -// CatPrint (Str, L"PNP%04x,", (UINTN) EISA_ID_TO_NUM (ExtendedAcpi->HID)); -// } else { -// CatPrint (Str, L"%08x,", (UINTN) ExtendedAcpi->HID); -// } -// if ((ExtendedAcpi->CID & PNP_EISA_ID_MASK) == PNP_EISA_ID_CONST) { -// CatPrint (Str, L"PNP%04x,", (UINTN) EISA_ID_TO_NUM (ExtendedAcpi->CID)); -// } else { -// CatPrint (Str, L"%08x,", (UINTN) ExtendedAcpi->CID); -// } -// CatPrint (Str, L"%x,", (UINTN) ExtendedAcpi->UID); -// -// if (HIDSTRIdx != 0) { -// CatPrint (Str, L"%a,", AsChar8Array + HIDSTRIdx); -// } else { -// CatPrint (Str, L"\"\","); -// } -// if (CIDSTRIdx != 0) { -// CatPrint (Str, L"%a,", AsChar8Array + CIDSTRIdx); -// } else { -// CatPrint (Str, L"\"\","); -// } -// if (UIDSTRIdx != 0) { -// CatPrint (Str, L"%a)", AsChar8Array + UIDSTRIdx); -// } else { -// CatPrint (Str, L"\"\")"); -// } -// } -// -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathAdrAcpi ( -// IN OUT POOL_PRINT *Str, -// IN ACPI_ADR_DEVICE_PATH *DevPath -// ) -//{ -// ACPI_ADR_DEVICE_PATH *AcpiAdr; -// UINT16 Index; -// UINT16 Length; -// UINT16 AdditionalAdrCount; -// -// AcpiAdr = DevPath; -// Length = (UINT16) DevicePathNodeLength ((EFI_DEVICE_PATH_PROTOCOL *) AcpiAdr); -// AdditionalAdrCount = (UINT16) ((Length - 8) / 4); -// -// CatPrint (Str, L"AcpiAdr(%x", (UINTN) AcpiAdr->ADR); -// for (Index = 0; Index < AdditionalAdrCount; Index++) { -// CatPrint (Str, L",%x", (UINTN) *(UINT32 *) ((UINT8 *) AcpiAdr + 8 + Index * 4)); -// } -// CatPrint (Str, L")"); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathAtapi ( -// IN OUT POOL_PRINT *Str, -// IN ATAPI_DEVICE_PATH *DevPath -// ) -//{ -// ATAPI_DEVICE_PATH *Atapi; -// -// Atapi = DevPath; -// CatPrint ( -// Str, -// L"Ata(%s,%s)", -// (Atapi->PrimarySecondary != 0)? L"Secondary" : L"Primary", -// (Atapi->SlaveMaster != 0)? L"Slave" : L"Master" -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathScsi ( -// IN OUT POOL_PRINT *Str, -// IN SCSI_DEVICE_PATH *DevPath -// ) -//{ -// SCSI_DEVICE_PATH *Scsi; -// -// Scsi = DevPath; -// CatPrint (Str, L"Scsi(Pun%x,Lun%x)", (UINTN) Scsi->Pun, (UINTN) Scsi->Lun); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathFibre ( -// IN OUT POOL_PRINT *Str, -// IN FIBRECHANNEL_DEVICE_PATH *DevPath -// ) -//{ -// FIBRECHANNEL_DEVICE_PATH *Fibre; -// -// Fibre = DevPath; -// CatPrint (Str, L"Fibre(Wwn%lx,Lun%x)", Fibre->WWN, Fibre->Lun); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPath1394 ( -// IN OUT POOL_PRINT *Str, -// IN F1394_DEVICE_PATH *DevPath -// ) -//{ -// F1394_DEVICE_PATH *F1394Path; -// -// F1394Path = DevPath; -// CatPrint (Str, L"1394(%lx)", &F1394Path->Guid); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathUsb ( -// IN OUT POOL_PRINT *Str, -// IN USB_DEVICE_PATH *DevPath -// ) -//{ -// USB_DEVICE_PATH *Usb; -// -// Usb = DevPath; -// CatPrint (Str, L"Usb(%x,%x)", (UINTN) Usb->ParentPortNumber, (UINTN) Usb->InterfaceNumber); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathUsbWWID ( -// IN OUT POOL_PRINT *Str, -// IN USB_WWID_DEVICE_PATH *DevPath -// ) -//{ -// USB_WWID_DEVICE_PATH *UsbWWId; -// -// UsbWWId = DevPath; -// CatPrint ( -// Str, -// L"UsbWwid(%x,%x,%x,\"WWID\")", -// (UINTN) UsbWWId->VendorId, -// (UINTN) UsbWWId->ProductId, -// (UINTN) UsbWWId->InterfaceNumber -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathLogicalUnit ( -// IN OUT POOL_PRINT *Str, -// IN DEVICE_LOGICAL_UNIT_DEVICE_PATH *DevPath -// ) -//{ -// DEVICE_LOGICAL_UNIT_DEVICE_PATH *LogicalUnit; -// -// LogicalUnit = DevPath; -// CatPrint (Str, L"Unit(%x)", (UINTN) LogicalUnit->Lun); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathUsbClass ( -// IN OUT POOL_PRINT *Str, -// IN USB_CLASS_DEVICE_PATH *DevPath -// ) -//{ -// USB_CLASS_DEVICE_PATH *UsbClass; -// -// UsbClass = DevPath; -// CatPrint ( -// Str, -// L"Usb Class(%x,%x,%x,%x,%x)", -// (UINTN) UsbClass->VendorId, -// (UINTN) UsbClass->ProductId, -// (UINTN) UsbClass->DeviceClass, -// (UINTN) UsbClass->DeviceSubClass, -// (UINTN) UsbClass->DeviceProtocol -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathSata ( -// IN OUT POOL_PRINT *Str, -// IN SATA_DEVICE_PATH *DevPath -// ) -//{ -// SATA_DEVICE_PATH *Sata; -// -// Sata = DevPath; -// if ((Sata->PortMultiplierPortNumber & SATA_HBA_DIRECT_CONNECT_FLAG) != 0) { -// CatPrint ( -// Str, -// L"Sata(%x,%x)", -// (UINTN) Sata->HBAPortNumber, -// (UINTN) Sata->Lun -// ); -// } else { -// CatPrint ( -// Str, -// L"Sata(%x,%x,%x)", -// (UINTN) Sata->HBAPortNumber, -// (UINTN) Sata->PortMultiplierPortNumber, -// (UINTN) Sata->Lun -// ); -// } -//} -// -///** -// Converts a NVM Express Namespace device path structure to its string representative. -// -// @param Str The string representative of input device. -// @param DevPath The input device path structure. -// @param DisplayOnly If DisplayOnly is TRUE, then the shorter text representation -// of the display node is used, where applicable. If DisplayOnly -// is FALSE, then the longer text representation of the display node -// is used. -// @param AllowShortcuts If AllowShortcuts is TRUE, then the shortcut forms of text -// representation for a device node can be used, where applicable. -// -// **/ -//void -//DevPathToTextNVMe ( -// IN OUT POOL_PRINT *Str, -// IN NVME_NAMESPACE_DEVICE_PATH *DevPath /*, -// IN BOOLEAN DisplayOnly, -// IN BOOLEAN AllowShortcuts */ -// ) -//{ -// NVME_NAMESPACE_DEVICE_PATH *Nvme; -// UINT8 *Uuid; -// -// Nvme = DevPath; -// Uuid = (UINT8 *) &Nvme->NamespaceUuid; -// CatPrint ( -// Str, -// L"NVMe(0x%x,%02x-%02x-%02x-%02x-%02x-%02x-%02x-%02x)", -// Nvme->NamespaceId, -// Uuid[7], Uuid[6], Uuid[5], Uuid[4], -// Uuid[3], Uuid[2], Uuid[1], Uuid[0] -// ); -//} -// -// -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathI2O ( -// IN OUT POOL_PRINT *Str, -// IN I2O_DEVICE_PATH *DevPath -// ) -//{ -// I2O_DEVICE_PATH *I2OPath; -// -// I2OPath = DevPath; -// CatPrint (Str, L"I2O(%x)", (UINTN) I2OPath->Tid); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathMacAddr ( -// IN OUT POOL_PRINT *Str, -// IN MAC_ADDR_DEVICE_PATH *DevPath -// ) -//{ -// MAC_ADDR_DEVICE_PATH *MACDevPath; -// UINTN HwAddressSize; -// UINTN Index; -// -// MACDevPath = DevPath; -// -// HwAddressSize = sizeof (EFI_MAC_ADDRESS); -// if (MACDevPath->IfType == 0x01 || MACDevPath->IfType == 0x00) { -// HwAddressSize = 6; -// } -// -// CatPrint (Str, L"Mac("); -// -// for (Index = 0; Index < HwAddressSize; Index++) { -// CatPrint (Str, L"%02x", (UINTN) MACDevPath->MacAddress.Addr[Index]); -// } -// -// CatPrint (Str, L")"); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathIPv4 ( -// IN OUT POOL_PRINT *Str, -// IN IPv4_DEVICE_PATH *DevPath -// ) -//{ -// IPv4_DEVICE_PATH *IPDevPath; -// -// IPDevPath = DevPath; -// CatPrint ( -// Str, -// L"IPv4(%d.%d.%d.%d:%d)", -// (UINTN) IPDevPath->RemoteIpAddress.Addr[0], -// (UINTN) IPDevPath->RemoteIpAddress.Addr[1], -// (UINTN) IPDevPath->RemoteIpAddress.Addr[2], -// (UINTN) IPDevPath->RemoteIpAddress.Addr[3], -// (UINTN) IPDevPath->RemotePort -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathIPv6 ( -// IN OUT POOL_PRINT *Str, -// IN IPv6_DEVICE_PATH *DevPath -// ) -//{ -// IPv6_DEVICE_PATH *IPv6DevPath; -// -// IPv6DevPath = DevPath; -// CatPrint ( -// Str, -// L"IPv6(%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x)", -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[0], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[1], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[2], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[3], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[4], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[5], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[6], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[7], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[8], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[9], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[10], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[11], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[12], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[13], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[14], -// (UINTN) IPv6DevPath->RemoteIpAddress.Addr[15] -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathInfiniBand ( -// IN OUT POOL_PRINT *Str, -// IN INFINIBAND_DEVICE_PATH *DevPath -// ) -//{ -// INFINIBAND_DEVICE_PATH *InfiniBand; -// -// InfiniBand = DevPath; -// CatPrint ( -// Str, -// L"Infiniband(%x,%s,%lx,%lx,%lx)", -// (UINTN) InfiniBand->ResourceFlags, -// strguid(InfiniBand->PortGid), -// InfiniBand->ServiceId, -// InfiniBand->TargetPortId, -// InfiniBand->DeviceId -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathUart ( -// IN OUT POOL_PRINT *Str, -// IN UART_DEVICE_PATH *DevPath -// ) -//{ -// UART_DEVICE_PATH *Uart; -// CHAR8 Parity; -// -// Uart = DevPath; -// switch (Uart->Parity) { -// case 0: -// Parity = 'D'; -// break; -// -// case 1: -// Parity = 'N'; -// break; -// -// case 2: -// Parity = 'E'; -// break; -// -// case 3: -// Parity = 'O'; -// break; -// -// case 4: -// Parity = 'M'; -// break; -// -// case 5: -// Parity = 'S'; -// break; -// -// default: -// Parity = 'x'; -// break; -// } -// -// if (Uart->BaudRate == 0) { -// CatPrint (Str, L"Uart(DEFAULT,%c,", Parity); -// } else { -// CatPrint (Str, L"Uart(%ld,%c,", Uart->BaudRate, Parity); -// } -// -// if (Uart->DataBits == 0) { -// CatPrint (Str, L"D,"); -// } else { -// CatPrint (Str, L"%d,", (UINTN) Uart->DataBits); -// } -// -// switch (Uart->StopBits) { -// case 0: -// CatPrint (Str, L"D)"); -// break; -// -// case 1: -// CatPrint (Str, L"1)"); -// break; -// -// case 2: -// CatPrint (Str, L"1.5)"); -// break; -// -// case 3: -// CatPrint (Str, L"2)"); -// break; -// -// default: -// CatPrint (Str, L"x)"); -// break; -// } -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathiSCSI ( -// IN OUT POOL_PRINT *Str, -// IN ISCSI_DEVICE_PATH_WITH_NAME *DevPath -// ) -//{ -// ISCSI_DEVICE_PATH_WITH_NAME *IScsi; -// UINT16 Options; -// -// IScsi = DevPath; -// CatPrint ( -// Str, -// L"iSCSI(%a,%x,%lx,", -// IScsi->TargetName, -// (UINTN) IScsi->TargetPortalGroupTag, -// IScsi->Lun -// ); -// -// Options = IScsi->LoginOption; -// CatPrint (Str, L"%s,", (((Options >> 1) & 0x0001) != 0) ? L"CRC32C" : L"None"); -// CatPrint (Str, L"%s,", (((Options >> 3) & 0x0001) != 0) ? L"CRC32C" : L"None"); -// if (((Options >> 11) & 0x0001) != 0) { -// CatPrint (Str, L"%s,", L"None"); -// } else if (((Options >> 12) & 0x0001) != 0) { -// CatPrint (Str, L"%s,", L"CHAP_UNI"); -// } else { -// CatPrint (Str, L"%s,", L"CHAP_BI"); -// -// } -// -// CatPrint (Str, L"%s)", (IScsi->NetworkProtocol == 0) ? L"TCP" : L"reserved"); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maixmum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathVlan ( -// IN OUT POOL_PRINT *Str, -// IN VLAN_DEVICE_PATH *DevPath -// ) -//{ -// VLAN_DEVICE_PATH *Vlan; -// -// Vlan = DevPath; -// CatPrint (Str, L"Vlan(%d)", (UINTN) Vlan->VlanId); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maixmum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathHardDrive ( -// IN OUT POOL_PRINT *Str, -// IN HARDDRIVE_DEVICE_PATH *DevPath -// ) -//{ -// HARDDRIVE_DEVICE_PATH *Hd; -// -// Hd = DevPath; -// switch (Hd->SignatureType) { -// case SIGNATURE_TYPE_MBR: -// CatPrint ( -// Str, -// L"HD(Part%d,Sig%08x)", -// (UINTN) Hd->PartitionNumber, -// (UINTN) *((UINT32 *) (&(Hd->Signature[0]))) -// ); -// break; -// -// case SIGNATURE_TYPE_GUID: -// CatPrint ( -// Str, -// L"HD(Part%d,Sig%s)", -// (UINTN) Hd->PartitionNumber, -// strguid((EFI_GUID *) &(Hd->Signature[0])) -// ); -// break; -// -// default: -// CatPrint ( -// Str, -// L"HD(Part%d,MBRType=%02x,SigType=%02x)", -// (UINTN) Hd->PartitionNumber, -// (UINTN) Hd->MBRType, -// (UINTN) Hd->SignatureType -// ); -// break; -// } -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathCDROM ( -// IN OUT POOL_PRINT *Str, -// IN CDROM_DEVICE_PATH *DevPath -// ) -//{ -// CDROM_DEVICE_PATH *Cd; -// -// Cd = DevPath; -// CatPrint (Str, L"CDROM(Entry%x)", (UINTN) Cd->BootEntry); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathFilePath ( -// IN OUT POOL_PRINT *Str, -// IN FILEPATH_DEVICE_PATH *DevPath -// ) -//{ -// FILEPATH_DEVICE_PATH *Fp; -// -// Fp = DevPath; -// CatPrint (Str, L"%s", Fp->PathName); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathMediaProtocol ( -// IN OUT POOL_PRINT *Str, -// IN MEDIA_PROTOCOL_DEVICE_PATH *DevPath -// ) -//{ -// MEDIA_PROTOCOL_DEVICE_PATH *MediaProt; -// -// MediaProt = DevPath; -// CatPrint (Str, L"Media(%s)", strguid(&MediaProt->Protocol)); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathFvFilePath ( -// IN OUT POOL_PRINT *Str, -// IN MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *DevPath -// ) -//{ -// MEDIA_FW_VOL_FILEPATH_DEVICE_PATH *FvFilePath; -// -// FvFilePath = DevPath; -// CatPrint (Str, L"%s", strguid(&FvFilePath->FvFileName)); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathRelativeOffsetRange0 ( -// IN OUT POOL_PRINT *Str, -// IN MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *DevPath -// ) -//{ -// MEDIA_RELATIVE_OFFSET_RANGE_DEVICE_PATH *Offset; -// -// Offset = DevPath; -// CatPrint ( -// Str, -// L"Offset(%lx,%lx)", -// Offset->StartingOffset, -// Offset->EndingOffset -// ); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathBssBss ( -// IN OUT POOL_PRINT *Str, -// IN BBS_BBS_DEVICE_PATH *DevPath -// ) -//{ -// BBS_BBS_DEVICE_PATH *Bbs; -// CONST CHAR16 *Type; -// -// Bbs = DevPath; -// switch (Bbs->DeviceType) { -// case BBS_TYPE_FLOPPY: -// Type = L"Floppy"; -// break; -// -// case BBS_TYPE_HARDDRIVE: -// Type = L"Harddrive"; -// break; -// -// case BBS_TYPE_CDROM: -// Type = L"CDROM"; -// break; -// -// case BBS_TYPE_PCMCIA: -// Type = L"PCMCIA"; -// break; -// -// case BBS_TYPE_USB: -// Type = L"Usb"; -// break; -// -// case BBS_TYPE_EMBEDDED_NETWORK: -// Type = L"Net"; -// break; -// -// case BBS_TYPE_BEV: -// Type = L"BEV"; -// break; -// -// default: -// Type = L"?"; -// break; -// } -// CatPrint (Str, L"Legacy-%s", Type); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathEndInstance ( -// IN OUT POOL_PRINT *Str, -// IN void *DevPath -// ) -//{ -// CatPrint (Str, L","); -//} -// -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathNodeUnknown ( -// IN OUT POOL_PRINT *Str, -// IN void *DevPath -// ) -//{ -// CatPrint (Str, L"?"); -//} -///** -// Convert Device Path to a Unicode string for printing. -// -// @param Str The buffer holding the output string. -// This buffer contains the length of the -// string and the maximum length reserved -// for the string buffer. -// @param DevPath The device path. -// -//**/ -//static void -//DevPathFvPath ( -// IN OUT POOL_PRINT *Str, -// IN MEDIA_FW_VOL_DEVICE_PATH *DevPath -// ) -//{ -// MEDIA_FW_VOL_DEVICE_PATH *FvPath; -// -// FvPath = DevPath; -// CatPrint (Str, L"Fv(%s)", strguid(&FvPath->FvName)); -//} -// -//DEVICE_PATH_STRING_TABLE DevPathTable[] = { -// { -// HARDWARE_DEVICE_PATH, -// HW_PCI_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathPci -// }, -// { -// HARDWARE_DEVICE_PATH, -// HW_PCCARD_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathPccard -// }, -// { -// HARDWARE_DEVICE_PATH, -// HW_MEMMAP_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathMemMap -// }, -// { -// HARDWARE_DEVICE_PATH, -// HW_VENDOR_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathVendor -// }, -// { -// HARDWARE_DEVICE_PATH, -// HW_CONTROLLER_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathController -// }, -// { -// ACPI_DEVICE_PATH, -// ACPI_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathAcpi -// }, -// { -// ACPI_DEVICE_PATH, -// ACPI_EXTENDED_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathExtendedAcpi -// }, -// { -// ACPI_DEVICE_PATH, -// ACPI_ADR_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathAdrAcpi -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_ATAPI_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathAtapi -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_SCSI_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathScsi -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_FIBRECHANNEL_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathFibre -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_1394_DP, -// (DEV_PATH_FUNCTION_VOID)DevPath1394 -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_USB_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathUsb -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_USB_WWID_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathUsbWWID -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_DEVICE_LOGICAL_UNIT_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathLogicalUnit -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_USB_CLASS_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathUsbClass -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_SATA_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathSata -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_NVME_NAMESPACE_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathToTextNVMe -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_I2O_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathI2O -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_MAC_ADDR_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathMacAddr -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_IPv4_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathIPv4 -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_IPv6_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathIPv6 -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_INFINIBAND_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathInfiniBand -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_UART_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathUart -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_VENDOR_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathVendor -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_ISCSI_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathiSCSI -// }, -// { -// MESSAGING_DEVICE_PATH, -// MSG_VLAN_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathVlan -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_HARDDRIVE_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathHardDrive -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_CDROM_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathCDROM -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_VENDOR_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathVendor -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_FILEPATH_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathFilePath -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_PROTOCOL_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathMediaProtocol -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_PIWG_FW_VOL_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathFvPath, -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_PIWG_FW_FILE_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathFvFilePath -// }, -// { -// MEDIA_DEVICE_PATH, -// MEDIA_RELATIVE_OFFSET_RANGE_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathRelativeOffsetRange0, -// }, -// { -// BBS_DEVICE_PATH, -// BBS_BBS_DP, -// (DEV_PATH_FUNCTION_VOID)DevPathBssBss -// }, -// { -// END_DEVICE_PATH_TYPE, -// END_INSTANCE_DEVICE_PATH_SUBTYPE, -// (DEV_PATH_FUNCTION_VOID)DevPathEndInstance -// }, -// { -// 0, -// 0, -// (DEV_PATH_FUNCTION_VOID)NULL -// } -//}; -// -// -///** -// This function converts an input device structure to a Unicode string. -// -// @param DevPath A pointer to the device path structure. -// -// @return A new allocated Unicode string that represents the device path. -// -//**/ -//CHAR16 * -//EFIAPI -//DevicePathToStr ( -// IN EFI_DEVICE_PATH_PROTOCOL *DevPath -// ) -//{ -// POOL_PRINT Str; -// EFI_DEVICE_PATH_PROTOCOL *DevPathNode; -// void (*DumpNode) (POOL_PRINT *, void *); -// -// UINTN Index; -// UINTN NewSize; -// -// EFI_STATUS Status; -// CHAR16 *ToText; -// EFI_DEVICE_PATH_TO_TEXT_PROTOCOL *DevPathToText; -// -// ZeroMem (&Str, sizeof (Str)); -// -// if (DevPath == NULL) { -// goto Done; -// } -// -// Status = gBS->LocateProtocol ( -// &gEfiDevicePathToTextProtocolGuid, -// NULL, -// (void **) &DevPathToText -// ); -// if (!EFI_ERROR(Status)) { -// ToText = DevPathToText->ConvertDevicePathToText ( -// DevPath, -// FALSE, -// TRUE -// ); -//// ASSERT (ToText != NULL); -// return ToText; -// } -// -// // -// // Process each device path node -// // -// DevPathNode = DevPath; -// while (!IsDevicePathEnd (DevPathNode)) { -// // -// // Find the handler to dump this device path node -// // -// DumpNode = NULL; -// for (Index = 0; DevPathTable[Index].Function != NULL; Index += 1) { -// -// if (DevicePathType (DevPathNode) == DevPathTable[Index].Type && -// DevicePathSubType (DevPathNode) == DevPathTable[Index].SubType -// ) { -// DumpNode = DevPathTable[Index].Function; -// break; -// } -// } -// // -// // If not found, use a generic function -// // -// if (!DumpNode) { -// DumpNode = DevPathNodeUnknown; -// } -// // -// // Put a path separator in if needed -// // -// if ((Str.Len != 0) && (DumpNode != DevPathEndInstance)) { -// CatPrint (&Str, L"/"); -// } -// // -// // Print this node of the device path -// // -// DumpNode (&Str, DevPathNode); -// -// // -// // Next device path node -// // -// DevPathNode = NextDevicePathNode (DevPathNode); -// } -// -//Done: -// NewSize = (Str.Len + 1) * sizeof (CHAR16); -// Str.Str = (__typeof__(Str.Str))ReallocatePool (NewSize, NewSize, Str.Str); -//// ASSERT (Str.Str != NULL); -// if (!Str.Str) { -// return NULL; -// } -// -// Str.Str[Str.Len] = 0; -// return Str.Str; -//} diff --git a/rEFIt_UEFI/Platform/FixBiosDsdt.cpp b/rEFIt_UEFI/Platform/FixBiosDsdt.cpp index 9866156e0..da4de8ed3 100755 --- a/rEFIt_UEFI/Platform/FixBiosDsdt.cpp +++ b/rEFIt_UEFI/Platform/FixBiosDsdt.cpp @@ -12,7 +12,7 @@ #include "cpu.h" #include "../include/Pci.h" #include "../include/Devices.h" - +#include "Settings.h" extern "C" { #include @@ -5354,7 +5354,8 @@ void FixBiosDsdt(UINT8* temp, EFI_ACPI_2_0_FIXED_ACPI_DESCRIPTION_TABLE* fadt, c GFXHDAFIX = TRUE; USBIDFIX = TRUE; - DsdtLen = ((EFI_ACPI_DESCRIPTION_HEADER*)temp)->Length; + EFI_ACPI_DESCRIPTION_HEADER* efi_acpi_description_header = (EFI_ACPI_DESCRIPTION_HEADER*)temp; + DsdtLen = efi_acpi_description_header->Length; if ((DsdtLen < 20) || (DsdtLen > 1000000)) { //fool proof (some ASUS dsdt > 300kb?). Up to 1Mb MsgLog("DSDT length out of range\n"); return; diff --git a/rEFIt_UEFI/Platform/HdaCodecDump.cpp b/rEFIt_UEFI/Platform/HdaCodecDump.cpp index 7b2003958..3bf328128 100644 --- a/rEFIt_UEFI/Platform/HdaCodecDump.cpp +++ b/rEFIt_UEFI/Platform/HdaCodecDump.cpp @@ -29,7 +29,7 @@ #include "StateGenerator.h" #include "AmlGenerator.h" #include "../Platform/Settings.h" -#include "Self.h" +#include "../Settings/Self.h" CONST CHAR8 *gWidgetNames[HDA_WIDGET_TYPE_VENDOR + 1] = { "Audio Output", "Audio Input", "Audio Mixer", diff --git a/rEFIt_UEFI/Platform/Hibernate.cpp b/rEFIt_UEFI/Platform/Hibernate.cpp index a3e5313f0..1faf4120f 100644 --- a/rEFIt_UEFI/Platform/Hibernate.cpp +++ b/rEFIt_UEFI/Platform/Hibernate.cpp @@ -791,7 +791,7 @@ IsOsxHibernated (IN LOADER_ENTRY *Entry) EFI_GUID TmpGuid; CHAR16 *Ptr = GuidLEToStr(&Volume->RootUUID); DBG("got str=%ls\n", Ptr); - Status = StrToGuidLE (Ptr, &TmpGuid); + Status = StrToGuidBE (Ptr, &TmpGuid); if (EFI_ERROR(Status)) { DBG(" cant convert Str %ls to GUID\n", Ptr); } else { @@ -909,7 +909,9 @@ IsOsxHibernated (IN LOADER_ENTRY *Entry) ResumeFromCoreStorage = TRUE; // DBG("got str=%ls\n", Ptr); - Status = StrToGuidLE(Ptr, &TmpGuid); + XString8 xs8; + xs8.takeValueFrom(Ptr); + Status = StrToGuidBE(xs8, &TmpGuid); if (EFI_ERROR(Status)) { DBG(" cant convert Str %ls to GUID\n", Ptr); } else { diff --git a/rEFIt_UEFI/Platform/KERNEL_AND_KEXT_PATCHES.h b/rEFIt_UEFI/Platform/KERNEL_AND_KEXT_PATCHES.h index 6fd696ef9..865febf1d 100644 --- a/rEFIt_UEFI/Platform/KERNEL_AND_KEXT_PATCHES.h +++ b/rEFIt_UEFI/Platform/KERNEL_AND_KEXT_PATCHES.h @@ -11,6 +11,8 @@ #include "../cpp_foundation/XBuffer.h" #include "../libeg/libeg.h" #include "MacOsVersion.h" +#include "../Settings/ConfigPlist/ConfigPlistClass.h" +#include "../Platform/SettingsUtils.h" extern "C" { # include @@ -61,6 +63,23 @@ public: if ( !(Label == other.Label ) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_AbstractPatch_Class& other) + { + Disabled = other.dgetDisabled(); + Find = other.dgetFind(); + Replace = other.dgetReplace(); + MaskFind = other.dgetMaskFind(); + MaskReplace = other.dgetMaskReplace(); + StartPattern = other.dgetStartPattern(); + StartMask = other.dgetStartMask(); + SearchLen = other.dgetSearchLen(); + Count = other.dgetCount(); + Skip = other.dgetSkip(); + MatchOS = other.dgetMatchOS(); + MatchBuild = other.dgetMatchBuild(); + MenuItem.BValue = !other.dgetDisabled(); + Label = other.dgetLabel(); + } /** Returns a boolean and then enable disable the patch if MachOSEntry have a match for the booted OS. */ bool IsPatchEnabledByBuildNumber(const XString8& Build); @@ -71,6 +90,7 @@ public: class ABSTRACT_KEXT_OR_KERNEL_PATCH : public ABSTRACT_PATCH { + using super = ABSTRACT_PATCH; public: XString8 ProcedureName = XString8(); //procedure len will be StartPatternLen @@ -80,16 +100,23 @@ public: #endif bool isEqual(const ABSTRACT_KEXT_OR_KERNEL_PATCH& other) const { - if ( !ABSTRACT_PATCH::isEqual (other) ) return false; + if ( !super::isEqual (other) ) return false; if ( !(ProcedureName == other.ProcedureName ) ) return false; return true; } + bool takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class::ABSTRACT_KEXT_OR_KERNEL_PATCH& other) + { + super::takeValueFrom(other); + ProcedureName = other.dgetProcedureName(); + return true; + } }; class KEXT_PATCH : public ABSTRACT_KEXT_OR_KERNEL_PATCH { + using super = ABSTRACT_KEXT_OR_KERNEL_PATCH; public: XString8 Name = XString8(); bool IsPlistPatch = BOOLEAN(); @@ -102,14 +129,22 @@ public: #endif bool isEqual(const KEXT_PATCH& other) const { - if ( !ABSTRACT_KEXT_OR_KERNEL_PATCH::isEqual (other) ) return false; + if ( !super::isEqual (other) ) return false; + if ( !(Name == other.Name ) ) return false; if ( !(IsPlistPatch == other.IsPlistPatch ) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KextsToPatch_Class& other) + { + super::takeValueFrom(other); + Name = other.dgetName(); + IsPlistPatch = other.dgetIsPlistPatch(); + } }; class KERNEL_PATCH : public ABSTRACT_KEXT_OR_KERNEL_PATCH { + using super = ABSTRACT_KEXT_OR_KERNEL_PATCH; public: virtual XString8 getName() const { return "kernel"_XS8; } @@ -119,13 +154,18 @@ public: #endif bool isEqual(const KERNEL_PATCH& other) const { - if ( !ABSTRACT_KEXT_OR_KERNEL_PATCH::isEqual (other) ) return false; + if ( !super::isEqual (other) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_KernelToPatch_Class& other) + { + super::takeValueFrom(other); + } }; class BOOT_PATCH : public ABSTRACT_PATCH { + using super = ABSTRACT_PATCH; public: virtual XString8 getName() const { return "boot.efi"_XS8; } @@ -135,9 +175,13 @@ public: #endif bool isEqual(const BOOT_PATCH& other) const { - if ( !ABSTRACT_PATCH::isEqual (other) ) return false; + if ( !super::isEqual (other) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class::KernelAndKextPatches_BootPatch_Class& other) + { + super::takeValueFrom(other); + } }; class KERNEL_AND_KEXT_PATCHES @@ -157,9 +201,9 @@ public: XBuffer KPATIConnectorsData = XBuffer(); XBuffer KPATIConnectorsPatch = XBuffer(); XStringWArray ForceKextsToLoad/* = XStringWArray()*/; - XObjArray KextPatches/* = XObjArray()*/; - XObjArray KernelPatches/* = XObjArray()*/; - XObjArray BootPatches/* = XObjArray()*/; + XObjArrayWithTakeValueFromXmlArray KextPatches/* = XObjArrayWithTakeValueFromXmlArray()*/; + XObjArrayWithTakeValueFromXmlArray KernelPatches/* = XObjArrayWithTakeValueFromXmlArray()*/; + XObjArrayWithTakeValueFromXmlArray BootPatches/* = XObjArrayWithTakeValueFromXmlArray()*/; KERNEL_AND_KEXT_PATCHES() : ForceKextsToLoad(), KextPatches(), KernelPatches(), BootPatches() {} @@ -187,6 +231,26 @@ public: if ( !BootPatches.isEqual(other.BootPatches) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::KernelAndKextPatches_Class& other) + { + KPDebug = other.dgetKPDebug(); + KPKernelLapic = other.dgetKPKernelLapic(); + KPKernelXCPM = other.dgetKPKernelXCPM(); + _KPKernelPm = other.dget_KPKernelPm(); + KPPanicNoKextDump = other.dgetKPPanicNoKextDump(); + _KPAppleIntelCPUPM = other.dget_KPAppleIntelCPUPM(); + KPAppleRTC = other.dgetKPAppleRTC(); + EightApple = other.dgetEightApple(); + KPDELLSMBIOS = other.dgetKPDELLSMBIOS(); + FakeCPUID = other.dgetFakeCPUID(); + KPATIConnectorsController = other.dgetKPATIConnectorsController(); + KPATIConnectorsData = other.dgetKPATIConnectorsData(); + KPATIConnectorsPatch = other.dgetKPATIConnectorsPatch(); + ForceKextsToLoad = other.dgetForceKextsToLoad(); + KextPatches.takeValueFrom(other.KextsToPatch); + KernelPatches.takeValueFrom(other.KernelToPatch); + BootPatches.takeValueFrom(other.BootPatches); + } } ; diff --git a/rEFIt_UEFI/Platform/KextList.cpp b/rEFIt_UEFI/Platform/KextList.cpp index e8127a4f9..f96e9798a 100644 --- a/rEFIt_UEFI/Platform/KextList.cpp +++ b/rEFIt_UEFI/Platform/KextList.cpp @@ -7,7 +7,7 @@ #include "KextList.h" #include -#include "SelfOem.h" +#include "../Settings/SelfOem.h" #include "../libeg/libeg.h" diff --git a/rEFIt_UEFI/Platform/LegacyBoot.cpp b/rEFIt_UEFI/Platform/LegacyBoot.cpp index 2100e0778..848a7bc5c 100644 --- a/rEFIt_UEFI/Platform/LegacyBoot.cpp +++ b/rEFIt_UEFI/Platform/LegacyBoot.cpp @@ -14,7 +14,8 @@ Copyright (c) 2006 JLA #include #include "LegacyBiosThunk.h" #include "AcpiPatcher.h" -#include "Self.h" +#include "../Settings/Self.h" +#include "../refit/lib.h" #ifndef DEBUG_ALL diff --git a/rEFIt_UEFI/Platform/Net.cpp b/rEFIt_UEFI/Platform/Net.cpp deleted file mode 100644 index caf0af7f8..000000000 --- a/rEFIt_UEFI/Platform/Net.cpp +++ /dev/null @@ -1,233 +0,0 @@ -// Slice 2014 - -#include // Only use angled for Platform, else, xcode project won't compile -#include "../refit/lib.h" -#include "Net.h" -#include "../Platform/Settings.h" - -#ifndef DEBUG_MAC -#ifndef DEBUG_ALL -#define DEBUG_MAC 1 -#else -#define DEBUG_MAC DEBUG_ALL -#endif -#endif - -#if DEBUG_MAC == 0 -#define DBG(...) -#else -#define DBG(...) DebugLog(DEBUG_MAC, __VA_ARGS__) -#endif - -UINTN nLanCards; // number of LAN cards -UINT16 gLanVendor[4]; // their vendors -UINT8 *gLanMmio[4]; // their MMIO regions -UINT8 gLanMac[4][6]; // their MAC addresses -UINTN nLanPaths; // number of UEFI LAN - - -//Marvell Yukon -#define B2_MAC_1 0x0100 /* NA reg MAC Address 1 */ -#define B2_MAC_2 0x0108 /* NA reg MAC Address 2 */ -#define B2_MAC_3 0x0110 /* NA reg MAC Address 3 */ - -//Atheros -#define L1C_STAD0 0x1488 -#define L1C_STAD1 0x148C - -//Intel -#define INTEL_MAC_1 0x5400 -#define INTEL_MAC_2 0x54E0 - -// Broadcom MAC Address Registers -#define EMAC_MACADDR0_HI 0x00000410 -#define EMAC_MACADDR0_LO 0x00000414 -#define EMAC_MACADDR1_HI 0x00000418 -#define EMAC_MACADDR1_LO 0x0000041C -#define EMAC_MACADDR2_HI 0x00000420 -#define EMAC_MACADDR2_LO 0x00000424 -#define EMAC_MACADDR3_HI 0x00000428 -#define EMAC_MACADDR3_LO 0x0000042C - -/* - /// - /// MAC Address Device Path SubType. - /// - #define MSG_MAC_ADDR_DP 0x0b -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; - - */ - -void -GetMacAddress() -{ - EFI_STATUS Status; - EFI_MAC_ADDRESS MacAddr; - UINT8 *HwAddress; - UINTN HwAddressSize; - UINTN Index, Index2; - EFI_HANDLE *HandleBuffer; - UINTN NumberOfHandles; - EFI_DEVICE_PATH_PROTOCOL *Node; - EFI_DEVICE_PATH_PROTOCOL *DevicePath; - MAC_ADDR_DEVICE_PATH *MacAddressNode; - BOOLEAN Found; - BOOLEAN Swab; - UINT16 PreviousVendor = 0; - UINT32 Mac0, Mac4; - UINTN Offset; - - HwAddressSize = 6; - // - // Locate Service Binding handles. - // - NumberOfHandles = 0; - HandleBuffer = NULL; - Status = gBS->LocateHandleBuffer ( - ByProtocol, - &gEfiDevicePathProtocolGuid, - NULL, - &NumberOfHandles, - &HandleBuffer - ); - if (EFI_ERROR(Status)) { - return; - } - - DbgHeader("GetMacAddress"); - - Found = FALSE; - for (Index = 0; Index < NumberOfHandles; Index++) { - Node = NULL; - Status = gBS->HandleProtocol ( - HandleBuffer[Index], - &gEfiDevicePathProtocolGuid, - (void **) &Node - ); - if (EFI_ERROR(Status)) { - continue; - } - DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) Node; - - // - while (!IsDevicePathEnd (DevicePath)) { - if ((DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) && - (DevicePathSubType (DevicePath) == MSG_MAC_ADDR_DP)) { - // - // Get MAC address. - // - MacAddressNode = (MAC_ADDR_DEVICE_PATH*)DevicePath; - //HwAddressSize = sizeof (EFI_MAC_ADDRESS); - //if (MacAddressNode->IfType == 0x01 || MacAddressNode->IfType == 0x00) { - // HwAddressSize = 6; - //} - CopyMem(&MacAddr, &MacAddressNode->MacAddress.Addr[0], HwAddressSize); - DBG("MAC address of LAN #%llu= ", nLanPaths); - HwAddress = &MacAddressNode->MacAddress.Addr[0]; - for (Index2 = 0; Index2 < HwAddressSize; Index2++) { - DBG("%02hhX:", *HwAddress++); - } - DBG("\n"); - Found = TRUE; - CopyMem(&gLanMac[nLanPaths++], &MacAddressNode->MacAddress.Addr[0], HwAddressSize); - break; - } - DevicePath = NextDevicePathNode (DevicePath); - } - if (nLanPaths > 3) { - break; - } - } - if (HandleBuffer != NULL) { - FreePool(HandleBuffer); - } - if (!Found && gSettings.RtVariables.GetLegacyLanAddress()) { - //// - // - // Legacy boot. Get MAC-address from hardwaredirectly - // - //// - DBG(" get legacy LAN MAC, %llu card found\n", nLanCards); - for (Index = 0; Index < nLanCards; Index++) { - if (!gLanMmio[Index]) { //security - continue; - } - Offset = 0; - Swab = FALSE; - switch (gLanVendor[Index]) { - case 0x11ab: //Marvell Yukon - if (PreviousVendor == gLanVendor[Index]) { - Offset = B2_MAC_2; - } else { - Offset = B2_MAC_1; - } - CopyMem(&gLanMac[0][Index], gLanMmio[Index] + Offset, 6); - goto done; - - case 0x10ec: //Realtek - Mac0 = IoRead32((UINTN)gLanMmio[Index]); - Mac4 = IoRead32((UINTN)gLanMmio[Index] + 4); - goto copy; - - case 0x14e4: //Broadcom - if (PreviousVendor == gLanVendor[Index]) { - Offset = EMAC_MACADDR1_HI; - } else { - Offset = EMAC_MACADDR0_HI; - } - break; - case 0x1969: //Atheros - Offset = L1C_STAD0; - Swab = TRUE; - break; - case 0x8086: //Intel - if (PreviousVendor == gLanVendor[Index]) { - Offset = INTEL_MAC_2; - } else { - Offset = INTEL_MAC_1; - } - break; - - default: - break; - } - if (!Offset) { - continue; - } - Mac0 = *(UINT32*)(gLanMmio[Index] + Offset); - Mac4 = *(UINT32*)(gLanMmio[Index] + Offset + 4); - if (Swab) { - gLanMac[Index][0] = (UINT8)((Mac4 & 0xFF00) >> 8); - gLanMac[Index][1] = (UINT8)(Mac4 & 0xFF); - gLanMac[Index][2] = (UINT8)((Mac0 & 0xFF000000) >> 24); - gLanMac[Index][3] = (UINT8)((Mac0 & 0x00FF0000) >> 16); - gLanMac[Index][4] = (UINT8)((Mac0 & 0x0000FF00) >> 8); - gLanMac[Index][5] = (UINT8)(Mac0 & 0x000000FF); - goto done; - } - copy: - CopyMem(&gLanMac[Index][0], &Mac0, 4); - CopyMem(&gLanMac[Index][4], &Mac4, 2); - - done: - PreviousVendor = gLanVendor[Index]; - DBG("Legacy MAC address of LAN #%llu= ", Index); - HwAddress = &gLanMac[Index][0]; - for (Index2 = 0; Index2 < HwAddressSize; Index2++) { - DBG("%02hhX:", *HwAddress++); - } - DBG("\n"); - - } - } -} diff --git a/rEFIt_UEFI/Platform/Net.h b/rEFIt_UEFI/Platform/Net.h deleted file mode 100644 index e55bef258..000000000 --- a/rEFIt_UEFI/Platform/Net.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Net.h - * - * Created on: 16 Apr 2020 - * Author: jief - */ - -#ifndef PLATFORM_NET_H_ -#define PLATFORM_NET_H_ - - - -void -GetMacAddress(void); - -extern UINTN nLanCards; // number of LAN cards -extern UINT16 gLanVendor[4]; // their vendors -extern UINT8 *gLanMmio[4]; // their MMIO regions -extern UINT8 gLanMac[4][6]; // their MAC addresses -extern UINTN nLanPaths; // number of UEFI LAN - - -#endif /* PLATFORM_NET_H_ */ diff --git a/rEFIt_UEFI/Platform/Settings.cpp b/rEFIt_UEFI/Platform/Settings.cpp index bff663300..369f6c43b 100755 --- a/rEFIt_UEFI/Platform/Settings.cpp +++ b/rEFIt_UEFI/Platform/Settings.cpp @@ -24,15 +24,16 @@ #include "Net.h" #include "Nvram.h" #include "BootOptions.h" -#include "SelfOem.h" +#include "../Settings/SelfOem.h" #include "ati_reg.h" #include "ati.h" #include "nvidia.h" #include "gma.h" #include "Edid.h" #include "hda.h" -#include "../../Version.h" #include "../entry_scan/bootscreen.h" +#include "../Settings/ConfigPlist/ConfigPlistClass.h" +#include "../Settings/ConfigManager.h" #ifndef DEBUG_ALL #define DEBUG_SET 1 @@ -72,18 +73,19 @@ XObjArray ACPIPatchedAML; //SYSVARIABLES *SysVariables; CHAR16 *IconFormat = NULL; -TagDict* gConfigDict[NUM_OF_CONFIGS] = {NULL, NULL, NULL}; +//TagDict* gConfigDict[NUM_OF_CONFIGS] = {NULL, NULL, NULL}; SETTINGS_DATA gSettings; -GFX_PROPERTIES gGraphics[4]; //no more then 4 graphics cards -HDA_PROPERTIES gAudios[4]; //no more then 4 Audio Controllers + +//GFX_PROPERTIES gGraphics[4]; //no more then 4 graphics cards +//HDA_PROPERTIES gAudios[4]; //no more then 4 Audio Controllers //SLOT_DEVICE Arpt; EFI_EDID_DISCOVERED_PROTOCOL *EdidDiscovered; //UINT8 *gEDID = NULL; //EFI_GRAPHICS_OUTPUT_PROTOCOL *GraphicsOutput; //UINT16 gCPUtype; -UINTN NGFX = 0; // number of GFX -UINTN NHDA = 0; // number of HDA Devices +//UINTN NGFX = 0; // number of GFX +//UINTN NHDA = 0; // number of HDA Devices XStringWArray ThemeNameArray; @@ -100,7 +102,7 @@ UINT16 gBacklightLevel; //BOOLEAN defDSM; //UINT16 dropDSM; -BOOLEAN ResumeFromCoreStorage; +BOOLEAN ResumeFromCoreStorage = false; //BOOLEAN gRemapSmBiosIsRequire; // QPI @@ -112,67 +114,11 @@ const INTN BCSMargin = 11; // DRIVERS_FLAGS gDriversFlags; //the initializer is not needed for global variables -#ifdef FIRMWARE_REVISION -CONST CHAR16 *gFirmwareRevision = FIRMWARE_REVISION; -CONST CHAR8* gRevisionStr = REVISION_STR; -CONST CHAR8* gFirmwareBuildDate = FIRMWARE_BUILDDATE; -CONST CHAR8* gBuildInfo = BUILDINFOS_STR; -#else -CONST CHAR16 *gFirmwareRevision = L"unknown"; -CONST CHAR8* gRevisionStr = "unknown"; -CONST CHAR8* gFirmwareBuildDate = "unknown"; -CONST CHAR8* gBuildInfo = NULL; -#endif -#ifdef BUILD_ID -const LString8 gBuildId __attribute__((used)) = LString8(BUILD_ID); -const LString8 gBuildIdGrepTag __attribute__((used)) = "CloverBuildIdGrepTag: " BUILD_ID; -#else -const LString8 gBuildId __attribute__((used)) = "unknown"; -const LString8 gBuildIdGrepTag __attribute__((used)) = "CloverBuildIdGrepTag: " "unknown"; -#endif - -// __attribute__((used)) seems to not always work. So, in AboutRefit(), there is a trick to let the compiler thinks it's used. -const LString8 path_independant __attribute__((used)) = "path_independant"; - EMU_VARIABLE_CONTROL_PROTOCOL *gEmuVariableControl = NULL; // global configuration with default values REFIT_CONFIG GlobalConfig; -static struct FIX_CONFIG { const CHAR8* oldName; const CHAR8* newName; UINT32 bitData; } FixesConfig[] = -{ - { "AddDTGP_0001", "AddDTGP", FIX_DTGP }, - { "FixDarwin_0002", "FixDarwin", FIX_WARNING }, - { "FixShutdown_0004", "FixShutdown", FIX_SHUTDOWN }, - { "AddMCHC_0008", "AddMCHC", FIX_MCHC }, - { "FixHPET_0010", "FixHPET", FIX_HPET }, - { "FakeLPC_0020", "FakeLPC", FIX_LPC }, - { "FixIPIC_0040", "FixIPIC", FIX_IPIC }, - { "FixSBUS_0080", "FixSBUS", FIX_SBUS }, - { "FixDisplay_0100", "FixDisplay", FIX_DISPLAY }, - { "FixIDE_0200", "FixIDE", FIX_IDE }, - { "FixSATA_0400", "FixSATA", FIX_SATA }, - { "FixFirewire_0800", "FixFirewire", FIX_FIREWIRE }, - { "FixUSB_1000", "FixUSB", FIX_USB }, - { "FixLAN_2000", "FixLAN", FIX_LAN }, - { "FixAirport_4000", "FixAirport", FIX_WIFI }, - { "FixHDA_8000", "FixHDA", FIX_HDA }, - { "FixDarwin7_10000", "FixDarwin7", FIX_DARWIN }, - { "FIX_RTC_20000", "FixRTC", FIX_RTC }, - { "FIX_TMR_40000", "FixTMR", FIX_TMR }, - { "AddIMEI_80000", "AddIMEI", FIX_IMEI }, - { "FIX_INTELGFX_100000", "FixIntelGfx", FIX_INTELGFX }, - { "FIX_WAK_200000", "FixWAK", FIX_WAK }, - { "DeleteUnused_400000", "DeleteUnused", FIX_UNUSED }, - { "FIX_ADP1_800000", "FixADP1", FIX_ADP1 }, - { "AddPNLF_1000000", "AddPNLF", FIX_PNLF }, - { "FIX_S3D_2000000", "FixS3D", FIX_S3D }, - { "FIX_ACST_4000000", "FixACST", FIX_ACST }, - { "AddHDMI_8000000", "AddHDMI", FIX_HDMI }, - { "FixRegions_10000000", "FixRegions", FIX_REGIONS }, - { "FixHeaders_20000000", "FixHeaders", FIX_HEADERS }, - { NULL, "FixMutex", FIX_MUTEX } -}; CONST CHAR8* AudioOutputNames[] = { @@ -189,6 +135,7 @@ const XString8 defaultInstallTitle = "Install macOS"_XS8; const XString8 defaultRecoveryTitle = "Recovery"_XS8; const XStringW defaultRecoveryImagePath = L"mac"_XSW; const XStringW defaultRecoveryDriveImagePath = L"mac"_XSW; +const SETTINGS_DATA::SmbiosClass::SlotDeviceClass SETTINGS_DATA::SmbiosClass::SlotDeviceClass::NullSlotDevice; CUSTOM_LOADER_ENTRY::CUSTOM_LOADER_ENTRY(const CUSTOM_LOADER_ENTRY_SETTINGS& _settings) : settings(_settings) { @@ -289,154 +236,6 @@ bool SETTINGS_DATA::GUIClass::getDarkEmbedded(bool isDaylight) const { - - - -EFI_STATUS -SaveSettings (); - -// -//ACPI_NAME_LIST * -//ParseACPIName(const XString8& String) -//{ -// ACPI_NAME_LIST* List = NULL; -// ACPI_NAME_LIST* Next = NULL; -// INTN i, j, Len, pos0, pos1; -// Len = String.length(); -// // DBG("parse ACPI name: %s\n", String); -// if (Len > 0) { -// //Parse forward but put in stack LIFO "_SB.PCI0.RP02.PXSX" -1,3,8,13,18 -// pos0 = -1; -// while (pos0 < Len) { -// List = (__typeof__(List))AllocateZeroPool(sizeof(ACPI_NAME_LIST)); -// List->Next = Next; -// List->Name = (__typeof__(List->Name))AllocateZeroPool(5); -// pos1 = pos0 + 1; -// while ((pos1 < Len) && String[pos1] != '.') pos1++; // 3,8,13,18 -// // if ((pos1 == Len) || (String[pos1] == ',')) { //always -// for (i = pos0 + 1, j = 0; i < pos1; i++) { -// List->Name[j++] = String.data()[i]; // String[i] return a char32_t. what if there is an utf8 char ? -// // Jief : if it's an utf8 multibytes char, it'll be properly converted to the corresponding UTF32 char. -// // So this is an unsafe downcast ! -// // Plus : this can write more than 5 bytes in List->Name !! -// } -// // extend by '_' up to 4 symbols -// if (j < 4) { -// SetMem(List->Name + j, 4 - j, '_'); -// } -// List->Name[4] = '\0'; -// // } -// // DBG("string between [%d,%d]: %s\n", pos0, pos1, List->Name); -// pos0 = pos1; //comma or zero@end -// Next = List; -// } -// } -// return List; -//} - -void -ParseLoadOptions ( - OUT XStringW* ConfNamePtr, - OUT TagDict** Dict - ) -{ - CHAR8 *End; - CHAR8 *Start; - UINTN TailSize; - UINTN i; - CONST CHAR8 *PlistStrings[] = - { - "", - "\0" - }; - - UINTN PlistStringsLen; - *Dict = NULL; - - XStringW& ConfName = *ConfNamePtr; - - Start = (CHAR8*)self.getSelfLoadedImage().LoadOptions; - End = (CHAR8*)((CHAR8*)self.getSelfLoadedImage().LoadOptions + self.getSelfLoadedImage().LoadOptionsSize); - while ((Start < End) && ((*Start == ' ') || (*Start == '\\') || (*Start == '/'))) - { - ++Start; - } - - TailSize = End - Start; - //DBG("TailSize = %d\n", TailSize); - - if ((TailSize) <= 0) { - return; - } - - for (i = 0; PlistStrings[i][0] != '\0'; i++) { - PlistStringsLen = AsciiStrLen(PlistStrings[i]); - //DBG("PlistStrings[%d] = %s\n", i, PlistStrings[i]); - if (PlistStringsLen < TailSize) { - if (AsciiStriNCmp(PlistStrings[i], Start, PlistStringsLen)) { - DBG(" - found plist string = %s, parse XML in LoadOptions\n", PlistStrings[i]); - if (ParseXML(Start, Dict, TailSize) != EFI_SUCCESS) { - *Dict = NULL; - DBG(" - [!] xml in load options is bad\n"); - return; - } - return; - } - } - } - - while ((End > Start) && ((*End == ' ') || (*End == '\\') || (*End == '/'))) { - --End; - } - - TailSize = End - Start; - // DBG("TailSize2 = %d\n", TailSize); - - if (TailSize > 6) { - if (AsciiStriNCmp(".plist", End - 6, 6)) { - End -= 6; - TailSize -= 6; - // DBG("TailSize3 = %d\n", TailSize); - } - } else if (TailSize <= 0) { - return; - } - - ConfName.strncpy(Start, TailSize + 1); -} - - -// -// analyze self.getSelfLoadedImage().LoadOptions to extract Default Volume and Default Loader -// input and output data are global -// -void -GetBootFromOption(void) -{ - UINT8 *Data = (UINT8*)self.getSelfLoadedImage().LoadOptions; - UINTN Len = self.getSelfLoadedImage().LoadOptionsSize; - UINTN NameSize, Name2Size; - - Data += 4; //skip signature as we already here - NameSize = *(UINT16*)Data; - - Data += 2; // pointer to Volume name - gSettings.Boot.DefaultVolume.strncpy((__typeof__(gSettings.Boot.DefaultVolume.wc_str()))Data, NameSize); - - Data += NameSize; - Name2Size = Len - NameSize; - if (Name2Size != 0) { - gSettings.Boot.DefaultLoader.strncpy((__typeof__(gSettings.Boot.DefaultVolume.wc_str()))Data, NameSize); - } - - DBG("Clover started with option to boot %ls from %ls\n", - gSettings.Boot.DefaultLoader.notEmpty() ? gSettings.Boot.DefaultLoader.wc_str() : L"legacy", - gSettings.Boot.DefaultVolume.wc_str()); -} - // // check if this entry corresponds to Boot# variable and then set BootCurrent // @@ -545,6309 +344,599 @@ SetBootCurrent(REFIT_MENU_ITEM_BOOTNUM *Entry) } -// -// returns binary setting in a new allocated buffer and data length in dataLen. -// data can be specified in base64 encoded -// or in hex encoded -// -UINT8 -*GetDataSetting ( - IN const TagDict* Dict, - IN CONST CHAR8 *PropName, - OUT UINTN *DataLen - ) -{ - const TagStruct* Prop; - UINT8 *Data = NULL; - Prop = Dict->propertyForKey(PropName); - if (Prop != NULL) { - if (Prop->isData() /*&& Prop->dataLen > 0*/) { //rehabman: allow zero length data - // data property - Data = (__typeof__(Data))AllocateZeroPool(Prop->getData()->dataLenValue()); - CopyMem(Data, Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); - if (DataLen != NULL) *DataLen = Prop->getData()->dataLenValue(); - /* - DBG("Data: %p, Len: %d = ", Data, Prop->dataLen); - for (i = 0; i < Prop->dataLen; i++) { - DBG("%02hhX ", Data[i]); - } - DBG("\n"); - */ - } else if ( Prop->isString() ) { - // assume data in hex encoded string property - size_t Len = (UINT32)Prop->getString()->stringValue().length() >> 1; // number of hex digits - Data = (__typeof__(Data))AllocateZeroPool(Len); // 2 chars per byte, one more byte for odd number - Len = hex2bin(Prop->getString()->stringValue(), Data, Len); - - if (DataLen != NULL) *DataLen = Len; - /* - DBG("Data(str): %p, Len: %d = ", data, len); - for (i = 0; i < Len; i++) { - DBG("%02hhX ", data[i]); - } - DBG("\n"); - */ - } else { - MsgLog("ATTENTION : PropName '%s' is not data or string. Ignored", PropName); - if (DataLen != NULL) *DataLen = 0; - } - }else{ - if (DataLen != NULL) *DataLen = 0; - } - return Data; -} - -EFI_STATUS -LoadUserSettings ( - IN const XStringW& ConfName, - TagDict** Dict) -{ - EFI_STATUS Status = EFI_NOT_FOUND; - UINTN Size = 0; - CHAR8* ConfigPtr = NULL; -// XStringW ConfigPlistPath; -// XStringW ConfigOemPath; - - // DbgHeader("LoadUserSettings"); - - // load config - if ( ConfName.isEmpty() || Dict == NULL ) { - return EFI_NOT_FOUND; - } - -// ConfigPlistPath = SWPrintf("%ls.plist", ConfName.wc_str()); -// ConfigOemPath = SWPrintf("%ls\\%ls.plist", selfOem.getOOEMPath.wc_str(), ConfName.wc_str()); - Status = EFI_NOT_FOUND; - XStringW configFilename = SWPrintf("%ls.plist", ConfName.wc_str()); - if ( selfOem.oemDirExists() ) { - if (FileExists (&selfOem.getOemDir(), configFilename)) { - Status = egLoadFile(&selfOem.getOemDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); - if (EFI_ERROR(Status)) { - DBG("Cannot find %ls at path (%s): '%ls', trying '%ls'\n", configFilename.wc_str(), efiStrError(Status), selfOem.getOemFullPath().wc_str(), self.getCloverDirFullPath().wc_str()); - }else{ - DBG("Using %ls at path: %ls\n", configFilename.wc_str(), selfOem.getOemFullPath().wc_str()); - } - } - } - if (EFI_ERROR(Status)) { - if ( FileExists(&self.getCloverDir(), configFilename.wc_str())) { - Status = egLoadFile(&self.getCloverDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); - } - if (EFI_ERROR(Status)) { - DBG("Cannot find %ls at path '%ls' : %s\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str(), efiStrError(Status)); - } else { - DBG("Using %ls at path: %ls\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str()); - } - } - - if (!EFI_ERROR(Status) && ConfigPtr != NULL) { - Status = ParseXML((const CHAR8*)ConfigPtr, Dict, Size); - if (EFI_ERROR(Status)) { - // Dict = NULL; - DBG("config.plist parse error Status=%s\n", efiStrError(Status)); - return Status; - } - } - // free configPtr ? - return Status; -} - -//STATIC BOOLEAN AddCustomLoaderEntry(IN CUSTOM_LOADER_ENTRY *Entry) -//{ -// if (Entry == NULL) return FALSE; -// gSettings.GUI.CustomEntries.AddReference(Entry, true); -// return TRUE; -//} - -//STATIC BOOLEAN AddCustomLegacyEntry (IN CUSTOM_LEGACY_ENTRY_SETTINGS *Entry) -//{ -// if (Entry == NULL) return FALSE; -// gSettings.GUI.CustomLegacy.AddReference(Entry, true); -// return TRUE; -//} -//STATIC -//BOOLEAN -//AddCustomToolEntry ( -// IN CUSTOM_TOOL_ENTRY *Entry -// ) -//{ -// if (Entry == NULL) return FALSE; -// gSettings.GUI.CustomTool.AddReference(Entry, true); -// return TRUE; -//} - -//STATIC -//BOOLEAN -//AddCustomSubEntry ( -// IN OUT CUSTOM_LOADER_ENTRY *Entry, -// IN CUSTOM_LOADER_ENTRY *SubEntry) -//{ -// if ((Entry == NULL) || (SubEntry == NULL)) return FALSE; -// Entry->SubEntries.AddReference(Entry, true); -// return TRUE; -//} - -// -//STATIC -//CUSTOM_LOADER_SUBENTRY_SETTINGS -//*DuplicateCustomEntryToSubEntry ( -// IN CUSTOM_LOADER_ENTRY_SETTINGS *Entry -// ) -//{ -// if (Entry == NULL) { -// return NULL; -// } -// -// CUSTOM_LOADER_SUBENTRY_SETTINGS* DuplicateEntry = new CUSTOM_LOADER_SUBENTRY_SETTINGS; -// if (DuplicateEntry != NULL) { -//// DuplicateEntry->Volume = Entry->Volume; //ok -//// DuplicateEntry->Path = Entry->Path; //ok -//// DuplicateEntry->LoadOptions = Entry->LoadOptions; -// DuplicateEntry->FullTitle = Entry->FullTitle; //ok -// DuplicateEntry->Title = Entry->Title; //ok -//// DuplicateEntry->ImagePath = Entry->ImagePath; //ok -//// DuplicateEntry->BootBgColor = Entry->BootBgColor; //ok -//// DuplicateEntry->Image = Entry->Image; -//// DuplicateEntry->Hotkey = Entry->Hotkey; //ok -//// DuplicateEntry->Flags = Entry->Flags; -//// DuplicateEntry->Type = Entry->Type; //ok -//// DuplicateEntry->VolumeType = Entry->VolumeType; //ok -//// DuplicateEntry->KernelScan = Entry->KernelScan; //ok -//// DuplicateEntry->CustomLogoType = Entry->CustomLogoType; -//// DuplicateEntry->CustomLogoAsXString8 = Entry->CustomLogoAsXString8; //ok -//// DuplicateEntry->CustomLogoAsData = Entry->CustomLogoAsData; //ok -//// DuplicateEntry->CustomLogoImage = Entry->CustomLogoImage; -//// DuplicateEntry->KernelAndKextPatches = Entry->KernelAndKextPatches; -// } -// -// return DuplicateEntry; -//} - -STATIC -BOOLEAN -FillinKextPatches (IN OUT KERNEL_AND_KEXT_PATCHES *Patches, - const TagDict* DictPointer) -{ - const TagStruct* Prop; - const TagArray* arrayProp; - // UINTN i; - - if (Patches == NULL || DictPointer == NULL) { - return FALSE; - } - -// Prop = DictPointer->propertyForKey("OcFuzzyMatch"); -//if ( Prop ) panic("config.plist/KernelAndKextPatches/OcFuzzyMatch has been moved in section config.plist/Quirks. Update your config.plist"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->FuzzyMatch = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = DictPointer->propertyForKey("OcKernelCache"); -//if ( Prop ) panic("config.plist/KernelAndKextPatches/OcKernelCache has been moved in section config.plist/Quirks. Update your config.plist"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// if ( Prop->isString() ) { -// if ( Prop->getString()->stringValue().notEmpty() ) { -// Patches->OcKernelCache = Prop->getString()->stringValue(); -// }else{ -// Patches->OcKernelCache = "Auto"_XS8; -// } -// }else{ -// MsgLog("MALFORMED PLIST : KernelAndKextPatches/KernelCache must be a string"); -// Patches->OcKernelCache = "Auto"_XS8; -// } -// } - - { -// const TagDict* OcQuirksDict = DictPointer->dictPropertyForKey("OcQuirks"); -//if ( OcQuirksDict ) panic("config.plist/KernelAndKextPatches/OcQuirks has been merged in the config.plist/Quirks section. Update your config.plist"); -// if ( OcQuirksDict ) -// { -// Prop = OcQuirksDict->propertyForKey("AppleCpuPmCfgLock"); -//if ( !Prop ) panic("Cannot find AppleCpuPmCfgLock in OcQuirks under KernelAndKextPatches (OC kernel quirks)"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.AppleCpuPmCfgLock = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("AppleXcpmCfgLock"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.AppleXcpmCfgLock = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("AppleXcpmExtraMsrs"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.AppleXcpmExtraMsrs = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("AppleXcpmForceBoost"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.AppleXcpmForceBoost = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("CustomSMBIOSGuid"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.CustomSmbiosGuid = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("DisableIoMapper"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.DisableIoMapper = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("DisableLinkeditJettison"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.DisableLinkeditJettison = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("DisableRtcChecksum"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.DisableRtcChecksum = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("DummyPowerManagement"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.DummyPowerManagement = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("ExternalDiskIcons"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.ExternalDiskIcons = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("IncreasePciBarSize"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.IncreasePciBarSize = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("LapicKernelPanic"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.LapicKernelPanic = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("PanicNoKextDump"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.PanicNoKextDump = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("PowerTimeoutKernelPanic"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.PowerTimeoutKernelPanic = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("ThirdPartyDrives"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.ThirdPartyDrives = IsPropertyNotNullAndTrue(Prop); -// } -// -// Prop = OcQuirksDict->propertyForKey("XhciPortLimit"); -// if (Prop != NULL || GlobalConfig.gBootChanged) { -// Patches->OcKernelQuirks.XhciPortLimit = IsPropertyNotNullAndTrue(Prop); -// } -// } - } - - Prop = DictPointer->propertyForKey("Debug"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPDebug = IsPropertyNotNullAndTrue(Prop); - } /* - Prop = GetProperty(DictPointer, "KernelCpu"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPKernelCpu = IsPropertyTrue(Prop); - } -*/ - Prop = DictPointer->propertyForKey("KernelLapic"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPKernelLapic = IsPropertyNotNullAndTrue(Prop); - } + * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global + * and is passed by non-const reference. + * This temporary during the refactoring + * All code from this comes from settings.cpp. I am taking out all the init code from settings.cpp so I can replace the reading layer. + */ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wshadow" +void afterGetUserSettings(SETTINGS_DATA& gSettings) +{ +#pragma GCC diagnostic pop - Prop = DictPointer->propertyForKey("KernelXCPM"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPKernelXCPM = IsPropertyNotNullAndTrue(Prop); - if (IsPropertyNotNullAndTrue(Prop)) { - DBG("KernelXCPM: enabled\n"); - } - } - - Prop = DictPointer->propertyForKey("KernelPm"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->_KPKernelPm = IsPropertyNotNullAndTrue(Prop); - } - - Prop = DictPointer->propertyForKey("PanicNoKextDump"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPPanicNoKextDump = IsPropertyNotNullAndTrue(Prop); - } - - Prop = DictPointer->propertyForKey("AppleIntelCPUPM"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->_KPAppleIntelCPUPM = IsPropertyNotNullAndTrue(Prop); - } -// //anyway -// if (GlobalConfig.NeedPMfix) { -// Patches->KPKernelPm = TRUE; -// Patches->KPAppleIntelCPUPM = TRUE; -// } - - Prop = DictPointer->propertyForKey("AppleRTC"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->KPAppleRTC = !IsPropertyNotNullAndFalse(Prop); //default = TRUE - } - - Prop = DictPointer->propertyForKey("EightApple"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->EightApple = IsPropertyNotNullAndTrue(Prop); - } - - // - // Dell SMBIOS Patch - // - // syscl: we do not need GlobalConfig.gBootChanged and Prop is empty condition - // this change will boost Dell SMBIOS Patch a bit - // but the major target is to make code clean - Prop = DictPointer->propertyForKey("DellSMBIOSPatch"); - Patches->KPDELLSMBIOS = IsPropertyNotNullAndTrue(Prop); // default == FALSE -// gRemapSmBiosIsRequire = Patches->KPDELLSMBIOS; - - Prop = DictPointer->propertyForKey("FakeCPUID"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - Patches->FakeCPUID = (UINT32)GetPropertyAsInteger(Prop, 0); - DBG("FakeCPUID: %X\n", Patches->FakeCPUID); - } - - Prop = DictPointer->propertyForKey("ATIConnectorsController"); - if ( Prop != NULL && Prop->isString() ) { - UINTN len = 0, i=0; - - // ATIConnectors patch - Patches->KPATIConnectorsController = Prop->getString()->stringValue(); - - UINT8* p = GetDataSetting (DictPointer, "ATIConnectorsData", &len); - Patches->KPATIConnectorsData.stealValueFrom(p, len); - p = GetDataSetting (DictPointer, "ATIConnectorsPatch", &i); - Patches->KPATIConnectorsPatch.stealValueFrom(p, i); - - if (Patches->KPATIConnectorsData.isEmpty() - || Patches->KPATIConnectorsPatch.isEmpty() - || Patches->KPATIConnectorsData.size() != Patches->KPATIConnectorsPatch.size()) { - // invalid params - no patching - DBG("ATIConnectors patch: invalid parameters!\n"); - - Patches->KPATIConnectorsController.setEmpty(); - Patches->KPATIConnectorsData.setEmpty(); - Patches->KPATIConnectorsPatch.setEmpty(); - } - } - - /* - * ForceKextsToLoad is an array of string + // Secure boot + /* this parameter, which should be called SecureBootSetupMode, is ignored if : + * it is true + * SecureBoot is already true. */ - arrayProp = DictPointer->arrayPropertyForKey("ForceKextsToLoad"); - if ( arrayProp != NULL ) { - INTN i; - INTN Count = arrayProp->arrayContent().size(); - if (Count > 0) { - const TagStruct* Prop2 = NULL; + if ( gSettings.Boot.SecureSetting == 0 ) { + // Only disable setup mode, we want always secure boot + GlobalConfig.SecureBootSetupMode = 0; + } else if ( gSettings.Boot.SecureSetting == 1 && !GlobalConfig.SecureBoot ) { + // This mode will force boot policy even when no secure boot or it is disabled + GlobalConfig.SecureBootSetupMode = 1; + GlobalConfig.SecureBoot = 1; + } - DBG("ForceKextsToLoad: %lld requested\n", Count); - for (i = 0; i < Count; i++) { - Prop2 = &arrayProp->arrayContent()[i]; - if ( !Prop2->isString() ) { - MsgLog("ATTENTION : property not string in ForceKextsToLoad\n"); - continue; - } - - if ( Prop2->getString()->stringValue().notEmpty() && Prop2->getString()->stringValue() != "\\"_XS8 ) { - Patches->ForceKextsToLoad.Add(Prop2->getString()->stringValue()); - DBG(" - [%zu]: %ls\n", Patches->ForceKextsToLoad.size(), Patches->ForceKextsToLoad[Patches->ForceKextsToLoad.size()-1].wc_str()); + //set to drop + GlobalConfig.DropSSDT = gSettings.ACPI.SSDT.DropSSDTSetting; + if (GlobalConfig.ACPIDropTables) { + for ( size_t idx = 0 ; idx < gSettings.ACPI.ACPIDropTablesArray.size() ; ++idx) + { + ACPI_DROP_TABLE *DropTable = GlobalConfig.ACPIDropTables; + DBG(" - [%02zd]: Drop table : %08X, %16llx : ", idx, gSettings.ACPI.ACPIDropTablesArray[idx].Signature, gSettings.ACPI.ACPIDropTablesArray[idx].TableId); + bool Dropped = FALSE; + while (DropTable) { + if (((gSettings.ACPI.ACPIDropTablesArray[idx].Signature == DropTable->Signature) && + (!gSettings.ACPI.ACPIDropTablesArray[idx].TableId || (DropTable->TableId == gSettings.ACPI.ACPIDropTablesArray[idx].TableId)) && + (!gSettings.ACPI.ACPIDropTablesArray[idx].TabLength || (DropTable->Length == gSettings.ACPI.ACPIDropTablesArray[idx].TabLength))) || + (!gSettings.ACPI.ACPIDropTablesArray[idx].Signature && (DropTable->TableId == gSettings.ACPI.ACPIDropTablesArray[idx].TableId))) { + DropTable->MenuItem.BValue = TRUE; + DropTable->OtherOS = gSettings.ACPI.ACPIDropTablesArray[idx].OtherOS; + GlobalConfig.DropSSDT = FALSE; // if one item=true then dropAll=false by default + //DBG(" true"); + Dropped = TRUE; } + DropTable = DropTable->Next; } - } - } - - // KextsToPatch is an array of dict - arrayProp = DictPointer->arrayPropertyForKey("KextsToPatch"); - if (arrayProp != NULL) { - INTN Count = arrayProp->arrayContent().size(); - Patches->KextPatches.setEmpty(); - - if (Count > 0) { - const TagDict* Prop2 = NULL; - const TagStruct* Dict = NULL; - - DBG("KextsToPatch: %lld requested\n", Count); - for (INTN i = 0; i < Count; i++) { - UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; - Prop2 = arrayProp->dictElementAt(i); - if ( !Prop2->isDict() ) { - MsgLog("ATTENTION : property not dict in KextsToPatch\n"); - continue; - } - DBG(" - [%02lld]:", i); - - Dict = Prop2->propertyForKey("Name"); - if (Dict == NULL) { - DBG(" patch without Name, skipped\n"); - continue; - } - if ( !Dict->isString() ) { - MsgLog("ATTENTION : Name property not string in KextsToPatch\n"); - continue; - } - - KEXT_PATCH* newKextPatchPtr = new KEXT_PATCH(); - KEXT_PATCH& newKextPatch = *newKextPatchPtr; - - newKextPatch.Name = Dict->getString()->stringValue(); - newKextPatch.Label.takeValueFrom(newKextPatch.Name); - - Dict = Prop2->propertyForKey("Comment"); - if (Dict != NULL) { - newKextPatch.Label += " ("; - newKextPatch.Label += Dict->getString()->stringValue(); - newKextPatch.Label += ")"; - - } else { - newKextPatch.Label += " (NoLabel)"; - } - DBG(" %s", newKextPatch.Label.c_str()); - - // newPatch.MenuItem.BValue = TRUE; - Dict = Prop2->propertyForKey("Disabled"); - newKextPatch.Disabled = IsPropertyNotNullAndTrue(Dict); //if absent then false, BValue = !Disabled - newKextPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(Dict); //if absent then false, BValue = !Disabled - - // if ((Dict != NULL) && IsPropertyNotNullAndTrue(Dict)) { - // newPatch.MenuItem.BValue = FALSE; - // } - - - Dict = Prop2->propertyForKey("RangeFind"); - newKextPatch.SearchLen = GetPropertyAsInteger(Dict, 0); //default 0 will be calculated later - - Dict = Prop2->propertyForKey("Skip"); - newKextPatch.Skip = GetPropertyAsInteger(Dict, 0); //default 0 will be calculated later - - UINT8* TmpData = GetDataSetting(Prop2, "StartPattern", &FindLen); - if (TmpData != NULL) { - newKextPatch.StartPattern.stealValueFrom(TmpData, FindLen); - } - - TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); - ReplaceLen = MIN(ReplaceLen, FindLen); - if (FindLen != 0) { - if (TmpData != NULL) newKextPatch.StartMask.ncpy(TmpData, ReplaceLen); // KextsToPatch - newKextPatch.StartMask.setSize(FindLen, 0xFF); - } - if (TmpData != NULL) { - FreePool(TmpData); - } - - TmpData = GetDataSetting (Prop2, "Find", &FindLen); - UINT8* TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); - - if (!FindLen || !ReplaceLen) { - DBG(" - invalid Find/Replace data - skipping!\n"); - continue; - } - - Dict = Prop2->propertyForKey("Procedure"); - if ( Dict != NULL ) { - if ( Dict->isString() ) { - newKextPatch.ProcedureName = Dict->getString()->stringValue(); - }else{ - MsgLog("ATTENTION : Procedure property not string in KextsToPatch\n"); - } - } - - - newKextPatch.Find.stealValueFrom(TmpData, FindLen); - - TmpData = GetDataSetting (Prop2, "MaskFind", &MaskLen); - MaskLen = (MaskLen > FindLen)? FindLen : MaskLen; - - if (TmpData == NULL || MaskLen == 0) { - } else { - newKextPatch.MaskFind.ncpy(TmpData, MaskLen); - newKextPatch.MaskFind.setSize(FindLen, 0xFF); - } - FreePool(TmpData); - // take into account a possibility to set ReplaceLen < FindLen. In this case assumes MaskReplace = 0 for the rest of bytes - ReplaceLen = MIN(ReplaceLen, FindLen); - newKextPatch.Replace.ncpy(TmpPatch, ReplaceLen); - newKextPatch.Replace.setSize(FindLen, 0); - FreePool(TmpPatch); - - MaskLen = 0; - TmpData = GetDataSetting (Prop2, "MaskReplace", &MaskLen); - MaskLen = MIN(ReplaceLen, MaskLen); - if (TmpData == NULL || MaskLen == 0) { - } else { - newKextPatch.MaskReplace.ncpy(TmpData, MaskLen); //other bytes are zeros, means no replace - newKextPatch.MaskReplace.setSize(FindLen, 0); - } - FreePool(TmpData); - - newKextPatch.Count = 1; - Dict = Prop2->propertyForKey("Count"); - if (Dict != NULL) { - newKextPatch.Count = GetPropertyAsInteger(Dict, 1); - } - - // check enable/disabled patch (OS based) by Micky1979 - Dict = Prop2->propertyForKey("MatchOS"); - if ((Dict != NULL) && (Dict->isString())) { - newKextPatch.MatchOS = Dict->getString()->stringValue(); - DBG(" :: MatchOS: %s", newKextPatch.MatchOS.c_str()); - } - - Dict = Prop2->propertyForKey("MatchBuild"); - if ((Dict != NULL) && (Dict->isString())) { - newKextPatch.MatchBuild = Dict->getString()->stringValue(); - DBG(" :: MatchBuild: %s", newKextPatch.MatchBuild.c_str()); - } - - // check if this is Info.plist patch or kext binary patch - Dict = Prop2->propertyForKey("InfoPlistPatch"); - newKextPatch.IsPlistPatch = IsPropertyNotNullAndTrue(Dict); - - if (newKextPatch.IsPlistPatch) { - DBG(" :: PlistPatch"); - } else { - DBG(" :: BinPatch"); - } - - DBG(" :: data len: %zu\n", newKextPatch.Find.size()); - if (!newKextPatch.MenuItem.BValue) { - DBG(" patch disabled at config\n"); - } - Patches->KextPatches.AddReference(newKextPatchPtr, true); - } - } - - //gSettings.NrKexts = (INT32)i; - //there is one moment. This data is allocated in BS memory but will be used - // after OnExitBootServices. This is wrong and these arrays should be reallocated - // but I am not sure - } - - /* - * KernelToPatch is an array of dict - */ - arrayProp = DictPointer->arrayPropertyForKey("KernelToPatch"); - if (arrayProp != NULL) { - INTN i; - INTN Count = arrayProp->arrayContent().size(); - //delete old and create new - Patches->KernelPatches.setEmpty(); - if (Count > 0) { - const TagDict* Prop2 = NULL; - const TagStruct* prop3 = NULL; - DBG("KernelToPatch: %lld requested\n", Count); - for (i = 0; i < Count; i++) { - UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; - UINT8 *TmpData, *TmpPatch; - - Prop2 = arrayProp->dictElementAt(i, "KernelToPatch"_XS8); - - DBG(" - [%02lld]:", i); - - KERNEL_PATCH* newKernelPatchPtr = new KERNEL_PATCH; - KERNEL_PATCH& newKernelPatch = *newKernelPatchPtr; - - newKernelPatch.Label = "NoLabel"_XS8; - prop3 = Prop2->propertyForKey("Comment"); - if (prop3 != NULL) { - if ( prop3->isString() ) { - newKernelPatch.Label = prop3->getString()->stringValue(); - }else{ - MsgLog("ATTENTION : Comment property not string in KernelToPatch\n"); - } - } - DBG(" %s", newKernelPatch.Label.c_str()); - -// newKernelPatch.Name = "kernel"_XS8; - - prop3 = Prop2->propertyForKey("Disabled"); - newKernelPatch.Disabled = IsPropertyNotNullAndTrue(prop3); - newKernelPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(prop3); - - prop3 = Prop2->propertyForKey("RangeFind"); - newKernelPatch.SearchLen = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later - - prop3 = Prop2->propertyForKey("Skip"); - newKernelPatch.Skip = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later - - TmpData = GetDataSetting (Prop2, "StartPattern", &FindLen); - if (TmpData != NULL) { - newKernelPatch.StartPattern.stealValueFrom(TmpData, FindLen); - } - - TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); - ReplaceLen = MIN(ReplaceLen, FindLen); - if (FindLen != 0) { - if (TmpData != NULL) newKernelPatch.StartMask.ncpy(TmpData, ReplaceLen); // KernelToPatch - newKernelPatch.StartMask.setSize(FindLen, 0xFF); - } - if (TmpData != NULL) { - FreePool(TmpData); - } - - - TmpData = GetDataSetting (Prop2, "Find", &FindLen); - TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); -//replace len can be smaller if mask using - if (!FindLen || !ReplaceLen /*|| (FindLen != ReplaceLen)*/) { - DBG(" :: invalid Find/Replace data - skipping!\n"); - continue; - } - - prop3 = Prop2->propertyForKey("Procedure"); - if (prop3 != NULL) { - if ( prop3->isString() ) { - newKernelPatch.ProcedureName = prop3->getString()->stringValue(); - }else{ - MsgLog("ATTENTION : Procedure property not string in KernelToPatch\n"); - } - } - - - newKernelPatch.Find.stealValueFrom(TmpData, FindLen); - - TmpData = GetDataSetting (Prop2, "MaskFind", &MaskLen); - MaskLen = (MaskLen > FindLen)? FindLen : MaskLen; - if (TmpData == NULL || MaskLen == 0) { - } else { - newKernelPatch.MaskFind.ncpy(TmpData, MaskLen); - newKernelPatch.MaskFind.setSize(FindLen, 0xFF); - } - FreePool(TmpData); - // this is "Replace" string len of ReplaceLen - ReplaceLen = MIN(ReplaceLen, FindLen); - newKernelPatch.Replace.ncpy(TmpPatch, ReplaceLen); - newKernelPatch.Replace.setSize(FindLen, 0); - FreePool(TmpPatch); - MaskLen = 0; - TmpData = GetDataSetting (Prop2, "MaskReplace", &MaskLen); //reuse MaskLen - MaskLen = MIN(ReplaceLen, MaskLen); - if (TmpData == NULL || MaskLen == 0) { - } else { - newKernelPatch.MaskReplace.ncpy(TmpData, MaskLen); - newKernelPatch.MaskReplace.setSize(FindLen, 0); - } - FreePool(TmpData); - newKernelPatch.Count = 0; - - prop3 = Prop2->propertyForKey("Count"); - if (prop3 != NULL) { - newKernelPatch.Count = GetPropertyAsInteger(prop3, 0); - } - - // check enable/disabled patch (OS based) by Micky1979 - prop3 = Prop2->propertyForKey("MatchOS"); - if ((prop3 != NULL) && (prop3->isString())) { - newKernelPatch.MatchOS = prop3->getString()->stringValue(); - DBG(" :: MatchOS: %s", newKernelPatch.MatchOS.c_str()); - } - - prop3 = Prop2->propertyForKey("MatchBuild"); - if ((prop3 != NULL) && (prop3->isString())) { - newKernelPatch.MatchBuild = prop3->getString()->stringValue(); - DBG(" :: MatchBuild: %s", newKernelPatch.MatchBuild.c_str()); - } - DBG(" :: data len: %zu\n", newKernelPatch.Find.size()); - Patches->KernelPatches.AddReference(newKernelPatchPtr, true); - } - } - } - - /* - * BootPatches is an array of dict - */ - arrayProp = DictPointer->arrayPropertyForKey("BootPatches"); - if (arrayProp != NULL) { - INTN i; - INTN Count = arrayProp->arrayContent().size(); - //delete old and create new - Patches->BootPatches.setEmpty(); - if (Count > 0) { - const TagDict* Prop2 = NULL; - const TagStruct* prop3 = NULL; - - DBG("BootPatches: %lld requested\n", Count); - for (i = 0; i < Count; i++) { - UINTN FindLen = 0, ReplaceLen = 0, MaskLen = 0; - UINT8 *TmpData, *TmpPatch; - - Prop2 = arrayProp->dictElementAt(i, "BootPatches"_XS8); - - DBG(" - [%02lld]:", i); - - BOOT_PATCH* newBootPatchPtr = new BOOT_PATCH; - BOOT_PATCH& newBootPatch = *newBootPatchPtr; - - newBootPatch.Label = "NoLabel"_XS8; - prop3 = Prop2->propertyForKey("Comment"); - if (prop3 != NULL) { - if ( prop3->isString() ) { - newBootPatch.Label = prop3->getString()->stringValue(); - }else{ - MsgLog("ATTENTION : Comment property not string in KernelToPatch\n"); - } - } - DBG(" %s", newBootPatch.Label.c_str()); - -// newBootPatch.Name = "boot.efi"_XS8; - - prop3 = Prop2->propertyForKey("Disabled"); - newBootPatch.Disabled = IsPropertyNotNullAndTrue(prop3); - newBootPatch.MenuItem.BValue = !IsPropertyNotNullAndTrue(prop3); - newBootPatch.MenuItem.ItemType = BoolValue; - - prop3 = Prop2->propertyForKey("RangeFind"); - newBootPatch.SearchLen = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later - - prop3 = Prop2->propertyForKey("Skip"); - newBootPatch.Skip = GetPropertyAsInteger(prop3, 0); //default 0 will be calculated later - - TmpData = GetDataSetting (Prop2, "StartPattern", &FindLen); - if (TmpData != NULL) { - newBootPatch.StartPattern.stealValueFrom(TmpData, FindLen); - } - - TmpData = GetDataSetting (Prop2, "MaskStart", &ReplaceLen); - ReplaceLen = MIN(ReplaceLen, FindLen); - if (FindLen != 0) { - if (TmpData != NULL) { - newBootPatch.StartMask.ncpy(TmpData, ReplaceLen); - } - newBootPatch.StartMask.setSize(FindLen, 0xFF); - } - if (TmpData != NULL) { - FreePool(TmpData); - } - - - TmpData = GetDataSetting (Prop2, "Find", &FindLen); - TmpPatch = GetDataSetting (Prop2, "Replace", &ReplaceLen); - if (!FindLen || !ReplaceLen) { - DBG(" :: invalid Find/Replace data - skipping!\n"); - continue; - } - ReplaceLen = MIN(ReplaceLen, FindLen); - newBootPatch.Find.stealValueFrom(TmpData, FindLen); - - MaskLen = 0; - TmpData = GetDataSetting(Prop2, "MaskFind", &MaskLen); - MaskLen = MIN(FindLen, MaskLen); - if (TmpData == NULL || MaskLen == 0) { - } else { - newBootPatch.MaskFind.ncpy(TmpData, MaskLen); - newBootPatch.MaskFind.setSize(FindLen, 0xFF); - } - FreePool(TmpData); - newBootPatch.Replace.ncpy(TmpPatch, ReplaceLen); - newBootPatch.Replace.setSize(FindLen, 0); - FreePool(TmpPatch); - MaskLen = 0; - TmpData = GetDataSetting(Prop2, "MaskReplace", &MaskLen); - MaskLen = MIN(ReplaceLen, MaskLen); - if (TmpData == NULL || MaskLen == 0) { - } else { - newBootPatch.MaskReplace.ncpy(TmpData, MaskLen); - newBootPatch.MaskReplace.setSize(FindLen, 0); - } - FreePool(TmpData); - newBootPatch.Count = 0; - - prop3 = Prop2->propertyForKey("Count"); - if (prop3 != NULL) { - newBootPatch.Count = GetPropertyAsInteger(prop3, 0); - } - - prop3 = Prop2->propertyForKey("MatchOS"); - if ((prop3 != NULL) && (prop3->isString())) { - newBootPatch.MatchOS = prop3->getString()->stringValue(); - DBG(" :: MatchOS: %s", newBootPatch.MatchOS.c_str()); - } - - prop3 = Prop2->propertyForKey("MatchBuild"); - if ((prop3 != NULL) && (prop3->isString())) { - newBootPatch.MatchBuild = prop3->getString()->stringValue(); - DBG(" :: MatchBuild: %s", newBootPatch.MatchBuild.c_str()); - } - - DBG(" :: data len: %zu\n", newBootPatch.Find.size()); - Patches->BootPatches.AddReference(newBootPatchPtr, true); - } - } - } - - - return TRUE; -} - - - - -//BOOLEAN IsOSValid(const XString8& MatchOS, const MacOsVersion& CurrOS) -//{ -// /* example for valid matches are: -// 10.7, only 10.7 (10.7.1 will be skipped) -// 10.10.2 only 10.10.2 (10.10.1 or 10.10.5 will be skipped) -// 10.10.x (or 10.10.X), in this case is valid for all minor version of 10.10 (10.10.(0-9)) -// */ -// -// BOOLEAN ret = FALSE; -// -// if (MatchOS.isEmpty() || CurrOS.isEmpty()) { -// return TRUE; //undefined matched corresponds to old behavior -// } -// -//// osToc = GetStrArraySeparatedByChar(MatchOS, '.'); -// XString8Array osToc = Split(MatchOS, "."_XS8).trimEachString(); -// XString8Array currOStoc = Split(CurrOS, "."_XS8).trimEachString(); -// -// if ( osToc.size() > 0 && currOStoc.size() > 0 && osToc[0] == "11"_XS8 && currOStoc[0] == "11"_XS8 ) { -// if (osToc.size() == 1 ) return true; -// if (osToc.size() == 2 ) { -// if ( osToc[1].isEqualIC("x") ) return true; -// if ( currOStoc.size() == 2 && osToc[1] == currOStoc[1] ) return true; -// } -// } -// if (osToc.size() == 2) { -// if (currOStoc.size() == 2) { -// if ( osToc[0] == currOStoc[0] && osToc[1] == currOStoc[1]) { -// ret = TRUE; -// } -// } -// } else if (osToc.size() == 3) { -// if (currOStoc.size() == 3) { -// if ( osToc[0] == currOStoc[0] -// && osToc[1] == currOStoc[1] -// && osToc[2] == currOStoc[2]) { -// ret = TRUE; -// } else if ( osToc[0] == currOStoc[0] -// && osToc[1] == currOStoc[1] -// && osToc[2].isEqualIC("x") ) { -// ret = TRUE; -// } -// } else if (currOStoc.size() == 2) { -// if ( osToc[0] == currOStoc[0] -// && osToc[1] == currOStoc[1] ) { -// ret = TRUE; -// } else if ( osToc[0] == currOStoc[0] -// && osToc[1] == currOStoc[1] -// && osToc[2].isEqualIC("x") == 0 ) { -// ret = TRUE; -// } -// } -// } -// return ret; -//} - -static UINT8 CheckVolumeType(UINT8 VolumeType, const TagStruct* Prop) -{ - if ( !Prop->isString() ) { - MsgLog("ATTENTION : Prop property not string in CheckVolumeType\n"); - return 0; - } - UINT8 VolumeTypeTmp = VolumeType; - if (Prop->getString()->stringValue().isEqualIC("Internal")) { - VolumeTypeTmp |= VOLTYPE_INTERNAL; - } else if (Prop->getString()->stringValue().isEqualIC("External")) { - VolumeTypeTmp |= VOLTYPE_EXTERNAL; - } else if (Prop->getString()->stringValue().isEqualIC("Optical")) { - VolumeTypeTmp |= VOLTYPE_OPTICAL; - } else if (Prop->getString()->stringValue().isEqualIC("FireWire")) { - VolumeTypeTmp |= VOLTYPE_FIREWIRE; - } - return VolumeTypeTmp; -} - -static UINT8 GetVolumeType(const TagDict* DictPointer) -{ - const TagStruct* Prop; - UINT8 VolumeType = 0; - - Prop = DictPointer->propertyForKey("VolumeType"); - if (Prop != NULL) { - if (Prop->isString()) { - VolumeType = CheckVolumeType(0, Prop); - } else if (Prop->isArray()) { - INTN i; - INTN Count = Prop->getArray()->arrayContent().size(); - if (Count > 0) { - for (i = 0; i < Count; i++) { - const TagStruct* Prop2 = &Prop->getArray()->arrayContent()[i]; - if ( !Prop2->isString() || Prop2->getString()->stringValue().isEmpty() ) { - continue; - } - VolumeType = CheckVolumeType(VolumeType, Prop2); - } - } - } - } - return VolumeType; -} - - - -BOOLEAN -FillinCustomSubEntry ( - UINT8 parentType, - IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, - const TagDict* DictPointer, - IN BOOLEAN SubEntry - ) -{ - const TagStruct* Prop; - - if ( Entry == NULL ) panic("Entry == NULL"); - if ( DictPointer == NULL ) panic("DictPointer == NULL"); - - Prop = DictPointer->propertyForKey("Disabled"); - Entry->Disabled = IsPropertyNotNullAndTrue(Prop); - -// Prop = DictPointer->propertyForKey("Volume"); -// if (Prop != NULL && (Prop->isString())) { -// Entry->Volume = Prop->getString()->stringValue(); -// } - -// Prop = DictPointer->propertyForKey("Path"); -// if (Prop != NULL && (Prop->isString())) { -// Entry->Path = Prop->getString()->stringValue(); -// } - -// Prop = DictPointer->propertyForKey("Settings"); -// if (Prop != NULL && (Prop->isString())) { -// Entry->Settings = Prop->getString()->stringValue(); -// } - -// Prop = DictPointer->propertyForKey("CommonSettings"); -// Entry->CommonSettings = IsPropertyNotNullAndTrue(Prop); - - - Prop = DictPointer->propertyForKey("AddArguments"); - if (Prop != NULL && (Prop->isString())) { -// if (Entry->LoadOptions.notEmpty()) { -// Entry->Options.SPrintf("%s %s", Entry->Options.c_str(), Prop->getString()->stringValue()); -// } else { -// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); -// } - Entry->_AddArguments = Prop->getString()->stringValue(); -// Entry->LoadOptions.import(Split(Prop->getString()->stringValue(), " ")); - } else { - Prop = DictPointer->propertyForKey("Arguments"); - if (Prop != NULL && (Prop->isString())) { -// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); - Entry->_Arguments = Prop->getString()->stringValue(); -// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); - } - } - Prop = DictPointer->propertyForKey("Title"); - if (Prop != NULL && (Prop->isString())) { - Entry->_Title = Prop->getString()->stringValue(); -// Entry->FullTitle.setEmpty(); // jief : erase the copy from the parent - } - Prop = DictPointer->propertyForKey("FullTitle"); - if (Prop != NULL && (Prop->isString())) { - Entry->_FullTitle = Prop->getString()->stringValue(); -// Entry->Title.setEmpty(); // jief : erase the copy from the parent. Could also be the previous settings, but Title is not used when FullTitle exists. - } - -// Entry->ImageData.setEmpty(); -// Prop = DictPointer->propertyForKey("Image"); -// if (Prop != NULL) { -// Entry->ImagePath.setEmpty(); -// Entry->Image.setEmpty(); -// if (Prop->isString()) { -// Entry->ImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); -// } -// // we can't load the file yet, as ThemeDir is not initialized -// } else { -// UINTN DataLen = 0; -// UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); -// if (TmpData) { -// Entry->ImageData.stealValueFrom(TmpData, DataLen); -//// TODO remove from settings -// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { -// Entry->Image.setFilled(); -// } -// } -// } -// -// Prop = DictPointer->propertyForKey("Hotkey"); -// if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { -// if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { -// Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); -// } -// } - -// // Whether or not to draw boot screen -// Prop = DictPointer->propertyForKey("CustomLogo"); -// if (Prop != NULL) { -// if (IsPropertyNotNullAndTrue(Prop)) { -// Entry->CustomLogoType = CUSTOM_BOOT_APPLE; -// } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { -// Entry->CustomLogoAsXString8 = Prop->getString()->stringValue(); -// if (Prop->getString()->stringValue().isEqualIC("Apple")) { -// Entry->CustomLogoType = CUSTOM_BOOT_APPLE; -// } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { -// Entry->CustomLogoType = CUSTOM_BOOT_ALT_APPLE; -// } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { -// Entry->CustomLogoType = CUSTOM_BOOT_THEME; -// } else { -// XStringW customLogo = XStringW() = Prop->getString()->stringValue(); -// Entry->CustomLogoType = CUSTOM_BOOT_USER; -//// TODO : remove reading of image from settings -// Entry->CustomLogoImage.LoadXImage(&self.getSelfVolumeRootDir(), customLogo); -// if (Entry->CustomLogoImage.isEmpty()) { -// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); -// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; -// } -// } -// } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { -// Entry->CustomLogoType = CUSTOM_BOOT_USER; -// Entry->CustomLogoAsData = Prop->getData()->data(); -//// TODO : remove reading of image from settings -// Entry->CustomLogoImage.FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); -// if (Entry->CustomLogoImage.isEmpty()) { -// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); -// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; -// } -// } else { -// Entry->CustomLogoType = CUSTOM_BOOT_USER_DISABLED; -// } -// DBG("Custom entry boot %s LogoWidth = (0x%lld)\n", CustomBootModeToStr(Entry->CustomLogoType), Entry->CustomLogoImage.GetWidth()); -// } else { -// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; -// } - -// Prop = DictPointer->propertyForKey("BootBgColor"); -// if (Prop != NULL && Prop->isString()) { -// UINTN Color; -// Color = AsciiStrHexToUintn(Prop->getString()->stringValue()); -// -// Entry->BootBgColor.Red = (Color >> 24) & 0xFF; -// Entry->BootBgColor.Green = (Color >> 16) & 0xFF; -// Entry->BootBgColor.Blue = (Color >> 8) & 0xFF; -// Entry->BootBgColor.Reserved = (Color >> 0) & 0xFF; -// } -// -// // Hidden Property, Values: -// // - No (show the entry) -// // - Yes (hide the entry but can be show with F3) -// // - Always (always hide the entry) -// Prop = DictPointer->propertyForKey("Hidden"); -// if (Prop != NULL) { -// if ((Prop->isString()) && -// (Prop->getString()->stringValue().isEqualIC("Always"))) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); -// } else if (IsPropertyNotNullAndTrue(Prop)) { -// DBG(" hiding entry because Hidden flag is YES\n"); -// Entry->Hidden = true; -// } else { -// Entry->Hidden = false; -// } -// } -// -// Prop = DictPointer->propertyForKey("Type"); -// if (Prop != NULL && (Prop->isString())) { -// if ((Prop->getString()->stringValue().isEqualIC("OSX")) || -// (Prop->getString()->stringValue().isEqualIC("macOS"))) { -// Entry->Type = OSTYPE_OSX; -// } else if (Prop->getString()->stringValue().isEqualIC("OSXInstaller")) { -// Entry->Type = OSTYPE_OSX_INSTALLER; -// } else if (Prop->getString()->stringValue().isEqualIC("OSXRecovery")) { -// Entry->Type = OSTYPE_RECOVERY; -// } else if (Prop->getString()->stringValue().isEqualIC("Windows")) { -// Entry->Type = OSTYPE_WINEFI; -// } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { -// Entry->Type = OSTYPE_LIN; -//// TODO remove from here -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); -// } else if (Prop->getString()->stringValue().isEqualIC("LinuxKernel")) { -// Entry->Type = OSTYPE_LINEFI; -// } else { -// DBG("** Warning: unknown custom entry Type '%s'\n", Prop->getString()->stringValue().c_str()); -// Entry->Type = OSTYPE_OTHER; -// } -// } else { -// if (Entry->Type == 0 && Entry->Path.notEmpty()) { -// // Try to set Entry->type from Entry->Path -// Entry->Type = GetOSTypeFromPath(Entry->Path); -// } -// } - -// Entry->VolumeType = GetVolumeType(DictPointer); - -// if (Entry->LoadOptions.isEmpty() && OSTYPE_IS_WINDOWS(parentType)) { -// Entry->LoadOptions.Add("-s"); -// Entry->LoadOptions.Add("-h"); -// } - if (Entry->_Title.dgetValue().isEmpty()) { - if (OSTYPE_IS_OSX_RECOVERY(parentType)) { - Entry->_Title = "Recovery"_XS8; - } else if (OSTYPE_IS_OSX_INSTALLER(parentType)) { - Entry->_Title = "Install macOS"_XS8; - } - } -// if (Entry->Image.isEmpty() && (Entry->ImagePath.isEmpty())) { -// if (OSTYPE_IS_OSX_RECOVERY(parentType)) { -// Entry->ImagePath = L"mac"_XSW; -// } -// } - // OS Specific flags - if (OSTYPE_IS_OSX(parentType) || OSTYPE_IS_OSX_RECOVERY(parentType) || OSTYPE_IS_OSX_INSTALLER(parentType)) { - - // InjectKexts default values -// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_CHECKFAKESMC); - // Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_WITHKEXTS); - -// Prop = DictPointer->propertyForKey("InjectKexts"); -// if (Prop != NULL) { -// if ( Prop->isTrueOrYes() ) { -// Entry->InjectKexts = 1; -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); -// } else if ( Prop->isFalseOrNn() ) { -// Entry->InjectKexts = 0; -// // nothing to do -// } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("Detect") ) { -// Entry->InjectKexts = 2; -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); -// } else { -// Entry->InjectKexts = -1; -// DBG("** Warning: unknown custom entry InjectKexts value '%s'\n", Prop->getString()->stringValue().c_str()); -// } -// } else { -// Entry->InjectKexts = -1; -// // Use global settings -// if (gSettings.WithKexts) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); -// } -// if (gSettings.WithKextsIfNoFakeSMC) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); -// } -// } - - // NoCaches default value -// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_NOCACHES); - - Prop = DictPointer->propertyForKey("NoCaches"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); - Entry->_NoCaches = true; - } else { - // Use global settings - if (gSettings.SystemParameters.NoCaches) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); - Entry->_NoCaches = false; - } - } - } - -// // KernelAndKextPatches -// if (!SubEntry) { // CopyKernelAndKextPatches already in: DuplicateCustomEntry if SubEntry == TRUE -// //DBG("Copying global patch settings\n"); -//// CopyKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches)), -// // (KERNEL_AND_KEXT_PATCHES *)(((UINTN)&gSettings) + OFFSET_OF(SETTINGS_DATA, KernelAndKextPatches))); -// -//// CopyKernelAndKextPatches(&Entry->KernelAndKextPatches, &gSettings.KernelAndKextPatches); -// Entry->KernelAndKextPatches = gSettings.KernelAndKextPatches; -// -// //#ifdef DUMP_KERNEL_KEXT_PATCHES -// // DumpKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches))); -// //#endif -// -// } - - } - -// if (Entry->Type == OSTYPE_LINEFI) { -// Prop = DictPointer->propertyForKey("Kernel"); -// if (Prop != NULL) { -// if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { -// if ((Prop->getString()->stringValue()[0] == 'N') || (Prop->getString()->stringValue()[0] == 'n')) { -// Entry->KernelScan = KERNEL_SCAN_NEWEST; -// } else if ((Prop->getString()->stringValue()[0] == 'O') || (Prop->getString()->stringValue()[0] == 'o')) { -// Entry->KernelScan = KERNEL_SCAN_OLDEST; -// } else if ((Prop->getString()->stringValue()[0] == 'F') || (Prop->getString()->stringValue()[0] == 'f')) { -// Entry->KernelScan = KERNEL_SCAN_FIRST; -// } else if ((Prop->getString()->stringValue()[0] == 'L') || (Prop->getString()->stringValue()[0] == 'l')) { -// Entry->KernelScan = KERNEL_SCAN_LAST; -// } else if ((Prop->getString()->stringValue()[0] == 'M') || (Prop->getString()->stringValue()[0] == 'm')) { -// Entry->KernelScan = KERNEL_SCAN_MOSTRECENT; -// } else if ((Prop->getString()->stringValue()[0] == 'E') || (Prop->getString()->stringValue()[0] == 'e')) { -// Entry->KernelScan = KERNEL_SCAN_EARLIEST; -// } -// } -// } -// } - -// /* -// * Sub entries -// * an array of dict OR a bool -// */ -// Prop = DictPointer->propertyForKey("SubEntries"); -// if (Prop != NULL) { -// if ( Prop->isBool() && Prop->getBool()->boolValue() ) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); -// } else if ( Prop->isArray() ) { -// CUSTOM_LOADER_SUBENTRY_SETTINGS *CustomSubEntry; -// INTN i; -// INTN Count = Prop->getArray()->arrayContent().size(); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); -// for (i = 0; i < Count; i++) { -// const TagDict* Dict = Prop->getArray()->dictElementAt(i, "SubEntries"_XS8); -// // Allocate a sub entry -// CustomSubEntry = DuplicateCustomSubEntry(Entry); -// if (CustomSubEntry) { -// if ( FillinCustomSubEntry(CustomSubEntry, Dict, TRUE) ) { -// Entry->SubEntriesSettings.AddReference(CustomSubEntry, true); -// }else{ -// delete CustomSubEntry; -// } -// } -// } -// }else{ -// MsgLog("MALFORMED PLIST : SubEntries must be a bool OR an array of dict"); -// } -// } - return TRUE; -} - - -BOOLEAN -FillinCustomEntry ( - IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, - const TagDict* DictPointer, - IN BOOLEAN SubEntry - ) -{ - const TagStruct* Prop; - - if ( Entry == NULL ) panic("Entry == NULL"); - if ( DictPointer == NULL ) panic("DictPointer == NULL"); - - Prop = DictPointer->propertyForKey("Disabled"); - Entry->Disabled = IsPropertyNotNullAndTrue(Prop); - - Prop = DictPointer->propertyForKey("Volume"); - if (Prop != NULL && (Prop->isString())) { - Entry->Volume = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("Path"); - if (Prop != NULL && (Prop->isString())) { - Entry->Path = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("Settings"); - if (Prop != NULL && (Prop->isString())) { - Entry->Settings = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("CommonSettings"); - Entry->CommonSettings = IsPropertyNotNullAndTrue(Prop); - - - Prop = DictPointer->propertyForKey("AddArguments"); - if (Prop != NULL && (Prop->isString())) { -// if (Entry->LoadOptions.notEmpty()) { -// Entry->Options.SPrintf("%s %s", Entry->Options.c_str(), Prop->getString()->stringValue()); -// } else { -// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); -// } - Entry->AddArguments = Prop->getString()->stringValue(); -// Entry->LoadOptions.import(Split(Prop->getString()->stringValue(), " ")); - } else { - Prop = DictPointer->propertyForKey("Arguments"); - if (Prop != NULL && (Prop->isString())) { - Entry->Arguments = Prop->getString()->stringValue(); -// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); -// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); - } - } - Prop = DictPointer->propertyForKey("Title"); - if (Prop != NULL && (Prop->isString())) { - Entry->m_Title = Prop->getString()->stringValue(); - } - Prop = DictPointer->propertyForKey("FullTitle"); - if (Prop != NULL && (Prop->isString())) { - Entry->FullTitle = Prop->getString()->stringValue(); - } - - Entry->m_ImagePath.setEmpty(); - Entry->ImageData.setEmpty(); - Prop = DictPointer->propertyForKey("Image"); - if (Prop != NULL) { - Entry->m_ImagePath.setEmpty(); -// Entry->Image.setEmpty(); - if (Prop->isString()) { - Entry->m_ImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); - } - // we can't load the file yet, as ThemeDir is not initialized - } else { - UINTN DataLen = 0; - UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); - if (TmpData) { - Entry->ImageData.stealValueFrom(TmpData, DataLen); -// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { -// Entry->Image.setFilled(); -// } - } - } - - Entry->m_DriveImagePath.setEmpty(); - Entry->DriveImageData.setEmpty(); - Prop = DictPointer->propertyForKey("DriveImage"); - if (Prop != NULL) { -// Entry->DriveImage.setEmpty(); - if (Prop->isString()) { - Entry->m_DriveImagePath = SWPrintf("%s", Prop->getString()->stringValue().c_str()); - } - // we can't load the file yet, as ThemeDir is not initialized - } else { - UINTN DataLen = 0; - UINT8 *TmpData = GetDataSetting (DictPointer, "DriveImageData", &DataLen); - if (TmpData) { - Entry->DriveImageData.stealValueFrom(TmpData, DataLen); -// if (!EFI_ERROR(Entry->DriveImage.Image.FromPNG(TmpData, DataLen))) { -// Entry->DriveImage.setFilled(); -// } -// FreePool(TmpData); - } - } - - Prop = DictPointer->propertyForKey("Hotkey"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { - Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); + DBG(" %s\n", Dropped ? "yes" : "no"); } } // Whether or not to draw boot screen - Prop = DictPointer->propertyForKey("CustomLogo"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_APPLE; - } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - Entry->CustomLogoAsXString8 = Prop->getString()->stringValue(); - if (Prop->getString()->stringValue().isEqualIC("Apple")) { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_APPLE; - } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_ALT_APPLE; - } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_THEME; - } else { - XStringW customLogo = XStringW() = Prop->getString()->stringValue(); - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER; -// Entry->CustomLogoImage.LoadXImage(&self.getSelfVolumeRootDir(), customLogo); -// if (Entry->CustomLogoImage.isEmpty()) { -// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); -// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; -// } - } - } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER; - Entry->CustomLogoAsData = Prop->getData()->data(); -// Entry->CustomLogoImage.FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); -// if (Entry->CustomLogoImage.isEmpty()) { -// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); -// Entry->CustomLogoType = CUSTOM_BOOT_DISABLED; -// } - } else { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_USER_DISABLED; + GlobalConfig.CustomLogoType = gSettings.Boot.CustomLogoType; + if ( gSettings.Boot.CustomLogoType == CUSTOM_BOOT_USER && gSettings.Boot.CustomLogoAsXString8.notEmpty() ) { + if (GlobalConfig.CustomLogo != NULL) { + delete GlobalConfig.CustomLogo; } - DBG("Custom entry boot %s\n", CustomBootModeToStr(Entry->CustomLogoTypeSettings)); + GlobalConfig.CustomLogo = new XImage; + GlobalConfig.CustomLogo->LoadXImage(&self.getSelfVolumeRootDir(), gSettings.Boot.CustomLogoAsXString8); + if (GlobalConfig.CustomLogo->isEmpty()) { + DBG("Custom boot logo not found at path '%s'!\n", gSettings.Boot.CustomLogoAsXString8.c_str()); + GlobalConfig.CustomLogoType = CUSTOM_BOOT_DISABLED; + } + } else if ( gSettings.Boot.CustomLogoType == CUSTOM_BOOT_USER && gSettings.Boot.CustomLogoAsData.notEmpty() ) { + if (GlobalConfig.CustomLogo != NULL) { + delete GlobalConfig.CustomLogo; + } + GlobalConfig.CustomLogo = new XImage; + GlobalConfig.CustomLogo->FromPNG(gSettings.Boot.CustomLogoAsData.data(), gSettings.Boot.CustomLogoAsData.size()); + if (GlobalConfig.CustomLogo->isEmpty()) { + DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); + GlobalConfig.CustomLogoType = CUSTOM_BOOT_DISABLED; + } + } + DBG("Custom boot %s (0x%llX)\n", CustomBootModeToStr(GlobalConfig.CustomLogoType), (uintptr_t)GlobalConfig.CustomLogo); + + GlobalConfig.EnableC6 = gSettings.getEnableC6(); + GlobalConfig.EnableC4 = gSettings.getEnableC4(); + GlobalConfig.EnableC2 = gSettings.getEnableC2(); + GlobalConfig.C3Latency = gSettings.getEnableC6(); + + if (gSettings.CPU.HWPEnable && (gCPUStructure.Model >= CPU_MODEL_SKYLAKE_U)) { + GlobalConfig.HWP = TRUE; + AsmWriteMsr64 (MSR_IA32_PM_ENABLE, 1); + if ( gSettings.CPU.HWPValue.isDefined() ) { + AsmWriteMsr64 (MSR_IA32_HWP_REQUEST, gSettings.CPU.HWPValue.value()); + } + } + + for ( size_t idx = 0 ; idx < gSettings.GUI.CustomEntriesSettings.size() ; ++idx ) { + const CUSTOM_LOADER_ENTRY_SETTINGS& CustomEntrySettings = gSettings.GUI.CustomEntriesSettings[idx]; + CUSTOM_LOADER_ENTRY* entry = new CUSTOM_LOADER_ENTRY(CustomEntrySettings); + GlobalConfig.CustomEntries.AddReference(entry, true); + } + + for ( size_t idx = 0 ; idx < gSettings.GUI.CustomLegacySettings.size() ; ++idx ) { + const CUSTOM_LEGACY_ENTRY_SETTINGS& CustomLegacySettings = gSettings.GUI.CustomLegacySettings[idx]; + CUSTOM_LEGACY_ENTRY* entry = new CUSTOM_LEGACY_ENTRY(CustomLegacySettings, ThemeX.getThemeDir()); + GlobalConfig.CustomLegacyEntries.AddReference(entry, true); + } + + for ( size_t idx = 0 ; idx < gSettings.GUI.CustomToolSettings.size() ; ++idx ) { + const CUSTOM_TOOL_ENTRY_SETTINGS& CustomToolSettings = gSettings.GUI.CustomToolSettings[idx]; + CUSTOM_TOOL_ENTRY* entry = new CUSTOM_TOOL_ENTRY(CustomToolSettings, ThemeX.getThemeDir()); + GlobalConfig.CustomToolsEntries.AddReference(entry, true); + } + + if ( gSettings.GUI.Theme.notEmpty() ) + { + ThemeX.Theme.takeValueFrom(gSettings.GUI.Theme); + DBG("Default theme: %ls\n", gSettings.GUI.Theme.wc_str()); + + OldChosenTheme = 0xFFFF; //default for embedded + for (UINTN i = 0; i < ThemeNameArray.size(); i++) { + //now comparison is case sensitive + if ( gSettings.GUI.Theme.isEqualIC(ThemeNameArray[i]) ) { + OldChosenTheme = i; + break; + } + } + } + + EFI_TIME Now; + gRT->GetTime(&Now, NULL); + if (gSettings.GUI.Timezone != 0xFF) { + INT32 NowHour = Now.Hour + gSettings.GUI.Timezone; + if (NowHour < 0 ) NowHour += 24; + if (NowHour >= 24 ) NowHour -= 24; + ThemeX.Daylight = (NowHour > 8) && (NowHour < 20); } else { - Entry->CustomLogoTypeSettings = CUSTOM_BOOT_DISABLED; + ThemeX.Daylight = TRUE; } - Prop = DictPointer->propertyForKey("BootBgColor"); - if (Prop != NULL && Prop->isString()) { - UINTN Color; - Color = AsciiStrHexToUintn(Prop->getString()->stringValue()); + ThemeX.DarkEmbedded = gSettings.GUI.getDarkEmbedded(ThemeX.Daylight); - Entry->BootBgColor.Red = (Color >> 24) & 0xFF; - Entry->BootBgColor.Green = (Color >> 16) & 0xFF; - Entry->BootBgColor.Blue = (Color >> 8) & 0xFF; - Entry->BootBgColor.Reserved = (Color >> 0) & 0xFF; + if ( gSettings.GUI.languageCode == english ) { + GlobalConfig.Codepage = 0xC0; + GlobalConfig.CodepageSize = 0; + } else if ( gSettings.GUI.languageCode == russian ) { + GlobalConfig.Codepage = 0x410; + GlobalConfig.CodepageSize = 0x40; + } else if ( gSettings.GUI.languageCode == ukrainian ) { + GlobalConfig.Codepage = 0x400; + GlobalConfig.CodepageSize = 0x60; + } else if ( gSettings.GUI.languageCode == chinese ) { + GlobalConfig.Codepage = 0x3400; + GlobalConfig.CodepageSize = 0x19C0; + } else if ( gSettings.GUI.languageCode == korean ) { + GlobalConfig.Codepage = 0x1100; + GlobalConfig.CodepageSize = 0x100; } - // Hidden Property, Values: - // - No (show the entry) - // - Yes (hide the entry but can be show with F3) - // - Always (always hide the entry) - Entry->AlwaysHidden = false; - Entry->Hidden = false; - Prop = DictPointer->propertyForKey("Hidden"); - if (Prop != NULL) { - if ((Prop->isString()) && - (Prop->getString()->stringValue().isEqualIC("Always"))) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); - Entry->AlwaysHidden = true; - } else if (IsPropertyNotNullAndTrue(Prop)) { - DBG(" hiding entry because Hidden flag is YES\n"); - Entry->Hidden = true; + if (gSettings.Graphics.EDID.InjectEDID){ + //DBG("Inject EDID\n"); + if ( gSettings.Graphics.EDID.CustomEDID.size() > 0 && gSettings.Graphics.EDID.CustomEDID.size() % 128 == 0 ) { + InitializeEdidOverride(); } } - Prop = DictPointer->propertyForKey("Type"); - if (Prop != NULL && (Prop->isString())) { - if ((Prop->getString()->stringValue().isEqualIC("OSX")) || - (Prop->getString()->stringValue().isEqualIC("macOS"))) { - Entry->Type = OSTYPE_OSX; - } else if (Prop->getString()->stringValue().isEqualIC("OSXInstaller")) { - Entry->Type = OSTYPE_OSX_INSTALLER; - } else if (Prop->getString()->stringValue().isEqualIC("OSXRecovery")) { - Entry->Type = OSTYPE_RECOVERY; - } else if (Prop->getString()->stringValue().isEqualIC("Windows")) { - Entry->Type = OSTYPE_WINEFI; - } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { - Entry->Type = OSTYPE_LIN; -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTARGS); - } else if (Prop->getString()->stringValue().isEqualIC("LinuxKernel")) { - Entry->Type = OSTYPE_LINEFI; - } else { - DBG("** Warning: unknown custom entry Type '%s'\n", Prop->getString()->stringValue().c_str()); - Entry->Type = OSTYPE_OTHER; - } - } else { - if (Entry->Type == 0 && Entry->Path.notEmpty()) { - // Try to set Entry->type from Entry->Path - Entry->Type = GetOSTypeFromPath(Entry->Path); - } + GlobalConfig.KPKernelPm = gSettings.KernelAndKextPatches._KPKernelPm || GlobalConfig.NeedPMfix; + GlobalConfig.KPAppleIntelCPUPM = gSettings.KernelAndKextPatches._KPAppleIntelCPUPM || GlobalConfig.NeedPMfix; + + if ( gSettings.RtVariables.RtROMAsString.isEqualIC("UseMacAddr0") ) { + if ( gConf.LanCardArray.size() > 0 ) GlobalConfig.RtROM.ncpy(&gConf.LanCardArray[0].MacAddress[0], 6); + else GlobalConfig.RtROM.memset(0, 6); + } else if ( gSettings.RtVariables.RtROMAsString.isEqualIC("UseMacAddr1") ) { + if ( gConf.LanCardArray.size() > 1 ) GlobalConfig.RtROM.ncpy(&gConf.LanCardArray[1].MacAddress[0], 6); + else GlobalConfig.RtROM.memset(0, 6); + }else{ + GlobalConfig.RtROM = gSettings.RtVariables.RtROMAsData; + } + if ( GlobalConfig.RtROM.isEmpty() ) { + EFI_GUID uuid; + StrToGuidBE(gSettings.Smbios.SmUUID, &uuid); + GlobalConfig.RtROM.ncpy(&uuid.Data4[2], 6); + } + GlobalConfig.RtMLB = gSettings.RtVariables.RtMLBSetting; + if ( GlobalConfig.RtMLB.isEmpty() ) { + GlobalConfig.RtMLB = gSettings.Smbios.BoardSerialNumber; } - Entry->VolumeType = GetVolumeType(DictPointer); - -// if (Entry->LoadOptions.isEmpty() && OSTYPE_IS_WINDOWS(Entry->Type)) { -// Entry->LoadOptions.Add("-s"); -// Entry->LoadOptions.Add("-h"); -// } -// if (Entry->Title.isEmpty()) { -// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { -// Entry->Title = L"Recovery"_XSW; -// } else if (OSTYPE_IS_OSX_INSTALLER(Entry->Type)) { -// Entry->Title = L"Install macOS"_XSW; -// } -// } -// if (Entry->Image.isEmpty() && (Entry->ImagePath.isEmpty())) { -// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { -// Entry->ImagePath = L"mac"_XSW; -// } -// } -// if (Entry->DriveImage.isEmpty() && (Entry->DriveImagePath.isEmpty())) { -// if (OSTYPE_IS_OSX_RECOVERY(Entry->Type)) { -// Entry->DriveImagePath = L"recovery"_XSW; -// } -// } - // OS Specific flags - if (OSTYPE_IS_OSX(Entry->Type) || OSTYPE_IS_OSX_RECOVERY(Entry->Type) || OSTYPE_IS_OSX_INSTALLER(Entry->Type)) { - - // InjectKexts default values -// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_CHECKFAKESMC); - // Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_WITHKEXTS); - - Prop = DictPointer->propertyForKey("InjectKexts"); - if (Prop != NULL) { - if ( Prop->isTrueOrYes() ) { - Entry->InjectKexts = 1; -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); - } else if ( Prop->isFalseOrNn() ) { - Entry->InjectKexts = 0; - // nothing to do - } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("Detect") ) { - Entry->InjectKexts = 2; -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); - } else { - Entry->InjectKexts = -2; - DBG("** Warning: unknown custom entry InjectKexts value '%s'\n", Prop->getString()->stringValue().c_str()); - } - } else { - Entry->InjectKexts = -1; - // Use global settings - if (gSettings.SystemParameters.WithKexts) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); - } - if (gSettings.SystemParameters.WithKextsIfNoFakeSMC) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_CHECKFAKESMC); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_WITHKEXTS); - } - } - - // NoCaches default value -// Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_NOCACHES); - - Prop = DictPointer->propertyForKey("NoCaches"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); - Entry->NoCaches = true; - } else { - // Use global settings - if (gSettings.SystemParameters.NoCaches) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES); - } - } - } - - // KernelAndKextPatches - if (!SubEntry) { // CopyKernelAndKextPatches already in: DuplicateCustomEntry if SubEntry == TRUE - //DBG("Copying global patch settings\n"); -// CopyKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches)), - // (KERNEL_AND_KEXT_PATCHES *)(((UINTN)&gSettings) + OFFSET_OF(SETTINGS_DATA, KernelAndKextPatches))); - -// CopyKernelAndKextPatches(&Entry->KernelAndKextPatches, &gSettings.KernelAndKextPatches); -// Entry->KernelAndKextPatches = gSettings.KernelAndKextPatches; - - //#ifdef DUMP_KERNEL_KEXT_PATCHES - // DumpKernelAndKextPatches ((KERNEL_AND_KEXT_PATCHES *)(((UINTN)Entry) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches))); - //#endif - - } - + for (size_t idx = 0 ; idx < gConf.GfxPropertiesArrayNonConst.size() ; idx++ ) { + gConf.GfxPropertiesArrayNonConst[idx].LoadVBios = gSettings.Graphics.LoadVBios; //default } - if (Entry->Type == OSTYPE_LINEFI) { - Prop = DictPointer->propertyForKey("Kernel"); - if (Prop != NULL) { - if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ((Prop->getString()->stringValue()[0] == 'N') || (Prop->getString()->stringValue()[0] == 'n')) { - Entry->KernelScan = KERNEL_SCAN_NEWEST; - } else if ((Prop->getString()->stringValue()[0] == 'O') || (Prop->getString()->stringValue()[0] == 'o')) { - Entry->KernelScan = KERNEL_SCAN_OLDEST; - } else if ((Prop->getString()->stringValue()[0] == 'F') || (Prop->getString()->stringValue()[0] == 'f')) { - Entry->KernelScan = KERNEL_SCAN_FIRST; - } else if ((Prop->getString()->stringValue()[0] == 'L') || (Prop->getString()->stringValue()[0] == 'l')) { - Entry->KernelScan = KERNEL_SCAN_LAST; - } else if ((Prop->getString()->stringValue()[0] == 'M') || (Prop->getString()->stringValue()[0] == 'm')) { - Entry->KernelScan = KERNEL_SCAN_MOSTRECENT; - } else if ((Prop->getString()->stringValue()[0] == 'E') || (Prop->getString()->stringValue()[0] == 'e')) { - Entry->KernelScan = KERNEL_SCAN_EARLIEST; - } - } - } + if ( gSettings.CPU.TurboDisabled ) { + GlobalConfig.Turbo = false; + }else{ + GlobalConfig.Turbo = gCPUStructure.Turbo; } - /* - * Sub entries - * an array of dict OR a bool - */ - Prop = DictPointer->propertyForKey("SubEntries"); - if (Prop != NULL) { - /*if ( Prop->isBool() && Prop->getBool()->boolValue() ) { - Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); - } else*/ if ( Prop->isArray() ) { - INTN Count = Prop->getArray()->arrayContent().size(); -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NODEFAULTMENU); - for (INTN i = 0; i < Count; i++) { - const TagDict* Dict = Prop->getArray()->dictElementAt(i, "SubEntries"_XS8); - // Allocate a sub entry -// CustomSubEntry = DuplicateCustomEntryToSubEntry(Entry); - CUSTOM_LOADER_SUBENTRY_SETTINGS* CustomSubEntry = new CUSTOM_LOADER_SUBENTRY_SETTINGS; - if (CustomSubEntry) { - if ( FillinCustomSubEntry(Entry->Type, CustomSubEntry, Dict, TRUE) ) { - Entry->SubEntriesSettings.AddReference(CustomSubEntry, true); - }else{ - delete CustomSubEntry; - } - } - } + // Jief : Shouldn't this injection made at StartLoader only ? And only for macOS ? + if ( gSettings.Devices.Properties.propertiesAsString.notEmpty() ) + { + size_t binaryPropSize = hex2bin(gSettings.Devices.Properties.propertiesAsString, NULL, 0); // check of correct length is supposed to have been done when reading settings. + UINTN nbPages = EFI_SIZE_TO_PAGES(binaryPropSize); + EFI_PHYSICAL_ADDRESS BufferPtr = EFI_SYSTEM_TABLE_MAX_ADDRESS; //0xFE000000; + EFI_STATUS Status = gBS->AllocatePages ( + AllocateMaxAddress, + EfiACPIReclaimMemory, + nbPages, + &BufferPtr + ); + + if (!EFI_ERROR(Status)) { + cProperties = (UINT8*)(UINTN)BufferPtr; + cPropSize = (UINT32)hex2bin(gSettings.Devices.Properties.propertiesAsString, cProperties, EFI_PAGES_TO_SIZE(nbPages)); // cast should be safe hex2bin return < MAX_UINT32 + + DBG("Injected EFIString of length %d\n", cPropSize); }else{ - MsgLog("MALFORMED PLIST : SubEntries must be an array of dict"); + MsgLog("AllocatePages failed (%s), Properties not injected", efiStrError(Status)); } } - return TRUE; -} - -static BOOLEAN -FillingCustomLegacy ( - IN OUT CUSTOM_LEGACY_ENTRY_SETTINGS *Entry, - const TagDict* DictPointer - ) -{ - const TagStruct* Prop; - if ((Entry == NULL) || (DictPointer == NULL)) { - return FALSE; - } - - Prop = DictPointer->propertyForKey("Disabled"); - if (IsPropertyNotNullAndTrue(Prop)) { - Entry->Disabled = true; - } - - Prop = DictPointer->propertyForKey("Volume"); - if (Prop != NULL && (Prop->isString())) { - Entry->Volume = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("FullTitle"); - if (Prop != NULL && (Prop->isString())) { - Entry->FullTitle = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("Title"); - if (Prop != NULL && (Prop->isString())) { - Entry->Title = Prop->getString()->stringValue(); - } - Prop = DictPointer->propertyForKey("Image"); - if (Prop != NULL) { - if (Prop->isString()) { - Entry->ImagePath = Prop->getString()->stringValue(); -// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Prop->getString()->stringValue()); - } - } else { - UINTN DataLen = 0; - UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); - if (TmpData) { - Entry->ImageData.stealValueFrom(TmpData, DataLen); -// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { -// Entry->Image.setFilled(); -// } -// FreePool(TmpData); - } - } - - Prop = DictPointer->propertyForKey("DriveImage"); - if (Prop != NULL) { - if (Prop->isString()) { - Entry->DriveImagePath = Prop->getString()->stringValue(); -// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Prop->getString()->stringValue()); - } - } else { - UINTN DataLen = 0; - UINT8 *TmpData = GetDataSetting (DictPointer, "DriveImageData", &DataLen); - if (TmpData) { - Entry->DriveImageData.stealValueFrom(TmpData, DataLen); -// if (!EFI_ERROR(Entry->DriveImage.Image.FromPNG(TmpData, DataLen))) { -// Entry->DriveImage.setFilled(); -// } -// FreePool(TmpData); - } - } - - Prop = DictPointer->propertyForKey("Hotkey"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { - Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); - } - } - - // Hidden Property, Values: - // - No (show the entry) - // - Yes (hide the entry but can be show with F3) - // - Always (always hide the entry) - Prop = DictPointer->propertyForKey("Hidden"); - if (Prop != NULL) { - if ((Prop->isString()) && - (Prop->getString()->stringValue().isEqualIC("Always"))) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); - Entry->AlwaysHidden = true; - } else if (IsPropertyNotNullAndTrue(Prop)) { - DBG(" hiding entry because Hidden flag is YES\n"); - Entry->Hidden = true; - } else { - Entry->Hidden = false; - } - } - - Prop = DictPointer->propertyForKey("Type"); - if (Prop != NULL && (Prop->isString())) { - if (Prop->getString()->stringValue().isEqualIC("Windows")) { - Entry->Type = OSTYPE_WIN; - } else if (Prop->getString()->stringValue().isEqualIC("Linux")) { - Entry->Type = OSTYPE_LIN; - } else { - Entry->Type = OSTYPE_OTHER; - } - } - - Entry->VolumeType = GetVolumeType(DictPointer); - return TRUE; -} - -static BOOLEAN -FillingCustomTool (IN OUT CUSTOM_TOOL_ENTRY_SETTINGS *Entry, const TagDict* DictPointer) -{ - const TagStruct* Prop; - if ((Entry == NULL) || (DictPointer == NULL)) { - return FALSE; - } - - Prop = DictPointer->propertyForKey("Disabled"); - if (IsPropertyNotNullAndTrue(Prop)) { - Entry->Disabled = true; - } - - Prop = DictPointer->propertyForKey("Volume"); - if (Prop != NULL && (Prop->isString())) { - Entry->Volume.takeValueFrom(Prop->getString()->stringValue()); - } - - Prop = DictPointer->propertyForKey("Path"); - if (Prop != NULL && (Prop->isString())) { - Entry->Path.takeValueFrom(Prop->getString()->stringValue()); - } - - Prop = DictPointer->propertyForKey("Arguments"); - if (Prop != NULL && (Prop->isString())) { -// if (!Entry->Options.isEmpty()) { -// Entry->Options.setEmpty(); -// } else { -// Entry->Options.SPrintf("%s", Prop->getString()->stringValue()); -// } -// Entry->LoadOptions = Split(Prop->getString()->stringValue(), " "); - Entry->Arguments = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("Title"); - if (Prop != NULL && (Prop->isString())) { - Entry->Title = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("FullTitle"); - if (Prop != NULL && (Prop->isString())) { - Entry->FullTitle = Prop->getString()->stringValue(); - } - - Prop = DictPointer->propertyForKey("Image"); - if (Prop != NULL) { - Entry->ImagePath.setEmpty(); - if (Prop->isString()) { - Entry->ImagePath = Prop->getString()->stringValue(); - } -// Entry->Image.LoadXImage(&ThemeX.getThemeDir(), Entry->ImagePath); - } else { - UINTN DataLen = 0; - UINT8 *TmpData = GetDataSetting (DictPointer, "ImageData", &DataLen); - if (TmpData) { - Entry->ImageData.stealValueFrom(TmpData, DataLen); -// if (!EFI_ERROR(Entry->Image.Image.FromPNG(TmpData, DataLen))) { -// Entry->Image.setFilled(); -// } -// FreePool(TmpData); - } - } - Prop = DictPointer->propertyForKey("Hotkey"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ( Prop->getString()->stringValue()[0] < __WCHAR_MAX__ ) { - Entry->Hotkey = (wchar_t)(Prop->getString()->stringValue()[0]); - } - } - - // Hidden Property, Values: - // - No (show the entry) - // - Yes (hide the entry but can be show with F3) - // - Always (always hide the entry) - Prop = DictPointer->propertyForKey("Hidden"); - if (Prop != NULL) { - if ((Prop->isString()) && - (Prop->getString()->stringValue().isEqualIC("Always"))) { -// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_DISABLED); - Entry->AlwaysHidden = true; - } else if (IsPropertyNotNullAndTrue(Prop)) { - DBG(" hiding entry because Hidden flag is YES\n"); - Entry->Hidden = true; - } else { - Entry->Hidden = false; - } - } - - Entry->VolumeType = GetVolumeType(DictPointer); - - return TRUE; -} - -/* - * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global - * and is passed by non-const reference. - * This temporary during the refactoring - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -// EDID reworked by Sherlocks -static void -GetEDIDSettings(const TagDict* DictPointer, SETTINGS_DATA& gSettings) -{ - #pragma GCC diagnostic pop - const TagStruct* Prop; - const TagDict* Dict; - UINTN j = 128; - - Dict = DictPointer->dictPropertyForKey("EDID"); - if (Dict != NULL) { - Prop = Dict->propertyForKey("Inject"); - gSettings.Graphics.EDID.InjectEDID = IsPropertyNotNullAndTrue(Prop); // default = false! - - if (gSettings.Graphics.EDID.InjectEDID){ - //DBG("Inject EDID\n"); - Prop = Dict->propertyForKey("Custom"); - if (Prop != NULL) { - UINT8* Data = GetDataSetting(Dict, "Custom", &j); - gSettings.Graphics.EDID.CustomEDID.stealValueFrom(Data, j); - if ((j % 128) != 0) { - DBG(" Custom EDID has wrong length=%llu\n", j); - gSettings.Graphics.EDID.CustomEDID.setEmpty(); - } else { - DBG(" Custom EDID is ok\n"); -// gSettings.CustomEDIDsize = (UINT16)j; -// InitializeEdidOverride(); - } + //--------- + GlobalConfig.IgPlatform = gSettings.Graphics._IgPlatform; + for ( size_t idx = 0 ; idx < gSettings.Devices.ArbitraryArray.size() ; ++idx ) { + const SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass& arbitraryProperty = gSettings.Devices.ArbitraryArray[idx]; + for ( size_t jdx = 0 ; jdx < arbitraryProperty.CustomPropertyArray.size() ; ++jdx ) { + const SETTINGS_DATA::DevicesClass::SimplePropertyClass& customProperty = arbitraryProperty.CustomPropertyArray[jdx]; + if ( customProperty.Key.contains("-platform-id") ) { + memcpy(&GlobalConfig.IgPlatform, customProperty.Key.data(), 4); } - - Prop = Dict->propertyForKey("VendorID"); - if (Prop) { - gSettings.Graphics.EDID.VendorEDID = (UINT16)GetPropertyAsInteger(Prop, gSettings.Graphics.EDID.VendorEDID); - //DBG(" VendorID = 0x%04lx\n", gSettings.Graphics.EDID.VendorEDID); - } - - Prop = Dict->propertyForKey("ProductID"); - if (Prop) { - gSettings.Graphics.EDID.ProductEDID = (UINT16)GetPropertyAsInteger(Prop, gSettings.Graphics.EDID.ProductEDID); - //DBG(" ProductID = 0x%04lx\n", gSettings.Graphics.EDID.ProductEDID); - } - - Prop = Dict->propertyForKey("HorizontalSyncPulseWidth"); - if (Prop) { - gSettings.Graphics.EDID.EdidFixHorizontalSyncPulseWidth = (UINT16)GetPropertyAsInteger(Prop, gSettings.Graphics.EDID.EdidFixHorizontalSyncPulseWidth); - //DBG(" EdidFixHorizontalSyncPulseWidth = 0x%02lx\n", gSettings.Graphics.EDID.EdidFixHorizontalSyncPulseWidth); - } - - Prop = Dict->propertyForKey("VideoInputSignal"); - if (Prop) { - gSettings.Graphics.EDID.EdidFixVideoInputSignal = (UINT8)GetPropertyAsInteger(Prop, gSettings.Graphics.EDID.EdidFixVideoInputSignal); - //DBG(" EdidFixVideoInputSignal = 0x%02lx\n", gSettings.Graphics.EDID.EdidFixVideoInputSignal); - } - } else { - //DBG("Not Inject EDID\n"); } } } -// Jief : GetEarlyUserSettings is ready to disappear... -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -EFI_STATUS GetEarlyUserSettings ( - const TagDict* CfgDict, - SETTINGS_DATA& gSettings - ) -{ - #pragma GCC diagnostic pop - - EFI_STATUS Status = EFI_SUCCESS; -// const TagDict* Dict; -// const TagDict* Dict2; -// const TagDict* DictPointer; -// const TagStruct* Prop; -// const TagArray* arrayProp; -// void *Value = NULL; -// BOOLEAN SpecialBootMode = FALSE; -// { -// UINTN Size = 0; -// //read aptiofixflag from nvram for special boot -// Status = GetVariable2(L"aptiofixflag", &gEfiAppleBootGuid, &Value, &Size); -// if (!EFI_ERROR(Status)) { -// SpecialBootMode = TRUE; -// FreePool(Value); -// } -// } - - GlobalConfig.KextPatchesAllowed = TRUE; - GlobalConfig.KernelPatchesAllowed = TRUE; - gSettings.KernelAndKextPatches.KPAppleRTC = TRUE; - gSettings.KernelAndKextPatches.KPDELLSMBIOS = FALSE; // default is false - - if (CfgDict != NULL) { - //DBG("Loading early settings\n"); - DbgHeader("GetEarlyUserSettings"); - - const TagDict* BootDict = CfgDict->dictPropertyForKey("Boot"); - if (BootDict != NULL) { - const TagStruct* Prop = BootDict->propertyForKey("Timeout"); - if (Prop != NULL) { - gSettings.Boot.Timeout = GetPropertyAsInteger(Prop, gSettings.Boot.Timeout); - DBG("timeout set to %lld\n", gSettings.Boot.Timeout); - } - - Prop = BootDict->propertyForKey("SkipHibernateTimeout"); - gSettings.Boot.SkipHibernateTimeout = IsPropertyNotNullAndTrue(Prop); - - //DisableCloverHotkeys - Prop = BootDict->propertyForKey("DisableCloverHotkeys"); - gSettings.Boot.DisableCloverHotkeys = IsPropertyNotNullAndTrue(Prop); - - Prop = BootDict->propertyForKey("Arguments"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - gSettings.Boot.BootArgs = Prop->getString()->stringValue(); - } - - // defaults if "DefaultVolume" is not present or is empty - gSettings.Boot.LastBootedVolume = FALSE; - // settingsData.Boot.DefaultVolume = NULL; - - Prop = BootDict->propertyForKey("DefaultVolume"); - if (Prop != NULL) { - if ( Prop->isString() && Prop->getString()->stringValue().notEmpty() ) { - gSettings.Boot.DefaultVolume.setEmpty(); - // check for special value for remembering boot volume - if (Prop->getString()->stringValue().isEqualIC("LastBootedVolume")) { - gSettings.Boot.LastBootedVolume = TRUE; - } else { - gSettings.Boot.DefaultVolume = Prop->getString()->stringValue(); - } - } - } - - Prop = BootDict->propertyForKey("DefaultLoader"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in DefaultLoader\n"); - }else{ - gSettings.Boot.DefaultLoader = Prop->getString()->stringValue(); - } - } - - Prop = BootDict->propertyForKey("Debug"); - if ( Prop ) { - if ( Prop->isString() ) { - if ( Prop->getString()->stringValue().isEqualIC("true") ) gSettings.Boot.DebugLog = true; - else if ( Prop->getString()->stringValue().isEqualIC("false") ) gSettings.Boot.DebugLog = false; - else MsgLog("MALFORMED config.plist : property Boot/Debug must be true, false, or scratch\n"); - }else if ( Prop->isBool() ) { - gSettings.Boot.DebugLog = Prop->getBool()->boolValue(); - }else{ - MsgLog("MALFORMED config.plist : property Boot/Debug must be a string (true, false) or or \n"); - } - } - - Prop = BootDict->propertyForKey("Fast"); - gSettings.Boot.FastBoot = IsPropertyNotNullAndTrue(Prop); - - Prop = BootDict->propertyForKey("NoEarlyProgress"); - gSettings.Boot.NoEarlyProgress = IsPropertyNotNullAndTrue(Prop); - -// if (SpecialBootMode) { -// GlobalConfig.isFastBoot() = TRUE; -// DBG("Fast option enabled\n"); -// } - - Prop = BootDict->propertyForKey("NeverHibernate"); - gSettings.Boot.NeverHibernate = IsPropertyNotNullAndTrue(Prop); - - Prop = BootDict->propertyForKey("StrictHibernate"); - gSettings.Boot.StrictHibernate = IsPropertyNotNullAndTrue(Prop); - - Prop = BootDict->propertyForKey("RtcHibernateAware"); - gSettings.Boot.RtcHibernateAware = IsPropertyNotNullAndTrue(Prop); - - Prop = BootDict->propertyForKey("HibernationFixup"); - if (Prop) { - gSettings.Boot.HibernationFixup = IsPropertyNotNullAndTrue(Prop); //it will be set automatically - } - - Prop = BootDict->propertyForKey("SignatureFixup"); - gSettings.Boot.SignatureFixup = IsPropertyNotNullAndTrue(Prop); - - // Prop = GetProperty(DictPointer, "GetLegacyLanAddress"); - // GetLegacyLanAddress = IsPropertyTrue(Prop); - - // Secure boot - /* this parameter, which should be called SecureBootSetupMode, is ignored if : - * it is true - * SecureBoot is already true. - */ - gSettings.Boot.SecureSetting = -1; - Prop = BootDict->propertyForKey("Secure"); - if (Prop != NULL) { - if ( Prop->isTrue() ) gSettings.Boot.SecureSetting = 1; - if ( Prop->isFalse() ) gSettings.Boot.SecureSetting = 0; -// if ( Prop->isFalse() ) { -// // Only disable setup mode, we want always secure boot -// settingsData.Boot.SecureBootSetupMode = 0; -// } else if ( Prop->isTrue() && !settingsData.Boot.SecureBoot ) { -// // This mode will force boot policy even when no secure boot or it is disabled -// settingsData.Boot.SecureBootSetupMode = 1; -// settingsData.Boot.SecureBoot = 1; -// } - } - // Secure boot policy - Prop = BootDict->propertyForKey("Policy"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ((Prop->getString()->stringValue()[0] == 'D') || (Prop->getString()->stringValue()[0] == 'd')) { - // Deny all images - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_DENY; - } else if ((Prop->getString()->stringValue()[0] == 'A') || (Prop->getString()->stringValue()[0] == 'a')) { - // Allow all images - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_ALLOW; - } else if ((Prop->getString()->stringValue()[0] == 'Q') || (Prop->getString()->stringValue()[0] == 'q')) { - // Query user - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_QUERY; - } else if ((Prop->getString()->stringValue()[0] == 'I') || (Prop->getString()->stringValue()[0] == 'i')) { - // Insert - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_INSERT; - } else if ((Prop->getString()->stringValue()[0] == 'W') || (Prop->getString()->stringValue()[0] == 'w')) { - // White list - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_WHITELIST; - } else if ((Prop->getString()->stringValue()[0] == 'B') || (Prop->getString()->stringValue()[0] == 'b')) { - // Black list - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_BLACKLIST; - } else if ((Prop->getString()->stringValue()[0] == 'U') || (Prop->getString()->stringValue()[0] == 'u')) { - // User policy - gSettings.Boot.SecureBootPolicy = SECURE_BOOT_POLICY_USER; - } - } - // Secure boot white list - const TagArray* arrayProp = BootDict->arrayPropertyForKey("WhiteList"); - if (arrayProp != NULL) { - INTN i; - INTN Count = arrayProp->arrayContent().size(); - if (Count > 0) { - gSettings.Boot.SecureBootWhiteList.setEmpty(); - for (i = 0; i < Count; i++) { - const TagStruct* prop2 = &arrayProp->arrayContent()[i]; - if ( !prop2->isString() ) { - MsgLog("MALFORMED PLIST : WhiteList must be an array of string"); - continue; - } - if ( prop2->getString()->stringValue().notEmpty() ) { - gSettings.Boot.SecureBootWhiteList.AddNoNull(prop2->getString()->stringValue()); - } - } - } - } - // Secure boot black list - arrayProp = BootDict->arrayPropertyForKey("BlackList"); - if (arrayProp != NULL && arrayProp->isArray()) { - INTN i; - INTN Count = arrayProp->arrayContent().size(); - if (Count > 0) { - gSettings.Boot.SecureBootBlackList.setEmpty(); - for (i = 0; i < Count; i++) { - const TagStruct* prop2 = &arrayProp->arrayContent()[i]; - if ( !prop2->isString() ) { - MsgLog("MALFORMED PLIST : BlackList must be an array of string"); - continue; - } - if ( prop2->getString()->stringValue().notEmpty() ) { - gSettings.Boot.SecureBootBlackList.AddNoNull(prop2->getString()->stringValue()); - } - } - } - } - - // XMP memory profiles - // -1 = do not detect - // 0 = Detect the better XMP profile - // 1 = Use first profile if present - // 2 = Use second profile - Prop = BootDict->propertyForKey("XMPDetection"); - if (Prop != NULL) { - gSettings.Boot.XMPDetection = 0; - if ( Prop->isFalse() ) { - gSettings.Boot.XMPDetection = -1; - } else if ( Prop->isString() ) { - if ((Prop->getString()->stringValue()[0] == 'n') || - (Prop->getString()->stringValue()[0] == 'N') || - (Prop->getString()->stringValue()[0] == '-')) { - gSettings.Boot.XMPDetection = -1; - } else { - gSettings.Boot.XMPDetection = (INT8)AsciiStrDecimalToUintn(Prop->getString()->stringValue().c_str()); - } - } else if (Prop->isInt64()) { - gSettings.Boot.XMPDetection = (INT8)Prop->getInt64()->intValue(); - } - // Check that the setting value is sane - if ((gSettings.Boot.XMPDetection < -1) || (gSettings.Boot.XMPDetection > 2)) { - gSettings.Boot.XMPDetection = -1; - } - } - - // Legacy bios protocol - Prop = BootDict->propertyForKey("Legacy"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : Prop property not string in Legacy\n"); - }else{ - gSettings.Boot.LegacyBoot = Prop->getString()->stringValue(); - } - } else if (gFirmwareClover) { - // default for CLOVER EFI boot - gSettings.Boot.LegacyBoot = "PBR"_XS8; - } else { - // default for UEFI boot - gSettings.Boot.LegacyBoot = "LegacyBiosDefault"_XS8; - } - - // Entry for LegacyBiosDefault - Prop = BootDict->propertyForKey("LegacyBiosDefaultEntry"); - if (Prop != NULL) { - gSettings.Boot.LegacyBiosDefaultEntry = (UINT16)GetPropertyAsInteger(Prop, 0); // disabled by default - } - - // Whether or not to draw boot screen - gSettings.Boot.CustomLogoAsXString8.setEmpty(); - gSettings.Boot.CustomLogoAsData.setEmpty(); - Prop = BootDict->propertyForKey("CustomLogo"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_APPLE; - } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - gSettings.Boot.CustomLogoAsXString8 = Prop->getString()->stringValue(); - if (Prop->getString()->stringValue().isEqualIC("Apple")) { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_APPLE; - } else if (Prop->getString()->stringValue().isEqualIC("Alternate")) { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_ALT_APPLE; - } else if (Prop->getString()->stringValue().isEqualIC("Theme")) { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_THEME; - } else { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_USER; -// if (settingsData.Boot.CustomLogo != NULL) { -// delete settingsData.Boot.CustomLogo; -// } -// settingsData.Boot.CustomLogo = new XImage; -// settingsData.Boot.CustomLogo->LoadXImage(&self.getSelfVolumeRootDir(), customLogo); -// if (settingsData.Boot.CustomLogo->isEmpty()) { -// DBG("Custom boot logo not found at path `%ls`!\n", customLogo.wc_str()); -// settingsData.Boot.CustomBoot = CUSTOM_BOOT_DISABLED; -// } - } - } else if ( Prop->isData() && Prop->getData()->dataLenValue() > 0 ) { - gSettings.Boot.CustomLogoAsData = Prop->getData()->data(); - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_USER; -// if (settingsData.Boot.CustomLogo != NULL) { -// delete settingsData.Boot.CustomLogo; -// } -// settingsData.Boot.CustomLogo = new XImage; -// settingsData.Boot.CustomLogo->FromPNG(Prop->getData()->dataValue(), Prop->getData()->dataLenValue()); -// if (settingsData.Boot.CustomLogo->isEmpty()) { -// DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); -// settingsData.Boot.CustomBoot = CUSTOM_BOOT_DISABLED; -// } - } else { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_USER_DISABLED; - } - } else { - gSettings.Boot.CustomLogoType = CUSTOM_BOOT_DISABLED; - } - - } - - //*** SYSTEM *** - gSettings.SystemParameters.WithKexts = TRUE; //default - const TagDict* SystemParametersDict = CfgDict->dictPropertyForKey("SystemParameters"); - if (SystemParametersDict != NULL) { - // Inject kexts - const TagStruct* Prop = SystemParametersDict->propertyForKey("InjectKexts"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.SystemParameters.WithKexts = TRUE; - } else if ((Prop->isString()) && - (Prop->getString()->stringValue().isEqualIC("Detect"))) { - // settingsData.WithKexts = TRUE; - gSettings.SystemParameters.WithKextsIfNoFakeSMC = TRUE; - } - } - - // No caches - obsolete - Prop = SystemParametersDict->propertyForKey("NoCaches"); - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.SystemParameters.NoCaches = TRUE; - } - //test float - success -// Prop = SystemParametersDict->propertyForKey("BlueValue"); -// float tmpF = GetPropertyFloat(Prop, 1.2f); -// DBG(" get BlueValue=%f\n", tmpF); - - } - - // KernelAndKextPatches - const TagDict* KernelAndKextPatchesDict = CfgDict->dictPropertyForKey("KernelAndKextPatches"); - if (KernelAndKextPatchesDict != NULL) { - FillinKextPatches(&gSettings.KernelAndKextPatches, KernelAndKextPatchesDict); - } - - const TagDict* GUIDict = CfgDict->dictPropertyForKey("GUI"); - if (GUIDict != NULL) { - const TagStruct* Prop = GUIDict->propertyForKey("Timezone"); - gSettings.GUI.Timezone = (INT32)GetPropertyAsInteger(Prop, gSettings.GUI.Timezone); -// //initialize Daylight when we know timezone -//#ifdef CLOVER_BUILD -// EFI_TIME Now; -// gRT->GetTime(&Now, NULL); -// INT32 NowHour = Now.Hour + gSettings.GUI.Timezone; -// if (NowHour < 0 ) NowHour += 24; -// if (NowHour >= 24 ) NowHour -= 24; -// ThemeX.Daylight = (NowHour > 8) && (NowHour < 20); -//#endif - - Prop = GUIDict->propertyForKey("Theme"); - if (Prop != NULL && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { -// ThemeX.Theme.takeValueFrom(Prop->getString()->stringValue()); - gSettings.GUI.Theme.takeValueFrom(Prop->getString()->stringValue()); -// DBG("Default theme: %ls\n", gSettings.GUI.Theme.wc_str()); -// OldChosenTheme = 0xFFFF; //default for embedded -// for (UINTN i = 0; i < ThemeNameArray.size(); i++) { -// //now comparison is case sensitive -// if ( gSettings.GUI.Theme.isEqualIC(ThemeNameArray[i]) ) { -// OldChosenTheme = i; -// break; -// } -// } - } - // get embedded theme property even when starting with other themes, as they may be changed later - Prop = GUIDict->propertyForKey("EmbeddedThemeType"); - if (Prop && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - gSettings.GUI.EmbeddedThemeType = Prop->getString()->stringValue(); - if (Prop->getString()->stringValue().isEqualIC("Dark")) { -// gSettings.GUI.DarkEmbedded = TRUE; - //ThemeX.Font = FONT_GRAY; - } else if (Prop->getString()->stringValue().isEqualIC("Light")) { -// gSettings.GUI.DarkEmbedded = FALSE; - //ThemeX.Font = FONT_ALFA; - } else if (Prop->getString()->stringValue().isEqualIC("Daytime")) { -// gSettings.GUI.DarkEmbedded = !ThemeX.Daylight; - //ThemeX.Font = ThemeX.Daylight?FONT_ALFA:FONT_GRAY; - } - } - Prop = GUIDict->propertyForKey("PlayAsync"); //PlayAsync - gSettings.GUI.PlayAsync = IsPropertyNotNullAndTrue(Prop); - - // CustomIcons - Prop = GUIDict->propertyForKey("CustomIcons"); - gSettings.GUI.CustomIcons = IsPropertyNotNullAndTrue(Prop); - Prop = GUIDict->propertyForKey("TextOnly"); - gSettings.GUI.TextOnly = IsPropertyNotNullAndTrue(Prop); - Prop = GUIDict->propertyForKey("ShowOptimus"); - gSettings.GUI.ShowOptimus = IsPropertyNotNullAndTrue(Prop); - - Prop = GUIDict->propertyForKey("ScreenResolution"); - if (Prop != NULL) { - if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - gSettings.GUI.ScreenResolution.takeValueFrom(Prop->getString()->stringValue()); - } - } - - Prop = GUIDict->propertyForKey("ProvideConsoleGop"); - gSettings.GUI.ProvideConsoleGop = !IsPropertyNotNullAndFalse(Prop); //default is true - - Prop = GUIDict->propertyForKey("ConsoleMode"); - if (Prop != NULL) { - if (Prop->isInt64()) { - gSettings.GUI.ConsoleMode = Prop->getInt64()->intValue(); - } else if ((Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - if ( Prop->getString()->stringValue().contains("Max") ) { - gSettings.GUI.ConsoleMode = -1; - DBG("ConsoleMode will be set to highest mode\n"); - } else if ( Prop->getString()->stringValue().contains("Min") ) { - gSettings.GUI.ConsoleMode = -2; - DBG("ConsoleMode will be set to lowest mode\n"); - } else { - gSettings.GUI.ConsoleMode = (INT32)AsciiStrDecimalToUintn(Prop->getString()->stringValue()); - } - } - if (gSettings.GUI.ConsoleMode > 0) { - DBG("ConsoleMode will be set to mode #%lld\n", gSettings.GUI.ConsoleMode); - } - } - - Prop = GUIDict->propertyForKey("Language"); - if (Prop != NULL) { - gSettings.GUI.Language = Prop->getString()->stringValue(); - if ( Prop->getString()->stringValue().contains("en") ) { - gSettings.GUI.languageCode = english; -// gSettings.GUI.Codepage = 0xC0; -// gSettings.GUI.CodepageSize = 0; - } else if ( Prop->getString()->stringValue().contains("ru")) { - gSettings.GUI.languageCode = russian; -// gSettings.GUI.Codepage = 0x410; -// gSettings.GUI.CodepageSize = 0x40; - } else if ( Prop->getString()->stringValue().contains("ua")) { - gSettings.GUI.languageCode = ukrainian; -// gSettings.GUI.Codepage = 0x400; -// gSettings.GUI.CodepageSize = 0x60; - } else if ( Prop->getString()->stringValue().contains("fr")) { - gSettings.GUI.languageCode = french; //default is extended latin - } else if ( Prop->getString()->stringValue().contains("it")) { - gSettings.GUI.languageCode = italian; - } else if ( Prop->getString()->stringValue().contains("es")) { - gSettings.GUI.languageCode = spanish; - } else if ( Prop->getString()->stringValue().contains("pt")) { - gSettings.GUI.languageCode = portuguese; - } else if ( Prop->getString()->stringValue().contains("br")) { - gSettings.GUI.languageCode = brasil; - } else if ( Prop->getString()->stringValue().contains("de")) { - gSettings.GUI.languageCode = german; - } else if ( Prop->getString()->stringValue().contains("nl")) { - gSettings.GUI.languageCode = dutch; - } else if ( Prop->getString()->stringValue().contains("pl")) { - gSettings.GUI.languageCode = polish; - } else if ( Prop->getString()->stringValue().contains("cz")) { - gSettings.GUI.languageCode = czech; - } else if ( Prop->getString()->stringValue().contains("hr")) { - gSettings.GUI.languageCode = croatian; - } else if ( Prop->getString()->stringValue().contains("id")) { - gSettings.GUI.languageCode = indonesian; - } else if ( Prop->getString()->stringValue().contains("zh_CN")) { - gSettings.GUI.languageCode = chinese; -// gSettings.GUI.Codepage = 0x3400; -// gSettings.GUI.CodepageSize = 0x19C0; - } else if ( Prop->getString()->stringValue().contains("ro")) { - gSettings.GUI.languageCode = romanian; - } else if ( Prop->getString()->stringValue().contains("ko")) { - gSettings.GUI.languageCode = korean; -// gSettings.GUI.Codepage = 0x1100; -// gSettings.GUI.CodepageSize = 0x100; - } - } - -// if (settingsData.Language != NULL) { // settingsData.Language != NULL cannot be false because settingsData.Language is dclared as CHAR8 Language[16]; Must we replace by settingsData.Language[0] != NULL - Prop = GUIDict->propertyForKey("KbdPrevLang"); - if (Prop != NULL) { - gSettings.GUI.KbdPrevLang = IsPropertyNotNullAndTrue(Prop); - } -// } - - const TagDict* MouseDict = GUIDict->dictPropertyForKey("Mouse"); - if (MouseDict != NULL) { - const TagStruct* prop = MouseDict->propertyForKey("Speed"); - if (prop != NULL) { - gSettings.GUI.Mouse.PointerSpeed = (INT32)GetPropertyAsInteger(prop, 0); - gSettings.GUI.Mouse.PointerEnabled = (gSettings.GUI.Mouse.PointerSpeed != 0); - } - //but we can disable mouse even if there was positive speed - prop = MouseDict->propertyForKey("Enabled"); - if (IsPropertyNotNullAndFalse(prop)) { - gSettings.GUI.Mouse.PointerEnabled = FALSE; - } - - prop = MouseDict->propertyForKey("Mirror"); - if (IsPropertyNotNullAndTrue(prop)) { - gSettings.GUI.Mouse.PointerMirror = TRUE; - } - - prop = MouseDict->propertyForKey("DoubleClickTime"); - if (prop != NULL) { - gSettings.GUI.Mouse.DoubleClickTime = (UINT64)GetPropertyAsInteger(prop, 500); - } - } - // hide by name/uuid. Array of string - const TagArray* HideArray = GUIDict->arrayPropertyForKey("Hide"); - if (HideArray != NULL) { - INTN i; - INTN Count = HideArray->arrayContent().size(); - if (Count > 0) { - gSettings.GUI.HVHideStrings.setEmpty(); - for (i = 0; i < Count; i++) { - const TagStruct* prop2 = &HideArray->arrayContent()[i]; - if ( !prop2->isString()) { - MsgLog("MALFORMED PLIST : Hide must be an array of string"); - continue; - } - if ( prop2->getString()->stringValue().notEmpty() ) { - gSettings.GUI.HVHideStrings.Add(prop2->getString()->stringValue()); - DBG("Hiding entries with string %s\n", prop2->getString()->stringValue().c_str()); - } - } - } - } - gSettings.GUI.Scan.LinuxScan = TRUE; - // Disable loader scan - Prop = GUIDict->propertyForKey("Scan"); - if (Prop != NULL) { - if (IsPropertyNotNullAndFalse(Prop)) { - gSettings.GUI.Scan.DisableEntryScan = TRUE; - gSettings.GUI.Scan.DisableToolScan = TRUE; - gSettings.GUI.Scan.NoLegacy = TRUE; - } else if (Prop->isDict()) { - const TagStruct* prop2 = Prop->getDict()->propertyForKey("Entries"); - if (IsPropertyNotNullAndFalse(prop2)) { - gSettings.GUI.Scan.DisableEntryScan = TRUE; - } - prop2 = Prop->getDict()->propertyForKey("Tool"); - if (IsPropertyNotNullAndFalse(prop2)) { - gSettings.GUI.Scan.DisableToolScan = TRUE; - } - prop2 = Prop->getDict()->propertyForKey("Linux"); - gSettings.GUI.Scan.LinuxScan = !IsPropertyNotNullAndFalse(prop2); - prop2 = Prop->getDict()->propertyForKey("Legacy"); - if (prop2 != NULL) { - if (prop2->isFalse()) { - gSettings.GUI.Scan.NoLegacy = TRUE; - } else if ((prop2->isString()) && prop2->getString()->stringValue().notEmpty() ) { - if ((prop2->getString()->stringValue()[0] == 'N') || (prop2->getString()->stringValue()[0] == 'n')) { - gSettings.GUI.Scan.NoLegacy = TRUE; - } else if ((prop2->getString()->stringValue()[0] == 'F') || (prop2->getString()->stringValue()[0] == 'f')) { - gSettings.GUI.Scan.LegacyFirst = TRUE; - } - } - } - prop2 = Prop->getDict()->propertyForKey("Kernel"); - if (prop2 != NULL) { - if (prop2->isFalse()) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_NONE; - } else if ((prop2->isString()) && prop2->getString()->stringValue().notEmpty() ) { - if ((prop2->getString()->stringValue()[0] == 'N') || (prop2->getString()->stringValue()[0] == 'n')) { - gSettings.GUI.Scan.KernelScan = ( prop2->getString()->stringValue().length() > 1 && (prop2->getString()->stringValue()[1] == 'E' || prop2->getString()->stringValue()[1] == 'e') ) ? KERNEL_SCAN_NEWEST : KERNEL_SCAN_NONE; - } else if ((prop2->getString()->stringValue()[0] == 'O') || (prop2->getString()->stringValue()[0] == 'o')) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_OLDEST; - } else if ((prop2->getString()->stringValue()[0] == 'F') || (prop2->getString()->stringValue()[0] == 'f')) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_FIRST; - } else if ((prop2->getString()->stringValue()[0] == 'L') || (prop2->getString()->stringValue()[0] == 'l')) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_LAST; - } else if ((prop2->getString()->stringValue()[0] == 'M') || (prop2->getString()->stringValue()[0] == 'm')) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_MOSTRECENT; - } else if ((prop2->getString()->stringValue()[0] == 'E') || (prop2->getString()->stringValue()[0] == 'e')) { - gSettings.GUI.Scan.KernelScan = KERNEL_SCAN_EARLIEST; - } - } - } - } - } - // Custom entries - const TagDict* CustomDict2 = GUIDict->dictPropertyForKey("Custom"); - if (CustomDict2 != NULL) { - const TagArray* arrayProp = CustomDict2->arrayPropertyForKey("Entries"); // Entries is an array of dict - if (arrayProp != NULL) { - INTN Count = arrayProp->arrayContent().size(); - if (Count > 0) { - for (INTN i = 0; i < Count; i++) { - const TagDict* Dict3 = arrayProp->dictElementAt(i, "Custom/Entries"_XS8); - // Allocate an entry - CUSTOM_LOADER_ENTRY_SETTINGS* Entry = new CUSTOM_LOADER_ENTRY_SETTINGS; - // Fill it in - if ( FillinCustomEntry(Entry, Dict3, FALSE) ) { - gSettings.GUI.CustomEntriesSettings.AddReference(Entry, true); - }else{ - delete Entry; - } - } - } - } - const TagArray* LegacyArray = CustomDict2->arrayPropertyForKey("Legacy"); // is an array of dict - if (LegacyArray != NULL) { - CUSTOM_LEGACY_ENTRY_SETTINGS *Entry; - INTN i; - INTN Count = LegacyArray->arrayContent().size(); - if (Count > 0) { - for (i = 0; i < Count; i++) { - const TagDict* Dict3 = LegacyArray->dictElementAt(i, "Legacy"_XS8); - // Allocate an entry - Entry = new CUSTOM_LEGACY_ENTRY_SETTINGS; - // Fill it in - if ( FillingCustomLegacy(Entry, Dict3) ) { - gSettings.GUI.CustomLegacySettings.AddReference(Entry, true); - }else{ - delete Entry; - } - } - } - } - const TagArray* ToolArray = CustomDict2->arrayPropertyForKey("Tool"); // is an array of dict - if (ToolArray != NULL) { - INTN i; - INTN Count = ToolArray->arrayContent().size(); - if (Count > 0) { - for (i = 0; i < Count; i++) { - const TagDict* Dict3 = ToolArray->dictElementAt(i, "Tool"_XS8); - // Allocate an entry - CUSTOM_TOOL_ENTRY_SETTINGS* Entry = new CUSTOM_TOOL_ENTRY_SETTINGS; - // Fill it in - if ( FillingCustomTool(Entry, Dict3) ) { - gSettings.GUI.CustomToolSettings.AddReference(Entry, true); - }else{ - delete Entry; - } - } - } - } - } - } - const TagDict* GraphicsDict = CfgDict->dictPropertyForKey("Graphics"); - if (GraphicsDict != NULL) { - - const TagStruct* Prop = GraphicsDict->propertyForKey("PatchVBios"); - gSettings.Graphics.PatchVBios = IsPropertyNotNullAndTrue(Prop); - - gSettings.Graphics.PatchVBiosBytes.setEmpty(); - - const TagArray* Dict2 = GraphicsDict->arrayPropertyForKey("PatchVBiosBytes"); // array of dict - if (Dict2 != NULL) { - INTN Count = Dict2->arrayContent().size(); - if (Count > 0) { - UINTN FindSize = 0; - UINTN ReplaceSize = 0; - BOOLEAN Valid; - // alloc space for up to 16 entries -// gSettings.Graphics.PatchVBiosBytes = (__typeof__(gSettings.Graphics.PatchVBiosBytes))AllocateZeroPool(Count * sizeof(VBIOS_PATCH_BYTES)); - - // get all entries - for (INTN i = 0; i < Count; i++) { - const TagDict* dict3 = Dict2->dictElementAt(i, "Graphics/PatchVBiosBytes"_XS8); - Valid = TRUE; - // read entry - VBIOS_PATCH* VBiosPatchPtr = new VBIOS_PATCH; - VBIOS_PATCH& VBiosPatch = *VBiosPatchPtr; -// VBiosPatch = &gSettings.Graphics.PatchVBiosBytes[gSettings.Graphics.PatchVBiosBytesCount]; - UINT8* DataSetting = GetDataSetting (dict3, "Find", &FindSize); - VBiosPatch.Find.stealValueFrom(DataSetting, FindSize); - DataSetting = GetDataSetting (dict3, "Replace", &ReplaceSize); - VBiosPatch.Replace.stealValueFrom(DataSetting, ReplaceSize); - - if ( VBiosPatch.Find.size() == 0 ) { - Valid = FALSE; - DBG("PatchVBiosBytes[%lld]: missing Find data\n", i); - } - - if ( VBiosPatch.Replace.size() == 0 ) { - Valid = FALSE; - DBG("PatchVBiosBytes[%lld]: missing Replace data\n", i); - } - - if (VBiosPatch.Find.size() != VBiosPatch.Replace.size()) { - Valid = FALSE; - DBG("PatchVBiosBytes[%lld]: Find and Replace data are not the same size\n", i); - } - - if (Valid) { -// VBiosPatch->NumberOfBytes = FindSize; - // go to next entry -// ++gSettings.Graphics.PatchVBiosBytesCount; - gSettings.Graphics.PatchVBiosBytes.AddReference(VBiosPatchPtr, true); - } else { - // error - release mem - delete VBiosPatchPtr; -// if (VBiosPatch->Find != NULL) { -// FreePool(VBiosPatch->Find); -// VBiosPatch->Find = NULL; -// } -// if (VBiosPatch->Replace != NULL) { -// FreePool(VBiosPatch->Replace); -// VBiosPatch->Replace = NULL; -// } - } - } - -// if (gSettings.Graphics.PatchVBiosBytesCount == 0) { -// FreePool(gSettings.Graphics.PatchVBiosBytes); -// gSettings.Graphics.PatchVBiosBytes = NULL; -// } - } - } - - GetEDIDSettings(GraphicsDict, gSettings); - } - - const TagArray* DisableDriversArray = CfgDict->arrayPropertyForKey("DisableDrivers"); // array of string - if (DisableDriversArray != NULL) { - INTN i; - INTN Count = DisableDriversArray->arrayContent().size(); - if (Count > 0) { - gSettings.DisabledDriverArray.setEmpty(); - - for (i = 0; i < Count; i++) { - const TagStruct* Prop = &DisableDriversArray->arrayContent()[i]; - if ( !Prop->isString()) { - MsgLog("MALFORMED PLIST : DisableDrivers must be an array of string"); - continue; - } - if ( Prop->getString()->stringValue().notEmpty() ) - gSettings.DisabledDriverArray.Add(Prop->getString()->stringValue()); - } - } - } - - const TagDict* DevicesDict = CfgDict->dictPropertyForKey("Devices"); - if (DevicesDict != NULL) { - const TagDict* Dict2 = DevicesDict->dictPropertyForKey("Audio"); - if (Dict2 != NULL) { - // HDA - const TagStruct* Prop = Dict2->propertyForKey("ResetHDA"); - gSettings.Devices.Audio.ResetHDA = IsPropertyNotNullAndTrue(Prop); - } - } - - const TagDict* RtVariablesDict = CfgDict->dictPropertyForKey("RtVariables"); - if (RtVariablesDict != NULL) { - const TagStruct* Prop = RtVariablesDict->propertyForKey("ROM"); - if (Prop != NULL) { - if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr0") ) { - gSettings.RtVariables.RtROMAsString = Prop->getString()->stringValue(); - } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr1") ) { - gSettings.RtVariables.RtROMAsString = Prop->getString()->stringValue(); - } else if ( Prop->isString() || Prop->isData() ) { // GetDataSetting accept both - UINTN ROMLength = 0; - uint8_t* ROM = GetDataSetting(RtVariablesDict, "ROM", &ROMLength); - gSettings.RtVariables.RtROMAsData.stealValueFrom(ROM, ROMLength); - } else { - MsgLog("MALFORMED PLIST : property not string or data in RtVariables/ROM\n"); - } - } - } - - gSettings.Quirks.mmioWhiteListArray.setEmpty(); - // const TagDict* OcQuirksDict = CfgDict->dictPropertyForKey("OcQuirks"); -//if ( OcQuirksDict ) panic("config.plist/OcQuirks has been renamed Quirks. Update your config.plist"); - - const TagDict* OcQuirksDict = CfgDict->dictPropertyForKey("Quirks"); -//if ( !OcQuirksDict ) panic("Cannot find config.plist/Quirks"); - if (OcQuirksDict != NULL) { - const TagStruct* Prop; - Prop = OcQuirksDict->propertyForKey("AvoidRuntimeDefrag"); -//if ( !Prop ) panic("Cannot find AvoidRuntimeDefrag in OcQuirks under root (OC booter quirks)"); - gSettings.Quirks.OcBooterQuirks.AvoidRuntimeDefrag = !IsPropertyNotNullAndFalse(Prop); //true if absent so no panic - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.AvoidRuntimeDefrag? QUIRK_DEFRAG:0; - Prop = OcQuirksDict->propertyForKey( "DevirtualiseMmio"); - gSettings.Quirks.OcBooterQuirks.DevirtualiseMmio = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.DevirtualiseMmio? QUIRK_MMIO:0; - Prop = OcQuirksDict->propertyForKey( "DisableSingleUser"); - gSettings.Quirks.OcBooterQuirks.DisableSingleUser = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.DisableSingleUser? QUIRK_SU:0; - Prop = OcQuirksDict->propertyForKey( "DisableVariableWrite"); - gSettings.Quirks.OcBooterQuirks.DisableVariableWrite = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.DisableVariableWrite? QUIRK_VAR:0; - Prop = OcQuirksDict->propertyForKey( "DiscardHibernateMap"); - gSettings.Quirks.OcBooterQuirks.DiscardHibernateMap = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.DiscardHibernateMap? QUIRK_HIBER:0; - Prop = OcQuirksDict->propertyForKey( "EnableSafeModeSlide"); - gSettings.Quirks.OcBooterQuirks.EnableSafeModeSlide = !IsPropertyNotNullAndFalse(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.EnableSafeModeSlide? QUIRK_SAFE:0; - Prop = OcQuirksDict->propertyForKey( "EnableWriteUnprotector"); - gSettings.Quirks.OcBooterQuirks.EnableWriteUnprotector = !IsPropertyNotNullAndFalse(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.EnableWriteUnprotector? QUIRK_UNPROT:0; - Prop = OcQuirksDict->propertyForKey( "ForceExitBootServices"); - gSettings.Quirks.OcBooterQuirks.ForceExitBootServices = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.ForceExitBootServices? QUIRK_EXIT:0; - Prop = OcQuirksDict->propertyForKey( "ProtectMemoryRegions"); - gSettings.Quirks.OcBooterQuirks.ProtectMemoryRegions = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.ProtectMemoryRegions? QUIRK_REGION:0; - Prop = OcQuirksDict->propertyForKey( "ProtectSecureBoot"); - gSettings.Quirks.OcBooterQuirks.ProtectSecureBoot = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.ProtectSecureBoot? QUIRK_SECURE:0; - Prop = OcQuirksDict->propertyForKey( "ProtectUefiServices"); - gSettings.Quirks.OcBooterQuirks.ProtectUefiServices = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.ProtectUefiServices? QUIRK_UEFI:0; - //it is in GUI section -// Prop = OcQuirksDict->propertyForKey( "ProvideConsoleGopEnable"); -// settingsData.ProvideConsoleGop = !IsPropertyNotNullAndFalse(Prop); - Prop = OcQuirksDict->propertyForKey( "ProvideCustomSlide"); - gSettings.Quirks.OcBooterQuirks.ProvideCustomSlide = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.ProvideCustomSlide? QUIRK_CUSTOM:0; - Prop = OcQuirksDict->propertyForKey( "ProvideMaxSlide"); - gSettings.Quirks.OcBooterQuirks.ProvideMaxSlide = (UINT8)GetPropertyAsInteger(Prop, 0); // cast will be safe when the new parser will ensure that the value is UINT8 - Prop = OcQuirksDict->propertyForKey( "RebuildAppleMemoryMap"); - gSettings.Quirks.OcBooterQuirks.RebuildAppleMemoryMap = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.RebuildAppleMemoryMap? QUIRK_MAP:0; - Prop = OcQuirksDict->propertyForKey( "SetupVirtualMap"); - gSettings.Quirks.OcBooterQuirks.SetupVirtualMap = !IsPropertyNotNullAndFalse(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.SetupVirtualMap? QUIRK_VIRT:0; - Prop = OcQuirksDict->propertyForKey( "SignalAppleOS"); - gSettings.Quirks.OcBooterQuirks.SignalAppleOS = IsPropertyNotNullAndTrue(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.SignalAppleOS? QUIRK_OS:0; - Prop = OcQuirksDict->propertyForKey( "SyncRuntimePermissions"); - gSettings.Quirks.OcBooterQuirks.SyncRuntimePermissions = !IsPropertyNotNullAndFalse(Prop); - gSettings.Quirks.QuirksMask |= gSettings.Quirks.OcBooterQuirks.SyncRuntimePermissions? QUIRK_PERM:0; - gSettings.Quirks.mmioWhiteListArray.setEmpty(); - - const TagArray* Dict2 = OcQuirksDict->arrayPropertyForKey("MmioWhitelist"); // array of dict - if (Dict2 != NULL) { - INTN Count = Dict2->arrayContent().size(); - //OC_SCHEMA_INTEGER_IN ("Address", OC_MMIO_WL_STRUCT, Address), - //OC_SCHEMA_STRING_IN ("Comment", OC_MMIO_WL_STRUCT, Comment), - //OC_SCHEMA_BOOLEAN_IN ("Enabled", OC_MMIO_WL_STRUCT, Enabled), - if (Count > 0) { - for (INTN i = 0; i < Count; i++) - { - const TagDict* Dict3 = Dict2->dictElementAt(i, "MmioWhitelist"_XS8); - SETTINGS_DATA::QuirksClass::MMIOWhiteList* mmioWhiteListPtr = new SETTINGS_DATA::QuirksClass::MMIOWhiteList(); - SETTINGS_DATA::QuirksClass::MMIOWhiteList& mmioWhiteList = *mmioWhiteListPtr; - - const TagStruct* Prop2 = Dict3->propertyForKey("Comment"); - if (Prop2 != NULL && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { - mmioWhiteList.comment = Prop2->getString()->stringValue(); - } else { - mmioWhiteList.comment = " (NoLabel)"_XS8; - } - - Prop2 = Dict3->propertyForKey("Address"); - if (Prop2 != 0) { - mmioWhiteList.address = GetPropertyAsInteger(Prop2, 0); - Prop2 = Dict3->propertyForKey("Enabled"); - mmioWhiteList.enabled = IsPropertyNotNullAndTrue(Prop2); - } - gSettings.Quirks.mmioWhiteListArray.AddReference(mmioWhiteListPtr, true); - } - } - } - - Prop = OcQuirksDict->propertyForKey("FuzzyMatch"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - gSettings.Quirks.FuzzyMatch = !IsPropertyNotNullAndFalse(Prop); - } - - Prop = OcQuirksDict->propertyForKey("KernelCache"); - if (Prop != NULL || GlobalConfig.gBootChanged) { - if ( Prop->isString() ) { - if ( Prop->getString()->stringValue().notEmpty() ) { - gSettings.Quirks.OcKernelCache = Prop->getString()->stringValue(); - }else{ - gSettings.Quirks.OcKernelCache = "Auto"_XS8; - } - }else{ - MsgLog("MALFORMED PLIST : Quirks/KernelCache must be a string"); - gSettings.Quirks.OcKernelCache = "Auto"_XS8; - } - } - - - // Booter Quirks -// Prop = OcQuirksDict->propertyForKey("AppleCpuPmCfgLock"); -// settingsData.KernelAndKextPatches.OcKernelQuirks.AppleCpuPmCfgLock = IsPropertyNotNullAndTrue(Prop); -// gSettings.Quirks.OcKernelQuirks.AppleCpuPmCfgLock = gSettings.KernelAndKextPatches.KPAppleIntelCPUPM || GlobalConfig.NeedPMfix; - -// Prop = OcQuirksDict->propertyForKey("AppleXcpmCfgLock"); // -// settingsData.KernelAndKextPatches.OcKernelQuirks.AppleXcpmCfgLock = IsPropertyNotNullAndTrue(Prop); -// gSettings.Quirks.OcKernelQuirks.AppleXcpmCfgLock = GlobalConfig.KPKernelPm || GlobalConfig.NeedPMfix; - - Prop = OcQuirksDict->propertyForKey("AppleXcpmExtraMsrs"); - gSettings.Quirks.OcKernelQuirks.AppleXcpmExtraMsrs = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("AppleXcpmForceBoost"); - gSettings.Quirks.OcKernelQuirks.AppleXcpmForceBoost = IsPropertyNotNullAndTrue(Prop); - -// We can't use that Quirks because we don't delegate SMBios to OC. -// Prop = OcQuirksDict->propertyForKey("CustomSMBIOSGuid"); -// settingsData.KernelAndKextPatches.OcKernelQuirks.CustomSmbiosGuid = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("DisableIoMapper"); -//if ( !Prop ) panic("Cannot find DisableIoMapper in config.plist/Quirks. You forgot to merge your quirks into one section. Update your config.plist"); - gSettings.Quirks.OcKernelQuirks.DisableIoMapper = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("DisableLinkeditJettison"); - gSettings.Quirks.OcKernelQuirks.DisableLinkeditJettison = IsPropertyNotNullAndTrue(Prop); - - // Prop = OcQuirksDict->propertyForKey("DisableRtcChecksum"); - // settingsData.KernelAndKextPatches.OcKernelQuirks.DisableRtcChecksum = IsPropertyNotNullAndTrue(Prop); -// gSettings.Quirks.OcKernelQuirks.DisableRtcChecksum = gSettings.KernelAndKextPatches.KPAppleRTC; - - Prop = OcQuirksDict->propertyForKey("DummyPowerManagement"); - gSettings.Quirks.OcKernelQuirks.DummyPowerManagement = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("ExternalDiskIcons"); - gSettings.Quirks.OcKernelQuirks.ExternalDiskIcons = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("IncreasePciBarSize"); - gSettings.Quirks.OcKernelQuirks.IncreasePciBarSize = IsPropertyNotNullAndTrue(Prop); - - // Prop = OcQuirksDict->propertyForKey("LapicKernelPanic"); - // settingsData.KernelAndKextPatches.OcKernelQuirks.LapicKernelPanic = IsPropertyNotNullAndTrue(Prop); -// gSettings.Quirks.OcKernelQuirks.LapicKernelPanic = gSettings.KernelAndKextPatches.KPKernelLapic; - -// Prop = OcQuirksDict->propertyForKey("PanicNoKextDump"); -// settingsData.KernelAndKextPatches.OcKernelQuirks.PanicNoKextDump = IsPropertyNotNullAndTrue(Prop); //KPPanicNoKextDump -// gSettings.Quirks.OcKernelQuirks.PanicNoKextDump = gSettings.KernelAndKextPatches.KPPanicNoKextDump; - - Prop = OcQuirksDict->propertyForKey("PowerTimeoutKernelPanic"); - gSettings.Quirks.OcKernelQuirks.PowerTimeoutKernelPanic = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("ThirdPartyDrives"); - gSettings.Quirks.OcKernelQuirks.ThirdPartyDrives = IsPropertyNotNullAndTrue(Prop); - - Prop = OcQuirksDict->propertyForKey("XhciPortLimit"); - gSettings.Quirks.OcKernelQuirks.XhciPortLimit = IsPropertyNotNullAndTrue(Prop); - } - } - - return Status; -} - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" - -void -ParseSMBIOSSettings(SETTINGS_DATA& gSettings, const TagDict* DictPointer) -{ -#pragma GCC diagnostic pop - - const TagStruct* Prop; - const TagStruct* Prop1; - - - // TODO!!! - BOOLEAN Default = FALSE; - - - Prop = DictPointer->propertyForKey("ProductName"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductName\n"); - }else{ - DBG("ProductName SETTINGS_DATA=%s\n", gSettings.Smbios.ProductName.c_str()); - DBG("ProductName setting=%s\n", Prop->getString()->stringValue().c_str()); - MACHINE_TYPES Model; - gSettings.Smbios.ProductName = Prop->getString()->stringValue(); - DBG("ProductName new SETTINGS_DATA=%s\n", gSettings.Smbios.ProductName.c_str()); - // let's fill all other fields based on this ProductName - // to serve as default - Model = GetModelFromString(gSettings.Smbios.ProductName); - if (Model != MaxMachineType) { - DBG("SetDMISettingsForModel=%d\n", Model); - SetDMISettingsForModel(gSettings, Model, FALSE); - GlobalConfig.CurrentModel = Model; - Default = TRUE; - } else { - //if new model then fill at least as iMac13,2, except custom ProductName - // something else? - SetDMISettingsForModel(gSettings, iMac132, FALSE); - GlobalConfig.CurrentModel = MaxMachineType; - } - } - } - DBG("Using ProductName : %s\n", gSettings.Smbios.ProductName.c_str()); - - Prop = DictPointer->propertyForKey("SmbiosVersion"); - gSettings.Smbios.SmbiosVersion = (UINT16)GetPropertyAsInteger(Prop, 0x204); - - // Check for BiosVersion and BiosReleaseDate by Sherlocks - Prop = DictPointer->propertyForKey("BiosVersion"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - DBG("BiosVersion: not set, Using BiosVersion from clover\n"); - }else{ - gSettings.Smbios._RomVersion = Prop->getString()->stringValue(); - - const CHAR8* i = GlobalConfig.RomVersionUsed.c_str(); - const CHAR8* j = Prop->getString()->stringValue().c_str(); - - i += AsciiStrLen(i); - while (*i != '.') { - i--; - } - - j += AsciiStrLen(j); - while (*j != '.') { - j--; - } - - if (((i[1] > '0') && (j[1] == '0')) || ((i[1] >= j[1]) && (i[2] > j[2]))) { - DBG("Using latest BiosVersion from clover\n"); - } else if ((i[1] == j[1]) && (i[2] == j[2])) { - if (((i[3] > '0') && (j[3] == '0')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { - DBG("Using latest BiosVersion from clover\n"); - } else if ((i[3] == j[3]) && (i[4] == j[4])) { - if (((i[5] > '0') && (j[5] == '0')) || ((i[5] > '1') && (j[5] == '1')) || - ((i[5] > '2') && (j[5] == '2')) || ((i[5] >= j[5]) && (i[6] > j[6]))) { - DBG("Using latest BiosVersion from clover\n"); - } else if ((i[5] == j[5]) && (i[6] == j[6])) { - DBG("Found same BiosVersion in clover and config\n"); - } else { - GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); - DBG("Using latest BiosVersion from config\n"); - } - } else { - GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); - DBG("Using latest BiosVersion from config\n"); - } - } else { - GlobalConfig.RomVersionUsed = Prop->getString()->stringValue(); - DBG("Using latest BiosVersion from config\n"); - } - } - } else { - DBG("BiosVersion: not set, Using BiosVersion from clover\n"); - } - DBG("BiosVersion: %s\n", GlobalConfig.RomVersionUsed.c_str()); - - Prop1 = DictPointer->propertyForKey("BiosReleaseDate"); - if (Prop1 != NULL) { - if ( !Prop1->isString() ) { - MsgLog("ATTENTION : property not string in BiosReleaseDate\n"); - }else{ - gSettings.Smbios._ReleaseDate = Prop1->getString()->stringValue(); - if (Prop != NULL) { // Prop is BiosVersion - const CHAR8* i = GlobalConfig.ReleaseDateUsed.c_str(); - const CHAR8* j = gSettings.Smbios._ReleaseDate.c_str(); - - if ((AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 8)) { - if (((i[6] > '0') && (j[6] == '0')) || ((i[6] >= j[6]) && (i[7] > j[7]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[6] == j[6]) && (i[7] == j[7])) { - if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[0] == j[0]) && (i[1] == j[1])) { - if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || - ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[3] == j[3]) && (i[4] == j[4])) { - //DBG("Found same BiosReleaseDate in clover and config\n"); - } else { - GlobalConfig.ReleaseDateUsed = gSettings.Smbios._ReleaseDate; - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed = gSettings.Smbios._ReleaseDate; - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed = gSettings.Smbios._ReleaseDate; - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else if ((AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 10)) { - if (((i[6] > '0') && (j[8] == '0')) || ((i[6] >= j[8]) && (i[7] > j[9]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[6] == j[8]) && (i[7] == j[9])) { - if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[0] == j[0]) && (i[1] == j[1])) { - if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || - ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[3] == j[3]) && (i[4] == j[4])) { - //DBG("Found same BiosReleaseDate in clover and config\n"); - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[0], j[1], j[3], j[4], j[8], j[9]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else if ((AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 10)) { - if (((i[8] > '0') && (j[8] == '0')) || ((i[8] >= j[8]) && (i[9] > j[9]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[8] == j[8]) && (i[9] == j[9])) { - if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[0] == j[0]) && (i[1] == j[1])) { - if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || - ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[3] == j[3]) && (i[4] == j[4])) { - //DBG("Found same BiosReleaseDate in clover and config\n"); - } else { - GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed = Prop1->getString()->stringValue(); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else if ((AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 8)) { - if (((i[8] > '0') && (j[6] == '0')) || ((i[8] >= j[6]) && (i[9] > j[7]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[8] == j[6]) && (i[9] == j[7])) { - if (((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[0] == j[0]) && (i[1] == j[1])) { - if (((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || - ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4]))) { - //DBG("Found old BiosReleaseDate from config\n"); - //DBG("Using latest BiosReleaseDate from clover\n"); - } else if ((i[3] == j[3]) && (i[4] == j[4])) { - //DBG("Found same BiosReleaseDate in clover and config\n"); - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[0], j[1], j[3], j[4], j[6], j[7]); - //DBG("Using latest BiosReleaseDate from config\n"); - } - } else { - //DBG("Found unknown date format from config\n"); - if (Prop != NULL) { - i = GlobalConfig.ReleaseDateUsed.c_str(); - j = GlobalConfig.RomVersionUsed.c_str(); - - j += AsciiStrLen(j); - while (*j != '.') { - j--; - } - - if ((AsciiStrLen(i) == 8)) { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); - //DBG("Using the date of used BiosVersion\n"); - } else if ((AsciiStrLen(i) == 10)) { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); - //DBG("Using the date of used BiosVersion\n"); - } - } else { - //DBG("Using BiosReleaseDate from clover\n"); - } - } - } else { - //DBG("BiosReleaseDate: set to %s from config, Ignore BiosReleaseDate\n", Prop1->getString()->stringValue().c_str()); - //DBG("Using BiosReleaseDate from clover\n"); - } - } - } else { - if (Prop != NULL) { - const CHAR8* i = GlobalConfig.ReleaseDateUsed.c_str(); - const CHAR8* j = GlobalConfig.RomVersionUsed.c_str(); - - j += AsciiStrLen(j); - while (*j != '.') { - j--; - } - - if ((AsciiStrLen(i) == 8)) { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); - //DBG("BiosReleaseDate: not set, Using the date of used BiosVersion\n"); - } else if ((AsciiStrLen(i) == 10)) { - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); - //DBG("BiosReleaseDate: not set, Using the date of used BiosVersion\n"); - } - } else { - //DBG("BiosReleaseDate: not set, Using BiosReleaseDate from clover\n"); - } - } - DBG("BiosReleaseDate: %s\n", GlobalConfig.ReleaseDateUsed.c_str()); - - Prop = DictPointer->propertyForKey("EfiVersion"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in EfiVersion\n"); - if ( GlobalConfig.EfiVersionUsed.notEmpty() ) { - DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); - } - }else{ - gSettings.Smbios._EfiVersion = Prop->getString()->stringValue(); - gSettings.Smbios._EfiVersion.trim(); - if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) > AsciiStrVersionToUint64(gSettings.Smbios._EfiVersion, 4, 5)) { - DBG("Using latest EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); - } else if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) < AsciiStrVersionToUint64(gSettings.Smbios._EfiVersion, 4, 5)) { - GlobalConfig.EfiVersionUsed = gSettings.Smbios._EfiVersion; - DBG("Using latest EfiVersion from config: %s\n", GlobalConfig.EfiVersionUsed.c_str()); - } else { - DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); - } - } - } else if ( GlobalConfig.EfiVersionUsed.notEmpty() ) { - DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); - } - - Prop = DictPointer->propertyForKey("FirmwareFeatures"); - if (Prop != NULL) { - gSettings.Smbios.gFwFeatures = (UINT32)GetPropertyAsInteger(Prop, gSettings.Smbios.gFwFeatures); - DBG("Using FirmwareFeatures from config: 0x%08X\n", gSettings.Smbios.gFwFeatures); - } else { - DBG("Using FirmwareFeatures from clover: 0x%08X\n", gSettings.Smbios.gFwFeatures); - } - - Prop = DictPointer->propertyForKey("FirmwareFeaturesMask"); - if (Prop != NULL) { - gSettings.Smbios.gFwFeaturesMask = (UINT32)GetPropertyAsInteger(Prop, gSettings.Smbios.gFwFeaturesMask); - DBG("Using FirmwareFeaturesMask from config: 0x%08X\n", gSettings.Smbios.gFwFeaturesMask); - } else { - DBG("Using FirmwareFeaturesMask from clover: 0x%08X\n", gSettings.Smbios.gFwFeaturesMask); - } - - Prop = DictPointer->propertyForKey("PlatformFeature"); - if (Prop != NULL) { - gSettings.Smbios.gPlatformFeature = (UINT64)GetPropertyAsInteger(Prop, (INTN)gSettings.Smbios.gPlatformFeature); - } else { - if (gSettings.Smbios.gPlatformFeature == 0xFFFF) { - DBG("PlatformFeature will not set in SMBIOS\n"); - } else { -DBG("Using PlatformFeature from clover: 0x%llX\n", gSettings.Smbios.gPlatformFeature); - } - } - - Prop = DictPointer->propertyForKey("BiosVendor"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in BiosVendor\n"); - }else{ - gSettings.Smbios.BiosVendor = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("Manufacturer"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Manufacturer\n"); - }else{ - gSettings.Smbios.ManufactureName = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("Version"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Version\n"); - }else{ - gSettings.Smbios.VersionNr = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("Family"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Family\n"); - }else{ - gSettings.Smbios.FamilyName = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("SerialNumber"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in SerialNumber\n"); - }else{ - gSettings.Smbios.SerialNr = Prop->getString()->stringValue(); -DBG("gSettings.Smbios.SerialNr: %s\n", gSettings.Smbios.SerialNr.c_str()); - } - } - - Prop = DictPointer->propertyForKey("SmUUID"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in SmUUID\n"); - }else{ - if (IsValidGuidString(Prop->getString()->stringValue())) { - gSettings.Smbios.SmUUID = Prop->getString()->stringValue(); - } else { - DBG("Error: invalid SmUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop->getString()->stringValue().c_str()); - } - } - } - - Prop = DictPointer->propertyForKey("BoardManufacturer"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in BoardManufacturer\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - gSettings.Smbios.BoardManufactureName = Prop->getString()->stringValue(); - } - } - } - - Prop = DictPointer->propertyForKey("BoardSerialNumber"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in BoardSerialNumber\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - gSettings.Smbios.BoardSerialNumber = Prop->getString()->stringValue(); - } - } - } - - Prop = DictPointer->propertyForKey("Board-ID"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Board-ID\n"); - }else{ - gSettings.Smbios.BoardNumber = Prop->getString()->stringValue(); - DBG("Board-ID set from config as %s\n", gSettings.Smbios.BoardNumber.c_str()); - } - } - - if (!Default) { - gSettings.Smbios.BoardVersion = gSettings.Smbios.ProductName; - } - Prop = DictPointer->propertyForKey("BoardVersion"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in BoardVersion\n"); - }else{ - gSettings.Smbios.BoardVersion = Prop->getString()->stringValue(); -DBG("%s : BoardVersion: %s\n",__PRETTY_FUNCTION__, gSettings.Smbios.BoardVersion.c_str()); - } - } - - Prop = DictPointer->propertyForKey("BoardType"); - if (Prop != NULL) { - gSettings.Smbios.BoardType = (UINT8)GetPropertyAsInteger(Prop, gSettings.Smbios.BoardType); - DBG("BoardType: 0x%hhX\n", gSettings.Smbios.BoardType); - } - - Prop = DictPointer->propertyForKey("Mobile"); - if (Prop != NULL) { - if (IsPropertyNotNullAndFalse(Prop)) - gSettings.Smbios.Mobile = FALSE; - else if (IsPropertyNotNullAndTrue(Prop)) - gSettings.Smbios.Mobile = TRUE; - } else if (!Default) { - gSettings.Smbios.Mobile = gSettings.Smbios.ProductName.contains("MacBook"); - } - - Prop = DictPointer->propertyForKey("LocationInChassis"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in LocationInChassis\n"); - }else{ - gSettings.Smbios.LocationInChassis = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("ChassisManufacturer"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ChassisManufacturer\n"); - }else{ - gSettings.Smbios.ChassisManufacturer = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("ChassisAssetTag"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ChassisAssetTag\n"); - }else{ - gSettings.Smbios.ChassisAssetTag = Prop->getString()->stringValue(); - } - } - - Prop = DictPointer->propertyForKey("ChassisType"); - if (Prop != NULL) { - gSettings.Smbios.ChassisType = (UINT8)GetPropertyAsInteger(Prop, gSettings.Smbios.ChassisType); - DBG("ChassisType: 0x%hhX\n", gSettings.Smbios.ChassisType); - } - - Prop = DictPointer->propertyForKey("NoRomInfo"); - if (Prop != NULL) { - gSettings.Smbios.NoRomInfo = IsPropertyNotNullAndTrue(Prop); - } -} - -/* - * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global - * and is passed by non-const reference. - * This temporary during the refactoring - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -static void getACPISettings(const TagDict *CfgDict, SETTINGS_DATA& gSettings) -{ - #pragma GCC diagnostic pop - const TagDict* ACPIDict = CfgDict->dictPropertyForKey("ACPI"); - if (ACPIDict) { - const TagArray* DropTablesArray = ACPIDict->arrayPropertyForKey("DropTables"); // array of dict - if (DropTablesArray) { - INTN i; - INTN Count = DropTablesArray->arrayContent().size(); - - if (Count > 0) { -// DBG("Table to drop %lld tables:\n", Count); - - for (i = 0; i < Count; i++) - { - SETTINGS_DATA::ACPIClass::ACPIDropTablesClass* ACPIDropTables = new SETTINGS_DATA::ACPIClass::ACPIDropTablesClass; -// UINT32 Signature = 0; -// UINT32 TabLength = 0; -// UINT64 TableId = 0; -// BOOLEAN OtherOS = FALSE; - - const TagDict* Dict2 = DropTablesArray->dictElementAt(i, "ACPI/DropTables"_XS8); - -// DBG(" - [%02lld]: Drop table ", i); - // Get the table signatures to drop - const TagStruct* Prop2 = Dict2->propertyForKey("Signature"); - if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { - CHAR8 s1 = 0, s2 = 0, s3 = 0, s4 = 0; - const CHAR8 *str = Prop2->getString()->stringValue().c_str(); - if (*str) { - s1 = *str++; - } - if (*str) { - s2 = *str++; - } - if (*str) { - s3 = *str++; - } - if (*str) { - s4 = *str++; - } - ACPIDropTables->Signature = SIGNATURE_32(s1, s2, s3, s4); -// DBG(" signature=\"%c%c%c%c\" (%8.8X)\n", s1, s2, s3, s4, ACPIDropTables->Signature); - } - // Get the table ids to drop - Prop2 = Dict2->propertyForKey("TableId"); - if (Prop2 != NULL) { - if ( !Prop2->isString() ) { - MsgLog("ATTENTION : property not string in TableId\n"); - }else{ - UINTN IdIndex = 0; - CHAR8 Id[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - const CHAR8 *Str = Prop2->getString()->stringValue().c_str(); - if (Str) { - while (*Str && (IdIndex < 8)) { - // DBG("%c", *Str); - Id[IdIndex++] = *Str++; - } - } - - CopyMem(&ACPIDropTables->TableId, (CHAR8*)&Id[0], 8); -// DBG(" table-id=\"%s\" (%16.16llX)\n", Id, ACPIDropTables->TableId); - } - } - // Get the table len to drop - Prop2 = Dict2->propertyForKey("Length"); - if (Prop2 != NULL) { - ACPIDropTables->TabLength = (UINT32)GetPropertyAsInteger(Prop2, 0); -// DBG(" length=%d(0x%X)", ACPIDropTables->TabLength, ACPIDropTables->TabLength); - } - // Check if to drop for other OS as well - Prop2 = Dict2->propertyForKey("DropForAllOS"); - if (Prop2 != NULL) { - ACPIDropTables->OtherOS = IsPropertyNotNullAndTrue(Prop2); - } - gSettings.ACPI.ACPIDropTablesArray.AddReference(ACPIDropTables, true); -// DBG("----\n"); - //set to drop -// if (GlobalConfig.ACPIDropTables) { -// ACPI_DROP_TABLE *DropTable = GlobalConfig.ACPIDropTables; -// DBG(" - set table: %08X, %16llx to drop:", Signature, TableId); -// Dropped = FALSE; -// while (DropTable) { -// if (((Signature == DropTable->Signature) && -// (!TableId || (DropTable->TableId == TableId)) && -// (!TabLength || (DropTable->Length == TabLength))) || -// (!Signature && (DropTable->TableId == TableId))) { -// DropTable->MenuItem.BValue = TRUE; -// DropTable->OtherOS = OtherOS; -// gSettings.ACPI.SSDT.DropSSDT = FALSE; //if one item=true then dropAll=false by default -// //DBG(" true"); -// Dropped = TRUE; -// } -// DropTable = DropTable->Next; -// } -// DBG(" %s\n", Dropped ? "yes" : "no"); -// } - } - } - } - - const TagDict* DSDTDict = ACPIDict->dictPropertyForKey("DSDT"); - if (DSDTDict) { - //gSettings.ACPI.DSDT.FixDsdt by default is "DSDT.aml", but name "BIOS" will mean autopatch - const TagStruct* Prop = DSDTDict->propertyForKey("Name"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in DSDT/Name\n"); - }else{ - gSettings.ACPI.DSDT.DsdtName = Prop->getString()->stringValue(); - } - } - - Prop = DSDTDict->propertyForKey("Debug"); - gSettings.ACPI.DSDT.DebugDSDT = IsPropertyNotNullAndTrue(Prop); - - Prop = DSDTDict->propertyForKey("Rtc8Allowed"); - gSettings.ACPI.DSDT.Rtc8Allowed = IsPropertyNotNullAndTrue(Prop); - - Prop = DSDTDict->propertyForKey("PNLF_UID"); - gSettings.ACPI.DSDT.PNLF_UID = (UINT8)GetPropertyAsInteger(Prop, 0x0A); - - Prop = DSDTDict->propertyForKey("FixMask"); - gSettings.ACPI.DSDT.FixDsdt = (UINT32)GetPropertyAsInteger(Prop, gSettings.ACPI.DSDT.FixDsdt); - - const TagDict* FixesDict = DSDTDict->dictPropertyForKey("Fixes"); - if (FixesDict != NULL) { - UINTN Index; - // DBG("Fixes will override DSDT fix mask %08X!\n", gSettings.ACPI.DSDT.FixDsdt); - gSettings.ACPI.DSDT.FixDsdt = 0; - for (Index = 0; Index < sizeof(FixesConfig)/sizeof(FixesConfig[0]); Index++) { - const TagStruct* Prop2 = FixesDict->propertyForKey(FixesConfig[Index].newName); - if (!Prop2 && FixesConfig[Index].oldName) { - Prop2 = FixesDict->propertyForKey(FixesConfig[Index].oldName); - } - if (IsPropertyNotNullAndTrue(Prop2)) { - gSettings.ACPI.DSDT.FixDsdt |= FixesConfig[Index].bitData; - } - } - } - DBG(" - final DSDT Fix mask=%08X\n", gSettings.ACPI.DSDT.FixDsdt); - - const TagArray* PatchesArray = DSDTDict->arrayPropertyForKey("Patches"); // array of dict - if (PatchesArray != NULL) { - INTN i; - INTN Count = PatchesArray->arrayContent().size(); - if (Count > 0) { -// gSettings.ACPI.DSDT.DSDTPatchArray.size() = (UINT32)Count; -// gSettings.PatchDsdtFind = (__typeof__(gSettings.PatchDsdtFind))AllocateZeroPool(Count * sizeof(UINT8*)); -// gSettings.PatchDsdtReplace = (__typeof__(gSettings.PatchDsdtReplace))AllocateZeroPool(Count * sizeof(UINT8*)); -// gSettings.PatchDsdtTgt = (__typeof__(gSettings.PatchDsdtTgt))AllocateZeroPool(Count * sizeof(UINT8*)); -// gSettings.LenToFind = (__typeof__(gSettings.LenToFind))AllocateZeroPool(Count * sizeof(UINT32)); -// gSettings.LenToReplace = (__typeof__(gSettings.LenToReplace))AllocateZeroPool(Count * sizeof(UINT32)); -// gSettings.PatchDsdtLabel = (__typeof__(gSettings.PatchDsdtLabel))AllocateZeroPool(Count * sizeof(UINT8*)); -// gSettings.PatchDsdtMenuItem = new INPUT_ITEM[Count]; - DBG("PatchesDSDT: %lld requested\n", Count); - gSettings.ACPI.DSDT.DSDTPatchArray.setEmpty(); - for (i = 0; i < Count; i++) - { - SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch* dsdtPatchPtr = new SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch(); - SETTINGS_DATA::ACPIClass::DSDTClass::DSDT_Patch& dsdtPatch = *dsdtPatchPtr; - UINTN Size = 0; - const TagDict* Prop2 = PatchesArray->dictElementAt(i,"DSDT/Patches"_XS8); - DBG(" - [%02lld]:", i); - XString8 DSDTPatchesLabel; - - const TagStruct* Prop3 = Prop2->propertyForKey("Comment"); - if (Prop3 != NULL && (Prop3->isString()) && Prop3->getString()->stringValue().notEmpty()) { - DSDTPatchesLabel = Prop3->getString()->stringValue(); - } else { - DSDTPatchesLabel = "(NoLabel)"_XS8; - } - dsdtPatch.PatchDsdtLabel = DSDTPatchesLabel; - DBG(" (%s)", dsdtPatch.PatchDsdtLabel.c_str()); - - Prop3 = Prop2->propertyForKey("Disabled"); - dsdtPatch.Disabled = IsPropertyNotNullAndTrue(Prop3); - dsdtPatch.PatchDsdtMenuItem.BValue = !IsPropertyNotNullAndTrue(Prop3); - - //DBG(" DSDT bin patch #%d ", i); - UINT8* data = GetDataSetting (Prop2, "Find", &Size); - dsdtPatch.PatchDsdtFind.stealValueFrom(data, Size); - DBG(" lenToFind: %zu", dsdtPatch.PatchDsdtFind.size()); - data = GetDataSetting (Prop2, "Replace", &Size); - dsdtPatch.PatchDsdtReplace.stealValueFrom(data, Size); - DBG(", lenToReplace: %zu", dsdtPatch.PatchDsdtReplace.size()); - data = GetDataSetting (Prop2, "TgtBridge", &Size); - if ( Size != 0 ) { - if ( Size != 4 ) { - DBG("\n TgtBridge must 4 bytes. It's %llu byte(s). Ignored\n", Size); - }else{ - dsdtPatch.PatchDsdtTgt.stealValueFrom(data, Size); - DBG(", Target Bridge: %c%c%c%c", dsdtPatch.PatchDsdtTgt[0], dsdtPatch.PatchDsdtTgt[1], dsdtPatch.PatchDsdtTgt[2], dsdtPatch.PatchDsdtTgt[3]); - } - } - DBG("\n"); - if (!dsdtPatch.PatchDsdtMenuItem.BValue) { - DBG(" patch disabled at config\n"); - } - gSettings.ACPI.DSDT.DSDTPatchArray.AddReference(dsdtPatchPtr, true); - } - } //if count > 0 - } //if prop PatchesDSDT - - Prop = DSDTDict->propertyForKey("ReuseFFFF"); - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.ACPI.DSDT.ReuseFFFF = TRUE; - } - - Prop = DSDTDict->propertyForKey("SuspendOverride"); - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.ACPI.DSDT.SuspendOverride = TRUE; - } - /* - Prop = GetProperty(Dict2, "DropOEM_DSM"); - defDSM = FALSE; - - if (Prop != NULL) { - defDSM = TRUE; //set by user - if (IsPropertyTrue(Prop)) { - gSettings.DropOEM_DSM = 0xFFFF; - } else if (IsPropertyFalse(Prop)) { - gSettings.DropOEM_DSM = 0; - } else if (Prop->isInt()) { - gSettings.DropOEM_DSM = (UINT16)(UINTN)Prop->??; - } else if (Prop->type == kTagTypeDict) { - Prop2 = GetProperty(Prop, "ATI"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_ATI; - } - - Prop2 = GetProperty(Prop, "NVidia"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_NVIDIA; - } - - Prop2 = GetProperty(Prop, "IntelGFX"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_INTEL; - } - - Prop2 = GetProperty(Prop, "HDA"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_HDA; - } - - Prop2 = GetProperty(Prop, "HDMI"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_HDMI; - } - - Prop2 = GetProperty(Prop, "SATA"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_SATA; - } - - Prop2 = GetProperty(Prop, "LAN"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_LAN; - } - - Prop2 = GetProperty(Prop, "WIFI"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_WIFI; - } - - Prop2 = GetProperty(Prop, "USB"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_USB; - } - - Prop2 = GetProperty(Prop, "LPC"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_LPC; - } - - Prop2 = GetProperty(Prop, "SmBUS"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_SMBUS; - } - - Prop2 = GetProperty(Prop, "Firewire"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_FIREWIRE; - } - - Prop2 = GetProperty(Prop, "IDE"); - if (IsPropertyTrue(Prop2)) { - gSettings.DropOEM_DSM |= DEV_IDE; - } - } - } - */ - } - - const TagDict* SSDTDict = ACPIDict->dictPropertyForKey("SSDT"); - if (SSDTDict) { - const TagStruct* Prop2 = SSDTDict->propertyForKey("Generate"); - if (Prop2 != NULL) { - if (IsPropertyNotNullAndTrue(Prop2)) { - gSettings.ACPI.SSDT.Generate.GeneratePStates = TRUE; - gSettings.ACPI.SSDT.Generate.GenerateCStates = TRUE; - gSettings.ACPI.SSDT.Generate.GenerateAPSN = TRUE; - gSettings.ACPI.SSDT.Generate.GenerateAPLF = TRUE; - gSettings.ACPI.SSDT.Generate.GeneratePluginType = TRUE; - - } else if (IsPropertyNotNullAndFalse(Prop2)) { - gSettings.ACPI.SSDT.Generate.GeneratePStates = FALSE; - gSettings.ACPI.SSDT.Generate.GenerateCStates = FALSE; - gSettings.ACPI.SSDT.Generate.GenerateAPSN = FALSE; - gSettings.ACPI.SSDT.Generate.GenerateAPLF = FALSE; - gSettings.ACPI.SSDT.Generate.GeneratePluginType = FALSE; - - } else if (Prop2->isDict()) { - const TagStruct* Prop = Prop2->getDict()->propertyForKey("PStates"); - if (Prop) { - gSettings.ACPI.SSDT.Generate.GeneratePStates = IsPropertyNotNullAndTrue(Prop); - } - Prop = Prop2->getDict()->propertyForKey("CStates"); - if (Prop) { - gSettings.ACPI.SSDT.Generate.GenerateCStates = IsPropertyNotNullAndTrue(Prop); - } - Prop = Prop2->getDict()->propertyForKey("APSN"); - if (Prop) { - gSettings.ACPI.SSDT.Generate.GenerateAPSN = IsPropertyNotNullAndTrue(Prop); - } - Prop = Prop2->getDict()->propertyForKey("APLF"); - if (Prop) { - gSettings.ACPI.SSDT.Generate.GenerateAPLF = IsPropertyNotNullAndTrue(Prop); - } - Prop = Prop2->getDict()->propertyForKey("PluginType"); - if (Prop) { - gSettings.ACPI.SSDT.Generate.GeneratePluginType = IsPropertyNotNullAndTrue(Prop); - } - } - } - - const TagStruct* Prop = SSDTDict->propertyForKey("DropOem"); - gSettings.ACPI.SSDT.DropSSDTSetting = IsPropertyNotNullAndTrue(Prop); - - Prop = SSDTDict->propertyForKey("NoOemTableId"); // to disable OEM table ID on ACPI/orgin/SSDT file names - gSettings.ACPI.SSDT.NoOemTableId = IsPropertyNotNullAndTrue(Prop); - - Prop = SSDTDict->propertyForKey("NoDynamicExtract"); // to disable extracting child SSDTs - gSettings.ACPI.SSDT.NoDynamicExtract = IsPropertyNotNullAndTrue(Prop); - - Prop = SSDTDict->propertyForKey("UseSystemIO"); - gSettings.ACPI.SSDT.EnableISS = IsPropertyNotNullAndTrue(Prop); - - Prop = SSDTDict->propertyForKey("EnableC7"); - if (Prop) { - gSettings.ACPI.SSDT.EnableC7 = IsPropertyNotNullAndTrue(Prop); - DBG("EnableC7: %s\n", gSettings.ACPI.SSDT.EnableC7 ? "yes" : "no"); - } - - Prop = SSDTDict->propertyForKey("EnableC6"); - if (Prop) { - gSettings.ACPI.SSDT._EnableC6 = IsPropertyNotNullAndTrue(Prop); - DBG("EnableC6: %s\n", gSettings.ACPI.SSDT._EnableC6 ? "yes" : "no"); - } - - Prop = SSDTDict->propertyForKey("EnableC4"); - if (Prop) { - gSettings.ACPI.SSDT._EnableC4 = IsPropertyNotNullAndTrue(Prop); - DBG("EnableC4: %s\n", gSettings.ACPI.SSDT._EnableC4 ? "yes" : "no"); - } - - Prop = SSDTDict->propertyForKey("EnableC2"); - if (Prop) { - gSettings.ACPI.SSDT._EnableC2 = IsPropertyNotNullAndTrue(Prop); - DBG("EnableC2: %s\n", gSettings.ACPI.SSDT._EnableC2 ? "yes" : "no"); - } - - Prop = SSDTDict->propertyForKey("C3Latency"); - gSettings.ACPI.SSDT._C3Latency = (UINT16)GetPropertyAsInteger(Prop, gSettings.ACPI.SSDT._C3Latency); - DBG("C3Latency: %d\n", gSettings.ACPI.SSDT._C3Latency); - - Prop = SSDTDict->propertyForKey("PLimitDict"); - gSettings.ACPI.SSDT.PLimitDict = (UINT8)GetPropertyAsInteger(Prop, 0); - - Prop = SSDTDict->propertyForKey("UnderVoltStep"); - gSettings.ACPI.SSDT.UnderVoltStep = (UINT8)GetPropertyAsInteger(Prop, 0); - - Prop = SSDTDict->propertyForKey("DoubleFirstState"); - gSettings.ACPI.SSDT.DoubleFirstState = IsPropertyNotNullAndTrue(Prop); - - Prop = SSDTDict->propertyForKey("MinMultiplier"); - gSettings.ACPI.SSDT.MinMultiplier = (UINT8)GetPropertyAsInteger(Prop, gSettings.ACPI.SSDT.MinMultiplier); - DBG("MinMultiplier: %d\n", gSettings.ACPI.SSDT.MinMultiplier); - - Prop = SSDTDict->propertyForKey("MaxMultiplier"); - gSettings.ACPI.SSDT.MaxMultiplier = (UINT8)GetPropertyAsInteger(Prop, gSettings.ACPI.SSDT.MaxMultiplier); - DBG("MaxMultiplier: %d\n", gSettings.ACPI.SSDT.MaxMultiplier); - - Prop = SSDTDict->propertyForKey("PluginType"); - gSettings.ACPI.SSDT.PluginType = (UINT8)GetPropertyAsInteger(Prop, gSettings.ACPI.SSDT.PluginType); - DBG("PluginType: %d\n", gSettings.ACPI.SSDT.PluginType); - } - - // Prop = GetProperty(DictPointer, "DropMCFG"); - // gSettings.DropMCFG = IsPropertyTrue(Prop); - - const TagStruct* Prop = ACPIDict->propertyForKey("ResetAddress"); - if (Prop) { - gSettings.ACPI.ResetAddr = (UINT32)GetPropertyAsInteger(Prop, 0x64); - DBG("ResetAddr: 0x%llX\n", gSettings.ACPI.ResetAddr); - - if (gSettings.ACPI.ResetAddr == 0x64) { - gSettings.ACPI.ResetVal = 0xFE; - } else if (gSettings.ACPI.ResetAddr == 0xCF9) { - gSettings.ACPI.ResetVal = 0x06; - } - - DBG("Calc ResetVal: 0x%hhX\n", gSettings.ACPI.ResetVal); - } - - Prop = ACPIDict->propertyForKey("ResetValue"); - gSettings.ACPI.ResetVal = (UINT8)GetPropertyAsInteger(Prop, gSettings.ACPI.ResetVal); - DBG("ResetVal: 0x%hhX\n", gSettings.ACPI.ResetVal); - //other known pair is 0x0CF9/0x06. What about 0x92/0x01 ? - - Prop = ACPIDict->propertyForKey("HaltEnabler"); - gSettings.ACPI.SlpSmiEnable = IsPropertyNotNullAndTrue(Prop); - - // - Prop = ACPIDict->propertyForKey("FixHeaders"); - gSettings.ACPI.FixHeaders = IsPropertyNotNullAndTrue(Prop); - - Prop = ACPIDict->propertyForKey("FixMCFG"); - gSettings.ACPI.FixMCFG = IsPropertyNotNullAndTrue(Prop); - - - Prop = ACPIDict->propertyForKey("DisableASPM"); - gSettings.ACPI.NoASPM = IsPropertyNotNullAndTrue(Prop); - - Prop = ACPIDict->propertyForKey("smartUPS"); - if (Prop) { - gSettings.ACPI.smartUPS = IsPropertyNotNullAndTrue(Prop); - DBG("smartUPS: present\n"); - } - - Prop = ACPIDict->propertyForKey("PatchAPIC"); - gSettings.ACPI.PatchNMI = IsPropertyNotNullAndTrue(Prop); - - const TagArray* SortedOrderArray = ACPIDict->arrayPropertyForKey("SortedOrder"); // array of string - if (SortedOrderArray) { - INTN i; - INTN Count = SortedOrderArray->arrayContent().size(); - const TagStruct* Prop2 = NULL; - if (Count > 0) { - gSettings.ACPI.SortedACPI.setEmpty(); - - for (i = 0; i < Count; i++) { - Prop2 = &SortedOrderArray->arrayContent()[i]; - if ( !Prop2->isString()) { - MsgLog("MALFORMED PLIST : SortedOrder must be an array of string"); - continue; - } - gSettings.ACPI.SortedACPI.Add(Prop2->getString()->stringValue()); - } - } - } - - Prop = ACPIDict->propertyForKey("AutoMerge"); - gSettings.ACPI.AutoMerge = IsPropertyNotNullAndTrue(Prop); - - const TagArray* DisabledAMLArray = ACPIDict->arrayPropertyForKey("DisabledAML"); // array of string - if (DisabledAMLArray) { - INTN i; - INTN Count = DisabledAMLArray->arrayContent().size(); - const TagStruct* Prop2 = NULL; - if (Count > 0) { - gSettings.ACPI.DisabledAML.setEmpty(); - for (i = 0; i < Count; i++) { - Prop2 = &DisabledAMLArray->arrayContent()[i]; - if ( !Prop2->isString()) { - MsgLog("MALFORMED PLIST : DisabledAML must be an array of string"); - continue; - } - gSettings.ACPI.DisabledAML.Add(Prop2->getString()->stringValue()); - } - } - } - //arrayPropertyForKey - const TagDict* RenameDevicesDict = NULL; - INTN arraySize = 0; - const TagArray* RenameDevicesArray = ACPIDict->arrayPropertyForKey("RenameDevices"); - bool RenDevIsArray = (RenameDevicesArray != NULL); - if (RenDevIsArray) { - arraySize = RenameDevicesArray->arrayContent().size(); - } else { - RenameDevicesDict = ACPIDict->dictPropertyForKey("RenameDevices"); // dict of key/string - if (RenameDevicesDict) { - arraySize = 1; - } - } - if (arraySize > 0) { - gSettings.ACPI.DeviceRename.setEmpty(); //else will not change - } - for (INTN i = 0; i < arraySize; i++) { - if (RenDevIsArray) { - RenameDevicesDict = RenameDevicesArray->dictElementAt(i, "RenameDevices"_XS8); - } - if (!RenameDevicesDict) break; - INTN Count = RenameDevicesDict->dictKeyCount(); - if (Count > 0) { - for (INTN j = 0; j < Count; j++) { - const TagKey* key; - const TagStruct* value; - if ( !EFI_ERROR(RenameDevicesDict->getKeyAndValueAtIndex(j, &key, &value)) ) { - if ( value->isString() && value->getString()->stringValue().notEmpty() ) { - ACPI_RENAME_DEVICE* List2 = new ACPI_RENAME_DEVICE(); - List2->acpiName.Name = key->keyStringValue(); - List2->renameTo = value->getString()->stringValue(); - gSettings.ACPI.DeviceRename.AddReference(List2, false); - // Debug print. We use getSplittedName() and then ConcatAll because getSplittedName() format components (trim or expand to 4 chars). - DBG("'%s' -> will be renamed to '%s'\n", List2->acpiName.getSplittedName().ConcatAll(":").c_str(), List2->renameTo.c_str()); - } - } - } //for j < dict size - } - } //for i < array size - } -} - -/* - * 2021-04, Jief : this is untouched old code (except a small bug when name starts with '#') to create ArbProperties the old way - * Old way = only one structure DEV_PROPERTY, Properties and ArbProperties are mixed together, no objetcs (XString, XBuffer). - * This is temporary and is used to check that new code gives the same result as the old. To be remove in a while - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -void SETTINGS_DATA::DevicesClass::FillDevicePropertiesOld(SETTINGS_DATA& gSettings, const TagDict* DevicesDict) -{ -#pragma GCC diagnostic pop - /* - * Properties is a single string, or a dict - */ - const TagStruct* Prop = DevicesDict->propertyForKey("Properties"); - if (Prop != NULL) { - if (Prop->isString()) { - } - else if ( Prop->isDict() ) { - INTN i; - const TagDict* PropertiesDict = Prop->getDict(); - INTN Count = PropertiesDict->dictKeyCount(); //ok - //gSettings.Devices.AddProperties = new DEV_PROPERTY[Count]; // seems bug, only ArbProperties is used in this block - DEV_PROPERTY *DevPropDevice; - DEV_PROPERTY *DevProps; - DEV_PROPERTY **Child; - - if (Count > 0) { - DBG("Add %lld devices (kTagTypeDict):\n", Count); - - for (i = 0; i < Count; i++) { - const TagKey* key; - const TagStruct* value; - EFI_DEVICE_PATH_PROTOCOL* DevicePath = NULL; - if ( !EFI_ERROR(PropertiesDict->getKeyAndValueAtIndex(i, &key, &value)) ) { //take a with DevicePath. If GetKeyValueAtIndex return success, key and value != NULL - XStringW DevicePathStr = key->keyStringValue(); - // DBG("Device: %ls\n", DevicePathStr); - if (key->keyStringValue().startWithOrEqualTo("#")) { - continue; - } - - // when key in Devices/Properties is one of the strings "PrimaryGPU" / "SecondaryGPU", use device path of first / second gpu accordingly -#ifdef CLOVER_BUILD - if ( DevicePathStr.isEqualIC("PrimaryGPU") ) { - DevicePath = DevicePathFromHandle(gGraphics[0].Handle); // first gpu - } else if ( DevicePathStr.isEqualIC("SecondaryGPU") && NGFX > 1) { - DevicePath = DevicePathFromHandle(gGraphics[1].Handle); // second gpu - } else { - DevicePath = ConvertTextToDevicePath(DevicePathStr.wc_str()); //TODO - } - if (DevicePath == NULL) { - continue; - } -#endif - //Create Device node - DevPropDevice = gSettings.Devices.ArbProperties; - gSettings.Devices.ArbProperties = new DEV_PROPERTY; - gSettings.Devices.ArbProperties->Next = DevPropDevice; //next device - gSettings.Devices.ArbProperties->Child = NULL; - gSettings.Devices.ArbProperties->Device = 0; //to differ from arbitrary - gSettings.Devices.ArbProperties->DevicePath = DevicePath; //this is pointer - gSettings.Devices.ArbProperties->Label = S8Printf("%s", key->keyStringValue().c_str()).forgetDataWithoutFreeing(); - Child = &(gSettings.Devices.ArbProperties->Child); - - if ((value != NULL) && (value->isDict())) { - INTN PropCount = 0; - const TagDict* valueDict = value->getDict(); - PropCount = valueDict->dictKeyCount(); - // DBG("Add %d properties:\n", PropCount); - for (INTN j = 0; j < PropCount; j++) { - DevProps = *Child; - - const TagKey* key2; - const TagStruct* value2; - if (EFI_ERROR(valueDict->getKeyAndValueAtIndex(j, &key2, &value2))) { - continue; - } - if (key2->keyStringValue().isEmpty()) { - continue; - } - if (key2->keyStringValue()[0] == '#') { - continue; - } - - *Child = new DEV_PROPERTY; - (*Child)->Next = DevProps; -// if (key2->keyStringValue()[0] != '#') { - (*Child)->MenuItem.BValue = TRUE; - (*Child)->Key = S8Printf("%s", key2->keyStringValue().c_str()).forgetDataWithoutFreeing(); -// } -// else { -// (*Child)->MenuItem.BValue = FALSE; -// (*Child)->Key = S8Printf("%s", key2->keyStringValue().c_str() + 1).forgetDataWithoutFreeing(); -// } - - // DBG("%s\n type %d\n", (*Child)->Key, Prop3->type); - if (value2 && (value2->isString()) && value2->getString()->stringValue().notEmpty()) { - //first suppose it is Ascii string - (*Child)->Value = (UINT8*)S8Printf("%s", value2->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); - (*Child)->ValueLen = value2->getString()->stringValue().sizeInBytesIncludingTerminator(); - (*Child)->ValueType = kTagTypeString; - } - else if (value2 && (value2->isInt64())) { - if ( value2->getInt64()->intValue() < MIN_INT32 || value2->getInt64()->intValue() > MAX_INT32 ) { - MsgLog("Invalid int value for key %s\n", key2->keyStringValue().c_str()); - }else{ - INT32 intValue = (INT32)value2->getInt64()->intValue(); - (*Child)->Value = (__typeof__((*Child)->Value))AllocatePool(sizeof(intValue)); - *(INT32*)((*Child)->Value) = intValue; - (*Child)->ValueLen = sizeof(intValue); - (*Child)->ValueType = kTagTypeInteger; - } - } - else if (value2 && value2->isTrue() ) { - (*Child)->Value = (__typeof__((*Child)->Value))AllocateZeroPool(4); - (*Child)->Value[0] = TRUE; - (*Child)->ValueLen = 1; - (*Child)->ValueType = kTagTypeTrue; - } - else if ( value2 && value2->isFalse() ) { - (*Child)->Value = (__typeof__((*Child)->Value))AllocateZeroPool(4); - //(*Child)->Value[0] = FALSE; - (*Child)->ValueLen = 1; - (*Child)->ValueType = kTagTypeFalse; - } - else if (value2 && (value2->isData())) { - UINTN Size = value2->getData()->dataLenValue(); - // (*Child)->Value = GetDataSetting(value2, "Value", &Size); //TODO - UINT8* Data = (__typeof__(Data))AllocateZeroPool(Size); - CopyMem(Data, value2->getData()->dataValue(), Size); - (*Child)->Value = Data; - (*Child)->ValueLen = Size; - (*Child)->ValueType = kTagTypeData; - } - } - } - } - } - } - } - } - - const TagArray* ArbitraryTagArray = DevicesDict->arrayPropertyForKey("Arbitrary"); // array of dict - if (ArbitraryTagArray != NULL) { - INTN Index; - INTN Count = ArbitraryTagArray->arrayContent().size(); - DEV_PROPERTY *DevProp; - - if (Count > 0) { - DBG("Add %lld devices (Arbitrary):\n", Count); - for (Index = 0; Index < Count; Index++) { - UINTN DeviceAddr = 0U; - XString8 Label; - DBG(" - [%02lld]:", Index); - const TagDict* Dict2 = ArbitraryTagArray->dictElementAt(Index, "Arbitrary"_XS8); - const TagStruct* Prop3; - Prop3 = Dict2->propertyForKey("PciAddr"); - if (Prop3 != NULL) { - UINT8 Bus, Dev, Func; - - if ( !Prop3->isString() ) { - MsgLog("ATTENTION : property not string in PciAddr\n"); - continue; - } - if ( Prop3->getString()->stringValue().length() < 2 || Prop3->getString()->stringValue()[2] != ':') { - DBG(" wrong PciAddr string: %s\n", Prop3->getString()->stringValue().c_str()); - continue; - } - CONST CHAR8* Str = Prop3->getString()->stringValue().c_str(); - Bus = hexstrtouint8(Str); - Dev = hexstrtouint8(&Str[3]); - Func = hexstrtouint8(&Str[6]); - DeviceAddr = PCIADDR(Bus, Dev, Func); - Label.S8Printf("[%02hhX:%02hhX.%02hhX] ", Bus, Dev, Func); - DBG(" %s", Label.c_str()); - } else { - DBG(" no PciAddr\n"); - continue; - } - - Prop3 = Dict2->propertyForKey("Comment"); - if (Prop3 != NULL) { - if ( !Prop3->isString() ) { - MsgLog("ATTENTION : property not string in Comment\n"); - }else{ - Label += Prop3->getString()->stringValue(); - DBG(" (%s)", Prop3->getString()->stringValue().c_str()); - } - } - DBG("\n"); - const TagArray* CustomPropertiesArray = Dict2->arrayPropertyForKey("CustomProperties"); // array of dict - if (CustomPropertiesArray != NULL) { - const TagDict* Dict3; - INTN PropIndex; - INTN PropCount = CustomPropertiesArray->arrayContent().size(); - - for (PropIndex = 0; PropIndex < PropCount; PropIndex++) { - Dict3 = CustomPropertiesArray->dictElementAt(PropIndex, "CustomProperties"_XS8); - DevProp = gSettings.Devices.ArbProperties; - gSettings.Devices.ArbProperties = new DEV_PROPERTY; - gSettings.Devices.ArbProperties->Next = DevProp; - - gSettings.Devices.ArbProperties->Device = (UINT32)DeviceAddr; - gSettings.Devices.ArbProperties->Label = (__typeof__(gSettings.Devices.ArbProperties->Label))AllocateCopyPool(Label.sizeInBytesIncludingTerminator(), Label.c_str()); - - const TagStruct* DisabledProp = Dict3->propertyForKey("Disabled"); - gSettings.Devices.ArbProperties->MenuItem.BValue = !IsPropertyNotNullAndTrue(DisabledProp); - - DisabledProp = Dict3->propertyForKey("Key"); - if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { - gSettings.Devices.ArbProperties->Key = S8Printf("%s", DisabledProp->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); - } - - DisabledProp = Dict3->propertyForKey("Value"); - if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { - //first suppose it is Ascii string - gSettings.Devices.ArbProperties->Value = (UINT8*)S8Printf("%s", DisabledProp->getString()->stringValue().c_str()).forgetDataWithoutFreeing(); - gSettings.Devices.ArbProperties->ValueLen = DisabledProp->getString()->stringValue().sizeInBytesIncludingTerminator(); - gSettings.Devices.ArbProperties->ValueType = kTagTypeString; - } else if (DisabledProp && (DisabledProp->isInt64())) { - if ( DisabledProp->getInt64()->intValue() < MIN_INT32 || DisabledProp->getInt64()->intValue() > MAX_INT32 ) { - MsgLog("Invalid int value for key 'Value'\n"); - }else{ - INT32 intValue = (INT32)DisabledProp->getInt64()->intValue(); - gSettings.Devices.ArbProperties->Value = (__typeof__(gSettings.Devices.ArbProperties->Value))AllocatePool(sizeof(intValue)); - // CopyMem(settingsData.ArbProperties->Value, &Prop3->intValue, 4); - *(INT32*)(gSettings.Devices.ArbProperties->Value) = intValue; - gSettings.Devices.ArbProperties->ValueLen = sizeof(intValue); - gSettings.Devices.ArbProperties->ValueType = kTagTypeInteger; - } - } else if ( DisabledProp && DisabledProp->isTrue() ) { - gSettings.Devices.ArbProperties->Value = (__typeof__(gSettings.Devices.ArbProperties->Value))AllocateZeroPool(4); - gSettings.Devices.ArbProperties->Value[0] = TRUE; - gSettings.Devices.ArbProperties->ValueLen = 1; - gSettings.Devices.ArbProperties->ValueType = kTagTypeTrue; - } else if ( DisabledProp && DisabledProp->isFalse() ) { - gSettings.Devices.ArbProperties->Value = (__typeof__(gSettings.Devices.ArbProperties->Value))AllocateZeroPool(4); - //settingsData.ArbProperties->Value[0] = FALSE; - gSettings.Devices.ArbProperties->ValueLen = 1; - gSettings.Devices.ArbProperties->ValueType = kTagTypeFalse; - } else { - //else data - UINTN Size = 0; - gSettings.Devices.ArbProperties->Value = GetDataSetting (Dict3, "Value", &Size); - gSettings.Devices.ArbProperties->ValueLen = Size; - gSettings.Devices.ArbProperties->ValueType = kTagTypeData; - } - - //Special case. In future there must be more such cases - if ((AsciiStrStr(gSettings.Devices.ArbProperties->Key, "-platform-id") != NULL)) { - CopyMem((CHAR8*)&gSettings.Graphics._IgPlatform, gSettings.Devices.ArbProperties->Value, 4); - } - } //for() device properties - } - } //for() devices - } - // settingsData.NrAddProperties = 0xFFFE; - } -} - - -/* - * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global - * and is passed by non-const reference. - * This temporary during the refactoring - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings) -{ -#pragma GCC diagnostic pop -// EFI_STATUS Status = EFI_NOT_FOUND; - - if (CfgDict != NULL) { - DbgHeader ("GetUserSettings"); - - // Boot settings. - // Discussion. Why Arguments is here? It should be SystemParameters property! - // we will read them again because of change in GUI menu. It is not only EarlySettings - // - const TagDict* BootDict = CfgDict->dictPropertyForKey("Boot"); - if (BootDict != NULL) { - - const TagStruct* Prop = BootDict->propertyForKey("Arguments"); - if ( Prop != NULL && Prop->isString() && Prop->getString()->stringValue().notEmpty() && !gSettings.Boot.BootArgs.contains(Prop->getString()->stringValue()) ) { - gSettings.Boot.BootArgs = Prop->getString()->stringValue(); - //gBootArgsChanged = TRUE; - //GlobalConfig.gBootChanged = TRUE; - } - - Prop = BootDict->propertyForKey("NeverDoRecovery"); - gSettings.Boot.NeverDoRecovery = IsPropertyNotNullAndTrue(Prop); - } - - //Graphics - - const TagDict* GraphicsDict = CfgDict->dictPropertyForKey("Graphics"); - if (GraphicsDict != NULL) { - INTN i; - const TagStruct* Prop = GraphicsDict->propertyForKey("Inject"); - if (Prop != NULL) { - if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.Graphics.InjectAsDict.GraphicsInjector = TRUE; - gSettings.Graphics.InjectAsDict.InjectIntel = TRUE; - gSettings.Graphics.InjectAsDict.InjectATI = TRUE; - gSettings.Graphics.InjectAsDict.InjectNVidia = TRUE; - } else if (Prop->isDict()) { - const TagDict* Dict2 = Prop->getDict(); - const TagStruct* Prop2 = Dict2->propertyForKey("Intel"); - if (Prop2 != NULL) { - gSettings.Graphics.InjectAsDict.InjectIntel = IsPropertyNotNullAndTrue(Prop2); - } - - Prop2 = Dict2->propertyForKey("ATI"); - if (Prop2 != NULL) { - gSettings.Graphics.InjectAsDict.InjectATI = IsPropertyNotNullAndTrue(Prop2); - } - - Prop2 = Dict2->propertyForKey("NVidia"); - if (Prop2 != NULL) { - gSettings.Graphics.InjectAsDict.InjectNVidia = IsPropertyNotNullAndTrue(Prop2); - } - } else { - gSettings.Graphics.InjectAsDict.GraphicsInjector = FALSE; - gSettings.Graphics.InjectAsDict.InjectIntel = FALSE; - gSettings.Graphics.InjectAsDict.InjectATI = FALSE; - gSettings.Graphics.InjectAsDict.InjectNVidia = FALSE; - } - } - - Prop = GraphicsDict->propertyForKey("RadeonDeInit"); - gSettings.Graphics.RadeonDeInit = IsPropertyNotNullAndTrue(Prop); - - Prop = GraphicsDict->propertyForKey("VRAM"); - gSettings.Graphics.VRAM = (UINTN)GetPropertyAsInteger(Prop, (INTN)gSettings.Graphics.VRAM); //Mb - // - Prop = GraphicsDict->propertyForKey("RefCLK"); - gSettings.Graphics.RefCLK = (UINT16)GetPropertyAsInteger(Prop, 0); - - Prop = GraphicsDict->propertyForKey("LoadVBios"); - gSettings.Graphics.LoadVBios = IsPropertyNotNullAndTrue(Prop); +//void +//GetDevices () +//{ +// EFI_STATUS Status; +// UINTN HandleCount = 0; +// EFI_HANDLE *HandleArray = NULL; +// EFI_PCI_IO_PROTOCOL *PciIo; +// PCI_TYPE00 Pci; +// UINTN Index; +// UINTN Segment = 0; +// UINTN Bus = 0; +// UINTN Device = 0; +// UINTN Function = 0; +// UINTN i; +// UINT32 Bar0; +// // UINT8 *Mmio = NULL; +// radeon_card_info_t *info; +// SLOT_DEVICE *SlotDevice; // -// for (i = 0; i < (INTN)NGFX; i++) { -// gGraphics[i].LoadVBios = gSettings.Graphics.LoadVBios; //default -// } - - Prop = GraphicsDict->propertyForKey("VideoPorts"); - gSettings.Graphics.VideoPorts = (UINT16)GetPropertyAsInteger(Prop, gSettings.Graphics.VideoPorts); - - Prop = GraphicsDict->propertyForKey("BootDisplay"); - gSettings.Graphics.BootDisplay = (INT8)GetPropertyAsInteger(Prop, -1); - - Prop = GraphicsDict->propertyForKey("FBName"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in FBName\n"); - }else{ - gSettings.Graphics.FBName = Prop->getString()->stringValue(); - } - } - - Prop = GraphicsDict->propertyForKey("NVCAP"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in NVCAP\n"); - }else{ - hex2bin (Prop->getString()->stringValue(), (UINT8*)&gSettings.Graphics.NVCAP[0], sizeof(gSettings.Graphics.NVCAP)); - DBG("Read NVCAP:"); - - for (i = 0; i<20; i++) { - DBG("%02hhX", gSettings.Graphics.NVCAP[i]); - } - - DBG("\n"); - //thus confirmed this procedure is working - } - } - - Prop = GraphicsDict->propertyForKey("display-cfg"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in display-cfg\n"); - }else{ - hex2bin (Prop->getString()->stringValue(), (UINT8*)&gSettings.Graphics.Dcfg[0], sizeof(gSettings.Graphics.Dcfg)); - } - } - - Prop = GraphicsDict->propertyForKey("DualLink"); - gSettings.Graphics.DualLink = (UINT32)GetPropertyAsInteger(Prop, gSettings.Graphics.DualLink); - - //InjectEDID - already done in earlysettings - //No! Take again - GetEDIDSettings(GraphicsDict, gSettings); - - // ErmaC: NvidiaGeneric - Prop = GraphicsDict->propertyForKey("NvidiaGeneric"); - gSettings.Graphics.NvidiaGeneric = IsPropertyNotNullAndTrue(Prop); - - Prop = GraphicsDict->propertyForKey("NvidiaNoEFI"); - gSettings.Graphics.NvidiaNoEFI = IsPropertyNotNullAndTrue(Prop); - - Prop = GraphicsDict->propertyForKey("NvidiaSingle"); - gSettings.Graphics.NvidiaSingle = IsPropertyNotNullAndTrue(Prop); - - Prop = GraphicsDict->propertyForKey("ig-platform-id"); - gSettings.Graphics._IgPlatform = (UINT32)GetPropertyAsInteger(Prop, gSettings.Graphics._IgPlatform); - - Prop = GraphicsDict->propertyForKey("snb-platform-id"); - gSettings.Graphics._IgPlatform = (UINT32)GetPropertyAsInteger(Prop, gSettings.Graphics._IgPlatform); - - FillCardList(GraphicsDict, gSettings); //#@ Getcardslist - } - - const TagDict* DevicesDict = CfgDict->dictPropertyForKey("Devices"); - if (DevicesDict != NULL) { - const TagStruct* Prop = DevicesDict->propertyForKey("Inject"); - gSettings.Devices.StringInjector = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("SetIntelBacklight"); - gSettings.Devices.IntelBacklight = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("SetIntelMaxBacklight"); - gSettings.Devices.IntelMaxBacklight = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("IntelMaxValue"); - gSettings.Devices.IntelMaxValue = (UINT16)GetPropertyAsInteger(Prop, gSettings.Devices.IntelMaxValue); - - - gSettings.Devices.FillDevicePropertiesOld(gSettings, DevicesDict); - - /* - * Properties is a single string, or a dict - */ - Prop = DevicesDict->propertyForKey("Properties"); - if (Prop != NULL) { - if (Prop->isString()) { - gSettings.Devices.Properties.propertiesAsString = Prop->getString()->stringValue(); - size_t binaryPropSize = hex2bin(gSettings.Devices.Properties.propertiesAsString, NULL, 0); - if ( binaryPropSize > MAX_UINT32 ) { - MsgLog("gSettings.Devices.Properties.cDeviceProperties is too big"); - gSettings.Devices.Properties.propertiesAsString.setEmpty(); - } - } - else if ( Prop->isDict() ) { - INTN i; - const TagDict* PropertiesDict = Prop->getDict(); - INTN Count = PropertiesDict->dictKeyCount(); //ok - - if (Count > 0) { - DBG("Add %lld devices (kTagTypeDict):\n", Count); - - for (i = 0; i < Count; i++) { - const TagKey* key; - const TagStruct* value; -// EFI_DEVICE_PATH_PROTOCOL* DevicePath = NULL; - if ( !EFI_ERROR(PropertiesDict->getKeyAndValueAtIndex(i, &key, &value)) ) { //take a with DevicePath. If GetKeyValueAtIndex return success, key and value != NULL - - if ( key->keyStringValue().startWithOrEqualTo('#') ) continue; // Commented out, ignored. This is a tempororay litle change of behavior because that's how the new parser will works. - if ( key->keyStringValue().isEqual("!") ) { - // '!' means disabled. If Label is only '!', means an empty disabled label... - continue; - } - - XStringW DevicePathStr = key->keyStringValue(); - // DBG("Device: %ls\n", DevicePathStr); - - // when key in Devices/Properties is one of the strings "PrimaryGPU" / "SecondaryGPU", use device path of first / second gpu accordingly -//#ifdef CLOVER_BUILD -// if ( DevicePathStr.isEqualIC("PrimaryGPU") ) { -// DevicePath = DevicePathFromHandle(gGraphics[0].Handle); // first gpu -// } else if ( DevicePathStr.isEqualIC("SecondaryGPU") && NGFX > 1) { -// DevicePath = DevicePathFromHandle(gGraphics[1].Handle); // second gpu -// } else { -// DevicePath = ConvertTextToDevicePath(DevicePathStr.wc_str()); //TODO +// NGFX = 0; +// NHDA = 0; +// AudioList.setEmpty(); +// //Arpt.Valid = FALSE; //global variables initialized by 0 - c-language +// XStringW GopDevicePathStr; +// XStringW DevicePathStr; +// +// DbgHeader("GetDevices"); +// +// // Get GOP handle, in order to check to which GPU the monitor is currently connected +// Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleArray); +// if (!EFI_ERROR(Status)) { +// GopDevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[0])); +// DBG("GOP found at: %ls\n", GopDevicePathStr.wc_str()); +// } +// +// // Scan PCI handles +// Status = gBS->LocateHandleBuffer ( +// ByProtocol, +// &gEfiPciIoProtocolGuid, +// NULL, +// &HandleCount, +// &HandleArray +// ); +// +// if (!EFI_ERROR(Status)) { +// for (Index = 0; Index < HandleCount; ++Index) { +// Status = gBS->HandleProtocol(HandleArray[Index], &gEfiPciIoProtocolGuid, (void **)&PciIo); +// if (!EFI_ERROR(Status)) { +// // Read PCI BUS +// PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function); +// Status = PciIo->Pci.Read ( +// PciIo, +// EfiPciIoWidthUint32, +// 0, +// sizeof (Pci) / sizeof (UINT32), +// &Pci +// ); +// +// DBG("PCI (%02llX|%02llX:%02llX.%02llX) : %04hX %04hX class=%02hhX%02hhX%02hhX\n", +// Segment, +// Bus, +// Device, +// Function, +// Pci.Hdr.VendorId, +// Pci.Hdr.DeviceId, +// Pci.Hdr.ClassCode[2], +// Pci.Hdr.ClassCode[1], +// Pci.Hdr.ClassCode[0] +// ); +// +// // GFX +// //if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY) && +// // (Pci.Hdr.ClassCode[1] == PCI_CLASS_DISPLAY_VGA) && +// // (NGFX < 4)) { +// +// if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY) && +// ((Pci.Hdr.ClassCode[1] == (PCI_CLASS_DISPLAY_VGA)) || +// (Pci.Hdr.ClassCode[1] == (PCI_CLASS_DISPLAY_OTHER))) && +// (NGFX < 4)) { +// CONST CHAR8 *CardFamily = ""; +// UINT16 UFamily; +// GFX_PROPERTIES *gfx = &gGraphics[NGFX]; +// +// // GOP device path should contain the device path of the GPU to which the monitor is connected +// DevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[Index])); +// if (StrStr(GopDevicePathStr.wc_str(), DevicePathStr.wc_str())) { +// DBG(" - GOP: Provided by device\n"); +// if (NGFX != 0) { +// // we found GOP on a GPU scanned later, make space for this GPU at first position +// for (i=NGFX; i>0; i--) { +// CopyMem(&gGraphics[i], &gGraphics[i-1], sizeof(GFX_PROPERTIES)); +// } +// ZeroMem(&gGraphics[0], sizeof(GFX_PROPERTIES)); +// gfx = &gGraphics[0]; // GPU with active GOP will be added at the first position +// } +// } +// +// gfx->DeviceID = Pci.Hdr.DeviceId; +// gfx->Segment = Segment; +// gfx->Bus = Bus; +// gfx->Device = Device; +// gfx->Function = Function; +// gfx->Handle = HandleArray[Index]; +// +// switch (Pci.Hdr.VendorId) { +// case 0x1002: +// info = NULL; +// gfx->Vendor = Ati; +// +// i = 0; +// do { +// info = &radeon_cards[i]; +// if (info->device_id == Pci.Hdr.DeviceId) { +// break; // } -// if (DevicePath == NULL) { -// continue; -// } -//#endif - //Create Device node -// DevPropDevice = gSettings.Devices.ArbProperties; - SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass* devProperty = new SETTINGS_DATA::DevicesClass::PropertiesClass::PropertyClass; -// devProperty->DevicePath = DevicePath; //this is pointer TODO ? - devProperty->DevicePathAsString.SWPrintf("%s", key->keyStringValue().c_str()); - if ( key->keyStringValue().startWith('!') ) { - // '!' means disabled. If Label is only '!', means an empty disabled label... - devProperty->DevicePathAsString = key->keyStringValue().subString(1, MAX_XSIZE); - devProperty->Enabled = false; -// devProperty->MenuItem.BValue = true; - }else{ - devProperty->DevicePathAsString = key->keyStringValue(); - devProperty->Enabled = true; -// devProperty->MenuItem.BValue = false; - } - -// gSettings.Devices.ArbProperties.InsertRef(devProperty, 0, false); // TODO - gSettings.Devices.Properties.PropertyArray.AddReference(devProperty, true); - - if ((value != NULL) && (value->isDict())) { - INTN PropCount = 0; - const TagDict* valueDict = value->getDict(); - PropCount = valueDict->dictKeyCount(); - // DBG("Add %d properties:\n", PropCount); - for (INTN j = 0; j < PropCount; j++) { - const TagKey* key2; - const TagStruct* value2; - if (EFI_ERROR(valueDict->getKeyAndValueAtIndex(j, &key2, &value2))) { - continue; - } - if ( key2->keyStringValue().startWithOrEqualTo('#') ) continue; - if ( key2->keyStringValue().isEqual("!") ) continue; - - SETTINGS_DATA::DevicesClass::SimplePropertyClass* ChildPtr = new SETTINGS_DATA::DevicesClass::SimplePropertyClass; - SETTINGS_DATA::DevicesClass::SimplePropertyClass& Child = *ChildPtr; - - if ( key2->keyStringValue().startWith('!') ) { // startWaith return false if XString == '#' - Child.MenuItem.BValue = FALSE; - Child.Key = key2->keyStringValue().subString(1, MAX_XSIZE); - } - else { - Child.MenuItem.BValue = devProperty->Enabled; - Child.Key = key2->keyStringValue(); - } - - - // DBG("%s\n type %d\n", Child.Key, Prop3->type); - if (value2 && (value2->isString()) && value2->getString()->stringValue().notEmpty()) { - //first suppose it is Ascii string - Child.Value.ncpy(value2->getString()->stringValue().c_str(), value2->getString()->stringValue().sizeInBytesIncludingTerminator()); - Child.ValueType = kTagTypeString; - } - else if (value2 && (value2->isInt64())) { - if ( value2->getInt64()->intValue() < MIN_INT32 || value2->getInt64()->intValue() > MAX_INT32 ) { - MsgLog("Invalid int value for key %s\n", key2->keyStringValue().c_str()); - }else{ - INT32 intValue = (INT32)value2->getInt64()->intValue(); - Child.Value.cpy(intValue); - Child.ValueType = kTagTypeInteger; - } - } - else if (value2 && value2->isTrue() ) { - uint8_t b = 1; - Child.Value.cpy(b); - Child.ValueType = kTagTypeTrue; - } - else if ( value2 && value2->isFalse() ) { - uint8_t b = 0; - Child.Value.cpy(b); - Child.ValueType = kTagTypeFalse; - } - else if (value2 && (value2->isData())) { - Child.Value = value2->getData()->data(); - Child.ValueType = kTagTypeData; - } - devProperty->propertiesArray.AddReference(ChildPtr, true); - } - } - } - } - } - } - } - - Prop = DevicesDict->propertyForKey("LANInjection"); - gSettings.Devices.LANInjection = !IsPropertyNotNullAndFalse(Prop); //default = TRUE - - Prop = DevicesDict->propertyForKey("HDMIInjection"); - gSettings.Devices.HDMIInjection = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("NoDefaultProperties"); - gSettings.Devices.NoDefaultProperties = !IsPropertyNotNullAndFalse(Prop); - - const TagArray* ArbitraryArray = DevicesDict->arrayPropertyForKey("Arbitrary"); // array of dict - if (ArbitraryArray != NULL) { - INTN Index; - INTN Count = ArbitraryArray->arrayContent().size(); - - if (Count > 0) { - DBG("Add %lld devices (Arbitrary):\n", Count); - for (Index = 0; Index < Count; Index++) { - UINTN DeviceAddr = 0U; - XString8 Label; - DBG(" - [%02lld]:", Index); - const TagDict* Dict2 = ArbitraryArray->dictElementAt(Index, "Arbitrary"_XS8); - const TagStruct* Prop3; - Prop3 = Dict2->propertyForKey("PciAddr"); - if (Prop3 != NULL) { - UINT8 Bus, Dev, Func; - - if ( !Prop3->isString() ) { - MsgLog("ATTENTION : property not string in PciAddr\n"); - continue; - } - if ( Prop3->getString()->stringValue().length() < 2 || Prop3->getString()->stringValue()[2] != ':') { - DBG(" wrong PciAddr string: %s\n", Prop3->getString()->stringValue().c_str()); - continue; - } - CONST CHAR8* Str = Prop3->getString()->stringValue().c_str(); - Bus = hexstrtouint8(Str); - Dev = hexstrtouint8(&Str[3]); - Func = hexstrtouint8(&Str[6]); - DeviceAddr = PCIADDR(Bus, Dev, Func); - Label.S8Printf("[%02hhX:%02hhX.%02hhX] ", Bus, Dev, Func); - DBG(" %s", Label.c_str()); - } else { - DBG(" no PciAddr\n"); - continue; - } - - Prop3 = Dict2->propertyForKey("Comment"); - if (Prop3 != NULL) { - if ( !Prop3->isString() ) { - MsgLog("ATTENTION : property not string in Comment\n"); - }else{ - Label += Prop3->getString()->stringValue(); - DBG(" (%s)", Prop3->getString()->stringValue().c_str()); - } - } - DBG("\n"); - const TagArray* CustomPropertiesArray = Dict2->arrayPropertyForKey("CustomProperties"); // array of dict - if (CustomPropertiesArray != NULL) { - const TagDict* Dict3; - INTN PropIndex; - INTN PropCount = CustomPropertiesArray->arrayContent().size(); - SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass* arbProp = NULL; - - for (PropIndex = 0; PropIndex < PropCount; PropIndex++) { - Dict3 = CustomPropertiesArray->dictElementAt(PropIndex, "CustomProperties"_XS8); - SETTINGS_DATA::DevicesClass::SimplePropertyClass* newDevProp = new SETTINGS_DATA::DevicesClass::SimplePropertyClass; - - const TagStruct* DisabledProp = Dict3->propertyForKey("Disabled"); - newDevProp->MenuItem.BValue = !IsPropertyNotNullAndTrue(DisabledProp); - - DisabledProp = Dict3->propertyForKey("Key"); - if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { - newDevProp->Key = DisabledProp->getString()->stringValue(); - } - - DisabledProp = Dict3->propertyForKey("Value"); - if (DisabledProp && (DisabledProp->isString()) && DisabledProp->getString()->stringValue().notEmpty()) { - //first suppose it is Ascii string - newDevProp->Value.ncpy(DisabledProp->getString()->stringValue().c_str(), DisabledProp->getString()->stringValue().sizeInBytesIncludingTerminator()); - newDevProp->ValueType = kTagTypeString; - } else if (DisabledProp && (DisabledProp->isInt64())) { - if ( DisabledProp->getInt64()->intValue() < MIN_INT32 || DisabledProp->getInt64()->intValue() > MAX_INT32 ) { - MsgLog("Invalid int value for key 'Value'\n"); - }else{ - INT32 intValue = (INT32)DisabledProp->getInt64()->intValue(); - newDevProp->Value.cpy(intValue); - newDevProp->ValueType = kTagTypeInteger; - } - } else if ( DisabledProp && DisabledProp->isTrue() ) { - newDevProp->Value.cpy((uint32_t)1); - newDevProp->ValueType = kTagTypeTrue; - } else if ( DisabledProp && DisabledProp->isFalse() ) { - newDevProp->Value.cpy((uint32_t)0); - newDevProp->ValueType = kTagTypeFalse; - } else { - //else data - UINTN Size = 0; - uint8_t* Data = GetDataSetting (Dict3, "Value", &Size); - newDevProp->Value.stealValueFrom(Data, Size); - newDevProp->ValueType = kTagTypeData; - } - - //Special case. In future there must be more such cases -// if ( newDevProp->Key.contains("-platform-id") ) { -// CopyMem((CHAR8*)&gSettings.Graphics.IgPlatform, newDevProp->Value.data(), 4); -// } - if ( arbProp == NULL ) { - arbProp = new SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass(); - arbProp->Device = (UINT32)DeviceAddr; - arbProp->Label = Label; - gSettings.Devices.ArbitraryArray.AddReference(arbProp, true); - } - arbProp->CustomPropertyArray.AddReference(newDevProp, true); - } //for() device properties - } - } //for() devices - } - // settingsData.NrAddProperties = 0xFFFE; - } - //can use AddProperties with ArbProperties - const TagArray* AddPropertiesArray = DevicesDict->arrayPropertyForKey("AddProperties"); // array of dict - if (AddPropertiesArray != NULL) { - INTN i; - INTN Count = AddPropertiesArray->arrayContent().size(); - INTN Index = 0; //begin from 0 if second enter -//count = 0x1F1E1D1C1B1A1918 - if (Count > 0) { - DBG("Add %lld properties:\n", Count); - gSettings.Devices.AddPropertyArray.setEmpty(); - - for (i = 0; i < Count; i++) { - UINTN Size = 0; - DBG(" - [%02lld]:", i); - const TagDict* Dict2 = AddPropertiesArray->dictElementAt(i, "AddProperties"_XS8); - const TagStruct* DeviceProp = Dict2->propertyForKey("Device"); - SETTINGS_DATA::DevicesClass::AddPropertyClass* Property = new SETTINGS_DATA::DevicesClass::AddPropertyClass(); - - if (DeviceProp && (DeviceProp->isString()) && DeviceProp->getString()->stringValue().notEmpty()) { - if (DeviceProp->getString()->stringValue().isEqualIC("ATI")) { - Property->Device = (UINT32)DEV_ATI; - } else if (DeviceProp->getString()->stringValue().isEqualIC("NVidia")) { - Property->Device = (UINT32)DEV_NVIDIA; - } else if (DeviceProp->getString()->stringValue().isEqualIC("IntelGFX")) { - Property->Device = (UINT32)DEV_INTEL; - } else if (DeviceProp->getString()->stringValue().isEqualIC("LAN")) { - Property->Device = (UINT32)DEV_LAN; - } else if (DeviceProp->getString()->stringValue().isEqualIC("WIFI")) { - Property->Device = (UINT32)DEV_WIFI; - } else if (DeviceProp->getString()->stringValue().isEqualIC("Firewire")) { - Property->Device = (UINT32)DEV_FIREWIRE; - } else if (DeviceProp->getString()->stringValue().isEqualIC("SATA")) { - Property->Device = (UINT32)DEV_SATA; - } else if (DeviceProp->getString()->stringValue().isEqualIC("IDE")) { - Property->Device = (UINT32)DEV_IDE; - } else if (DeviceProp->getString()->stringValue().isEqualIC("HDA")) { - Property->Device = (UINT32)DEV_HDA; - } else if (DeviceProp->getString()->stringValue().isEqualIC("HDMI")) { - Property->Device = (UINT32)DEV_HDMI; - } else if (DeviceProp->getString()->stringValue().isEqualIC("LPC")) { - Property->Device = (UINT32)DEV_LPC; - } else if (DeviceProp->getString()->stringValue().isEqualIC("SmBUS")) { - Property->Device = (UINT32)DEV_SMBUS; - } else if (DeviceProp->getString()->stringValue().isEqualIC("USB")) { - Property->Device = (UINT32)DEV_USB; - } else { - DBG(" unknown device, ignored\n"/*, i*/); - continue; - } - } - - if ( DeviceProp->isString() ) DBG(" %s ", DeviceProp->getString()->stringValue().c_str()); - - const TagStruct* Prop2 = Dict2->propertyForKey("Disabled"); - Property->MenuItem.BValue = !IsPropertyNotNullAndTrue(Prop2); - - Prop2 = Dict2->propertyForKey("Key"); - if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { - Property->Key = Prop2->getString()->stringValue(); - } - - Prop2 = Dict2->propertyForKey("Value"); - if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { - //first suppose it is Ascii string - Property->Value.ncpy(Prop2->getString()->stringValue().c_str(), Prop2->getString()->stringValue().sizeInBytesIncludingTerminator()); - Property->ValueType = kTagTypeString; - } else if (Prop2 && (Prop2->isInt64())) { - if ( Prop2->getInt64()->intValue() < MIN_INT32 || Prop2->getInt64()->intValue() > MAX_INT32 ) { - MsgLog("Invalid int value for key 'Value'\n"); - }else{ - INT32 intValue = (INT32)Prop2->getInt64()->intValue(); - Property->Value.cat(intValue); - Property->ValueType = kTagTypeInteger; -// Property->Value = (__typeof__(Property->Value))AllocatePool (sizeof(intValue)); -// // CopyMem(settingsData.AddProperties[Index].Value, &Prop2->intValue, 4); -// *(INT32*)(Property->Value) = intValue; -// Property->ValueLen = sizeof(intValue); - } - } else { - //else data - uint8_t* Data = GetDataSetting (Dict2, "Value", &Size); - Property->Value.stealValueFrom(Data, Size); - Property->ValueType = kTagTypeData; - } - - DBG("Key: %s, len: %zu\n", Property->Key.c_str(), Property->Value.size()); - - if (!Property->MenuItem.BValue) { - DBG(" property disabled at config\n"); - } - - gSettings.Devices.AddPropertyArray.AddReference(Property, true); - ++Index; - } - -// gSettings.Devices.AddPropertyArray.size() = Index; - } - } - //end AddProperties - - const TagDict* FakeIDDict = DevicesDict->dictPropertyForKey("FakeID"); - if (FakeIDDict != NULL) { - const TagStruct* Prop2 = FakeIDDict->propertyForKey("ATI"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeATI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("NVidia"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeNVidia = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("IntelGFX"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeIntel = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("LAN"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeLAN = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("WIFI"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeWIFI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("SATA"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeSATA = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("XHCI"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeXHCI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - - Prop2 = FakeIDDict->propertyForKey("IMEI"); - if (Prop2 && (Prop2->isString())) { - gSettings.Devices.FakeID.FakeIMEI = (UINT32)AsciiStrHexToUint64(Prop2->getString()->stringValue()); - } - } - - Prop = DevicesDict->propertyForKey("UseIntelHDMI"); - gSettings.Devices.UseIntelHDMI = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("ForceHPET"); - gSettings.Devices.ForceHPET = IsPropertyNotNullAndTrue(Prop); - - Prop = DevicesDict->propertyForKey("DisableFunctions"); - if (Prop && (Prop->isString())) { - gSettings.Devices.DisableFunctions = (UINT32)AsciiStrHexToUint64(Prop->getString()->stringValue()); - } - - Prop = DevicesDict->propertyForKey("AirportBridgeDeviceName"); - if (Prop && (Prop->isString())) { - if ( Prop->getString()->stringValue().length() != 4 ) { - MsgLog("ERROR IN PLIST : AirportBridgeDeviceName must 4 chars long"); - }else{ - gSettings.Devices.AirportBridgeDeviceName = Prop->getString()->stringValue(); - } - } - - const TagDict* AudioDict = DevicesDict->dictPropertyForKey("Audio"); - if (AudioDict != NULL) { - // HDA - // Prop = GetProperty(Prop2, "ResetHDA"); - // settingsData.ResetHDA = IsPropertyTrue(Prop); - Prop = AudioDict->propertyForKey("Inject"); - if (Prop != NULL) { - // enabled by default - // syntax: - // - HDAInjection=No or 0 - disables injection - // - HDAInjection=887 - injects layout-id 887 decimal (0x00000377) - // - HDAInjection=0x377 - injects layout-id 887 decimal (0x00000377) - // - HDAInjection=Detect - reads codec device id (eg. 0x0887) - // converts it to decimal 887 and injects this as layout-id. - // if hex device is cannot be converted to decimal, injects legacy value 12 decimal - // - all other values are equal to HDAInjection=Detect - if (Prop->isInt64()) { - gSettings.Devices.Audio.HDALayoutId = (INT32)Prop->getInt64()->intValue(); //must be signed - gSettings.Devices.Audio.HDAInjection = (gSettings.Devices.Audio.HDALayoutId > 0); - } else if (Prop->isString()){ - if ( Prop->getString()->stringValue().notEmpty() && (Prop->getString()->stringValue()[0] == 'n' || Prop->getString()->stringValue()[0] == 'N') ) { - // if starts with n or N, then no HDA injection - gSettings.Devices.Audio.HDAInjection = FALSE; - } else if ( Prop->getString()->stringValue().length() > 1 && - Prop->getString()->stringValue()[0] == '0' && - ( Prop->getString()->stringValue()[1] == 'x' || Prop->getString()->stringValue()[1] == 'X' ) ) { - // assume it's a hex layout id - gSettings.Devices.Audio.HDALayoutId = (INT32)AsciiStrHexToUintn(Prop->getString()->stringValue()); - gSettings.Devices.Audio.HDAInjection = TRUE; - } else { - // assume it's a decimal layout id - gSettings.Devices.Audio.HDALayoutId = (INT32)AsciiStrDecimalToUintn(Prop->getString()->stringValue()); - gSettings.Devices.Audio.HDAInjection = TRUE; - } - } - } - - Prop = AudioDict->propertyForKey("AFGLowPowerState"); - gSettings.Devices.Audio.AFGLowPowerState = IsPropertyNotNullAndTrue(Prop); - } - - const TagDict* USBDict = DevicesDict->dictPropertyForKey("USB"); - if (USBDict != NULL) { - // USB - Prop = USBDict->propertyForKey("Inject"); - gSettings.Devices.USB.USBInjection = !IsPropertyNotNullAndFalse(Prop); // enabled by default - - Prop = USBDict->propertyForKey("AddClockID"); - gSettings.Devices.USB.InjectClockID = IsPropertyNotNullAndTrue(Prop); // disabled by default - // enabled by default for CloverEFI - // disabled for others - gSettings.Devices.USB.USBFixOwnership = gFirmwareClover; - Prop = USBDict->propertyForKey("FixOwnership"); - if (Prop != NULL) { - gSettings.Devices.USB.USBFixOwnership = IsPropertyNotNullAndTrue(Prop); - } - DBG("USB FixOwnership: %s\n", gSettings.Devices.USB.USBFixOwnership?"yes":"no"); - - Prop = USBDict->propertyForKey("HighCurrent"); - gSettings.Devices.USB.HighCurrent = IsPropertyNotNullAndTrue(Prop); - - Prop = USBDict->propertyForKey("NameEH00"); - gSettings.Devices.USB.NameEH00 = IsPropertyNotNullAndTrue(Prop); - } - } - - //*** ACPI ***// - - getACPISettings(CfgDict, gSettings); - - - - - //done until here - - - - - - - //*** SMBIOS ***// - const TagDict* SMBIOSDict = CfgDict->dictPropertyForKey("SMBIOS"); - if (SMBIOSDict != NULL) { - - ParseSMBIOSSettings(gSettings, SMBIOSDict); - - const TagStruct* Prop = SMBIOSDict->propertyForKey("Trust"); - if (Prop != NULL) { - if (IsPropertyNotNullAndFalse(Prop)) { - gSettings.Smbios.TrustSMBIOS = FALSE; - } else if (IsPropertyNotNullAndTrue(Prop)) { - gSettings.Smbios.TrustSMBIOS = TRUE; - } - } - Prop = SMBIOSDict->propertyForKey("MemoryRank"); - gSettings.Smbios.Attribute = (INT8)GetPropertyAsInteger(Prop, -1); //1==Single Rank, 2 == Dual Rank, 0==undefined -1 == keep as is - - // Delete the user memory when a new config is selected - INTN i = 0; - for (i = 0; i < gSettings.Smbios.Memory.SlotCounts && i < MAX_RAM_SLOTS; i++) { - gSettings.Smbios.Memory.User[i].ModuleSize = 0; - gSettings.Smbios.Memory.User[i].InUse = 0; - } - gSettings.Smbios.Memory.SlotCounts = 0; - gSettings.Smbios.Memory.UserChannels = 0; - gSettings.Smbios.InjectMemoryTables = FALSE; - - // Inject memory tables into SMBIOS - const TagDict* MemoryDict = SMBIOSDict->dictPropertyForKey("Memory"); - if (MemoryDict != NULL){ - // Get memory table count - const TagStruct* Prop2 = MemoryDict->propertyForKey("SlotCount"); - gSettings.Smbios.Memory.SlotCounts = (UINT8)GetPropertyAsInteger(Prop2, 0); - // Get memory channels - Prop2 = MemoryDict->propertyForKey("Channels"); - gSettings.Smbios.Memory.UserChannels = (UINT8)GetPropertyAsInteger(Prop2, 0); - // Get memory tables - const TagArray* ModulesArray = MemoryDict->arrayPropertyForKey("Modules"); // array of dict - if (ModulesArray != NULL) { - INTN Count = ModulesArray->arrayContent().size(); - for (i = 0; i < Count; i++) { - const TagDict* Prop3 = ModulesArray->dictElementAt(i, "SMBIOS/Memory/Modules"_XS8); - int Slot = MAX_RAM_SLOTS; - RAM_SLOT_INFO *SlotPtr; - // Get memory slot - Prop2 = Prop3->propertyForKey("Slot"); - if (Prop2 == NULL) { - continue; - } - - if (Prop2->isString() && Prop2->getString()->stringValue().notEmpty() ) { - Slot = (UINT8)AsciiStrDecimalToUintn(Prop2->getString()->stringValue()); - } else if (Prop2->isInt64()) { - Slot = (UINT8)Prop2->getInt64()->intValue(); - } else { - continue; - } - - if (Slot >= MAX_RAM_SLOTS) { - continue; - } - - SlotPtr = &gSettings.Smbios.Memory.User[Slot]; - - // Get memory size - Prop2 = Prop3->propertyForKey("Size"); - SlotPtr->ModuleSize = (UINT32)GetPropertyAsInteger(Prop2, SlotPtr->ModuleSize); - // Get memory frequency - Prop2 = Prop3->propertyForKey("Frequency"); - SlotPtr->Frequency = (UINT32)GetPropertyAsInteger(Prop2, SlotPtr->Frequency); - // Get memory vendor - Prop2 = Prop3->propertyForKey("Vendor"); - if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { - SlotPtr->Vendor.S8Printf("%s", Prop2->getString()->stringValue().c_str()); - } - // Get memory part number - Prop2 = Prop3->propertyForKey("Part"); - if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { - SlotPtr->PartNo.S8Printf("%s", Prop2->getString()->stringValue().c_str()); - } - // Get memory serial number - Prop2 = Prop3->propertyForKey("Serial"); - if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { - SlotPtr->SerialNo.S8Printf("%s", Prop2->getString()->stringValue().c_str()); - } - // Get memory type - SlotPtr->Type = MemoryTypeDdr3; - Prop2 = Prop3->propertyForKey("Type"); - if (Prop2 && Prop2->isString() && Prop2->getString()->stringValue().notEmpty()) { - if (Prop2->getString()->stringValue().isEqualIC("DDR2")) { - SlotPtr->Type = MemoryTypeDdr2; - } else if (Prop2->getString()->stringValue().isEqualIC("DDR3")) { - SlotPtr->Type = MemoryTypeDdr3; - } else if (Prop2->getString()->stringValue().isEqualIC("DDR4")) { - SlotPtr->Type = MemoryTypeDdr4; - } else if (Prop2->getString()->stringValue().isEqualIC("DDR")) { - SlotPtr->Type = MemoryTypeDdr; - } - } - - SlotPtr->InUse = (SlotPtr->ModuleSize > 0); - if (SlotPtr->InUse) { - if (gSettings.Smbios.Memory.SlotCounts <= Slot) { - gSettings.Smbios.Memory.SlotCounts = Slot + 1; - } - } - } - - if (gSettings.Smbios.Memory.SlotCounts > 0) { - gSettings.Smbios.InjectMemoryTables = TRUE; - } - } - } - - const TagArray* SlotsArray = SMBIOSDict->arrayPropertyForKey("Slots"); // array of dict - if (SlotsArray != NULL) { - INTN DeviceN; - INTN Count = SlotsArray->arrayContent().size(); - - for (INTN Index = 0; Index < Count; ++Index) { - const TagDict* SlotsDict = SlotsArray->dictElementAt(Index, "SMBIOS/Slots"_XS8); - if (!Index) { - DBG("Slots->Devices:\n"); - } - - const TagStruct* Prop2 = SlotsDict->propertyForKey("Device"); - DeviceN = -1; - if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { - if (Prop2->getString()->stringValue().isEqualIC("ATI")) { - DeviceN = 0; - } else if (Prop2->getString()->stringValue().isEqualIC("NVidia")) { - DeviceN = 1; - } else if (Prop2->getString()->stringValue().isEqualIC("IntelGFX")) { - DeviceN = 2; - } else if (Prop2->getString()->stringValue().isEqualIC("LAN")) { - DeviceN = 5; - } else if (Prop2->getString()->stringValue().isEqualIC("WIFI")) { - DeviceN = 6; - } else if (Prop2->getString()->stringValue().isEqualIC("Firewire")) { - DeviceN = 12; - } else if (Prop2->getString()->stringValue().isEqualIC("HDMI")) { - DeviceN = 4; - } else if (Prop2->getString()->stringValue().isEqualIC("USB")) { - DeviceN = 11; - } else if (Prop2->getString()->stringValue().isEqualIC("NVME")) { - DeviceN = 13; - } else { - DBG(" - add properties to unknown device %s, ignored\n", Prop2->getString()->stringValue().c_str()); - continue; - } - } else { - DBG(" - no device property for slot\n"); - continue; - } - - if (DeviceN >= 0) { - SLOT_DEVICE *SlotDevice = &gSettings.Smbios.SlotDevices[DeviceN]; - Prop2 = SlotsDict->propertyForKey("ID"); - SlotDevice->SlotID = (UINT8)GetPropertyAsInteger(Prop2, DeviceN); - SlotDevice->SlotType = SlotTypePci; - - Prop2 = SlotsDict->propertyForKey("Type"); - if (Prop2 != NULL) { - switch ((UINT8)GetPropertyAsInteger(Prop2, 0)) { - case 0: - SlotDevice->SlotType = SlotTypePci; - break; - - case 1: - SlotDevice->SlotType = SlotTypePciExpressX1; - break; - - case 2: - SlotDevice->SlotType = SlotTypePciExpressX2; - break; - - case 4: - SlotDevice->SlotType = SlotTypePciExpressX4; - break; - - case 8: - SlotDevice->SlotType = SlotTypePciExpressX8; - break; - - case 16: - SlotDevice->SlotType = SlotTypePciExpressX16; - break; - - default: - SlotDevice->SlotType = SlotTypePciExpress; - break; - } - } - Prop2 = SlotsDict->propertyForKey("Name"); - if (Prop2 && (Prop2->isString()) && Prop2->getString()->stringValue().notEmpty()) { - SlotDevice->SlotName = Prop2->getString()->stringValue(); - } else { - SlotDevice->SlotName.S8Printf("PCI Slot %lld", DeviceN); - } - - DBG(" - %s\n", SlotDevice->SlotName.c_str()); - } - } - } - } - - //CPU - gSettings.CPU.CpuType = GetAdvancedCpuType(); //let it be default - gSettings.CPU.SavingMode = 0xFF; //default - const TagDict* CPUDict = CfgDict->dictPropertyForKey("CPU"); - if (CPUDict != NULL) { - const TagStruct* Prop = CPUDict->propertyForKey("QPI"); - if (Prop != NULL) { - gSettings.CPU.QPI = (UINT16)GetPropertyAsInteger(Prop, gSettings.CPU.QPI); - DBG("QPI: %dMHz\n", gSettings.CPU.QPI); - } - - Prop = CPUDict->propertyForKey("FrequencyMHz"); - if (Prop != NULL) { - gSettings.CPU.CpuFreqMHz = (UINT32)GetPropertyAsInteger(Prop, gSettings.CPU.CpuFreqMHz); - DBG("CpuFreq: %dMHz\n", gSettings.CPU.CpuFreqMHz); - } - - Prop = CPUDict->propertyForKey("Type"); - if (Prop != NULL) { - gSettings.CPU.CpuType = (UINT16)GetPropertyAsInteger(Prop, gSettings.CPU.CpuType); - DBG("CpuType: %hX\n", gSettings.CPU.CpuType); - } - - Prop = CPUDict->propertyForKey("QEMU"); - gSettings.CPU.QEMU = IsPropertyNotNullAndTrue(Prop); - if (gSettings.CPU.QEMU) { - DBG("QEMU: true\n"); - } - - Prop = CPUDict->propertyForKey("UseARTFrequency"); - if (Prop != NULL) { - gSettings.CPU.UseARTFreq = IsPropertyNotNullAndTrue(Prop); - } - - gSettings.CPU.UserChange = FALSE; - Prop = CPUDict->propertyForKey("BusSpeedkHz"); - if (Prop != NULL) { - gSettings.CPU.BusSpeed = (UINT32)GetPropertyAsInteger(Prop, gSettings.CPU.BusSpeed); - DBG("BusSpeed: %dkHz\n", gSettings.CPU.BusSpeed); - gSettings.CPU.UserChange = TRUE; - } - - Prop = CPUDict->propertyForKey("C6"); - if (Prop != NULL) { -// gSettings.ACPI.SSDT.EnableC6 = IsPropertyNotNullAndTrue(Prop); - gSettings.CPU._EnableC6 = IsPropertyNotNullAndTrue(Prop); - } - - Prop = CPUDict->propertyForKey("C4"); - if (Prop != NULL) { -// gSettings.ACPI.SSDT.EnableC4 = IsPropertyNotNullAndTrue(Prop); - gSettings.CPU._EnableC4 = IsPropertyNotNullAndTrue(Prop); - } - - Prop = CPUDict->propertyForKey("C2"); - if (Prop != NULL) { -// gSettings.ACPI.SSDT.EnableC2 = IsPropertyNotNullAndTrue(Prop); - gSettings.CPU._EnableC2 = IsPropertyNotNullAndTrue(Prop); - } - - //Usually it is 0x03e9, but if you want Turbo, you may set 0x00FA - Prop = CPUDict->propertyForKey("Latency"); -// gSettings.ACPI.SSDT.C3Latency = (UINT16)GetPropertyAsInteger(Prop, gSettings.ACPI.SSDT.C3Latency); - if ( Prop != NULL ) gSettings.CPU._C3Latency = (UINT16)GetPropertyAsInteger(Prop, 0); - - Prop = CPUDict->propertyForKey("SavingMode"); - gSettings.CPU.SavingMode = (UINT8)GetPropertyAsInteger(Prop, 0xFF); //the default value means not set - - Prop = CPUDict->propertyForKey("HWPEnable"); - gSettings.CPU.HWPEnable = IsPropertyNotNullAndTrue(Prop); -// if (gSettings.CPU.HWPEnable && (gCPUStructure.Model >= CPU_MODEL_SKYLAKE_U)) { -// GlobalConfig.HWP = TRUE; -//#ifdef CLOVER_BUILD -// AsmWriteMsr64 (MSR_IA32_PM_ENABLE, 1); -//#endif -// } - Prop = CPUDict->propertyForKey("HWPValue"); - if ( Prop ) gSettings.CPU.HWPValue = (UINT32)GetPropertyAsInteger(Prop, 0); -// if (Prop && GlobalConfig.HWP) { -//#ifdef CLOVER_BUILD -// AsmWriteMsr64 (MSR_IA32_HWP_REQUEST, gSettings.CPU.HWPValue); -//#endif -// } - - Prop = CPUDict->propertyForKey("TDP"); - gSettings.CPU.TDP = (UINT8)GetPropertyAsInteger(Prop, 0); - - Prop = CPUDict->propertyForKey("TurboDisable"); - if (Prop && IsPropertyNotNullAndTrue(Prop)) { -#ifdef CLOVER_BUILD - UINT64 msr = AsmReadMsr64(MSR_IA32_MISC_ENABLE); -#endif - gSettings.CPU.TurboDisabled = 1; -#ifdef CLOVER_BUILD - msr &= ~(1ULL<<38); - AsmWriteMsr64 (MSR_IA32_MISC_ENABLE, msr); -#endif - } - } - - // RtVariables - gSettings.RtVariables.RtROMAsData.setEmpty(); - const TagDict* RtVariablesDict = CfgDict->dictPropertyForKey("RtVariables"); - if (RtVariablesDict != NULL) { - // ROM: bin data or base 64 encoded bin data - const TagStruct* Prop = RtVariablesDict->propertyForKey("ROM"); - if (Prop != NULL) { - if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr0") ) { - gSettings.RtVariables.RtROMAsString = Prop->getString()->stringValue(); - } else if ( Prop->isString() && Prop->getString()->stringValue().isEqualIC("UseMacAddr1") ) { - gSettings.RtVariables.RtROMAsString = Prop->getString()->stringValue(); - } else if ( Prop->isString() || Prop->isData() ) { // GetDataSetting accept both - UINTN ROMLength = 0; - uint8_t* ROM = GetDataSetting(RtVariablesDict, "ROM", &ROMLength); - gSettings.RtVariables.RtROMAsData.stealValueFrom(ROM, ROMLength); - } else { - MsgLog("MALFORMED PLIST : property not string or data in RtVariables/ROM\n"); - } - } - - // MLB: some value - Prop = RtVariablesDict->propertyForKey("MLB"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in RtVariables/MLB\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - gSettings.RtVariables.RtMLBSetting = Prop->getString()->stringValue(); - } - } - } - // CsrActiveConfig - Prop = RtVariablesDict->propertyForKey("CsrActiveConfig"); - gSettings.RtVariables.CsrActiveConfig = (UINT32)GetPropertyAsInteger(Prop, 0x2E7); //the value 0xFFFF means not set - - //BooterConfig - Prop = RtVariablesDict->propertyForKey("BooterConfig"); - gSettings.RtVariables.BooterConfig = (UINT16)GetPropertyAsInteger(Prop, 0); //the value 0 means not set - //let it be string like "log=0" - Prop = RtVariablesDict->propertyForKey("BooterCfg"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in RtVariables/BooterCfg\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - gSettings.RtVariables.BooterCfgStr = Prop->getString()->stringValue(); - } - } - } - //Block external variables - const TagArray* BlockArray = RtVariablesDict->arrayPropertyForKey("Block"); // array of dict - if (BlockArray != NULL) { - INTN i; - INTN Count = BlockArray->arrayContent().size(); - gSettings.RtVariables.BlockRtVariableArray.setEmpty(); - SETTINGS_DATA::RtVariablesClass::RT_VARIABLES* RtVariablePtr = new SETTINGS_DATA::RtVariablesClass::RT_VARIABLES(); - SETTINGS_DATA::RtVariablesClass::RT_VARIABLES& RtVariable = *RtVariablePtr; - for (i = 0; i < Count; i++) { - const TagDict* BlockDict = BlockArray->dictElementAt(i, "Block"_XS8); - const TagStruct* Prop2 = BlockDict->propertyForKey("Comment"); - if ( Prop2 != NULL ) { - if ( !Prop2->isString() ) { - MsgLog("ATTENTION : property not string in Block/Comment\n"); - }else{ - if( Prop2->getString()->stringValue().notEmpty() ) { - DBG(" %s\n", Prop2->getString()->stringValue().c_str()); - RtVariable.Comment = Prop2->getString()->stringValue(); - } - } - } - Prop2 = BlockDict->propertyForKey("Disabled"); - if (IsPropertyNotNullAndTrue(Prop2)) { - RtVariable.Disabled = true; -// continue; - } - Prop2 = BlockDict->propertyForKey("Guid"); - if ( Prop2 != NULL ) { - if ( !Prop2->isString() ) { - MsgLog("ATTENTION : property not string in Block/Guid\n"); - }else{ - if( Prop2->getString()->stringValue().notEmpty() ) { - if (IsValidGuidString(Prop2->getString()->stringValue())) { - StrToGuidLE(Prop2->getString()->stringValue(), &RtVariable.Guid); - }else{ - StrToGuidLE(nullGuidAsString, &RtVariable.Guid); - DBG("Error: invalid GUID for RT var '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop2->getString()->stringValue().c_str()); - } - } - } - } - - Prop2 = BlockDict->propertyForKey("Name"); - RtVariable.Name.setEmpty(); - if ( Prop2 != NULL ) { - if ( !Prop2->isString() ) { - MsgLog("ATTENTION : property not string in Block/Name\n"); - }else{ - if( Prop2->getString()->stringValue().notEmpty() ) { - RtVariable.Name = Prop2->getString()->stringValue(); - } - } - } - gSettings.RtVariables.BlockRtVariableArray.AddReference(RtVariablePtr, true); - } - } - } - -// if (gSettings.RtVariables.RtROM.isEmpty()) { -// EFI_GUID uuid; -// StrToGuidLE(gSettings.Smbios.SmUUID, &uuid); -// gSettings.RtVariables.RtROM.ncpy(&uuid.Data4[2], 6); -// } - -// if (gSettings.RtVariables.RtMLB.isEmpty()) { -// gSettings.RtVariables.RtMLB = gSettings.Smbios.BoardSerialNumber; -// } - - // if CustomUUID and InjectSystemID are not specified - // then use InjectSystemID=TRUE and SMBIOS UUID - // to get Chameleon's default behaviour (to make user's life easier) -// CopyMem((void*)&gUuid, (void*)&settingsData.SmUUID, sizeof(EFI_GUID)); - - // SystemParameters again - values that can depend on previous params - const TagDict* SystemParametersDict = CfgDict->dictPropertyForKey("SystemParameters"); - if (SystemParametersDict != NULL) { - //BacklightLevel - const TagStruct* Prop = SystemParametersDict->propertyForKey("BacklightLevel"); - if (Prop != NULL) { - gSettings.SystemParameters.BacklightLevel = (UINT16)GetPropertyAsInteger(Prop, gSettings.SystemParameters.BacklightLevel); - gSettings.SystemParameters.BacklightLevelConfig = TRUE; - } - - Prop = SystemParametersDict->propertyForKey("CustomUUID"); - if (Prop != NULL) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in SystemParameters/CustomUUID\n"); - }else{ - if (IsValidGuidString(Prop->getString()->stringValue())) { - gSettings.SystemParameters.CustomUuid = Prop->getString()->stringValue(); - // if CustomUUID specified, then default for InjectSystemID=FALSE - // to stay compatibile with previous Clover behaviour - DBG("The UUID is valid\n"); - }else{ - DBG("Error: invalid CustomUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n", Prop->getString()->stringValue().c_str()); - gSettings.SystemParameters.CustomUuid = {0}; - } - } - } - //else gUuid value from SMBIOS - // DBG("Finally use %s\n", strguid(&gUuid)); - - gSettings.SystemParameters._InjectSystemID = 2; - Prop = SystemParametersDict->propertyForKey("InjectSystemID"); - if ( Prop ) { - if ( Prop->isBool() ) gSettings.SystemParameters._InjectSystemID = Prop->getBool()->boolValue(); - else if ( Prop->isString() ) { - // TODO a function that takes a string and return if it's true or false - if ( Prop->getString()->stringValue().isEqualIC("true") ) gSettings.SystemParameters._InjectSystemID = 1; - else if ( Prop->getString()->stringValue()[0] == 'y' ) gSettings.SystemParameters._InjectSystemID = 1; - else if ( Prop->getString()->stringValue()[0] == 'Y' ) gSettings.SystemParameters._InjectSystemID = 1; - else if ( Prop->getString()->stringValue().isEqualIC("false") ) gSettings.SystemParameters._InjectSystemID = 0; - else if ( Prop->getString()->stringValue().isEqualIC("n") ) gSettings.SystemParameters._InjectSystemID = 0; - else if ( Prop->getString()->stringValue().isEqualIC("N") ) gSettings.SystemParameters._InjectSystemID = 0; - else { - DBG("MALFORMED PLIST : SMBIOS/InjectSystemID must be true, yes, false, no, or non existant"); - } - }else{ - DBG("MALFORMED PLIST : SMBIOS/InjectSystemID must be , or non existant"); - } - } - - Prop = SystemParametersDict->propertyForKey("NvidiaWeb"); - gSettings.SystemParameters.NvidiaWeb = IsPropertyNotNullAndTrue(Prop); - - } - - - const TagDict* BootGraphicsDict = CfgDict->dictPropertyForKey("BootGraphics"); - if (BootGraphicsDict != NULL) { - const TagStruct* Prop = BootGraphicsDict->propertyForKey("DefaultBackgroundColor"); - gSettings.BootGraphics.DefaultBackgroundColor = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); //the value 0x80000000 means not set - - Prop = BootGraphicsDict->propertyForKey("UIScale"); - gSettings.BootGraphics.UIScale = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); - - Prop = BootGraphicsDict->propertyForKey("EFILoginHiDPI"); - gSettings.BootGraphics.EFILoginHiDPI = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); - - Prop = BootGraphicsDict->propertyForKey("flagstate"); - gSettings.BootGraphics._flagstate = (UINT32)GetPropertyAsInteger(Prop, 0x80000000); - - } - /* - //Example - RMde - - char - - QQ== - - - - DictPointer = GetProperty(Dict, "SMCKeys"); - if (DictPointer != NULL) { //sss - TagStruct* Key, ValArray; - for (Key = DictPointer->tag; Key != NULL; Key = Key->tagNext) { - ValArray = Prop->tag; - if (Key->type != kTagTypeKey || ValArray == NULL) { - DBG(" ERROR: Tag is not , type = %d\n", Key->type); - continue; - } - //.... - } - } - */ - /* - { - EFI_GUID AppleGuid; - - CopyMem((void*)&AppleGuid, (void*)&gUuid, sizeof(EFI_GUID)); - AppleGuid.Data1 = SwapBytes32 (AppleGuid.Data1); - AppleGuid.Data2 = SwapBytes16 (AppleGuid.Data2); - AppleGuid.Data3 = SwapBytes16 (AppleGuid.Data3); - DBG("Platform Uuid: %s, InjectSystemID: %s\n", strguid(&AppleGuid), settingsData.InjectSystemID ? "Yes" : "No"); - } - */ - - if (GlobalConfig.gBootChanged) { - const TagDict* KernelAndKextPatchesDict = CfgDict->dictPropertyForKey("KernelAndKextPatches"); - if (KernelAndKextPatchesDict != NULL) { - DBG("refill kernel patches bcoz GlobalConfig.gBootChanged\n"); - FillinKextPatches(&gSettings.KernelAndKextPatches, KernelAndKextPatchesDict); - } - } else { - //DBG("\n ConfigName: %ls n", settingsData.ConfigName); - } - if (GlobalConfig.gThemeChanged) { - gSettings.GUI.Theme.setEmpty(); - const TagDict* GUIDict = CfgDict->dictPropertyForKey("GUI"); - if (GUIDict != NULL) { - const TagStruct* Prop = GUIDict->propertyForKey("Theme"); - if ((Prop != NULL) && (Prop->isString()) && Prop->getString()->stringValue().notEmpty()) { - gSettings.GUI.Theme.takeValueFrom(Prop->getString()->stringValue()); - DBG("Theme from new config: %ls\n", gSettings.GUI.Theme.wc_str()); - } - } - } - SaveSettings(); - } - //DBG("config.plist read and return %s\n", efiStrError(Status)); - return EFI_SUCCESS; -} -/* -static CONST CHAR8 *SearchString( - IN CONST CHAR8 *Source, - IN UINT64 SourceSize, - IN CONST CHAR8 *Search, - IN UINTN SearchSize - ) -{ - CONST CHAR8 *End = Source + SourceSize; - - while (Source < End) { - if (CompareMem(Source, Search, SearchSize) == 0) { - return Source; - } else { - Source++; - } - } - return NULL; -} -*/ - -XString8 GetAuthRootDmg(const EFI_FILE& dir, const XStringW& path) -{ - XString8 returnValue; - - XStringW plist = SWPrintf("%ls\\com.apple.Boot.plist", path.wc_str()); - if ( !FileExists(dir, plist) ) return NullXString8; - - CHAR8* PlistBuffer = NULL; - UINTN PlistLen; - TagDict* Dict = NULL; - const TagStruct* Prop = NULL; - - EFI_STATUS Status = egLoadFile(&dir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) - { - Prop = Dict->propertyForKey("Kernel Flags"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : Kernel Flags not string in ProductVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - const XString8& kernelFlags = Prop->getString()->stringValue(); - size_t idx = kernelFlags.indexOf("auth-root-dmg"); - if ( idx == MAX_XSIZE ) return NullXString8; - idx += strlen("auth-root-dmg"); - while ( idx < kernelFlags.length() && IS_BLANK(kernelFlags[idx]) ) ++idx; - if ( kernelFlags[idx] == '=' ) ++idx; - else return NullXString8; - while ( idx < kernelFlags.length() && IS_BLANK(kernelFlags[idx]) ) ++idx; - if ( kernelFlags.isEqualAtIC(idx, "file://"_XS8) ) idx += strlen("file://"); - size_t idxEnd = idx; - while ( idxEnd < kernelFlags.length() && !IS_BLANK(kernelFlags[idxEnd]) ) ++idxEnd; - returnValue = kernelFlags.subString(idx, idxEnd - idx); - } - } - } - } - if ( PlistBuffer ) FreePool(PlistBuffer); - return returnValue; -} - -MacOsVersion GetMacOSVersionFromFolder(const EFI_FILE& dir, const XStringW& path) -{ - MacOsVersion macOSVersion; - - XStringW plist = SWPrintf("%ls\\SystemVersion.plist", path.wc_str()); - if ( !FileExists(dir, plist) ) { - plist = SWPrintf("%ls\\ServerVersion.plist", path.wc_str()); - if ( !FileExists(dir, plist) ) { - plist.setEmpty(); - } - } - - if ( plist.notEmpty() ) { // found macOS System - CHAR8* PlistBuffer = NULL; - UINTN PlistLen; - TagDict* Dict = NULL; - const TagStruct* Prop = NULL; - - EFI_STATUS Status = egLoadFile(&dir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - macOSVersion = Prop->getString()->stringValue(); - } - } - } - } - if ( PlistBuffer ) FreePool(PlistBuffer); - } - return macOSVersion; -} - -MacOsVersion GetOSVersion(int LoaderType, const XStringW& APFSTargetUUID, const REFIT_VOLUME* Volume, XString8* BuildVersionPtr) -{ - XString8 OSVersion; - XString8 BuildVersion; - EFI_STATUS Status = EFI_NOT_FOUND; - CHAR8* PlistBuffer = NULL; - UINTN PlistLen; - TagDict* Dict = NULL; - const TagDict* DictPointer = NULL; - const TagStruct* Prop = NULL; - - if ( !Volume ) { - return NullXString8; - } - - if (OSTYPE_IS_OSX(LoaderType)) - { - XString8 uuidPrefix; - if ( APFSTargetUUID.notEmpty() ) uuidPrefix = S8Printf("\\%ls", APFSTargetUUID.wc_str()); - - XStringW plist = SWPrintf("%s\\System\\Library\\CoreServices\\SystemVersion.plist", uuidPrefix.c_str()); - if ( !FileExists(Volume->RootDir, plist) ) { - plist = SWPrintf("%s\\System\\Library\\CoreServices\\ServerVersion.plist", uuidPrefix.c_str()); - if ( !FileExists(Volume->RootDir, plist) ) { - plist.setEmpty(); - } - } - - if ( plist.notEmpty() ) { // found macOS System - Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - OSVersion = Prop->getString()->stringValue(); - } - } - } - Prop = Dict->propertyForKey("ProductBuildVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - BuildVersion = Prop->getString()->stringValue(); - } - } - } - Dict->FreeTag(); - } - } - } - - if (OSTYPE_IS_OSX_INSTALLER (LoaderType)) { - // Detect exact version for 2nd stage Installer (thanks to dmazar for this idea) - // This should work for most installer cases. Rest cases will be read from boot.efi before booting. - // Reworked by Sherlocks. 2018.04.12 - - // 1st stage - 1 - // Check for plist - createinstallmedia/BaseSystem/InstallDVD/InstallESD - - XStringW InstallerPlist; - - if ( APFSTargetUUID.notEmpty() ) { - InstallerPlist = SWPrintf("%ls\\System\\Library\\CoreServices\\SystemVersion.plist", APFSTargetUUID.wc_str()); - if ( !FileExists(Volume->RootDir, InstallerPlist) ) InstallerPlist.setEmpty(); - } - - if ( InstallerPlist.isEmpty() ) { - InstallerPlist = SWPrintf("\\.IABootFilesSystemVersion.plist"); // 10.9 - 10.13.3 - if (!FileExists(Volume->RootDir, InstallerPlist) && FileExists (Volume->RootDir, L"\\System\\Library\\CoreServices\\boot.efi") && - ((FileExists(Volume->RootDir, L"\\BaseSystem.dmg") && FileExists (Volume->RootDir, L"\\mach_kernel")) || // 10.7/10.8 - FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\Mac OS X Installer.app") || // 10.6/10.7 - FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\OS X Installer.app") || // 10.8 - 10.11 - FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\macOS Installer.app") || // 10.12+ - FileExists(Volume->RootDir, L"\\.IAPhysicalMedia"))) { // 10.13.4+ - InstallerPlist = SWPrintf("\\System\\Library\\CoreServices\\SystemVersion.plist"); - } - } - if (FileExists (Volume->RootDir, InstallerPlist)) { - Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - OSVersion = Prop->getString()->stringValue(); - } - } - } - Prop = Dict->propertyForKey("ProductBuildVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - BuildVersion = Prop->getString()->stringValue(); - } - } - } - Dict->FreeTag(); - } - } - -// if ( OSVersion.isEmpty() ) -// { -// if ( FileExists(Volume->RootDir, SWPrintf("\\%ls\\com.apple.installer\\BridgeVersion.plist", APFSTargetUUID.wc_str()).wc_str()) ) { -// OSVersion = "11.0"_XS8; -// // TODO so far, is there is a BridgeVersion.plist, it's version 11.0. Has to be improved with next releases. +// } while (radeon_cards[i++].device_id != 0); +// +// snprintf (gfx->Model, 64, "%s", info->model_name); +// snprintf (gfx->Config, 64, "%s", card_configs[info->cfg_name].name); +// gfx->Ports = card_configs[info->cfg_name].ports; +// DBG(" - GFX: Model=%s (ATI/AMD)\n", gfx->Model); +// +// //get mmio +// if (info->chip_family < CHIP_FAMILY_HAINAN) { +// gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[2] & ~0x0f); +// } else { +// gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[5] & ~0x0f); +// } +// gfx->Connectors = *(UINT32*)(gfx->Mmio + RADEON_BIOS_0_SCRATCH); +// // DBG(" - RADEON_BIOS_0_SCRATCH = 0x%08X\n", gfx->Connectors); +// gfx->ConnChanged = FALSE; +// +// SlotDevice = &gSettings.Smbios.SlotDevices[0]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "PCI Slot 0"_XS8; +// SlotDevice->SlotID = 1; +// SlotDevice->SlotType = SlotTypePciExpressX16; +// break; +// +// case 0x8086: +// gfx->Vendor = Intel; +// snprintf (gfx->Model, 64, "%s", get_gma_model (Pci.Hdr.DeviceId)); +// DBG(" - GFX: Model=%s (Intel)\n", gfx->Model); +// gfx->Ports = 1; +// gfx->Connectors = (1 << NGFX); +// gfx->ConnChanged = FALSE; +// break; +// +// case 0x10de: +// gfx->Vendor = Nvidia; +// Bar0 = Pci.Device.Bar[0]; +// gfx->Mmio = (UINT8*)(UINTN)(Bar0 & ~0x0f); +// //DBG("BAR: 0x%p\n", Mmio); +// // get card type +// gfx->Family = (REG32(gfx->Mmio, 0) >> 20) & 0x1ff; +// UFamily = gfx->Family & 0x1F0; +// if ((UFamily == NV_ARCH_KEPLER1) || +// (UFamily == NV_ARCH_KEPLER2) || +// (UFamily == NV_ARCH_KEPLER3)) { +// CardFamily = "Kepler"; +// } +// else if ((UFamily == NV_ARCH_FERMI1) || +// (UFamily == NV_ARCH_FERMI2)) { +// CardFamily = "Fermi"; +// } +// else if ((UFamily == NV_ARCH_MAXWELL1) || +// (UFamily == NV_ARCH_MAXWELL2)) { +// CardFamily = "Maxwell"; +// } +// else if (UFamily == NV_ARCH_PASCAL) { +// CardFamily = "Pascal"; +// } +// else if (UFamily == NV_ARCH_VOLTA) { +// CardFamily = "Volta"; +// } +// else if (UFamily == NV_ARCH_TURING) { +// CardFamily = "Turing"; +// } +// else if ((UFamily >= NV_ARCH_TESLA) && (UFamily < 0xB0)) { //not sure if 0xB0 is Tesla or Fermi +// CardFamily = "Tesla"; +// } else { +// CardFamily = "NVidia unknown"; +// } +// +// snprintf ( +// gfx->Model, +// 64, +// "%s", +// get_nvidia_model (((Pci.Hdr.VendorId << 16) | Pci.Hdr.DeviceId), +// ((Pci.Device.SubsystemVendorID << 16) | Pci.Device.SubsystemID), +// NULL) //NULL: get from generic lists +// ); +// +// DBG(" - GFX: Model=%s family %hX (%s)\n", gfx->Model, gfx->Family, CardFamily); +// gfx->Ports = 0; +// +// SlotDevice = &gSettings.Smbios.SlotDevices[1]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "PCI Slot 0"_XS8; +// SlotDevice->SlotID = 1; +// SlotDevice->SlotType = SlotTypePciExpressX16; +// break; +// +// default: +// gfx->Vendor = Unknown; +// snprintf (gfx->Model, 64, "pci%hx,%hx", Pci.Hdr.VendorId, Pci.Hdr.DeviceId); +// gfx->Ports = 1; +// gfx->Connectors = (1 << NGFX); +// gfx->ConnChanged = FALSE; +// +// break; +// } +// +// NGFX++; +// } //if gfx +// +// else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && +// (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_OTHER)) { +// SlotDevice = &gSettings.Smbios.SlotDevices[6]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "AirPort"_XS8; +// SlotDevice->SlotID = 0; +// SlotDevice->SlotType = SlotTypePciExpressX1; +// DBG(" - WIFI: Vendor= "); +// switch (Pci.Hdr.VendorId) { +// case 0x11ab: +// DBG("Marvell\n"); +// break; +// case 0x10ec: +// DBG("Realtek\n"); +// break; +// case 0x14e4: +// DBG("Broadcom\n"); +// break; +// case 0x1969: +// case 0x168C: +// DBG("Atheros\n"); +// break; +// case 0x1814: +// DBG("Ralink\n"); +// break; +// case 0x8086: +// DBG("Intel\n"); +// break; +// +// default: +// DBG(" 0x%04X\n", Pci.Hdr.VendorId); +// break; +// } +// } +// +// else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && +// (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_ETHERNET)) { +// SlotDevice = &gSettings.Smbios.SlotDevices[5]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "Ethernet"_XS8; +// SlotDevice->SlotID = 2; +// SlotDevice->SlotType = SlotTypePciExpressX1; +// gLanVendor[nLanCards] = Pci.Hdr.VendorId; +// Bar0 = Pci.Device.Bar[0]; +// gLanMmio[nLanCards++] = (UINT8*)(UINTN)(Bar0 & ~0x0f); +// if (nLanCards >= 4) { +// DBG(" - [!] too many LAN card in the system (upto 4 limit exceeded), overriding the last one\n"); +// nLanCards = 3; // last one will be rewritten +// } +// DBG(" - LAN: %llu Vendor=", nLanCards-1); +// switch (Pci.Hdr.VendorId) { +// case 0x11ab: +// DBG("Marvell\n"); +// break; +// case 0x10ec: +// DBG("Realtek\n"); +// break; +// case 0x14e4: +// DBG("Broadcom\n"); +// break; +// case 0x1969: +// case 0x168C: +// DBG("Atheros\n"); +// break; +// case 0x8086: +// DBG("Intel\n"); +// break; +// case 0x10de: +// DBG("Nforce\n"); +// break; +// +// default: +// DBG("Unknown\n"); +// break; +// } +// } +// +// else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_SERIAL) && +// (Pci.Hdr.ClassCode[1] == PCI_CLASS_SERIAL_FIREWIRE)) { +// SlotDevice = &gSettings.Smbios.SlotDevices[12]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "FireWire"_XS8; +// SlotDevice->SlotID = 3; +// SlotDevice->SlotType = SlotTypePciExpressX4; +// } +// +// else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_MEDIA) && +// ((Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_HDA) || +// (Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_AUDIO)) && +// (NHDA < 4)) { +// HDA_PROPERTIES *hda = &gAudios[NHDA]; +// +// // Populate Controllers IDs +// hda->controller_vendor_id = Pci.Hdr.VendorId; +// hda->controller_device_id = Pci.Hdr.DeviceId; +// +// // HDA Controller Info +// HdaControllerGetName(((hda->controller_device_id << 16) | hda->controller_vendor_id), &hda->controller_name); +// +// +// if (IsHDMIAudio(HandleArray[Index])) { +// DBG(" - HDMI Audio: \n"); +// +// SlotDevice = &gSettings.Smbios.SlotDevices[4]; +// SlotDevice->SegmentGroupNum = (UINT16)Segment; +// SlotDevice->BusNum = (UINT8)Bus; +// SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); +// SlotDevice->Valid = TRUE; +// SlotDevice->SlotName = "HDMI port"_XS8; +// SlotDevice->SlotID = 5; +// SlotDevice->SlotType = SlotTypePciExpressX4; +// } +// if (gSettings.Devices.Audio.ResetHDA) { +// //Slice method from VoodooHDA +// //PCI_HDA_TCSEL_OFFSET = 0x44 +// UINT8 Value = 0; +// Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); +// +// if (EFI_ERROR(Status)) { +// continue; +// } +// +// Value &= 0xf8; +// PciIo->Pci.Write (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); +// //ResetControllerHDA(); +// } +// NHDA++; +// } // if Audio device // } // } - - // 1st stage - 2 - // Check for plist - createinstallmedia/NetInstall - if (OSVersion.isEmpty()) { - InstallerPlist = SWPrintf("\\.IABootFiles\\com.apple.Boot.plist"); // 10.9 - ... - if (FileExists (Volume->RootDir, InstallerPlist)) { - Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("Kernel Flags"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Kernel Flags\n"); - }else{ - if ( Prop->getString()->stringValue().contains("Install%20macOS%20BigSur") || Prop->getString()->stringValue().contains("Install%20macOS%2011.0")) { - OSVersion = "11"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20macOS%2010.16")) { - OSVersion = "10.16"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Catalina") || Prop->getString()->stringValue().contains("Install%20macOS%2010.15")) { - OSVersion = "10.15"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Mojave") || Prop->getString()->stringValue().contains("Install%20macOS%2010.14")) { - OSVersion = "10.14"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20High%20Sierra") || Prop->getString()->stringValue().contains("Install%20macOS%2010.13")) { - OSVersion = "10.13"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Sierra") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.12")) { - OSVersion = "10.12"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20El%20Capitan") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.11")) { - OSVersion = "10.11"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Yosemite") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.10")) { - OSVersion = "10.10"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Mavericks.app")) { - OSVersion = "10.9"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Mountain%20Lion")) { - OSVersion = "10.8"_XS8; - } else if ( Prop->getString()->stringValue().contains("Install%20Mac%20OS%20hhX%20Lion")) { - OSVersion = "10.7"_XS8; - } - } - } - } - } - } - - // 2nd stage - 1 - // Check for plist - AppStore/createinstallmedia/startosinstall/Fusion Drive - if (OSVersion.isEmpty()) { - InstallerPlist = SWPrintf("\\macOS Install Data\\Locked Files\\Boot Files\\SystemVersion.plist"); // 10.12.4+ - if (!FileExists (Volume->RootDir, InstallerPlist)) { - InstallerPlist = SWPrintf("\\macOS Install Data\\InstallInfo.plist"); // 10.12+ - if (!FileExists (Volume->RootDir, InstallerPlist)) { - InstallerPlist = SWPrintf("\\com.apple.boot.R\\SystemVersion.plist)"); // 10.12+ - if (!FileExists (Volume->RootDir, InstallerPlist)) { - InstallerPlist = SWPrintf("\\com.apple.boot.P\\SystemVersion.plist"); // 10.12+ - if (!FileExists (Volume->RootDir, InstallerPlist)) { - InstallerPlist = SWPrintf("\\com.apple.boot.S\\SystemVersion.plist"); // 10.12+ - if (!FileExists (Volume->RootDir, InstallerPlist) && - (FileExists (Volume->RootDir, L"\\com.apple.boot.R\\System\\Library\\PrelinkedKernels\\prelinkedkernel") || - FileExists (Volume->RootDir, L"\\com.apple.boot.P\\System\\Library\\PrelinkedKernels\\prelinkedkernel") || - FileExists (Volume->RootDir, L"\\com.apple.boot.S\\System\\Library\\PrelinkedKernels\\prelinkedkernel"))) { - InstallerPlist = SWPrintf("\\System\\Library\\CoreServices\\SystemVersion.plist"); // 10.11 - } - } - } - } - } - if (FileExists (Volume->RootDir, InstallerPlist)) { - Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - OSVersion = Prop->getString()->stringValue(); - } - } - } - Prop = Dict->propertyForKey("ProductBuildVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); - }else{ - if( Prop->getString()->stringValue().notEmpty() ) { - BuildVersion = Prop->getString()->stringValue(); - } - } - } - // In InstallInfo.plist, there is no a version key only when updating from AppStore in 10.13+ - // If use the startosinstall in 10.13+, this version key exists in InstallInfo.plist - DictPointer = Dict->dictPropertyForKey("System Image Info"); // 10.12+ - if (DictPointer != NULL) { - Prop = DictPointer->propertyForKey("version"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in version\n"); - }else{ - OSVersion = Prop->getString()->stringValue(); - } - } - } - Dict->FreeTag(); - } - } - } - - // 2nd stage - 2 - // Check for ia.log - InstallESD/createinstallmedia/startosinstall - // Implemented by Sherlocks - if (OSVersion.isEmpty()) { - CONST CHAR8 *s, *fileBuffer; -// CHAR8 *Res5 = (__typeof__(Res5))AllocateZeroPool(5); -// CHAR8 *Res6 = (__typeof__(Res6))AllocateZeroPool(6); -// CHAR8 *Res7 = (__typeof__(Res7))AllocateZeroPool(7); -// CHAR8 *Res8 = (__typeof__(Res8))AllocateZeroPool(8); - UINTN fileLen = 0; - XStringW InstallerLog; - InstallerLog = L"\\Mac OS X Install Data\\ia.log"_XSW; // 10.7 - if (!FileExists (Volume->RootDir, InstallerLog)) { - InstallerLog = L"\\OS X Install Data\\ia.log"_XSW; // 10.8 - 10.11 - if (!FileExists (Volume->RootDir, InstallerLog)) { - InstallerLog = L"\\macOS Install Data\\ia.log"_XSW; // 10.12+ - } - } - if (FileExists (Volume->RootDir, InstallerLog)) { - Status = egLoadFile(Volume->RootDir, InstallerLog.wc_str(), (UINT8 **)&fileBuffer, &fileLen); - if (!EFI_ERROR(Status)) { - XString8 targetString; - targetString.strncpy(fileBuffer, fileLen); - // s = SearchString(targetString, fileLen, "Running OS Build: Mac OS X ", 27); - s = AsciiStrStr(targetString.c_str(), "Running OS Build: Mac OS X "); - if (s[31] == ' ') { - OSVersion.S8Printf("%c%c.%c\n", s[27], s[28], s[30]); - if (s[38] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c\n", s[33], s[34], s[35], s[36], s[37]); - } else if (s[39] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[33], s[34], s[35], s[36], s[37], s[38]); - } - } else if (s[31] == '.') { - OSVersion.S8Printf("%c%c.%c.%c\n", s[27], s[28], s[30], s[32]); - if (s[40] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c\n", s[35], s[36], s[37], s[38], s[39]); - } else if (s[41] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[35], s[36], s[37], s[38], s[39], s[40]); - } - } else if (s[32] == ' ') { - OSVersion.S8Printf("%c%c.%c%c\n", s[27], s[28], s[30], s[31]); - if (s[39] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38]); - } else if (s[40] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38], s[39]); - } else if (s[41] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38], s[39], s[40]); - } - } else if (s[32] == '.') { - OSVersion.S8Printf("%c%c.%c%c.%c\n", s[27], s[28], s[30], s[31], s[33]); - if (s[41] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40]); - } else if (s[42] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40], s[41]); - } else if (s[43] == ')') { - BuildVersion.S8Printf("%c%c%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40], s[41], s[42]); - } - } - FreePool(fileBuffer); - } - } - } - - // 2nd stage - 3 - // Check for plist - Preboot of APFS - if ( OSVersion.isEmpty() ) - { - XStringW plist = L"\\macOS Install Data\\Locked Files\\Boot Files\\SystemVersion.plist"_XSW; - if ( !FileExists(Volume->RootDir, plist) ) { - plist.setEmpty(); - } - - if ( plist.notEmpty() ) { // found macOS System - - Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - OSVersion = Prop->getString()->stringValue(); - } - } - Prop = Dict->propertyForKey("ProductBuildVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); - }else{ - BuildVersion = Prop->getString()->stringValue(); - } - } - } - Dict->FreeTag(); - } - } - } - - if (OSTYPE_IS_OSX_RECOVERY (LoaderType)) { - - XString8 uuidPrefix; - if ( APFSTargetUUID.notEmpty() ) uuidPrefix = S8Printf("\\%ls", APFSTargetUUID.wc_str()); - - XStringW plist = SWPrintf("%s\\SystemVersion.plist", uuidPrefix.c_str()); - if ( !FileExists(Volume->RootDir, plist) ) { - plist = SWPrintf("%s\\ServerVersion.plist", uuidPrefix.c_str()); - if ( !FileExists(Volume->RootDir, plist) ) { - plist = L"\\com.apple.recovery.boot\\SystemVersion.plist"_XSW; - if ( !FileExists(Volume->RootDir, plist) ) { - plist = L"\\com.apple.recovery.boot\\ServerVersion.plist"_XSW; - if ( !FileExists(Volume->RootDir, plist) ) { - plist.setEmpty(); - } - } - } - } - - // Detect exact version for OS X Recovery - if ( plist.notEmpty() ) { // found macOS System - Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); - if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { - Prop = Dict->propertyForKey("ProductVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductVersion\n"); - }else{ - OSVersion = Prop->getString()->stringValue(); - } - } - Prop = Dict->propertyForKey("ProductBuildVersion"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); - }else{ - BuildVersion = Prop->getString()->stringValue(); - } - } - } - Dict->FreeTag(); - } else if (FileExists (Volume->RootDir, L"\\com.apple.recovery.boot\\boot.efi")) { - // Special case - com.apple.recovery.boot/boot.efi exists but SystemVersion.plist doesn't --> 10.9 recovery - OSVersion = "10.9"_XS8; - } - } - - if (PlistBuffer != NULL) { - FreePool(PlistBuffer); - } - (*BuildVersionPtr).stealValueFrom(&BuildVersion); - return OSVersion; -} - -//constexpr XStringW iconMac = L"mac"_XSW; -CONST XStringW -GetOSIconName (const MacOsVersion& OSVersion) -{ - XStringW OSIconName; - if (OSVersion.isEmpty()) { - OSIconName = L"mac"_XSW; - } else if ( (OSVersion.elementAt(0) == 10 && OSVersion.elementAt(1) == 16 ) || - (OSVersion.elementAt(0) == 11 /*&& OSVersion.elementAt(1) == 0*/ ) - ) { - // Big Sur - OSIconName = L"bigsur,mac"_XSW; - }else if ( OSVersion.elementAt(0) == 10 ) { - if ( OSVersion.elementAt(1) == 15 ) { - // Catalina - OSIconName = L"cata,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 14 ) { - // Mojave - OSIconName = L"moja,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 13 ) { - // High Sierra - OSIconName = L"hsierra,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 12 ) { - // Sierra - OSIconName = L"sierra,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 11 ) { - // El Capitan - OSIconName = L"cap,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 10 ) { - // Yosemite - OSIconName = L"yos,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 9 ) { - // Mavericks - OSIconName = L"mav,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 8 ) { - // Mountain Lion - OSIconName = L"cougar,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 7 ) { - // Lion - OSIconName = L"lion,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 6 ) { - // Snow Leopard - OSIconName = L"snow,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 5 ) { - // Leopard - OSIconName = L"leo,mac"_XSW; - } else if ( OSVersion.elementAt(1) == 4 ) { - // Tiger - OSIconName = L"tiger,mac"_XSW; - } else { - OSIconName = L"mac"_XSW; - } - } else { - OSIconName = L"mac"_XSW; - } - - return OSIconName; -} - -//Get the UUID of the AppleRaid or CoreStorage volume from the boot helper partition -EFI_STATUS -GetRootUUID (IN REFIT_VOLUME *Volume) -{ - EFI_STATUS Status; - CHAR8 *PlistBuffer; - UINTN PlistLen; - TagDict* Dict; - const TagStruct* Prop; - - CONST CHAR16* SystemPlistR; - CONST CHAR16* SystemPlistP; - CONST CHAR16* SystemPlistS; - - BOOLEAN HasRock; - BOOLEAN HasPaper; - BOOLEAN HasScissors; - - Status = EFI_NOT_FOUND; - if (Volume == NULL) { - return EFI_NOT_FOUND; - } - - SystemPlistR = L"\\com.apple.boot.R\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; - if (FileExists (Volume->RootDir, SystemPlistR)) { - HasRock = FileExists (Volume->RootDir, SystemPlistR); - } else { - SystemPlistR = L"\\com.apple.boot.R\\com.apple.Boot.plist"; - HasRock = FileExists (Volume->RootDir, SystemPlistR); - } - - SystemPlistP = L"\\com.apple.boot.P\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; - if (FileExists (Volume->RootDir, SystemPlistP)) { - HasPaper = FileExists (Volume->RootDir, SystemPlistP); - } else { - SystemPlistP = L"\\com.apple.boot.P\\com.apple.Boot.plist"; - HasPaper = FileExists (Volume->RootDir, SystemPlistP); - } - - SystemPlistS = L"\\com.apple.boot.S\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; - if (FileExists (Volume->RootDir, SystemPlistS)) { - HasScissors = FileExists (Volume->RootDir, SystemPlistS); - } else { - SystemPlistS = L"\\com.apple.boot.S\\com.apple.Boot.plist"; - HasScissors = FileExists (Volume->RootDir, SystemPlistS); - } - - PlistBuffer = NULL; - // Playing Rock, Paper, Scissors to chose which settings to load. - if (HasRock && HasPaper && HasScissors) { - // Rock wins when all three are around - Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); - } else if (HasRock && HasPaper) { - // Paper beats rock - Status = egLoadFile(Volume->RootDir, SystemPlistP, (UINT8 **)&PlistBuffer, &PlistLen); - } else if (HasRock && HasScissors) { - // Rock beats scissors - Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); - } else if (HasPaper && HasScissors) { - // Scissors beat paper - Status = egLoadFile(Volume->RootDir, SystemPlistS, (UINT8 **)&PlistBuffer, &PlistLen); - } else if (HasPaper) { - // No match - Status = egLoadFile(Volume->RootDir, SystemPlistP, (UINT8 **)&PlistBuffer, &PlistLen); - } else if (HasScissors) { - // No match - Status = egLoadFile(Volume->RootDir, SystemPlistS, (UINT8 **)&PlistBuffer, &PlistLen); - } else { - // Rock wins by default - Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); - } - - if (!EFI_ERROR(Status)) { - Dict = NULL; - if (ParseXML(PlistBuffer, &Dict, 0) != EFI_SUCCESS) { - FreePool(PlistBuffer); - return EFI_NOT_FOUND; - } - - Prop = Dict->propertyForKey("Root UUID"); - if ( Prop != NULL ) { - if ( !Prop->isString() ) { - MsgLog("ATTENTION : property not string in Root UUID\n"); - }else{ - Status = StrToGuidLE(Prop->getString()->stringValue(), &Volume->RootUUID); - } - } - - Dict->FreeTag(); - FreePool(PlistBuffer); - } - - return Status; -} - -void -GetDevices () -{ - EFI_STATUS Status; - UINTN HandleCount = 0; - EFI_HANDLE *HandleArray = NULL; - EFI_PCI_IO_PROTOCOL *PciIo; - PCI_TYPE00 Pci; - UINTN Index; - UINTN Segment = 0; - UINTN Bus = 0; - UINTN Device = 0; - UINTN Function = 0; - UINTN i; - UINT32 Bar0; - // UINT8 *Mmio = NULL; - radeon_card_info_t *info; - SLOT_DEVICE *SlotDevice; - - NGFX = 0; - NHDA = 0; - AudioList.setEmpty(); - //Arpt.Valid = FALSE; //global variables initialized by 0 - c-language - XStringW GopDevicePathStr; - XStringW DevicePathStr; - - DbgHeader("GetDevices"); - - // Get GOP handle, in order to check to which GPU the monitor is currently connected - Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleArray); - if (!EFI_ERROR(Status)) { - GopDevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[0])); - DBG("GOP found at: %ls\n", GopDevicePathStr.wc_str()); - } - - // Scan PCI handles - Status = gBS->LocateHandleBuffer ( - ByProtocol, - &gEfiPciIoProtocolGuid, - NULL, - &HandleCount, - &HandleArray - ); - - if (!EFI_ERROR(Status)) { - for (Index = 0; Index < HandleCount; ++Index) { - Status = gBS->HandleProtocol(HandleArray[Index], &gEfiPciIoProtocolGuid, (void **)&PciIo); - if (!EFI_ERROR(Status)) { - // Read PCI BUS - PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function); - Status = PciIo->Pci.Read ( - PciIo, - EfiPciIoWidthUint32, - 0, - sizeof (Pci) / sizeof (UINT32), - &Pci - ); - - DBG("PCI (%02llX|%02llX:%02llX.%02llX) : %04hX %04hX class=%02hhX%02hhX%02hhX\n", - Segment, - Bus, - Device, - Function, - Pci.Hdr.VendorId, - Pci.Hdr.DeviceId, - Pci.Hdr.ClassCode[2], - Pci.Hdr.ClassCode[1], - Pci.Hdr.ClassCode[0] - ); - - // GFX - //if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY) && - // (Pci.Hdr.ClassCode[1] == PCI_CLASS_DISPLAY_VGA) && - // (NGFX < 4)) { - - if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY) && - ((Pci.Hdr.ClassCode[1] == (PCI_CLASS_DISPLAY_VGA)) || - (Pci.Hdr.ClassCode[1] == (PCI_CLASS_DISPLAY_OTHER))) && - (NGFX < 4)) { - CONST CHAR8 *CardFamily = ""; - UINT16 UFamily; - GFX_PROPERTIES *gfx = &gGraphics[NGFX]; - - // GOP device path should contain the device path of the GPU to which the monitor is connected - DevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[Index])); - if (StrStr(GopDevicePathStr.wc_str(), DevicePathStr.wc_str())) { - DBG(" - GOP: Provided by device\n"); - if (NGFX != 0) { - // we found GOP on a GPU scanned later, make space for this GPU at first position - for (i=NGFX; i>0; i--) { - CopyMem(&gGraphics[i], &gGraphics[i-1], sizeof(GFX_PROPERTIES)); - } - ZeroMem(&gGraphics[0], sizeof(GFX_PROPERTIES)); - gfx = &gGraphics[0]; // GPU with active GOP will be added at the first position - } - } - - gfx->DeviceID = Pci.Hdr.DeviceId; - gfx->Segment = Segment; - gfx->Bus = Bus; - gfx->Device = Device; - gfx->Function = Function; - gfx->Handle = HandleArray[Index]; - - switch (Pci.Hdr.VendorId) { - case 0x1002: - info = NULL; - gfx->Vendor = Ati; - - i = 0; - do { - info = &radeon_cards[i]; - if (info->device_id == Pci.Hdr.DeviceId) { - break; - } - } while (radeon_cards[i++].device_id != 0); - - snprintf (gfx->Model, 64, "%s", info->model_name); - snprintf (gfx->Config, 64, "%s", card_configs[info->cfg_name].name); - gfx->Ports = card_configs[info->cfg_name].ports; - DBG(" - GFX: Model=%s (ATI/AMD)\n", gfx->Model); - - //get mmio - if (info->chip_family < CHIP_FAMILY_HAINAN) { - gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[2] & ~0x0f); - } else { - gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[5] & ~0x0f); - } - gfx->Connectors = *(UINT32*)(gfx->Mmio + RADEON_BIOS_0_SCRATCH); - // DBG(" - RADEON_BIOS_0_SCRATCH = 0x%08X\n", gfx->Connectors); - gfx->ConnChanged = FALSE; - - SlotDevice = &gSettings.Smbios.SlotDevices[0]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "PCI Slot 0"_XS8; - SlotDevice->SlotID = 1; - SlotDevice->SlotType = SlotTypePciExpressX16; - break; - - case 0x8086: - gfx->Vendor = Intel; - snprintf (gfx->Model, 64, "%s", get_gma_model (Pci.Hdr.DeviceId)); - DBG(" - GFX: Model=%s (Intel)\n", gfx->Model); - gfx->Ports = 1; - gfx->Connectors = (1 << NGFX); - gfx->ConnChanged = FALSE; - break; - - case 0x10de: - gfx->Vendor = Nvidia; - Bar0 = Pci.Device.Bar[0]; - gfx->Mmio = (UINT8*)(UINTN)(Bar0 & ~0x0f); - //DBG("BAR: 0x%p\n", Mmio); - // get card type - gfx->Family = (REG32(gfx->Mmio, 0) >> 20) & 0x1ff; - UFamily = gfx->Family & 0x1F0; - if ((UFamily == NV_ARCH_KEPLER1) || - (UFamily == NV_ARCH_KEPLER2) || - (UFamily == NV_ARCH_KEPLER3)) { - CardFamily = "Kepler"; - } - else if ((UFamily == NV_ARCH_FERMI1) || - (UFamily == NV_ARCH_FERMI2)) { - CardFamily = "Fermi"; - } - else if ((UFamily == NV_ARCH_MAXWELL1) || - (UFamily == NV_ARCH_MAXWELL2)) { - CardFamily = "Maxwell"; - } - else if (UFamily == NV_ARCH_PASCAL) { - CardFamily = "Pascal"; - } - else if (UFamily == NV_ARCH_VOLTA) { - CardFamily = "Volta"; - } - else if (UFamily == NV_ARCH_TURING) { - CardFamily = "Turing"; - } - else if ((UFamily >= NV_ARCH_TESLA) && (UFamily < 0xB0)) { //not sure if 0xB0 is Tesla or Fermi - CardFamily = "Tesla"; - } else { - CardFamily = "NVidia unknown"; - } - - snprintf ( - gfx->Model, - 64, - "%s", - get_nvidia_model (((Pci.Hdr.VendorId << 16) | Pci.Hdr.DeviceId), - ((Pci.Device.SubsystemVendorID << 16) | Pci.Device.SubsystemID), - NULL) //NULL: get from generic lists - ); - - DBG(" - GFX: Model=%s family %hX (%s)\n", gfx->Model, gfx->Family, CardFamily); - gfx->Ports = 0; - - SlotDevice = &gSettings.Smbios.SlotDevices[1]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "PCI Slot 0"_XS8; - SlotDevice->SlotID = 1; - SlotDevice->SlotType = SlotTypePciExpressX16; - break; - - default: - gfx->Vendor = Unknown; - snprintf (gfx->Model, 64, "pci%hx,%hx", Pci.Hdr.VendorId, Pci.Hdr.DeviceId); - gfx->Ports = 1; - gfx->Connectors = (1 << NGFX); - gfx->ConnChanged = FALSE; - - break; - } - - NGFX++; - } //if gfx - - else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && - (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_OTHER)) { - SlotDevice = &gSettings.Smbios.SlotDevices[6]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "AirPort"_XS8; - SlotDevice->SlotID = 0; - SlotDevice->SlotType = SlotTypePciExpressX1; - DBG(" - WIFI: Vendor= "); - switch (Pci.Hdr.VendorId) { - case 0x11ab: - DBG("Marvell\n"); - break; - case 0x10ec: - DBG("Realtek\n"); - break; - case 0x14e4: - DBG("Broadcom\n"); - break; - case 0x1969: - case 0x168C: - DBG("Atheros\n"); - break; - case 0x1814: - DBG("Ralink\n"); - break; - case 0x8086: - DBG("Intel\n"); - break; - - default: - DBG(" 0x%04X\n", Pci.Hdr.VendorId); - break; - } - } - - else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && - (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_ETHERNET)) { - SlotDevice = &gSettings.Smbios.SlotDevices[5]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "Ethernet"_XS8; - SlotDevice->SlotID = 2; - SlotDevice->SlotType = SlotTypePciExpressX1; - gLanVendor[nLanCards] = Pci.Hdr.VendorId; - Bar0 = Pci.Device.Bar[0]; - gLanMmio[nLanCards++] = (UINT8*)(UINTN)(Bar0 & ~0x0f); - if (nLanCards >= 4) { - DBG(" - [!] too many LAN card in the system (upto 4 limit exceeded), overriding the last one\n"); - nLanCards = 3; // last one will be rewritten - } - DBG(" - LAN: %llu Vendor=", nLanCards-1); - switch (Pci.Hdr.VendorId) { - case 0x11ab: - DBG("Marvell\n"); - break; - case 0x10ec: - DBG("Realtek\n"); - break; - case 0x14e4: - DBG("Broadcom\n"); - break; - case 0x1969: - case 0x168C: - DBG("Atheros\n"); - break; - case 0x8086: - DBG("Intel\n"); - break; - case 0x10de: - DBG("Nforce\n"); - break; - - default: - DBG("Unknown\n"); - break; - } - } - - else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_SERIAL) && - (Pci.Hdr.ClassCode[1] == PCI_CLASS_SERIAL_FIREWIRE)) { - SlotDevice = &gSettings.Smbios.SlotDevices[12]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "FireWire"_XS8; - SlotDevice->SlotID = 3; - SlotDevice->SlotType = SlotTypePciExpressX4; - } - - else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_MEDIA) && - ((Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_HDA) || - (Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_AUDIO)) && - (NHDA < 4)) { - HDA_PROPERTIES *hda = &gAudios[NHDA]; - - // Populate Controllers IDs - hda->controller_vendor_id = Pci.Hdr.VendorId; - hda->controller_device_id = Pci.Hdr.DeviceId; - - // HDA Controller Info - HdaControllerGetName(((hda->controller_device_id << 16) | hda->controller_vendor_id), &hda->controller_name); - - - if (IsHDMIAudio(HandleArray[Index])) { - DBG(" - HDMI Audio: \n"); - - SlotDevice = &gSettings.Smbios.SlotDevices[4]; - SlotDevice->SegmentGroupNum = (UINT16)Segment; - SlotDevice->BusNum = (UINT8)Bus; - SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); - SlotDevice->Valid = TRUE; - SlotDevice->SlotName = "HDMI port"_XS8; - SlotDevice->SlotID = 5; - SlotDevice->SlotType = SlotTypePciExpressX4; - } - if (gSettings.Devices.Audio.ResetHDA) { - //Slice method from VoodooHDA - //PCI_HDA_TCSEL_OFFSET = 0x44 - UINT8 Value = 0; - Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); - - if (EFI_ERROR(Status)) { - continue; - } - - Value &= 0xf8; - PciIo->Pci.Write (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); - //ResetControllerHDA(); - } - NHDA++; - } // if Audio device - } - } - } -} +// } +//} void SetDevices (LOADER_ENTRY *Entry) @@ -6999,25 +1088,25 @@ SetDevices (LOADER_ENTRY *Entry) MsgLog ("ATI injection not set\n"); } - for (j = 0; j < 4; j++) { - if (gGraphics[j].Handle == PCIdevice.DeviceHandle) { - if (gGraphics[j].ConnChanged) { - *(UINT32*)(gGraphics[j].Mmio + RADEON_BIOS_0_SCRATCH) = gGraphics[j].Connectors; + for (j = 0; j < gConf.GfxPropertiesArrayNonConst.size(); j++) { + if (gConf.GfxPropertiesArrayNonConst[j].Handle == PCIdevice.DeviceHandle) { + if (gConf.GfxPropertiesArrayNonConst[j].ConnChanged) { + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + RADEON_BIOS_0_SCRATCH) = gConf.GfxPropertiesArrayNonConst[j].Connectors; } break; } } if (gSettings.Graphics.RadeonDeInit) { - for (j = 0; j < 4; j++) { - if (gGraphics[j].Handle == PCIdevice.DeviceHandle) { - *(UINT32*)(gGraphics[j].Mmio + 0x6848) = 0; //EVERGREEN_GRPH_FLIP_CONTROL, 1<<0 SURFACE_UPDATE_H_RETRACE_EN - *(UINT32*)(gGraphics[j].Mmio + 0x681C) = 0; //EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH - *(UINT32*)(gGraphics[j].Mmio + 0x6820) = 0; //EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH - *(UINT32*)(gGraphics[j].Mmio + 0x6808) = 0; //EVERGREEN_GRPH_LUT_10BIT_BYPASS_CONTROL, EVERGREEN_LUT_10BIT_BYPASS_EN (1 << 8) - *(UINT32*)(gGraphics[j].Mmio + 0x6800) = 1; //EVERGREEN_GRPH_ENABLE - *(UINT32*)(gGraphics[j].Mmio + 0x6EF8) = 0; //EVERGREEN_MASTER_UPDATE_MODE - //*(UINT32*)(gGraphics[j].Mmio + R600_BIOS_0_SCRATCH) = 0x00810000; + for (j = 0; j < gConf.GfxPropertiesArrayNonConst.size(); j++) { + if (gConf.GfxPropertiesArrayNonConst[j].Handle == PCIdevice.DeviceHandle) { + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x6848) = 0; //EVERGREEN_GRPH_FLIP_CONTROL, 1<<0 SURFACE_UPDATE_H_RETRACE_EN + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x681C) = 0; //EVERGREEN_GRPH_PRIMARY_SURFACE_ADDRESS_HIGH + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x6820) = 0; //EVERGREEN_GRPH_SECONDARY_SURFACE_ADDRESS_HIGH + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x6808) = 0; //EVERGREEN_GRPH_LUT_10BIT_BYPASS_CONTROL, EVERGREEN_LUT_10BIT_BYPASS_EN (1 << 8) + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x6800) = 1; //EVERGREEN_GRPH_ENABLE + *(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + 0x6EF8) = 0; //EVERGREEN_MASTER_UPDATE_MODE + //*(UINT32*)(gConf.GfxPropertiesArrayNonConst[j].Mmio + R600_BIOS_0_SCRATCH) = 0x00810000; DBG("Device %llu deinited\n", j); } } @@ -7026,7 +1115,7 @@ SetDevices (LOADER_ENTRY *Entry) case 0x8086: if (gSettings.Graphics.InjectAsDict.InjectIntel) { - TmpDirty = setup_gma_devprop(Entry, &PCIdevice); + TmpDirty = setup_gma_devprop(Entry->macOSVersion, Entry->BuildVersion, Entry->Volume->RootDir, &PCIdevice); StringDirty |= TmpDirty; MsgLog ("Intel GFX revision = 0x%hhX\n", PCIdevice.revision); } else { @@ -7734,7 +1823,7 @@ SetDevices (LOADER_ENTRY *Entry) } EFI_STATUS -SaveSettings () +ApplySettings() { // TODO: SetVariable().. // here we can apply user settings instead of default one @@ -7845,22 +1934,22 @@ XStringW GetOSVersionKextsDir(const MacOsVersion& OSVersion) if (FileExists (&self.getSelfVolumeRootDir(), SrcDir)) return SrcDir; return NullXStringW; } - -EFI_STATUS -InjectKextsFromDir ( - EFI_STATUS Status, - CONST CHAR16 *SrcDir - ) -{ - - if (EFI_ERROR(Status)) { - MsgLog (" - ERROR: Kext injection failed!\n"); - return EFI_NOT_STARTED; - } - - return Status; -} - +// +//EFI_STATUS +//InjectKextsFromDir ( +// EFI_STATUS Status, +// CONST CHAR16 *SrcDir +// ) +//{ +// +// if (EFI_ERROR(Status)) { +// MsgLog (" - ERROR: Kext injection failed!\n"); +// return EFI_NOT_STARTED; +// } +// +// return Status; +//} +// // Do we need that with OC ? For old version ? //EFI_STATUS LOADER_ENTRY::SetFSInjection() //{ @@ -7995,41 +2084,33 @@ InjectKextsFromDir ( //} -EFI_GUID nullUUID = {0,0,0,{0}}; - const XString8& SETTINGS_DATA::getUUID() { if ( SystemParameters.CustomUuid.notEmpty() ) return SystemParameters.CustomUuid; return Smbios.SmUUID; } -const XString8& SETTINGS_DATA::getUUID(EFI_GUID *uuid) +const XString8& SETTINGS_DATA::getUUID(EFI_GUIDClass *uuid) { if ( SystemParameters.CustomUuid.notEmpty() ) { - EFI_STATUS Status = StrToGuidLE(SystemParameters.CustomUuid, uuid); -#ifdef DEBUG - if ( EFI_ERROR(Status) ) panic("CustomUuid(%s) is not valid", SystemParameters.CustomUuid.c_str()); // we panic, because it's a bug. Validity is checked when imported from settings -#else - if ( EFI_ERROR(Status) ) { - DBG("CustomUuid(%s) is not valid\n", CustomUuid.c_str()); - memset(uuid, 0, sizeof(uuid)); - return nullUUID; + if ( uuid ) { + EFI_STATUS Status = StrToGuidBE(SystemParameters.CustomUuid, uuid); + if ( EFI_ERROR(Status) ) { + log_technical_bug("CustomUuid(%s) is not valid", SystemParameters.CustomUuid.c_str()); // it's a technical bug. Validity is checked when imported from settings, so that must never happen. + *uuid = EFI_GUIDClass(); + return nullGuidAsString; + } } -#endif return SystemParameters.CustomUuid; } - EFI_STATUS Status = StrToGuidLE(Smbios.SmUUID, uuid); -#ifdef DEBUG - if ( EFI_ERROR(Status) ) panic("SmUUID(%s) is not valid", Smbios.SmUUID.c_str()); // same as before -#else - if ( EFI_ERROR(Status) ) { - DBG("SmUUID(%s) is not valid\n", SmUUID.c_str()); - memset(uuid, 0, sizeof(uuid)); - return nullUUID; + if ( uuid ) { + EFI_STATUS Status = StrToGuidBE(Smbios.SmUUID, uuid); + if ( EFI_ERROR(Status) ) { + log_technical_bug("SmUUID(%s) is not valid", Smbios.SmUUID.c_str()); // same as before + *uuid = EFI_GUIDClass(); + return nullGuidAsString; + } } -#endif - return Smbios.SmUUID; } - diff --git a/rEFIt_UEFI/Platform/Settings.h b/rEFIt_UEFI/Platform/Settings.h index c4d7cf63c..064ca2186 100644 --- a/rEFIt_UEFI/Platform/Settings.h +++ b/rEFIt_UEFI/Platform/Settings.h @@ -2,7 +2,7 @@ #define __SETTINGS_H__ #include -#include "../gui/menu_items/menu_items.h" +#include "../gui/menu_items/menu_items.h" // TODO: break that dependency #include "../include/OSFlags.h" #include "../include/OSTypes.h" #include "../include/Languages.h" @@ -13,12 +13,16 @@ #include "../libeg/XIcon.h" #include "../cpp_lib/undefinable.h" #include "../entry_scan/loader.h" // for KERNEL_SCAN_xxx constants -#include "../Platform/smbios.h" +//#include "../Platform/smbios.h" #include "../Platform/platformdata.h" +#include "../Settings/ConfigPlist/ConfigPlistClass.h" +#include "../Platform/guid.h" +#include "../Platform/SettingsUtils.h" +#include "../Platform/hda.h" +#include "../Settings/ConfigManager.h" #define CLOVER_SIGN SIGNATURE_32('C','l','v','r') - //// SysVariables //typedef struct SYSVARIABLES SYSVARIABLES; //struct SYSVARIABLES @@ -29,20 +33,14 @@ //}; extern CONST CHAR8 *AudioOutputNames[]; +extern BOOLEAN gFirmwareClover; -UINT8 -*GetDataSetting ( - IN const TagDict* Dict, - IN CONST CHAR8 *PropName, - OUT UINTN *DataLen - ); class HDA_OUTPUTS { public: XStringW Name; -// CHAR8 *LineName; - UINT8 Index; + UINT8 Index; EFI_HANDLE Handle = NULL; EFI_AUDIO_IO_PROTOCOL_DEVICE Device = EfiAudioIoDeviceOther; @@ -52,17 +50,6 @@ public: ~HDA_OUTPUTS() {} }; -typedef enum { - Unknown, - Ati, /* 0x1002 */ - Intel, /* 0x8086 */ - Nvidia, /* 0x10de */ - RDC, /* 0x17f3 */ - VIA, /* 0x1106 */ - SiS, /* 0x1039 */ - ULI /* 0x10b9 */ -} HRDW_MANUFACTERER; - typedef struct { HRDW_MANUFACTERER Vendor; UINT8 Ports; @@ -84,23 +71,20 @@ typedef struct { BOOLEAN ConnChanged; } GFX_PROPERTIES; -extern GFX_PROPERTIES gGraphics[4]; //no more then 4 graphics cards -extern UINTN NGFX; // number of GFX - typedef struct { HRDW_MANUFACTERER Vendor; UINT16 controller_vendor_id; UINT16 controller_device_id; CHAR16 *controller_name; // -- Codec Info -- // - UINT16 codec_vendor_id; - UINT16 codec_device_id; - UINT8 codec_revision_id; - UINT8 codec_stepping_id; - UINT8 codec_maj_rev; - UINT8 codec_min_rev; - UINT8 codec_num_function_groups; - CHAR16 *codec_name; +// UINT16 codec_vendor_id; +// UINT16 codec_device_id; +// UINT8 codec_revision_id; +// UINT8 codec_stepping_id; +// UINT8 codec_maj_rev; +// UINT8 codec_min_rev; +// UINT8 codec_num_function_groups; +// CHAR16 *codec_name; } HDA_PROPERTIES; class ACPI_NAME @@ -108,14 +92,18 @@ class ACPI_NAME public: XString8 Name = XString8(); - #if __cplusplus > 201703L - bool operator == (const ACPI_NAME&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ACPI_NAME&) const = default; +#endif bool isEqual(const ACPI_NAME& other) const { if ( !(Name == other.Name) ) return false; return true; } + void takeValueFrom(const ACPI_NAME& configPlist) + { + //Name = configPlist.dgetName(); + } XString8Array getSplittedName() const { XString8Array splittedName = Split(Name, "."); @@ -137,15 +125,20 @@ public: ACPI_NAME acpiName = ACPI_NAME(); XString8 renameTo = XString8(); - #if __cplusplus > 201703L - bool operator == (const ACPI_RENAME_DEVICE&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ACPI_RENAME_DEVICE&) const = default; +#endif bool isEqual(const ACPI_RENAME_DEVICE& other) const { if ( !acpiName.isEqual(other.acpiName) ) return false; if ( !(renameTo == other.renameTo) ) return false; return true; } + void takeValueFrom(const XmlAddKey& configPlist) + { + acpiName.Name = configPlist.key(); + renameTo = configPlist.value(); + } XString8 getRenameTo() const { if ( renameTo.length() == 4 ) return renameTo; @@ -197,9 +190,9 @@ public: // temporary, must be protected: undefinable_bool _NoCaches = undefinable_bool(); - #if __cplusplus > 201703L - bool operator == (const CUSTOM_LOADER_SUBENTRY_SETTINGS&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const CUSTOM_LOADER_SUBENTRY_SETTINGS&) const = default; +#endif bool isEqual(const CUSTOM_LOADER_SUBENTRY_SETTINGS& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -210,6 +203,15 @@ public: // temporary, must be protected: if ( !(_NoCaches == other._NoCaches) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_SubEntry_Class& configPlist) + { + Disabled = configPlist.dgetDisabled(); + _Arguments = configPlist.dget_Arguments(); + _AddArguments = configPlist.dget_AddArguments(); + _FullTitle = configPlist.dget_FullTitle(); + _Title = configPlist.dget_Title(); + _NoCaches = configPlist.dget_NoCaches(); + } public: @@ -246,11 +248,16 @@ extern const XString8 defaultRecoveryTitle; extern const XStringW defaultRecoveryImagePath; extern const XStringW defaultRecoveryDriveImagePath; +/* + * Wrapper class to bring some syntaxic sugar : initialisation at construction, assignment, == operator, etc. + */ class EFI_GRAPHICS_OUTPUT_BLT_PIXELClass : public EFI_GRAPHICS_OUTPUT_BLT_PIXEL { public: EFI_GRAPHICS_OUTPUT_BLT_PIXELClass() { Blue = 0; Green = 0; Red = 0; Reserved = 0; } + EFI_GRAPHICS_OUTPUT_BLT_PIXELClass(const EFI_GRAPHICS_OUTPUT_BLT_PIXEL& other) { Blue = other.Blue; Green = other.Green; Red = other.Red; Reserved = other.Reserved; } + bool operator == (const EFI_GRAPHICS_OUTPUT_BLT_PIXELClass& other) const { if ( !(Blue == other.Blue) ) return false; if ( !(Green == other.Green) ) return false; @@ -285,18 +292,22 @@ public: EFI_GRAPHICS_OUTPUT_BLT_PIXELClass BootBgColor = EFI_GRAPHICS_OUTPUT_BLT_PIXELClass(); INT8 InjectKexts = -1; undefinable_bool NoCaches = undefinable_bool(); - XObjArray SubEntriesSettings = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + SubEntriesSettings = XObjArrayWithTakeValueFromXmlArray(); + public: // temporary, must be protected: XStringW m_DriveImagePath = XStringW(); XString8 m_Title = XStringW(); UINT8 CustomLogoTypeSettings = 0; XStringW m_ImagePath = XStringW(); + bool ForceTextMode = 0; // 2021-04-22 + public: - #if __cplusplus > 201703L - bool operator == (const CUSTOM_LOADER_ENTRY_SETTINGS&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const CUSTOM_LOADER_ENTRY_SETTINGS&) const = default; +#endif bool isEqual(const CUSTOM_LOADER_ENTRY_SETTINGS& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -325,12 +336,42 @@ public: if ( !(m_Title == other.m_Title) ) return false; if ( !(CustomLogoTypeSettings == other.CustomLogoTypeSettings) ) return false; if ( !(m_ImagePath == other.m_ImagePath) ) return false; + if ( !(ForceTextMode == other.ForceTextMode) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Entry_Class& configPlist) + { + Disabled = configPlist.dgetDisabled(); + ImageData = configPlist.dgetImageData(); + DriveImageData = configPlist.dgetDriveImageData(); + Volume = configPlist.dgetVolume(); + Path = configPlist.dgetPath(); + Arguments = configPlist.dgetArguments(); + AddArguments = configPlist.dgetAddArguments(); + FullTitle = configPlist.dgetFullTitle(); + Settings = configPlist.dgetSettings(); + Hotkey = configPlist.dgetHotkey(); + CommonSettings = configPlist.dgetCommonSettings(); + Hidden = configPlist.dgetHidden(); + AlwaysHidden = configPlist.dgetAlwaysHidden(); + Type = configPlist.dgetType(); + VolumeType = configPlist.dgetVolumeType(); + KernelScan = configPlist.dgetKernelScan(); + CustomLogoAsXString8 = configPlist.dgetCustomLogoAsXString8(); + CustomLogoAsData = configPlist.dgetCustomLogoAsData(); + BootBgColor = configPlist.dgetBootBgColor(); + InjectKexts = configPlist.dgetInjectKexts(); + NoCaches = configPlist.dgetNoCaches(); + SubEntriesSettings.takeValueFrom(configPlist.SubEntries); + m_DriveImagePath = configPlist.dgetm_DriveImagePath(); + m_Title = configPlist.dgetm_Title(); + CustomLogoTypeSettings = configPlist.dgetCustomLogoTypeSettings(); + m_ImagePath = configPlist.dgetm_ImagePath(); + ForceTextMode = configPlist.dgetForceTextMode(); + } friend class ::CUSTOM_LOADER_ENTRY; // friend void ::CompareCustomEntries(const XString8& label, const XObjArray& olDCustomEntries, const XmlArray& newCustomEntries); - friend BOOLEAN FillinCustomEntry(IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry); const XString8& dgetTitle() const { @@ -410,10 +451,10 @@ public: bool AlwaysHidden = 0; UINT8 Type = 0; UINT8 VolumeType = 0; - - #if __cplusplus > 201703L - bool operator == (const CUSTOM_LEGACY_ENTRY_SETTINGS&) const = default; - #endif + +#if __cplusplus > 201703L + bool operator == (const CUSTOM_LEGACY_ENTRY_SETTINGS&) const = default; +#endif bool isEqual(const CUSTOM_LEGACY_ENTRY_SETTINGS& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -431,6 +472,22 @@ public: if ( !(VolumeType == other.VolumeType) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Legacy_Class& configPlist) + { + Disabled = configPlist.dgetDisabled(); + ImagePath = configPlist.dgetImagePath(); + ImageData = configPlist.dgetImageData(); + DriveImagePath = configPlist.dgetDriveImagePath(); + DriveImageData = configPlist.dgetDriveImageData(); + Volume = configPlist.dgetVolume(); + FullTitle = configPlist.dgetFullTitle(); + Title = configPlist.dgetTitle(); + Hotkey = configPlist.dgetHotkey(); + Hidden = configPlist.dgetHidden(); + AlwaysHidden = configPlist.dgetAlwaysHidden(); + Type = configPlist.dgetType(); + VolumeType = configPlist.dgetVolumeType(); + } }; class CUSTOM_LEGACY_ENTRY @@ -483,9 +540,9 @@ public: bool AlwaysHidden = 0; UINT8 VolumeType = 0; - #if __cplusplus > 201703L - bool operator == (const CUSTOM_TOOL_ENTRY_SETTINGS&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const CUSTOM_TOOL_ENTRY_SETTINGS&) const = default; +#endif bool isEqual(const CUSTOM_TOOL_ENTRY_SETTINGS& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -502,6 +559,21 @@ public: if ( !(VolumeType == other.VolumeType) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Tool_Class& configPlist) + { + Disabled = configPlist.dgetDisabled(); + ImagePath = configPlist.dgetImagePath(); + ImageData = configPlist.dgetImageData(); + Volume = configPlist.dgetVolume(); + Path = configPlist.dgetPath(); + Arguments = configPlist.dgetArguments(); + FullTitle = configPlist.dgetFullTitle(); + Title = configPlist.dgetTitle(); + Hotkey = configPlist.dgetHotkey(); + Hidden = configPlist.dgetHidden(); + AlwaysHidden = configPlist.dgetAlwaysHidden(); + VolumeType = configPlist.dgetVolumeType(); + } }; @@ -569,25 +641,30 @@ public: XBuffer Find = XBuffer(); XBuffer Replace = XBuffer(); - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const VBIOS_PATCH&) const = default; - #endif +#endif bool isEqual(const VBIOS_PATCH& other) const { if ( !(Find == other.Find) ) return false; if ( !(Replace == other.Replace) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Graphics_Class::Graphics_PatchVBiosBytes_Class& configPlist) + { + Find = configPlist.dgetFind(); + Replace = configPlist.dgetReplace(); + } }; -class PatchVBiosBytesNewClass : public XObjArray +class PatchVBiosBytesNewClass : public XObjArrayWithTakeValueFromXmlArray { mutable XArray VBIOS_PATCH_BYTES_array = XArray(); public: - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const PatchVBiosBytesNewClass& other) const { return XObjArray::operator ==(other); } - #endif +#endif // Temporary bridge to old struct. const VBIOS_PATCH_BYTES* getVBIOS_PATCH_BYTES() const { @@ -615,47 +692,18 @@ public: // } // return true; } +// void takeValueFrom(const PatchVBiosBytesNewClass& configPlist) +// { +// } }; -class SLOT_DEVICE -{ -public: - UINT16 SegmentGroupNum = UINT16(); // assigned by GetDevices - UINT8 BusNum = UINT8(); // assigned by GetDevices - UINT8 DevFuncNum = UINT8(); // assigned by GetDevices - bool Valid = bool(); // assigned by GetDevices -//UINT8 DeviceN; - UINT8 SlotID = UINT8(); - MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE(); - XString8 SlotName = XString8(); - - SLOT_DEVICE() {} - - #if __cplusplus > 201703L - bool operator == (const SLOT_DEVICE&) const = default; - #endif - bool isEqual(const SLOT_DEVICE& other) const - { - if ( !(SegmentGroupNum == other.SegmentGroupNum) ) return false; - if ( !(BusNum == other.BusNum) ) return false; - if ( !(DevFuncNum == other.DevFuncNum) ) return false; - if ( !(Valid == other.Valid) ) return false; - //if ( !(DeviceN == other.DeviceN) ) return false; - if ( !(SlotID == other.SlotID) ) return false; - if ( !(SlotType == other.SlotType) ) return false; - if ( !(SlotName == other.SlotName) ) return false; - return true; - } -} ; - - class SETTINGS_DATA; class ConfigPlistClass; class TagDict; //bool CompareOldNewSettings(const SETTINGS_DATA& , const ConfigPlistClass& ); -EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); +//EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); class SETTINGS_DATA { public: @@ -693,9 +741,9 @@ public: XString8 CustomLogoAsXString8 = XString8(); XBuffer CustomLogoAsData = XBuffer(); - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const BootClass&) const = default; - #endif +#endif bool isEqual(const BootClass& other) const { if ( !(Timeout == other.Timeout) ) return false; @@ -726,6 +774,35 @@ public: if ( !(CustomLogoAsData == other.CustomLogoAsData) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Boot_Class& configPlist) + { + Timeout = configPlist.dgetTimeout(); + SkipHibernateTimeout = configPlist.dgetSkipHibernateTimeout(); + DisableCloverHotkeys = configPlist.dgetDisableCloverHotkeys(); + BootArgs = configPlist.dgetBootArgs(); + NeverDoRecovery = configPlist.dgetNeverDoRecovery(); + LastBootedVolume = configPlist.dgetLastBootedVolume(); + DefaultVolume = configPlist.dgetDefaultVolume(); + DefaultLoader = configPlist.dgetDefaultLoader(); + DebugLog = configPlist.dgetDebugLog(); + FastBoot = configPlist.dgetFastBoot(); + NoEarlyProgress = configPlist.dgetNoEarlyProgress(); + NeverHibernate = configPlist.dgetNeverHibernate(); + StrictHibernate = configPlist.dgetStrictHibernate(); + RtcHibernateAware = configPlist.dgetRtcHibernateAware(); + HibernationFixup = configPlist.dgetHibernationFixup(); + SignatureFixup = configPlist.dgetSignatureFixup(); + SecureSetting = configPlist.dgetSecureSetting(); + SecureBootPolicy = configPlist.dgetSecureBootPolicy(); + SecureBootWhiteList = configPlist.dgetSecureBootWhiteList(); + SecureBootBlackList = configPlist.dgetSecureBootBlackList(); + XMPDetection = configPlist.dgetXMPDetection(); + LegacyBoot = configPlist.dgetLegacyBoot(gFirmwareClover); + LegacyBiosDefaultEntry = configPlist.dgetLegacyBiosDefaultEntry(); + CustomLogoType = configPlist.dgetCustomLogoType(); + CustomLogoAsXString8 = configPlist.dgetCustomLogoAsXString8(); + CustomLogoAsData = configPlist.dgetCustomLogoAsData(); + } }; class ACPIClass @@ -739,9 +816,9 @@ public: UINT32 TabLength = 0; bool OtherOS = 0; - #if __cplusplus > 201703L - bool operator == (const ACPIDropTablesClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ACPIDropTablesClass&) const = default; +#endif bool isEqual(const ACPIDropTablesClass& other) const { if ( !(Signature == other.Signature) ) return false; @@ -750,6 +827,13 @@ public: if ( !(OtherOS == other.OtherOS) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class::ACPI_DropTables_Class& configPlist) + { + Signature = configPlist.dgetSignature(); + TableId = configPlist.dgetTableId(); + TabLength = configPlist.dgetTabLength(); + OtherOS = configPlist.dgetOtherOS(); + } }; class DSDTClass @@ -765,9 +849,9 @@ public: XBuffer PatchDsdtTgt = XBuffer(); INPUT_ITEM PatchDsdtMenuItem = INPUT_ITEM(); // Not read from config.plist. Should be moved out. - #if __cplusplus > 201703L - bool operator == (const DSDT_Patch&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const DSDT_Patch&) const = default; +#endif bool isEqual(const DSDT_Patch& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -778,6 +862,15 @@ public: if ( !(PatchDsdtMenuItem == other.PatchDsdtMenuItem) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class::DSDT_Class::ACPI_DSDT_Patch_Class& configPlist) + { + Disabled = configPlist.dgetDisabled(); + PatchDsdtLabel = configPlist.dgetPatchDsdtLabel(); + PatchDsdtFind = configPlist.dgetPatchDsdtFind(); + PatchDsdtReplace = configPlist.dgetPatchDsdtReplace(); + PatchDsdtTgt = configPlist.dgetPatchDsdtTgt(); + PatchDsdtMenuItem.BValue = !configPlist.dgetDisabled(); + } }; XStringW DsdtName = XStringW(); @@ -787,11 +880,13 @@ public: UINT32 FixDsdt = 0; bool ReuseFFFF = 0; bool SuspendOverride = 0; - XObjArray DSDTPatchArray = XObjArray(); +// XObjArray DSDTPatchArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + DSDTPatchArray = XObjArrayWithTakeValueFromXmlArray(); - #if __cplusplus > 201703L - bool operator == (const DSDTClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const DSDTClass&) const = default; +#endif bool isEqual(const DSDTClass& other) const { if ( !(DsdtName == other.DsdtName) ) return false; @@ -804,6 +899,17 @@ public: if ( !DSDTPatchArray.isEqual(other.DSDTPatchArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class::DSDT_Class& configPlist) + { + DsdtName = configPlist.dgetDsdtName(); + DebugDSDT = configPlist.dgetDebugDSDT(); + Rtc8Allowed = configPlist.dgetRtc8Allowed(); + PNLF_UID = configPlist.dgetPNLF_UID(); + FixDsdt = configPlist.dgetFixDsdt(); + ReuseFFFF = configPlist.dgetReuseFFFF(); + SuspendOverride = configPlist.dgetSuspendOverride(); + DSDTPatchArray.takeValueFrom(configPlist.Patches); + } }; class SSDTClass @@ -818,9 +924,9 @@ public: bool GenerateAPLF = 0; bool GeneratePluginType = 0; - #if __cplusplus > 201703L - bool operator == (const GenerateClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const GenerateClass&) const = default; +#endif bool isEqual(const GenerateClass& other) const { if ( !(GeneratePStates == other.GeneratePStates) ) return false; @@ -830,6 +936,14 @@ public: if ( !(GeneratePluginType == other.GeneratePluginType) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class::SSDT_Class::XmlUnionGenerate& configPlist) + { + GeneratePStates = configPlist.dgetGeneratePStates(); + GenerateCStates = configPlist.dgetGenerateCStates(); + GenerateAPSN = configPlist.dgetGenerateAPSN(); + GenerateAPLF = configPlist.dgetGenerateAPLF(); + GeneratePluginType = configPlist.dgetGeneratePluginType(); + } }; bool DropSSDTSetting = 0; @@ -849,9 +963,9 @@ public: UINT8 PluginType = 0; GenerateClass Generate = GenerateClass(); - #if __cplusplus > 201703L - bool operator == (const SSDTClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const SSDTClass&) const = default; +#endif bool isEqual(const SSDTClass& other) const { if ( !(DropSSDTSetting == other.DropSSDTSetting) ) return false; @@ -872,6 +986,25 @@ public: if ( !Generate.isEqual(other.Generate) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class::SSDT_Class& configPlist) + { + DropSSDTSetting = configPlist.dgetDropSSDTSetting(); + NoOemTableId = configPlist.dgetNoOemTableId(); + NoDynamicExtract = configPlist.dgetNoDynamicExtract(); + EnableISS = configPlist.dgetEnableISS(); + EnableC7 = configPlist.dgetEnableC7(); + _EnableC6 = configPlist.dget_EnableC6(); + _EnableC4 = configPlist.dget_EnableC4(); + _EnableC2 = configPlist.dget_EnableC2(); + _C3Latency = configPlist.dget_C3Latency(); + PLimitDict = configPlist.dgetPLimitDict(); + UnderVoltStep = configPlist.dgetUnderVoltStep(); + DoubleFirstState = configPlist.dgetDoubleFirstState(); + MinMultiplier = configPlist.dgetMinMultiplier(); + MaxMultiplier = configPlist.dgetMaxMultiplier(); + PluginType = configPlist.dgetPluginType(); + Generate.takeValueFrom(configPlist.Generate); + } }; UINT64 ResetAddr = 0; @@ -885,14 +1018,50 @@ public: bool AutoMerge = 0; XStringWArray DisabledAML = XStringWArray(); XString8Array SortedACPI = XString8Array(); - XObjArray DeviceRename = XObjArray(); - XObjArray ACPIDropTablesArray = XObjArray(); +// XObjArray DeviceRename = XObjArray(); +// XObjArrayWithTakeValueFrom +// DeviceRename = XObjArrayWithTakeValueFrom(); + class DeviceRename_Array : public XObjArray { + public: + void takeValueFrom(const ConfigPlistClass::ACPI_Class::ACPI_RenamesDevices_Class& configPlist) + { + size_t idx; + for ( idx = 0 ; idx < configPlist.size() ; ++idx ) { + if ( idx < size() ) ElementAt(idx).takeValueFrom(configPlist.getAtIndex(idx)); + else { + ACPI_RENAME_DEVICE* s = new ACPI_RENAME_DEVICE(); + s->takeValueFrom(configPlist.getAtIndex(idx)); + AddReference(s, true); + } + } + while ( idx < size() ) RemoveAtIndex(idx); + } + } DeviceRename = DeviceRename_Array(); +// XObjArray ACPIDropTablesArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + ACPIDropTablesArray = XObjArrayWithTakeValueFromXmlArray(); +// class ACPIDropTablesArrayClass : public XObjArray { +// public: +// void takeValueFrom(const XmlArray& configPlist) +// { +// size_t idx; +// for ( idx = 0 ; idx < configPlist.size() ; ++idx ) { +// if ( idx < size() ) ElementAt(idx).takeValueFrom(configPlist[idx]); +// else { +// ACPIDropTablesClass* s = new ACPIDropTablesClass(); +// s->takeValueFrom(configPlist[idx]); +// AddReference(s, true); +// } +// } +// while ( idx < size() ) RemoveAtIndex(idx); +// } +// } ACPIDropTablesArray = ACPIDropTablesArrayClass(); DSDTClass DSDT = DSDTClass(); SSDTClass SSDT = SSDTClass(); - #if __cplusplus > 201703L - bool operator == (const ACPIClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ACPIClass&) const = default; +#endif bool isEqual(const ACPIClass& other) const { if ( !(ResetAddr == other.ResetAddr) ) return false; @@ -912,6 +1081,24 @@ public: if ( !SSDT.isEqual(other.SSDT) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::ACPI_Class& configPlist) + { + ResetAddr = configPlist.dgetResetAddr(); + ResetVal = configPlist.dgetResetVal(); + SlpSmiEnable = configPlist.dgetSlpSmiEnable(); + FixHeaders = configPlist.dgetFixHeaders(); + FixMCFG = configPlist.dgetFixMCFG(); + NoASPM = configPlist.dgetNoASPM(); + smartUPS = configPlist.dgetsmartUPS(); + PatchNMI = configPlist.dgetPatchNMI(); + AutoMerge = configPlist.dgetAutoMerge(); + DisabledAML = configPlist.dgetDisabledAML(); + SortedACPI = configPlist.dgetSortedACPI(); + DeviceRename.takeValueFrom(configPlist.RenameDevices); + ACPIDropTablesArray.takeValueFrom(configPlist.ACPIDropTablesArray); + DSDT.takeValueFrom(configPlist.DSDT); + SSDT.takeValueFrom(configPlist.SSDT); + } }; class GUIClass { @@ -923,9 +1110,9 @@ public: UINT64 DoubleClickTime = 0; bool PointerMirror = 0; - #if __cplusplus > 201703L - bool operator == (const MouseClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const MouseClass&) const = default; +#endif bool isEqual(const MouseClass& other) const { if ( !(PointerSpeed == other.PointerSpeed) ) return false; @@ -934,6 +1121,13 @@ public: if ( !(PointerMirror == other.PointerMirror) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Mouse_Class& configPlist) + { + PointerSpeed = configPlist.dgetPointerSpeed(); + PointerEnabled = configPlist.dgetPointerEnabled(); + DoubleClickTime = configPlist.dgetDoubleClickTime(); + PointerMirror = configPlist.dgetPointerMirror(); + } } ; class ScanClass { public: @@ -944,9 +1138,9 @@ public: bool LegacyFirst = false; bool NoLegacy = false; - #if __cplusplus > 201703L - bool operator == (const ScanClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ScanClass&) const = default; +#endif bool isEqual(const ScanClass& other) const { if ( !(DisableEntryScan == other.DisableEntryScan) ) return false; @@ -957,6 +1151,15 @@ public: if ( !(NoLegacy == other.NoLegacy) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class::GUI_Scan_Class& configPlist) + { + DisableEntryScan = configPlist.dgetDisableEntryScan(); + DisableToolScan = configPlist.dgetDisableToolScan(); + KernelScan = configPlist.dgetKernelScan(); + LinuxScan = configPlist.dgetLinuxScan(); + LegacyFirst = configPlist.dgetLegacyFirst(); + NoLegacy = configPlist.dgetNoLegacy(); + } }; INT32 Timezone = 0xFF; @@ -976,15 +1179,21 @@ public: XString8Array HVHideStrings = XString8Array(); ScanClass Scan = ScanClass(); MouseClass Mouse = MouseClass(); - XObjArray CustomEntriesSettings = XObjArray(); - XObjArray CustomLegacySettings = XObjArray(); - XObjArray CustomToolSettings = XObjArray(); +// XObjArray CustomEntriesSettings = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + CustomEntriesSettings = XObjArrayWithTakeValueFromXmlArray(); +// XObjArray CustomLegacySettings = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + CustomLegacySettings = XObjArrayWithTakeValueFromXmlArray(); +// XObjArray CustomToolSettings = XObjArray(); + XObjArrayWithTakeValueFromXmlArray + CustomToolSettings = XObjArrayWithTakeValueFromXmlArray(); bool getDarkEmbedded(bool isDaylight) const; - #if __cplusplus > 201703L - bool operator == (const GUIClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const GUIClass&) const = default; +#endif bool isEqual(const GUIClass& other) const { if ( !(Timezone == other.Timezone) ) return false; @@ -1008,6 +1217,28 @@ public: if ( !CustomToolSettings.isEqual(other.CustomToolSettings) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::GUI_Class& configPlist) + { + Timezone = configPlist.dgetTimezone(); + Theme = configPlist.dgetTheme(); + EmbeddedThemeType = configPlist.dgetEmbeddedThemeType(); + PlayAsync = configPlist.dgetPlayAsync(); + CustomIcons = configPlist.dgetCustomIcons(); + TextOnly = configPlist.dgetTextOnly(); + ShowOptimus = configPlist.dgetShowOptimus(); + ScreenResolution = configPlist.dgetScreenResolution(); + ProvideConsoleGop = configPlist.dgetProvideConsoleGop(); + ConsoleMode = configPlist.dgetConsoleMode(); + Language = configPlist.dgetLanguage(); + languageCode = configPlist.dgetlanguageCode(); + KbdPrevLang = configPlist.dgetKbdPrevLang(); + HVHideStrings = configPlist.dgetHVHideStrings(); + Scan.takeValueFrom(configPlist.Scan); + Mouse.takeValueFrom(configPlist.Mouse); + CustomEntriesSettings.takeValueFrom(configPlist.Custom.Entries); + CustomLegacySettings.takeValueFrom(configPlist.Custom.Legacy); + CustomToolSettings.takeValueFrom(configPlist.Custom.Tool); + } }; @@ -1030,9 +1261,9 @@ public: undefinable_bool _EnableC2 = undefinable_bool(); undefinable_uint16 _C3Latency = undefinable_uint16(); - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const CPUClass&) const = default; - #endif +#endif bool isEqual(const CPUClass& other) const { if ( !(QPI == other.QPI) ) return false; @@ -1053,6 +1284,25 @@ public: if ( !(_C3Latency == other._C3Latency) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::CPU_Class& configPlist) + { + QPI = configPlist.dgetQPI(); + CpuFreqMHz = configPlist.dgetCpuFreqMHz(); + CpuType = configPlist.dgetCpuType(); + QEMU = configPlist.dgetQEMU(); + UseARTFreq = configPlist.dgetUseARTFreq(); + BusSpeed = configPlist.dgetBusSpeed(); + UserChange = configPlist.dgetUserChange(); + SavingMode = configPlist.dgetSavingMode(); + HWPEnable = configPlist.dgetHWPEnable(); + HWPValue = configPlist.dgetHWPValue(); + TDP = configPlist.dgetTDP(); + TurboDisabled = configPlist.dgetTurboDisabled(); + _EnableC6 = configPlist.dget_EnableC6(); + _EnableC4 = configPlist.dget_EnableC4(); + _EnableC2 = configPlist.dget_EnableC2(); + _C3Latency = configPlist.dget_C3Latency(); + } }; class SystemParametersClass { @@ -1068,12 +1318,12 @@ public: public: bool NvidiaWeb = 0; - friend class ::SETTINGS_DATA; - friend unsigned long long ::GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); +// friend class ::SETTINGS_DATA; +// friend unsigned long long ::GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); - #if __cplusplus > 201703L - bool operator == (const SystemParametersClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const SystemParametersClass&) const = default; +#endif bool isEqual(const SystemParametersClass& other) const { if ( !(WithKexts == other.WithKexts) ) return false; @@ -1086,6 +1336,17 @@ public: if ( !(NvidiaWeb == other.NvidiaWeb) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::SystemParameters_Class& configPlist) + { + WithKexts = configPlist.dgetWithKexts(); + WithKextsIfNoFakeSMC = configPlist.dgetWithKextsIfNoFakeSMC(); + NoCaches = configPlist.dgetNoCaches(); + BacklightLevel = configPlist.dgetBacklightLevel(); + BacklightLevelConfig = configPlist.dgetBacklightLevelConfig(); + CustomUuid = configPlist.dgetCustomUuid(); + _InjectSystemID = configPlist.dget_InjectSystemID(); + NvidiaWeb = configPlist.dgetNvidiaWeb(); + } }; class GraphicsClass { @@ -1099,9 +1360,9 @@ public: UINT16 EdidFixHorizontalSyncPulseWidth = UINT16(); UINT8 EdidFixVideoInputSignal = UINT8(); - #if __cplusplus > 201703L - bool operator == (const EDIDClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const EDIDClass&) const = default; +#endif bool isEqual(const EDIDClass& other) const { if ( !(InjectEDID == other.InjectEDID) ) return false; @@ -1112,6 +1373,15 @@ public: if ( !(EdidFixVideoInputSignal == other.EdidFixVideoInputSignal) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Graphics_Class::Graphics_EDID_Class& configPlist) + { + InjectEDID = configPlist.dgetInjectEDID(); + CustomEDID = configPlist.dgetCustomEDID(); + VendorEDID = configPlist.dgetVendorEDID(); + ProductEDID = configPlist.dgetProductEDID(); + EdidFixHorizontalSyncPulseWidth = configPlist.dgetEdidFixHorizontalSyncPulseWidth(); + EdidFixVideoInputSignal = configPlist.dgetEdidFixVideoInputSignal(); + } }; class InjectAsDictClass { @@ -1121,9 +1391,9 @@ public: bool InjectATI = bool(); bool InjectNVidia = bool(); - #if __cplusplus > 201703L - bool operator == (const InjectAsDictClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const InjectAsDictClass&) const = default; +#endif bool isEqual(const InjectAsDictClass& other) const { if ( !(GraphicsInjector == other.GraphicsInjector) ) return false; @@ -1132,6 +1402,13 @@ public: if ( !(InjectNVidia == other.InjectNVidia) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Graphics_Class::XmlInjectUnion& configPlist) + { + GraphicsInjector = configPlist.dgetGraphicsInjector(); + InjectIntel = configPlist.dgetInjectIntel(); + InjectATI = configPlist.dgetInjectATI(); + InjectNVidia = configPlist.dgetInjectNVidia(); + } }; class GRAPHIC_CARD { @@ -1144,9 +1421,9 @@ public: UINTN VideoPorts = 0; bool LoadVBios = 0; - #if __cplusplus > 201703L - bool operator == (const GRAPHIC_CARD&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const GRAPHIC_CARD&) const = default; +#endif bool isEqual(const GRAPHIC_CARD& other) const { if ( !(Signature == other.Signature) ) return false; @@ -1158,6 +1435,16 @@ public: if ( !(LoadVBios == other.LoadVBios) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Graphics_Class::Graphics_ATI_NVIDIA_Class& configPlist) + { + Signature = configPlist.dgetSignature(); + Model = configPlist.dgetModel(); + Id = configPlist.dgetId(); + SubId = configPlist.dgetSubId(); + VideoRam = configPlist.dgetVideoRam(); + VideoPorts = configPlist.dgetVideoPorts(); + LoadVBios = configPlist.dgetLoadVBios(); + } }; bool PatchVBios = bool(); @@ -1179,8 +1466,8 @@ public: UINT32 _IgPlatform = UINT32(); //could also be snb-platform-id EDIDClass EDID = EDIDClass(); InjectAsDictClass InjectAsDict = InjectAsDictClass(); - XObjArray ATICardList = XObjArray(); - XObjArray NVIDIACardList = XObjArray(); + XObjArrayWithTakeValueFromXmlArray ATICardList = XObjArrayWithTakeValueFromXmlArray(); + XObjArrayWithTakeValueFromXmlArray NVIDIACardList = XObjArrayWithTakeValueFromXmlArray(); GraphicsClass() { Dcfg.setSize(8); @@ -1189,9 +1476,9 @@ public: memset(NVCAP.data(), 0, 20); } - #if __cplusplus > 201703L - bool operator == (const GraphicsClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const GraphicsClass&) const = default; +#endif bool isEqual(const GraphicsClass& other) const { if ( !(PatchVBios == other.PatchVBios) ) return false; @@ -1216,6 +1503,29 @@ public: if ( !NVIDIACardList.isEqual(other.NVIDIACardList) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Graphics_Class& configPlist) + { + PatchVBios = configPlist.dgetPatchVBios(); + PatchVBiosBytes.takeValueFrom(configPlist.PatchVBiosBytesArray); + RadeonDeInit = configPlist.dgetRadeonDeInit(); + LoadVBios = configPlist.dgetLoadVBios(); + VRAM = configPlist.dgetVRAM(); + RefCLK = configPlist.dgetRefCLK(); + FBName = configPlist.dgetFBName(); + VideoPorts = configPlist.dgetVideoPorts(); + NvidiaGeneric = configPlist.dgetNvidiaGeneric(); + NvidiaNoEFI = configPlist.dgetNvidiaNoEFI(); + NvidiaSingle = configPlist.dgetNvidiaSingle(); + Dcfg = configPlist.dgetDcfg(); + NVCAP = configPlist.dgetNVCAP(); + BootDisplay = configPlist.dgetBootDisplay(); + DualLink = configPlist.dgetDualLink(); + _IgPlatform = configPlist.dget_IgPlatform(); + EDID.takeValueFrom(configPlist.EDID); + InjectAsDict.takeValueFrom(configPlist.Inject); + ATICardList.takeValueFrom(configPlist.ATI); + NVIDIACardList.takeValueFrom(configPlist.NVIDIA); + } //bool getGraphicsInjector() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.GraphicsInjector; } //bool InjectIntel() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.InjectIntel; } @@ -1234,9 +1544,9 @@ public: INT32 HDALayoutId = INT32(); bool AFGLowPowerState = bool(); - #if __cplusplus > 201703L - bool operator == (const AudioClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const AudioClass&) const = default; +#endif bool isEqual(const AudioClass& other) const { if ( !(ResetHDA == other.ResetHDA) ) return false; @@ -1245,6 +1555,13 @@ public: if ( !(AFGLowPowerState == other.AFGLowPowerState) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::Devices_Audio_Class& configPlist) + { + ResetHDA = configPlist.dgetResetHDA(); + HDAInjection = configPlist.dgetHDAInjection(); + HDALayoutId = configPlist.dgetHDALayoutId(); + AFGLowPowerState = configPlist.dgetAFGLowPowerState(); + } }; class USBClass { public: @@ -1253,11 +1570,11 @@ public: bool InjectClockID = bool(); bool HighCurrent = bool(); bool NameEH00 = bool(); - bool NameXH00 = bool(); + bool NameXH00 = bool(); // is it used? - #if __cplusplus > 201703L - bool operator == (const USBClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const USBClass&) const = default; +#endif bool isEqual(const USBClass& other) const { if ( !(USBInjection == other.USBInjection) ) return false; @@ -1268,6 +1585,15 @@ public: if ( !(NameXH00 == other.NameXH00) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::Devices_USB_Class& configPlist) + { + USBInjection = configPlist.dgetUSBInjection(); + USBFixOwnership = configPlist.dgetUSBFixOwnership(); + InjectClockID = configPlist.dgetInjectClockID(); + HighCurrent = configPlist.dgetHighCurrent(); + NameEH00 = configPlist.dgetNameEH00(); + //NameXH00 = configPlist.dgetNameXH00(); + } }; class AddPropertyClass @@ -1278,14 +1604,14 @@ public: XBuffer Value = XBuffer(); TAG_TYPE ValueType = kTagTypeNone; INPUT_ITEM MenuItem = INPUT_ITEM(); - XString8 DevicePathAsString = XString8(); - XString8 Label = XString8(); +// XString8 DevicePathAsString = XString8(); +// XString8 Label = XString8(); AddPropertyClass() {} - #if __cplusplus > 201703L - bool operator == (const AddPropertyClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const AddPropertyClass&) const = default; +#endif bool isEqual(const AddPropertyClass& other) const { if ( !(Device == other.Device) ) return false; @@ -1293,10 +1619,20 @@ public: if ( !(Value == other.Value) ) return false; if ( !(ValueType == other.ValueType) ) return false; if ( !(MenuItem == other.MenuItem) ) return false; - if ( !(DevicePathAsString == other.DevicePathAsString) ) return false; - if ( !(Label == other.Label) ) return false; +// if ( !(DevicePathAsString == other.DevicePathAsString) ) return false; +// if ( !(Label == other.Label) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::Devices_AddProperties_Dict_Class& configPlist) + { + Device = configPlist.dgetDevice(); + Key = configPlist.dgetKey(); + Value = configPlist.dgetValue(); + ValueType = configPlist.dgetValueType(); + MenuItem.BValue = !configPlist.dgetDisabled(); +// DevicePathAsString = configPlist.dgetDevicePathAsString(); +// Label = configPlist.dgetLabel(); + } }; // This is shared by PropertiesClass and ArbitraryClass @@ -1310,9 +1646,9 @@ public: SimplePropertyClass() {} - #if __cplusplus > 201703L - bool operator == (const SimplePropertyClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const SimplePropertyClass&) const = default; +#endif bool isEqual(const SimplePropertyClass& other) const { if ( !(Key == other.Key) ) return false; @@ -1321,6 +1657,20 @@ public: if ( !(MenuItem == other.MenuItem) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::SimplePropertyClass_Class& configPlist) + { + Key = configPlist.dgetKey(); + Value = configPlist.dgetValue(); + ValueType = configPlist.dgetValueType(); + MenuItem.BValue = !configPlist.dgetDisabled(); + } + void takeValueFrom(const ConfigPlistClass::DevicesClass::PropertiesUnion::Property& configPlist) + { + Key = configPlist.dgetKey(); + Value = configPlist.dgetValue(); + ValueType = configPlist.dgetValueType(); + MenuItem.BValue = configPlist.dgetBValue(); + } }; // Property don't have Device. Before it was always Device = 0 to differentiate from Arbitrary properties. @@ -1334,26 +1684,28 @@ public: bool Enabled = true; XStringW DevicePathAsString = XStringW(); // XString8 Label = XString8(); // Label is the same as DevicePathAsString, so it's not needed. - XObjArray propertiesArray = XObjArray(); + XObjArrayWithTakeValueFromXmlRepeatingDict propertiesArray = XObjArrayWithTakeValueFromXmlRepeatingDict(); PropertyClass() {} +#if !defined(DONT_DEFINE_GLOBALS) EFI_DEVICE_PATH_PROTOCOL* getDevicePath() const { EFI_DEVICE_PATH_PROTOCOL* DevicePath; - if ( DevicePathAsString.isEqualIC("PrimaryGPU") ) { - DevicePath = DevicePathFromHandle(gGraphics[0].Handle); // first gpu - } else if ( DevicePathAsString.isEqualIC("SecondaryGPU") && NGFX > 1) { - DevicePath = DevicePathFromHandle(gGraphics[1].Handle); // second gpu + if ( DevicePathAsString.isEqualIC("PrimaryGPU") && gConf.GfxPropertiesArray.size() > 0 ) { + DevicePath = DevicePathFromHandle(gConf.GfxPropertiesArray[0].Handle); // first gpu + } else if ( DevicePathAsString.isEqualIC("SecondaryGPU") && gConf.GfxPropertiesArray.size() > 1 ) { + DevicePath = DevicePathFromHandle(gConf.GfxPropertiesArray[1].Handle); // second gpu } else { DevicePath = ConvertTextToDevicePath(DevicePathAsString.wc_str()); //TODO } return DevicePath; } - - #if __cplusplus > 201703L - bool operator == (const PropertyClass&) const = default; - #endif +#endif + +#if __cplusplus > 201703L + bool operator == (const PropertyClass&) const = default; +#endif bool isEqual(const PropertyClass& other) const { if ( !(Enabled == other.Enabled) ) return false; @@ -1362,32 +1714,44 @@ public: if ( !propertiesArray.isEqual(other.propertiesArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::PropertiesUnion::Properties4DeviceClass& configPlist) + { + Enabled = configPlist.dgetEnabled(); + DevicePathAsString = configPlist.dgetDevicePathAsString(); +// Label = configPlist.dgetLabel(); + propertiesArray.takeValueFrom(configPlist); + } }; XString8 propertiesAsString = XString8(); - XObjArray PropertyArray = XObjArray(); + XObjArrayWithTakeValueFromXmlRepeatingDict PropertyArray = XObjArrayWithTakeValueFromXmlRepeatingDict(); - #if __cplusplus > 201703L - bool operator == (const PropertiesClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const PropertiesClass&) const = default; +#endif bool isEqual(const PropertiesClass& other) const { if ( !(propertiesAsString == other.propertiesAsString) ) return false; if ( !PropertyArray.isEqual(other.PropertyArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::PropertiesUnion& configPlist) + { + propertiesAsString = configPlist.dgetpropertiesAsString(); + PropertyArray.takeValueFrom(configPlist.PropertiesAsDict); + } }; class ArbitraryPropertyClass { public: uint32_t Device = 0; XString8 Label = XString8(); - XObjArray CustomPropertyArray = XObjArray (); + XObjArrayWithTakeValueFromXmlArray CustomPropertyArray = XObjArrayWithTakeValueFromXmlArray(); ArbitraryPropertyClass() {} - #if __cplusplus > 201703L - bool operator == (const ArbitraryPropertyClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const ArbitraryPropertyClass&) const = default; +#endif bool isEqual(const ArbitraryPropertyClass& other) const { if ( !(Device == other.Device) ) return false; @@ -1395,6 +1759,12 @@ public: if ( !CustomPropertyArray.isEqual(other.CustomPropertyArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::Devices_Arbitrary_Class& configPlist) + { + Device = configPlist.dgetDevice(); + Label = configPlist.dgetLabel(); + CustomPropertyArray.takeValueFrom(configPlist.CustomProperties); + } }; class FakeIDClass { @@ -1409,9 +1779,9 @@ public: UINT32 FakeXHCI = UINT32(); //103 UINT32 FakeIMEI = UINT32(); //106 - #if __cplusplus > 201703L - bool operator == (const FakeIDClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const FakeIDClass&) const = default; +#endif bool isEqual(const FakeIDClass& other) const { if ( !(FakeATI == other.FakeATI) ) return false; @@ -1424,6 +1794,17 @@ public: if ( !(FakeIMEI == other.FakeIMEI) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass::Devices_FakeID_Class& configPlist) + { + FakeATI = configPlist.dgetFakeATI(); + FakeNVidia = configPlist.dgetFakeNVidia(); + FakeIntel = configPlist.dgetFakeIntel(); + FakeLAN = configPlist.dgetFakeLAN(); + FakeWIFI = configPlist.dgetFakeWIFI(); + FakeSATA = configPlist.dgetFakeSATA(); + FakeXHCI = configPlist.dgetFakeXHCI(); + FakeIMEI = configPlist.dgetFakeIMEI(); + } }; bool StringInjector = bool(); @@ -1441,14 +1822,14 @@ public: USBClass USB = USBClass(); FakeIDClass FakeID = FakeIDClass(); - XObjArray AddPropertyArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray AddPropertyArray = XObjArrayWithTakeValueFromXmlArray(); PropertiesClass Properties = PropertiesClass(); - XObjArray ArbitraryArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray ArbitraryArray = XObjArrayWithTakeValueFromXmlArray(); - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const DevicesClass&) const = default; - #endif +#endif bool isEqual(const DevicesClass& other) const { if ( !(StringInjector == other.StringInjector) ) return false; @@ -1470,6 +1851,26 @@ public: if ( !ArbitraryArray.isEqual(other.ArbitraryArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::DevicesClass& configPlist) + { + StringInjector = configPlist.dgetStringInjector(); + IntelMaxBacklight = configPlist.dgetIntelMaxBacklight(); + IntelBacklight = configPlist.dgetIntelBacklight(); + IntelMaxValue = configPlist.dgetIntelMaxValue(); + LANInjection = configPlist.dgetLANInjection(); + HDMIInjection = configPlist.dgetHDMIInjection(); + NoDefaultProperties = configPlist.dgetNoDefaultProperties(); + UseIntelHDMI = configPlist.dgetUseIntelHDMI(); + ForceHPET = configPlist.dgetForceHPET(); + DisableFunctions = configPlist.dgetDisableFunctions(); + AirportBridgeDeviceName = configPlist.dgetAirportBridgeDeviceName(); + Audio.takeValueFrom(configPlist.Audio); + USB.takeValueFrom(configPlist.USB); + FakeID.takeValueFrom(configPlist.FakeID); + AddPropertyArray.takeValueFrom(configPlist.AddProperties); + Properties.takeValueFrom(configPlist.Properties); + ArbitraryArray.takeValueFrom(configPlist.Arbitrary); + } // 2021-04 : Following is temporary to compare with old way of storing properties. // Let's keep it few months until I am sure the refactoring isomorphic @@ -1649,7 +2050,7 @@ printf("%s", ""); bool enabled = 0; #if __cplusplus > 201703L - bool operator == (const MMIOWhiteList&) const = default; + bool operator == (const MMIOWhiteList&) const = default; #endif bool isEqual(const MMIOWhiteList& other) const { @@ -1658,6 +2059,12 @@ printf("%s", ""); if ( !(enabled == other.enabled) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Quirks_Class::Quirks_MmioWhitelist_Class& configPlist) + { + address = configPlist.dgetaddress(); + comment = configPlist.dgetcomment(); + enabled = configPlist.dgetenabled(); + } }; class OcKernelQuirksClass { @@ -1679,23 +2086,36 @@ printf("%s", ""); bool ThirdPartyDrives = false; bool XhciPortLimit = false; - #if __cplusplus > 201703L - bool operator == (const OcKernelQuirksClass&) const = default; - #endif - bool isEqual(const OcKernelQuirksClass& other) const - { - if ( !(AppleXcpmExtraMsrs == other.AppleXcpmExtraMsrs) ) return false; - if ( !(AppleXcpmForceBoost == other.AppleXcpmForceBoost) ) return false; - if ( !(DisableIoMapper == other.DisableIoMapper) ) return false; - if ( !(DisableLinkeditJettison == other.DisableLinkeditJettison) ) return false; - if ( !(DummyPowerManagement == other.DummyPowerManagement) ) return false; - if ( !(ExternalDiskIcons == other.ExternalDiskIcons) ) return false; - if ( !(IncreasePciBarSize == other.IncreasePciBarSize) ) return false; - if ( !(PowerTimeoutKernelPanic == other.PowerTimeoutKernelPanic) ) return false; - if ( !(ThirdPartyDrives == other.ThirdPartyDrives) ) return false; - if ( !(XhciPortLimit == other.XhciPortLimit) ) return false; - return true; - } +#if __cplusplus > 201703L + bool operator == (const OcKernelQuirksClass&) const = default; +#endif + bool isEqual(const OcKernelQuirksClass& other) const + { + if ( !(AppleXcpmExtraMsrs == other.AppleXcpmExtraMsrs) ) return false; + if ( !(AppleXcpmForceBoost == other.AppleXcpmForceBoost) ) return false; + if ( !(DisableIoMapper == other.DisableIoMapper) ) return false; + if ( !(DisableLinkeditJettison == other.DisableLinkeditJettison) ) return false; + if ( !(DummyPowerManagement == other.DummyPowerManagement) ) return false; + if ( !(ExternalDiskIcons == other.ExternalDiskIcons) ) return false; + if ( !(IncreasePciBarSize == other.IncreasePciBarSize) ) return false; + if ( !(PowerTimeoutKernelPanic == other.PowerTimeoutKernelPanic) ) return false; + if ( !(ThirdPartyDrives == other.ThirdPartyDrives) ) return false; + if ( !(XhciPortLimit == other.XhciPortLimit) ) return false; + return true; + } + void takeValueFrom(const ConfigPlistClass::Quirks_Class::OcKernelQuirks_Class& configPlist) + { + AppleXcpmExtraMsrs = configPlist.dgetAppleXcpmExtraMsrs(); + AppleXcpmForceBoost = configPlist.dgetAppleXcpmForceBoost(); + DisableIoMapper = configPlist.dgetDisableIoMapper(); + DisableLinkeditJettison = configPlist.dgetDisableLinkeditJettison(); + DummyPowerManagement = configPlist.dgetDummyPowerManagement(); + ExternalDiskIcons = configPlist.dgetExternalDiskIcons(); + IncreasePciBarSize = configPlist.dgetIncreasePciBarSize(); + PowerTimeoutKernelPanic = configPlist.dgetPowerTimeoutKernelPanic(); + ThirdPartyDrives = configPlist.dgetThirdPartyDrives(); + XhciPortLimit = configPlist.dgetXhciPortLimit(); + } }; class OcBooterQuirksClass @@ -1719,9 +2139,9 @@ printf("%s", ""); bool SignalAppleOS = false; bool SyncRuntimePermissions = false; - #if __cplusplus > 201703L - bool operator == (const OcBooterQuirksClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const OcBooterQuirksClass&) const = default; +#endif bool isEqual(const OcBooterQuirksClass& other) const { if ( !(AvoidRuntimeDefrag == other.AvoidRuntimeDefrag) ) return false; @@ -1743,6 +2163,26 @@ printf("%s", ""); if ( !(SyncRuntimePermissions == other.SyncRuntimePermissions) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Quirks_Class::OcBooterQuirks_Class& configPlist) + { + AvoidRuntimeDefrag = configPlist.dgetAvoidRuntimeDefrag(); + DevirtualiseMmio = configPlist.dgetDevirtualiseMmio(); + DisableSingleUser = configPlist.dgetDisableSingleUser(); + DisableVariableWrite = configPlist.dgetDisableVariableWrite(); + DiscardHibernateMap = configPlist.dgetDiscardHibernateMap(); + EnableSafeModeSlide = configPlist.dgetEnableSafeModeSlide(); + EnableWriteUnprotector = configPlist.dgetEnableWriteUnprotector(); + ForceExitBootServices = configPlist.dgetForceExitBootServices(); + ProtectSecureBoot = configPlist.dgetProtectSecureBoot(); + ProtectUefiServices = configPlist.dgetProtectUefiServices(); + ProtectUefiServices = configPlist.dgetProtectUefiServices(); + ProvideCustomSlide = configPlist.dgetProvideCustomSlide(); + ProvideMaxSlide = configPlist.dgetProvideMaxSlide(); + RebuildAppleMemoryMap = configPlist.dgetRebuildAppleMemoryMap(); + SetupVirtualMap = configPlist.dgetSetupVirtualMap(); + SignalAppleOS = configPlist.dgetSignalAppleOS(); + SyncRuntimePermissions = configPlist.dgetSyncRuntimePermissions(); + } }; @@ -1751,12 +2191,12 @@ printf("%s", ""); // UINTN MaxSlide; OcKernelQuirksClass OcKernelQuirks = OcKernelQuirksClass(); OcBooterQuirksClass OcBooterQuirks = OcBooterQuirksClass(); - XObjArray mmioWhiteListArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray mmioWhiteListArray = XObjArrayWithTakeValueFromXmlArray(); UINT32 QuirksMask = 0; - #if __cplusplus > 201703L - bool operator == (const QuirksClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const QuirksClass&) const = default; +#endif bool isEqual(const QuirksClass& other) const { if ( !(FuzzyMatch == other.FuzzyMatch) ) return false; @@ -1767,6 +2207,15 @@ printf("%s", ""); if ( !(QuirksMask == other.QuirksMask) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::Quirks_Class& configPlist) + { + FuzzyMatch = configPlist.dgetFuzzyMatch(); + OcKernelCache = configPlist.dgetOcKernelCache(); + OcKernelQuirks.takeValueFrom(configPlist.OcKernelQuirks); + OcBooterQuirks.takeValueFrom(configPlist.OcBooterQuirks); + mmioWhiteListArray.takeValueFrom(configPlist.MmioWhitelist); + QuirksMask = configPlist.dgetQuirksMask(); + } }; class RtVariablesClass { @@ -1777,18 +2226,11 @@ printf("%s", ""); bool Disabled = bool(); XString8 Comment = XStringW(); XStringW Name = XStringW(); - EFI_GUID Guid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}}; - - #if __cplusplus > 201703L - //bool operator == (const RT_VARIABLES&) const = default; - bool operator == (const RT_VARIABLES& other) const { // no default... YET, because of EFI_GUID. // TODO: create a class wrapper around EFI_GUID, take the occasion to put conversion method in that new class - if ( !(Disabled == other.Disabled) ) return false; - if ( !(Comment == other.Comment) ) return false; - if ( !(Name == other.Name) ) return false; - if ( memcmp(&Guid, &other.Guid, sizeof(Guid)) != 0 ) return false; - return true; - } - #endif + EFI_GUIDClass Guid = EFI_GUIDClass(); + +#if __cplusplus > 201703L + bool operator == (const RT_VARIABLES&) const = default; +#endif bool isEqual(const RT_VARIABLES& other) const { if ( !(Disabled == other.Disabled) ) return false; @@ -1797,6 +2239,13 @@ printf("%s", ""); if ( memcmp(&Guid, &other.Guid, sizeof(Guid)) != 0 ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::RtVariables_Class::Devices_RtVariables_Block& configPlist) + { + Disabled = configPlist.dgetDisabled(); + Comment = configPlist.dgetComment(); + Name = configPlist.dgetName(); + Guid = configPlist.dgetGuid(); + } }; XString8 RtROMAsString = XString8(); @@ -1805,15 +2254,15 @@ printf("%s", ""); UINT32 CsrActiveConfig = UINT32(); UINT16 BooterConfig = UINT16(); XString8 BooterCfgStr = XString8(); - XObjArray BlockRtVariableArray = XObjArray(); + XObjArrayWithTakeValueFromXmlArray BlockRtVariableArray = XObjArrayWithTakeValueFromXmlArray(); bool GetLegacyLanAddress() const { return RtROMAsString.isEqualIC("UseMacAddr0") || RtROMAsString.isEqualIC("UseMacAddr1"); } - #if __cplusplus > 201703L +#if __cplusplus > 201703L bool operator == (const RtVariablesClass&) const = default; - #endif +#endif bool isEqual(const RtVariablesClass& other) const { if ( !(RtROMAsString == other.RtROMAsString) ) return false; @@ -1825,62 +2274,170 @@ printf("%s", ""); if ( !BlockRtVariableArray.isEqual(other.BlockRtVariableArray) ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::RtVariables_Class& configPlist) + { + RtROMAsString = configPlist.dgetRtROMAsString(); + RtROMAsData = configPlist.dgetRtROMAsData(); + RtMLBSetting = configPlist.dgetRtMLBSetting(); + CsrActiveConfig = configPlist.dgetCsrActiveConfig(); + BooterConfig = configPlist.dgetBooterConfig(); + BooterCfgStr = configPlist.dgetBooterCfgStr(); + BlockRtVariableArray.takeValueFrom(configPlist.Block); + } }; class SmbiosClass { public: - class MemoryClass { - public: - UINT8 SlotCounts = UINT8(); - UINT8 UserChannels = UINT8(); - XObjArray User = XObjArray(); - - MemoryClass() { - for (size_t idx = 0 ; idx < MAX_RAM_SLOTS ; ++idx ) { // TODO: refactor this. We don't need to store all invalid slot info - User.AddReference(new RAM_SLOT_INFO(), true); + + + class SlotDeviceClass + { + public: + static const SlotDeviceClass NullSlotDevice; + public: + uint8_t SmbiosIndex = 0xff; + UINT8 SlotID = UINT8(); + MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE(); + XString8 SlotName = XString8(); + + SlotDeviceClass() {} + +#if __cplusplus > 201703L + bool operator == (const SLOT_DEVICE&) const = default; +#endif + bool isEqual(const SlotDeviceClass& other) const + { + if ( !(SmbiosIndex == other.SmbiosIndex) ) return false; + if ( !(SlotID == other.SlotID) ) return false; + if ( !(SlotType == other.SlotType) ) return false; + if ( !(SlotName == other.SlotName) ) return false; + return true; + } + void takeValueFrom(const SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass& configPlist) + { + SmbiosIndex = configPlist.dgetDeviceN(); + SlotID = configPlist.dgetSlotID(); + SlotType = configPlist.dgetSlotType(); + SlotName = configPlist.dgetSlotName(); + } + }; + + class SlotDeviceArrayClass : public XObjArrayWithTakeValueFromXmlArray + { + public: + bool doesSlotForIndexExist(uint8_t idx2Look4) const { + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).SmbiosIndex == idx2Look4 ) return true; + } + return false; } - } - - #if __cplusplus > 201703L - bool operator == (const MemoryClass&) const = default; - #endif - bool isEqual(const MemoryClass& other) const + const SlotDeviceClass& getSlotForIndex(uint8_t idx2Look4) const { + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).SmbiosIndex == idx2Look4 ) return ElementAt(idx); + } + log_technical_bug("%s : no idx==%hhd", __PRETTY_FUNCTION__, idx2Look4); + return SlotDeviceClass::NullSlotDevice; + } + }; + + class RamSlotInfo { + public: + UINT64 Slot = UINT64(); + UINT32 ModuleSize = UINT32(); + UINT32 Frequency = UINT32(); + XString8 Vendor = XString8(); + XString8 PartNo = XString8(); + XString8 SerialNo = XString8(); + UINT8 Type = UINT8(); + bool InUse = bool(); + + RamSlotInfo() {} + + #if __cplusplus > 201703L + bool operator == (const RamSlotInfo&) const = default; + #endif + bool isEqual(const RamSlotInfo& other) const { - if ( !(SlotCounts == other.SlotCounts) ) return false; - if ( !(UserChannels == other.UserChannels) ) return false; - if ( !(User.isEqual(other.User)) ) return false; + if ( !(Slot == other.Slot ) ) return false; + if ( !(ModuleSize == other.ModuleSize ) ) return false; + if ( !(Frequency == other.Frequency ) ) return false; + if ( !(Vendor == other.Vendor ) ) return false; + if ( !(PartNo == other.PartNo ) ) return false; + if ( !(SerialNo == other.SerialNo ) ) return false; + if ( !(Type == other.Type ) ) return false; + if ( !(InUse == other.InUse ) ) return false; return true; } - }; + bool takeValueFrom(const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass& other) + { + Slot = other.dgetSlotNo(); + ModuleSize = other.dgetModuleSize(); + Frequency = other.dgetFrequency(); + Vendor = other.dgetVendor(); + PartNo = other.dgetPartNo(); + SerialNo = other.dgetSerialNo(); + Type = other.dgetType(); + InUse = other.dgetInUse(); + return true; + } + }; - // SMBIOS TYPE0 + class RamSlotInfoArrayClass { + public: + UINT8 SlotCounts = UINT8(); + UINT8 UserChannels = UINT8(); + XObjArrayWithTakeValueFromXmlArray User = XObjArrayWithTakeValueFromXmlArray(); + + RamSlotInfoArrayClass() {} + +#if __cplusplus > 201703L + bool operator == (const RamSlotInfoArrayClass&) const = default; +#endif + bool isEqual(const RamSlotInfoArrayClass& other) const + { + if ( !(SlotCounts == other.SlotCounts) ) return false; + if ( !(UserChannels == other.UserChannels) ) return false; + if ( !(User.isEqual(other.User)) ) return false; + return true; + } + void takeValueFrom(const SmbiosPlistClass::SmbiosDictClass::MemoryDictClass& configPlist) + { + SlotCounts = configPlist.dgetSlotCounts(); + UserChannels = configPlist.dgetUserChannels(); + User.takeValueFrom(configPlist.Modules); + } + }; + + + + // SMBIOS TYPE0 XString8 BiosVendor = XString8(); - XString8 _RomVersion = XString8(); - XString8 _EfiVersion = XString8(); - XString8 _ReleaseDate = XString8(); - // SMBIOS TYPE1 + XString8 BiosVersion = XString8(); + XString8 EfiVersion = XString8(); + XString8 BiosReleaseDate = XString8(); + // SMBIOS TYPE1 XString8 ManufactureName = XString8(); XString8 ProductName = XString8(); - XString8 VersionNr = XString8(); + XString8 SystemVersion = XString8(); XString8 SerialNr = XString8(); XString8 SmUUID = XString8(); XString8 FamilyName = XString8(); - // SMBIOS TYPE2 + // SMBIOS TYPE2 XString8 BoardManufactureName = XString8(); XString8 BoardSerialNumber = XString8(); XString8 BoardNumber = XString8(); //Board-ID XString8 LocationInChassis = XString8(); XString8 BoardVersion = XString8(); UINT8 BoardType = UINT8(); - // SMBIOS TYPE3 + // SMBIOS TYPE3 bool Mobile = bool(); UINT8 ChassisType = UINT8(); XString8 ChassisManufacturer = XString8(); XString8 ChassisAssetTag = XString8(); - // SMBIOS TYPE4 - // SMBIOS TYPE17 + // SMBIOS TYPE4 + // SMBIOS TYPE17 UINT16 SmbiosVersion = UINT16(); INT8 Attribute = INT8(); // These were set but never used. @@ -1888,46 +2445,36 @@ printf("%s", ""); // XString8 MemorySerialNumber; // XString8 MemoryPartNumber; // XString8 MemorySpeed; - // SMBIOS TYPE131 - // SMBIOS TYPE132 + // SMBIOS TYPE131 + // SMBIOS TYPE132 bool TrustSMBIOS = 0; bool InjectMemoryTables = bool(); // same as Memory.SlotCounts - // SMBIOS TYPE133 + // SMBIOS TYPE133 UINT64 gPlatformFeature = UINT64(); - // PatchTableType11 + // PatchTableType11 bool NoRomInfo = bool(); - UINT32 gFwFeatures = UINT32(); - UINT32 gFwFeaturesMask = UINT32(); - MemoryClass Memory = MemoryClass(); - XObjArray SlotDevices = XObjArray(); //assume DEV_XXX, Arpt=6 + UINT32 FirmwareFeatures = UINT32(); + UINT32 FirmwareFeaturesMask = UINT32(); + RamSlotInfoArrayClass RamSlotInfoArray = RamSlotInfoArrayClass(); + SlotDeviceArrayClass SlotDevices = SlotDeviceArrayClass(); - // These are calculated from ApplePlatformData -// CHAR8 RPlt[8] = {0}; -// CHAR8 RBr[8] = {0}; -// UINT8 EPCI[4] = {0}; -// UINT8 REV[6] = {0}; - - SmbiosClass() { - for (size_t idx = 0 ; idx < 16 ; ++idx ) { - SlotDevices.AddReference(new SLOT_DEVICE(), true); - } - } + SmbiosClass() {} - #if __cplusplus > 201703L - bool operator == (const SmbiosClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const SmbiosClass&) const = default; +#endif bool isEqual(const SmbiosClass& other) const { // SMBIOS TYPE0 if ( !(BiosVendor == other.BiosVendor) ) return false; - if ( !(_RomVersion == other._RomVersion) ) return false; - if ( !(_EfiVersion == other._EfiVersion) ) return false; - if ( !(_ReleaseDate == other._ReleaseDate) ) return false; + if ( !(BiosVersion == other.BiosVersion) ) return false; + if ( !(EfiVersion == other.EfiVersion) ) return false; + if ( !(BiosReleaseDate == other.BiosReleaseDate) ) return false; // SMBIOS TYPE1 if ( !(ManufactureName == other.ManufactureName) ) return false; if ( !(ProductName == other.ProductName) ) return false; - if ( !(VersionNr == other.VersionNr) ) return false; + if ( !(SystemVersion == other.SystemVersion) ) return false; if ( !(SerialNr == other.SerialNr) ) return false; if ( !(SmUUID == other.SmUUID) ) return false; if ( !(FamilyName == other.FamilyName) ) return false; @@ -1954,9 +2501,9 @@ printf("%s", ""); // PatchTableType11 if ( !(NoRomInfo == other.NoRomInfo) ) return false; - if ( !(gFwFeatures == other.gFwFeatures) ) return false; - if ( !(gFwFeaturesMask == other.gFwFeaturesMask) ) return false; - if ( !Memory.isEqual(other.Memory) ) return false; + if ( !(FirmwareFeatures == other.FirmwareFeatures) ) return false; + if ( !(FirmwareFeaturesMask == other.FirmwareFeaturesMask) ) return false; + if ( !RamSlotInfoArray.isEqual(other.RamSlotInfoArray) ) return false; if ( !SlotDevices.isEqual(other.SlotDevices) ) return false; // if ( memcmp(RPlt, other.RPlt, sizeof(RPlt)) != 0 ) return false; @@ -1965,6 +2512,48 @@ printf("%s", ""); // if ( memcmp(REV, other.REV, sizeof(REV)) != 0 ) return false; return true; } + void takeValueFrom(const SmbiosPlistClass::SmbiosDictClass& configPlist) + { + // SMBIOS TYPE0 + BiosVendor = configPlist.dgetBiosVendor(); + BiosVersion = configPlist.dgetBiosVersion(); + EfiVersion = configPlist.dgetEfiVersion(); + BiosReleaseDate = configPlist.dgetBiosReleaseDate(); + // SMBIOS TYPE1 + ManufactureName = configPlist.dgetManufactureName(); + ProductName = configPlist.dgetProductName(); + SystemVersion = configPlist.dgetSystemVersion(); + SerialNr = configPlist.dgetSerialNr(); + SmUUID = configPlist.dgetSmUUID(); + FamilyName = configPlist.dgetFamilyName(); + // SMBIOS TYPE2 + BoardManufactureName = configPlist.dgetBoardManufactureName(); + BoardSerialNumber = configPlist.dgetBoardSerialNumber(); + BoardNumber = configPlist.dgetBoardNumber(); + LocationInChassis = configPlist.dgetLocationInChassis(); + BoardVersion = configPlist.dgetBoardVersion(); + BoardType = configPlist.dgetBoardType(); + // SMBIOS TYPE3 + Mobile = configPlist.dgetMobile(); + ChassisType = configPlist.dgetChassisType(); + ChassisManufacturer = configPlist.dgetChassisManufacturer(); + ChassisAssetTag = configPlist.dgetChassisAssetTag(); + // SMBIOS TYPE17 + SmbiosVersion = configPlist.dgetSmbiosVersion(); + Attribute = configPlist.dgetAttribute(); + // SMBIOS TYPE132 + TrustSMBIOS = configPlist.dgetTrustSMBIOS(); + InjectMemoryTables = configPlist.dgetInjectMemoryTables(); + // SMBIOS TYPE133 + gPlatformFeature = configPlist.dgetgPlatformFeature(); + // PatchTableType11 + NoRomInfo = configPlist.dgetNoRomInfo(); + + FirmwareFeatures = configPlist.dgetFirmwareFeatures(); + FirmwareFeaturesMask = configPlist.dgetFirmwareFeaturesMask(); + RamSlotInfoArray.takeValueFrom(configPlist.Memory); + SlotDevices.takeValueFrom(configPlist.Slots); + } }; class BootGraphicsClass { @@ -1979,9 +2568,9 @@ printf("%s", ""); // flagstate.memset(0, 32); } - #if __cplusplus > 201703L - bool operator == (const BootGraphicsClass&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const BootGraphicsClass&) const = default; +#endif bool isEqual(const BootGraphicsClass& other) const { if ( !(DefaultBackgroundColor == other.DefaultBackgroundColor) ) return false; @@ -1990,6 +2579,13 @@ printf("%s", ""); if ( _flagstate != other._flagstate ) return false; return true; } + void takeValueFrom(const ConfigPlistClass::BootGraphics_Class& configPlist) + { + DefaultBackgroundColor = configPlist.dgetDefaultBackgroundColor(); + UIScale = configPlist.dgetUIScale(); + EFILoginHiDPI = configPlist.dgetEFILoginHiDPI(); + _flagstate = configPlist.dget_flagstate(); + } }; BootClass Boot = BootClass(); @@ -2015,9 +2611,9 @@ printf("%s", ""); // SETTINGS_DATA(const SETTINGS_DATA& other) = delete; // Can be defined if needed // const SETTINGS_DATA& operator = ( const SETTINGS_DATA & ) = delete; // Can be defined if needed - #if __cplusplus > 201703L - bool operator == (const SETTINGS_DATA&) const = default; - #endif +#if __cplusplus > 201703L + bool operator == (const SETTINGS_DATA&) const = default; +#endif bool isEqual(const SETTINGS_DATA& other) const { if ( !Boot.isEqual(other.Boot) ) return false; @@ -2036,10 +2632,27 @@ printf("%s", ""); return true; } + void takeValueFrom(const ConfigPlistClass& configPlist) + { + Boot.takeValueFrom(configPlist.Boot); + ACPI.takeValueFrom(configPlist.ACPI); + GUI.takeValueFrom(configPlist.GUI); + CPU.takeValueFrom(configPlist.CPU); + SystemParameters.takeValueFrom(configPlist.SystemParameters); + KernelAndKextPatches.takeValueFrom(configPlist.KernelAndKextPatches); + Graphics.takeValueFrom(configPlist.Graphics); + DisabledDriverArray = configPlist.dgetDisabledDriverArray(); + Quirks.takeValueFrom(configPlist.Quirks); + RtVariables.takeValueFrom(configPlist.RtVariables); + Devices.takeValueFrom(configPlist.Devices); + Smbios.takeValueFrom(configPlist.getSMBIOS()); + BootGraphics.takeValueFrom(configPlist.BootGraphics); + } + ~SETTINGS_DATA() {} const XString8& getUUID(); - const XString8& getUUID(EFI_GUID* efiGuid); + const XString8& getUUID(EFI_GUIDClass* efiGuid); // If CustomUuid is defined, return false by default // If SmUUID is defined, return true by default. bool ShouldInjectSystemID() { @@ -2141,10 +2754,10 @@ extern BOOLEAN SavePreBootLog; extern UINT8 DefaultAudioVolume; -extern GFX_PROPERTIES gGraphics[]; -extern HDA_PROPERTIES gAudios[]; -extern UINTN NGFX; -extern UINTN NHDA; +//extern GFX_PROPERTIES gGraphics[]; +//extern HDA_PROPERTIES gAudios[]; +//extern UINTN NGFX; +//extern UINTN NHDA; //extern UINT16 gCPUtype; extern SETTINGS_DATA gSettings; extern BOOLEAN gFirmwareClover; @@ -2159,7 +2772,7 @@ extern UINT16 gBacklightLevel; //extern BOOLEAN defDSM; //extern UINT16 dropDSM; -extern TagDict* gConfigDict[]; +//extern TagDict* gConfigDict[]; // ACPI/PATCHED/AML extern XObjArray ACPIPatchedAML; @@ -2171,14 +2784,6 @@ extern XObjArray ACPIPatchedAML; // Hold theme fixed IconFormat / extension extern CHAR16 *IconFormat; -extern CONST CHAR16 *gFirmwareRevision; -extern CONST CHAR8* gRevisionStr; -extern CONST CHAR8* gFirmwareBuildDate; -extern CONST CHAR8* gBuildInfo; -extern const LString8 gBuildId; -extern const LString8 path_independant; -extern const LString8 gBuildIdGrepTag; - extern BOOLEAN ResumeFromCoreStorage; //extern BOOLEAN gRemapSmBiosIsRequire; // syscl: pass argument for Dell SMBIOS here @@ -2205,7 +2810,7 @@ public: UINT8 CustomLogoType = 0; // this will be initialized with gSettings.Boot.CustomBoot and set back to CUSTOM_BOOT_DISABLED if CustomLogo could not be loaded or decoded (see afterGetUserSettings) XImage *CustomLogo = 0; - bool DropSSDT = 0; // init with gSettings.Boot.DropSSDTSetting. Put back to false is one table is dropped (see afterGetUserSettings) + bool DropSSDT = 0; // init with gSettings.Boot.DropSSDTSetting. Put back to false if one table is dropped (see afterGetUserSettings) UINT8 SecureBoot = 0; UINT8 SecureBootSetupMode = 0; @@ -2245,10 +2850,10 @@ public: XStringW BlockKexts = XStringW(); // KernelAndKextPatches - BOOLEAN KextPatchesAllowed = 0; - BOOLEAN KernelPatchesAllowed = 0; //From GUI: Only for user patches, not internal Clover + BOOLEAN KextPatchesAllowed = true; + BOOLEAN KernelPatchesAllowed = true; //From GUI: Only for user patches, not internal Clover - XString8 RomVersionUsed = XString8(); + XString8 BiosVersionUsed = XString8(); XString8 EfiVersionUsed = XString8(); XString8 ReleaseDateUsed = XString8(); @@ -2286,36 +2891,15 @@ SetDevices ( void SetBootCurrent(REFIT_MENU_ITEM_BOOTNUM *LoadedEntry); -XString8 GetAuthRootDmg(const EFI_FILE& dir, const XStringW& path); - -MacOsVersion GetMacOSVersionFromFolder(const EFI_FILE& dir, const XStringW& path); -MacOsVersion GetOSVersion(int LoaderType, const XStringW& APFSTargetUUID, const REFIT_VOLUME* Volume, XString8* BuildVersionPtr); - -inline MacOsVersion GetOSVersion (IN LOADER_ENTRY *Entry) { return GetOSVersion(Entry->LoaderType, Entry->APFSTargetUUID, Entry->Volume, &Entry->BuildVersion); }; -void -GetDevices(void); + +//void +//GetDevices(void); -CONST XStringW -GetOSIconName ( - const MacOsVersion& OSVersion - ); -EFI_STATUS -GetRootUUID ( - IN OUT REFIT_VOLUME *Volume - ); - -EFI_STATUS -GetEarlyUserSettings ( - const TagDict* CfgDict, - SETTINGS_DATA& gSettings - ); - -EFI_STATUS -GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings); +void afterGetUserSettings(SETTINGS_DATA& gSettings); XStringW GetOtherKextsDir (BOOLEAN On); @@ -2328,36 +2912,9 @@ InjectKextsFromDir ( CHAR16 *SrcDir ); -void -ParseLoadOptions ( - OUT XStringW* ConfName, - OUT TagDict** Dict - ); EFI_STATUS -SaveSettings (void); +ApplySettings(void); - - -/** return true if a given os contains '.' as separator, - and then match components of the current booted OS. Also allow 10.10.x format meaning all revisions - of the 10.10 OS */ -//BOOLEAN IsOSValid(const XString8& MatchOS, const MacOsVersion& CurrOS); - - -//get default boot -void GetBootFromOption(void); - -EFI_STATUS -LoadUserSettings ( - const XStringW& ConfName, - TagDict** dict - ); - -void ParseSMBIOSSettings(SETTINGS_DATA& gSettings, const TagDict* DictPointer); - - -void testConfigPlist(); - #endif diff --git a/rEFIt_UEFI/Platform/SettingsUtils.cpp b/rEFIt_UEFI/Platform/SettingsUtils.cpp new file mode 100644 index 000000000..b5a855fab --- /dev/null +++ b/rEFIt_UEFI/Platform/SettingsUtils.cpp @@ -0,0 +1,8 @@ +// +// SettingsUtils.c +// CloverX64 +// +// Created by Jief on 24/04/2021. +// + +#include "SettingsUtils.h" diff --git a/rEFIt_UEFI/Platform/SettingsUtils.h b/rEFIt_UEFI/Platform/SettingsUtils.h new file mode 100644 index 000000000..58276c35b --- /dev/null +++ b/rEFIt_UEFI/Platform/SettingsUtils.h @@ -0,0 +1,63 @@ +// +// SettingsUtils.h +// CloverX64 +// +// Created by Jief on 24/04/2021. +// + +#ifndef SettingsUtils_h +#define SettingsUtils_h + +#include "../cpp_foundation/XObjArray.h" +#include "../cpp_lib/XmlLiteArrayTypes.h" +#include "../cpp_lib/XmlLiteDictTypes.h" + +template +class XObjArrayWithTakeValueFromXmlArray: public XObjArray +{ + using super = XObjArray; + public: + void takeValueFrom(const XmlArray& xmlArray) + { + if ( !xmlArray.isDefined() ) { + super::setEmpty(); + return; + } + size_t idx; + for ( idx = 0 ; idx < xmlArray.size() ; ++idx ) { + if ( idx < super::size() ) super::ElementAt(idx).takeValueFrom(xmlArray[idx]); + else { + SettingsClass* s = new SettingsClass(); + s->takeValueFrom(xmlArray[idx]); + super::AddReference(s, true); + } + } + while ( idx < super::size() ) super::RemoveAtIndex(idx); + } +}; + +template +class XObjArrayWithTakeValueFromXmlRepeatingDict: public XObjArray +{ + using super = XObjArray; + public: + void takeValueFrom(const XmlRepeatingDict& xmlRepeatingDict) + { + if ( !xmlRepeatingDict.isDefined() ) { + super::setEmpty(); + return; + } + size_t idx; + for ( idx = 0 ; idx < xmlRepeatingDict.valueArray().size() ; ++idx ) { + if ( idx < super::size() ) super::ElementAt(idx).takeValueFrom(xmlRepeatingDict.valueArray()[idx]); + else { + SettingsClass* s = new SettingsClass(); + s->takeValueFrom(xmlRepeatingDict.valueArray()[idx]); + super::AddReference(s, true); + } + } + while ( idx < super::size() ) super::RemoveAtIndex(idx); + } +}; + +#endif /* SettingsUtils_h */ diff --git a/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.cpp b/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.cpp new file mode 100644 index 000000000..1c78de183 --- /dev/null +++ b/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.cpp @@ -0,0 +1,150 @@ +/* + * SmbiosFillPatchingValues.cpp + * + * Created on: Apr 28, 2021 + * Author: jief + */ + +#define DONT_DEFINE_GLOBALS + +#include +#include "SmbiosFillPatchingValues.h" +#include "../Platform/Settings.h" +#include "../Platform/smbios.h" + +static void SmbiosFillPatchingValues(const DiscoveredSlotDeviceClass& other, SLOT_DEVICE* slotDevicePtr) +{ + SLOT_DEVICE& slotDevice = *slotDevicePtr; + + slotDevice.Index = other.Index; + slotDevice.SegmentGroupNum = other.SegmentGroupNum; + slotDevice.BusNum = other.BusNum; + slotDevice.DevFuncNum = other.DevFuncNum; + slotDevice.SlotID = other.SlotID; + slotDevice.SlotType = other.SlotType; + slotDevice.SlotName = other.SlotName; +} + +static void SmbiosFillPatchingValues(const SETTINGS_DATA::SmbiosClass::SlotDeviceClass& other, SLOT_DEVICE* slotDevicePtr) +{ + SLOT_DEVICE& slotDevice = *slotDevicePtr; + + slotDevice.Index = other.SmbiosIndex; + slotDevice.SlotID = other.SlotID; + slotDevice.SlotType = other.SlotType; + slotDevice.SlotName = other.SlotName; +} + +static void SmbiosFillPatchingValues(const SETTINGS_DATA::SmbiosClass::RamSlotInfo& other, RAM_SLOT_INFO* ramSlotInfoPtr) +{ + RAM_SLOT_INFO& ramSlotInfo = *ramSlotInfoPtr; + + ramSlotInfo.Slot = other.Slot; + ramSlotInfo.ModuleSize = other.ModuleSize; + ramSlotInfo.Frequency = other.Frequency; + ramSlotInfo.Vendor = other.Vendor; + ramSlotInfo.PartNo = other.PartNo; + ramSlotInfo.SerialNo = other.SerialNo; + ramSlotInfo.Type = other.Type; + ramSlotInfo.InUse = other.InUse; +} + +static void SmbiosFillPatchingValues(const XObjArray& settingRamSlotInfoArray, XObjArray* ramSlotInfoArrayPtr) +{ + XObjArray& ramSlotInfoArray = *ramSlotInfoArrayPtr; + + ramSlotInfoArray.setEmpty(); + for ( size_t idx = 0 ; idx < settingRamSlotInfoArray.size() ; ++idx ) { + RAM_SLOT_INFO* ramSlotInfo = new RAM_SLOT_INFO; + SmbiosFillPatchingValues(settingRamSlotInfoArray[idx], ramSlotInfo); + ramSlotInfoArray.AddReference(ramSlotInfo, true); + } +} + +static void SmbiosFillPatchingValues(const SETTINGS_DATA::SmbiosClass::RamSlotInfoArrayClass& other, SmbiosMemoryConfigurationClass* MemoryPtr) +{ + SmbiosMemoryConfigurationClass& Memory = *MemoryPtr; + + Memory.SlotCounts = other.SlotCounts; + Memory.UserChannels = other.UserChannels; + SmbiosFillPatchingValues(other.User, &Memory._User); +} + +void SmbiosFillPatchingValues(bool _SetTable132, uint8_t pEnabledCores, uint16_t pRamSlotCount, const SlotDeviceArrayClass& SlotDeviceArray, const SETTINGS_DATA& globalSettings, const CPU_STRUCTURE& CPUStructure, SmbiosInjectedSettings* smbiosInjectedSettingsPtr) +{ + SmbiosInjectedSettings& smbiosInjectedSetting = *smbiosInjectedSettingsPtr; + // from CPUStructure + smbiosInjectedSetting.Cores = CPUStructure.Cores; + smbiosInjectedSetting.MaxSpeed = CPUStructure.MaxSpeed; + smbiosInjectedSetting.Threads = CPUStructure.Threads; + smbiosInjectedSetting.Features = CPUStructure.Features; + smbiosInjectedSetting.ExternalClock = CPUStructure.ExternalClock; + smbiosInjectedSetting.Model = CPUStructure.Model; + smbiosInjectedSetting.Mobile = CPUStructure.Mobile; //not for i3-i7 + smbiosInjectedSetting.Family = CPUStructure.Family; + smbiosInjectedSetting.Type = CPUStructure.Type; + smbiosInjectedSetting.BrandString.takeValueFrom(CPUStructure.BrandString); + smbiosInjectedSetting.Extmodel = CPUStructure.Extmodel; + smbiosInjectedSetting.ExtFeatures = CPUStructure.ExtFeatures; + smbiosInjectedSetting.MicroCode = CPUStructure.MicroCode; + smbiosInjectedSetting.Extfamily = CPUStructure.Extfamily; + smbiosInjectedSetting.Stepping = CPUStructure.Stepping; + + // from SETTINGS_DATA + smbiosInjectedSetting.BiosVendor = globalSettings.Smbios.BiosVendor; + smbiosInjectedSetting.BiosVersionUsed = globalSettings.Smbios.BiosVersion; + smbiosInjectedSetting.EfiVersionUsed = globalSettings.Smbios.EfiVersion; + smbiosInjectedSetting.ReleaseDateUsed = globalSettings.Smbios.BiosReleaseDate; + smbiosInjectedSetting.ManufactureName = globalSettings.Smbios.ManufactureName; + smbiosInjectedSetting.ProductName = globalSettings.Smbios.ProductName; + smbiosInjectedSetting.SystemVersion = globalSettings.Smbios.SystemVersion; + smbiosInjectedSetting.SerialNr = globalSettings.Smbios.SerialNr; + smbiosInjectedSetting.BoardNumber = globalSettings.Smbios.BoardNumber; + smbiosInjectedSetting.BoardManufactureName = globalSettings.Smbios.BoardManufactureName; + smbiosInjectedSetting.BoardVersion = globalSettings.Smbios.BoardVersion; + smbiosInjectedSetting.BoardSerialNumber = globalSettings.Smbios.BoardSerialNumber; + smbiosInjectedSetting.LocationInChassis = globalSettings.Smbios.LocationInChassis; + smbiosInjectedSetting.ChassisManufacturer = globalSettings.Smbios.ChassisManufacturer; + smbiosInjectedSetting.ChassisAssetTag = globalSettings.Smbios.ChassisAssetTag; + smbiosInjectedSetting.FamilyName = globalSettings.Smbios.FamilyName; + smbiosInjectedSetting.SmUUID = globalSettings.Smbios.SmUUID; + smbiosInjectedSetting.NoRomInfo = globalSettings.Smbios.NoRomInfo; + smbiosInjectedSetting.EnabledCores = pEnabledCores; + smbiosInjectedSetting.TrustSMBIOS = globalSettings.Smbios.TrustSMBIOS; + smbiosInjectedSetting.InjectMemoryTables = globalSettings.Smbios.InjectMemoryTables; + smbiosInjectedSetting.BoardType = globalSettings.Smbios.BoardType; + smbiosInjectedSetting.ChassisType = globalSettings.Smbios.ChassisType; + { + smbiosInjectedSetting.SlotDevices.setEmpty(); + for ( size_t idx = 0 ; idx < SlotDeviceArray.size() ; ++idx ) { + if ( SlotDeviceArray[idx].Index >= MAX_RAM_SLOTS ) { + log_technical_bug("slotDevice->Index >= MAX_RAM_SLOTS"); + }else{ + SLOT_DEVICE* slotDevice = new SLOT_DEVICE; + SmbiosFillPatchingValues(SlotDeviceArray[idx], slotDevice); + if ( globalSettings.Smbios.SlotDevices.doesSlotForIndexExist(slotDevice->Index) ) { + SmbiosFillPatchingValues(globalSettings.Smbios.SlotDevices.getSlotForIndex(slotDevice->Index), slotDevice); + } + smbiosInjectedSetting.SlotDevices.AddReference(slotDevice, true); + } + } + } + SmbiosFillPatchingValues(globalSettings.Smbios.RamSlotInfoArray, &smbiosInjectedSetting.Memory); + + smbiosInjectedSetting.gPlatformFeature = globalSettings.Smbios.gPlatformFeature; + smbiosInjectedSetting.FirmwareFeatures = globalSettings.Smbios.FirmwareFeatures; + smbiosInjectedSetting.FirmwareFeaturesMask = globalSettings.Smbios.FirmwareFeaturesMask; + smbiosInjectedSetting.Attribute = globalSettings.Smbios.Attribute; + + smbiosInjectedSetting.KPDELLSMBIOS = globalSettings.KernelAndKextPatches.KPDELLSMBIOS; + + smbiosInjectedSetting.CpuType = globalSettings.CPU.CpuType; + smbiosInjectedSetting.SetTable132 = _SetTable132; + smbiosInjectedSetting.QPI = globalSettings.CPU.QPI; + + smbiosInjectedSetting.RamSlotCount = pRamSlotCount; +} + + + + diff --git a/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.h b/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.h new file mode 100644 index 000000000..2f71604ad --- /dev/null +++ b/rEFIt_UEFI/Platform/SmbiosFillPatchingValues.h @@ -0,0 +1,19 @@ +/* + * SmbiosFillPatchingValues.h + * + * Created on: Apr 28, 2021 + * Author: jief + */ + +#ifndef PLATFORM_SMBIOSFILLPATCHINGVALUES_H_ +#define PLATFORM_SMBIOSFILLPATCHINGVALUES_H_ + +#include "../Settings/ConfigManager.h" +#include "../Platform/Settings.h" +#include "../Platform/smbios.h" + +void SmbiosFillPatchingValues(bool _SetTable132, uint8_t pEnabledCores, uint16_t pRamSlotCount, const SlotDeviceArrayClass& SlotDeviceArray, const SETTINGS_DATA& globalSettings, const CPU_STRUCTURE& CPUStructure, SmbiosInjectedSettings* smbiosInjectedSettingsPtr); + + + +#endif /* PLATFORM_SMBIOSFILLPATCHINGVALUES_H_ */ diff --git a/rEFIt_UEFI/Platform/StateGenerator.cpp b/rEFIt_UEFI/Platform/StateGenerator.cpp index 5943f4111..c3040175c 100644 --- a/rEFIt_UEFI/Platform/StateGenerator.cpp +++ b/rEFIt_UEFI/Platform/StateGenerator.cpp @@ -8,6 +8,7 @@ #include "cpu.h" #include "smbios.h" #include "AcpiPatcher.h" +#include "Settings.h" extern "C" { #include // for CPUID_FEATURE_MSR diff --git a/rEFIt_UEFI/Platform/Volume.cpp b/rEFIt_UEFI/Platform/Volume.cpp new file mode 100644 index 000000000..a53a56143 --- /dev/null +++ b/rEFIt_UEFI/Platform/Volume.cpp @@ -0,0 +1,107 @@ +/* + * Volume.cpp + * + * Created on: Apr 21, 2021 + * Author: jief + */ + +#include "Volume.h" +#include +#include "../Platform/plist/plist.h" +#include "../Platform/guid.h" +#include "../refit/lib.h" + +//Get the UUID of the AppleRaid or CoreStorage volume from the boot helper partition +EFI_STATUS +GetRootUUID (IN REFIT_VOLUME *Volume) +{ + EFI_STATUS Status; + CHAR8 *PlistBuffer; + UINTN PlistLen; + TagDict* Dict; + const TagStruct* Prop; + + CONST CHAR16* SystemPlistR; + CONST CHAR16* SystemPlistP; + CONST CHAR16* SystemPlistS; + + BOOLEAN HasRock; + BOOLEAN HasPaper; + BOOLEAN HasScissors; + + Status = EFI_NOT_FOUND; + if (Volume == NULL) { + return EFI_NOT_FOUND; + } + + SystemPlistR = L"\\com.apple.boot.R\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; + if (FileExists (Volume->RootDir, SystemPlistR)) { + HasRock = FileExists (Volume->RootDir, SystemPlistR); + } else { + SystemPlistR = L"\\com.apple.boot.R\\com.apple.Boot.plist"; + HasRock = FileExists (Volume->RootDir, SystemPlistR); + } + + SystemPlistP = L"\\com.apple.boot.P\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; + if (FileExists (Volume->RootDir, SystemPlistP)) { + HasPaper = FileExists (Volume->RootDir, SystemPlistP); + } else { + SystemPlistP = L"\\com.apple.boot.P\\com.apple.Boot.plist"; + HasPaper = FileExists (Volume->RootDir, SystemPlistP); + } + + SystemPlistS = L"\\com.apple.boot.S\\Library\\Preferences\\SystemConfiguration\\com.apple.Boot.plist"; + if (FileExists (Volume->RootDir, SystemPlistS)) { + HasScissors = FileExists (Volume->RootDir, SystemPlistS); + } else { + SystemPlistS = L"\\com.apple.boot.S\\com.apple.Boot.plist"; + HasScissors = FileExists (Volume->RootDir, SystemPlistS); + } + + PlistBuffer = NULL; + // Playing Rock, Paper, Scissors to chose which settings to load. + if (HasRock && HasPaper && HasScissors) { + // Rock wins when all three are around + Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); + } else if (HasRock && HasPaper) { + // Paper beats rock + Status = egLoadFile(Volume->RootDir, SystemPlistP, (UINT8 **)&PlistBuffer, &PlistLen); + } else if (HasRock && HasScissors) { + // Rock beats scissors + Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); + } else if (HasPaper && HasScissors) { + // Scissors beat paper + Status = egLoadFile(Volume->RootDir, SystemPlistS, (UINT8 **)&PlistBuffer, &PlistLen); + } else if (HasPaper) { + // No match + Status = egLoadFile(Volume->RootDir, SystemPlistP, (UINT8 **)&PlistBuffer, &PlistLen); + } else if (HasScissors) { + // No match + Status = egLoadFile(Volume->RootDir, SystemPlistS, (UINT8 **)&PlistBuffer, &PlistLen); + } else { + // Rock wins by default + Status = egLoadFile(Volume->RootDir, SystemPlistR, (UINT8 **)&PlistBuffer, &PlistLen); + } + + if (!EFI_ERROR(Status)) { + Dict = NULL; + if (ParseXML(PlistBuffer, &Dict, 0) != EFI_SUCCESS) { + FreePool(PlistBuffer); + return EFI_NOT_FOUND; + } + + Prop = Dict->propertyForKey("Root UUID"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Root UUID\n"); + }else{ + Status = StrToGuidBE(Prop->getString()->stringValue(), &Volume->RootUUID); + } + } + + Dict->FreeTag(); + FreePool(PlistBuffer); + } + + return Status; +} diff --git a/rEFIt_UEFI/Platform/Volume.h b/rEFIt_UEFI/Platform/Volume.h new file mode 100644 index 000000000..3af5397e4 --- /dev/null +++ b/rEFIt_UEFI/Platform/Volume.h @@ -0,0 +1,79 @@ +/* + * Volume.h + * + * Created on: Apr 21, 2021 + * Author: jief + */ + +#ifndef PLATFORM_VOLUME_H_ +#define PLATFORM_VOLUME_H_ + +#include "../include/VolumeTypes.h" +#include +#include "../cpp_foundation/XString.h" +#include "../libeg/libeg.h" + + +class LEGACY_OS +{ +public: + UINT8 Type; + XStringW IconName; + XStringW Name; + + LEGACY_OS() : Type(0), IconName(), Name() {} + LEGACY_OS(const LEGACY_OS& other) = delete; // Can be defined if needed + const LEGACY_OS& operator = ( const LEGACY_OS & ) = delete; // Can be defined if needed + ~LEGACY_OS() {} +} ; + +class REFIT_VOLUME { +public: + EFI_DEVICE_PATH *DevicePath = 0; + EFI_HANDLE DeviceHandle = 0; + EFI_FILE *RootDir = 0; + XStringW DevicePathString = XStringW(); + XStringW VolName = XStringW(); // comes from EfiLibFileSystemInfo, EfiLibFileSystemVolumeLabelInfo, "EFI" if gEfiPartTypeSystemPartGuid or "Unknown HD" + XStringW VolLabel = XStringW(); // comes from \\.VolumeLabel.txt, or empty. + UINT8 DiskKind = 0; + LEGACY_OS *LegacyOS = 0; + BOOLEAN Hidden = 0; + UINT8 BootType = 0; + BOOLEAN IsAppleLegacy = 0; + BOOLEAN HasBootCode = 0; + BOOLEAN IsMbrPartition = 0; + UINTN MbrPartitionIndex = 0; + EFI_BLOCK_IO *BlockIO = 0; + UINT64 BlockIOOffset = 0; + EFI_BLOCK_IO *WholeDiskBlockIO = 0; + EFI_DEVICE_PATH *WholeDiskDevicePath = 0; + EFI_HANDLE WholeDiskDeviceHandle = 0; + MBR_PARTITION_INFO *MbrPartitionTable = 0; + UINT32 DriveCRC32 = 0; + EFI_GUID RootUUID = EFI_GUID({0,0,0,{0,0,0,0,0,0,0,0}}); //for recovery it is UUID of parent partition + UINT64 SleepImageOffset = 0; + XStringW osxVolumeName = XStringW(); // comes from \\System\\Library\\CoreServices\\.disk_label.contentDetails, or empty. + XString8 ApfsFileSystemUUID = XString8(); // apfs file system UUID of that partition. It's not the UUID of subfolder like in Preboot. + XString8 ApfsContainerUUID = XString8(); + APPLE_APFS_VOLUME_ROLE ApfsRole = 0; + XString8Array ApfsTargetUUIDArray = XString8Array(); // this is the array of folders that are named as UUID + + REFIT_VOLUME() {}; + REFIT_VOLUME(const REFIT_VOLUME& other) = delete; // Can be defined if needed + const REFIT_VOLUME& operator = ( const REFIT_VOLUME & ) = delete; // Can be defined if needed + ~REFIT_VOLUME() {} + + const XStringW getVolLabelOrOSXVolumeNameOrVolName() { + if ( VolLabel.notEmpty() ) return VolLabel; + if ( osxVolumeName.notEmpty() ) return osxVolumeName; + return VolName; + } +}; + + + + +EFI_STATUS GetRootUUID(IN OUT REFIT_VOLUME *Volume); + + +#endif /* PLATFORM_VOLUME_H_ */ diff --git a/rEFIt_UEFI/Platform/Volumes.h b/rEFIt_UEFI/Platform/Volumes.h index 322de5f4a..526f70081 100644 --- a/rEFIt_UEFI/Platform/Volumes.h +++ b/rEFIt_UEFI/Platform/Volumes.h @@ -8,9 +8,7 @@ #ifndef PLATFORM_VOLUMES_H_ #define PLATFORM_VOLUMES_H_ -#include -#include "../cpp_foundation/XString.h" -#include "../libeg/libeg.h" +#include "Volume.h" extern "C" { //#include @@ -19,67 +17,6 @@ extern "C" { -class LEGACY_OS -{ -public: - UINT8 Type; - XStringW IconName; - XStringW Name; - - LEGACY_OS() : Type(0), IconName(), Name() {} - LEGACY_OS(const LEGACY_OS& other) = delete; // Can be defined if needed - const LEGACY_OS& operator = ( const LEGACY_OS & ) = delete; // Can be defined if needed - ~LEGACY_OS() {} -} ; - -class REFIT_VOLUME { -public: - EFI_DEVICE_PATH *DevicePath = 0; - EFI_HANDLE DeviceHandle = 0; - EFI_FILE *RootDir = 0; - XStringW DevicePathString = XStringW(); - XStringW VolName = XStringW(); // comes from EfiLibFileSystemInfo, EfiLibFileSystemVolumeLabelInfo, "EFI" if gEfiPartTypeSystemPartGuid or "Unknown HD" - XStringW VolLabel = XStringW(); // comes from \\.VolumeLabel.txt, or empty. - UINT8 DiskKind = 0; - LEGACY_OS *LegacyOS = 0; - BOOLEAN Hidden = 0; - UINT8 BootType = 0; - BOOLEAN IsAppleLegacy = 0; - BOOLEAN HasBootCode = 0; - BOOLEAN IsMbrPartition = 0; - UINTN MbrPartitionIndex = 0; - EFI_BLOCK_IO *BlockIO = 0; - UINT64 BlockIOOffset = 0; - EFI_BLOCK_IO *WholeDiskBlockIO = 0; - EFI_DEVICE_PATH *WholeDiskDevicePath = 0; - EFI_HANDLE WholeDiskDeviceHandle = 0; - MBR_PARTITION_INFO *MbrPartitionTable = 0; - UINT32 DriveCRC32 = 0; - EFI_GUID RootUUID = EFI_GUID({0,0,0,{0,0,0,0,0,0,0,0}}); //for recovery it is UUID of parent partition - UINT64 SleepImageOffset = 0; - XStringW osxVolumeName = XStringW(); // comes from \\System\\Library\\CoreServices\\.disk_label.contentDetails, or empty. - XString8 ApfsFileSystemUUID = XString8(); // apfs file system UUID of that partition. It's not the UUID of subfolder like in Preboot. - XString8 ApfsContainerUUID = XString8(); - APPLE_APFS_VOLUME_ROLE ApfsRole = 0; - XString8Array ApfsTargetUUIDArray = XString8Array(); // this is the array of folders that are named as UUID - -// REFIT_VOLUME() : DevicePath(0), DeviceHandle(0), RootDir(0), DevicePathString(), VolName(), VolLabel(), DiskKind(0), LegacyOS(0), Hidden(0), BootType(0), IsAppleLegacy(0), HasBootCode(0), -// IsMbrPartition(0), MbrPartitionIndex(0), BlockIO(0), BlockIOOffset(0), WholeDiskBlockIO(0), WholeDiskDevicePath(0), WholeDiskDeviceHandle(0), -// MbrPartitionTable(0), DriveCRC32(0), RootUUID({0,0,0,{0,0,0,0,0,0,0,0}}), SleepImageOffset(0), ApfsFileSystemUUID(), ApfsTargetUUIDArray() -// {} - REFIT_VOLUME() {}; - REFIT_VOLUME(const REFIT_VOLUME& other) = delete; // Can be defined if needed - const REFIT_VOLUME& operator = ( const REFIT_VOLUME & ) = delete; // Can be defined if needed - ~REFIT_VOLUME() {} - - const XStringW getVolLabelOrOSXVolumeNameOrVolName() { - if ( VolLabel.notEmpty() ) return VolLabel; - if ( osxVolumeName.notEmpty() ) return osxVolumeName; - return VolName; - } -}; - - class VolumesArrayClass : public XObjArray { diff --git a/rEFIt_UEFI/Platform/ati.cpp b/rEFIt_UEFI/Platform/ati.cpp index cb8d1d448..7fc70b236 100644 --- a/rEFIt_UEFI/Platform/ati.cpp +++ b/rEFIt_UEFI/Platform/ati.cpp @@ -13,8 +13,8 @@ #include "../include/Pci.h" #include "../include/Devices.h" #include "../Platform/Settings.h" -#include "Self.h" -#include "SelfOem.h" +#include "../Settings/Self.h" +#include "../Settings/SelfOem.h" #ifndef DEBUG_ALL #define DEBUG_ATI 1 @@ -33,7 +33,7 @@ static value_t aty_nameparent; card_t *card; //static value_t aty_model; -card_config_t card_configs[] = { +const card_config_t card_configs[] = { {NULL, 0}, /* OLDController */ {"Wormy", 2}, @@ -145,7 +145,7 @@ card_config_t card_configs[] = { {"Radeon",4}, }; -radeon_card_info_t radeon_cards[] = { +const radeon_card_info_t radeon_cards[] = { // Earlier cards are not supported // @@ -504,7 +504,6 @@ radeon_card_info_t radeon_cards[] = { { 0x7300, CHIP_FAMILY_FIJI, "AMD Radeon R9 Fury", kNull }, { 0x731F, CHIP_FAMILY_NAVI10, "AMD Radeon RX5700", kNull }, - { 0x73BF, CHIP_FAMILY_NAVI20, "AMD Radeon RX6800XT", kNull }, /* 6900 Topaz XT [Radeon R7 M260/M265] 6901 Topaz PRO [Radeon R5 M255] @@ -1952,12 +1951,12 @@ static BOOLEAN init_card(pci_dt_t *pci_dev) break; } - for (j = 0; j < NGFX; j++) { - if ((gGraphics[j].Vendor == Ati) && - (gGraphics[j].DeviceID == pci_dev->device_id)) { - // model = gGraphics[j].Model; - n_ports = gGraphics[j].Ports; - add_vbios = gGraphics[j].LoadVBios; + for (j = 0; j < gConf.GfxPropertiesArray.size(); j++) { + if ((gConf.GfxPropertiesArray[j].Vendor == Ati) && + (gConf.GfxPropertiesArray[j].DeviceID == pci_dev->device_id)) { + // model = gConf.GfxPropertiesArray[j].Model; + n_ports = gConf.GfxPropertiesArray[j].Ports; + add_vbios = gConf.GfxPropertiesArray[j].LoadVBios; break; } } diff --git a/rEFIt_UEFI/Platform/ati.h b/rEFIt_UEFI/Platform/ati.h index 0d8af0810..9d3d680a0 100644 --- a/rEFIt_UEFI/Platform/ati.h +++ b/rEFIt_UEFI/Platform/ati.h @@ -305,11 +305,14 @@ BOOLEAN get_vramtotalsize_val(value_t *val, INTN index, BOOLEAN Sier); BOOLEAN get_dual_link_val(value_t *val, INTN index, BOOLEAN Sier); BOOLEAN get_name_pci_val(value_t *val, INTN index, BOOLEAN Sier); -extern card_config_t card_configs[]; -extern radeon_card_info_t radeon_cards[]; +// Constants. Can be defined even if DONT_DEFINE_GLOBALS +extern const radeon_card_info_t radeon_cards[]; +extern const card_config_t card_configs[]; + +#ifndef DONT_DEFINE_GLOBALS extern AtiDevProp ati_devprop_list[]; extern const CHAR8 *chip_family_name[]; - +#endif BOOLEAN setup_ati_devprop ( diff --git a/rEFIt_UEFI/Platform/ati2.h b/rEFIt_UEFI/Platform/ati2.h new file mode 100644 index 000000000..07fb00059 --- /dev/null +++ b/rEFIt_UEFI/Platform/ati2.h @@ -0,0 +1,321 @@ +/* + * ati.h + * + * Created by Slice on 19.02.12. + * + * the code ported from Chameleon project as well as from RadeonFB by Joblo and RadeonHD by dong + * big thank to Islam M. Ahmed Zaid for the updating the collection + */ + +#include "../include/Pci.h" +#include "device_inject.h" +class LOADER_ENTRY; + +#define OFFSET_TO_GET_ATOMBIOS_STRINGS_START 0x6e +#define DATVAL(x) {kPtr, sizeof(x), (UINT8 *)x} +#define STRVAL(x) {kStr, sizeof(x)-1, (UINT8 *)x} +#define BYTVAL(x) {kCst, 1, (UINT8 *)(UINTN)x} +#define WRDVAL(x) {kCst, 2, (UINT8 *)(UINTN)x} +#define DWRVAL(x) {kCst, 4, (UINT8 *)(UINTN)x} +// QWRVAL would work only in 64 bit +//#define QWRVAL(x) {kCst, 8, (UINT8 *)(UINTN)x} +#define NULVAL {kNul, 0, (UINT8 *)NULL} + + +/*Typedefs ENUMS*/ +typedef enum { + kNul, + kStr, + kPtr, + kCst +} type_t; + +typedef enum { + CHIP_FAMILY_UNKNOW, + /* Old */ + CHIP_FAMILY_R420, + CHIP_FAMILY_R423, + CHIP_FAMILY_RV410, + CHIP_FAMILY_RV515, + CHIP_FAMILY_R520, + CHIP_FAMILY_RV530, + CHIP_FAMILY_RV560, + CHIP_FAMILY_RV570, + CHIP_FAMILY_R580, + /* IGP */ + CHIP_FAMILY_RS600, + CHIP_FAMILY_RS690, + CHIP_FAMILY_RS740, + CHIP_FAMILY_RS780, + CHIP_FAMILY_RS880, + /* R600 */ + CHIP_FAMILY_R600, + CHIP_FAMILY_RV610, + CHIP_FAMILY_RV620, + CHIP_FAMILY_RV630, + CHIP_FAMILY_RV635, + CHIP_FAMILY_RV670, + /* R700 */ + CHIP_FAMILY_RV710, + CHIP_FAMILY_RV730, + CHIP_FAMILY_RV740, + CHIP_FAMILY_RV770, + CHIP_FAMILY_RV772, + CHIP_FAMILY_RV790, + /* Evergreen */ + CHIP_FAMILY_CEDAR, + CHIP_FAMILY_CYPRESS, + CHIP_FAMILY_HEMLOCK, + CHIP_FAMILY_JUNIPER, + CHIP_FAMILY_REDWOOD, + /* Northern Islands */ + CHIP_FAMILY_BARTS, + CHIP_FAMILY_CAICOS, + CHIP_FAMILY_CAYMAN, + CHIP_FAMILY_TURKS, + /* Southern Islands */ + CHIP_FAMILY_PALM, + CHIP_FAMILY_SUMO, + CHIP_FAMILY_SUMO2, + CHIP_FAMILY_ARUBA, + CHIP_FAMILY_TAHITI, + CHIP_FAMILY_PITCAIRN, + CHIP_FAMILY_VERDE, + CHIP_FAMILY_OLAND, + /* Sea Islands */ + CHIP_FAMILY_HAINAN, + CHIP_FAMILY_BONAIRE, + CHIP_FAMILY_KAVERI, + CHIP_FAMILY_KABINI, + CHIP_FAMILY_HAWAII, + CHIP_FAMILY_MULLINS, + /* Volcanic Islands */ + CHIP_FAMILY_TOPAZ, + CHIP_FAMILY_AMETHYST, + CHIP_FAMILY_TONGA, + CHIP_FAMILY_FIJI, + CHIP_FAMILY_CARRIZO, + CHIP_FAMILY_TOBAGO, + CHIP_FAMILY_ELLESMERE, /* Polaris 10 */ + CHIP_FAMILY_BAFFIN, /* Polaris 11 */ + CHIP_FAMILY_GREENLAND, /* Polaris 12 */ + CHIP_FAMILY_VEGA10, /* Vega 10 */ + CHIP_FAMILY_VEGA20, /* Vega 20 */ + CHIP_FAMILY_NAVI10, + CHIP_FAMILY_LAST +} ati_chip_family_t; + +typedef struct { + const CHAR8 *name; + UINT8 ports; +} card_config_t; + +typedef enum { + kNull, + /* OLDController */ + kWormy, + kAlopias, + kCaretta, + kKakapo, + kKipunji, + kPeregrine, + kRaven, + kSphyrna, + /* AMD2400Controller */ + kIago, + /* AMD2600Controller */ + kHypoprion, + kLamna, + /* AMD3800Controller */ + kMegalodon, + kTriakis, + /* AMD4600Controller */ + kFlicker, + kGliff, + kShrike, + /* AMD4800Controller */ + kCardinal, + kMotmot, + kQuail, + /* AMD5000Controller */ + kDouc, + kLangur, + kUakari, + kZonalis, + kAlouatta, + kHoolock, + kVervet, + kBaboon, + kEulemur, + kGalago, + kColobus, + kMangabey, + kNomascus, + kOrangutan, + /* AMD6000Controller */ + kPithecia, + kBulrushes, + kCattail, + kHydrilla, + kDuckweed, + kFanwort, + kElodea, + kKudzu, + kGibba, + kLotus, + kIpomoea, + kMuskgrass, + kJuncus, + kOsmunda, + kPondweed, + kSpikerush, + kTypha, + /* AMD7000Controller */ + kRamen, + kTako, + kNamako, + kAji, + kBuri, + kChutoro, + kDashimaki, + kEbi, + kGari, + kFutomaki, + kHamachi, + kOPM, + kIkura, + kIkuraS, + kJunsai, + kKani, + kKaniS, + kDashimakiS, + kMaguro, + kMaguroS, + /* AMD8000Controller */ + kExmoor, + kBaladi, + /* AMD9000Controller */ + kMalteseS, + kLagotto, + kGreyhoundS, + kMaltese, + kBasset, + kGreyhound, + kLabrador, + /* AMD9300Controller */ + kFleuveSWIP, + /* AMD9500Controller */ + kAcre, + kDayman, + kGuariba, + kHuallaga, + kOrinoco, + /* AMD9510Controller*/ + kBerbice, + /* AMD9515Controller */ + kMazaruni, + kLongavi, + /* AMD9520Controller */ + kElqui, + kCaroni, + kFlorin, + kRadeon, // this is absent FB if not set + kCfgEnd +} config_name_t; + +typedef struct { + UINT16 device_id; + // UINT32 subsys_id; + ati_chip_family_t chip_family; + const CHAR8 *model_name; + config_name_t cfg_name; +} radeon_card_info_t; + +typedef struct { + DevPropDevice *device; + radeon_card_info_t *info; + pci_dt_t *pci_dev; + UINT8 *fb; + UINT8 *mmio; + UINT8 *io; + UINT8 *rom; + UINT32 rom_size; + UINT64 vram_size; + const CHAR8 *cfg_name; + UINT8 ports; + UINT32 flags; + BOOLEAN posted; +} card_t; + +// Chip flags +/* enum radeon_chip_flags { + RADEON_FAMILY_MASK = 0x0000ffffUL, + RADEON_FLAGS_MASK = 0xffff0000UL, + RADEON_IS_MOBILITY = 0x00010000UL, + RADEON_IS_IGP = 0x00020000UL, + RADEON_SINGLE_CRTC = 0x00040000UL, + RADEON_IS_AGP = 0x00080000UL, + RADEON_HAS_HIERZ = 0x00100000UL, + RADEON_IS_PCIE = 0x00200000UL, + RADEON_NEW_MEMMAP = 0x00400000UL, + RADEON_IS_PCI = 0x00800000UL, + RADEON_IS_IGPGART = 0x01000000UL, + };*/ +#define MKFLAG(n) (1 << n) +#define FLAGTRUE MKFLAG(0) +#define EVERGREEN MKFLAG(1) +#define FLAGMOBILE MKFLAG(2) +#define FLAGOLD MKFLAG(3) +#define FLAGNOTFAKE MKFLAG(4) +#define FLAGDYNAMIC MKFLAG(5) + +typedef struct { + type_t type; + UINT32 size; + UINT8 *data; +} value_t; + +typedef struct { + UINT32 flags; + BOOLEAN all_ports; + CONST CHAR8 *name; + BOOLEAN (*get_value)(value_t *val, INTN index, BOOLEAN Sier); + value_t default_val; +} AtiDevProp; + +BOOLEAN get_bootdisplay_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_vrammemory_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_edid_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_display_type(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_name_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_nameparent_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_model_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_conntype_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_vrammemsize_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_binimage_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_binimage_owr(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_romrevision_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_deviceid_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_mclk_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_sclk_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_refclk_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_platforminfo_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_vramtotalsize_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_dual_link_val(value_t *val, INTN index, BOOLEAN Sier); +BOOLEAN get_name_pci_val(value_t *val, INTN index, BOOLEAN Sier); + +// Constants. Can be defined even if DONT_DEFINE_GLOBALS +extern const radeon_card_info_t radeon_cards[]; +extern const card_config_t card_configs[]; + +#ifndef DONT_DEFINE_GLOBALS +extern AtiDevProp ati_devprop_list[]; +extern const CHAR8 *chip_family_name[]; +#endif + +BOOLEAN +setup_ati_devprop ( + LOADER_ENTRY *Entry, + pci_dt_t *ati_dev + ); + diff --git a/rEFIt_UEFI/Platform/card_vlist.cpp b/rEFIt_UEFI/Platform/card_vlist.cpp index 3266d8cce..fee8ac73c 100644 --- a/rEFIt_UEFI/Platform/card_vlist.cpp +++ b/rEFIt_UEFI/Platform/card_vlist.cpp @@ -6,6 +6,7 @@ #include // Only use angled for Platform, else, xcode project won't compile #include "nvidia.h" #include "../Platform/Settings.h" +#include "card_vlist.h" /* injection for NVIDIA card usage e.g (to be placed in the config.plist, under graphics tag): @@ -96,87 +97,3 @@ const SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD* FindCardWithIds(UINT32 Id, UIN } return NULL; } - -/* -* To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global -* and is passed by non-const reference. -* This temporary during the refactoring -*/ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -void FillCardList(const TagDict* CfgDict, SETTINGS_DATA& gSettings) -{ -#pragma GCC diagnostic pop - if (gSettings.Graphics.ATICardList.isEmpty() && gSettings.Graphics.NVIDIACardList.isEmpty() && (CfgDict != NULL)) { - CONST CHAR8 *VEN[] = { "ATI", "NVIDIA" }; - XObjArray* cardlist[] = { &gSettings.Graphics.ATICardList, &gSettings.Graphics.NVIDIACardList }; - size_t Count = sizeof(VEN) / sizeof(VEN[0]); - - for (size_t Index = 0; Index < Count; Index++) { - CONST CHAR8 *key = VEN[Index]; - - const TagArray* prop = CfgDict->arrayPropertyForKey(key); - if( prop && prop->isArray() ) { - INTN i; - INTN count; - - const TagStruct* prop2 = 0; - const TagStruct* element = 0; - count = prop->arrayContent().size(); - for (i = 0; i < count; i++) - { - SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD* new_card = new SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD; - -// CONST CHAR8 *model_name = NULL; -// UINT32 dev_id = 0; -// UINT32 subdev_id = 0; -// UINT64 VramSize = 0; -// UINTN VideoPorts = 0; -// BOOLEAN LoadVBios = FALSE; - element = &prop->arrayContent()[i]; - if ( !element->isDict()) { - MsgLog("MALFORMED PLIST in FillCardList() : element[%lld] is not a dict\n", i); - continue; - } - const TagDict* dictElement = element->getDict(); - - prop2 = dictElement->propertyForKey("Model"); - if ( prop2 && prop2->isString() && prop2->getString()->stringValue().notEmpty() ) { - new_card->Model = prop2->getString()->stringValue(); - } else { - new_card->Model = "VideoCard"_XS8; - } - - prop2 = dictElement->propertyForKey("IOPCIPrimaryMatch"); - new_card->Id = (UINT32)GetPropertyAsInteger(prop2, 0); - - prop2 = dictElement->propertyForKey("IOPCISubDevId"); - new_card->SubId = (UINT32)GetPropertyAsInteger(prop2, 0); - - prop2 = dictElement->propertyForKey("VRAM"); - new_card->VideoRam = LShiftU64((UINTN)GetPropertyAsInteger(prop2, 0), 20); //Mb -> bytes - - prop2 = dictElement->propertyForKey("VideoPorts"); - new_card->VideoPorts = (UINT16)GetPropertyAsInteger(prop2, 0); - - prop2 = dictElement->propertyForKey("LoadVBios"); - if (prop2 != NULL && IsPropertyNotNullAndTrue(prop2)) { - new_card->LoadVBios = TRUE; - } - - DBG("FillCardList :: %s : \"%s\" (%08X, %08X)\n", key, new_card->Model.c_str(), new_card->Id, new_card->SubId); - -// AddCard(model_name, dev_id, subdev_id, VramSize, VideoPorts, LoadVBios); - new_card->Signature = CARDLIST_SIGNATURE; -// new_card->Id = dev_id; -// new_card->SubId = subdev_id; -// new_card->VideoRam = VramSize; -// new_card->VideoPorts = VideoPorts; -// new_card->LoadVBios = LoadVBios; -// new_card->Model.takeValueFrom(model_name); - cardlist[Index]->AddReference(new_card, true); - } - } - } - } -} diff --git a/rEFIt_UEFI/Platform/card_vlist.h b/rEFIt_UEFI/Platform/card_vlist.h index bd31ac20a..c04713963 100644 --- a/rEFIt_UEFI/Platform/card_vlist.h +++ b/rEFIt_UEFI/Platform/card_vlist.h @@ -14,8 +14,6 @@ #define CARDLIST_SIGNATURE SIGNATURE_32('C','A','R','D') -void FillCardList(const TagDict* CfgDict, SETTINGS_DATA& gSettings); - const SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD* FindCardWithIds ( UINT32 Id, diff --git a/rEFIt_UEFI/Platform/cpu.cpp b/rEFIt_UEFI/Platform/cpu.cpp index e52cc281c..3d6b542a6 100644 --- a/rEFIt_UEFI/Platform/cpu.cpp +++ b/rEFIt_UEFI/Platform/cpu.cpp @@ -1434,13 +1434,14 @@ UINT16 GetAdvancedCpuType() return GetStandardCpuType(); } -MACHINE_TYPES GetDefaultModel(bool isMobile) +MACHINE_TYPES GetDefaultModel() { MACHINE_TYPES DefaultType = iMac132; if (gCPUStructure.Vendor != CPU_VENDOR_INTEL) { return MacPro61; } // TODO: Add more CPU models and configure the correct machines per CPU/GFX model + bool isMobile = getMobileFromSmbios(); if(isMobile) { switch (gCPUStructure.Model) { @@ -1459,8 +1460,7 @@ MACHINE_TYPES GetDefaultModel(bool isMobile) DefaultType = MacBook21; break; case CPU_MODEL_PENRYN: - if ((gGraphics[0].Vendor == Nvidia) || - (gGraphics[1].Vendor == Nvidia)) { + if ( gConf.GfxPropertiesArray.hasNvidia() ) { DefaultType = MacBookPro51; } else DefaultType = MacBook41; @@ -1520,8 +1520,7 @@ MACHINE_TYPES GetDefaultModel(bool isMobile) DefaultType = MacBookPro143; break; default: - if ((gGraphics[0].Vendor == Nvidia) || - (gGraphics[1].Vendor == Nvidia)) { + if ( gConf.GfxPropertiesArray.hasNvidia() ) { DefaultType = MacBookPro51; } else DefaultType = MacBookPro83; @@ -1570,7 +1569,7 @@ MACHINE_TYPES GetDefaultModel(bool isMobile) DefaultType = MacPro51; break; case CPU_MODEL_SANDY_BRIDGE: - if (gGraphics[0].Vendor == Intel) { + if ( gConf.GfxPropertiesArray.isCardAtPosIntel(0) ) { DefaultType = MacMini51; break; } @@ -1588,7 +1587,7 @@ MACHINE_TYPES GetDefaultModel(bool isMobile) case CPU_MODEL_IVY_BRIDGE: case CPU_MODEL_IVY_BRIDGE_E5: DefaultType = iMac132; - if (gGraphics[0].Vendor == Intel) { + if ( gConf.GfxPropertiesArray.isCardAtPosIntel(0) ) { DefaultType = MacMini62; break; } diff --git a/rEFIt_UEFI/Platform/cpu.h b/rEFIt_UEFI/Platform/cpu.h index 8f8176795..2099ea12c 100644 --- a/rEFIt_UEFI/Platform/cpu.h +++ b/rEFIt_UEFI/Platform/cpu.h @@ -393,17 +393,16 @@ typedef struct { } CPU_STRUCTURE; - - +#ifndef DONT_DEFINE_GLOBALS extern UINT64 TurboMsr; extern CPU_STRUCTURE gCPUStructure; - +#endif void GetCPUProperties (void); MACHINE_TYPES -GetDefaultModel (bool gMobile); +GetDefaultModel (); UINT16 GetAdvancedCpuType (void); diff --git a/rEFIt_UEFI/Platform/device_inject.h b/rEFIt_UEFI/Platform/device_inject.h index 0efad600b..67f8e8013 100644 --- a/rEFIt_UEFI/Platform/device_inject.h +++ b/rEFIt_UEFI/Platform/device_inject.h @@ -111,11 +111,12 @@ struct DevPropString { typedef struct DevPropString DevPropString; +#ifndef DONT_DEFINE_GLOBALS extern UINT32 devices_number; extern DevPropString *device_inject_string; extern UINT8 *device_inject_stringdata; extern UINT32 device_inject_stringlength; - +#endif DevPropString *devprop_create_string(void); //DevPropDevice *devprop_add_device(DevPropString *string, char *path); diff --git a/rEFIt_UEFI/Platform/gma.cpp b/rEFIt_UEFI/Platform/gma.cpp index 37a32c383..6c2ea202b 100755 --- a/rEFIt_UEFI/Platform/gma.cpp +++ b/rEFIt_UEFI/Platform/gma.cpp @@ -14,6 +14,8 @@ #define WILL_WORK 0 +#include "device_inject.h" + /* ============== Information =============== https://en.wikipedia.org/wiki/List_of_Intel_chipsets @@ -957,7 +959,7 @@ CONST CHAR8 *get_gma_model(UINT16 id) } -BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) +BOOLEAN setup_gma_devprop(const MacOsVersion& macOSVersion, const XString8& BuildVersion, EFI_FILE* RootDir, pci_dt_t *gma_dev) { UINTN j; UINTN i; @@ -967,7 +969,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) UINT8 BuiltIn = 0x00; UINT32 FakeID; UINT32 DualLink = 1; -// UINT64 os_version = AsciiOSVersionToUint64(Entry->macOSVersion); +// UINT64 os_version = AsciiOSVersionToUint64(macOSVersion); BOOLEAN SetUGAWidth = FALSE; BOOLEAN SetUGAHeight = FALSE; BOOLEAN Injected = FALSE; @@ -981,10 +983,10 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) model = get_gma_model(gma_dev->device_id); - for (j = 0; j < NGFX; j++) { - if ((gGraphics[j].Vendor == Intel) && - (gGraphics[j].DeviceID == gma_dev->device_id)) { - model = gGraphics[j].Model; + for (j = 0; j < gConf.GfxPropertiesArray.size(); j++) { + if ((gConf.GfxPropertiesArray[j].Vendor == Intel) && + (gConf.GfxPropertiesArray[j].DeviceID == gma_dev->device_id)) { + model = gConf.GfxPropertiesArray[j].Model.c_str(); break; } } @@ -2545,7 +2547,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } // if wakes up with an HDMI connected, sometimes this value causes force reboot in 10.14+ - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.14"_XS8) ) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.14"_XS8) ) { devprop_add_value(device, "AAPL,GfxYTile", skylake_hd_vals[1], 4); } break; @@ -2597,7 +2599,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) switch (gma_dev->device_id) { case 0x5902: case 0x5906: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8) ) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8) ) { if (!SetFake) { FakeID = 0x19028086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2624,7 +2626,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x5912: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x19128086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2652,7 +2654,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) break; case 0x5916: case 0x5917: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x19168086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2681,7 +2683,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) case 0x591A: case 0x591B: case 0x591D: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x191B8086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2709,7 +2711,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) break; case 0x591C: case 0x591E: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x191E8086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2736,7 +2738,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x5923: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x19168086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2763,7 +2765,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x5926: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x19268086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2790,8 +2792,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x5927: - if (Entry->macOSVersion.notEmpty() && - Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if (macOSVersion.notEmpty() && + macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x19278086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2819,7 +2821,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) break; case 0x87C0: case 0x87CA: - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.12.6"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.12.6"_XS8)) { if (!SetFake) { FakeID = 0x191E8086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2831,7 +2833,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) devprop_add_value(device, "AAPL,ig-platform-id", skylake_ig_vals[8], 4); DBG(" Found ig-platform-id = 0x191E0000\n"); } - } else if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.14"_XS8)) { + } else if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.14"_XS8)) { if (!SetFake) { FakeID = 0x591E8086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2902,7 +2904,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } // if wakes up with an HDMI connected, somtimes this value causes force reboot in 10.14+ - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.14"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.14"_XS8)) { devprop_add_value(device, "AAPL,GfxYTile", kabylake_hd_vals[1], 4); } break; @@ -2961,8 +2963,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) switch (gma_dev->device_id) { case 0x3E90: case 0x3E93: - if (( Entry->macOSVersion >= MacOsVersion("10.14"_XS8)) || (( Entry->macOSVersion == MacOsVersion("10.13.6"_XS8)) && - (Entry->BuildVersion.contains("17G2") || FileExists(Entry->Volume->RootDir, CFLFBPath)))) { + if (( macOSVersion >= MacOsVersion("10.14"_XS8)) || (( macOSVersion == MacOsVersion("10.13.6"_XS8)) && + (BuildVersion.contains("17G2") || FileExists(RootDir, CFLFBPath)))) { if (!SetFake) { FakeID = 0x3E908086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -2989,8 +2991,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x3E91: - if (( Entry->macOSVersion >= MacOsVersion("10.14"_XS8)) || (( Entry->macOSVersion == MacOsVersion("10.13.6"_XS8)) && - (Entry->BuildVersion.contains("17G2") || FileExists(Entry->Volume->RootDir, CFLFBPath)))) { + if (( macOSVersion >= MacOsVersion("10.14"_XS8)) || (( macOSVersion == MacOsVersion("10.13.6"_XS8)) && + (BuildVersion.contains("17G2") || FileExists(RootDir, CFLFBPath)))) { if (!SetFake) { FakeID = 0x3E918086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -3018,8 +3020,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) break; case 0x3E92: case 0x3E98: - if (( Entry->macOSVersion >= MacOsVersion("10.14"_XS8)) || (( Entry->macOSVersion == MacOsVersion("10.13.6"_XS8)) && - (Entry->BuildVersion.contains("17G2") || FileExists(Entry->Volume->RootDir, CFLFBPath)))) { + if (( macOSVersion >= MacOsVersion("10.14"_XS8)) || (( macOSVersion == MacOsVersion("10.13.6"_XS8)) && + (BuildVersion.contains("17G2") || FileExists(RootDir, CFLFBPath)))) { if (!SetFake) { FakeID = 0x3E928086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -3049,8 +3051,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) case 0x3EA0: case 0x9B41: case 0x9BCA: - if (( Entry->macOSVersion >= MacOsVersion("10.14"_XS8)) || (( Entry->macOSVersion == MacOsVersion("10.13.6"_XS8)) && - (Entry->BuildVersion.contains("17G2") || FileExists(Entry->Volume->RootDir, CFLFBPath)))) { + if (( macOSVersion >= MacOsVersion("10.14"_XS8)) || (( macOSVersion == MacOsVersion("10.13.6"_XS8)) && + (BuildVersion.contains("17G2") || FileExists(RootDir, CFLFBPath)))) { if (!SetFake) { FakeID = 0x3E9B8086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -3077,8 +3079,8 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } break; case 0x3EA5: - if (( Entry->macOSVersion >= MacOsVersion("10.14"_XS8)) || (( Entry->macOSVersion == MacOsVersion("10.13.6"_XS8)) && - (Entry->BuildVersion.contains("17G2") || FileExists(Entry->Volume->RootDir, CFLFBPath)))) { + if (( macOSVersion >= MacOsVersion("10.14"_XS8)) || (( macOSVersion == MacOsVersion("10.13.6"_XS8)) && + (BuildVersion.contains("17G2") || FileExists(RootDir, CFLFBPath)))) { if (!SetFake) { FakeID = 0x3EA58086 >> 16; DBG(" Found FakeID Intel GFX = 0x%04x8086\n", FakeID); @@ -3143,7 +3145,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) } // if wakes up with an HDMI connected, somtimes this value causes force reboot in 10.14+ - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.14"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.14"_XS8)) { devprop_add_value(device, "AAPL,GfxYTile", coffeelake_hd_vals[1], 4); } break; @@ -3308,7 +3310,7 @@ BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev) }*/ // if wakes up with an HDMI connected, sometimes this value causes force reboot in 10.14+ - if ( Entry->macOSVersion.notEmpty() && Entry->macOSVersion < MacOsVersion("10.14"_XS8)) { + if ( macOSVersion.notEmpty() && macOSVersion < MacOsVersion("10.14"_XS8)) { devprop_add_value(device, "AAPL,GfxYTile", cannonlake_hd_vals[1], 4); } break; diff --git a/rEFIt_UEFI/Platform/gma.h b/rEFIt_UEFI/Platform/gma.h index 7ceca60c5..bc3fcc899 100644 --- a/rEFIt_UEFI/Platform/gma.h +++ b/rEFIt_UEFI/Platform/gma.h @@ -1,10 +1,14 @@ #ifndef __LIBSAIO_GMA_H #define __LIBSAIO_GMA_H -#include "device_inject.h" -#include "../gui/menu_items/menu_items.h" +#include "MacOsVersion.h" +#include "../include/Pci.h" -BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev); +//#include "device_inject.h" +//#include "../gui/menu_items/menu_items.h" + +//BOOLEAN setup_gma_devprop(LOADER_ENTRY *Entry, pci_dt_t *gma_dev); // do not use LOADER_ENTRY to avoid dependency +BOOLEAN setup_gma_devprop(const MacOsVersion& macOSVersion, const XString8& BuildVersion, EFI_FILE* RootDir, pci_dt_t *gma_dev); struct gma_gpu_t { UINT32 device; diff --git a/rEFIt_UEFI/Platform/guid.cpp b/rEFIt_UEFI/Platform/guid.cpp index 372dbddc5..4baeffcde 100644 --- a/rEFIt_UEFI/Platform/guid.cpp +++ b/rEFIt_UEFI/Platform/guid.cpp @@ -156,14 +156,25 @@ public: EFI_GUID nullGuid = {0,0,0,{0,0,0,0,0,0,0,0}}; -//Slice - I need GuidBEToStr :( -XStringW GuidBeToStr(const EFI_GUID& Guid) +XStringW GuidBeToXStringW(const EFI_GUID& Guid) { UINT8 *GuidData = (UINT8 *)&Guid; XStringW Str = SWPrintf("%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X", - GuidData[3], GuidData[2], GuidData[1], GuidData[0], - GuidData[5], GuidData[4], - GuidData[7], GuidData[6], + GuidData[0], GuidData[1], GuidData[2], GuidData[3], + GuidData[4], GuidData[5], + GuidData[6], GuidData[7], + GuidData[8], GuidData[9], GuidData[10], GuidData[11], + GuidData[12], GuidData[13], GuidData[14], GuidData[15]); + return Str; +} + +XString8 GuidBeToXString8(const EFI_GUID& Guid) +{ + UINT8 *GuidData = (UINT8 *)&Guid; + XString8 Str = SWPrintf("%02X%02X%02X%02X-%02X%02X-%02X%02X-%02X%02X-%02X%02X%02X%02X%02X%02X", + GuidData[0], GuidData[1], GuidData[2], GuidData[3], + GuidData[4], GuidData[5], + GuidData[6], GuidData[7], GuidData[8], GuidData[9], GuidData[10], GuidData[11], GuidData[12], GuidData[13], GuidData[14], GuidData[15]); return Str; diff --git a/rEFIt_UEFI/Platform/guid.h b/rEFIt_UEFI/Platform/guid.h index 3175c406b..b1fd03514 100644 --- a/rEFIt_UEFI/Platform/guid.h +++ b/rEFIt_UEFI/Platform/guid.h @@ -8,6 +8,7 @@ #ifndef PLATFORM_GUID_H_ #define PLATFORM_GUID_H_ +#include "Utils.h" #include "../cpp_foundation/XStringArray.h" #include "../cpp_foundation/unicode_conversions.h" @@ -17,6 +18,25 @@ extern "C" { extern "C" EFI_GUID gEfiMiscSubClassGuid; +/* + * Wrapper class to bring some syntaxic sugar : initialisation at construction, assignment, == operator, etc. + */ +class EFI_GUIDClass : public EFI_GUID +{ +public: + EFI_GUIDClass() { Data1 = 0; Data2 = 0; Data3 = 0; memset(Data4, 0, sizeof(Data4)); } + + EFI_GUIDClass(const EFI_GUID& other) { Data1 = other.Data1; Data2 = other.Data2; Data3 = other.Data3; memcpy(Data4, other.Data4, sizeof(Data4)); } + + bool operator == (const EFI_GUID& other) const { + if ( !(Data1 == other.Data1) ) return false; + if ( !(Data2 == other.Data2) ) return false; + if ( !(Data3 == other.Data3) ) return false; + if ( !(memcmp(Data4, other.Data4, sizeof(Data4)) == 0) ) return false; + return true; + } +}; + extern const XString8 nullGuidAsString; extern EFI_GUID nullGuid; @@ -148,7 +168,7 @@ StrHToBuf ( */ template EFI_STATUS -StrToGuidLE ( +StrToGuidBE ( const T& t, OUT EFI_GUID *Guid ) @@ -156,8 +176,19 @@ StrToGuidLE ( EFI_STATUS Status; UINT8 GuidLE[16]; + if ( Guid == NULL ) { + log_technical_bug("%s : call with Guid==NULL", __PRETTY_FUNCTION__); + return EFI_UNSUPPORTED; + } + auto Str = _xstringarray__char_type::getCharPtr(t); + if ( Str == NULL ) { + memset(Guid, 0, sizeof(EFI_GUID)); + return EFI_SUCCESS; + } + + Status = StrHToBuf (&GuidLE[0], 4, Str); if ( Status != EFI_SUCCESS ) return Status; @@ -218,7 +249,8 @@ StrToGuidLE ( } -XStringW GuidBeToStr(const EFI_GUID& Guid); +XString8 GuidBeToXString8(const EFI_GUID& Guid); +XStringW GuidBeToXStringW(const EFI_GUID& Guid); XString8 GuidLEToXString8(const EFI_GUID& Guid); XStringW GuidLEToXStringW(const EFI_GUID& Guid); diff --git a/rEFIt_UEFI/Platform/hda.cpp b/rEFIt_UEFI/Platform/hda.cpp index db4ca1355..cf1fe6ee8 100644 --- a/rEFIt_UEFI/Platform/hda.cpp +++ b/rEFIt_UEFI/Platform/hda.cpp @@ -140,10 +140,10 @@ BOOLEAN EFIAPI IsHDMIAudio(EFI_HANDLE PciDevHandle) } // iterate over all GFX devices and check for sibling - for (Index = 0; Index < NGFX; Index++) { - if (gGraphics[Index].Segment == Segment - && gGraphics[Index].Bus == Bus - && gGraphics[Index].Device == Device) { + for (Index = 0; Index < gConf.GfxPropertiesArray.size(); Index++) { + if (gConf.GfxPropertiesArray[Index].Segment == Segment + && gConf.GfxPropertiesArray[Index].Bus == Bus + && gConf.GfxPropertiesArray[Index].Device == Device) { return TRUE; } } @@ -256,3 +256,85 @@ BOOLEAN setup_hda_devprop(EFI_PCI_IO_PROTOCOL *PciIo, pci_dt_t *hda_dev, const M return TRUE; } + + + +void ResetHDA() +{ + EFI_STATUS Status; + UINTN HandleCount = 0; + EFI_HANDLE *HandleArray = NULL; + EFI_PCI_IO_PROTOCOL *PciIo; + PCI_TYPE00 Pci; + UINTN Index; + UINTN Segment = 0; + UINTN Bus = 0; + UINTN Device = 0; + UINTN Function = 0; + + XStringW GopDevicePathStr; + + + // Get GOP handle, in order to check to which GPU the monitor is currently connected + Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleArray); + if (!EFI_ERROR(Status)) { + GopDevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[0])); + DBG("GOP found at: %ls\n", GopDevicePathStr.wc_str()); + } + + // Scan PCI handles + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &gEfiPciIoProtocolGuid, + NULL, + &HandleCount, + &HandleArray + ); + + if (!EFI_ERROR(Status)) { + for (Index = 0; Index < HandleCount; ++Index) { + Status = gBS->HandleProtocol(HandleArray[Index], &gEfiPciIoProtocolGuid, (void **)&PciIo); + if (!EFI_ERROR(Status)) { + // Read PCI BUS + PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function); + Status = PciIo->Pci.Read ( + PciIo, + EfiPciIoWidthUint32, + 0, + sizeof (Pci) / sizeof (UINT32), + &Pci + ); + +// DBG("PCI (%02llX|%02llX:%02llX.%02llX) : %04hX %04hX class=%02hhX%02hhX%02hhX\n", +// Segment, +// Bus, +// Device, +// Function, +// Pci.Hdr.VendorId, +// Pci.Hdr.DeviceId, +// Pci.Hdr.ClassCode[2], +// Pci.Hdr.ClassCode[1], +// Pci.Hdr.ClassCode[0] +// ); + + if ( Pci.Hdr.ClassCode[2] == PCI_CLASS_MEDIA && + ( Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_HDA || Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_AUDIO ) + ) + { + //Slice method from VoodooHDA + //PCI_HDA_TCSEL_OFFSET = 0x44 + UINT8 Value = 0; + Status = PciIo->Pci.Read(PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); + + if ( !EFI_ERROR(Status) ) { + Value &= 0xf8; + PciIo->Pci.Write(PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); + } + //ResetControllerHDA(); + } + } + } + } +} + + diff --git a/rEFIt_UEFI/Platform/hda.h b/rEFIt_UEFI/Platform/hda.h index 87663662c..10da71d9f 100644 --- a/rEFIt_UEFI/Platform/hda.h +++ b/rEFIt_UEFI/Platform/hda.h @@ -20,7 +20,12 @@ #ifndef __LIBSAIO_HDA_H #define __LIBSAIO_HDA_H -#include "device_inject.h" +//#include "device_inject.h" +#include "MacOsVersion.h" +#include "../include/Pci.h" +extern "C" { +#include // for EFI_PCI_IO_PROTOCOL +} #if 0 //already defined /* Intel */ @@ -323,6 +328,19 @@ #define HDA_CODEC_INTELXXXX HDA_CODEC_CONSTRUCT(INTEL, 0xffff) #endif + +typedef enum { + Unknown, + Ati, /* 0x1002 */ + Intel, /* 0x8086 */ + Nvidia, /* 0x10de */ + RDC, /* 0x17f3 */ + VIA, /* 0x1106 */ + SiS, /* 0x1039 */ + ULI /* 0x10b9 */ +} HRDW_MANUFACTERER; + + BOOLEAN setup_hda_devprop ( EFI_PCI_IO_PROTOCOL *PciIo, @@ -331,5 +349,6 @@ setup_hda_devprop ( ); BOOLEAN EFIAPI IsHDMIAudio(EFI_HANDLE PciDevHandle); +void ResetHDA(); #endif /* !__LIBSAIO_GMA_H */ diff --git a/rEFIt_UEFI/Platform/kext_inject.cpp b/rEFIt_UEFI/Platform/kext_inject.cpp index 4b0d8d2f8..b8f39dd72 100644 --- a/rEFIt_UEFI/Platform/kext_inject.cpp +++ b/rEFIt_UEFI/Platform/kext_inject.cpp @@ -10,7 +10,7 @@ extern "C" { #include "../Platform/plist/plist.h" #include "../Platform/Settings.h" #include "../Platform/guid.h" -#include "../Platform/SelfOem.h" +#include "../Settings/SelfOem.h" #include "../Platform/KextList.h" #include "MemoryOperation.h" #include "../include/OSTypes.h" diff --git a/rEFIt_UEFI/Platform/memvendors.h b/rEFIt_UEFI/Platform/memvendors.h index 74f7f98e9..2b08ab097 100644 --- a/rEFIt_UEFI/Platform/memvendors.h +++ b/rEFIt_UEFI/Platform/memvendors.h @@ -39,8 +39,7 @@ #define SMB_MEM_CHANNEL_TRIPLE 3 /* Maximum number of ram slots */ -//#define MAX_RAM_SLOTS 8 -#define RAM_SLOT_ENUMERATOR {0, 2, 4, 1, 3, 5, 6, 8, 10, 7, 9, 11} +//#define RAM_SLOT_ENUMERATOR {0, 2, 4, 1, 3, 5, 6, 8, 10, 7, 9, 11} /* Maximum number of SPD bytes */ #define MAX_SPD_SIZE 0x1E7 /* end of DDR4 XMP 2.0 */ diff --git a/rEFIt_UEFI/Platform/nvidia.cpp b/rEFIt_UEFI/Platform/nvidia.cpp index dd3edbf75..23300bb50 100644 --- a/rEFIt_UEFI/Platform/nvidia.cpp +++ b/rEFIt_UEFI/Platform/nvidia.cpp @@ -56,8 +56,8 @@ #include "../include/Pci.h" #include "../include/Devices.h" #include "../Platform/Settings.h" -#include "Self.h" -#include "SelfOem.h" +#include "../Settings/Self.h" +#include "../Settings/SelfOem.h" #ifndef DEBUG_NVIDIA #ifndef DEBUG_ALL @@ -93,13 +93,13 @@ UINT8 default_NVCAP[]= { #define NVCAP_LEN ( sizeof(default_NVCAP) / sizeof(UINT8) ) -UINT8 default_dcfg_0[]= {0x03, 0x01, 0x03, 0x00}; -UINT8 default_dcfg_1[]= {0xff, 0xff, 0x00, 0x01}; +const UINT8 default_dcfg_0[]= {0x03, 0x01, 0x03, 0x00}; +const UINT8 default_dcfg_1[]= {0xff, 0xff, 0x00, 0x01}; #define DCFG0_LEN ( sizeof(default_dcfg_0) / sizeof(UINT8) ) #define DCFG1_LEN ( sizeof(default_dcfg_1) / sizeof(UINT8) ) -UINT8 default_NVPM[]= { +const UINT8 default_NVPM[]= { 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -108,7 +108,7 @@ UINT8 default_NVPM[]= { #define NVPM_LEN ( sizeof(default_NVPM) / sizeof(UINT8) ) -UINT8 pwm_info[] = { +const UINT8 pwm_info[] = { /* 0000 */ 0x01, 0x14, 0x00, 0x64, 0xA8, 0x61, 0x00, 0x00, /* 0008 */ 0x08, 0x52, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, /* 0010 */ 0x00, 0x04, 0x00, 0x00 @@ -116,7 +116,7 @@ UINT8 pwm_info[] = { }; #define PWM_LEN ( sizeof(pwm_info) / sizeof(UINT8) ) -static nvidia_pci_info_t nvidia_card_vendors[] = { +static const nvidia_pci_info_t nvidia_card_vendors[] = { { 0x10190000, "Elitegroup" }, { 0x10250000, "Acer" }, { 0x10280000, "Dell" }, @@ -170,7 +170,7 @@ static nvidia_pci_info_t nvidia_card_vendors[] = { { 0x73770000, "Colorful" }, }; -static nvidia_pci_info_t nvidia_card_generic[] = { +static const nvidia_pci_info_t nvidia_card_generic[] = { // 0000 - 0040 { 0x10DE0000, "Unknown" }, // 0040 - 004F @@ -2012,20 +2012,15 @@ static INT32 patch_nvidia_rom(UINT8 *rom) return (has_lvds ? PATCH_ROM_SUCCESS_HAS_LVDS : PATCH_ROM_SUCCESS); } -CONST CHAR8 *get_nvidia_model(UINT32 device_id, UINT32 subsys_id, const SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD * nvcard) +CONST CHAR8 *get_nvidia_model(UINT32 device_id, UINT32 subsys_id) { UINTN i, j; //DBG("get_nvidia_model for (%08X, %08X)\n", device_id, subsys_id); //ErmaC added selector for nVidia "old" style in System Profiler //DBG("NvidiaGeneric = %ls\n", gSettings.Graphics.NvidiaGeneric?L"YES":L"NO"); - if (gSettings.Graphics.NvidiaGeneric == FALSE) { - // First check in the plist, (for e.g this can override any hardcoded devices) - //CARDLIST * nvcard = FindCardWithIds(device_id, subsys_id); - if (nvcard && (nvcard->Id == device_id) && (nvcard->SubId == subsys_id)) { - return nvcard->Model.c_str(); - } - + if (gSettings.Graphics.NvidiaGeneric == FALSE) + { // Then check the exceptions table if (subsys_id) { for (i = 0; i < (sizeof(nvidia_card_exceptions) / sizeof(nvidia_card_exceptions[0])); i++) { @@ -2240,18 +2235,18 @@ BOOLEAN setup_nvidia_devprop(pci_dt_t *nvda_dev) // Get Model from the PCI // model = get_nvidia_model(((nvda_dev->vendor_id << 16) | nvda_dev->device_id), subsystem); if (model == NULL) { // !nvcard->Model - model = get_nvidia_model(device_id, subsys_id, NULL); + model = get_nvidia_model(device_id, subsys_id); } } else { - for (j = 0; j < NGFX; j++) { - if ((gGraphics[j].Vendor == Nvidia) && (gGraphics[j].DeviceID == nvda_dev->device_id)) { - model = gGraphics[j].Model; //menu setting + for (j = 0; j < gConf.GfxPropertiesArray.size(); j++) { + if ((gConf.GfxPropertiesArray[j].Vendor == Nvidia) && (gConf.GfxPropertiesArray[j].DeviceID == nvda_dev->device_id)) { + model = gConf.GfxPropertiesArray[j].Model.c_str(); //menu setting if (n_ports == 0) { // !nvcard->VideoPorts - n_ports = gGraphics[j].Ports; + n_ports = gConf.GfxPropertiesArray[j].Ports; } if (load_vbios == FALSE) { // !nvcard->LoadVBios - load_vbios = gGraphics[j].LoadVBios; + load_vbios = gConf.GfxPropertiesArray[j].LoadVBios; } break; } @@ -2348,7 +2343,14 @@ BOOLEAN setup_nvidia_devprop(pci_dt_t *nvda_dev) if (rom_pci_header->signature == 0x52494350) { if (rom_pci_header->device_id != nvda_dev->device_id) { // Get Model from the OpROM - model = get_nvidia_model(((rom_pci_header->vendor_id << 16) | rom_pci_header->device_id), subsys_id, nvcard); + if ( nvcard && + ( nvcard->Id == ((uint32_t)(rom_pci_header->vendor_id << 16) | rom_pci_header->device_id) ) && // we have to cast to uint32 because operator << promote to int (which is annoying :-) + ( nvcard->SubId == subsys_id ) + ) { + model = nvcard->Model.c_str(); + }else{ + model = get_nvidia_model(((rom_pci_header->vendor_id << 16) | rom_pci_header->device_id), subsys_id); + } // DBG(model); } } else { diff --git a/rEFIt_UEFI/Platform/nvidia.h b/rEFIt_UEFI/Platform/nvidia.h index d7d2715a6..f8e4ea5fd 100644 --- a/rEFIt_UEFI/Platform/nvidia.h +++ b/rEFIt_UEFI/Platform/nvidia.h @@ -51,7 +51,7 @@ #define __LIBSAIO_NVIDIA_H //#include "device_inject.h" -#include "card_vlist.h" +//#include "card_vlist.h" #include "../include/Pci.h" extern CHAR8* gDeviceProperties; @@ -172,21 +172,19 @@ struct bios { #define CHIPSET_C512 0x03D0 #define CHIPSET_G73_BRIDGED 0x02E0 +#ifndef DONT_DEFINE_GLOBALS extern UINT8 default_NVCAP[]; -extern UINT8 default_NVPM[]; -extern UINT8 default_dcfg_0[]; -extern UINT8 default_dcfg_1[]; +#endif + +extern const UINT8 default_NVPM[]; +extern const UINT8 default_dcfg_0[]; +extern const UINT8 default_dcfg_1[]; BOOLEAN setup_nvidia_devprop ( pci_dt_t *nvda_dev ); -CONST CHAR8 -*get_nvidia_model ( - UINT32 device_id, - UINT32 subsys_id, - const SETTINGS_DATA::GraphicsClass::GRAPHIC_CARD * nvcard - ); +CONST CHAR8* get_nvidia_model(UINT32 device_id, UINT32 subsys_id); #endif /* !__LIBSAIO_NVIDIA_H */ diff --git a/rEFIt_UEFI/Platform/platformdata.cpp b/rEFIt_UEFI/Platform/platformdata.cpp index 892a1e27b..882ed61e9 100644 --- a/rEFIt_UEFI/Platform/platformdata.cpp +++ b/rEFIt_UEFI/Platform/platformdata.cpp @@ -560,15 +560,8 @@ PLATFORMDATA ApplePlatformData[] = 0x02, 0x11, 0x0f, 0, 0, 0x16, "d8"_XS8, "d8"_XS8, 0x79006 }, }; -/* - * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global - * and is passed by non-const reference. - * This temporary during the refactoring - * All code from this comes from settings.cpp. I am taking out all the init code from settings.cpp so I can replace the reading layer. - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" - +// Firmware info for 10.13+ +// by Sherlocks uint32_t GetFwFeatures(MACHINE_TYPES Model) { // Firmware info for 10.13+ @@ -714,7 +707,7 @@ uint32_t GetFwFeatures(MACHINE_TYPES Model) } } -bool GetMobile(MACHINE_TYPES Model, bool defaultValue) +bool GetMobile(MACHINE_TYPES Model) { // Mobile: the battery tab in Energy Saver switch ( Model ) @@ -730,16 +723,6 @@ bool GetMobile(MACHINE_TYPES Model, bool defaultValue) case MacBook81: case MacBook91: case MacBook101: - case MacBookAir11: - case MacBookAir21: - case MacBookAir31: - case MacBookAir32: - case MacBookAir41: - case MacBookAir42: - case MacBookAir51: - case MacBookAir52: - case MacBookAir61: - case MacBookAir62: case MacBookPro11: case MacBookPro12: case MacBookPro21: @@ -781,12 +764,34 @@ bool GetMobile(MACHINE_TYPES Model, bool defaultValue) case MacBookPro162: case MacBookPro163: case MacBookPro164: + case MacBookAir11: + case MacBookAir21: + case MacBookAir31: + case MacBookAir32: + case MacBookAir41: + case MacBookAir42: + case MacBookAir51: + case MacBookAir52: + case MacBookAir61: + case MacBookAir62: case MacBookAir71: case MacBookAir72: case MacBookAir81: case MacBookAir82: case MacBookAir91: return TRUE; + case MacMini11: + case MacMini21: + case MacMini31: + case MacMini41: + case MacMini51: + case MacMini52: + case MacMini53: + case MacMini61: + case MacMini62: + case MacMini71: + case MacMini81: + return FALSE; case iMac41: case iMac42: case iMac51: @@ -821,40 +826,31 @@ bool GetMobile(MACHINE_TYPES Model, bool defaultValue) case iMac202: case iMacPro11: return FALSE; - case MacMini11: - case MacMini21: - case MacMini31: - case MacMini41: - case MacMini51: - case MacMini52: - case MacMini53: - case MacMini61: - case MacMini62: - case MacMini71: - case MacMini81: - return FALSE; - case MacPro41: - case MacPro51: - case MacPro71: case MacPro11: case MacPro21: case MacPro31: + case MacPro41: + case MacPro51: case MacPro61: + case MacPro71: return FALSE; case Xserve11: case Xserve21: case Xserve31: return FALSE; - default: //unknown - use oem SMBIOS value to be default - return defaultValue; + case MaxMachineType: // currently a copy of iMac132 + return FALSE; + default: // bug, unknown Apple model + log_technical_bug("%s : cannot find model %d\n", __PRETTY_FUNCTION__, Model); + return false; } } -UINT64 GetPlatformFeature(MACHINE_TYPES Model) -{ // PlatformFeature // the memory tab in About This Mac // by TheRacerMaster +UINT64 GetPlatformFeature(MACHINE_TYPES Model) +{ switch ( Model ) { // Verified list from ioreg @@ -1096,17 +1092,10 @@ void getRPlt(MACHINE_TYPES Model, bool Mobile, char RPlt[8]) } } -void SetDMISettingsForModel(SETTINGS_DATA& gSettings, MACHINE_TYPES Model, BOOLEAN Redefine) +bool isReleaseDateWithYear20(MACHINE_TYPES Model) { -#pragma GCC diagnostic pop - - const CHAR8 *i; - - gSettings.Smbios.BiosVendor = AppleBiosVendor; - GlobalConfig.RomVersionUsed = ApplePlatformData[Model].firmwareVersion; - - // AppleReleaseDate - switch (Model) { + switch ( Model ) + { case MacBook11: case MacBook21: case MacBook31: @@ -1161,75 +1150,60 @@ void SetDMISettingsForModel(SETTINGS_DATA& gSettings, MACHINE_TYPES Model, BOOLE case MacPro51: case Xserve11: case Xserve21: - case Xserve31: - i = ApplePlatformData[Model].firmwareVersion.c_str(); - i += AsciiStrLen(i); - - while (*i != '.') { - i--; - } - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); - break; - - default: - i = ApplePlatformData[Model].firmwareVersion.c_str(); - i += AsciiStrLen(i); - - while (*i != '.') { - i--; - } - GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); - break; + case Xserve31: { + return false; + } + default: { + return true; + } } +} +// AppleReleaseDate +XString8 GetReleaseDate(MACHINE_TYPES Model) +{ + XString8 returnValue; + + const char* i = ApplePlatformData[Model].firmwareVersion.c_str(); + i += AsciiStrLen(i); + while ( *i != '.' ) i--; + if ( isReleaseDateWithYear20(Model) ) { + returnValue.S8Printf("%c%c/%c%c/20%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); + }else{ + returnValue.S8Printf("%c%c/%c%c/%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); + } + return returnValue; +} + +void SetDMISettingsForModel(MACHINE_TYPES Model, SETTINGS_DATA* settingsData) +{ + GlobalConfig.BiosVersionUsed = ApplePlatformData[Model].firmwareVersion; + GlobalConfig.ReleaseDateUsed = GetReleaseDate(Model); // AppleReleaseDate GlobalConfig.EfiVersionUsed.takeValueFrom(ApplePlatformData[Model].efiversion); - gSettings.Smbios.ManufactureName = gSettings.Smbios.BiosVendor; - if (Redefine) { - gSettings.Smbios.ProductName = ApplePlatformData[Model].productName; - } - gSettings.Smbios.VersionNr = ApplePlatformData[Model].systemVersion; - gSettings.Smbios.SerialNr = ApplePlatformData[Model].serialNumber; - gSettings.Smbios.FamilyName = ApplePlatformData[Model].productFamily; - gSettings.Smbios.BoardManufactureName = gSettings.Smbios.BiosVendor; - gSettings.Smbios.BoardSerialNumber = AppleBoardSN; - gSettings.Smbios.BoardNumber = ApplePlatformData[Model].boardID; - gSettings.Smbios.BoardVersion = ApplePlatformData[Model].productName; - gSettings.Smbios.LocationInChassis = AppleBoardLocation; - gSettings.Smbios.ChassisManufacturer = gSettings.Smbios.BiosVendor; - gSettings.Smbios.ChassisAssetTag = ApplePlatformData[Model].chassisAsset; - - // Firmware info for 10.13+ - // by Sherlocks - // FirmwareFeatures - gSettings.Smbios.gFwFeatures = GetFwFeatures(Model); - - // FirmwareFeaturesMask - gSettings.Smbios.gFwFeaturesMask = GetFwFeaturesMaskFromModel(Model); - - // PlatformFeature - // the memory tab in About This Mac - // by TheRacerMaster - gSettings.Smbios.gPlatformFeature = GetPlatformFeature(Model); + settingsData->Smbios.BiosVendor = AppleBiosVendor; + settingsData->Smbios.ManufactureName = settingsData->Smbios.BiosVendor; + settingsData->Smbios.ProductName = ApplePlatformData[Model].productName; + settingsData->Smbios.SystemVersion = ApplePlatformData[Model].systemVersion; + settingsData->Smbios.SerialNr = ApplePlatformData[Model].serialNumber; + settingsData->Smbios.FamilyName = ApplePlatformData[Model].productFamily; + settingsData->Smbios.BoardManufactureName = settingsData->Smbios.BiosVendor; + settingsData->Smbios.BoardSerialNumber = AppleBoardSN; + settingsData->Smbios.BoardNumber = ApplePlatformData[Model].boardID; + settingsData->Smbios.BoardVersion = ApplePlatformData[Model].productName; + settingsData->Smbios.LocationInChassis = AppleBoardLocation; + settingsData->Smbios.ChassisManufacturer = settingsData->Smbios.BiosVendor; + settingsData->Smbios.ChassisAssetTag = ApplePlatformData[Model].chassisAsset; + settingsData->Smbios.FirmwareFeatures = GetFwFeatures(Model); + settingsData->Smbios.FirmwareFeaturesMask = GetFwFeaturesMaskFromModel(Model); + settingsData->Smbios.gPlatformFeature = GetPlatformFeature(Model); if ((Model > MacPro31) && (Model < MacPro71)) { - gSettings.Smbios.BoardType = BaseBoardTypeProcessorMemoryModule; //0xB; + settingsData->Smbios.BoardType = BaseBoardTypeProcessorMemoryModule; //0xB; } else { - gSettings.Smbios.BoardType = BaseBoardTypeMotherBoard; //0xA; + settingsData->Smbios.BoardType = BaseBoardTypeMotherBoard; //0xA; } - - gSettings.Smbios.ChassisType = GetChassisTypeFromModel(Model); - - // Mobile: the battery tab in Energy Saver - gSettings.Smbios.Mobile = GetMobile(Model, gMobile); - -// //RBr helper -// getRBr(Model, gSettings.Smbios.RBr); -// -// //RPlt helper -// getRPlt(Model, gSettings.Smbios.RPlt); -// -// CopyMem(gSettings.Smbios.REV, ApplePlatformData[Model].smcRevision, 6); -// CopyMem(gSettings.Smbios.EPCI, &ApplePlatformData[Model].smcConfig, 4); + settingsData->Smbios.ChassisType = GetChassisTypeFromModel(Model); + settingsData->Smbios.Mobile = GetMobile(Model); // Mobile: the battery tab in Energy Saver } MACHINE_TYPES GetModelFromString(const XString8& ProductName) @@ -1244,55 +1218,55 @@ MACHINE_TYPES GetModelFromString(const XString8& ProductName) // return ending enum as "not found" return MaxMachineType; } - -void GetDefaultSettings() -{ - DbgHeader("GetDefaultSettings"); - - //gLanguage = english; - - //default values will be overritten by config.plist - //use explicitly settings TRUE or FALSE (Yes or No) - - gSettings.Graphics.InjectAsDict.InjectIntel = (gGraphics[0].Vendor == Intel) || (gGraphics[1].Vendor == Intel); - - gSettings.Graphics.InjectAsDict.InjectATI = (((gGraphics[0].Vendor == Ati) && ((gGraphics[0].DeviceID & 0xF000) != 0x6000)) || - ((gGraphics[1].Vendor == Ati) && ((gGraphics[1].DeviceID & 0xF000) != 0x6000))); - - gSettings.Graphics.InjectAsDict.InjectNVidia = (((gGraphics[0].Vendor == Nvidia) && (gGraphics[0].Family < 0xE0)) || - ((gGraphics[1].Vendor == Nvidia) && (gGraphics[1].Family < 0xE0))); - -// gSettings.GraphicsInjector = gSettings.InjectATI || gSettings.InjectNVidia; - CopyMem(gSettings.Graphics.NVCAP.data(), default_NVCAP, 20); - CopyMem(gSettings.Graphics.Dcfg.data(), default_dcfg_0, 4); - CopyMem(&gSettings.Graphics.Dcfg[4], default_dcfg_1, 4); - //gSettings.Graphics.EDID.CustomEDID = NULL; //no sense to assign 0 as the structure is zeroed - gSettings.Graphics.DualLink = 0xA; // A(auto): DualLink auto-detection - gSettings.Devices.Audio.HDAInjection = FALSE; - //gSettings.Devices.Audio.HDALayoutId = 0; - gSettings.Devices.USB.USBInjection = TRUE; // enabled by default to have the same behavior as before - gSettings.ACPI.DSDT.DsdtName = L"DSDT.aml"_XSW; - gSettings.SystemParameters.BacklightLevel = 0xFFFF; //0x0503; -- the value from MBA52 - gSettings.SystemParameters.BacklightLevelConfig = FALSE; - gSettings.Smbios.TrustSMBIOS = TRUE; - - gSettings.Smbios.SmUUID = nullGuidAsString; - gSettings.BootGraphics.DefaultBackgroundColor = 0x80000000; //the value to delete the variable - GlobalConfig.RtROM.setEmpty(); - gSettings.RtVariables.CsrActiveConfig = 0xFFFF; - gSettings.RtVariables.BooterConfig = 0; -// MemSet(gSettings.RtVariables.BooterCfgStr, 64, 0); -// AsciiStrCpyS(gSettings.RtVariables.BooterCfgStr, 64, "log=0"); - CHAR8 *OldCfgStr = (__typeof__(OldCfgStr))GetNvramVariable(L"bootercfg", &gEfiAppleBootGuid, NULL, NULL); - if (OldCfgStr) { - gSettings.RtVariables.BooterCfgStr.takeValueFrom(OldCfgStr); - FreePool(OldCfgStr); - } - gSettings.Boot.DisableCloverHotkeys = FALSE; - gSettings.BootGraphics.UIScale = 1; - - ResumeFromCoreStorage = FALSE; -} +// +//void GetDefaultSettings() +//{ +// DbgHeader("GetDefaultSettings"); +// +// //gLanguage = english; +// +// //default values will be overritten by config.plist +// //use explicitly settings TRUE or FALSE (Yes or No) +// +// //gSettings.Graphics.InjectAsDict.InjectIntel = (gGraphics[0].Vendor == Intel) || (gGraphics[1].Vendor == Intel); +// +// //gSettings.Graphics.InjectAsDict.InjectATI = (((gGraphics[0].Vendor == Ati) && ((gGraphics[0].DeviceID & 0xF000) != 0x6000)) || +// // ((gGraphics[1].Vendor == Ati) && ((gGraphics[1].DeviceID & 0xF000) != 0x6000))); +// +// //gSettings.Graphics.InjectAsDict.InjectNVidia = (((gGraphics[0].Vendor == Nvidia) && (gGraphics[0].Family < 0xE0)) || +// // ((gGraphics[1].Vendor == Nvidia) && (gGraphics[1].Family < 0xE0))); +// +//// gSettings.GraphicsInjector = gSettings.InjectATI || gSettings.InjectNVidia; +// //CopyMem(gSettings.Graphics.NVCAP.data(), default_NVCAP, 20); +// //CopyMem(gSettings.Graphics.Dcfg.data(), default_dcfg_0, 4); +// //CopyMem(&gSettings.Graphics.Dcfg[4], default_dcfg_1, 4); +// //gSettings.Graphics.EDID.CustomEDID = NULL; //no sense to assign 0 as the structure is zeroed +// //gSettings.Graphics.DualLink = 0xA; // A(auto): DualLink auto-detection +// //gSettings.Devices.Audio.HDAInjection = FALSE; +// //gSettings.Devices.Audio.HDALayoutId = 0; +// //gSettings.Devices.USB.USBInjection = TRUE; // enabled by default to have the same behavior as before +// //gSettings.ACPI.DSDT.DsdtName = L"DSDT.aml"_XSW; +// //gSettings.SystemParameters.BacklightLevel = 0xFFFF; //0x0503; -- the value from MBA52 +// //gSettings.SystemParameters.BacklightLevelConfig = FALSE; +// //gSettings.Smbios.TrustSMBIOS = TRUE; +// +// //gSettings.Smbios.SmUUID = nullGuidAsString; +// //gSettings.BootGraphics.DefaultBackgroundColor = 0x80000000; //the value to delete the variable +// //GlobalConfig.RtROM.setEmpty(); +//// gSettings.RtVariables.CsrActiveConfig = 0xFFFF; +// //gSettings.RtVariables.BooterConfig = 0; +//// MemSet(gSettings.RtVariables.BooterCfgStr, 64, 0); +//// AsciiStrCpyS(gSettings.RtVariables.BooterCfgStr, 64, "log=0"); +// //CHAR8 *OldCfgStr = (__typeof__(OldCfgStr))GetNvramVariable(L"bootercfg", &gEfiAppleBootGuid, NULL, NULL); +// //if (OldCfgStr) { +// //gSettings.RtVariables.BooterCfgStr.takeValueFrom(OldCfgStr); +// //FreePool(OldCfgStr); +// //} +// //gSettings.Boot.DisableCloverHotkeys = FALSE; +// //gSettings.BootGraphics.UIScale = 1; // new default value 0x80000000 +// +// //ResumeFromCoreStorage = FALSE; +//} /* * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global @@ -1308,9 +1282,9 @@ void GetDefaultCpuSettings(SETTINGS_DATA& gSettings) DbgHeader("GetDefaultCpuSettings"); MACHINE_TYPES Model; //UINT64 msr = 0; - Model = GetDefaultModel(gMobile); + Model = GetDefaultModel(); gSettings.CPU.CpuType = GetAdvancedCpuType(); - SetDMISettingsForModel(gSettings, Model, TRUE); + SetDMISettingsForModel(Model, &gSettings); if (gCPUStructure.Model >= CPU_MODEL_IVY_BRIDGE) { gSettings.ACPI.SSDT.Generate.GeneratePStates = TRUE; @@ -1655,3 +1629,195 @@ uint32_t GetFwFeaturesMaskFromModel(MACHINE_TYPES Model) break; } } + +/* + * parameters MUST contains at least a dot, followed by at lest 6 chars + */ +int compareBiosVersion(const XString8& version1, const XString8& version2) +{ + const CHAR8* v1p = version1.c_str(); + const CHAR8* v2p = version2.c_str(); + + v1p += AsciiStrLen(v1p); + while (*v1p != '.') { + v1p--; + } + + v2p += AsciiStrLen(v2p); + while (*v2p != '.') { + v2p--; + } + if ( strlen(v1p) < 7 ) { + log_technical_bug("strlen(v1p) < 7"); + return false; + } + if ( strlen(v2p) < 7 ) { + log_technical_bug("strlen(v2p) < 7"); + return false; + } + + if (((v1p[1] > '0') && (v2p[1] == '0')) || ((v1p[1] >= v2p[1]) && (v1p[2] > v2p[2]))) { + return 1; + } else if ((v1p[1] == v2p[1]) && (v1p[2] == v2p[2])) { + if (((v1p[3] > '0') && (v2p[3] == '0')) || ((v1p[3] >= v2p[3]) && (v1p[4] > v2p[4]))) { + return 1; + } else if ((v1p[3] == v2p[3]) && (v1p[4] == v2p[4])) { + if (((v1p[5] > '0') && (v2p[5] == '0')) || ((v1p[5] > '1') && (v2p[5] == '1')) || + ((v1p[5] > '2') && (v2p[5] == '2')) || ((v1p[5] >= v2p[5]) && (v1p[6] > v2p[6]))) { + return 1; + } else if ((v1p[5] == v2p[5]) && (v1p[6] == v2p[6])) { + // equal + return 0; + } else { + return -1; + } + } else { + return -1; + } + } else { + return -1; + } +} + +bool is2ndBiosVersionGreaterThan1st(const XString8& version1, const XString8& version2) +{ + return compareBiosVersion(version1, version2) <= 0; +} +bool isBiosVersionEquel(const XString8& version1, const XString8& version2) +{ + return compareBiosVersion(version1, version2) == 0; +} + + +int compareReleaseDate(const XString8& date1, const XString8& date2) +{ + const CHAR8* i = date1.c_str(); + const CHAR8* j = date2.c_str(); + + if ( (AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 8) ) + { + if ( ((i[6] > '0') && (j[6] == '0')) || ((i[6] >= j[6]) && (i[7] > j[7])) ) + { + return 1; + } else if ( (i[6] == j[6]) && (i[7] == j[7]) ) + { + if ( ((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1])) ) + { + return 1; + } else if ( (i[0] == j[0]) && (i[1] == j[1]) ) + { + if ( ((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4])) ) + { + return 1; + } else if ( (i[3] == j[3]) && (i[4] == j[4]) ) + { + return 0; + } else + { + return -1; + } + } else + { + return -1; + } + } else + { + return -1; + } + } else if ( (AsciiStrLen(i) == 8) && (AsciiStrLen(j) == 10) ) + { + if ( ((i[6] > '0') && (j[8] == '0')) || ((i[6] >= j[8]) && (i[7] > j[9])) ) + { + return 1; + } else if ( (i[6] == j[8]) && (i[7] == j[9]) ) + { + if ( ((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1])) ) + { + return 1; + } else if ( (i[0] == j[0]) && (i[1] == j[1]) ) + { + if ( ((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4])) ) + { + return 1; + } else if ( (i[3] == j[3]) && (i[4] == j[4]) ) + { + return 0; + } else + { + return -1; + } + } else + { + return -1; + } + } else + { + return -1; + } + } else if ( (AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 10) ) + { + if ( ((i[8] > '0') && (j[8] == '0')) || ((i[8] >= j[8]) && (i[9] > j[9])) ) + { + return 1; + } else if ( (i[8] == j[8]) && (i[9] == j[9]) ) + { + if ( ((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1])) ) + { + return 1; + } else if ( (i[0] == j[0]) && (i[1] == j[1]) ) + { + if ( ((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4])) ) + { + return 1; + } else if ( (i[3] == j[3]) && (i[4] == j[4]) ) + { + return 0; + } else + { + return -1; + } + } else + { + return -1; + } + } else + { + return -1; + } + } else if ( (AsciiStrLen(i) == 10) && (AsciiStrLen(j) == 8) ) + { + if ( ((i[8] > '0') && (j[6] == '0')) || ((i[8] >= j[6]) && (i[9] > j[7])) ) + { + return 1; + } else if ( (i[8] == j[6]) && (i[9] == j[7]) ) + { + if ( ((i[0] > '0') && (j[0] == '0')) || ((i[0] >= j[0]) && (i[1] > j[1])) ) + { + return 1; + } else if ( (i[0] == j[0]) && (i[1] == j[1]) ) + { + if ( ((i[3] > '0') && (j[3] == '0')) || ((i[3] > '1') && (j[3] == '1')) || ((i[3] > '2') && (j[3] == '2')) || ((i[3] >= j[3]) && (i[4] > j[4])) ) + { + return 1; + } else if ( (i[3] == j[3]) && (i[4] == j[4]) ) + { + return 0; + } else + { + return -1; + } + } else + { + return -1; + } + } else + { + return -1; + } + } else + { + return -2; + } +} + + diff --git a/rEFIt_UEFI/Platform/platformdata.h b/rEFIt_UEFI/Platform/platformdata.h index f53ee2d32..9a9224110 100644 --- a/rEFIt_UEFI/Platform/platformdata.h +++ b/rEFIt_UEFI/Platform/platformdata.h @@ -192,16 +192,24 @@ public: extern PLATFORMDATA ApplePlatformData[]; -void SetDMISettingsForModel (SETTINGS_DATA& gSettings, MACHINE_TYPES Model, BOOLEAN Redefine); +void SetDMISettingsForModel(MACHINE_TYPES Model, SETTINGS_DATA* settingsData); MACHINE_TYPES GetModelFromString (const XString8& ProductName); -void GetDefaultSettings(void); +//void GetDefaultSettings(void); void GetDefaultCpuSettings(SETTINGS_DATA& gSettings); +bool isReleaseDateWithYear20(MACHINE_TYPES Model); +XString8 GetReleaseDate (MACHINE_TYPES Model); uint8_t GetChassisTypeFromModel(MACHINE_TYPES Model); uint32_t GetFwFeaturesMaskFromModel(MACHINE_TYPES Model); uint32_t GetFwFeatures(MACHINE_TYPES Model); -bool GetMobile(MACHINE_TYPES Model, bool defaultValue); +bool GetMobile(MACHINE_TYPES Model); UINT64 GetPlatformFeature(MACHINE_TYPES Model); void getRBr(MACHINE_TYPES Model, char RBr[8]); void getRPlt(MACHINE_TYPES Model, bool Mobile, char RPlt[8]); +int compareBiosVersion(const XString8& version1, const XString8& version2); +bool is2ndBiosVersionGreaterThan1st(const XString8& version1, const XString8& version2); +bool isBiosVersionEquel(const XString8& version1, const XString8& version2); + +int compareReleaseDate(const XString8& date1, const XString8& date2); + #endif /* PLATFORM_PLATFORMDATA_H_ */ diff --git a/rEFIt_UEFI/Platform/plist/TagArray.cpp b/rEFIt_UEFI/Platform/plist/TagArray.cpp index 1fe7512b8..52af42fb5 100755 --- a/rEFIt_UEFI/Platform/plist/TagArray.cpp +++ b/rEFIt_UEFI/Platform/plist/TagArray.cpp @@ -116,11 +116,8 @@ void TagArray::FreeTag() const TagStruct* TagArray::elementAt(size_t idx) const { if ( idx >= _arrayContent.size() ) { -#ifdef DEBUG - panic("TagArray::elementAt(%zu) -> trying to access element at %zu, but array has only %zu element(s)\n", idx, idx, _arrayContent.size()); -#else + log_technical_bug("TagArray::elementAt(%zu) -> trying to access element at %zu, but array has only %zu element(s)\n", idx, idx, _arrayContent.size()); return 0; -#endif } return &_arrayContent[idx]; } @@ -130,11 +127,10 @@ const TagDict* TagArray::dictElementAt(size_t idx, const XString8& currentTag) c { const TagStruct* tag = elementAt(idx); if ( !tag->isDict() ) { -#ifdef DEBUG - panic("MALFORMED PLIST in '%s' : TagArray::dictElementAt(%zu) -> trying to get a dict element at %zu, but element is %s\n", currentTag.c_str(), idx, idx, tag->getTypeAsXString8().c_str()); -#else + // At first, I though it was a mistake, but it's easier to use if this method returns NULL is the element exists but is not a dict. + // That way, no need to test before calling that the element is a dict. + //panic("MALFORMED PLIST in '%s' : TagArray::dictElementAt(%zu) -> trying to get a dict element at %zu, but element is %s\n", currentTag.c_str(), idx, idx, tag->getTypeAsXString8().c_str()); return 0; -#endif } return _arrayContent[idx].getDict(); } @@ -143,11 +139,10 @@ const TagArray* TagArray::arrayElementAt(size_t idx, const XString8& currentTag) { const TagStruct* tag = elementAt(idx); if ( !tag->isArray() ) { -#ifdef DEBUG - panic("MALFORMED PLIST in '%s' : TagArray::arrayElementAt(%zu) -> trying to get a array element at %zu, but element is %s\n", currentTag.c_str(), idx, idx, tag->getTypeAsXString8().c_str()); -#else + // At first, I though it was a mistake, but it's easier to use if this method returns NULL is the element exists but is not an array. + // That way, no need to test before calling that the element is an array. + //panic("MALFORMED PLIST in '%s' : TagArray::arrayElementAt(%zu) -> trying to get a array element at %zu, but element is %s\n", currentTag.c_str(), idx, idx, tag->getTypeAsXString8().c_str()); return 0; -#endif } return _arrayContent[idx].getArray(); } diff --git a/rEFIt_UEFI/Platform/smbios.cpp b/rEFIt_UEFI/Platform/smbios.cpp index c6971eb02..df80e9f1f 100644 --- a/rEFIt_UEFI/Platform/smbios.cpp +++ b/rEFIt_UEFI/Platform/smbios.cpp @@ -19,14 +19,16 @@ SmbiosGen.c **/ +#define DONT_DEFINE_GLOBALS + #include // Only use angled for Platform, else, xcode project won't compile #include #include "smbios.h" -#include "cpu.h" #include "platformdata.h" #include "AcpiPatcher.h" #include "guid.h" +#include "../Platform/CloverVersion.h" #ifndef DEBUG_ALL #define DEBUG_SMBIOS 1 @@ -51,6 +53,12 @@ EFI_GUID *gTableGuidArray[] = {&gEfiSmbiosTableGuid, &gEfiSmbios3TableGuid}; constexpr LString8 unknown = "unknown"_XS8; + +SmbiosDiscoveredSettings g_SmbiosDiscoveredSettings; +SmbiosInjectedSettings g_SmbiosInjectedSettings; +const RAM_SLOT_INFO nullRAM_SLOT_INFO; +const SLOT_DEVICE nullSLOT_DEVICE; + // // syscl: implement Dell truncate fix // remap EFI_SMBIOS_TABLE_1 to new guid to fix Dell @@ -74,9 +82,7 @@ EFI_SMBIOS_TYPE Type; UINTN stringNumber; UINTN TableSize; -UINTN Index, Size, NewSize, MaxSize; UINT16 CoreCache = 0; -UINT16 TotalCount = 0; UINT16 L1, L2, L3; UINT32 MaxMemory = 0; UINT32 mTotalSystemMemory; @@ -93,8 +99,6 @@ UINT8 gBootStatus; BOOLEAN Once; MEM_STRUCTURE gRAM; -//DMI* gDMI; -UINT8 gRAMCount = 0; #define MAX_HANDLE 0xFEFF @@ -422,7 +426,7 @@ void UniquifySmbiosTableStr (APPLE_SMBIOS_STRUCTURE_POINTER SmbiosTableN, SMBIOS } /* Patching Functions */ -void PatchTableType0() +void PatchTableType0(const SmbiosInjectedSettings& smbiosSettings) { // BIOS information // @@ -462,33 +466,30 @@ void PatchTableType0() UniquifySmbiosTableStr(newSmbiosTable, SMBIOS_TABLE_TYPE0_STR_IDX); - gSettings.Smbios.BiosVendor.trim(); - if( gSettings.Smbios.BiosVendor.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->Vendor, gSettings.Smbios.BiosVendor); + if ( smbiosSettings.BiosVendor.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->Vendor, smbiosSettings.BiosVendor); } - GlobalConfig.RomVersionUsed.trim(); - if( GlobalConfig.RomVersionUsed.notEmpty() ) { - if( GlobalConfig.EfiVersionUsed.notEmpty() ) { - DBG("UpdateSmbiosString : BiosVersion=EfiVersion=%s\n", GlobalConfig.EfiVersionUsed.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosVersion, GlobalConfig.EfiVersionUsed); + if( smbiosSettings.BiosVersionUsed.notEmpty() ) { + if( smbiosSettings.EfiVersionUsed.notEmpty() ) { + DBG("UpdateSmbiosString : BiosVersion=EfiVersion=%s\n", smbiosSettings.EfiVersionUsed.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosVersion, smbiosSettings.EfiVersionUsed); } else { - DBG("UpdateSmbiosString : BiosVersion=RomVersion=%s\n", GlobalConfig.RomVersionUsed.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosVersion, GlobalConfig.RomVersionUsed); + DBG("UpdateSmbiosString : BiosVersion=RomVersion=%s\n", smbiosSettings.BiosVersionUsed.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosVersion, smbiosSettings.BiosVersionUsed); } }else{ DBG("UpdateSmbiosString : BiosVersion no update\n"); } - GlobalConfig.ReleaseDateUsed.trim(); - if( GlobalConfig.ReleaseDateUsed.notEmpty() ) { - DBG("UpdateSmbiosString : ReleaseDate=%s\n", GlobalConfig.ReleaseDateUsed.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosReleaseDate, GlobalConfig.ReleaseDateUsed); + if( smbiosSettings.ReleaseDateUsed.notEmpty() ) { + DBG("UpdateSmbiosString : ReleaseDate=%s\n", smbiosSettings.ReleaseDateUsed.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type0->BiosReleaseDate, smbiosSettings.ReleaseDateUsed); }else{ DBG("UpdateSmbiosString : ReleaseDate no update\n"); } Handle = LogSmbiosTable(newSmbiosTable); } -void GetTableType1() +void GetTableType1(SmbiosDiscoveredSettings* smbiosSettings) { CHAR8* s; // System Information @@ -499,15 +500,28 @@ void GetTableType1() return; } - gSettings.Smbios.SmUUID = GuidLEToXString8(SmbiosTable.Type1->Uuid); + //smbiosSettings.SmUUID = GuidLEToXString8(SmbiosTable.Type1->Uuid); // is this is a bug, this uuid might be BE, not LE, or should we use the "variant" field s = GetSmbiosString(SmbiosTable, SmbiosTable.Type1->ProductName); - GlobalConfig.OEMProductFromSmbios.strncpy(s, iStrLen(s, 64)); //strncpy take care of ending zero + smbiosSettings->OEMProductFromSmbios.strncpy(s, iStrLen(s, 64)); //strncpy take care of ending zero return; } +XString8 getSmUUIDFromSmbios() +{ + // System Information + // + SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_SYSTEM_INFORMATION, 0); + if (SmbiosTable.Raw == NULL) { + DBG("SmbiosTable: Type 1 (System Information) not found!\n"); + return nullGuidAsString; + } +// XString8 g = GuidBeToXString8(SmbiosTable.Type1->Uuid); // should we use the "variant" field to know if it's LE or BE + XString8 g = GuidLEToXString8(SmbiosTable.Type1->Uuid); // 2021-04 : this is a bug, the UUID will be swapped (read as a LE, sent as a BE). I leave for now because it doesn't really matter. + return g; +} -void PatchTableType1() +void PatchTableType1(const SmbiosInjectedSettings& smbiosSettings) { // System Information // @@ -517,9 +531,9 @@ void PatchTableType1() } //Increase table size - Size = SmbiosTable.Type1->Hdr.Length; //old size + UINTN Size = SmbiosTable.Type1->Hdr.Length; //old size TableSize = SmbiosTableLength(SmbiosTable); //including strings - NewSize = 27; //sizeof(SMBIOS_TABLE_TYPE1); + UINTN NewSize = 27; //sizeof(SMBIOS_TABLE_TYPE1); ZeroMem((void*)newSmbiosTable.Type1, MAX_TABLE_SIZE); CopyMem((void*)newSmbiosTable.Type1, (void*)SmbiosTable.Type1, Size); //copy main table CopyMem((CHAR8*)newSmbiosTable.Type1+NewSize, (CHAR8*)SmbiosTable.Type1+Size, TableSize - Size); //copy strings @@ -531,43 +545,38 @@ void PatchTableType1() Once = TRUE; EFI_GUID SmUUID; - StrToGuidLE(gSettings.Smbios.SmUUID, &SmUUID); + // macOs take all guid as BE guid, irrespective to the variant. + StrToGuidBE(smbiosSettings.SmUUID, &SmUUID); if((SmUUID.Data3 & 0xF000) != 0) { CopyMem((void*)&newSmbiosTable.Type1->Uuid, (void*)&SmUUID, sizeof(SmUUID)); } - gSettings.Smbios.ManufactureName.trim(); - if( gSettings.Smbios.ManufactureName.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Manufacturer, gSettings.Smbios.ManufactureName); + if( smbiosSettings.ManufactureName.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Manufacturer, smbiosSettings.ManufactureName); } - gSettings.Smbios.ProductName.trim(); - if( gSettings.Smbios.ProductName.notEmpty() ){ -DBG("%s : UpdateSmbiosString ProductName=%s\n", __PRETTY_FUNCTION__, gSettings.Smbios.ProductName.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->ProductName, gSettings.Smbios.ProductName); + if( smbiosSettings.ProductName.notEmpty() ){ +DBG("%s : UpdateSmbiosString ProductName=%s\n", __PRETTY_FUNCTION__, smbiosSettings.ProductName.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->ProductName, smbiosSettings.ProductName); } - gSettings.Smbios.VersionNr.trim(); - if( gSettings.Smbios.VersionNr.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Version, gSettings.Smbios.VersionNr); + if( smbiosSettings.SystemVersion.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Version, smbiosSettings.SystemVersion); } - gSettings.Smbios.SerialNr.trim(); - if( gSettings.Smbios.SerialNr.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->SerialNumber, gSettings.Smbios.SerialNr); -//DBG("%s : UpdateSmbiosString SerialNr=%s\n", __PRETTY_FUNCTION__, gSettings.Smbios.SerialNr.c_str()); + if( smbiosSettings.SerialNr.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->SerialNumber, smbiosSettings.SerialNr); +//DBG("%s : UpdateSmbiosString SerialNr=%s\n", __PRETTY_FUNCTION__, smbiosSettings.SerialNr.c_str()); } - gSettings.Smbios.BoardNumber.trim(); - if( gSettings.Smbios.BoardNumber.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->SKUNumber, gSettings.Smbios.BoardNumber); //iMac17,1 - there is nothing + if( smbiosSettings.BoardNumber.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->SKUNumber, smbiosSettings.BoardNumber); //iMac17,1 - there is nothing } - gSettings.Smbios.FamilyName.trim(); - if( gSettings.Smbios.FamilyName.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Family, gSettings.Smbios.FamilyName); + if( smbiosSettings.FamilyName.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type1->Family, smbiosSettings.FamilyName); } Handle = LogSmbiosTable(newSmbiosTable); return; } -void GetTableType2() +void GetTableType2(SmbiosDiscoveredSettings* smbiosSettings) { CHAR8* s; // System Information @@ -578,17 +587,17 @@ void GetTableType2() } s = GetSmbiosString(SmbiosTable, SmbiosTable.Type2->ProductName); - GlobalConfig.OEMBoardFromSmbios.strncpy(s, iStrLen(s, 64) + 1); + smbiosSettings->OEMBoardFromSmbios.strncpy(s, iStrLen(s, 64) + 1); s = GetSmbiosString(SmbiosTable, SmbiosTable.Type2->Manufacturer); - GlobalConfig.OEMVendorFromSmbios.strncpy(s, iStrLen(s, 64) + 1); + smbiosSettings->OEMVendorFromSmbios.strncpy(s, iStrLen(s, 64) + 1); } -void PatchTableType2() +void PatchTableType2(const SmbiosInjectedSettings& smbiosSettings) { // BaseBoard Information // - NewSize = 0x10; //sizeof(SMBIOS_TABLE_TYPE2); + UINTN NewSize = 0x10; //sizeof(SMBIOS_TABLE_TYPE2); ZeroMem((void*)newSmbiosTable.Type2, MAX_TABLE_SIZE); SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_BASEBOARD_INFORMATION, 0); @@ -599,7 +608,7 @@ void PatchTableType2() newSmbiosTable.Type2->Hdr.Handle = 0x0200; //common rule } else { - Size = SmbiosTable.Type2->Hdr.Length; //old size + UINTN Size = SmbiosTable.Type2->Hdr.Length; //old size TableSize = SmbiosTableLength(SmbiosTable); //including strings if (NewSize > Size) { @@ -612,38 +621,33 @@ void PatchTableType2() newSmbiosTable.Type2->Hdr.Length = (UINT8)NewSize; newSmbiosTable.Type2->ChassisHandle = mHandle3; //from GetTableType3 - newSmbiosTable.Type2->BoardType = gSettings.Smbios.BoardType; + newSmbiosTable.Type2->BoardType = smbiosSettings.BoardType; ZeroMem((void*)&newSmbiosTable.Type2->FeatureFlag, sizeof(BASE_BOARD_FEATURE_FLAGS)); newSmbiosTable.Type2->FeatureFlag.Motherboard = 1; newSmbiosTable.Type2->FeatureFlag.Replaceable = 1; - if (gSettings.Smbios.BoardType == 11) { + if (smbiosSettings.BoardType == 11) { newSmbiosTable.Type2->FeatureFlag.Removable = 1; } Once = TRUE; UniquifySmbiosTableStr(newSmbiosTable, SMBIOS_TABLE_TYPE2_STR_IDX); - gSettings.Smbios.BoardManufactureName.trim(); - if( gSettings.Smbios.BoardManufactureName.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->Manufacturer, gSettings.Smbios.BoardManufactureName); + if( smbiosSettings.BoardManufactureName.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->Manufacturer, smbiosSettings.BoardManufactureName); } - gSettings.Smbios.BoardNumber.trim(); - if( gSettings.Smbios.BoardNumber.notEmpty() ){ -DBG("%s : UpdateSmbiosString ProductName=BoardNumber=%s\n", __PRETTY_FUNCTION__, gSettings.Smbios.BoardNumber.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->ProductName, gSettings.Smbios.BoardNumber); + if( smbiosSettings.BoardNumber.notEmpty() ){ +DBG("%s : UpdateSmbiosString ProductName=BoardNumber=%s\n", __PRETTY_FUNCTION__, smbiosSettings.BoardNumber.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->ProductName, smbiosSettings.BoardNumber); } - gSettings.Smbios.BoardVersion.trim(); - if( gSettings.Smbios.BoardVersion.notEmpty() ){ -DBG("%s : UpdateSmbiosString Version=BoardVersion=%s\n", __PRETTY_FUNCTION__, gSettings.Smbios.BoardVersion.c_str()); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->Version, gSettings.Smbios.BoardVersion); //iMac17,1 - there is ProductName + if( smbiosSettings.BoardVersion.notEmpty() ){ +DBG("%s : UpdateSmbiosString Version=BoardVersion=%s\n", __PRETTY_FUNCTION__, smbiosSettings.BoardVersion.c_str()); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->Version, smbiosSettings.BoardVersion); //iMac17,1 - there is ProductName } - gSettings.Smbios.BoardSerialNumber.trim(); - if( gSettings.Smbios.BoardSerialNumber.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->SerialNumber, gSettings.Smbios.BoardSerialNumber); + if( smbiosSettings.BoardSerialNumber.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->SerialNumber, smbiosSettings.BoardSerialNumber); } - gSettings.Smbios.LocationInChassis.trim(); - if( gSettings.Smbios.LocationInChassis.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->LocationInChassis, gSettings.Smbios.LocationInChassis); + if( smbiosSettings.LocationInChassis.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type2->LocationInChassis, smbiosSettings.LocationInChassis); } //what about Asset Tag??? Not used in real mac. till now. @@ -660,7 +664,20 @@ DBG("%s : UpdateSmbiosString Version=BoardVersion=%s\n", __PRETTY_FUNCTION__, gS return; } -void GetTableType3() +bool getMobileFromSmbios() +{ + // System Chassis Information + // + SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_SYSTEM_ENCLOSURE, 0); + if (SmbiosTable.Raw == NULL) { + //DBG("SmbiosTable: Type 3 (System Chassis Information) not found!\n"); + return false; + } + mHandle3 = SmbiosTable.Type3->Hdr.Handle; + return ((SmbiosTable.Type3->Type) >= 8) && (SmbiosTable.Type3->Type != 0x0D); //iMac is desktop! +} + +void GetTableType3(SmbiosDiscoveredSettings* smbiosSettings) { // System Chassis Information // @@ -676,7 +693,7 @@ void GetTableType3() return; } -void PatchTableType3() +void PatchTableType3(const SmbiosInjectedSettings& smbiosSettings) { // System Chassis Information // @@ -685,9 +702,9 @@ void PatchTableType3() // DBG("SmbiosTable: Type 3 (System Chassis Information) not found!\n"); return; } - Size = SmbiosTable.Type3->Hdr.Length; //old size + UINTN Size = SmbiosTable.Type3->Hdr.Length; //old size TableSize = SmbiosTableLength(SmbiosTable); //including strings - NewSize = 0x15; //sizeof(SMBIOS_TABLE_TYPE3); + UINTN NewSize = 0x15; //sizeof(SMBIOS_TABLE_TYPE3); ZeroMem((void*)newSmbiosTable.Type3, MAX_TABLE_SIZE); if (NewSize > Size) { @@ -709,34 +726,30 @@ void PatchTableType3() UniquifySmbiosTableStr(newSmbiosTable, SMBIOS_TABLE_TYPE3_STR_IDX); - if (gSettings.Smbios.ChassisType != 0) { - newSmbiosTable.Type3->Type = gSettings.Smbios.ChassisType; + if (smbiosSettings.ChassisType != 0) { + newSmbiosTable.Type3->Type = smbiosSettings.ChassisType; } - gSettings.Smbios.ChassisManufacturer.trim(); - if( gSettings.Smbios.ChassisManufacturer.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->Manufacturer, gSettings.Smbios.ChassisManufacturer); + if( smbiosSettings.ChassisManufacturer.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->Manufacturer, smbiosSettings.ChassisManufacturer); } //SIC! According to iMac there must be the BoardNumber - gSettings.Smbios.BoardNumber.trim(); - if( gSettings.Smbios.BoardNumber.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->Version, gSettings.Smbios.BoardNumber); + if( smbiosSettings.BoardNumber.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->Version, smbiosSettings.BoardNumber); } - gSettings.Smbios.SerialNr.trim(); - if( gSettings.Smbios.SerialNr.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->SerialNumber, gSettings.Smbios.SerialNr); -//DBG("%s : UpdateSmbiosString SerialNr=%s\n", __PRETTY_FUNCTION__, gSettings.Smbios.SerialNr.c_str()); + if( smbiosSettings.SerialNr.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->SerialNumber, smbiosSettings.SerialNr); +//DBG("%s : UpdateSmbiosString SerialNr=%s\n", __PRETTY_FUNCTION__, smbiosSettings.SerialNr.c_str()); } - gSettings.Smbios.ChassisAssetTag.trim(); - if( gSettings.Smbios.ChassisAssetTag.notEmpty() ){ - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->AssetTag, gSettings.Smbios.ChassisAssetTag); + if( smbiosSettings.ChassisAssetTag.notEmpty() ){ + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type3->AssetTag, smbiosSettings.ChassisAssetTag); } Handle = LogSmbiosTable(newSmbiosTable); return; } -void GetTableType4() +void GetTableType4(SmbiosDiscoveredSettings* smbiosSettings) { // Processor Information // @@ -755,27 +768,27 @@ void GetTableType4() res = SmbiosTable.Type4->ExternalClock % 10; } - gCPUStructure.ExternalClock = (UINT32)((SmbiosTable.Type4->ExternalClock * 1000) + (res * 110));//MHz->kHz + smbiosSettings->ExternalClock = (UINT32)((SmbiosTable.Type4->ExternalClock * 1000) + (res * 110));//MHz->kHz - //snwprintf(gSettings.BusSpeed, 10, "%d", gCPUStructure.ExternalClock); - //gSettings.BusSpeed = gCPUStructure.ExternalClock; //why duplicate?? - gCPUStructure.CurrentSpeed = SmbiosTable.Type4->CurrentSpeed; - gCPUStructure.MaxSpeed = SmbiosTable.Type4->MaxSpeed; + //snwprintf(gSettings.BusSpeed, 10, "%d", smbiosSettings.ExternalClock); + //gSettings.BusSpeed = smbiosSettings.ExternalClock; //why duplicate?? + smbiosSettings->CurrentSpeed = SmbiosTable.Type4->CurrentSpeed; + smbiosSettings->MaxSpeed = SmbiosTable.Type4->MaxSpeed; size_t off = OFFSET_OF(SMBIOS_TABLE_TYPE4, EnabledCoreCount); if (SmbiosTable.Type4->Hdr.Length > off) { //Smbios >= 2.5 - GlobalConfig.EnabledCores = SmbiosTable.Type4->EnabledCoreCount; + smbiosSettings->EnabledCores = SmbiosTable.Type4->EnabledCoreCount; } else { - GlobalConfig.EnabledCores = 0; //to change later + smbiosSettings->EnabledCores = 0; //to change later } - //snwprintf(gSettings.CpuFreqMHz, 10, "%d", gCPUStructure.CurrentSpeed); - //gSettings.CpuFreqMHz = gCPUStructure.CurrentSpeed; + //snwprintf(gSettings.CpuFreqMHz, 10, "%d", smbiosSettings.CurrentSpeed); + //gSettings.CpuFreqMHz = smbiosSettings.CurrentSpeed; return; } -void PatchTableType4() +void PatchTableType4(const SmbiosInjectedSettings& smbiosSettings) { // Processor Information // @@ -786,26 +799,26 @@ void PatchTableType4() UINTN CpuNumber; // DBG("BrandString=%s\n", BrandStr); - for (CpuNumber = 0; CpuNumber < gCPUStructure.Cores; CpuNumber++) { + for (CpuNumber = 0; CpuNumber < smbiosSettings.Cores; CpuNumber++) { // Get Table Type4 SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_PROCESSOR_INFORMATION, CpuNumber); if (SmbiosTable.Raw == NULL) { break; } // we make SMBios v2.4 while it may be older so we have to increase size - Size = SmbiosTable.Type4->Hdr.Length; //old size + UINTN Size = SmbiosTable.Type4->Hdr.Length; //old size TableSize = SmbiosTableLength(SmbiosTable); //including strings AddBrand = 0; if (SmbiosTable.Type4->ProcessorVersion == 0) { //if no BrandString we can add AddBrand = 48; } - NewSize = sizeof(SMBIOS_TABLE_TYPE4); + UINTN NewSize = sizeof(SMBIOS_TABLE_TYPE4); ZeroMem((void*)newSmbiosTable.Type4, MAX_TABLE_SIZE); CopyMem((void*)newSmbiosTable.Type4, (void*)SmbiosTable.Type4, Size); //copy main table CopyMem((CHAR8*)newSmbiosTable.Type4+NewSize, (CHAR8*)SmbiosTable.Type4+Size, TableSize - Size); //copy strings newSmbiosTable.Type4->Hdr.Length = (UINT8)NewSize; - newSmbiosTable.Type4->MaxSpeed = (UINT16)gCPUStructure.MaxSpeed; + newSmbiosTable.Type4->MaxSpeed = (UINT16)smbiosSettings.MaxSpeed; //old version has no such fields. Fill now if (Size <= 0x20){ //sanity check and clear @@ -814,102 +827,102 @@ void PatchTableType4() newSmbiosTable.Type4->PartNumber = 0; } if (Size <= 0x23) { //Smbios <=2.3 - newSmbiosTable.Type4->CoreCount = gCPUStructure.Cores; - newSmbiosTable.Type4->ThreadCount = gCPUStructure.Threads; - newSmbiosTable.Type4->ProcessorCharacteristics = (UINT16)gCPUStructure.Features; + newSmbiosTable.Type4->CoreCount = smbiosSettings.Cores; + newSmbiosTable.Type4->ThreadCount = smbiosSettings.Threads; + newSmbiosTable.Type4->ProcessorCharacteristics = (UINT16)smbiosSettings.Features; } //else we propose DMI data is better then cpuid(). // if (newSmbiosTable.Type4->CoreCount < newSmbiosTable.Type4->EnabledCoreCount) { - // newSmbiosTable.Type4->EnabledCoreCount = gCPUStructure.Cores; + // newSmbiosTable.Type4->EnabledCoreCount = smbiosSettings.Cores; // } - //DBG("insert ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); - newSmbiosTable.Type4->ExternalClock = (UINT16)DivU64x32 (gCPUStructure.ExternalClock, Kilo); - newSmbiosTable.Type4->EnabledCoreCount = GlobalConfig.EnabledCores; + //DBG("insert ExternalClock: %d MHz\n", (INT32)(DivU64x32(smbiosSettings.ExternalClock, Kilo))); + newSmbiosTable.Type4->ExternalClock = (UINT16)DivU64x32 (smbiosSettings.ExternalClock, Kilo); + newSmbiosTable.Type4->EnabledCoreCount = smbiosSettings.EnabledCores; //some verifications if ((newSmbiosTable.Type4->ThreadCount < newSmbiosTable.Type4->CoreCount) || newSmbiosTable.Type4->ThreadCount > newSmbiosTable.Type4->CoreCount * 2) { - newSmbiosTable.Type4->ThreadCount = gCPUStructure.Threads; + newSmbiosTable.Type4->ThreadCount = smbiosSettings.Threads; } UniquifySmbiosTableStr(newSmbiosTable, SMBIOS_TABLE_TYPE4_STR_IDX); // TODO: Set SmbiosTable.Type4->ProcessorFamily for all implemented CPU models Once = TRUE; - if (gCPUStructure.Model == CPU_MODEL_ATOM) { + if (smbiosSettings.Model == CPU_MODEL_ATOM) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelAtom; } - if ((gCPUStructure.Model == CPU_MODEL_DOTHAN) || - (gCPUStructure.Model == CPU_MODEL_YONAH)) { - if (gCPUStructure.Mobile) { + if ((smbiosSettings.Model == CPU_MODEL_DOTHAN) || + (smbiosSettings.Model == CPU_MODEL_YONAH)) { + if (smbiosSettings.Mobile) { newSmbiosTable.Type4->ProcessorUpgrade = ProcessorUpgradeSocket478; newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreSoloMobile; - if (gCPUStructure.Cores == 2) { + if (smbiosSettings.Cores == 2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreDuoMobile; } } else { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreSolo; - if (gCPUStructure.Cores == 2) { + if (smbiosSettings.Cores == 2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreDuo; } } } - if (gCPUStructure.Model == CPU_MODEL_MEROM) { - if (gCPUStructure.Mobile) { - if (gCPUStructure.Cores==2) { + if (smbiosSettings.Model == CPU_MODEL_MEROM) { + if (smbiosSettings.Mobile) { + if (smbiosSettings.Cores==2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2DuoMobile; } - if (gCPUStructure.Cores==1) { + if (smbiosSettings.Cores==1) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2SoloMobile; } } else { // Conroe newSmbiosTable.Type4->ProcessorUpgrade = ProcessorUpgradeSocketLGA775; - if (gCPUStructure.Cores>2) { + if (smbiosSettings.Cores>2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Quad; } else - if (gCPUStructure.Cores==2) { + if (smbiosSettings.Cores==2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Extreme; } - if (gCPUStructure.Cores==1) { + if (smbiosSettings.Cores==1) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Solo; } } } - if (gCPUStructure.Model == CPU_MODEL_PENRYN) { - if (gCPUStructure.Mobile) { - if (gCPUStructure.Cores>2) { + if (smbiosSettings.Model == CPU_MODEL_PENRYN) { + if (smbiosSettings.Mobile) { + if (smbiosSettings.Cores>2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2ExtremeMobile; } - if (gCPUStructure.Cores==2) { + if (smbiosSettings.Cores==2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2DuoMobile; } } else { newSmbiosTable.Type4->ProcessorUpgrade = ProcessorUpgradeSocketLGA775; - if (gCPUStructure.Cores>2) { + if (smbiosSettings.Cores>2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Quad; - } else if (gCPUStructure.Cores==2) { + } else if (smbiosSettings.Cores==2) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2; } else { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Solo; } - if (AsciiStrStr(gCPUStructure.BrandString, "Celeron")) { + if ( smbiosSettings.BrandString.contains("Celeron") ) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyDualCoreIntelCeleron; - } else if (AsciiStrStr(gCPUStructure.BrandString, "Extreme")) { + } else if ( smbiosSettings.BrandString.contains("Extreme") ) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2Extreme; } } } - if (gCPUStructure.Model >= CPU_MODEL_NEHALEM) { - if (AsciiStrStr(gCPUStructure.BrandString, "i3")) + if (smbiosSettings.Model >= CPU_MODEL_NEHALEM) { + if ( smbiosSettings.BrandString.contains("i3") ) newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreI3; - if (AsciiStrStr(gCPUStructure.BrandString, "i5")) + if ( smbiosSettings.BrandString.contains("i5") ) newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreI5; - if (AsciiStrStr(gCPUStructure.BrandString, "i7")) + if ( smbiosSettings.BrandString.contains("i7") ) newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCoreI7; } //spec 2.7 page 48 note 3 if ((newSmbiosTable.Type4->ProcessorFamily == ProcessorFamilyIntelCore2) - && gCPUStructure.Mobile) { + && smbiosSettings.Mobile) { newSmbiosTable.Type4->ProcessorFamily = ProcessorFamilyIntelCore2DuoMobile; } @@ -918,40 +931,40 @@ void PatchTableType4() newSmbiosTable.Type4->L2CacheHandle = L2; newSmbiosTable.Type4->L3CacheHandle = L3; newSmbiosTable.Type4->ProcessorType = CentralProcessor; - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorSteppingId = gCPUStructure.Stepping; - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorModel = (gCPUStructure.Model & 0xF); - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorFamily = gCPUStructure.Family; - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorType = gCPUStructure.Type; - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorXModel = gCPUStructure.Extmodel; - newSmbiosTable.Type4->ProcessorId.Signature.ProcessorXFamily = gCPUStructure.Extfamily; - // CopyMem((void*)&newSmbiosTable.Type4->ProcessorId.FeatureFlags, (void*)&gCPUStructure.Features, 4); - // newSmbiosTable.Type4->ProcessorId.FeatureFlags = (PROCESSOR_FEATURE_FLAGS)(UINT32)gCPUStructure.Features; + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorSteppingId = smbiosSettings.Stepping; + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorModel = (smbiosSettings.Model & 0xF); + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorFamily = smbiosSettings.Family; + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorType = smbiosSettings.Type; + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorXModel = smbiosSettings.Extmodel; + newSmbiosTable.Type4->ProcessorId.Signature.ProcessorXFamily = smbiosSettings.Extfamily; + // CopyMem((void*)&newSmbiosTable.Type4->ProcessorId.FeatureFlags, (void*)&smbiosSettings.Features, 4); + // newSmbiosTable.Type4->ProcessorId.FeatureFlags = (PROCESSOR_FEATURE_FLAGS)(UINT32)smbiosSettings.Features; if (Size <= 0x26) { newSmbiosTable.Type4->ProcessorFamily2 = newSmbiosTable.Type4->ProcessorFamily; - ProcChar |= (gCPUStructure.ExtFeatures & CPUID_EXTFEATURE_EM64T)?0x04:0; - ProcChar |= (gCPUStructure.Cores > 1)?0x08:0; - ProcChar |= (gCPUStructure.Cores < gCPUStructure.Threads)?0x10:0; - ProcChar |= (gCPUStructure.ExtFeatures & CPUID_EXTFEATURE_XD)?0x20:0; - ProcChar |= (gCPUStructure.Features & CPUID_FEATURE_VMX)?0x40:0; - ProcChar |= (gCPUStructure.Features & CPUID_FEATURE_EST)?0x80:0; + ProcChar |= (smbiosSettings.ExtFeatures & CPUID_EXTFEATURE_EM64T)?0x04:0; + ProcChar |= (smbiosSettings.Cores > 1)?0x08:0; + ProcChar |= (smbiosSettings.Cores < smbiosSettings.Threads)?0x10:0; + ProcChar |= (smbiosSettings.ExtFeatures & CPUID_EXTFEATURE_XD)?0x20:0; + ProcChar |= (smbiosSettings.Features & CPUID_FEATURE_VMX)?0x40:0; + ProcChar |= (smbiosSettings.Features & CPUID_FEATURE_EST)?0x80:0; newSmbiosTable.Type4->ProcessorCharacteristics = ProcChar; } UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type4->Socket, "U2E1"_XS8); XString8 BrandStr; - BrandStr.takeValueFrom(gCPUStructure.BrandString); + BrandStr.takeValueFrom(smbiosSettings.BrandString); if (AddBrand) { UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type4->ProcessorVersion, BrandStr); } UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type4->AssetTag, BrandStr); //like mac // looks to be MicroCode revision - if(gCPUStructure.MicroCode > 0){ - BrandStr.S8Printf("%llX", gCPUStructure.MicroCode); + if(smbiosSettings.MicroCode > 0){ + BrandStr.S8Printf("%llX", smbiosSettings.MicroCode); UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type4->SerialNumber, BrandStr); } - + #ifdef JIEF_DEBUG DBG("newSmbiosTable.Type4->AssetTag=%d\n", newSmbiosTable.Type4->AssetTag); DBG("newSmbiosTable.Type4->CoreCount=%d\n", newSmbiosTable.Type4->CoreCount); @@ -987,7 +1000,7 @@ DBG("newSmbiosTable.Type4->Voltage=%d\n", *(UINT8*)&newSmbiosTable.Type4->Voltag return; } -void PatchTableType6() +void PatchTableType6(const SmbiosInjectedSettings& smbiosSettings) { UINT8 SizeField = 0; // @@ -996,7 +1009,7 @@ void PatchTableType6() // This table is obsolete accoding to Spec but Apple still using it so // copy existing table if found, no patches will be here // we can have more then 1 module. - for (Index = 0; Index < MAX_RAM_SLOTS; Index++) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; Index++) { SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_MEMORY_MODULE_INFORMATON,Index); if (SmbiosTable.Raw == NULL) { // MsgLog("SMBIOS Table 6 index %d not found\n", Index); @@ -1009,7 +1022,7 @@ void PatchTableType6() mInstalled[Index] = 0; } else mInstalled[Index] = 4096ULL * (1024ULL * 1024ULL); - MsgLog("Table 6 MEMORY_MODULE %llu Installed %llX ", Index, mInstalled[Index]); + MsgLog("Table 6 MEMORY_MODULE %zu Installed %llX ", Index, mInstalled[Index]); if (SizeField >= 0x7D) { mEnabled[Index] = 0; } else @@ -1021,7 +1034,7 @@ void PatchTableType6() return; } -void PatchTableType7() +void PatchTableType7(const SmbiosInjectedSettings& smbiosSettings) { // Cache Information // @@ -1039,7 +1052,7 @@ void PatchTableType7() L3 = 0xFFFF; // L3 Cache // Get Table Type7 and set CPU Caches - for (Index = 0; Index < MAX_CACHE_COUNT; Index++) { + for (size_t Index = 0; Index < MAX_CACHE_COUNT; Index++) { SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_CACHE_INFORMATION, Index); if (SmbiosTable.Raw == NULL) { break; @@ -1075,7 +1088,7 @@ void PatchTableType7() return; } -void PatchTableType9() +void PatchTableType9(const SmbiosInjectedSettings& smbiosSettings) { // // System Slots (Type 9) @@ -1103,41 +1116,41 @@ void PatchTableType9() // real PC -> PCI, real Mac -> PCIe #ifdef JIEF_DEBUG - for (Index = 0; Index <= 15; Index++) { - DBG("SlotDevice[%lld].BusNum = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].BusNum : 0); - DBG("SlotDevice[%lld].DevFuncNum = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].DevFuncNum : 0); - DBG("SlotDevice[%lld].SegmentGroupNum = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].SegmentGroupNum : 0); - DBG("SlotDevice[%lld].SlotID = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].SlotID : 0); - DBG("SlotDevice[%lld].SlotType = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].SlotType : 0); - DBG("SlotDevice[%lld].SlotName = %s\n", Index, gSettings.Smbios.SlotDevices[Index].Valid ? gSettings.Smbios.SlotDevices[Index].SlotName.c_str() : ""); - DBG("SlotDevice[%lld].Valid = %d\n", Index, gSettings.Smbios.SlotDevices[Index].Valid); + for (uint64_t Index = 0; Index <= 15; Index++) { + DBG("SlotDevice[%lld].BusNum = %d\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).BusNum); + DBG("SlotDevice[%lld].DevFuncNum = %d\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).DevFuncNum); + DBG("SlotDevice[%lld].SegmentGroupNum = %d\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).SegmentGroupNum); + DBG("SlotDevice[%lld].SlotID = %hhd\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotID); + DBG("SlotDevice[%lld].SlotType = %d\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotType); + DBG("SlotDevice[%lld].SlotName = %s\n", Index, smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotName.c_str()); + DBG("SlotDevice[%lld].Valid = %d\n", Index, smbiosSettings.SlotDevices.isSlotForIndexValid(Index)); } #endif - for (Index = 0; Index < 15; Index++) { - if (gSettings.Smbios.SlotDevices[Index].Valid) { + for (size_t Index = 0; Index < 15; Index++) { + if (smbiosSettings.SlotDevices.isSlotForIndexValid(Index)) { INTN Dev, Func; ZeroMem((void*)newSmbiosTable.Type9, MAX_TABLE_SIZE); newSmbiosTable.Type9->Hdr.Type = EFI_SMBIOS_TYPE_SYSTEM_SLOTS; newSmbiosTable.Type9->Hdr.Length = sizeof(SMBIOS_TABLE_TYPE9); newSmbiosTable.Type9->Hdr.Handle = (UINT16)(0x0900 + Index); newSmbiosTable.Type9->SlotDesignation = 1; - newSmbiosTable.Type9->SlotType = gSettings.Smbios.SlotDevices[Index].SlotType; + newSmbiosTable.Type9->SlotType = smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotType; newSmbiosTable.Type9->SlotDataBusWidth = SlotDataBusWidth1X; newSmbiosTable.Type9->CurrentUsage = SlotUsageAvailable; newSmbiosTable.Type9->SlotLength = SlotLengthShort; - newSmbiosTable.Type9->SlotID = gSettings.Smbios.SlotDevices[Index].SlotID; + newSmbiosTable.Type9->SlotID = smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotID; newSmbiosTable.Type9->SlotCharacteristics1.Provides33Volts = 1; newSmbiosTable.Type9->SlotCharacteristics2.HotPlugDevicesSupported = 1; // take this from PCI bus for WiFi card - newSmbiosTable.Type9->SegmentGroupNum = gSettings.Smbios.SlotDevices[Index].SegmentGroupNum; - newSmbiosTable.Type9->BusNum = gSettings.Smbios.SlotDevices[Index].BusNum; - newSmbiosTable.Type9->DevFuncNum = gSettings.Smbios.SlotDevices[Index].DevFuncNum; + newSmbiosTable.Type9->SegmentGroupNum = smbiosSettings.SlotDevices.getSlotForIndex(Index).SegmentGroupNum; + newSmbiosTable.Type9->BusNum = smbiosSettings.SlotDevices.getSlotForIndex(Index).BusNum; + newSmbiosTable.Type9->DevFuncNum = smbiosSettings.SlotDevices.getSlotForIndex(Index).DevFuncNum; // - Dev = gSettings.Smbios.SlotDevices[Index].DevFuncNum >> 3; - Func = gSettings.Smbios.SlotDevices[Index].DevFuncNum & 7; + Dev = smbiosSettings.SlotDevices.getSlotForIndex(Index).DevFuncNum >> 3; + Func = smbiosSettings.SlotDevices.getSlotForIndex(Index).DevFuncNum & 7; DBG("insert table 9 for dev %llX:%llX\n", Dev, Func); - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type9->SlotDesignation, gSettings.Smbios.SlotDevices[Index].SlotName); + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type9->SlotDesignation, smbiosSettings.SlotDevices.getSlotForIndex(Index).SlotName); LogSmbiosTable(newSmbiosTable); } } @@ -1145,7 +1158,7 @@ void PatchTableType9() return; } -void PatchTableType11() +void PatchTableType11(const SmbiosInjectedSettings& smbiosSettings) { // CHAR8 *OEMString = "Apple inc. uses Clover"; //something else here? // System Information @@ -1166,17 +1179,17 @@ void PatchTableType11() // ZeroMem(OEMString, MAX_OEM_STRING); // AsciiStrCatS(OEMString, MAX_OEM_STRING, "Apple ROM Version.\n"); // //AsciiStrCatS(OEMString, MAX_OEM_STRING, " BIOS ID:"); -// //AsciiStrnCatS(OEMString, MAX_OEM_STRING, gSettings.Smbios.RomVersion, iStrLen(gSettings.Smbios.RomVersion, 64)); +// //AsciiStrnCatS(OEMString, MAX_OEM_STRING, smbiosSettings.RomVersion, iStrLen(smbiosSettings.RomVersion, 64)); // // AsciiStrCatS(OEMString, MAX_OEM_STRING, "\n EFI Version:"); -// // AsciiStrnCatS(OEMString, MAX_OEM_STRING, gSettings.Smbios.EfiVersion, iStrLen(gSettings.Smbios.EfiVersion, 64)); +// // AsciiStrnCatS(OEMString, MAX_OEM_STRING, smbiosSettings.EfiVersion, iStrLen(smbiosSettings.EfiVersion, 64)); // AsciiStrCatS(OEMString, MAX_OEM_STRING, " Board-ID : "); -// AsciiStrnCatS(OEMString, MAX_OEM_STRING, gSettings.Smbios.BoardNumber, iStrLen(gSettings.Smbios.BoardNumber, 64)); +// AsciiStrnCatS(OEMString, MAX_OEM_STRING, smbiosSettings.BoardNumber, iStrLen(smbiosSettings.BoardNumber, 64)); // snprintf(TempRev, MAX_OEM_STRING, "\n⌘ Powered by %s\n", gRevisionStr); // AsciiStrCatS(OEMString, MAX_OEM_STRING, TempRev); #ifdef JIEF_DEBUG XString8 OEMString = S8Printf("⌘ Powered by %s\n", gBuildId.c_str()); #else - XString8 OEMString = S8Printf("Apple ROM Version.\nBoard-ID : %s\n⌘ Powered by %s\n", gSettings.Smbios.BoardNumber.c_str(), gRevisionStr); + XString8 OEMString = S8Printf("Apple ROM Version.\nBoard-ID : %s\n⌘ Powered by %s\n", smbiosSettings.BoardNumber.c_str(), gRevisionStr); #endif UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type11->StringCount, OEMString); @@ -1191,7 +1204,7 @@ const UINT8 tableTypes[] = {8, 10, 13, 18, 21, 22, 27, 28, 32, 33, 41, 129, 217, void PatchTableTypeSome() { for (UINTN IndexType = 0; IndexType < sizeof(tableTypes); IndexType++) { - for (Index = 0; Index < 32; Index++) { + for (size_t Index = 0; Index < 32; Index++) { SmbiosTable = GetSmbiosTableFromType(EntryPoint, tableTypes[IndexType], Index); if (SmbiosTable.Raw == NULL) { continue; @@ -1202,31 +1215,37 @@ void PatchTableTypeSome() return; } -void GetTableType16() +void GetTableType16(SmbiosDiscoveredSettings* smbiosSettings) { // Physical Memory Array // mTotalSystemMemory = 0; //later we will add to the value, here initialize it - TotalCount = 0; - for (Index = 0; Index < 8; Index++) { //how many tables there may be? + smbiosSettings->RamSlotCount = 0; + for (size_t Index = 0; Index < 8; Index++) { //how many tables there may be? SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_PHYSICAL_MEMORY_ARRAY, Index); if (SmbiosTable.Raw == NULL) { // DBG("SmbiosTable: Type 16 (Physical Memory Array) not found!\n"); continue; } - DBG("Type 16 Index = %llu\n", Index); - TotalCount += SmbiosTable.Type16->NumberOfMemoryDevices; + DBG("Type 16 Index = %zu\n", Index); + smbiosSettings->RamSlotCount += SmbiosTable.Type16->NumberOfMemoryDevices; } - if (!TotalCount) { - TotalCount = MAX_RAM_SLOTS; + if ( smbiosSettings->RamSlotCount == 0 ) { + DBG("Total Memory Slots Count is adjusted from 0 to %d\n", MAX_RAM_SLOTS); + smbiosSettings->RamSlotCount = MAX_RAM_SLOTS; + }else{ + //Jief_Machak: VMWare report 64 memory slots !!! MAX_RAM_SLOTS is currently 24. Crash is PatchTable17. + if ( smbiosSettings->RamSlotCount > MAX_RAM_SLOTS ) { + DBG("Total Memory Slots Count is adjusted from %d to %d\n", smbiosSettings->RamSlotCount, MAX_RAM_SLOTS); + smbiosSettings->RamSlotCount = MAX_RAM_SLOTS; + }else{ + DBG("Total Memory Slots Count = %d\n", smbiosSettings->RamSlotCount); + } } - //Jief_Machak: VMWare report 64 memory slots !!! MAX_RAM_SLOTS is currently 24. Crash is PatchTable17. - if ( TotalCount > MAX_RAM_SLOTS ) TotalCount = MAX_RAM_SLOTS; - DBG("Total Memory Slots Count = %d\n", TotalCount); } -void PatchTableType16() +void PatchTableType16(const SmbiosInjectedSettings& smbiosSettings) { // Physical Memory Array // @@ -1247,27 +1266,26 @@ void PatchTableType16() // newSmbiosTable.Type16->MemoryErrorCorrection = MemoryErrorCorrectionMultiBitEcc; // MemoryErrorInformationHandle newSmbiosTable.Type16->MemoryErrorInformationHandle = 0xFFFF; - newSmbiosTable.Type16->NumberOfMemoryDevices = gRAMCount; - DBG("NumberOfMemoryDevices = %d\n", gRAMCount); + newSmbiosTable.Type16->NumberOfMemoryDevices = MIN(smbiosSettings.RamSlotCount, MAX_RAM_SLOTS); + DBG("NumberOfMemoryDevices = %d\n", MIN(smbiosSettings.RamSlotCount, MAX_RAM_SLOTS)); LogSmbiosTable(newSmbiosTable); } -void GetTableType17() +void GetTableType17(SmbiosDiscoveredSettings* smbiosSettings) { // Memory Device // BOOLEAN Found; // Get Table Type17 and count Size - gRAMCount = 0; - for (Index = 0; Index < TotalCount; Index++) { //how many tables there may be? + for (size_t Index = 0; Index < smbiosSettings->RamSlotCount; Index++) { //how many tables there may be? SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_MEMORY_DEVICE, Index); if (SmbiosTable.Raw == NULL) { // DBG("SmbiosTable: Type 17 (Memory Device number %d) not found!\n", Index); continue; } #ifndef JIEF_DEBUG // it's all 0 in VMWare - DBG("Type 17 Index = %llu\n", Index); + DBG("Type 17 Index = %zu\n", Index); #endif //gDMI->CntMemorySlots++; if (SmbiosTable.Type17->MemoryErrorInformationHandle < 0xFFFE) { @@ -1365,7 +1383,7 @@ void GetTableType17() } } -void PatchTableType17() +void PatchTableType17(const SmbiosInjectedSettings& smbiosSettings) { XString8 deviceLocator; XString8 bankLocator; @@ -1373,65 +1391,68 @@ void PatchTableType17() UINT8 expectedCount = 0; UINT8 channels = 2; BOOLEAN insertingEmpty = TRUE; - BOOLEAN trustSMBIOS = ((gRAM.SPDInUse == 0) || gSettings.Smbios.TrustSMBIOS); + BOOLEAN trustSMBIOS = ((gRAM.SPDInUse == 0) || smbiosSettings.TrustSMBIOS); BOOLEAN wrongSMBIOSBanks = FALSE; BOOLEAN isMacPro = FALSE; - MACHINE_TYPES Model = GetModelFromString(gSettings.Smbios.ProductName); + MACHINE_TYPES Model = GetModelFromString(smbiosSettings.ProductName); if ((Model == MacPro31) || (Model == MacPro41) || (Model == MacPro51) || (Model == MacPro61)) { isMacPro = TRUE; } // Inject user memory tables - if (gSettings.Smbios.InjectMemoryTables) { + if (smbiosSettings.InjectMemoryTables) + { DBG("Injecting user memory modules to SMBIOS\n"); - if (gSettings.Smbios.Memory.SlotCounts == 0) { + if (smbiosSettings.Memory.SlotCounts == 0) { DBG("User SMBIOS contains no memory modules\n"); return; } // Check channels - if ((gSettings.Smbios.Memory.UserChannels == 0) || (gSettings.Smbios.Memory.UserChannels > 8)) { - gSettings.Smbios.Memory.UserChannels = 1; + auto UserChannels = smbiosSettings.Memory.UserChannels; + if ( UserChannels == 0 || UserChannels > 8 ) { + UserChannels = 1; } - if (gSettings.Smbios.Memory.SlotCounts >= MAX_RAM_SLOTS) { - gSettings.Smbios.Memory.SlotCounts = MAX_RAM_SLOTS; + auto SlotCounts = smbiosSettings.Memory.SlotCounts; + if ( SlotCounts >= MAX_RAM_SLOTS ) { + SlotCounts = MAX_RAM_SLOTS; } - DBG("Channels: %d\n", gSettings.Smbios.Memory.UserChannels); + DBG("Channels: %d\n", UserChannels); // Setup interleaved channel map if (channels >= 2) { - UINT8 doubleChannels = (UINT8)gSettings.Smbios.Memory.UserChannels << 1; - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + UINT8 doubleChannels = (UINT8)UserChannels << 1; + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { channelMap[Index] = (UINT8)(((Index / doubleChannels) * doubleChannels) + - ((Index / gSettings.Smbios.Memory.UserChannels) % 2) + ((Index % gSettings.Smbios.Memory.UserChannels) << 1)); + ((Index / UserChannels) % 2) + ((Index % UserChannels) << 1)); } } else { - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { channelMap[Index] = (UINT8)Index; } } DBG("Interleave:"); - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { DBG(" %d", channelMap[Index]); } DBG("\n"); // Memory Device // - gRAMCount = 0; // Inject tables #ifdef JIEF_DEBUG -DBG("gSettings.Smbios.Memory.SlotCounts=%d\n", gSettings.Smbios.Memory.SlotCounts); -DBG("gSettings.Smbios.Memory.UserChannels=%d\n", gSettings.Smbios.Memory.UserChannels); -for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { - DBG("gSettings.Smbios.Memory.User[%lld].Frequency=%d\n", Index, gSettings.Smbios.Memory.User[Index].Frequency); - DBG("gSettings.Smbios.Memory.User[%lld].InUse=%d\n", Index, gSettings.Smbios.Memory.User[Index].InUse); - DBG("gSettings.Smbios.Memory.User[%lld].ModuleSize=%d\n", Index, gSettings.Smbios.Memory.User[Index].ModuleSize); - DBG("gSettings.Smbios.Memory.User[%lld].PartNo=%s\n", Index, gSettings.Smbios.Memory.User[Index].PartNo.c_str()); - DBG("gSettings.Smbios.Memory.User[%lld].SerialNo=%s\n", Index, gSettings.Smbios.Memory.User[Index].SerialNo.c_str()); - DBG("gSettings.Smbios.Memory.User[%lld].Type=%d\n", Index, gSettings.Smbios.Memory.User[Index].Type); - DBG("gSettings.Smbios.Memory.User[%lld].Vendor=%s\n", Index, gSettings.Smbios.Memory.User[Index].Vendor.c_str()); +DBG("gSettings.Smbios.Memory.SlotCounts=%d\n", smbiosSettings.Memory.SlotCounts); +DBG("gSettings.Smbios.Memory.UserChannels=%d\n", smbiosSettings.Memory.UserChannels); +for (uint64_t Index = 0; Index < smbiosSettings.Memory.SlotCounts; Index++) { + DBG("gSettings.Smbios.Memory.User[%lld].Frequency=%d\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).Frequency); + DBG("gSettings.Smbios.Memory.User[%lld].InUse=%d\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).InUse); + DBG("gSettings.Smbios.Memory.User[%lld].ModuleSize=%d\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).ModuleSize); + DBG("gSettings.Smbios.Memory.User[%lld].PartNo=%s\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).PartNo.c_str()); + DBG("gSettings.Smbios.Memory.User[%lld].SerialNo=%s\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).SerialNo.c_str()); + DBG("gSettings.Smbios.Memory.User[%lld].Type=%d\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).Type); + DBG("gSettings.Smbios.Memory.User[%lld].Vendor=%s\n", Index, smbiosSettings.Memory.getSlotInfoForSlotID(Index).Vendor.c_str()); } #endif - for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { + + for (size_t Index = 0; Index < SlotCounts; Index++) { UINTN UserIndex = channelMap[Index]; - UINT8 bank = (UINT8)(Index / gSettings.Smbios.Memory.UserChannels); + UINT8 bank = (UINT8)(Index / UserChannels); ZeroMem((void*)newSmbiosTable.Type17, MAX_TABLE_SIZE); newSmbiosTable.Type17->Hdr.Type = EFI_SMBIOS_TYPE_MEMORY_DEVICE; newSmbiosTable.Type17->Hdr.Length = sizeof(SMBIOS_TABLE_TYPE17); @@ -1443,45 +1464,45 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { newSmbiosTable.Type17->DeviceSet = bank + 1; newSmbiosTable.Type17->MemoryArrayHandle = mHandle16; if (isMacPro) { - deviceLocator.S8Printf("DIMM%d", gRAMCount + 1); + deviceLocator.S8Printf("DIMM%zd", Index + 1); } else { deviceLocator.S8Printf("DIMM%d", bank); - bankLocator.S8Printf("BANK %llu", Index % channels); + bankLocator.S8Printf("BANK %zu", Index % channels); UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->BankLocator, bankLocator); } UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->DeviceLocator, deviceLocator); - if ((gSettings.Smbios.Memory.User[UserIndex].InUse) && (gSettings.Smbios.Memory.User[UserIndex].ModuleSize > 0)) { + if ((smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).InUse) && (smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).ModuleSize > 0)) { DBG("user SMBIOS data:\n"); - DBG("SmbiosTable.Type17->Vendor = %s\n", gSettings.Smbios.Memory.User[UserIndex].Vendor.c_str()); - DBG("SmbiosTable.Type17->SerialNumber = %s\n", gSettings.Smbios.Memory.User[UserIndex].SerialNo.c_str()); - DBG("SmbiosTable.Type17->PartNumber = %s\n", gSettings.Smbios.Memory.User[UserIndex].PartNo.c_str()); + DBG("SmbiosTable.Type17->Vendor = %s\n", smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).Vendor.c_str()); + DBG("SmbiosTable.Type17->SerialNumber = %s\n", smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).SerialNo.c_str()); + DBG("SmbiosTable.Type17->PartNumber = %s\n", smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).PartNo.c_str()); - if (gSettings.Smbios.Memory.User[UserIndex].Vendor.notEmpty()) { - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->Manufacturer, gSettings.Smbios.Memory.User[UserIndex].Vendor); + if (smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).Vendor.notEmpty()) { + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->Manufacturer, smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).Vendor); } else { UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->Manufacturer, unknown); } - if (gSettings.Smbios.Memory.User[UserIndex].SerialNo.notEmpty()) { - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->SerialNumber, gSettings.Smbios.Memory.User[UserIndex].SerialNo); + if (smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).SerialNo.notEmpty()) { + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->SerialNumber, smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).SerialNo); } else { UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->SerialNumber, unknown); } - if (gSettings.Smbios.Memory.User[UserIndex].PartNo.notEmpty()) { - UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->PartNumber, gSettings.Smbios.Memory.User[UserIndex].PartNo); + if (smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).PartNo.notEmpty()) { + UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->PartNumber, smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).PartNo); } else { UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->PartNumber, unknown); } - newSmbiosTable.Type17->Speed = (UINT16)gSettings.Smbios.Memory.User[UserIndex].Frequency; - if (gSettings.Smbios.Memory.User[UserIndex].ModuleSize > 0x7FFF) { + newSmbiosTable.Type17->Speed = (UINT16)smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).Frequency; + if (smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).ModuleSize > 0x7FFF) { newSmbiosTable.Type17->Size = 0x7FFF; - newSmbiosTable.Type17->ExtendedSize = gSettings.Smbios.Memory.User[UserIndex].ModuleSize; + newSmbiosTable.Type17->ExtendedSize = smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).ModuleSize; mTotalSystemMemory += newSmbiosTable.Type17->ExtendedSize; //Mb } else { - newSmbiosTable.Type17->Size = (UINT16)gSettings.Smbios.Memory.User[UserIndex].ModuleSize; + newSmbiosTable.Type17->Size = (UINT16)smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).ModuleSize; mTotalSystemMemory += newSmbiosTable.Type17->Size; //Mb } - newSmbiosTable.Type17->MemoryType = gSettings.Smbios.Memory.User[UserIndex].Type; + newSmbiosTable.Type17->MemoryType = smbiosSettings.Memory.getSlotInfoForSlotID(UserIndex).Type; if ((newSmbiosTable.Type17->MemoryType != MemoryTypeDdr2) && (newSmbiosTable.Type17->MemoryType != MemoryTypeDdr4) && (newSmbiosTable.Type17->MemoryType != MemoryTypeDdr)) { @@ -1489,13 +1510,13 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { } DBG("%s %s %dMHz %dMB(Ext:%dMB)\n", bankLocator.c_str(), deviceLocator.c_str(), newSmbiosTable.Type17->Speed, newSmbiosTable.Type17->Size, newSmbiosTable.Type17->ExtendedSize); - mMemory17[gRAMCount] = (UINT16)mTotalSystemMemory; + mMemory17[Index] = (UINT16)mTotalSystemMemory; // DBG("mTotalSystemMemory = %d\n", mTotalSystemMemory); } else { DBG("%s %s EMPTY\n", bankLocator.c_str(), deviceLocator.c_str()); } newSmbiosTable.Type17->MemoryErrorInformationHandle = 0xFFFF; - mHandle17[gRAMCount++] = LogSmbiosTable(newSmbiosTable); + mHandle17[Index] = LogSmbiosTable(newSmbiosTable); } if (mTotalSystemMemory > 0) { DBG("mTotalSystemMemory = %d\n", mTotalSystemMemory); @@ -1553,16 +1574,20 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { DBG("Trusting SMBIOS...\n"); } // Determine expected slot count - expectedCount = (gSettings.Smbios.Memory.SlotCounts != 0) ? gSettings.Smbios.Memory.SlotCounts : gRAM.SPDInUse; + expectedCount = (smbiosSettings.Memory.SlotCounts != 0) ? smbiosSettings.Memory.SlotCounts : gRAM.SPDInUse; if (trustSMBIOS) { // Use the smbios in use count if (expectedCount < gRAM.SMBIOSInUse) { expectedCount = gRAM.SMBIOSInUse; } // Check if smbios has a good total count - if ((!gMobile || (TotalCount == 2)) && - (expectedCount < TotalCount)) { - expectedCount = (UINT8)TotalCount; + if ( (!gMobile || smbiosSettings.RamSlotCount == 2) && expectedCount < smbiosSettings.RamSlotCount ) { + if ( smbiosSettings.RamSlotCount > MAX_UINT8 ) { + log_technical_bug("smbiosSettings.RamSlotCount > MAX_UINT8"); + expectedCount = MAX_RAM_SLOTS; + }else{ + expectedCount = (UINT8)smbiosSettings.RamSlotCount; + } } } else { // Use default value of two for mobile or four for desktop @@ -1583,8 +1608,8 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { DBG("Detected alternating SMBIOS channel banks\n"); } // Determine if using triple or quadruple channel - if (gSettings.Smbios.Memory.UserChannels != 0) { - channels = gSettings.Smbios.Memory.UserChannels; + if (smbiosSettings.Memory.UserChannels != 0) { + channels = smbiosSettings.Memory.UserChannels; } else if (gRAM.SPDInUse == 0) { if (trustSMBIOS) { if ((gRAM.SMBIOSInUse % 4) == 0) { @@ -1654,28 +1679,27 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { // Setup interleaved channel map if (channels >= 2) { UINT8 doubleChannels = (UINT8)channels << 1; - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { channelMap[Index] = (UINT8)(((Index / doubleChannels) * doubleChannels) + ((Index / channels) % 2) + ((Index % channels) << 1)); } } else { - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { channelMap[Index] = (UINT8)Index; } } DBG("Interleave:"); - for (Index = 0; Index < MAX_RAM_SLOTS; ++Index) { + for (size_t Index = 0; Index < MAX_RAM_SLOTS; ++Index) { DBG(" %d", channelMap[Index]); } DBG("\n"); // Memory Device // - gRAMCount = 0; - for (Index = 0; Index < TotalCount; Index++) { + for (size_t Index = 0; Index < smbiosSettings.RamSlotCount; Index++) { UINTN SMBIOSIndex = wrongSMBIOSBanks ? Index : channelMap[Index]; UINTN SPDIndex = channelMap[Index]; UINT8 bank = (UINT8)Index / channels; - if (!insertingEmpty && (gRAMCount > expectedCount) && + if (!insertingEmpty && (Index > expectedCount) && !gRAM.SPD[SPDIndex].InUse && (!trustSMBIOS || !gRAM.SMBIOS[SMBIOSIndex].InUse)) { continue; } @@ -1787,11 +1811,11 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { //now I want to update deviceLocator and bankLocator if (isMacPro) { - deviceLocator.S8Printf("DIMM%d", gRAMCount + 1); + deviceLocator.S8Printf("DIMM%zd", Index + 1); bankLocator.setEmpty(); } else { deviceLocator.S8Printf("DIMM%d", bank); - bankLocator.S8Printf("BANK %llu", Index % channels); + bankLocator.S8Printf("BANK %zu", Index % channels); } UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->DeviceLocator, deviceLocator); if (isMacPro) { @@ -1799,7 +1823,7 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { } else { UpdateSmbiosString(newSmbiosTable, &newSmbiosTable.Type17->BankLocator, bankLocator); } - DBG("SMBIOS Type 17 Index = %d => %llu %llu:\n", gRAMCount, SMBIOSIndex, SPDIndex); + DBG("SMBIOS Type 17 Index = %zd => %llu %llu:\n", Index, SMBIOSIndex, SPDIndex); if (newSmbiosTable.Type17->Size == 0) { DBG("%s %s EMPTY\n", bankLocator.c_str(), deviceLocator.c_str()); newSmbiosTable.Type17->MemoryType = 0; //MemoryTypeUnknown; @@ -1812,14 +1836,14 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { } else { mTotalSystemMemory += newSmbiosTable.Type17->Size; //Mb } - mMemory17[gRAMCount] = (UINT16)mTotalSystemMemory; + mMemory17[Index] = (UINT16)mTotalSystemMemory; // DBG("mTotalSystemMemory = %d\n", mTotalSystemMemory); } newSmbiosTable.Type17->MemoryErrorInformationHandle = 0xFFFF; - if (gSettings.Smbios.Attribute != -1) { - newSmbiosTable.Type17->Attributes = gSettings.Smbios.Attribute; + if (smbiosSettings.Attribute != -1) { + newSmbiosTable.Type17->Attributes = smbiosSettings.Attribute; } - mHandle17[gRAMCount++] = LogSmbiosTable(newSmbiosTable); + mHandle17[Index] = LogSmbiosTable(newSmbiosTable); } if (mTotalSystemMemory > 0) { DBG("mTotalSystemMemory = %d\n", mTotalSystemMemory); @@ -1827,7 +1851,7 @@ for (Index = 0; Index < gSettings.Smbios.Memory.SlotCounts; Index++) { } void -PatchTableType19 () +PatchTableType19 (const SmbiosInjectedSettings& smbiosSettings) { // // Generate Memory Array Mapped Address info (TYPE 19) @@ -1849,7 +1873,7 @@ PatchTableType19 () UINT32 TotalEnd = 0; UINT8 PartWidth = 1; UINT16 SomeHandle = 0x1300; //as a common rule handle=(type<<8 + index) - for (Index = 0; Index < TotalCount; Index++) { + for (size_t Index = 0; Index < smbiosSettings.RamSlotCount; Index++) { SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_MEMORY_ARRAY_MAPPED_ADDRESS, Index); if (SmbiosTable.Raw == NULL) { continue; @@ -1876,14 +1900,14 @@ PatchTableType19 () return ; } -void PatchTableType20 () +void PatchTableType20 (const SmbiosInjectedSettings& smbiosSettings) { UINTN j = 0, k = 0, m = 0; // // Generate Memory Array Mapped Address info (TYPE 20) // not needed neither for Apple nor for EFI m = 0; - for (Index = 0; Index < TotalCount; Index++) { + for (size_t Index = 0; Index < smbiosSettings.RamSlotCount; Index++) { SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_MEMORY_DEVICE_MAPPED_ADDRESS, Index); if (SmbiosTable.Raw == NULL) { return ; @@ -1891,13 +1915,13 @@ void PatchTableType20 () TableSize = SmbiosTableLength(SmbiosTable); ZeroMem((void*)newSmbiosTable.Type20, MAX_TABLE_SIZE); CopyMem((void*)newSmbiosTable.Type20, (void*)SmbiosTable.Type20, TableSize); - for (j=0; j < TotalCount; j++) { + for (j=0; j < smbiosSettings.RamSlotCount; j++) { //EndingAddress in kb while mMemory in Mb if ((UINT32)(mMemory17[j] << 10) > newSmbiosTable.Type20->EndingAddress) { newSmbiosTable.Type20->MemoryDeviceHandle = mHandle17[j]; k = newSmbiosTable.Type20->EndingAddress; m += mMemory17[j]; - DBG("Type20[%llu]->End = 0x%llX, Type17[%llu] = %llX\n", + DBG("Type20[%zu]->End = 0x%llX, Type17[%llu] = %llX\n", Index, k, j, m); // DBG(" MemoryDeviceHandle = 0x%X\n", newSmbiosTable.Type20->MemoryDeviceHandle); mMemory17[j] = 0; // used @@ -1915,7 +1939,7 @@ void PatchTableType20 () return ; } -void GetTableType32() +void GetTableType32(SmbiosDiscoveredSettings* smbiosSettings) { SmbiosTable = GetSmbiosTableFromType (EntryPoint, EFI_SMBIOS_TYPE_SYSTEM_BOOT_INFORMATION, 0); if (SmbiosTable.Raw == NULL) { @@ -1928,7 +1952,7 @@ void GetTableType32() * Apple Specific Structures. * Firmware Table, FirmwareVolume (TYPE 128). */ -void PatchTableType128() +void PatchTableType128(const SmbiosInjectedSettings& smbiosSettings) { /** * Useful information. @@ -1954,9 +1978,9 @@ void PatchTableType128() newSmbiosTable.Type128->Hdr.Handle = 0x8000; // set firmware-features, example: 0x80001417, imac11,2 -> 0x1403. - newSmbiosTable.Type128->FirmwareFeatures = gSettings.Smbios.gFwFeatures; + newSmbiosTable.Type128->FirmwareFeatures = smbiosSettings.FirmwareFeatures; // set firmware-features mask - newSmbiosTable.Type128->FirmwareFeaturesMask = gSettings.Smbios.gFwFeaturesMask; + newSmbiosTable.Type128->FirmwareFeaturesMask = smbiosSettings.FirmwareFeaturesMask; /** * TODO: I have an idea that region should be the same as Efivar.bin @@ -1979,7 +2003,7 @@ void PatchTableType128() return ; } -void PatchTableType130() +void PatchTableType130(const SmbiosInjectedSettings& smbiosSettings) { // // MemorySPD (TYPE 130) @@ -1998,13 +2022,13 @@ void PatchTableType130() -void PatchTableType131() +void PatchTableType131(const SmbiosInjectedSettings& smbiosSettings) { // Get Table Type131 SmbiosTable = GetSmbiosTableFromType (EntryPoint, 131, 0); if (SmbiosTable.Raw != NULL) { MsgLog("Table 131 is present, CPUType=%hX\n", SmbiosTable.Type131->ProcessorType.Type); - MsgLog("Change to: %hX\n", gSettings.CPU.CpuType); + MsgLog("Change to: %hX\n", smbiosSettings.CpuType); } ZeroMem((void*)newSmbiosTable.Type131, MAX_TABLE_SIZE); @@ -2012,14 +2036,14 @@ void PatchTableType131() newSmbiosTable.Type131->Hdr.Length = sizeof(SMBIOS_STRUCTURE)+2; newSmbiosTable.Type131->Hdr.Handle = 0x8300; //common rule // Patch ProcessorType - newSmbiosTable.Type131->ProcessorType.Type = gSettings.CPU.CpuType; + newSmbiosTable.Type131->ProcessorType.Type = smbiosSettings.CpuType; Handle = LogSmbiosTable(newSmbiosTable); return; } -void PatchTableType132() +void PatchTableType132(const SmbiosInjectedSettings& smbiosSettings) { - if (!GlobalConfig.SetTable132) { + if (!smbiosSettings.SetTable132) { //DBG("disabled Table 132\n"); return; } @@ -2028,7 +2052,7 @@ void PatchTableType132() SmbiosTable = GetSmbiosTableFromType (EntryPoint, 132, 0); if (SmbiosTable.Raw != NULL) { MsgLog("Table 132 is present, QPI=%hX\n", SmbiosTable.Type132->ProcessorBusSpeed); - MsgLog("Change to: %hX\n", gSettings.CPU.QPI); + MsgLog("Change to: %hX\n", smbiosSettings.QPI); } ZeroMem((void*)newSmbiosTable.Type132, MAX_TABLE_SIZE); @@ -2037,38 +2061,38 @@ void PatchTableType132() newSmbiosTable.Type132->Hdr.Handle = 0x8400; //ugly // Patch ProcessorBusSpeed - if(gSettings.CPU.QPI){ - newSmbiosTable.Type132->ProcessorBusSpeed = gSettings.CPU.QPI; + if(smbiosSettings.QPI){ + newSmbiosTable.Type132->ProcessorBusSpeed = smbiosSettings.QPI; } else { - newSmbiosTable.Type132->ProcessorBusSpeed = (UINT16)(LShiftU64(DivU64x32(gCPUStructure.ExternalClock, Kilo), 2)); + newSmbiosTable.Type132->ProcessorBusSpeed = (UINT16)(LShiftU64(DivU64x32(smbiosSettings.ExternalClock, Kilo), 2)); } Handle = LogSmbiosTable(newSmbiosTable); return; } -void PatchTableType133() +void PatchTableType133(const SmbiosInjectedSettings& smbiosSettings) { - if (gSettings.Smbios.gPlatformFeature == 0xFFFF) { + if (smbiosSettings.gPlatformFeature == 0xFFFF) { return; } // Get Table Type133 SmbiosTable = GetSmbiosTableFromType (EntryPoint, 133, 0); if (SmbiosTable.Raw != NULL) { MsgLog("Table 133 is present, PlatformFeature=%llX\n", SmbiosTable.Type133->PlatformFeature); - MsgLog("Change to: %llX\n", gSettings.Smbios.gPlatformFeature); + MsgLog("Change to: %llX\n", smbiosSettings.gPlatformFeature); } ZeroMem((void*)newSmbiosTable.Type133, MAX_TABLE_SIZE); newSmbiosTable.Type133->Hdr.Type = 133; newSmbiosTable.Type133->Hdr.Length = sizeof(SMBIOS_STRUCTURE)+8; newSmbiosTable.Type133->Hdr.Handle = 0x8500; //ugly - // newSmbiosTable.Type133->PlatformFeature = gSettings.Smbios.gPlatformFeature; - CopyMem((void*)&newSmbiosTable.Type133->PlatformFeature, (void*)&gSettings.Smbios.gPlatformFeature, 8); + // newSmbiosTable.Type133->PlatformFeature = smbiosSettings.gPlatformFeature; + CopyMem((void*)&newSmbiosTable.Type133->PlatformFeature, (void*)&smbiosSettings.gPlatformFeature, 8); Handle = LogSmbiosTable(newSmbiosTable); return; } -EFI_STATUS PrepatchSmbios() +EFI_STATUS PrepatchSmbios(SmbiosDiscoveredSettings* smbiosSettings) { EFI_STATUS Status = EFI_SUCCESS; UINTN BufferLen; @@ -2131,9 +2155,9 @@ EFI_STATUS PrepatchSmbios() Current = (UINT8*)Smbios; //begin fill tables from here SmbiosEpsNew->TableAddress = (UINT32)(UINTN)Current; SmbiosEpsNew->EntryPointLength = sizeof(SMBIOS_TABLE_ENTRY_POINT); // no matter on other versions - if (gSettings.Smbios.SmbiosVersion != 0) { - SmbiosEpsNew->MajorVersion = (UINT8)(gSettings.Smbios.SmbiosVersion >> 8); - SmbiosEpsNew->MinorVersion = (UINT8)(gSettings.Smbios.SmbiosVersion & 0xFF); + if (smbiosSettings->SmbiosVersion != 0) { + SmbiosEpsNew->MajorVersion = (UINT8)(smbiosSettings->SmbiosVersion >> 8); + SmbiosEpsNew->MinorVersion = (UINT8)(smbiosSettings->SmbiosVersion & 0xFF); SmbiosEpsNew->SmbiosBcdRevision = (SmbiosEpsNew->MajorVersion << 4) + SmbiosEpsNew->MinorVersion; } else { @@ -2143,51 +2167,47 @@ EFI_STATUS PrepatchSmbios() SmbiosEpsNew->SmbiosBcdRevision = 0x24; //Slice - we want to have v2.6 but Apple still uses 2.4, let it be default value } - //Create space for SPD - //gRAM = (__typeof__(gRAM))AllocateZeroPool(sizeof(MEM_STRUCTURE)); - //gDMI = (__typeof__(gDMI))AllocateZeroPool(sizeof(DMI)); - //Collect information for use in menu - GetTableType1(); - GetTableType2(); - GetTableType3(); - GetTableType4(); - GetTableType16(); - GetTableType17(); - GetTableType32(); //get BootStatus here to decide what to do + GetTableType1(smbiosSettings); + GetTableType2(smbiosSettings); + GetTableType3(smbiosSettings); + GetTableType4(smbiosSettings); + GetTableType16(smbiosSettings); + GetTableType17(smbiosSettings); + GetTableType32(smbiosSettings); //get BootStatus here to decide what to do MsgLog("Boot status=%hhX\n", gBootStatus); //for example the bootloader may go to Recovery is BootStatus is Fail return Status; } -void PatchSmbios(void) //continue +void PatchSmbios(const SmbiosInjectedSettings& smbiosSettings) //continue { DbgHeader("PatchSmbios"); newSmbiosTable.Raw = (UINT8*)AllocateZeroPool(MAX_TABLE_SIZE); //Slice - order of patching is significant - PatchTableType0(); - PatchTableType1(); - PatchTableType2(); - PatchTableType3(); - PatchTableType7(); //we should know handles before patch Table4 - PatchTableType4(); - // PatchTableType6(); - PatchTableType9(); - if (!gSettings.Smbios.NoRomInfo) { - PatchTableType11(); + PatchTableType0(smbiosSettings); + PatchTableType1(smbiosSettings); + PatchTableType2(smbiosSettings); + PatchTableType3(smbiosSettings); + PatchTableType7(smbiosSettings); //we should know handles before patch Table4 + PatchTableType4(smbiosSettings); + // PatchTableType6(smbiosSettings); + PatchTableType9(smbiosSettings); + if (!smbiosSettings.NoRomInfo) { + PatchTableType11(smbiosSettings); } PatchTableTypeSome(); - PatchTableType17(); - PatchTableType16(); - PatchTableType19(); - PatchTableType20(); - PatchTableType128(); - PatchTableType130(); - PatchTableType131(); - PatchTableType132(); - PatchTableType133(); + PatchTableType17(smbiosSettings); + PatchTableType16(smbiosSettings); + PatchTableType19(smbiosSettings); + PatchTableType20(smbiosSettings); + PatchTableType128(smbiosSettings); + PatchTableType130(smbiosSettings); + PatchTableType131(smbiosSettings); + PatchTableType132(smbiosSettings); + PatchTableType133(smbiosSettings); AddSmbiosEndOfTable(); if(MaxStructureSize > MAX_TABLE_SIZE){ // DBG("Too long SMBIOS!\n"); @@ -2198,7 +2218,7 @@ void PatchSmbios(void) //continue // neither by specs nor by AppleSmbios.kext } -void FinalizeSmbios() //continue +void FinalizeSmbios(const SmbiosInjectedSettings& smbiosSettings) //continue { EFI_PEI_HOB_POINTERS GuidHob; EFI_PEI_HOB_POINTERS HobStart; @@ -2211,7 +2231,7 @@ void FinalizeSmbios() //continue if (HobStart.Raw != NULL) { // find SMBIOS in hob - for (Index = 0; Index < sizeof (gTableGuidArray) / sizeof (*gTableGuidArray); ++Index) { + for (size_t Index = 0; Index < sizeof (gTableGuidArray) / sizeof (*gTableGuidArray); ++Index) { GuidHob.Raw = (__typeof_am__(HobStart.Raw))GetNextGuidHob (gTableGuidArray[Index], HobStart.Raw); if (GuidHob.Raw != NULL) { Table = (__typeof_am__(Table))GET_GUID_HOB_DATA (GuidHob.Guid); @@ -2272,7 +2292,7 @@ void FinalizeSmbios() //continue // // to fix Dell's SMBIOS truncate credit David Passmore // - if (gSettings.KernelAndKextPatches.KPDELLSMBIOS) + if (smbiosSettings.KPDELLSMBIOS) { // // syscl: remap smbios table 1 guid @@ -2309,3 +2329,4 @@ void FinalizeSmbios() //continue return; } + diff --git a/rEFIt_UEFI/Platform/smbios.h b/rEFIt_UEFI/Platform/smbios.h index 4e29fc37e..e0f20920b 100644 --- a/rEFIt_UEFI/Platform/smbios.h +++ b/rEFIt_UEFI/Platform/smbios.h @@ -11,6 +11,9 @@ extern "C" { #include } +//#include "../Settings/ConfigPlist/ConfigPlistClass.h" +#include "../Platform/cpu.h" +//#include "../Platform/Settings.h" // The maximum number of RAM slots to detect // even for 3-channels chipset X58 there are no more then 8 slots @@ -20,6 +23,7 @@ extern "C" { class RAM_SLOT_INFO { public: + UINT64 Slot = UINT64(); UINT32 ModuleSize = UINT32(); UINT32 Frequency = UINT32(); XString8 Vendor = XString8(); @@ -29,21 +33,185 @@ public: bool InUse = bool(); RAM_SLOT_INFO() {} +}; +extern const RAM_SLOT_INFO nullRAM_SLOT_INFO; - #if __cplusplus > 201703L - bool operator == (const RAM_SLOT_INFO&) const = default; - #endif - bool isEqual(const RAM_SLOT_INFO& other) const - { - if ( !(ModuleSize == other.ModuleSize ) ) return false; - if ( !(Frequency == other.Frequency ) ) return false; - if ( !(Vendor == other.Vendor ) ) return false; - if ( !(PartNo == other.PartNo ) ) return false; - if ( !(SerialNo == other.SerialNo ) ) return false; - if ( !(Type == other.Type ) ) return false; - if ( !(InUse == other.InUse ) ) return false; - return true; - } +class SmbiosMemoryConfigurationClass { + public: + UINT8 SlotCounts = UINT8(); + UINT8 UserChannels = UINT8(); + XObjArray _User = XObjArray(); + + SmbiosMemoryConfigurationClass() {} + + void setEmpty() { + SlotCounts = 0; + UserChannels = 0; + _User.setEmpty(); + } + + const RAM_SLOT_INFO& getSlotInfoForSlotID(UINT64 Slot) const { + for ( size_t idx = 0 ; idx < _User.size() ; ++idx ) { + if ( _User[idx].Slot == Slot ) return _User[idx]; + } + return nullRAM_SLOT_INFO; + } +}; + +class SLOT_DEVICE +{ +public: + uint8_t Index = 0xFF; + UINT16 SegmentGroupNum = UINT16(); + UINT8 BusNum = UINT8(); + UINT8 DevFuncNum = UINT8(); + UINT8 SlotID = UINT8(); + MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE(); + XString8 SlotName = XString8(); + + SLOT_DEVICE() {} +}; +extern const SLOT_DEVICE nullSLOT_DEVICE; + +/* + * All settings from Smbios goes into this struct. + * Goal : No globals set by getTablexxx functions + */ +class SmbiosDiscoveredSettings +{ + public: + uint16_t SmbiosVersion = 0; + XString8 OEMBoardFromSmbios = XString8(); + XString8 OEMProductFromSmbios = XString8(); + XString8 OEMVendorFromSmbios = XString8(); + uint8_t EnabledCores = 0; + + uint16_t RamSlotCount = 0; // this is maxed out to MAX_RAM_SLOTS + + // gCPUStructure + UINT64 ExternalClock = 0; + UINT32 CurrentSpeed = 0; + UINT32 MaxSpeed = 0; + + SmbiosDiscoveredSettings() {} +}; + +/* + * All settings that'll be injected goes into this struct. + * Goal : No globals used by patchTablexxx functions + * The method that initialises this is SmbiosFillPatchingValues() + * Q: Why is this intersting ? Isn't it just copy and we should let smbios.cpp access globals, like gCPUStructure ? + * A: Problems with globals, is that don't control where they are accessed from. + * Imagine you have a wrong information sent to Smbios. + * Putting a breakpoint or a log in SmbiosInjectedSettings::takeValueFrom, you immediatley know if the problem is + * on the Clover side (wrong info given by Clover) or on the Smbios patch side (Right info but wrong way of patching smbios table). + * This way, Smbios is a layer (or toolbox) independent of Clover. + * SmbiosInjectedSettings is a "touch point" (some say "bridge") between layer. Of course it has to have only 1 or 2, easily identifiable. + * SmbiosFillPatchingValues() is THE place to make some checks, gather values and be sure of what to send to the patching functions. + * + * NOTE : I know it's tempting not to do it because it's a lot of copy/paste. But it's so much a time saver later to have better/simpler design... + */ +class SmbiosInjectedSettings +{ + public: + // gCPUStructure + UINT8 Cores = 0; + UINT32 MaxSpeed = 0; + UINT8 Threads = 0; + UINT64 Features = 0; + UINT64 ExternalClock = 0; + UINT32 Model = 0; + UINT8 Mobile = 0; //not for i3-i7 + UINT32 Family = 0; + UINT32 Type = 0; + XString8 BrandString = XString8(); + UINT32 Extmodel = 0; + UINT64 ExtFeatures = 0; + UINT64 MicroCode = 0; + UINT32 Extfamily = 0; + UINT32 Stepping = 0; + + // gSettings + XString8 BiosVendor = XString8(); + XString8 BiosVersionUsed = XString8(); + XString8 EfiVersionUsed = XString8(); + XString8 ReleaseDateUsed = XString8(); + XString8 ManufactureName = XString8(); + XString8 ProductName = XString8(); + XString8 SystemVersion = XString8(); + XString8 SerialNr = XString8(); + XString8 BoardNumber = XString8(); + XString8 BoardManufactureName = XString8(); + XString8 BoardVersion = XString8(); + XString8 BoardSerialNumber = XString8(); + XString8 LocationInChassis = XString8(); + XString8 ChassisManufacturer = XString8(); + XString8 ChassisAssetTag = XString8(); + XString8 FamilyName = XString8(); + XString8 SmUUID = XString8(); + bool NoRomInfo = 0; + uint8_t EnabledCores = 0; + bool TrustSMBIOS = 0; + bool InjectMemoryTables = 0; + uint8_t BoardType = 0; + uint8_t ChassisType = 0; + + class SlotDevicesArrayClass : protected XObjArray + { + using super = XObjArray; + public: + void setEmpty() { super::setEmpty(); } + void AddReference(SLOT_DEVICE* newElement, bool FreeIt) { super::AddReference(newElement, FreeIt); } + + const SLOT_DEVICE& getSlotForIndex(uint8_t Index) const { + if ( Index >= MAX_RAM_SLOTS) { + log_technical_bug("%s : Index >= MAX_RAM_SLOTS", __PRETTY_FUNCTION__); + } + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).Index == Index ) return ElementAt(idx); + } + return nullSLOT_DEVICE; + } + SLOT_DEVICE& getOrCreateSlotForIndex(uint8_t Index) { + if ( Index >= MAX_RAM_SLOTS) { + log_technical_bug("%s : Index >= MAX_RAM_SLOTS", __PRETTY_FUNCTION__); + } + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).Index == Index ) return ElementAt(idx); + } + SLOT_DEVICE* slotDevice = new SLOT_DEVICE; + AddReference(slotDevice, true); + return *slotDevice; + } + bool isSlotForIndexValid(uint8_t Index) const { + if ( Index >= MAX_RAM_SLOTS) { + log_technical_bug("%s : Index >= MAX_RAM_SLOTS", __PRETTY_FUNCTION__); + } + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).Index == Index ) return true; + } + return false; + } + } SlotDevices = SlotDevicesArrayClass(); + + SmbiosMemoryConfigurationClass Memory = SmbiosMemoryConfigurationClass(); + + uint64_t gPlatformFeature = 0; + uint32_t FirmwareFeatures = 0; + uint32_t FirmwareFeaturesMask = 0; + int8_t Attribute = 0; + + bool KPDELLSMBIOS = 0; + + // CPU + uint16_t CpuType = 0; + bool SetTable132 = 0; + uint16_t QPI = 0; + + // from SmBios + uint16_t RamSlotCount = 0; + + SmbiosInjectedSettings() {} }; class MEM_STRUCTURE @@ -68,8 +236,9 @@ public: extern APPLE_SMBIOS_STRUCTURE_POINTER SmbiosTable; +// TODO stop using globals. extern MEM_STRUCTURE gRAM; -extern BOOLEAN gMobile; +extern BOOLEAN gMobile; @@ -79,15 +248,15 @@ iStrLen( UINTN MaxLen ); -EFI_STATUS -PrepatchSmbios (void); +EFI_STATUS PrepatchSmbios(SmbiosDiscoveredSettings* smbiosSettings); +void PatchSmbios(const SmbiosInjectedSettings& smbiosSettings); +void FinalizeSmbios(const SmbiosInjectedSettings& smbiosSettings); -void -PatchSmbios (void); - -void -FinalizeSmbios (void); +bool getMobileFromSmbios(); +XString8 getSmUUIDFromSmbios(); +extern SmbiosDiscoveredSettings g_SmbiosDiscoveredSettings; +extern SmbiosInjectedSettings g_SmbiosInjectedSettings; #endif /* PLATFORM_SMBIOS_H_ */ diff --git a/rEFIt_UEFI/Platform/spd.cpp b/rEFIt_UEFI/Platform/spd.cpp index 496ec8ba7..c187a8065 100644 --- a/rEFIt_UEFI/Platform/spd.cpp +++ b/rEFIt_UEFI/Platform/spd.cpp @@ -36,15 +36,8 @@ #define DBG(...) DebugLog(DEBUG_SPD, __VA_ARGS__) #endif -//extern EFI_DATA_HUB_PROTOCOL *gDataHub; -//extern DMI* gDMI; - -//==> -extern UINT16 TotalCount; -//<== - -BOOLEAN smbIntel; +BOOLEAN smbIntel; UINT8 smbPage; CONST CHAR8 *spd_memory_types[] = @@ -682,12 +675,6 @@ STATIC void read_smb(EFI_PCI_IO_PROTOCOL *PciIo, UINT16 vid, UINT16 did) spdbuf = (__typeof__(spdbuf))AllocateZeroPool(MAX_SPD_SIZE); - // Search MAX_RAM_SLOTS slots - //==> - /* TotalSlotsCount = (UINT8) TotalCount; - if (!TotalSlotsCount) { - TotalSlotsCount = MAX_RAM_SLOTS; - } */ TotalSlotsCount = 8; //MAX_RAM_SLOTS; -- spd can read only 8 slots DBG("Slots to scan [%d]...\n", TotalSlotsCount); for (i = 0; i < TotalSlotsCount; i++){ diff --git a/rEFIt_UEFI/PlatformEFI/BootLog.cpp b/rEFIt_UEFI/PlatformEFI/BootLog.cpp index 4ed1e3426..e0aa694e8 100644 --- a/rEFIt_UEFI/PlatformEFI/BootLog.cpp +++ b/rEFIt_UEFI/PlatformEFI/BootLog.cpp @@ -12,7 +12,7 @@ //#include #include "../Platform/DataHubCpu.h" #include "../Platform/Settings.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../Platform/guid.h" //Slice - if I set NEW_LOG to 0 then I will work with debug.log as in 5103 diff --git a/rEFIt_UEFI/PlatformEFI/include/Platform.h b/rEFIt_UEFI/PlatformEFI/include/Platform.h index e8330d11f..3d61d5c89 100755 --- a/rEFIt_UEFI/PlatformEFI/include/Platform.h +++ b/rEFIt_UEFI/PlatformEFI/include/Platform.h @@ -24,7 +24,7 @@ Headers collection for procedures #include "../include/OneLinerMacros.h" -//#include "Self.h" +//#include "../Settings/Self.h" #include "../entry_scan/common.h" #include "../libeg/BmLib.h" #include "../Platform/BootLog.h" diff --git a/rEFIt_UEFI/Settings/ConfigManager.cpp b/rEFIt_UEFI/Settings/ConfigManager.cpp new file mode 100644 index 000000000..c1d01cc0c --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigManager.cpp @@ -0,0 +1,1070 @@ +/* + * ConfigManager.cpp + * + * Created on: Apr 21, 2021 + * Author: jief + */ + +#include "ConfigManager.h" +#include "../Settings/SelfOem.h" +#include "../refit/lib.h" +#include "../Platform/Settings.h" +#include "../Platform/platformdata.h" +#include "../Platform/VersionString.h" +#include "../Platform/Nvram.h" + +#include "../Platform/smbios.h" + +#include "../Platform/gma.h" +#include "../Platform/ati.h" +#include "../Platform/ati_reg.h" +#include "../Platform/nvidia.h" + +#include "../Platform/hda.h" + +#include "../include/Net.h" + +#ifndef DEBUG_ALL +#define DEBUG_CONFIGMANAGER 1 +#else +#define DEBUG_CONFIGMANAGER DEBUG_ALL +#endif + +#if DEBUG_CONFIGMANAGER == 0 +#define DBG(...) +#else +#define DBG(...) DebugLog (DEBUG_CONFIGMANAGER, __VA_ARGS__) +#endif + +void ConfigManager::DiscoverDevices() +{ + EFI_STATUS Status; + UINT16 PreviousVendor = 0; + XStringW GopDevicePathStr; + + DbgHeader("GetDevices"); + + { + // Get GOP handle, in order to check to which GPU the monitor is currently connected + UINTN HandleCount = 0; + EFI_HANDLE *HandleArray = NULL; + Status = gBS->LocateHandleBuffer(ByProtocol, &gEfiGraphicsOutputProtocolGuid, NULL, &HandleCount, &HandleArray); + if (!EFI_ERROR(Status)) { + if ( HandleCount == 0 ) { + log_technical_bug("HandleCount == 0"); + }else{ + if ( HandleCount > 1 ) { + MsgLog("Found more than one GOP protocol ??? Using the first one\n"); + } + GopDevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[0])); + DBG("GOP found at: %ls\n", GopDevicePathStr.wc_str()); + } + } + } + + // Scan PCI handles + UINTN HandleCount = 0; + EFI_HANDLE *HandleArray = NULL; + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &gEfiPciIoProtocolGuid, + NULL, + &HandleCount, + &HandleArray + ); + + if (!EFI_ERROR(Status)) { + for (UINTN Index = 0; Index < HandleCount; ++Index) { + EFI_PCI_IO_PROTOCOL *PciIo; + Status = gBS->HandleProtocol(HandleArray[Index], &gEfiPciIoProtocolGuid, (void **)&PciIo); + if (!EFI_ERROR(Status)) { + // Read PCI BUS + UINTN Segment = 0; + UINTN Bus = 0; + UINTN Device = 0; + UINTN Function = 0; + PciIo->GetLocation (PciIo, &Segment, &Bus, &Device, &Function); + PCI_TYPE00 Pci; + Status = PciIo->Pci.Read ( + PciIo, + EfiPciIoWidthUint32, + 0, + sizeof (Pci) / sizeof (UINT32), + &Pci + ); + + DBG("PCI (%02llX|%02llX:%02llX.%02llX) : %04hX %04hX class=%02hhX%02hhX%02hhX\n", + Segment, + Bus, + Device, + Function, + Pci.Hdr.VendorId, + Pci.Hdr.DeviceId, + Pci.Hdr.ClassCode[2], + Pci.Hdr.ClassCode[1], + Pci.Hdr.ClassCode[0] + ); + + // GFX + //if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY) && + // (Pci.Hdr.ClassCode[1] == PCI_CLASS_DISPLAY_VGA) && + // (NGFX < 4)) { + + if ( Pci.Hdr.ClassCode[2] == PCI_CLASS_DISPLAY && + ( Pci.Hdr.ClassCode[1] == PCI_CLASS_DISPLAY_VGA || Pci.Hdr.ClassCode[1] == PCI_CLASS_DISPLAY_OTHER ) + ) { + CONST CHAR8 *CardFamily = ""; + UINT16 UFamily; + DiscoveredGfx *gfx = new DiscoveredGfx; + + + gfx->DeviceID = Pci.Hdr.DeviceId; + gfx->Segment = Segment; + gfx->Bus = Bus; + gfx->Device = Device; + gfx->Function = Function; + gfx->Handle = HandleArray[Index]; + + switch (Pci.Hdr.VendorId) { + case 0x1002: { + const radeon_card_info_t *info = NULL; + gfx->Vendor = Ati; + + size_t i = 0; + do { + info = &radeon_cards[i]; + if (info->device_id == Pci.Hdr.DeviceId) { + break; + } + } while (radeon_cards[i++].device_id != 0); + + gfx->Model.takeValueFrom(info->model_name); + gfx->Config.takeValueFrom(card_configs[info->cfg_name].name); + gfx->Ports = card_configs[info->cfg_name].ports; + DBG(" - GFX: Model=%s (ATI/AMD)\n", gfx->Model.c_str()); + + //get mmio + if (info->chip_family < CHIP_FAMILY_HAINAN) { + gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[2] & ~0x0f); + } else { + gfx->Mmio = (UINT8 *)(UINTN)(Pci.Device.Bar[5] & ~0x0f); + } + gfx->Connectors = *(UINT32*)(gfx->Mmio + RADEON_BIOS_0_SCRATCH); + // DBG(" - RADEON_BIOS_0_SCRATCH = 0x%08X\n", gfx->Connectors); + gfx->ConnChanged = FALSE; + + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 0; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "PCI Slot 0"_XS8; + SlotDevice->SlotID = 1; + SlotDevice->SlotType = SlotTypePciExpressX16; + break; + } + case 0x8086:{ + gfx->Vendor = Intel; + gfx->Model.takeValueFrom(get_gma_model (Pci.Hdr.DeviceId)); + DBG(" - GFX: Model=%s (Intel)\n", gfx->Model.c_str()); + gfx->Ports = 1; + gfx->Connectors = (1 << GfxPropertiesArrayNonConst.size()); + gfx->ConnChanged = FALSE; + break; + } + case 0x10de: { + gfx->Vendor = Nvidia; + UINT32 Bar0 = Pci.Device.Bar[0]; + gfx->Mmio = (UINT8*)(UINTN)(Bar0 & ~0x0f); + //DBG("BAR: 0x%p\n", Mmio); + // get card type + gfx->Family = (REG32(gfx->Mmio, 0) >> 20) & 0x1ff; + UFamily = gfx->Family & 0x1F0; + if ((UFamily == NV_ARCH_KEPLER1) || + (UFamily == NV_ARCH_KEPLER2) || + (UFamily == NV_ARCH_KEPLER3)) { + CardFamily = "Kepler"; + } + else if ((UFamily == NV_ARCH_FERMI1) || + (UFamily == NV_ARCH_FERMI2)) { + CardFamily = "Fermi"; + } + else if ((UFamily == NV_ARCH_MAXWELL1) || + (UFamily == NV_ARCH_MAXWELL2)) { + CardFamily = "Maxwell"; + } + else if (UFamily == NV_ARCH_PASCAL) { + CardFamily = "Pascal"; + } + else if (UFamily == NV_ARCH_VOLTA) { + CardFamily = "Volta"; + } + else if (UFamily == NV_ARCH_TURING) { + CardFamily = "Turing"; + } + else if ((UFamily >= NV_ARCH_TESLA) && (UFamily < 0xB0)) { //not sure if 0xB0 is Tesla or Fermi + CardFamily = "Tesla"; + } else { + CardFamily = "NVidia unknown"; + } + + gfx->Model.takeValueFrom( + get_nvidia_model (((Pci.Hdr.VendorId << 16) | Pci.Hdr.DeviceId), + ((Pci.Device.SubsystemVendorID << 16) | Pci.Device.SubsystemID) + ) + ); + + DBG(" - GFX: Model=%s family %hX (%s)\n", gfx->Model.c_str(), gfx->Family, CardFamily); + gfx->Ports = 0; + + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 1; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "PCI Slot 0"_XS8; + SlotDevice->SlotID = 1; + SlotDevice->SlotType = SlotTypePciExpressX16; + break; + } + default: { + gfx->Vendor = Unknown; + gfx->Model.S8Printf("pci%hx,%hx", Pci.Hdr.VendorId, Pci.Hdr.DeviceId); + gfx->Ports = 1; + gfx->Connectors = (1 << GfxPropertiesArrayNonConst.size()); + gfx->ConnChanged = FALSE; + + break; + } + } + + // GOP device path should contain the device path of the GPU to which the monitor is connected + XStringW DevicePathStr = DevicePathToXStringW(DevicePathFromHandle(HandleArray[Index])); + if (StrStr(GopDevicePathStr.wc_str(), DevicePathStr.wc_str())) { + DBG(" - GOP: Provided by device\n"); + if ( GfxPropertiesArrayNonConst.size() != 0 ) { + // we found GOP on a GPU scanned later, make space for this GPU at first position + GfxPropertiesArrayNonConst.InsertRef(gfx, 0, true); + }else{ + GfxPropertiesArrayNonConst.AddReference(gfx, true); + } + } + } //if gfx + + else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && + (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_OTHER)) { + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 6; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "AirPort"_XS8; + SlotDevice->SlotID = 0; + SlotDevice->SlotType = SlotTypePciExpressX1; + DBG(" - WIFI: Vendor= "); + switch (Pci.Hdr.VendorId) { + case 0x11ab: + DBG("Marvell\n"); + break; + case 0x10ec: + DBG("Realtek\n"); + break; + case 0x14e4: + DBG("Broadcom\n"); + break; + case 0x1969: + case 0x168C: + DBG("Atheros\n"); + break; + case 0x1814: + DBG("Ralink\n"); + break; + case 0x8086: + DBG("Intel\n"); + break; + + default: + DBG(" 0x%04X\n", Pci.Hdr.VendorId); + break; + } + } + + else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_NETWORK) && + (Pci.Hdr.ClassCode[1] == PCI_CLASS_NETWORK_ETHERNET)) { + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 5; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "Ethernet"_XS8; + SlotDevice->SlotID = 2; + SlotDevice->SlotType = SlotTypePciExpressX1; + LanCardClass* lanCard = new LanCardClass; + LanCardArrayNonConst.AddReference(lanCard, true); + UINT16 Vendor = Pci.Hdr.VendorId; + UINT32 Bar0 = Pci.Device.Bar[0]; + UINT8* Mmio = (UINT8*)(UINTN)(Bar0 & ~0x0f); + DBG(" - LAN: %zu Vendor=", LanCardArrayNonConst.size()); + switch (Pci.Hdr.VendorId) { + case 0x11ab: + DBG("Marvell\n"); + break; + case 0x10ec: + DBG("Realtek\n"); + break; + case 0x14e4: + DBG("Broadcom\n"); + break; + case 0x1969: + case 0x168C: + DBG("Atheros\n"); + break; + case 0x8086: + DBG("Intel\n"); + break; + case 0x10de: + DBG("Nforce\n"); + break; + + default: + DBG("Unknown\n"); + break; + } + + // + // Get MAC-address from hardwaredirectly + // + if ( Mmio != NULL ) { + UINTN Offset = 0; + BOOLEAN Swab = FALSE; + UINT32 Mac0, Mac4; + switch ( Vendor ) { + case 0x11ab: //Marvell Yukon + if (PreviousVendor == Vendor) { + Offset = B2_MAC_2; + } else { + Offset = B2_MAC_1; + } + CopyMem(&lanCard->MacAddress[0], Mmio + Offset, 6); + goto done; + + case 0x10ec: //Realtek + Mac0 = IoRead32((UINTN)Mmio); + Mac4 = IoRead32((UINTN)Mmio + 4); + goto copy; + + case 0x14e4: //Broadcom + if (PreviousVendor == Vendor) { + Offset = EMAC_MACADDR1_HI; + } else { + Offset = EMAC_MACADDR0_HI; + } + break; + case 0x1969: //Atheros + Offset = L1C_STAD0; + Swab = TRUE; + break; + case 0x8086: //Intel + if (PreviousVendor == Vendor) { + Offset = INTEL_MAC_2; + } else { + Offset = INTEL_MAC_1; + } + break; + + default: + break; + } + if (!Offset) { + continue; + } + Mac0 = *(UINT32*)(Mmio + Offset); + Mac4 = *(UINT32*)(Mmio + Offset + 4); + if (Swab) { + lanCard->MacAddress[0] = (UINT8)((Mac4 & 0xFF00) >> 8); + lanCard->MacAddress[1] = (UINT8)(Mac4 & 0xFF); + lanCard->MacAddress[2] = (UINT8)((Mac0 & 0xFF000000) >> 24); + lanCard->MacAddress[3] = (UINT8)((Mac0 & 0x00FF0000) >> 16); + lanCard->MacAddress[4] = (UINT8)((Mac0 & 0x0000FF00) >> 8); + lanCard->MacAddress[5] = (UINT8)(Mac0 & 0x000000FF); + goto done; + } + copy: + CopyMem(&lanCard->MacAddress[0], &Mac0, 4); + CopyMem(&lanCard->MacAddress[4], &Mac4, 2); + + done: + PreviousVendor = Vendor; + DBG("Legacy MAC address of LAN #%zu= ", LanCardArrayNonConst.size()-1); // size() can't be 0 here. + for (size_t Index2 = 0; Index2 < sizeof(lanCard->MacAddress); Index2++) { + DBG("%02hhX:", lanCard->MacAddress[Index2]); + } + DBG("\n"); + } + } + else if ((Pci.Hdr.ClassCode[2] == PCI_CLASS_SERIAL) && + (Pci.Hdr.ClassCode[1] == PCI_CLASS_SERIAL_FIREWIRE)) { + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 12; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "FireWire"_XS8; + SlotDevice->SlotID = 3; + SlotDevice->SlotType = SlotTypePciExpressX4; + } + + else if ( Pci.Hdr.ClassCode[2] == PCI_CLASS_MEDIA && + ( Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_HDA || Pci.Hdr.ClassCode[1] == PCI_CLASS_MEDIA_AUDIO ) + ) { + DiscoveredHdaProperties *hda = new DiscoveredHdaProperties; + + // Populate Controllers IDs + hda->controller_vendor_id = Pci.Hdr.VendorId; + hda->controller_device_id = Pci.Hdr.DeviceId; + + // HDA Controller Info + HdaControllerGetName(((hda->controller_device_id << 16) | hda->controller_vendor_id), &hda->controller_name); + + + if (IsHDMIAudio(HandleArray[Index])) { + DBG(" - HDMI Audio: \n"); + + DiscoveredSlotDeviceClass* SlotDevice = new DiscoveredSlotDeviceClass; + SlotDeviceArrayNonConst.AddReference(SlotDevice, true); + SlotDevice->Index = 4; + SlotDevice->SegmentGroupNum = (UINT16)Segment; + SlotDevice->BusNum = (UINT8)Bus; + SlotDevice->DevFuncNum = (UINT8)((Device << 3) | (Function & 0x07)); + //SlotDevice->Valid = TRUE; + SlotDevice->SlotName = "HDMI port"_XS8; + SlotDevice->SlotID = 5; + SlotDevice->SlotType = SlotTypePciExpressX4; + } +// TODO not done here anymore! Here, we discover devices. No more. No other action. +// if (gSettings.Devices.Audio.ResetHDA) { +// //Slice method from VoodooHDA +// //PCI_HDA_TCSEL_OFFSET = 0x44 +// UINT8 Value = 0; +// Status = PciIo->Pci.Read (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); +// +// if (EFI_ERROR(Status)) { +// continue; +// } +// +// Value &= 0xf8; +// PciIo->Pci.Write (PciIo, EfiPciIoWidthUint8, 0x44, 1, &Value); +// //ResetControllerHDA(); +// } + HdaPropertiesArrayNonConst.AddReference(hda, true); + } // if Audio device + } + } + } +} + + +template +EFI_STATUS LoadPlist(const XStringW& ConfName, C* plist) +{ + EFI_STATUS Status = EFI_NOT_FOUND; + UINTN Size = 0; + CHAR8* ConfigPtr = NULL; +// XStringW ConfigPlistPath; +// XStringW ConfigOemPath; + + // DbgHeader("LoadUserSettings"); + + // load config + if ( ConfName.isEmpty() /*|| Dict == NULL*/ ) { + return EFI_NOT_FOUND; + } + +// ConfigOemPath = SWPrintf("%ls\\%ls.plist", selfOem.getOOEMPath.wc_str(), ConfName.wc_str()); + Status = EFI_NOT_FOUND; + XStringW configFilename = SWPrintf("%ls.plist", ConfName.wc_str()); + XStringW configPlistPath; + if ( selfOem.oemDirExists() ) { + configPlistPath = SWPrintf("%ls\\%ls.plist", selfOem.getOemFullPath().wc_str(), ConfName.wc_str()); + if (FileExists (&selfOem.getOemDir(), configFilename)) { + Status = egLoadFile(&selfOem.getOemDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); + if (EFI_ERROR(Status)) { + DBG("Cannot find %ls at path (%s): '%ls', trying '%ls'\n", configFilename.wc_str(), efiStrError(Status), selfOem.getOemFullPath().wc_str(), self.getCloverDirFullPath().wc_str()); + }else{ + DBG("Using %ls at path: %ls\n", configFilename.wc_str(), selfOem.getOemFullPath().wc_str()); + } + } + } + if ( !selfOem.oemDirExists() || EFI_ERROR(Status)) { + configPlistPath = SWPrintf("%ls\\%ls.plist", self.getCloverDirFullPath().wc_str(), ConfName.wc_str()); + if ( FileExists(&self.getCloverDir(), configFilename.wc_str())) { + Status = egLoadFile(&self.getCloverDir(), configFilename.wc_str(), (UINT8**)&ConfigPtr, &Size); + } + if (EFI_ERROR(Status)) { + DBG("Cannot find %ls at path '%ls' : %s\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str(), efiStrError(Status)); + } else { + DBG("Using %ls at path: %ls\n", configFilename.wc_str(), self.getCloverDirFullPath().wc_str()); + } + } + if ( EFI_ERROR(Status) ) { + MsgLog("'%ls' not loaded. Efi error %s\n", configPlistPath.wc_str(), efiStrError(Status)); + return Status; + } + + XmlLiteParser xmlLiteParser; + bool parsingOk = plist->parse((const CHAR8*)ConfigPtr, Size, ""_XS8, &xmlLiteParser); + if ( xmlLiteParser.getErrorsAndWarnings().size() ) { + DebugLog(2, "There is problems in plist '%ls'\n", configPlistPath.wc_str()); + for ( size_t idx = 0 ; idx < xmlLiteParser.getErrorsAndWarnings().size() ; idx++ ) { + const XmlParserMessage& xmlMsg = xmlLiteParser.getErrorsAndWarnings()[idx]; + DebugLog(2, "%s: %s\n", xmlMsg.isError ? "Error" : "Warning", xmlMsg.msg.c_str()); + } + DebugLog(2, "Use CloverConfigPlistValidator or look in the log\n"); + } + if ( !parsingOk ) { + DebugLog(2, "Parsing error while parsing '%ls'.\n", configPlistPath.wc_str()); + Status = EFI_LOAD_ERROR; + } + + if ( !parsingOk || xmlLiteParser.getErrorsAndWarnings().size() > 0 ) gBS->Stall(3000000); // 3 seconds delay + +return Status; +} + +/* + * Load a plist into configPlist global object, "transfer" the settings into gSettings and call afterGetUserSettings() + * ConfName : name of the file, without .plist extension. File will be searched in OEM or main folder + */ +EFI_STATUS ConfigManager::LoadConfigPlist(const XStringW& ConfName) +{ + EFI_STATUS Status = LoadPlist(ConfName, &configPlist); + + return Status; +} + +/* + * Load a plist into smbiosPlist global object, "transfer" the settings into gSettings and call afterGetUserSettings() + * ConfName : name of the file, without .plist extension. File will be searched in OEM or main folder + */ +EFI_STATUS ConfigManager::LoadSMBIOSPlist(const XStringW& ConfName) +{ + EFI_STATUS Status = LoadPlist(ConfName, &smbiosPlist); + + if ( EFI_ERROR(Status) ) { + smbiosPlist.reset(); + } + return Status; +} + + +void ConfigManager::FillSmbiosWithDefaultValue(MACHINE_TYPES Model, const SmbiosPlistClass::SmbiosDictClass& smbiosDictClass) +{ + GlobalConfig.CurrentModel = Model; + + //GlobalConfig.BiosVersionUsed = ApplePlatformData[Model].firmwareVersion; + // Check for BiosVersion and BiosReleaseDate by Sherlocks + if ( smbiosDictClass.getBiosVersion().isDefined() ) { + int c = compareBiosVersion(GlobalConfig.BiosVersionUsed, smbiosDictClass.dgetBiosVersion()); + if ( c == 0 ) { + DBG("Found same BiosVersion in clover and config\n"); + }else + if ( c < 0 ) { + DBG("Using latest BiosVersion from config\n"); + GlobalConfig.BiosVersionUsed = smbiosDictClass.dgetBiosVersion(); + }else{ + DBG("Using latest BiosVersion from clover\n"); + } + }else{ + DBG("BiosVersion: not set, Using BiosVersion from clover\n"); + } + DBG("BiosVersion: %s\n", GlobalConfig.BiosVersionUsed.c_str()); + + + //GlobalConfig.ReleaseDateUsed = GetReleaseDate(Model); // AppleReleaseDate + int compareReleaseDateResult = 0; + if ( smbiosDictClass.getBiosReleaseDate().isDefined() ) { + compareReleaseDateResult = compareReleaseDate(GetReleaseDate(Model), smbiosDictClass.dgetBiosReleaseDate()); + if ( compareReleaseDateResult == 0 ) { + DBG("Found same BiosReleaseDate in clover and config\n"); + }else + if ( compareReleaseDateResult == -1 ) { + DBG("Using latest BiosReleaseDate from config\n"); + GlobalConfig.ReleaseDateUsed = smbiosDictClass.dgetBiosReleaseDate(); + }else + if ( compareReleaseDateResult == 1 ) { + DBG("Using latest BiosReleaseDate from clover\n"); + } + }else{ + DBG("BiosReleaseDate: not set, Using BiosReleaseDate from clover\n"); + } + if ( !smbiosDictClass.getBiosReleaseDate().isDefined() || compareReleaseDateResult == -2 ) + { + //DBG("Found unknown date format from config\n"); + size_t len = GlobalConfig.ReleaseDateUsed.length(); + const char* j = GlobalConfig.BiosVersionUsed.c_str(); + + j += AsciiStrLen(j); + while (*j != '.') { + j--; + } + + if ( len == 8 ) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("Using the date of used BiosVersion\n"); + } else if ( len == 10 ) { + GlobalConfig.ReleaseDateUsed.S8Printf("%c%c/%c%c/20%c%c\n", j[3], j[4], j[5], j[6], j[1], j[2]); + //DBG("Using the date of used BiosVersion\n"); + } + } + DBG("BiosReleaseDate: %s\n", GlobalConfig.ReleaseDateUsed.c_str()); + + + +// GlobalConfig.EfiVersionUsed.takeValueFrom(ApplePlatformData[Model].efiversion); + if ( smbiosDictClass.getEfiVersion().isDefined() ) { + if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) > AsciiStrVersionToUint64(smbiosDictClass.dgetEfiVersion(), 4, 5)) { + DBG("Using latest EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } else if (AsciiStrVersionToUint64(GlobalConfig.EfiVersionUsed, 4, 5) < AsciiStrVersionToUint64(smbiosDictClass.dgetEfiVersion(), 4, 5)) { + GlobalConfig.EfiVersionUsed = smbiosDictClass.dgetEfiVersion(); + DBG("Using latest EfiVersion from config: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } else { + DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } + } else if ( GlobalConfig.EfiVersionUsed.notEmpty() ) { + DBG("Using EfiVersion from clover: %s\n", GlobalConfig.EfiVersionUsed.c_str()); + } + + + if ( smbiosDictClass.getBiosVendor().isDefined() ) gSettings.Smbios.BiosVendor = smbiosDictClass.getBiosVendor().value(); + if ( smbiosDictClass.getManufacturer().isDefined() ) gSettings.Smbios.ManufactureName = smbiosDictClass.getManufacturer().value(); + if ( smbiosDictClass.getProductName().isDefined() ) gSettings.Smbios.ProductName = smbiosDictClass.getProductName().value(); + if ( smbiosDictClass.getVersion().isDefined() ) gSettings.Smbios.SystemVersion = smbiosDictClass.getVersion().value(); + if ( smbiosDictClass.getSerialNumber().isDefined() ) gSettings.Smbios.SerialNr = smbiosDictClass.getSerialNumber().value(); + if ( smbiosDictClass.getFamily().isDefined() ) gSettings.Smbios.FamilyName = smbiosDictClass.getFamily().value(); + if ( smbiosDictClass.getBoardManufacturer().isDefined() ) gSettings.Smbios.BoardManufactureName = smbiosDictClass.getBoardManufacturer().value(); + if ( smbiosDictClass.getBoardSerialNumber().isDefined() ) gSettings.Smbios.BoardSerialNumber = smbiosDictClass.getBoardSerialNumber().value(); + if ( smbiosDictClass.getBoardID().isDefined() ) gSettings.Smbios.BoardNumber = smbiosDictClass.getBoardID().value(); + if ( smbiosDictClass.getBoardVersion().isDefined() ) gSettings.Smbios.BoardVersion = smbiosDictClass.getBoardVersion().value(); + if ( smbiosDictClass.getLocationInChassis().isDefined() ) gSettings.Smbios.LocationInChassis = smbiosDictClass.getLocationInChassis().value(); + if ( smbiosDictClass.getChassisManufacturer().isDefined() ) gSettings.Smbios.ChassisManufacturer = smbiosDictClass.getChassisManufacturer().value(); + if ( smbiosDictClass.getChassisAssetTag().isDefined() ) gSettings.Smbios.ChassisAssetTag = smbiosDictClass.getChassisAssetTag().value(); + if ( smbiosDictClass.getFirmwareFeatures().isDefined() ) gSettings.Smbios.FirmwareFeatures = smbiosDictClass.getFirmwareFeatures().value(); + if ( smbiosDictClass.getFirmwareFeaturesMask().isDefined() ) gSettings.Smbios.FirmwareFeaturesMask = smbiosDictClass.getFirmwareFeaturesMask().value(); + if ( smbiosDictClass.getPlatformFeature().isDefined() ) gSettings.Smbios.gPlatformFeature = smbiosDictClass.getPlatformFeature().value(); + if ( smbiosDictClass.getBoardType().isDefined() ) gSettings.Smbios.BoardType = smbiosDictClass.getBoardType().value(); + if ( smbiosDictClass.getChassisType().isDefined() ) gSettings.Smbios.ChassisType = smbiosDictClass.getChassisType().value(); + if ( smbiosDictClass.getMobile().isDefined() ) gSettings.Smbios.Mobile = smbiosDictClass.getMobile().value(); +} + +void ConfigManager::applySettings() const +{ + // comes from GetDefaultSettings() + { + if ( !configPlist.Graphics.Inject.isInjectIntelDefined() ) + { + gSettings.Graphics.InjectAsDict.InjectIntel = + (gConf.GfxPropertiesArray.size() > 0 && gConf.GfxPropertiesArray[0].Vendor == Intel) || + (gConf.GfxPropertiesArray.size() > 1 && gConf.GfxPropertiesArray[1].Vendor == Intel); + } + if ( !configPlist.Graphics.Inject.isInjectATIDefined() ) + { + gSettings.Graphics.InjectAsDict.InjectATI = + (gConf.GfxPropertiesArray.size() > 0 && gConf.GfxPropertiesArray[0].Vendor == Ati && (gConf.GfxPropertiesArray[0].DeviceID & 0xF000) != 0x6000 ) || + (gConf.GfxPropertiesArray.size() > 1 && gConf.GfxPropertiesArray[1].Vendor == Ati && (gConf.GfxPropertiesArray[1].DeviceID & 0xF000) != 0x6000 ); + } + if ( !configPlist.Graphics.Inject.isInjectNVidiaDefined() ) + { + gSettings.Graphics.InjectAsDict.InjectNVidia = + ( gConf.GfxPropertiesArray.isCardAtPosNvidia(0) && gConf.GfxPropertiesArray[0].Family < 0xE0) || + ( gConf.GfxPropertiesArray.isCardAtPosNvidia(1) && gConf.GfxPropertiesArray[1].Family < 0xE0); + } + if ( configPlist.RtVariables.dgetBooterCfgStr().isEmpty() ) + { + CHAR8* OldCfgStr = (CHAR8*)GetNvramVariable(L"bootercfg", &gEfiAppleBootGuid, NULL, NULL); + if ( OldCfgStr ) + { + gSettings.RtVariables.BooterCfgStr.takeValueFrom(OldCfgStr); + FreePool(OldCfgStr); + } + } + } + // comes from GetDefaultCpuSettings(SETTINGS_DATA& gSettings) + { + if ( gCPUStructure.Model >= CPU_MODEL_IVY_BRIDGE ) + { + if ( !configPlist.ACPI.SSDT.Generate.getGeneratePStates().isDefined() ) + gSettings.ACPI.SSDT.Generate.GeneratePStates = TRUE; + + if ( !configPlist.ACPI.SSDT.Generate.getGenerateCStates().isDefined() ) + gSettings.ACPI.SSDT.Generate.GenerateCStates = TRUE; + + // backward compatibility, APFS, APLF, PluginType follow PStates + if ( !configPlist.ACPI.SSDT.Generate.getGenerateAPSN().isDefined() ) + gSettings.ACPI.SSDT.Generate.GenerateAPSN = gSettings.ACPI.SSDT.Generate.GeneratePStates; + + if ( !configPlist.ACPI.SSDT.Generate.getGenerateAPLF().isDefined() ) + gSettings.ACPI.SSDT.Generate.GenerateAPLF = gSettings.ACPI.SSDT.Generate.GeneratePStates; + + if ( !configPlist.ACPI.SSDT.Generate.getGeneratePluginType().isDefined() ) + gSettings.ACPI.SSDT.Generate.GeneratePluginType = gSettings.ACPI.SSDT.Generate.GeneratePStates; + + if ( !configPlist.ACPI.SSDT.getEnableC6().isDefined() ) + gSettings.ACPI.SSDT._EnableC6 = TRUE; + + if ( !configPlist.ACPI.SSDT.getPluginType().isDefined() ) + gSettings.ACPI.SSDT.PluginType = 1; + + if ( gCPUStructure.Model == CPU_MODEL_IVY_BRIDGE ) + { + if ( !configPlist.ACPI.SSDT.getMinMultiplier().isDefined() ) + gSettings.ACPI.SSDT.MinMultiplier = 7; + } + if ( !configPlist.ACPI.SSDT.getC3Latency().isDefined() ) + gSettings.ACPI.SSDT._C3Latency = 0x00FA; + } + if ( gCPUStructure.Model >= CPU_MODEL_SKYLAKE_D ) + { + if ( !configPlist.CPU.getUseARTFreq().isDefined() ) + gSettings.CPU.UseARTFreq = true; + } + } + if ( gSettings.Smbios.SmUUID == nullGuidAsString ) + { + gSettings.Smbios.SmUUID = getSmUUIDFromSmbios(); + } + + // comes from main.cpp + { + DBG("Calibrated TSC Frequency = %llu = %lluMHz\n", gCPUStructure.TSCCalibr, DivU64x32(gCPUStructure.TSCCalibr, Mega)); + if (gCPUStructure.TSCCalibr > 200000000ULL) { //200MHz + gCPUStructure.TSCFrequency = gCPUStructure.TSCCalibr; + } + // DBG("print error level mask = %x\n", GetDebugPrintErrorLevel() ); + gCPUStructure.CPUFrequency = gCPUStructure.TSCFrequency; + gCPUStructure.FSBFrequency = DivU64x32(MultU64x32(gCPUStructure.CPUFrequency, 10), + (gCPUStructure.MaxRatio == 0) ? 1 : gCPUStructure.MaxRatio); + gCPUStructure.MaxSpeed = (UINT32)DivU64x32(gCPUStructure.TSCFrequency + (Mega >> 1), Mega); + + switch (gCPUStructure.Model) { + case CPU_MODEL_PENTIUM_M: + case CPU_MODEL_ATOM:// Atom + case CPU_MODEL_DOTHAN:// Pentium M, Dothan, 90nm + case CPU_MODEL_YONAH:// Core Duo/Solo, Pentium M DC + case CPU_MODEL_MEROM:// Core Xeon, Core 2 Duo, 65nm, Mobile + //case CPU_MODEL_CONROE:// Core Xeon, Core 2 Duo, 65nm, Desktop like Merom but not mobile + case CPU_MODEL_CELERON: + case CPU_MODEL_PENRYN:// Core 2 Duo/Extreme, Xeon, 45nm , Mobile + case CPU_MODEL_NEHALEM:// Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm + case CPU_MODEL_FIELDS:// Core i7, i5 LGA1156, "Clarksfield", "Lynnfield", "Jasper", 45nm + case CPU_MODEL_DALES:// Core i7, i5, Nehalem + case CPU_MODEL_CLARKDALE:// Core i7, i5, i3 LGA1156, "Westmere", "Clarkdale", , 32nm + case CPU_MODEL_WESTMERE:// Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm + case CPU_MODEL_NEHALEM_EX:// Core i7, Nehalem-Ex Xeon, "Beckton" + case CPU_MODEL_WESTMERE_EX:// Core i7, Nehalem-Ex Xeon, "Eagleton" + gCPUStructure.ExternalClock = (UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo); + //DBG(" Read TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + default: + //DBG(" Read TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.FSBFrequency, Mega))); + + // for sandy bridge or newer + // to match ExternalClock 25 MHz like real mac, divide FSBFrequency by 4 + gCPUStructure.ExternalClock = ((UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo) + 3) / 4; + //DBG(" Corrected TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + } + if (gSettings.CPU.QEMU) { + // UINT64 Msrflex = 0ULL; + + if (!gSettings.CPU.UserChange) { + gSettings.CPU.BusSpeed = 200000; + } + gCPUStructure.MaxRatio = (UINT32)DivU64x32(gCPUStructure.TSCCalibr, gSettings.CPU.BusSpeed * Kilo); + DBG("Set MaxRatio for QEMU: %d\n", gCPUStructure.MaxRatio); + gCPUStructure.MaxRatio *= 10; + gCPUStructure.MinRatio = 60; + /* AsmWriteMsr64(MSR_FLEX_RATIO, ((6ULL << 40) + //(1ULL << 16) + + (gCPUStructure.MaxRatio << 8))); + DBG("check if flex is RW\n"); + Msrflex = AsmReadMsr64(MSR_FLEX_RATIO); //0 == not Rw :( + DBG("MSR_FLEX_RATIO = %lx\n", Msrflex); + */ + gCPUStructure.FSBFrequency = DivU64x32(MultU64x32(gCPUStructure.CPUFrequency, 10), + (gCPUStructure.MaxRatio == 0) ? 1 : gCPUStructure.MaxRatio); + gCPUStructure.ExternalClock = (UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo); + } + } + + + // comes from SaveSettings() + { + gMobile = gSettings.Smbios.Mobile; + if ( (gSettings.CPU.BusSpeed != 0) && (gSettings.CPU.BusSpeed > 10 * Kilo) && (gSettings.CPU.BusSpeed < 500 * Kilo) ) + { + switch ( gCPUStructure.Model ) + { + case CPU_MODEL_PENTIUM_M: + case CPU_MODEL_ATOM: // Atom + case CPU_MODEL_DOTHAN: // Pentium M, Dothan, 90nm + case CPU_MODEL_YONAH: // Core Duo/Solo, Pentium M DC + case CPU_MODEL_MEROM: // Core Xeon, Core 2 Duo, 65nm, Mobile + //case CPU_MODEL_CONROE:// Core Xeon, Core 2 Duo, 65nm, Desktop like Merom but not mobile + case CPU_MODEL_CELERON: + case CPU_MODEL_PENRYN: // Core 2 Duo/Extreme, Xeon, 45nm , Mobile + case CPU_MODEL_NEHALEM: // Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm + case CPU_MODEL_FIELDS: // Core i7, i5 LGA1156, "Clarksfield", "Lynnfield", "Jasper", 45nm + case CPU_MODEL_DALES: // Core i7, i5, Nehalem + case CPU_MODEL_CLARKDALE: // Core i7, i5, i3 LGA1156, "Westmere", "Clarkdale", , 32nm + case CPU_MODEL_WESTMERE: // Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm + case CPU_MODEL_NEHALEM_EX: // Core i7, Nehalem-Ex Xeon, "Beckton" + case CPU_MODEL_WESTMERE_EX: // Core i7, Nehalem-Ex Xeon, "Eagleton" + gCPUStructure.ExternalClock = gSettings.CPU.BusSpeed; + //DBG("Read ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + default: + //DBG("Read ExternalClock: %d MHz\n", (INT32)(DivU64x32(gSettings.BusSpeed, Kilo))); + // for sandy bridge or newer + // to match ExternalClock 25 MHz like real mac, divide BusSpeed by 4 + gCPUStructure.ExternalClock = (gSettings.CPU.BusSpeed + 3) / 4; + //DBG("Corrected ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); + break; + } + gCPUStructure.FSBFrequency = MultU64x64(gSettings.CPU.BusSpeed, Kilo); //kHz -> Hz + gCPUStructure.MaxSpeed = (UINT32) ((DivU64x32((UINT64) (gSettings.CPU.BusSpeed) * gCPUStructure.MaxRatio, 10000))); //kHz->MHz + } + if ( (gSettings.CPU.CpuFreqMHz > 100) && (gSettings.CPU.CpuFreqMHz < 20000) ) + { + gCPUStructure.MaxSpeed = gSettings.CPU.CpuFreqMHz; + } + // to determine the use of Table 132 + if ( gSettings.CPU.QPI ) + { + GlobalConfig.SetTable132 = TRUE; + //DBG("QPI: use Table 132\n"); + } else + { + switch ( gCPUStructure.Model ) + { + case CPU_MODEL_NEHALEM: // Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm + case CPU_MODEL_WESTMERE: // Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm + case CPU_MODEL_NEHALEM_EX: // Core i7, Nehalem-Ex Xeon, "Beckton" + case CPU_MODEL_WESTMERE_EX: // Core i7, Nehalem-Ex Xeon, "Eagleton" + GlobalConfig.SetTable132 = TRUE; + DBG("QPI: use Table 132\n"); + break; + default: + //DBG("QPI: disable Table 132\n"); + break; + } + } + gCPUStructure.CPUFrequency = MultU64x64(gCPUStructure.MaxSpeed, Mega); + } +} + +EFI_STATUS ConfigManager::LoadConfig(const XStringW& ConfName) +{ + DbgHeader("GetUserSettings"); + + if ( !selfOem.isInitialized() ) { + log_technical_bug("%s : !selfOem.isInitialized()", __PRETTY_FUNCTION__); + } + EFI_STATUS Status = LoadConfigPlist(ConfName); + if ( EFI_ERROR(Status) ) return Status; + + /*Status = */ LoadSMBIOSPlist(L"smbios"_XSW); // we don't need Status. If not loaded correctly, smbiosPlist is !defined and will be ignored by AssignOldNewSettings() + + MACHINE_TYPES Model = iMac132; + if ( smbiosPlist.SMBIOS.isDefined() ) { + if ( smbiosPlist.SMBIOS.hasModel() ) { + Model = smbiosPlist.SMBIOS.getModel(); + } + } if ( configPlist.getSMBIOS().hasModel() ) { + Model = configPlist.getSMBIOS().getModel(); + }else{ + Model = GetDefaultModel(); + } + + if ( !EFI_ERROR(Status) ) { + gSettings.takeValueFrom(configPlist); + // TODO improve this (avoid to delete settings to re-import them !) + // restore default value for SMBIOS (delete values from configPlist) + SetDMISettingsForModel(Model, &gSettings); + // import values from configPlist if they are defined + FillSmbiosWithDefaultValue(Model, configPlist.getSMBIOS()); + if ( smbiosPlist.SMBIOS.isDefined() ) { + // import values from smbiosPlist if they are defined + FillSmbiosWithDefaultValue(Model, smbiosPlist.SMBIOS); + } + } + + applySettings(); + return Status; +} + +/* + * Fill LanCardArrayNonConst with what is found through UEFI + * LanCardArrayNonConst must be empty before clling, as there is no handling of duplicates (although it would be easy to do !) + */ +void ConfigManager::GetUEFIMacAddress() +{ + EFI_STATUS Status; + + if ( LanCardArrayNonConst.notEmpty() ) { + log_technical_bug("LanCardArrayNonConst.notEmpty()"); // this function "could" be called if LanCardArrayNonConst is not empty, because it just add into the array. But that ends up in duplicates. + // Other possibility is to call setEmpty(), but that'll hide a technical bug. + } + // + // Locate Service Binding handles. + // + UINTN NumberOfHandles = 0; + EFI_HANDLE* HandleBuffer = NULL; + Status = gBS->LocateHandleBuffer ( + ByProtocol, + &gEfiDevicePathProtocolGuid, + NULL, + &NumberOfHandles, + &HandleBuffer + ); + if (EFI_ERROR(Status)) { + return; + } + + DbgHeader("GetUEFIMacAddress"); + + for (size_t Index = 0; Index < NumberOfHandles; Index++) { + EFI_DEVICE_PATH_PROTOCOL* Node = NULL; + Status = gBS->HandleProtocol ( + HandleBuffer[Index], + &gEfiDevicePathProtocolGuid, + (void **) &Node + ); + if (EFI_ERROR(Status)) { + continue; + } + EFI_DEVICE_PATH_PROTOCOL* DevicePath = (EFI_DEVICE_PATH_PROTOCOL *) Node; + + + while (!IsDevicePathEnd (DevicePath)) { + if ((DevicePathType (DevicePath) == MESSAGING_DEVICE_PATH) && + (DevicePathSubType (DevicePath) == MSG_MAC_ADDR_DP)) { + + // + // Get MAC address. + // + MAC_ADDR_DEVICE_PATH* MacAddressNode = (MAC_ADDR_DEVICE_PATH*)DevicePath; + if ( !LanCardArrayNonConst.containsMacAddress(&MacAddressNode->MacAddress.Addr[0]) ) { + LanCardClass* lanPath = new LanCardClass; + CopyMem(&lanPath->MacAddress, &MacAddressNode->MacAddress.Addr[0], sizeof(lanPath->MacAddress)); + DBG("UEFI MAC address of %ls LAN #%zu= ", DevicePathToXStringW(DevicePath).wc_str(), LanCardArrayNonConst.size()); + for (size_t Index2 = 0; Index2 < sizeof(lanPath->MacAddress); Index2++) { + DBG("%02hhX:", lanPath->MacAddress[Index2]); + } + DBG("\n"); + LanCardArrayNonConst.AddReference(lanPath, true); + } + } + DevicePath = NextDevicePathNode (DevicePath); + } + } + if (HandleBuffer != NULL) { + FreePool(HandleBuffer); + } +} + +EFI_STATUS ConfigManager::ReLoadConfig(const XStringW& ConfName) +{ + /* I'm pretty sure, one day, there will be other things to do than just LoadConfig */ + return LoadConfig(ConfName); +} + +EFI_STATUS ConfigManager::InitialisePlatform() +{ + EFI_STATUS Status; + + PrepatchSmbios(&g_SmbiosDiscoveredSettings); + GlobalConfig.OEMBoardFromSmbios = g_SmbiosDiscoveredSettings.OEMBoardFromSmbios; + GlobalConfig.OEMProductFromSmbios = g_SmbiosDiscoveredSettings.OEMProductFromSmbios; + GlobalConfig.OEMVendorFromSmbios = g_SmbiosDiscoveredSettings.OEMVendorFromSmbios; + + //replace / with _ + GlobalConfig.OEMProductFromSmbios.replaceAll(U'/', U'_'); + GlobalConfig.OEMBoardFromSmbios.replaceAll(U'/', U'_'); + DBG("Running on: '%s' with board '%s'\n", GlobalConfig.OEMProductFromSmbios.c_str(), GlobalConfig.OEMBoardFromSmbios.c_str()); + + gCPUStructure.ExternalClock = g_SmbiosDiscoveredSettings.ExternalClock; + gCPUStructure.CurrentSpeed = g_SmbiosDiscoveredSettings.CurrentSpeed; + gCPUStructure.MaxSpeed = g_SmbiosDiscoveredSettings.MaxSpeed; + + GetCPUProperties(); + GetDefaultCpuSettings(gSettings); //split from GetDefaultSettings() because it should be after GetCPUProperties() + DiscoverDevices(); +// GetMacAddress(&gConf.LanCardArrayNonConst); + + if ( g_SmbiosDiscoveredSettings.EnabledCores ) { + GlobalConfig.EnabledCores = g_SmbiosDiscoveredSettings.EnabledCores; + }else{ + GlobalConfig.EnabledCores = gCPUStructure.Cores; + } + + selfOem.initialize("config"_XS8, gFirmwareClover, GlobalConfig.OEMBoardFromSmbios, GlobalConfig.OEMProductFromSmbios, (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega)), gConf.LanCardArray); + Status = gConf.LoadConfig(L"config"_XSW); + + for ( size_t idx = 0 ; idx < GfxPropertiesArrayNonConst.size() ; ++idx ) { + GfxPropertiesArrayNonConst[idx].LoadVBios = gSettings.Graphics.LoadVBios; + } + +// /* populate GfxPropertiesArrayNonConst */ +// GfxPropertiesArrayNonConst.setEmpty(); +// for ( size_t idx = 0 ; idx < m_Discoverer.GfxPropertiesArray.size() ; ++idx ) { +// GfxProperties* gfx = new GfxProperties; +// *gfx = GfxPropertiesArray[idx]; +// (*gfx).LoadVBios = gSettings.Graphics.LoadVBios; +// GfxPropertiesArrayNonConst.AddReference(gfx, true); +// } +// +// /* populate HdaPropertiesArrayNonConst */ +// HdaPropertiesArrayNonConst.setEmpty(); +// for ( size_t idx = 0 ; idx < m_Discoverer.HdaPropertiesArray.size() ; ++idx ) { +// HdaProperties* hda = new HdaProperties; +// *hda = HdaPropertiesArray[idx]; +// HdaPropertiesArrayNonConst.AddReference(hda, true); +// } +// +// /* populate LanCardArrayNonConst */ +// LanCardArrayNonConst.setEmpty(); +// GetUEFIMacAddress(); +//// if ( LanCardArrayNonConst.size() == 0 /*&& gSettings.RtVariables.GetLegacyLanAddress()*/ ) { +// for ( size_t idx = 0 ; idx < m_Discoverer.LanCardArray.size() ; ++idx ) { +// if ( !LanCardArrayNonConst.containsMacAddress(m_Discoverer.LanCardArray[idx].Mac)) { +// LanCardClass* lan = new LanCardClass; +// memcpy(&lan->MacAddress, m_Discoverer.LanCardArray[idx].Mac, sizeof(lan->MacAddress)); +// LanCardArrayNonConst.AddReference(lan, true); +// } +// } +//// } + + // Why this overrides ? Should we remove the setting from config.plist ? + gSettings.GUI.Mouse.PointerEnabled = TRUE; + gSettings.GUI.Mouse.PointerSpeed = 2; + gSettings.GUI.Mouse.DoubleClickTime = 500; //TODO - make it constant as nobody change it + + if (gSettings.Devices.Audio.ResetHDA) ResetHDA(); + +#ifdef ENABLE_SECURE_BOOT + InitializeSecureBoot(); +#endif // ENABLE_SECURE_BOOT + + return Status; +} + +ConfigManager gConf; diff --git a/rEFIt_UEFI/Settings/ConfigManager.h b/rEFIt_UEFI/Settings/ConfigManager.h new file mode 100644 index 000000000..f091ebdfd --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigManager.h @@ -0,0 +1,197 @@ +/* + * ConfigManager.h + * + * Created on: Apr 21, 2021 + * Author: jief + */ + +#ifndef PLATFORM_CONFIGMANAGER_H_ +#define PLATFORM_CONFIGMANAGER_H_ + +#include "ConfigPlist/ConfigPlistClass.h" +#include "ConfigPlist/SMBIOSPlist.h" +#include "../Platform/hda.h" // for HRDW_MANUFACTERER + + +class DiscoveredSlotDeviceClass +{ +public: + uint8_t Index = 0xFF; + UINT16 SegmentGroupNum = 0; + UINT8 BusNum = 0; + UINT8 DevFuncNum = 0; + UINT8 SlotID = 0; + MISC_SLOT_TYPE SlotType = MISC_SLOT_TYPE(); + XString8 SlotName = XString8(); + + DiscoveredSlotDeviceClass() {} + +}; + +class SlotDeviceArrayClass : public XObjArray +{ +public: + SlotDeviceArrayClass() {} +}; + + + +class DiscoveredGfx +{ +public: + HRDW_MANUFACTERER Vendor = Unknown; + UINT8 Ports = 0; + UINT16 DeviceID = 0; + UINT16 Family = 0; + XString8 Model = XString8(); + XString8 Config = XString8(); + UINTN Segment = 0; + UINTN Bus = 0; + UINTN Device = 0; + UINTN Function = 0; + EFI_HANDLE Handle = 0; + UINT8 *Mmio = 0; + UINT32 Connectors = 0; + BOOLEAN ConnChanged = 0; + + // ATTENTION : this is not discovered. This will be assigned once config plist is read. + bool LoadVBios = 0; + + DiscoveredGfx() {} + DiscoveredGfx(const DiscoveredGfx&) = default; // default copy is ok because we can copy Mmio, because it's not allocated and still make sense once copied. + DiscoveredGfx& operator = (const DiscoveredGfx&) = default; +}; + +class GfxPropertiesArrayClass : public XObjArray +{ +public: + + + bool hasBrand(HRDW_MANUFACTERER brand) const { + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( ElementAt(idx).Vendor == brand ) return true; + } + return false; + } + + + bool hasNvidia() const { return hasBrand(Nvidia); } + bool hasIntel() const { return hasBrand(Intel); } + + bool isCardAtPosIntel(size_t pos) const { return size() > pos && ElementAt(pos).Vendor == Intel; } + bool isCardAtPosNvidia(size_t pos) const { return size() > pos && ElementAt(pos).Vendor == Nvidia; } + +}; + + + +class DiscoveredHdaProperties +{ +public: + UINT16 controller_vendor_id = 0; + UINT16 controller_device_id = 0; + CHAR16 *controller_name = 0; + + DiscoveredHdaProperties() {} +}; + +class HdaPropertiesArrayClass : public XObjArray +{ +}; + + + +class LanCardClass +{ + public: + UINT8 MacAddress[6] = {0}; // MAC address + + LanCardClass() {} +}; + +class LanCardArrayClass : public XObjArray +{ +public: + /* Requirment : MacAddressToLookFor is 6 chars long */ + bool containsMacAddress(const UINT8* MacAddressToLookFor) const { + for ( size_t idx = 0 ; idx < size() ; ++idx ) { + if ( memcmp(MacAddressToLookFor, ElementAt(idx).MacAddress, 6) == 0 ) return true; + } + return false; + } +}; + + + + + + +class ConfigManager +{ +protected: + /* this is for internal usage */ + ConfigPlistClass configPlist = ConfigPlistClass(); // current config.plist. Values are "transfered" into SETTINGS_DATA + SmbiosPlistClass smbiosPlist = SmbiosPlistClass(); + + +public: + /* + * For now, the non-const version are exposed to public. + * The goal is that non modification is made from outside of this object. + * Refactoring is in progress and this variable names make it easier to track down where changes happen + */ + + // Discovered hardware. This will be used to create the data to patch Smbios, for example. + SlotDeviceArrayClass SlotDeviceArrayNonConst = SlotDeviceArrayClass(); + GfxPropertiesArrayClass GfxPropertiesArrayNonConst = GfxPropertiesArrayClass(); + HdaPropertiesArrayClass HdaPropertiesArrayNonConst = HdaPropertiesArrayClass(); + LanCardArrayClass LanCardArrayNonConst = LanCardArrayClass(); + + /* + * Const version of above members. The ones to mainly use. Eventually the ones to ONLY use. + * The goal is that non modification is made from outside of this object. + */ + const SlotDeviceArrayClass& SlotDeviceArray = SlotDeviceArrayNonConst; + const GfxPropertiesArrayClass& GfxPropertiesArray = GfxPropertiesArrayNonConst; + const HdaPropertiesArrayClass& HdaPropertiesArray = HdaPropertiesArrayNonConst; + const LanCardArrayClass& LanCardArray = LanCardArrayNonConst; + + ConfigManager () {}; + ~ConfigManager () {}; + + ConfigManager (const ConfigManager &other) = delete; + ConfigManager (ConfigManager &&other) = delete; + ConfigManager& operator= (const ConfigManager &other) = delete; + ConfigManager& operator= (ConfigManager &&other) = delete; + + void FillSmbiosWithDefaultValue(MACHINE_TYPES Model, const SmbiosPlistClass::SmbiosDictClass& smbiosDictClass); + + /* + * Look for {ConfName}.plist and smbios.plist and load them, "transfer" the settings into gSettings and call afterGetUserSettings() + * ConfName : name of the file, without .plist extension. File will be searched in OEM or main folder + * This is for live reload (from the menu) of a new config.plist. + * 2021-04 : not really tested yet. + */ + EFI_STATUS ReLoadConfig(const XStringW& ConfName); + + /* + * Populate SlotDeviceArray, GfxPropertiesArray, HdaPropertiesArray, LanCardArray + * Only call once in the lifetime + */ + EFI_STATUS InitialisePlatform(); + +protected: + void DiscoverDevices(); + void is2ndGreaterThen1st (const CHAR8 *i, const CHAR8 *j); + void applySettings() const; + void GetUEFIMacAddress(); + EFI_STATUS LoadConfigPlist(const XStringW& ConfName); + EFI_STATUS LoadSMBIOSPlist(const XStringW& ConfName); + EFI_STATUS LoadConfig(const XStringW& ConfName); +}; + +#if !defined(DONT_DEFINE_GLOBALS) +extern ConfigManager gConf; +#endif + +#endif /* PLATFORM_CONFIGMANAGER_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.cpp b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.cpp new file mode 100644 index 000000000..d77c34769 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.cpp @@ -0,0 +1,42 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "ConfigPlistAbstract.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + + +bool ConfigPlistAbstractClass::parse(XmlLiteParser* xmlLiteParser, const XString8& xmlPath) +{ + xmlLiteParser->moveForwardUntilSignificant(); + xmlLiteParser->skipHeader(); + auto pos = xmlLiteParser->getPosition(); + bool b = parseFromXmlLite(xmlLiteParser, xmlPath, true); + if ( !b ) return false; + b = validate(xmlLiteParser, xmlPath, pos, true); + return b; +} + +bool ConfigPlistAbstractClass::parse(const LString8& buf, size_t size, const XString8& xmlPath, XmlLiteParser* xmlLiteParser) +{ + xmlLiteParser->init(buf.c_str(), size); + return parse(xmlLiteParser, xmlPath); +} + + +bool ConfigPlistAbstractClass::parse(const LString8& buf, size_t size, const XString8& xmlPath) +{ + XmlLiteParser xmlLiteParser; + xmlLiteParser.init(buf.c_str(), size); + return parse(&xmlLiteParser, xmlPath); +} + +bool ConfigPlistAbstractClass::parse(const LString8& buf, size_t size) +{ + return parse(buf, size, ""_XS8); +} diff --git a/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.h b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.h new file mode 100644 index 000000000..de55667bb --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistAbstract.h @@ -0,0 +1,28 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTABSTRACTCLASS_H_ +#define _CONFIGPLISTABSTRACTCLASS_H_ + +#include "../../cpp_lib/XmlLiteDictTypes.h" + + +class ConfigPlistAbstractClass : public XmlDict +{ + using super = XmlDict; +public: + + ConfigPlistAbstractClass() {}; + + bool parse(XmlLiteParser* xmlLiteParser, const XString8& xmlPath); + bool parse(const LString8& buf, size_t size, const XString8& xmlPath, XmlLiteParser* xmlLiteParser); + bool parse(const LString8& buf, size_t size, const XString8& xmlPath); + bool parse(const LString8& buf, size_t size); + +}; + +#endif /* _CONFIGPLISTABSTRACTCLASS_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.cpp b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.cpp new file mode 100644 index 000000000..7a10bc30b --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.cpp @@ -0,0 +1,13 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "ConfigPlistClass.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +//static ConfigPlist gConfigPlist; + diff --git a/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.h b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.h new file mode 100644 index 000000000..c34073fa6 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/ConfigPlistClass.h @@ -0,0 +1,113 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_H_ +#define _CONFIGPLISTCLASS_H_ + +#include "../../include/VolumeTypes.h" +#include "../../include/OSTypes.h" +#include "../../include/OSFlags.h" +#include "../../include/BootTypes.h" +#include "../../include/Languages.h" +#include "../../include/Devices.h" +#include "../../include/QuirksCodes.h" +#include "../../include/TagTypes.h" +#include "../../include/Pci.h" +#include "../../entry_scan/loader.h" // for KERNEL_SCAN_xxx constants +#include // for Smbios memory type +#include "../../Platform/guid.h" +extern "C" { + #include +} +#include "../../Platform/cpu.h" +//#include "../../Platform/nvidia.h" +extern UINT8 default_NVCAP[]; // dependecy problem. TODO +extern const UINT8 default_dcfg_0[]; +extern const UINT8 default_dcfg_1[]; + + +#include "../../cpp_lib/undefinable.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteCompositeTypes.h" +#include "../../cpp_lib/XmlLiteDictTypes.h" +#include "../../cpp_lib/XmlLiteArrayTypes.h" +#include "../../cpp_lib/XmlLiteUnionTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +#include "../../cpp_foundation/XString.h" +#include "../../cpp_foundation/XStringArray.h" +#include "../../cpp_foundation/XArray.h" +#include "../../cpp_foundation/XObjArray.h" +#include "../../Platform/Utils.h" + +#include "ConfigPlistAbstract.h" +#include "SMBIOSPlist.h" + +class ConfigPlistClass : public ConfigPlistAbstractClass +{ + using super = ConfigPlistAbstractClass; +public: + #include "Config_ACPI.h" + #include "Config_Boot.h" + #include "Config_BootGraphics.h" + #include "Config_CPU.h" + #include "Config_Devices.h" + #include "Config_GUI.h" + #include "Config_Graphics.h" + #include "Config_KernelAndKextPatches.h" + #include "Config_SystemParameters.h" + #include "Config_RtVariables.h" + #include "Config_Quirks.h" + + ACPI_Class ACPI = ACPI_Class(); + Boot_Class Boot = Boot_Class(); + BootGraphics_Class BootGraphics = BootGraphics_Class(); + CPU_Class CPU = CPU_Class(); + DevicesClass Devices = DevicesClass(); + XmlStringWArray DisableDrivers = XmlStringWArray(); + GUI_Class GUI = GUI_Class(); + Graphics_Class Graphics = Graphics_Class(*this); + KernelAndKextPatches_Class KernelAndKextPatches = KernelAndKextPatches_Class(); +protected: + SmbiosPlistClass::SmbiosDictClass SMBIOS = SmbiosPlistClass::SmbiosDictClass(); // use the same dict as for standalone smbios plist +public: + SystemParameters_Class SystemParameters = SystemParameters_Class(); + RtVariables_Class RtVariables = RtVariables_Class(); + Quirks_Class Quirks = Quirks_Class(); + + XmlDictField m_fields[13] = { + {"ACPI", ACPI}, + {"Boot", Boot}, + {"BootGraphics", BootGraphics}, + {"CPU", CPU}, + {"Devices", Devices}, + {"DisableDrivers", DisableDrivers}, + {"GUI", GUI}, + {"Graphics", Graphics}, + {"KernelAndKextPatches", KernelAndKextPatches}, + {"SMBIOS", SMBIOS}, + {"SystemParameters", SystemParameters}, + {"RtVariables", RtVariables}, + {"Quirks", Quirks}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + ConfigPlistClass() {}; + + const decltype(DisableDrivers)::ValueType& dgetDisabledDriverArray() const { return DisableDrivers.isDefined() ? DisableDrivers.value() : DisableDrivers.nullValue; }; + const decltype(SMBIOS)& getSMBIOS() const { return SMBIOS; }; + +}; + + +//extern const ConfigPlist& configPlist; +//extern const ConfigPlist& getConfigPlist(); + +#endif /* _CONFIGPLISTCLASS_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.cpp b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.cpp new file mode 100644 index 000000000..106455929 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.cpp @@ -0,0 +1,27 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "ConfigPlistClass.h" +#include "Config_ACPI.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + +// +//XmlAbstractType& ConfigPlistClass::ACPI_Class::ACPI_RenamesDevices_Class::parseKeyAndValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const char** keyValuePtr, size_t* keyValueLengthPtr) +//{ +// XmlKeyAndValue* kv = new XmlKeyAndValue(); +// if ( kv->parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { +// KV.AddReference(kv, true); +// *keyValuePtr = kv->xmlKey.xstring8.c_str(); +// *keyValueLengthPtr = kv->xmlKey.xstring8.sizeInBytes(); +// return *kv; +// }else{ +// delete kv; +// return nullXmlType; +// } +//} diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.h new file mode 100644 index 000000000..4c7742757 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI.h @@ -0,0 +1,188 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_ACPI_H_ +#define _CONFIGPLISTCLASS_ACPI_H_ + + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + +class ACPI_Class : public XmlDict +{ + using super = XmlDict; +public: + + + #include "Config_ACPI_DSDT.h" + #include "Config_ACPI_SSDT.h" + + class RenameDict : public XmlRepeatingDict> + { + public: + RenameDict() { ignoreCommented = false; } // TODO: put back true. + }; + + class ACPI_RenamesDevices_Class : public XmlUnion + { + protected: + public: + RenameDict RenamesDevicesAsDict = RenameDict(); + XmlArray RenamesDevicesAsArray = XmlArray(); + + protected: + XmlUnionField m_fieldsZ[2] = { RenamesDevicesAsDict, RenamesDevicesAsArray }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fieldsZ; *nb = sizeof(m_fieldsZ)/sizeof(m_fieldsZ[0]); }; + + public: + ACPI_RenamesDevices_Class() { RenamesDevicesAsDict.ignoreCommented = false; }; + + size_t size() const { + if ( RenamesDevicesAsDict.isDefined() ) return RenamesDevicesAsDict.valueArray().size(); + size_t size = 0; + for ( size_t idx = 0 ; idx < RenamesDevicesAsArray.size() ; ++idx ) { + auto RenameDict = RenamesDevicesAsArray[idx]; + size += RenameDict.valueArray().size(); + } + return size; + } + + const XmlAddKey& getAtIndex(size_t pos) const { + if ( RenamesDevicesAsDict.isDefined() ) return RenamesDevicesAsDict.valueArray()[pos]; + size_t currentPos = 0; + for ( size_t idx = 0 ; idx < RenamesDevicesAsArray.size() ; ++idx ) { + auto& RenameDict = RenamesDevicesAsArray[idx]; + for ( size_t jdx = 0 ; jdx < RenameDict.valueArray().size() ; ++jdx ) { + if ( currentPos == pos ) { + auto& v = RenameDict.valueArray()[jdx]; + return v; + } + ++currentPos; + } + } + panic("pos > length"); + } + }; + + class ACPI_DropTables_Class : public XmlDict + { + using super = XmlDict; + protected: + class Signature_Class : public XmlString8AllowEmpty + { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) return true; + if ( xstring8.length() == 4 ) return true; + xmlLiteParser->addWarning(generateErrors, S8Printf("Expect a string of 4 chars for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return true; // TODO : we should return false, but currently Clover accept string that are not 4 chars long. +// return false; // parsing can continue. + } + + } Signature = Signature_Class(); + XmlString8AllowEmpty TableId = XmlString8AllowEmpty(); + XmlUInt32 Length = XmlUInt32(); + XmlBool DropForAllOS = XmlBool(); + + XmlDictField m_fields[4] = { + {"Signature", Signature}, + {"TableId", TableId}, + {"Length", Length}, + {"DropForAllOS", DropForAllOS}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + UINT32 dgetSignature() const { return Signature.isDefined() ? SIGNATURE_32(Signature.value()[0], Signature.value()[1], Signature.value()[2], Signature.value()[3]) : 0; }; + UINT64 dgetTableId() const { + if ( !TableId.isDefined() ) return 0; + CHAR8 Id[9] = { 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + for ( size_t idx = 0 ; idx < TableId.value().length() ; idx++ ) { + // DBG("%c", *Str); + Id[idx] = TableId.value()[idx]; + } + return *(UINT64*)&Id; + }; + UINT32 dgetTabLength() const { return Length.isDefined() ? Length.value() : 0; }; + bool dgetOtherOS() const { return DropForAllOS.isDefined() ? DropForAllOS.value() : false; }; + + + }; + + + + + XmlArray ACPIDropTablesArray = XmlArray(); + DSDT_Class DSDT = DSDT_Class(); + SSDT_Class SSDT = SSDT_Class(); +protected: + XmlUInt64 ResetAddress = XmlUInt64(); + XmlUInt8 ResetValue = XmlUInt8(); + XmlBool HaltEnabler = XmlBool(); + XmlBool FixHeaders = XmlBool(); + XmlBool FixMCFG = XmlBool(); + XmlBool DisableASPM = XmlBool(); + XmlBool smartUPS = XmlBool(); + XmlBool PatchAPIC = XmlBool(); + XmlString8Array SortedOrder = XmlString8Array(); + XmlBool AutoMerge = XmlBool(); + XmlStringWArray DisabledAML = XmlStringWArray(); +public: + ACPI_RenamesDevices_Class RenameDevices = ACPI_RenamesDevices_Class(); + + XmlDictField m_fields[15] = { + {"DropTables", ACPIDropTablesArray}, + {"DSDT", DSDT}, + {"SSDT", SSDT}, + {"ResetAddress", ResetAddress}, + {"ResetValue", ResetValue}, + {"HaltEnabler", HaltEnabler}, + {"FixHeaders", FixHeaders}, + {"FixMCFG", FixMCFG}, + {"DisableASPM", DisableASPM}, + {"smartUPS", smartUPS}, + {"PatchAPIC", PatchAPIC}, + {"SortedOrder", SortedOrder}, + {"AutoMerge", AutoMerge}, + {"DisabledAML", DisabledAML}, + {"RenameDevices", RenameDevices}, + }; + +public: + ACPI_Class() {}; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +// const XmlArray& getDropTables() const { return DropTables; }; +// const DSDT_Class& getDSDT() const { return DSDT; }; +// const SSDT_Class& getSSDT() const { return SSDT; }; + uint64_t dgetResetAddr() const { return ResetAddress.isDefined() ? ResetAddress.value() : 0; }; + uint8_t dgetResetVal() const + { + if ( ResetValue.isDefined() ) return ResetValue.value(); + if ( dgetResetAddr() == 0x64) return 0xFE; + if ( dgetResetAddr() == 0xCF9) return 0x06; + return 0; + } + bool dgetSlpSmiEnable() const { return HaltEnabler.isDefined() ? HaltEnabler.value() : false; }; + bool dgetFixHeaders() const { return FixHeaders.isDefined() ? FixHeaders.value() : false; }; + bool dgetFixMCFG() const { return FixMCFG.isDefined() ? FixMCFG.value() : false; }; + bool dgetNoASPM() const { return DisableASPM.isDefined() ? DisableASPM.value() : false; }; + bool dgetsmartUPS() const { return smartUPS.isDefined() ? smartUPS.value() : false; }; + bool dgetPatchNMI() const { return PatchAPIC.isDefined() ? PatchAPIC.value() : false; }; + bool dgetAutoMerge() const { return AutoMerge.isDefined() ? AutoMerge.value() : false; }; + const decltype(DisabledAML)::ValueType& dgetDisabledAML() const { return DisabledAML.isDefined() ? DisabledAML.value() : DisabledAML.nullValue; }; + const decltype(SortedOrder)::ValueType& dgetSortedACPI() const { return SortedOrder.isDefined() ? SortedOrder.value() : SortedOrder.nullValue; }; + +// const XmlArray& dgetACPIDropTablesArray() const { return DropTables.isDefined() ? DropTables : XmlArray::NullArray; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_ACPI_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.cpp b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.cpp new file mode 100644 index 000000000..438ecb765 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.cpp @@ -0,0 +1,51 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "ConfigPlistClass.h" +#include "Config_ACPI.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + + +XmlAbstractType& ConfigPlistClass::ACPI_Class::DSDT_Class::ACPI_DSDT_Fixes_Class::parseValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const XmlParserPosition &keyPos, const char *keyValue, size_t keyValueLength, bool* keyFound) +{ + for ( size_t idx = 0 ; idx < sizeof(ACPI_DSDT_Fixe_Array)/sizeof(ACPI_DSDT_Fixe_Array[0]) ; idx++ ) + { + if ( ACPI_DSDT_Fixe_Array[idx].getNewName() && strnIsEqualIC(keyValue, keyValueLength, ACPI_DSDT_Fixe_Array[idx].getNewName()) ) { + // new name + if ( ACPI_DSDT_Fixe_Array[idx].oldEnabled.isDefined() ) { + xmlLiteParser->addWarning(true, S8Printf("Tag '%s:%d' was already defined with the old name '%s'. Previous value ignored.", xmlPath.c_str(), keyPos.getLine(), ACPI_DSDT_Fixe_Array[idx].m_oldName)); + ACPI_DSDT_Fixe_Array[idx].oldEnabled.reset(); + } + if ( ACPI_DSDT_Fixe_Array[idx].newEnabled.isDefined() ) { + xmlLiteParser->addWarning(true, S8Printf("Tag '%s:%d' was already defined. Previous value ignored.", xmlPath.c_str(), keyPos.getLine())); + ACPI_DSDT_Fixe_Array[idx].newEnabled.reset(); + } + ACPI_DSDT_Fixe_Array[idx].newEnabled.parseFromXmlLite(xmlLiteParser, xmlPath, true); + *keyFound = true; + return ACPI_DSDT_Fixe_Array[idx].newEnabled; + }else + if ( ACPI_DSDT_Fixe_Array[idx].m_oldName && strnIsEqualIC(keyValue, keyValueLength, ACPI_DSDT_Fixe_Array[idx].m_oldName) ) { + // old name + if ( ACPI_DSDT_Fixe_Array[idx].newEnabled.isDefined() ) { + xmlLiteParser->addWarning(true, S8Printf("Tag '%s:%d' was already defined with the new name '%s'. Previous value ignored.", xmlPath.c_str(), keyPos.getLine(), ACPI_DSDT_Fixe_Array[idx].getNewName())); + ACPI_DSDT_Fixe_Array[idx].newEnabled.reset(); + } + if ( ACPI_DSDT_Fixe_Array[idx].oldEnabled.isDefined() ) { + xmlLiteParser->addWarning(true, S8Printf("Tag '%s:%d' was already defined. Previous value ignored.", xmlPath.c_str(), keyPos.getLine())); + ACPI_DSDT_Fixe_Array[idx].oldEnabled.reset(); + } + ACPI_DSDT_Fixe_Array[idx].oldEnabled.parseFromXmlLite(xmlLiteParser, xmlPath, true); + *keyFound = true; + return ACPI_DSDT_Fixe_Array[idx].oldEnabled; + } + } + return nullXmlType; +} + + diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.h new file mode 100644 index 000000000..60fcfe400 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_DSDT.h @@ -0,0 +1,201 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_ACPI_DSDT_H_ +#define _CONFIGPLISTCLASS_ACPI_DSDT_H_ + + +#include "../../include/DsdtFixList.h" + + +class DSDT_Class : public XmlDict +{ + using super = XmlDict; +public: + class ACPI_DSDT_Fixes_Class; + + class ACPI_DSDT_Fix : public XmlBool + { + using super = XmlBool; + friend class ACPI_DSDT_Fixes_Class; + protected: + const CHAR8* m_newName = NULL; + const CHAR8* m_oldName = NULL; + UINT32 m_bitData = 0; + XmlBool oldEnabled = XmlBool(); + XmlBool newEnabled = XmlBool(); + + public: + ACPI_DSDT_Fix(const CHAR8* newName, const CHAR8* oldName, UINT32 bitData ) : XmlBool(), m_newName(newName), m_oldName(oldName), m_bitData(bitData) {}; + ACPI_DSDT_Fix(const ACPI_DSDT_Fix&) { panic("copy ctor"); }; // can't do "=delete" because clang thinks it will be called at initialization "ACPI_DSDT_Fixes_Class Fixes = ACPI_DSDT_Fixes_Class();" + ACPI_DSDT_Fix& operator = (const ACPI_DSDT_Fix&) = delete; // { panic("copy ctor"); }; // = delete; + + virtual void reset() override { + super::reset(); + oldEnabled.reset(); + newEnabled.reset(); + }; + + const CHAR8* getNewName() const { return m_newName; } + const CHAR8* getOldName() const { return m_oldName; } + uint32_t getBitData() const { return m_bitData; } + + bool dgetOldEnabled() const { return oldEnabled.isDefined() ? oldEnabled.value() : false; }; + bool dgetNewEnabled() const { return newEnabled.isDefined() ? newEnabled.value() : false; }; + + bool dgetEnabled() const { + if ( oldEnabled.isDefined() && oldEnabled.value() ) return true; + if ( newEnabled.isDefined() && newEnabled.value() ) return true; + return false; + } + }; + + class ACPI_DSDT_Fixes_Class : public XmlDict + { + using super = XmlDict; + protected: + ACPI_DSDT_Fix ACPI_DSDT_Fixe_Array[31] = { // CAREFUL not to declare too much + { "AddDTGP_0001", "AddDTGP", FIX_DTGP }, + { "FixDarwin_0002", "FixDarwin", FIX_WARNING }, + { "FixShutdown_0004", "FixShutdown", FIX_SHUTDOWN }, + { "AddMCHC_0008", "AddMCHC", FIX_MCHC }, + { "FixHPET_0010", "FixHPET", FIX_HPET }, + { "FakeLPC_0020", "FakeLPC", FIX_LPC }, + { "FixIPIC_0040", "FixIPIC", FIX_IPIC }, + { "FixSBUS_0080", "FixSBUS", FIX_SBUS }, + { "FixDisplay_0100", "FixDisplay", FIX_DISPLAY }, + { "FixIDE_0200", "FixIDE", FIX_IDE }, + { "FixSATA_0400", "FixSATA", FIX_SATA }, + { "FixFirewire_0800", "FixFirewire", FIX_FIREWIRE }, + { "FixUSB_1000", "FixUSB", FIX_USB }, + { "FixLAN_2000", "FixLAN", FIX_LAN }, + { "FixAirport_4000", "FixAirport", FIX_WIFI }, + { "FixHDA_8000", "FixHDA", FIX_HDA }, + { "FixDarwin7_10000", "FixDarwin7", FIX_DARWIN }, + { "FIX_RTC_20000", "FixRTC", FIX_RTC }, + { "FIX_TMR_40000", "FixTMR", FIX_TMR }, + { "AddIMEI_80000", "AddIMEI", FIX_IMEI }, + { "FIX_INTELGFX_100000", "FixIntelGfx", FIX_INTELGFX }, + { "FIX_WAK_200000", "FixWAK", FIX_WAK }, + { "DeleteUnused_400000", "DeleteUnused", FIX_UNUSED }, + { "FIX_ADP1_800000", "FixADP1", FIX_ADP1 }, + { "AddPNLF_1000000", "AddPNLF", FIX_PNLF }, + { "FIX_S3D_2000000", "FixS3D", FIX_S3D }, + { "FIX_ACST_4000000", "FixACST", FIX_ACST }, + { "AddHDMI_8000000", "AddHDMI", FIX_HDMI }, + { "FixRegions_10000000", "FixRegions", FIX_REGIONS }, + { "FixHeaders_20000000", "FixHeaders", FIX_HEADERS }, + { NULL, "FixMutex", FIX_MUTEX } + }; + + public: + virtual void reset() override { + super::reset(); + for ( size_t idx = 0 ; idx < sizeof(ACPI_DSDT_Fixe_Array)/sizeof(ACPI_DSDT_Fixe_Array[0]) ; idx++ ) { + ACPI_DSDT_Fixe_Array[idx].reset(); + ACPI_DSDT_Fixe_Array[idx].reset(); + } + }; + // virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual XmlAbstractType& parseValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const XmlParserPosition &keyPos, const char *keyValue, size_t keyValueLength, bool* keyFound) override; + + uint32_t dgetFixBiosDsdt() const { + uint32_t FixDsdt = 0; + for (size_t Index = 0; Index < sizeof(ACPI_DSDT_Fixe_Array)/sizeof(ACPI_DSDT_Fixe_Array[0]); Index++) { + if ( ACPI_DSDT_Fixe_Array[Index].dgetEnabled() ) FixDsdt |= ACPI_DSDT_Fixe_Array[Index].getBitData(); + } + return FixDsdt; + } + }; + + class ACPI_DSDT_Patch_Class : public XmlDict + { + using super = XmlDict; + protected: + class TgtBridgeClass : public XmlData + { + using super = XmlData; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { +#ifdef JIEF_DEBUG +if ( xmlPath.contains("ACPI/DSDT/Patches[15]"_XS8) ) { + NOP; +} +#endif + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( isDefined() && value().size() > 0 && value().size() != 4 ) return xmlLiteParser->addWarning(generateErrors, S8Printf("TgtBridge must 4 bytes. It's %zu byte(s). ignored tag '%s:%d'.", value().size(), xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty Comment = XmlString8AllowEmpty(); + XmlData Find = XmlData(); + XmlData Replace = XmlData(); + TgtBridgeClass TgtBridge = TgtBridgeClass(); + + XmlDictField m_fields[5] = { + {"Comment", Comment}, + {"Disabled", Disabled}, + {"Find", Find}, + {"Replace", Replace}, + {"TgtBridge", TgtBridge}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + public: + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + uint8_t dgetBValue() const { return Disabled.isDefined() ? Disabled.value() : false; }; + XString8 dgetPatchDsdtLabel() const { return Comment.isDefined() ? Comment.value() : "(NoLabel)"_XS8; }; + const XBuffer& dgetPatchDsdtFind() const { return Find.isDefined() ? Find.value() : XBuffer::NullXBuffer; }; + const XBuffer& dgetPatchDsdtReplace() const { return Replace.isDefined() ? Replace.value() : XBuffer::NullXBuffer; }; + const XBuffer& dgetPatchDsdtTgt() const { return TgtBridge.isDefined() ? TgtBridge.value() : XBuffer::NullXBuffer; }; + }; + +protected: + XmlString8AllowEmpty Name = XmlString8AllowEmpty(); + XmlBool Debug = XmlBool(); + XmlBool Rtc8Allowed = XmlBool(); + XmlUInt8 PNLF_UID = XmlUInt8(); + XmlUInt32 FixMask = XmlUInt32(); +public: + ACPI_DSDT_Fixes_Class Fixes = ACPI_DSDT_Fixes_Class(); + XmlArray Patches = XmlArray(); +protected: + XmlBool ReuseFFFF = XmlBool(); + XmlBool SuspendOverride = XmlBool(); + + XmlDictField m_fields[9] = { + {"Name", Name}, + {"Debug", Debug}, + {"Rtc8Allowed", Rtc8Allowed}, + {"PNLF_UID", PNLF_UID}, + {"FixMask", FixMask}, + {"Fixes", Fixes}, + {"Patches", Patches}, + {"ReuseFFFF", ReuseFFFF}, + {"SuspendOverride", SuspendOverride}, + }; +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + XString8 dgetDsdtName() const { return Name.isDefined() && Name.value().notEmpty() ? Name.value() : "DSDT.aml"_XS8; }; + bool dgetDebugDSDT() const { return Debug.isDefined() ? Debug.value() : false; }; + bool dgetRtc8Allowed() const { return Rtc8Allowed.isDefined() ? Rtc8Allowed.value() : false; }; + uint8_t dgetPNLF_UID() const { return isDefined() ? PNLF_UID.isDefined() ? PNLF_UID.value() : 0x0a : 0; }; // TODO: different default value if section is not defined + uint32_t dgetFixDsdt() const { + // priority is given to Fixes + if ( Fixes.isDefined() ) return Fixes.dgetFixBiosDsdt(); + return FixMask.isDefined() ? FixMask.value() : 0; + }; +// const ACPI_DSDT_Fixes_Class& getFixes() const { return Fixes; }; +// const XmlArray& getPatches() const { return Patches; }; + bool dgetReuseFFFF() const { return ReuseFFFF.isDefined() ? ReuseFFFF.value() : false; }; + bool dgetSuspendOverride() const { return SuspendOverride.isDefined() ? SuspendOverride.value() : false; }; + +}; + +#endif /* _CONFIGPLISTCLASS_ACPI_DSDT_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_SSDT.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_SSDT.h new file mode 100644 index 000000000..e38b627ed --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_ACPI_SSDT.h @@ -0,0 +1,179 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_ACPI_SSDT_H_ +#define _CONFIGPLISTCLASS_ACPI_SSDT_H_ + + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + +class SSDT_Generate_Class : public XmlDict +{ + using super = XmlDict; +protected: +// // Instead of being a dict, Generate can be just a property true or false. +// XmlBool isTrue; + + // If isTrue is undefined. + XmlBool PStates = XmlBool(); + XmlBool CStates = XmlBool(); + XmlBool APSN = XmlBool(); + XmlBool APLF = XmlBool(); + XmlBool PluginType = XmlBool(); + + XmlDictField m_fields[5] = { + {"PStates", PStates}, + {"CStates", CStates}, + {"APSN", APSN}, + {"APLF", APLF}, + {"PluginType", PluginType}, + }; + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetPStates() const { return PStates.isDefined() ? PStates.value() : false; }; + bool dgetCStates() const { return CStates.isDefined() ? CStates.value() : false; }; + bool dgetAPSN() const { return APSN.isDefined() ? APSN.value() : false; }; + bool dgetAPLF() const { return APLF.isDefined() ? APLF.value() : false; }; + bool dgetPluginType() const { return PluginType.isDefined() ? PluginType.value() : false; }; + + undefinable_bool getPStates() const { return PStates.isDefined() ? undefinable_bool(PStates.value()) : undefinable_bool(); }; + undefinable_bool getCStates() const { return CStates.isDefined() ? undefinable_bool(CStates.value()) : undefinable_bool(); }; + undefinable_bool getAPSN() const { return APSN.isDefined() ? undefinable_bool(APSN.value()) : undefinable_bool(); }; + undefinable_bool getAPLF() const { return APLF.isDefined() ? undefinable_bool(APLF.value()) : undefinable_bool(); }; + undefinable_bool getPluginType() const { return PluginType.isDefined() ? undefinable_bool(PluginType.value()) : undefinable_bool(); }; + +}; + +class SSDT_Class : public XmlDict +{ + using super = XmlDict; +public: +//Generate + class XmlUnionGenerate : public XmlUnion + { + protected: + XmlBool xmlBool = XmlBool(); + SSDT_Generate_Class xmlDict = SSDT_Generate_Class(); + XmlUnionField m_fields[2] = { xmlBool, xmlDict}; + public: + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetGeneratePStates() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return xmlDict.dgetPStates(); + } + bool dgetGenerateCStates() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return xmlDict.dgetCStates(); + } + bool dgetGenerateAPSN() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return xmlDict.dgetAPSN(); + } + bool dgetGenerateAPLF() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return xmlDict.dgetAPLF(); + } + bool dgetGeneratePluginType() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return xmlDict.dgetPluginType(); + } + + + undefinable_bool getGeneratePStates() const { + if ( xmlBool.isDefined() ) return undefinable_bool(xmlBool.value()); + return xmlDict.getPStates(); + } + undefinable_bool getGenerateCStates() const { + if ( xmlBool.isDefined() ) return undefinable_bool(xmlBool.value()); + return xmlDict.getCStates(); + } + undefinable_bool getGenerateAPSN() const { + if ( xmlBool.isDefined() ) return undefinable_bool(xmlBool.value()); + return xmlDict.getAPSN(); + } + undefinable_bool getGenerateAPLF() const { + if ( xmlBool.isDefined() ) return undefinable_bool(xmlBool.value()); + return xmlDict.getAPLF(); + } + undefinable_bool getGeneratePluginType() const { + if ( xmlBool.isDefined() ) return undefinable_bool(xmlBool.value()); + return xmlDict.getPluginType(); + } + + }; + +public: + XmlUnionGenerate Generate = XmlUnionGenerate(); +protected: + XmlBool DropOem = XmlBool(); + XmlBool NoOemTableId = XmlBool(); + XmlBool NoDynamicExtract = XmlBool(); + XmlBool UseSystemIO = XmlBool(); + XmlBool EnableC7 = XmlBool(); + XmlBool EnableC6 = XmlBool(); + XmlBool EnableC4 = XmlBool(); + XmlBool EnableC2 = XmlBool(); + XmlUInt16 C3Latency = XmlUInt16(); + XmlUInt8 PLimitDict = XmlUInt8(); + XmlUInt8 UnderVoltStep = XmlUInt8(); + XmlBool DoubleFirstState = XmlBool(); + XmlUInt8 MinMultiplier = XmlUInt8(); + XmlUInt8 MaxMultiplier = XmlUInt8(); + XmlUInt8 PluginType = XmlUInt8(); + + XmlDictField m_fields[16] = { + {"Generate", Generate}, + {"DropOem", DropOem}, + {"NoOemTableId", NoOemTableId}, + {"NoDynamicExtract", NoDynamicExtract}, + {"UseSystemIO", UseSystemIO}, + {"EnableC7", EnableC7}, + {"EnableC6", EnableC6}, + {"EnableC4", EnableC4}, + {"EnableC2", EnableC2}, + {"C3Latency", C3Latency}, + {"PLimitDict", PLimitDict}, + {"UnderVoltStep", UnderVoltStep}, + {"DoubleFirstState", DoubleFirstState}, + {"MinMultiplier", MinMultiplier}, + {"MaxMultiplier", MaxMultiplier}, + {"PluginType", PluginType}, + }; + + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetDropSSDTSetting() const { return DropOem.isDefined() ? DropOem.value() : false; }; + bool dgetNoOemTableId() const { return NoOemTableId.isDefined() ? NoOemTableId.value() : false; }; + bool dgetNoDynamicExtract() const { return NoDynamicExtract.isDefined() ? NoDynamicExtract.value() : false; }; + bool dgetEnableISS() const { return UseSystemIO.isDefined() ? UseSystemIO.value() : false; }; + bool dgetEnableC7() const { return EnableC7.isDefined() ? EnableC7.value() : false; }; + bool dget_EnableC6() const { return EnableC6.isDefined() ? EnableC6.value() : false; }; + bool dget_EnableC4() const { return EnableC4.isDefined() ? EnableC4.value() : false; }; + bool dget_EnableC2() const { return EnableC2.isDefined() ? EnableC2.value() : false; }; + uint16_t dget_C3Latency() const { return C3Latency.isDefined() ? C3Latency.value() : 0; }; + uint8_t dgetPLimitDict() const { return PLimitDict.isDefined() ? PLimitDict.value() : 0; }; + uint8_t dgetUnderVoltStep() const { return UnderVoltStep.isDefined() ? UnderVoltStep.value() : 0; }; + bool dgetDoubleFirstState() const { return DoubleFirstState.isDefined() ? DoubleFirstState.value() : false; }; + uint8_t dgetMinMultiplier() const { return MinMultiplier.isDefined() ? MinMultiplier.value() : 0; }; + uint8_t dgetMaxMultiplier() const { return MaxMultiplier.isDefined() ? MaxMultiplier.value() : 0; }; + uint8_t dgetPluginType() const { return PluginType.isDefined() ? PluginType.value() : 0; }; + + undefinable_bool getEnableC6() const { return EnableC6.isDefined() ? undefinable_bool(EnableC6.value()) : undefinable_bool(); }; + undefinable_bool getPluginType() const { return PluginType.isDefined() ? undefinable_bool(PluginType.value()) : undefinable_bool(); }; + undefinable_uint8 getMinMultiplier() const { return MinMultiplier.isDefined() ? undefinable_uint8(MinMultiplier.value()) : undefinable_uint8(); }; + undefinable_uint16 getC3Latency() const { return C3Latency.isDefined() ? undefinable_uint16(C3Latency.value()) : undefinable_uint16(); }; + +}; + + +#endif /* _CONFIGPLISTCLASS_ACPI_SSDT_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Boot.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Boot.h new file mode 100644 index 000000000..909d61457 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Boot.h @@ -0,0 +1,232 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_Boot_H_ +#define _CONFIGPLISTCLASS_Boot_H_ + + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteCompositeTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" +#include "../../include/BootTypes.h" + +#ifndef UNIT_TESTS_MACOS +/* This is interdependency. This is just for now to be compatible with SETTINGS_DATA. Refactoring in progress. */ +//#include "../../libeg/XImage.h" +//#include "../../refit/lib.h" +//#include "../../Platform/Self.h" +#endif + +#include "../../entry_scan/secureboot.h" + +class Boot_Class : public XmlDict +{ + using super = XmlDict; + + class XMPDetectionClass : public XmlUnion + { + using super = XmlUnion; + protected: + XmlStrictBool xmlBool = XmlStrictBool(); + XmlInt8 xmlInt8 = XmlInt8(); + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + + XmlUnionField m_fields[3] = { xmlBool, xmlInt8, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( xmlBool.isDefined() ) return true; // ok, whatever bool value is + if ( xmlInt8.isDefined() ) { + if ( xmlInt8.value() < -1 || xmlInt8.value() > 2 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("XMPDetection can -1, 0, 1 or 2 for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + xmlInt8.reset(); + xmlInt8.setInt8Value(-1); + } + return true; + } + if ( xmlString8.value().startWithOrEqualToIC("n") ) return true; + if ( xmlString8.value().startWithOrEqualToIC("-") ) return true; + xmlLiteParser->addWarning(generateErrors, S8Printf("Expect a boolean, an int8 or a string starting with 'n' or '-' for '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; // parsing can continue. + } + + public: + int8_t dgetValue() const { + if ( xmlBool.isDefined() ) return xmlBool.value() ? 0 : -1; + if ( xmlInt8.isDefined() ) return xmlInt8.value(); + if ( xmlString8.isDefined() ) { + if ( xmlString8.value().startWithOrEqualToIC("n") ) return -1; + if ( xmlString8.value().startWithOrEqualToIC("-") ) return -1; + } + return 0; + } + }; + +public: + XmlInt32 Timeout = XmlInt32(); + XmlBool SkipHibernateTimeout = XmlBool(); + XmlBool DisableCloverHotkeys = XmlBool(); + XmlString8AllowEmpty BootArgs = XmlString8AllowEmpty(); + XmlBool NeverDoRecovery = XmlBool(); + XmlStringW DefaultVolume = XmlStringW(); + XmlString8AllowEmpty DefaultLoader = XmlString8AllowEmpty(); + XmlBoolYesNo Debug = XmlBoolYesNo(); + XmlBool FastBoot = XmlBool(); + XmlBool NoEarlyProgress = XmlBool(); + XmlBool NeverHibernate = XmlBool(); + XmlBool StrictHibernate = XmlBool(); + XmlBool RtcHibernateAware = XmlBool(); + XmlBool HibernationFixup = XmlBool(); + XmlBool SignatureFixup = XmlBool(); + XmlBool SecureBootSetupMode = XmlBool(); + XmlString8AllowEmpty SecureBootPolicy = XmlString8AllowEmpty(); + XmlStringWArray WhiteList = XmlStringWArray(); + XmlStringWArray BlackList = XmlStringWArray(); + XMPDetectionClass XMPDetection = XMPDetectionClass(); + XmlString8AllowEmpty Legacy = XmlString8AllowEmpty(); + XmlUInt16 LegacyBiosDefaultEntry = XmlUInt16(); + class CustomLogoUnion: public XmlUnion + { + using super = XmlUnion; + public: + XmlBool xmlBool = XmlBool(); + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + XmlData xmlData = XmlData(); + XmlUnionField m_fields[3] = { xmlBool, xmlString8, xmlData}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( !xmlString8.isDefined() ) return true; + if ( xmlString8.value().isEqualIC("Apple") ) return true; + if ( xmlString8.value().isEqualIC("Alternate") ) return true; + if ( xmlString8.value().isEqualIC("Theme") ) return true; + xmlLiteParser->addWarning(generateErrors, S8Printf("Expect a boolean or \"Apple\", \"Alternate\", \"Theme\" or an image pathname for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; // parsing can continue. + } + } CustomLogo = CustomLogoUnion(); + + XmlDictField m_fields[23] = { + {"Timeout", Timeout}, + {"SkipHibernateTimeout", SkipHibernateTimeout}, + {"DisableCloverHotkeys", DisableCloverHotkeys}, + {"Arguments", BootArgs}, + {"NeverDoRecovery", NeverDoRecovery}, + {"DefaultVolume", DefaultVolume}, + {"DefaultLoader", DefaultLoader}, + {"Debug", Debug}, + {"Fast", FastBoot}, + {"NoEarlyProgress", NoEarlyProgress}, + {"NeverHibernate", NeverHibernate}, + {"StrictHibernate", StrictHibernate}, + {"RtcHibernateAware", RtcHibernateAware}, + {"HibernationFixup", HibernationFixup}, + {"SignatureFixup", SignatureFixup}, + {"Secure", SecureBootSetupMode}, + {"Policy", SecureBootPolicy}, + {"WhiteList", WhiteList}, + {"BlackList", BlackList}, + {"XMPDetection", XMPDetection}, + {"Legacy", Legacy}, + {"LegacyBiosDefaultEntry", LegacyBiosDefaultEntry}, + {"CustomLogo", CustomLogo}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + /* dget method means get value and returns default if undefined. dget = short for defaultget */ + int64_t dgetTimeout() const { return Timeout.isDefined() ? Timeout.value() : -1; }; + bool dgetSkipHibernateTimeout() const { return SkipHibernateTimeout.isDefined() ? SkipHibernateTimeout.value() : false; }; + bool dgetDisableCloverHotkeys() const { return DisableCloverHotkeys.isDefined() ? DisableCloverHotkeys.value() : false; }; + const XString8& dgetBootArgs() const { return BootArgs.isDefined() ? BootArgs.value() : NullXString8; }; + bool dgetNeverDoRecovery() const { return NeverDoRecovery.isDefined() ? NeverDoRecovery.value() : false; }; + const decltype(DefaultVolume)::ValueType& dgetDefaultVolume() const { + if ( !DefaultVolume.isDefined() ) return DefaultVolume.nullValue; + if ( DefaultVolume.value().isEqualIC("LastBootedVolume") ) return DefaultVolume.nullValue; + return DefaultVolume.isDefined() ? DefaultVolume.value() : DefaultVolume.nullValue; + }; + const XString8& dgetDefaultLoader() const { return DefaultLoader.isDefined() ? DefaultLoader.value() : NullXString8; }; + bool dgetDebugLog() const { return Debug.isDefined() ? Debug.value() : false; }; + bool dgetFastBoot() const { return FastBoot.isDefined() ? FastBoot.value() : false; }; + bool dgetNoEarlyProgress() const { return NoEarlyProgress.isDefined() ? NoEarlyProgress.value() : false; }; + bool dgetNeverHibernate() const { return NeverHibernate.isDefined() ? NeverHibernate.value() : false; }; + bool dgetStrictHibernate() const { return StrictHibernate.isDefined() ? StrictHibernate.value() : false; }; + bool dgetRtcHibernateAware() const { return RtcHibernateAware.isDefined() ? RtcHibernateAware.value() : false; }; + bool dgetHibernationFixup() const { return HibernationFixup.isDefined() ? HibernationFixup.value() : false; }; + bool dgetSignatureFixup() const { return SignatureFixup.isDefined() ? SignatureFixup.value() : false; }; + INT8 dgetSecureSetting() const { return isDefined() ? SecureBootSetupMode.isDefined() ? SecureBootSetupMode.value() : -1 : 0; }; // to Rename to SecureBootSetupMode // TODO: different default value if section is not defined + UINT8 dgetSecureBootPolicy() const { + if ( !SecureBootPolicy.isDefined() ) return 0; + if ( SecureBootPolicy.value().length() < 1 ) return 0; + if ((SecureBootPolicy.value()[0] == 'D') || (SecureBootPolicy.value()[0] == 'd')) { + // Deny all images + return SECURE_BOOT_POLICY_DENY; + } else if ((SecureBootPolicy.value()[0] == 'A') || (SecureBootPolicy.value()[0] == 'a')) { + // Allow all images + return SECURE_BOOT_POLICY_ALLOW; + } else if ((SecureBootPolicy.value()[0] == 'Q') || (SecureBootPolicy.value()[0] == 'q')) { + // Query user + return SECURE_BOOT_POLICY_QUERY; + } else if ((SecureBootPolicy.value()[0] == 'I') || (SecureBootPolicy.value()[0] == 'i')) { + // Insert + return SECURE_BOOT_POLICY_INSERT; + } else if ((SecureBootPolicy.value()[0] == 'W') || (SecureBootPolicy.value()[0] == 'w')) { + // White list + return SECURE_BOOT_POLICY_WHITELIST; + } else if ((SecureBootPolicy.value()[0] == 'B') || (SecureBootPolicy.value()[0] == 'b')) { + // Black list + return SECURE_BOOT_POLICY_BLACKLIST; + } else if ((SecureBootPolicy.value()[0] == 'U') || (SecureBootPolicy.value()[0] == 'u')) { + // User policy + return SECURE_BOOT_POLICY_USER; + } + return 0; + } + + const decltype(WhiteList)::ValueType& dgetSecureBootWhiteList() const { return WhiteList.isDefined() ? WhiteList.value() : WhiteList.nullValue; }; + const decltype(BlackList)::ValueType& dgetSecureBootBlackList() const { return BlackList.isDefined() ? BlackList.value() : BlackList.nullValue; }; + +// int8_t dgetXMPDetection() const { +// if ( XMPDetection.xmlBool.isDefined() ) return XMPDetection.xmlBool.value(); +// if ( XMPDetection.xmlInt8.isDefined() ) return XMPDetection.xmlInt8.value(); +// return 0; +// }; + int8_t dgetXMPDetection() const { return XMPDetection.dgetValue(); } + XString8 dgetLegacyBoot(bool isFirmwareClover) const { return isDefined() ? Legacy.isDefined() ? Legacy.value() : isFirmwareClover ? "PBR"_XS8 : "LegacyBiosDefault"_XS8 : NullXString8; }; // TODO: different default value if section is not defined + UINT16 dgetLegacyBiosDefaultEntry() const { return LegacyBiosDefaultEntry.isDefined() ? LegacyBiosDefaultEntry.value() : 0; }; + + const XString8& dgetCustomLogoAsXString8() const { return CustomLogo.xmlString8.isDefined() ? CustomLogo.xmlString8.value() : NullXString8; }; + const XBuffer& dgetCustomLogoAsData() const { return CustomLogo.xmlData.isDefined() ? CustomLogo.xmlData.value() : XBuffer::NullXBuffer; }; + +/* calculated values */ + bool dgetLastBootedVolume() const { return DefaultVolume.isDefined() ? DefaultVolume.value() == "LastBootedVolume"_XS8 : false; } + UINT8 dgetCustomLogoType() const { + if ( CustomLogo.xmlBool.isDefined() ) return CustomLogo.xmlBool.value() ? CUSTOM_BOOT_APPLE : CUSTOM_BOOT_USER_DISABLED; + if ( CustomLogo.xmlString8.isDefined() ) { + if ( CustomLogo.xmlString8.value() == "Apple"_XS8 ) return CUSTOM_BOOT_APPLE; + if ( CustomLogo.xmlString8.value() == "Alternate"_XS8 ) return CUSTOM_BOOT_ALT_APPLE; + if ( CustomLogo.xmlString8.value() == "Theme"_XS8 ) return CUSTOM_BOOT_THEME; + return CUSTOM_BOOT_USER; + } + if ( CustomLogo.xmlData.isDefined() ) { + return CUSTOM_BOOT_USER; + } + return CUSTOM_BOOT_DISABLED; + } + +/**/ + virtual void reset() override { + super::reset(); + }; +private: + + +}; + + +#endif /* _CONFIGPLISTCLASS_Boot_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_BootGraphics.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_BootGraphics.h new file mode 100644 index 000000000..11d02b46f --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_BootGraphics.h @@ -0,0 +1,42 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_BootGraphics_H_ +#define _CONFIGPLISTCLASS_BootGraphics_H_ + + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteCompositeTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +class BootGraphics_Class : public XmlDict +{ + using super = XmlDict; +protected: + XmlUInt32 DefaultBackgroundColor = XmlUInt32(); + XmlUInt32 UIScale = XmlUInt32(); + XmlUInt32 EFILoginHiDPI = XmlUInt32(); + XmlUInt32 flagstate = XmlUInt32(); + + XmlDictField m_fields[4] = { + {"DefaultBackgroundColor", DefaultBackgroundColor}, + {"UIScale", UIScale}, + {"EFILoginHiDPI", EFILoginHiDPI}, + {"flagstate", flagstate}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + decltype(DefaultBackgroundColor)::ValueType dgetDefaultBackgroundColor() const { return DefaultBackgroundColor.isDefined() ? DefaultBackgroundColor.value() : 0x80000000; }; + decltype(UIScale)::ValueType dgetUIScale() const { return UIScale.isDefined() ? UIScale.value() : 0x80000000; }; + decltype(EFILoginHiDPI)::ValueType dgetEFILoginHiDPI() const { return EFILoginHiDPI.isDefined() ? EFILoginHiDPI.value() : 0x80000000; }; + decltype(flagstate)::ValueType dget_flagstate() const { return flagstate.isDefined() ? flagstate.value() : 0x80000000; }; +}; + + +#endif /* _CONFIGPLISTCLASS_BootGraphics_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_CPU.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_CPU.h new file mode 100644 index 000000000..18e4cd1f7 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_CPU.h @@ -0,0 +1,92 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_CPU_H_ +#define _CONFIGPLISTCLASS_CPU_H_ + + +class CPU_Class : public XmlDict +{ + using super = XmlDict; + +protected: + class FrequencyMHzClass : public XmlUInt32 + { + using super = XmlUInt32; + public: + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( isDefined() && (value() <= 100 || value() >= 20000) ) { + return xmlLiteParser->addError(generateErrors, S8Printf("FrequencyMHz must be >200 and <20000 tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + return true; + } + }; + + XmlUInt16 QPI = XmlUInt16(); + FrequencyMHzClass FrequencyMHz = FrequencyMHzClass(); + XmlUInt16 Type = XmlUInt16(); + XmlBool QEMU = XmlBool(); + XmlBool UseARTFrequency = XmlBool(); + XmlUInt32 BusSpeedkHz = XmlUInt32(); + XmlBool C6 = XmlBool(); + XmlBool C4 = XmlBool(); + XmlBool C2 = XmlBool(); + XmlUInt16 Latency = XmlUInt16(); + XmlUInt8 SavingMode = XmlUInt8(); + XmlBool HWPEnable = XmlBool(); + XmlUInt32 HWPValue = XmlUInt32(); + XmlUInt8 TDP = XmlUInt8(); + XmlBool TurboDisable = XmlBool(); + + XmlDictField m_fields[15] = { + {"QPI", QPI}, + {"FrequencyMHz", FrequencyMHz}, + {"Type", Type}, + {"QEMU", QEMU}, + {"UseARTFrequency", UseARTFrequency}, + {"BusSpeedkHz", BusSpeedkHz}, + {"C6", C6}, + {"C4", C4}, + {"C2", C2}, + {"Latency", Latency}, + {"SavingMode", SavingMode}, + {"HWPEnable", HWPEnable}, + {"HWPValue", HWPValue}, + {"TDP", TDP}, + {"TurboDisable", TurboDisable}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + CPU_Class() {} + + uint16_t dgetQPI() const { return QPI.isDefined() ? QPI.value() : false; }; + uint32_t dgetCpuFreqMHz() const { return FrequencyMHz.isDefined() ? FrequencyMHz.value() : false; }; + uint16_t dgetCpuType() const { return Type.isDefined() ? Type.value() : GetAdvancedCpuType(); }; + bool dgetQEMU() const { return QEMU.isDefined() ? QEMU.value() : false; }; + bool dgetUseARTFreq() const { return UseARTFrequency.isDefined() ? UseARTFrequency.value() : false; }; + uint32_t dgetBusSpeed() const { return BusSpeedkHz.isDefined() ? BusSpeedkHz.value() : false; }; + undefinable_bool dget_EnableC6() const { return C6.isDefined() ? undefinable_bool(C6.value()) : undefinable_bool(); }; + undefinable_bool dget_EnableC4() const { return C4.isDefined() ? undefinable_bool(C4.value()) : undefinable_bool(); }; + undefinable_bool dget_EnableC2() const { return C2.isDefined() ? undefinable_bool(C2.value()) : undefinable_bool(); }; + undefinable_uint16 dget_C3Latency() const { return Latency.isDefined() ? undefinable_uint16(Latency.value()) : undefinable_uint16(); }; + uint8_t dgetSavingMode() const { return SavingMode.isDefined() ? SavingMode.value() : 0xFF; }; + bool dgetHWPEnable() const { return HWPEnable.isDefined() ? HWPEnable.value() : false; }; + undefinable_uint32 dgetHWPValue() const { return HWPValue.isDefined() ? undefinable_uint32(HWPValue.value()) : undefinable_uint32(); }; + uint8_t dgetTDP() const { return TDP.isDefined() ? TDP.value() : false; }; + bool dgetTurboDisabled() const { return TurboDisable.isDefined() ? TurboDisable.value() : false; }; + + bool dgetUserChange() const { return BusSpeedkHz.isDefined(); }; + + undefinable_bool getUseARTFreq() const { return UseARTFrequency.isDefined() ? undefinable_bool(UseARTFrequency.value()) : undefinable_bool(); }; + +}; + + +#endif /* _CONFIGPLISTCLASS_CPU_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices.h new file mode 100644 index 000000000..f7567978b --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices.h @@ -0,0 +1,135 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_H_ +#define _CONFIGPLISTCLASS_DEVICES_H_ + + + +class DevicesClass : public XmlDict +{ + using super = XmlDict; +public: + + class XmlPropertyValue: public XmlUnion + { + protected: + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + XmlUInt32 xmlUInt32 = XmlUInt32(); + XmlBool xmlBool = XmlBool(); + XmlData xmlData = XmlData(); + XmlUnionField m_fields[3] = { xmlString8, xmlData, xmlUInt32 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + public: + const XBuffer value() const { + if ( !isDefined()) return XBuffer::NullXBuffer; + if ( xmlString8.isDefined() ) return XBuffer(xmlString8.value().c_str(), xmlString8.value().sizeInBytesIncludingTerminator()); + if ( xmlUInt32.isDefined() ) return XBuffer(&xmlUInt32.value(), sizeof(decltype(xmlUInt32.value()))); + if ( xmlBool.isDefined() ) { uint32_t ui32 = xmlBool.value(); return XBuffer(&ui32, sizeof(ui32)); }; + if ( xmlData.isDefined() ) return xmlData.value(); + return XBuffer::NullXBuffer; + } + TAG_TYPE valueType() const { + if ( !isDefined()) return kTagTypeNone; + if ( xmlString8.isDefined() ) return kTagTypeString; + if ( xmlUInt32.isDefined() ) return kTagTypeInteger; + if ( xmlData.isDefined() ) return kTagTypeData; + panic("There is a bug : one of the field must be defined the union is defined"); + } + }; + + class SimplePropertyClass_Class : public XmlDict + { + using super = XmlDict; + public: + XmlBool disabled = XmlBool(); + XmlString8AllowEmpty key = XmlString8AllowEmpty(); + XmlPropertyValue value = XmlPropertyValue(); + + XmlDictField m_fields[3] = { + {"disabled", disabled}, + {"key", key}, + {"value", value}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + const decltype(key)::ValueType& dgetKey() const { return key.isDefined() ? key.value() : key.nullValue; }; + XBuffer dgetValue() const { return value.isDefined() ? value.value() : XBuffer::NullXBuffer; }; + TAG_TYPE dgetValueType() const { return value.isDefined() ? value.valueType() : kTagTypeNone; }; + uint8_t dgetDisabled() const { return disabled.isDefined() ? disabled.value() : disabled.nullValue; }; + + }; + + #include "Config_Devices_Audio.h" + #include "Config_Devices_AddProperties.h" + #include "Config_Devices_Arbitrary.h" + #include "Config_Devices_Properties.h" + #include "Config_Devices_FakeID.h" + #include "Config_Devices_USB.h" + +protected: + + XmlBool Inject = XmlBool(); + XmlBool SetIntelBacklight = XmlBool(); + XmlBool SetIntelMaxBacklight = XmlBool(); + XmlUInt32 IntelMaxValue = XmlUInt32(); + XmlBool LANInjection = XmlBool(); + XmlBool HDMIInjection = XmlBool(); + XmlBool NoDefaultProperties = XmlBool(); + XmlBool UseIntelHDMI = XmlBool(); + XmlBool ForceHPET = XmlBool(); + XmlUInt32 DisableFunctions = XmlUInt32(); + XmlString8AllowEmpty AirportBridgeDeviceName = XmlString8AllowEmpty(); +public: + Devices_Audio_Class Audio = Devices_Audio_Class(); + Devices_FakeID_Class FakeID = Devices_FakeID_Class(); + Devices_USB_Class USB = Devices_USB_Class(); + + PropertiesUnion Properties = PropertiesUnion(); + XmlArray Arbitrary = XmlArray(); + XmlArray AddProperties = XmlArray(); + +protected: + XmlDictField m_fields[17] = { + {"Inject", Inject}, + {"SetIntelBacklight", SetIntelBacklight}, + {"SetIntelMaxBacklight", SetIntelMaxBacklight}, + {"IntelMaxValue", IntelMaxValue}, + {"LANInjection", LANInjection}, + {"HDMIInjection", HDMIInjection}, + {"NoDefaultProperties", NoDefaultProperties}, + {"FakeID", FakeID}, + {"UseIntelHDMI", UseIntelHDMI}, + {"ForceHPET", ForceHPET}, + {"DisableFunctions", DisableFunctions}, + {"AirportBridgeDeviceName", AirportBridgeDeviceName}, + {"Audio", Audio}, + {"USB", USB}, + {"Properties", Properties}, + {"Arbitrary", Arbitrary}, + {"AddProperties", AddProperties}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + public: + const decltype(Inject)::ValueType& dgetStringInjector() const { return Inject.isDefined() ? Inject.value() : Inject.nullValue; }; + const decltype(SetIntelBacklight)::ValueType& dgetIntelBacklight() const { return SetIntelBacklight.isDefined() ? SetIntelBacklight.value() : SetIntelBacklight.nullValue; }; + const decltype(SetIntelMaxBacklight)::ValueType& dgetIntelMaxBacklight() const { return SetIntelMaxBacklight.isDefined() ? SetIntelMaxBacklight.value() : SetIntelMaxBacklight.nullValue; }; + const decltype(IntelMaxValue)::ValueType& dgetIntelMaxValue() const { return IntelMaxValue.isDefined() ? IntelMaxValue.value() : IntelMaxValue.nullValue; }; + bool dgetLANInjection() const { return isDefined() ? LANInjection.isDefined() ? LANInjection.value() : true : false; }; // TODO: different default value if section is not defined + const decltype(HDMIInjection)::ValueType& dgetHDMIInjection() const { return HDMIInjection.isDefined() ? HDMIInjection.value() : HDMIInjection.nullValue; }; + bool dgetNoDefaultProperties() const { return isDefined() ? NoDefaultProperties.isDefined() ? NoDefaultProperties.value() : true : false; }; // TODO: different default value if section is not defined + const decltype(UseIntelHDMI)::ValueType& dgetUseIntelHDMI() const { return UseIntelHDMI.isDefined() ? UseIntelHDMI.value() : UseIntelHDMI.nullValue; }; + const decltype(ForceHPET)::ValueType& dgetForceHPET() const { return ForceHPET.isDefined() ? ForceHPET.value() : ForceHPET.nullValue; }; + const decltype(DisableFunctions)::ValueType& dgetDisableFunctions() const { return DisableFunctions.isDefined() ? DisableFunctions.value() : DisableFunctions.nullValue; }; + const decltype(AirportBridgeDeviceName)::ValueType& dgetAirportBridgeDeviceName() const { return AirportBridgeDeviceName.isDefined() ? AirportBridgeDeviceName.value() : AirportBridgeDeviceName.nullValue; }; +}; + + +#endif /* _CONFIGPLISTCLASS_DEVICES_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_AddProperties.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_AddProperties.h new file mode 100644 index 000000000..a5b43841e --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_AddProperties.h @@ -0,0 +1,55 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_ADDPROPERTIES_H_ +#define _CONFIGPLISTCLASS_DEVICES_ADDPROPERTIES_H_ + +class Devices_AddProperties_Dict_Class : public XmlDict +{ + using super = XmlDict; +public: + + XmlString8AllowEmpty Device = XmlString8AllowEmpty(); + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty Key = XmlString8AllowEmpty(); + XmlPropertyValue Value = XmlPropertyValue(); + + XmlDictField m_fields[4] = { + {"Device", Device}, + {"Disabled", Disabled}, + {"Key", Key}, + {"Value", Value}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + uint32_t dgetDevice() const { + if ( !Device.isDefined() ) return 0; + if ( Device.value().isEqualIC("ATI") ) return DEV_ATI; + else if ( Device.value().isEqualIC("NVidia") ) return DEV_NVIDIA; + else if ( Device.value().isEqualIC("IntelGFX") ) return DEV_INTEL; + else if ( Device.value().isEqualIC("LAN") ) return DEV_LAN; + else if ( Device.value().isEqualIC("WIFI") ) return DEV_WIFI; + else if ( Device.value().isEqualIC("Firewire") ) return DEV_FIREWIRE; + else if ( Device.value().isEqualIC("SATA") ) return DEV_SATA; + else if ( Device.value().isEqualIC("IDE") ) return DEV_IDE; + else if ( Device.value().isEqualIC("HDA") ) return DEV_HDA; + else if ( Device.value().isEqualIC("HDMI") ) return DEV_HDMI; + else if ( Device.value().isEqualIC("LPC") ) return DEV_LPC; + else if ( Device.value().isEqualIC("SmBUS") ) return DEV_SMBUS; + else if ( Device.value().isEqualIC("USB") ) return DEV_USB; + else return 0; + } + const decltype(Disabled)::ValueType& dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : Disabled.nullValue; }; + const decltype(Key)::ValueType& dgetKey() const { return Key.isDefined() ? Key.value() : Key.nullValue; }; + XBuffer dgetValue() const { return Value.isDefined() ? Value.value() : XBuffer::NullXBuffer; }; + TAG_TYPE dgetValueType() const { return Value.isDefined() ? Value.valueType() : kTagTypeNone; }; +}; + + +#endif /* _CONFIGPLISTCLASS_DEVICES_ADDPROPERTIES_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Arbitrary.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Arbitrary.h new file mode 100644 index 000000000..e16e98d41 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Arbitrary.h @@ -0,0 +1,62 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_ARBITRARY_H_ +#define _CONFIGPLISTCLASS_DEVICES_ARBITRARY_H_ + +class Devices_Arbitrary_Class : public XmlDict +{ + using super = XmlDict; +public: + +// class PciAddrClass : public XmlString8AllowEmpty { +// virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { +// RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); +// if ( isDefined() && value().length() != 8 ) return xmlLiteParser->addError(generateErrors, S8Printf("PciAddr must be 8 chars long (ex 00:00.01) at line %d.", keyPos.getLine())); +// return true; +// } +// }; + +protected: + XmlString8AllowEmpty PciAddr = XmlString8AllowEmpty(); + XmlString8AllowEmpty Comment = XmlString8AllowEmpty(); +public: + XmlArray CustomProperties = XmlArray(); + + XmlDictField m_fields[3] = { + {"PciAddr", PciAddr}, + {"Comment", Comment}, + {"CustomProperties", CustomProperties}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + const decltype(PciAddr)::ValueType& dgetPciAddr() const { return PciAddr.isDefined() ? PciAddr.value() : PciAddr.nullValue; }; + decltype(Comment)::ValueType dgetLabel() const { + XString8 Label; + if ( PciAddr.isDefined()) { + uint8_t Bus = hexstrtouint8(PciAddr.value().c_str()); + uint8_t Dev = hexstrtouint8(PciAddr.value().c_str() + 3); + uint8_t Func = hexstrtouint8(PciAddr.value().c_str() + 6); + Label.S8Catf("[%02hhX:%02hhX.%02hhX] ", Bus, Dev, Func); + } + if ( Comment.isDefined() ) Label.strcat(Comment.value()); + return Label; + } + + uint32_t dgetDevice() const { + if ( !PciAddr.isDefined() ) return 0; + uint8_t Bus = hexstrtouint8(PciAddr.value().c_str()); + uint8_t Dev = hexstrtouint8(PciAddr.value().c_str() + 3); + uint8_t Func = hexstrtouint8(PciAddr.value().c_str() + 6); + return PCIADDR(Bus, Dev, Func); + } +}; + + + +#endif /* _CONFIGPLISTCLASS_DEVICES_ARBITRARY_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Audio.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Audio.h new file mode 100644 index 000000000..3df76d122 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Audio.h @@ -0,0 +1,77 @@ +// +// Config_Devices_Audio.h +// ConfigPlistValidator +// +// Created by Jief on 13/10/2020. +// Copyright © 2020 Jief. All rights reserved. +// + +#ifndef Config_Devices_Audio_h +#define Config_Devices_Audio_h + +class Devices_Audio_Class : public XmlDict +{ + using super = XmlDict; + protected: + class InjectUnion: public XmlUnion + { + using super = XmlUnion; + public: + XmlInt32 xmlInt32 = XmlInt32(); + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); // TODO: change XmlString8AllowEmpty for XmlString8AllowEmpty + XmlUnionField m_fields[2] = { xmlInt32, xmlString8}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( !xmlString8.isDefined() ) return true; +// if ( xmlString8.value().isEqualIC("Detect") ) return true; + if ( xmlString8.value().isEqualIC("No") ) return true; + // TODO:check that it's an integer decimal or hex +// xmlLiteParser->addWarning(generateErrors, S8Printf("Expecting an integer or \"No\" for tag '%s:%d'", xmlPath.c_str(), keyPos.getLine())); +// return false; + return true; + } + }; + + XmlBool ResetHDA = XmlBool(); + InjectUnion Inject = InjectUnion(); + XmlBool AFGLowPowerState = XmlBool(); + + XmlDictField m_fields[3] = { + {"ResetHDA", ResetHDA}, + {"Inject", Inject}, + {"AFGLowPowerState", AFGLowPowerState}, + }; + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +// virtual bool validate(XmlLiteParser* xmlLiteParser, const char* name, XmlAbstractType* xmlTyp, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) override; + + const decltype(ResetHDA)::ValueType& dgetResetHDA() const { return ResetHDA.isDefined() ? ResetHDA.value() : ResetHDA.nullValue; }; + const decltype(AFGLowPowerState)::ValueType& dgetAFGLowPowerState() const { return AFGLowPowerState.isDefined() ? AFGLowPowerState.value() : AFGLowPowerState.nullValue; }; + + bool dgetHDAInjection() const { + if ( !Inject.isDefined() ) return false; + if ( Inject.xmlInt32.isDefined() ) return Inject.xmlInt32.value(); + if ( Inject.xmlString8.isDefined() ) { + if ( Inject.xmlString8.value().startWithOrEqualToIC("n") ) return false; + if ( Inject.xmlString8.value().startWithOrEqualToIC("0x") ) return true; + return true; + } + return false; + } + INT32 dgetHDALayoutId() const { + if ( !Inject.isDefined() ) return 0; + if ( Inject.xmlInt32.isDefined() ) return Inject.xmlInt32.value(); + if ( Inject.xmlString8.isDefined() ) { + if ( Inject.xmlString8.value().startWithOrEqualToIC("n") ) return 0; + if ( Inject.xmlString8.value().startWithOrEqualToIC("0x") ) return (INT32)AsciiStrHexToUintn(Inject.xmlString8.value()); + UINTN n = AsciiStrDecimalToUintn(Inject.xmlString8.value()); + if ( n <= MAX_INT32 ) return (INT32)n; + return 0; + } + return 0; + } + +}; + +#endif /* Config_Devices_Audio_h */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_FakeID.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_FakeID.h new file mode 100644 index 000000000..e2d9e140d --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_FakeID.h @@ -0,0 +1,50 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_FAKEID_H_ +#define _CONFIGPLISTCLASS_DEVICES_FAKEID_H_ + +class Devices_FakeID_Class : public XmlDict +{ + using super = XmlDict; +protected: + XmlUInt32 ATI = XmlUInt32(); + XmlUInt32 NVidia = XmlUInt32(); + XmlUInt32 IntelGFX = XmlUInt32(); + XmlUInt32 LAN = XmlUInt32(); + XmlUInt32 WIFI = XmlUInt32(); + XmlUInt32 SATA = XmlUInt32(); + XmlUInt32 XHCI = XmlUInt32(); + XmlUInt32 IMEI = XmlUInt32(); + + XmlDictField m_fields[8] = { + {"ATI", ATI}, + {"NVidia", NVidia}, + {"IntelGFX", IntelGFX}, + {"LAN", LAN}, + {"WIFI", WIFI}, + {"SATA", SATA}, + {"XHCI", XHCI}, + {"IMEI", IMEI}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + const decltype(ATI)::ValueType& dgetFakeATI() const { return ATI.isDefined() ? ATI.value() : ATI.nullValue; }; + const decltype(NVidia)::ValueType& dgetFakeNVidia() const { return NVidia.isDefined() ? NVidia.value() : NVidia.nullValue; }; + const decltype(IntelGFX)::ValueType& dgetFakeIntel() const { return IntelGFX.isDefined() ? IntelGFX.value() : IntelGFX.nullValue; }; + const decltype(LAN)::ValueType& dgetFakeLAN() const { return LAN.isDefined() ? LAN.value() : LAN.nullValue; }; + const decltype(WIFI)::ValueType& dgetFakeWIFI() const { return WIFI.isDefined() ? WIFI.value() : WIFI.nullValue; }; + const decltype(SATA)::ValueType& dgetFakeSATA() const { return SATA.isDefined() ? SATA.value() : SATA.nullValue; }; + const decltype(XHCI)::ValueType& dgetFakeXHCI() const { return XHCI.isDefined() ? XHCI.value() : XHCI.nullValue; }; + const decltype(IMEI)::ValueType& dgetFakeIMEI() const { return IMEI.isDefined() ? IMEI.value() : IMEI.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_DEVICES_FAKEID_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Properties.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Properties.h new file mode 100644 index 000000000..b0d607f26 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_Properties.h @@ -0,0 +1,76 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_PROPERTIES_H_ +#define _CONFIGPLISTCLASS_DEVICES_PROPERTIES_H_ + + + +//Properties could be a string containing an EFIString to inject, or a dict of key-dict pair. The dict in the key-dict pair is a key-value pair +class PropertiesUnion: public XmlUnion +{ + public: + + + class Properties4DeviceClass; + class Property : public XmlAddKey + { + using super = XmlAddKey; + const Properties4DeviceClass& parent; + private: + public: +// XmlPropertyValue xmlValue = XmlPropertyValue(); + public: +// XmlCompositeField m_fields[1] = { xmlValue }; +// virtual void getFields(XmlCompositeField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + Property() : parent(*new Properties4DeviceClass()) { panic("BUG. define getNewInstance()"); } + Property(const Properties4DeviceClass& _parent) : parent(_parent) {} + + uint8_t dgetBValue() const { + if ( !parent.dgetEnabled() ) return false; + return xmlKey().isDefined() ? xmlKey().isEnabled() : false; + } + const keyType::ValueType& dgetKey() const { return xmlKey().isDefined() ? xmlKey().value() : xmlKey().nullValue; }; + XBuffer dgetValue() const { return isDefined() ? value() : XBuffer::NullXBuffer; }; + TAG_TYPE dgetValueType() const { return isDefined() ? valueType() : kTagTypeNone; }; + }; + + + // class PropertiesClass; + // // Dict for Devices/Properties/each key. + // // A repeating key + dict + // // Key could be like "AAPL,GfxYTile" or "AAPL,ig-platform-id" + class Properties4DeviceClass : public XmlAddKey> + { + using super = XmlAddKey>; + public: + + virtual Property* getNewInstance() override { return new Property(*this); } + + public: + const keyType::ValueType& dgetLabel() const { return super::xmlKey().isDefined() ? xmlKey().value() : xmlKey().nullValue; }; + const keyType::ValueType& dgetDevicePathAsString() const { return xmlKey().isDefined() ? xmlKey().value() : xmlKey().nullValue; }; + bool dgetEnabled() const { return xmlKey().isDefined() ? xmlKey().isEnabled() : false; }; + + }; + +protected: + XmlString8AllowEmpty PropertiesAsString = XmlString8AllowEmpty(); +public: + XmlRepeatingDict PropertiesAsDict = XmlRepeatingDict(); + + XmlUnionField m_fields[2] = { PropertiesAsString, PropertiesAsDict }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + const decltype(PropertiesAsString)::ValueType& dgetpropertiesAsString() const { return PropertiesAsString.isDefined() ? PropertiesAsString.value() : PropertiesAsString.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_DEVICES_PROPERTIES_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_USB.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_USB.h new file mode 100644 index 000000000..06494e449 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Devices_USB.h @@ -0,0 +1,46 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_DEVICES_USB_H_ +#define _CONFIGPLISTCLASS_DEVICES_USB_H_ + + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteCompositeTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +class Devices_USB_Class : public XmlDict +{ + using super = XmlDict; +protected: + XmlBool Inject = XmlBool(); + XmlBool AddClockID = XmlBool(); + XmlBool FixOwnership = XmlBool(); + XmlBool HighCurrent = XmlBool(); + XmlBool NameEH00 = XmlBool(); + + XmlDictField m_fields[5] = { + {"Inject", Inject}, + {"AddClockID", AddClockID}, + {"FixOwnership", FixOwnership}, + {"HighCurrent", HighCurrent}, + {"NameEH00", NameEH00}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + decltype(Inject)::ValueType dgetUSBInjection() const { return Inject.isDefined() ? Inject.value() : true; }; + const decltype(AddClockID)::ValueType& dgetInjectClockID() const { return AddClockID.isDefined() ? AddClockID.value() : AddClockID.nullValue; }; + const decltype(FixOwnership)::ValueType& dgetUSBFixOwnership() const { return FixOwnership.isDefined() ? FixOwnership.value() : FixOwnership.nullValue; }; + const decltype(HighCurrent)::ValueType& dgetHighCurrent() const { return HighCurrent.isDefined() ? HighCurrent.value() : HighCurrent.nullValue; }; + const decltype(NameEH00)::ValueType& dgetNameEH00() const { return NameEH00.isDefined() ? NameEH00.value() : NameEH00.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_DEVICES_FAKEID_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.cpp b/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.cpp new file mode 100644 index 000000000..58ff21be6 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.cpp @@ -0,0 +1,25 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +//#include "Config_CPU.h" +//#include "../../cpp_lib/XmlLiteSimpleTypes.h" +//#include "../../cpp_lib/XmlLiteParser.h" +// +//#include "Config_GUI.h" + +#include "ConfigPlistClass.h" + + +bool ConfigPlistClass::GUI_Class::GUI_Custom_Class::GUI_Custom_Entry_Class::validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + for ( size_t idx=0 ; idx < SubEntries.size() ; ++idx ) SubEntries.ElementAt(idx).Parent = this; + if ( Arguments.isDefined() && AddArguments.isDefined() ) { + xmlLiteParser->addError(generateErrors, S8Printf("Arguments is ignored because AddArguments is defined. Line %d.", keyPos.getLine())); + Arguments.reset(); + } + return true; +} diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.h new file mode 100644 index 000000000..b096e2fb7 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_GUI.h @@ -0,0 +1,812 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_GUI_H_ +#define _CONFIGPLISTCLASS_GUI_H_ + + +// -------------------------------------------------- GUI class +class GUI_Class : public XmlDict +{ + using super = XmlDict; +public: + + // -------------------------------------------------- Mouse class + class GUI_Mouse_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlInt64 Speed = XmlInt64(); + XmlBool Enabled = XmlBool(); + XmlBool Mirror = XmlBool(); + XmlUInt64 DoubleClickTime = XmlUInt64(); + + XmlDictField m_fields[4] = { + {"Speed", Speed}, + {"Enabled", Enabled}, + {"Mirror", Mirror}, + {"DoubleClickTime", DoubleClickTime}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + int64_t dgetPointerSpeed() const { return Speed.isDefined() ? Speed.value() : 0; }; + bool dgetPointerEnabled() const { return Enabled.isDefined() ? Enabled.value() ? dgetPointerSpeed() != 0 : false : dgetPointerSpeed() != 0 ; }; + bool dgetPointerMirror() const { return Mirror.isDefined() ? Mirror.value() : false; }; + uint64_t dgetDoubleClickTime() const { return DoubleClickTime.isDefined() ? DoubleClickTime.value() : 0; }; + + }; + // -------------------------------------------------- Mouse class end + + + // -------------------------------------------------- Scan class + // bool or dict + class GUI_Scan_Class : public XmlUnion + { + public: + // -------------------------------------------------- Scan as dict class + class GUI_ScanAsDict_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlBool Entries = XmlBool(); + XmlBool Tool = XmlBool(); + XmlBool Linux = XmlBool(); + XmlBoolOrString Legacy = XmlBoolOrString(); + XmlBoolOrString Kernel = XmlBoolOrString(); + + XmlDictField m_fields[5] = { + {"Entries", Entries}, + {"Tool", Tool}, + {"Linux", Linux}, + {"Legacy", Legacy}, + {"Kernel", Kernel}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetDisableEntryScan() const { return Entries.isDefined() && Entries.value() == false; }; + bool dgetDisableToolScan() const { return Tool.isDefined() && Tool.value() == false; }; + bool dgetLinux() const { return !(Linux.isDefined() && Linux.value() == false); }; + bool dgetNoLegacy() const { + if ( !Legacy.isDefined() ) return false; + if ( Legacy.xmlBool.isDefined() && Legacy.xmlBool.value() == false ) return true; + return false; + } + bool dgetLegacyFirst() const { return Legacy.isDefined() && Legacy.xmlString8.isDefined() && Legacy.xmlString8.value().startWithIC("F"); }; + UINT8 dgetKernel() const { + if ( !Kernel.isDefined() ) return 0; + if ( Kernel.xmlBool.isDefined() ) { + if ( Kernel.xmlBool.value() == false ) return KERNEL_SCAN_NONE; + return 0; + } + if ( !Kernel.xmlString8.isDefined() || Kernel.xmlString8.value().isEmpty() ) return 0; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("ne") ) return KERNEL_SCAN_NEWEST; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("n") ) return KERNEL_SCAN_NONE; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("o") ) return KERNEL_SCAN_OLDEST; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("f") ) return KERNEL_SCAN_FIRST; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("l") ) return KERNEL_SCAN_LAST; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("m") ) return KERNEL_SCAN_MOSTRECENT; + if ( Kernel.xmlString8.value().startWithOrEqualToIC("e") ) return KERNEL_SCAN_EARLIEST; + return 0; + } + }; + // -------------------------------------------------- Scan as dict class end + + const GUI_Class& parent; + + public: + XmlBool ScanAsBool = XmlBool(); + GUI_ScanAsDict_Class ScanAsAsDict = GUI_ScanAsDict_Class(); + + GUI_Scan_Class(const GUI_Class& _parent) : parent(_parent) {} + + XmlUnionField m_fields[2] = { ScanAsBool, ScanAsAsDict}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetDisableEntryScan() const { + if ( ScanAsBool.isDefined() && ScanAsBool.value() == false ) return true; + return ScanAsAsDict.dgetDisableEntryScan(); + } + bool dgetDisableToolScan() const { + if ( ScanAsBool.isDefined() && ScanAsBool.value() == false ) return true; + return ScanAsAsDict.dgetDisableToolScan(); + } + bool dgetLinuxScan() const { + if ( !ScanAsAsDict.isDefined() ) return parent.isDefined(); // TODO: different default value if section is not defined + return ScanAsAsDict.dgetLinux(); + } + bool dgetNoLegacy() const { + if ( ScanAsBool.isDefined() && ScanAsBool.value() == false ) return true; + return ScanAsAsDict.dgetNoLegacy(); + } + bool dgetLegacyFirst() const { + if ( !ScanAsAsDict.isDefined() ) return false; + return ScanAsAsDict.dgetLegacyFirst(); + } + UINT8 dgetKernelScan() const { + if ( !ScanAsAsDict.isDefined() ) return 0; + return ScanAsAsDict.dgetKernel(); + } + }; + // -------------------------------------------------- Scan class end + + + + + // -------------------------------------------------- Custom_Class class end + class GUI_Custom_Class : public XmlDict + { + using super = XmlDict; + public: + + class GUI_Custom_Entry_VolumeType_Class : public XmlUnion + { + using super = XmlDict; + protected: + XmlString8AllowEmpty VolumeTypeAsString = XmlString8AllowEmpty(); + XmlArray VolumeTypeAsArray = XmlArray(); + + XmlUnionField m_fields[2] = { VolumeTypeAsString, VolumeTypeAsArray}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + static UINT8 CheckVolumeType(UINT8 VolumeType, const XString8& VolumeTypeAsString) + { + UINT8 VolumeTypeTmp = VolumeType; + if (VolumeTypeAsString.isEqualIC("Internal")) { + VolumeTypeTmp |= VOLTYPE_INTERNAL; + } else if (VolumeTypeAsString.isEqualIC("External")) { + VolumeTypeTmp |= VOLTYPE_EXTERNAL; + } else if (VolumeTypeAsString.isEqualIC("Optical")) { + VolumeTypeTmp |= VOLTYPE_OPTICAL; + } else if (VolumeTypeAsString.isEqualIC("FireWire")) { + VolumeTypeTmp |= VOLTYPE_FIREWIRE; + } + return VolumeTypeTmp; + } + + public: + UINT8 dgetVolumeType() const { + if ( VolumeTypeAsString.isDefined() ) return CheckVolumeType(0, VolumeTypeAsString.value()); + if ( VolumeTypeAsArray.isDefined() ) { + UINT8 VolumeType = 0; + for (size_t idx = 0; idx < VolumeTypeAsArray.size() ; ++idx) { + VolumeType = CheckVolumeType(VolumeType, VolumeTypeAsArray[idx].value()); + } + return VolumeType; + } + return 0; + } + }; + + + class GUI_Custom_SubEntry_Class; + // + // + //class CUSTOM_LOADER_ENTRY_SETTINGS; + //class GUI_Custom_Entry_Class; + //template class XmlArray; + //void CompareCustomEntries(const XString8& label, const XObjArray& olDCustomEntries, const XmlArray& newCustomEntries); + + class GUI_Custom_Entry_Class : public XmlDict + { + using super = XmlDict; + public: +// const GUI_Custom_Entry_Class* Parent = NULL; + + class HiddenClass: public XmlUnion + { + using super = XmlUnion; + public: + XmlBool xmlBool = XmlBool(); + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + XmlUnionField m_fields[2] = { xmlBool, xmlString8}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( !xmlString8.isDefined() ) return true; + if ( xmlString8.value().isEqualIC("Always") ) return true; + xmlLiteParser->addWarning(generateErrors, S8Printf("Expecting a boolean or \"Always\" for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; // parsing can continue. + } + }; + + protected: + XmlBool Disabled = XmlBool(); + XmlStringW Volume = XmlStringW(); + XmlStringW Path = XmlStringW(); + XmlStringW Settings = XmlStringW(); + XmlBool CommonSettings = XmlBool(); + XmlString8AllowEmpty AddArguments = XmlString8AllowEmpty(); + XmlString8AllowEmpty Arguments = XmlString8AllowEmpty(); + XmlString8AllowEmpty Title = XmlString8AllowEmpty(); + XmlString8AllowEmpty FullTitle = XmlString8AllowEmpty(); + XmlStringW ImagePath = XmlStringW(); + XmlData ImageData = XmlData(); + XmlStringW DriveImagePath = XmlStringW(); + XmlData DriveImageData = XmlData(); + XmlString8AllowEmpty Hotkey = XmlString8AllowEmpty(); // todo check it's only one UTF16 char (or maybe we should switch to char32_t) + XmlBoolOrStringOrData CustomLogo = XmlBoolOrStringOrData(); // Todo validate + XmlString8AllowEmpty BootBgColor = XmlString8AllowEmpty(); + HiddenClass Hidden = HiddenClass(); + // Type + XmlString8AllowEmpty Type = XmlString8AllowEmpty(); + GUI_Custom_Entry_VolumeType_Class VolumeType = GUI_Custom_Entry_VolumeType_Class(); + XmlBoolOrString InjectKexts = XmlBoolOrString(); + XmlBool NoCaches = XmlBool(); + XmlString8AllowEmpty Kernel = XmlString8AllowEmpty(); + + XmlBool ForceTextMode = XmlBool(); // 2021-04-22 + + public: + XmlArray SubEntries = XmlArray(); + + protected: + XmlDictField m_fields[24] = { + {"Disabled", Disabled}, + {"Volume", Volume}, + {"Path", Path}, + {"Settings", Settings}, + {"CommonSettings", CommonSettings}, + {"AddArguments", AddArguments}, + {"Arguments", Arguments}, + {"Title", Title}, + {"FullTitle", FullTitle}, + {"Image", ImagePath}, + {"ImageData", ImageData}, + {"DriveImage", DriveImagePath}, + {"DriveImageData", DriveImageData}, + {"Hotkey", Hotkey}, + {"CustomLogo", CustomLogo}, + {"BootBgColor", BootBgColor}, + {"Hidden", Hidden}, + {"Type", Type}, + {"VolumeType", VolumeType}, + {"InjectKexts", InjectKexts}, + {"NoCaches", NoCaches}, + {"Kernel", Kernel}, + {"SubEntries", SubEntries}, + {"ForceTextMode", ForceTextMode}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; + + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + const XStringW& dgetVolume() const { return Volume.isDefined() ? Volume.value() : NullXStringW; }; + const XStringW& dgetPath() const { return Path.isDefined() ? Path.value() : NullXStringW; }; + const XStringW& dgetSettings() const { return Settings.isDefined() ? Settings.value() : NullXStringW; }; + BOOLEAN dgetCommonSettings() const { return CommonSettings.isDefined() ? CommonSettings.value() : false; }; + const XString8& dgetAddArguments() const { return AddArguments.isDefined() ? AddArguments.value() : NullXString8; }; + const undefinable_XString8 dgetArguments() const { return Arguments.isDefined() ? undefinable_XString8(Arguments.value()) : undefinable_XString8(); }; + const XString8& dgetm_Title() const { return Title.isDefined() ? Title.value() : NullXString8; }; + const XString8& dgetFullTitle() const { return FullTitle.isDefined() ? FullTitle.value() : NullXString8; }; + const XStringW& dgetm_ImagePath() const { return ImagePath.isDefined() ? ImagePath.value() : NullXStringW; }; + const XBuffer& dgetImageData() const { return ImageData.isDefined() ? ImageData.value() : XBuffer::NullXBuffer; }; + const XStringW& dgetm_DriveImagePath() const { return DriveImagePath.isDefined() ? DriveImagePath.value() : NullXStringW; }; + const XBuffer& dgetDriveImageData() const { return DriveImageData.isDefined() ? DriveImageData.value() : XBuffer::NullXBuffer; }; + CHAR16 dgetHotkey() const { return Hotkey.isDefined() && Hotkey.value().notEmpty() ? Hotkey.value()[0] : 0; }; + + const XString8& dgetCustomLogoAsXString8() const { return CustomLogo.xmlString8.isDefined() ? CustomLogo.xmlString8.value() : NullXString8; }; + const XBuffer& dgetCustomLogoAsData() const { return CustomLogo.xmlData.isDefined() ? CustomLogo.xmlData.value() : XBuffer::NullXBuffer; }; + UINT8 dgetCustomLogoTypeSettings() const { + if ( CustomLogo.xmlBool.isDefined() && CustomLogo.xmlBool.value() ) return CUSTOM_BOOT_APPLE; + if ( CustomLogo.xmlString8.isDefined() ) { + if ( CustomLogo.xmlString8.value() == "Apple"_XS8 ) return CUSTOM_BOOT_APPLE; + if ( CustomLogo.xmlString8.value() == "Alternate"_XS8 ) return CUSTOM_BOOT_ALT_APPLE; + if ( CustomLogo.xmlString8.value() == "Theme"_XS8 ) return CUSTOM_BOOT_THEME; + return CUSTOM_BOOT_USER; + } + if ( CustomLogo.xmlData.isDefined() ) { + return CUSTOM_BOOT_USER; + } + return CUSTOM_BOOT_DISABLED; + } + + EFI_GRAPHICS_OUTPUT_BLT_PIXEL dgetBootBgColor() const { + if ( !BootBgColor.isDefined() ) return EFI_GRAPHICS_OUTPUT_BLT_PIXEL({0,0,0,0}); + UINTN Color = AsciiStrHexToUintn(BootBgColor.value()); + return EFI_GRAPHICS_OUTPUT_BLT_PIXEL({uint8_t((Color >> 8) & 0xFF),uint8_t((Color >> 16) & 0xFF),uint8_t((Color >> 24) & 0xFF),uint8_t((Color >> 0) & 0xFF)}); + } + bool dgetHidden() const { return Hidden.isDefined() && Hidden.xmlBool.isDefined() ? Hidden.xmlBool.value() : false; }; + bool dgetAlwaysHidden() const { return Hidden.isDefined() && Hidden.xmlString8.isDefined() ? Hidden.xmlString8.value().isEqualIC("Always") : false; }; + UINT8 dgetType() const { + if ( Type.isDefined() ) { + if ((Type.value().isEqualIC("OSX")) || + (Type.value() .isEqualIC("macOS"))) { + return OSTYPE_OSX; + } else if (Type.value() .isEqualIC("OSXInstaller")) { + return OSTYPE_OSX_INSTALLER; + } else if (Type.value() .isEqualIC("OSXRecovery")) { + return OSTYPE_RECOVERY; + } else if (Type.value() .isEqualIC("Windows")) { + return OSTYPE_WINEFI; + } else if (Type.value() .isEqualIC("Linux")) { + return OSTYPE_LIN; + } else if (Type.value() .isEqualIC("LinuxKernel")) { + return OSTYPE_LINEFI; + } else { + return OSTYPE_OTHER; + } + } else { + if ( dgetPath().notEmpty() ) { + // Try to set Entry->type from Entry->Path + return GetOSTypeFromPath(dgetPath()); + }else{ + return 0; + } + } + } + + UINT8 dgetVolumeType() const { return VolumeType.isDefined() ? VolumeType.dgetVolumeType() : /*Parent ? Parent->dgetVolumeType() :*/ 0; } // VolumeType is duplicated in DuplicateCustomEntry(), but unconditionnally assigned in FillinCustomEntry(). So no "inheritance" from parent. + INT8 dgetInjectKexts() const { + if ( OSTYPE_IS_OSX(dgetType()) || OSTYPE_IS_OSX_RECOVERY(dgetType()) || OSTYPE_IS_OSX_INSTALLER(dgetType()) ) { + if ( InjectKexts.xmlBool.isDefined() ) return InjectKexts.xmlBool.value(); + if ( InjectKexts.xmlString8.isDefined() && InjectKexts.xmlString8.value().isEqualIC("Detect") ) return 2; + } + return -1; + } + undefinable_bool dgetNoCaches() const { return NoCaches.isDefined() && NoCaches.value() ? undefinable_bool(true) : undefinable_bool(); }; + UINT8 dgetKernelScan() const { + if ( !Kernel.isDefined() ) return KERNEL_SCAN_ALL; + if ((Kernel.value()[0] == 'N') || (Kernel.value()[0] == 'n')) { + return KERNEL_SCAN_NEWEST; + } else if ((Kernel.value()[0] == 'O') || (Kernel.value()[0] == 'o')) { + return KERNEL_SCAN_OLDEST; + } else if ((Kernel.value()[0] == 'F') || (Kernel.value()[0] == 'f')) { + return KERNEL_SCAN_FIRST; + } else if ((Kernel.value()[0] == 'L') || (Kernel.value()[0] == 'l')) { + return KERNEL_SCAN_LAST; + } else if ((Kernel.value()[0] == 'M') || (Kernel.value()[0] == 'm')) { + return KERNEL_SCAN_MOSTRECENT; + } else if ((Kernel.value()[0] == 'E') || (Kernel.value()[0] == 'e')) { + return KERNEL_SCAN_EARLIEST; + } + return KERNEL_SCAN_ALL; + } + + // 2021-04-22 + decltype(ForceTextMode)::ValueType dgetForceTextMode() const { return ForceTextMode.isDefined() ? ForceTextMode.value() : false; }; + +// /* calculated values */ +// UINT8 getFlags(bool NoCachesDefault) const { +// UINT8 Flags = 0; +// if ( Arguments.isDefined() ) Flags = OSFLAG_SET(Flags, OSFLAG_NODEFAULTARGS); +// if ( dgetAlwaysHidden() ) Flags = OSFLAG_SET(Flags, OSFLAG_DISABLED); +// if ( dgetType() == OSTYPE_LIN ) Flags = OSFLAG_SET(Flags, OSFLAG_NODEFAULTARGS); +// if (OSTYPE_IS_OSX(dgetType()) || OSTYPE_IS_OSX_RECOVERY(dgetType()) || OSTYPE_IS_OSX_INSTALLER(dgetType())) { +// Flags = OSFLAG_UNSET(Flags, OSFLAG_NOCACHES); +// } +// if ( NoCaches.isDefined() ) { +// if ( NoCaches ) Flags = OSFLAG_SET(Flags, OSFLAG_NOCACHES); +// }else{ +// if (NoCachesDefault) { +// Flags = OSFLAG_SET(Flags, OSFLAG_NOCACHES); +// } +// } +// if ( SubEntries.notEmpty() ) Flags = OSFLAG_SET(Flags, OSFLAG_NODEFAULTMENU); +// return Flags; +// } + + }; + + //class CUSTOM_LOADER_SUBENTRY_SETTINGS; + //class GUI_Custom_SubEntry_Class; + //template class XmlArray; + //void CompareCustomSubEntries(const XString8& label, const XObjArray& olDCustomEntries, const XmlArray& newCustomEntries); + + class GUI_Custom_SubEntry_Class : public XmlDict + { + using super = XmlDict; + public: + const GUI_Custom_Entry_Class* Parent = NULL; + protected: + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty AddArguments = XmlString8AllowEmpty(); + XmlString8AllowEmpty Arguments = XmlString8AllowEmpty(); + XmlString8AllowEmpty Title = XmlString8AllowEmpty(); + XmlString8AllowEmpty FullTitle = XmlString8AllowEmpty(); + XmlBool NoCaches = XmlBool(); + public: + + protected: + XmlDictField m_fields[6] = { + {"Disabled", Disabled}, + {"AddArguments", AddArguments}, + {"Arguments", Arguments}, + {"Title", Title}, + {"FullTitle", FullTitle}, + {"NoCaches", NoCaches}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + return true; + } + + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + const XString8& dget_AddArguments() const { return AddArguments.isDefined() ? AddArguments.value() : NullXString8; }; + const undefinable_XString8 dget_Arguments() const { return Arguments.isDefined() ? undefinable_XString8(Arguments.value()) : undefinable_XString8(); }; + undefinable_XString8 dget_Title() const { return Title.isDefined() ? undefinable_XString8(Title.value()) : undefinable_XString8(); }; + undefinable_XString8 dget_FullTitle() const { return FullTitle.isDefined() ? undefinable_XString8(FullTitle.value()) : undefinable_XString8(); }; + undefinable_bool dget_NoCaches() const { return NoCaches.isDefined() && NoCaches.value() ? undefinable_bool(true) : undefinable_bool(); }; +// XString8 dget_Title() const { +// if ( Title.isDefined() && Title.xstring8.notEmpty() ) return Title; +// if ( OSTYPE_IS_OSX_RECOVERY(Parent->dgetType()) ) { +// return "Recovery"_XS8; // TODO use a shared static +// } else if ( OSTYPE_IS_OSX_INSTALLER(Parent->dgetType()) ) { +// return "Install macOS"_XS8; // TODO use a shared static +// } +// return NullXStringW; +// +// if ( Title.isDefined() ) return Title.xstring8; +// if ( FullTitle.isDefined() ) return NullXString8; +// if ( Parent ) return Parent->dgetTitle(); +// return NullXString8; +// }; +// const XString8& dget_FullTitle() const { +// if ( FullTitle.isDefined() ) return FullTitle.xstring8; +// if ( Title.isDefined() ) return NullXString8; +// if ( Parent ) return Parent->dgetFullTitle(); +// return NullXString8; +// }; + + + // class CUSTOM_LOADER_SUBENTRY_SETTINGS; + // friend void ::CompareCustomSubEntries(const XString8& label, const XObjArray<::CUSTOM_LOADER_SUBENTRY_SETTINGS>& olDCustomEntries, const XmlArray& newCustomEntries); + + }; + + class GUI_Custom_Legacy_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty Volume = XmlString8AllowEmpty(); + XmlString8AllowEmpty Title = XmlString8AllowEmpty(); + XmlString8AllowEmpty FullTitle = XmlString8AllowEmpty(); + XmlString8AllowEmpty ImagePath = XmlString8AllowEmpty(); + XmlData ImageData = XmlData(); + XmlString8AllowEmpty DriveImagePath = XmlString8AllowEmpty(); + XmlData DriveImageData = XmlData(); + class HotKeyClass : public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( !isDefined() ) return true; + if ( xstring8.length() != 1 ) { + xmlLiteParser->addError(generateErrors, S8Printf("HotKey must a string of only one UTF-16 char at line %d.", keyPos.getLine())); + return false; + } + if ( xstring8[0] >= __WCHAR_MAX__ ) { + xmlLiteParser->addError(generateErrors, S8Printf("HotKey must be a UTF-16 char at line %d.", keyPos.getLine())); + return false; + } + return true; + } + } Hotkey = HotKeyClass(); + XmlBoolOrString Hidden = XmlBoolOrString(); + XmlString8AllowEmpty Type = XmlString8AllowEmpty(); + GUI_Custom_Entry_VolumeType_Class VolumeType = GUI_Custom_Entry_VolumeType_Class(); + + XmlDictField m_fields[12] = { + {"Disabled", Disabled}, + {"Volume", Volume}, + {"Title", Title}, + {"FullTitle", FullTitle}, + {"Image", ImagePath}, + {"ImageData", ImageData}, + {"DriveImage", DriveImagePath}, + {"DriveImageData", DriveImageData}, + {"Hotkey", Hotkey}, + {"Hidden", Hidden}, + {"Type", Type}, + {"VolumeType", VolumeType}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + const XString8& dgetVolume() const { return Volume.isDefined() ? Volume.value() : NullXString8; }; + const XString8& dgetTitle() const { return Title.isDefined() ? Title.value() : NullXString8; }; + const XString8& dgetFullTitle() const { return FullTitle.isDefined() ? FullTitle.value() : NullXString8; }; + const XString8& dgetImagePath() const { return ImagePath.isDefined() ? ImagePath.value() : NullXString8; }; + const XBuffer& dgetImageData() const { return ImageData.isDefined() ? ImageData.value() : XBuffer::NullXBuffer; }; + const XString8& dgetDriveImagePath() const { return DriveImagePath.isDefined() ? DriveImagePath.value() : NullXString8; }; + const XBuffer& dgetDriveImageData() const { return DriveImageData.isDefined() ? DriveImageData.value() : XBuffer::NullXBuffer; }; + CHAR16 dgetHotkey() const { return Hotkey.isDefined() && Hotkey.value().notEmpty() ? Hotkey.value()[0] : 0; }; + bool dgetHidden() const { return Hidden.isDefined() && Hidden.xmlBool.isDefined() ? Hidden.xmlBool.value() : false; }; + bool dgetAlwaysHidden() const { return Hidden.isDefined() && Hidden.xmlString8.isDefined() ? Hidden.xmlString8.value().isEqualIC("Always") : false; }; + UINT8 dgetType() const { + if ( Type.isDefined() ) { + if (Type.value().isEqualIC("Windows")) { + return OSTYPE_WIN; + } else if (Type.value().isEqualIC("Linux")) { + return OSTYPE_LIN; + } else { + return OSTYPE_OTHER; + } + } + return 0; + } + + UINT8 dgetVolumeType() const { return VolumeType.isDefined() ? VolumeType.dgetVolumeType() : /*Parent ? Parent->dgetVolumeType() :*/ 0; } // VolumeType is duplicated in DuplicateCustomEntry(), but unconditionnally assigned in FillinCustomEntry(). So no "inheritance" from parent. + }; + + + class GUI_Custom_Tool_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty Volume = XmlString8AllowEmpty(); + XmlString8AllowEmpty Path = XmlString8AllowEmpty(); + XmlString8AllowEmpty Arguments = XmlString8AllowEmpty(); + XmlString8AllowEmpty Title = XmlString8AllowEmpty(); + XmlString8AllowEmpty FullTitle = XmlString8AllowEmpty(); + XmlString8AllowEmpty ImagePath = XmlString8AllowEmpty(); + XmlData ImageData = XmlData(); + XmlString8AllowEmpty Hotkey = XmlString8AllowEmpty(); + XmlBoolOrString Hidden = XmlBoolOrString(); + GUI_Custom_Entry_VolumeType_Class VolumeType = GUI_Custom_Entry_VolumeType_Class(); + + XmlDictField m_fields[11] = { + {"Disabled", Disabled}, + {"Volume", Volume}, + {"Path", Path}, + {"Arguments", Arguments}, + {"Title", Title}, + {"FullTitle", FullTitle}, + {"Image", ImagePath}, + {"ImageData", ImageData}, + {"Hotkey", Hotkey}, + {"Hidden", Hidden}, + {"VolumeType", VolumeType}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + const XString8& dgetVolume() const { return Volume.isDefined() ? Volume.value() : NullXString8; }; + const XString8& dgetPath() const { return Path.isDefined() ? Path.value() : NullXString8; }; + const XString8& dgetArguments() const { return Arguments.isDefined() ? Arguments.value() : NullXString8; }; + const XString8& dgetTitle() const { return Title.isDefined() ? Title.value() : NullXString8; }; + const XString8& dgetFullTitle() const { return FullTitle.isDefined() ? FullTitle.value() : NullXString8; }; + const XString8& dgetImagePath() const { return ImagePath.isDefined() ? ImagePath.value() : NullXString8; }; + const XBuffer& dgetImageData() const { return ImageData.isDefined() ? ImageData.value() : XBuffer::NullXBuffer; }; + CHAR16 dgetHotkey() const { return Hotkey.isDefined() && Hotkey.value().notEmpty() ? Hotkey.value()[0] : 0; }; + bool dgetHidden() const { return Hidden.isDefined() && Hidden.xmlBool.isDefined() ? Hidden.xmlBool.value() : false; }; + bool dgetAlwaysHidden() const { return Hidden.isDefined() && Hidden.xmlString8.isDefined() ? Hidden.xmlString8.value().isEqualIC("Always") : false; }; + + UINT8 dgetVolumeType() const { return VolumeType.isDefined() ? VolumeType.dgetVolumeType() : /*Parent ? Parent->dgetVolumeType() :*/ 0; } // VolumeType is duplicated in DuplicateCustomEntry(), but unconditionnally assigned in FillinCustomEntry(). So no "inheritance" from parent. + }; + + + public: + XmlArray Entries = XmlArray(); + XmlArray Legacy = XmlArray(); + XmlArray Tool = XmlArray(); + + protected: + XmlDictField m_fields[3] = { + {"Entries", Entries}, + {"Legacy", Legacy}, + {"Tool", Tool}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + }; + + +// -------------------------------------------------- GUI class +protected: +// Timezone + XmlInt32 Timezone = XmlInt32(); // TODO : checkeck Timezone validity +// Theme + XmlString8AllowEmpty Theme = XmlString8AllowEmpty(); +// EmbeddedThemeType + class EmbeddedThemeTypeClass: public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( xstring8.isEqualIC("Dark") ) return true; + if ( xstring8.isEqualIC("Light") ) return true; + if ( xstring8.isEqualIC("Daytime") ) return true; + xmlLiteParser->addError(generateErrors, S8Printf("EmbeddedThemeType must \"Dark\" \"Light\" or \"Daytime\" at line %d.", keyPos.getLine())); + return false; + } + } EmbeddedThemeType = EmbeddedThemeTypeClass(); +// PlayAsync + XmlBool PlayAsync = XmlBool(); +// CustomIcons + XmlBool CustomIcons = XmlBool(); +// TextOnly + XmlBool TextOnly = XmlBool(); +// ShowOptimus + XmlBool ShowOptimus = XmlBool(); +// ScreenResolution + class ScreenResolutionClass: public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + // TODO Check that resolution is Integer x Integer + return true; + xmlLiteParser->addError(generateErrors, S8Printf("ScreenResolution must be {width}x{height} at line %d.", keyPos.getLine())); + return false; + } + } ScreenResolution = ScreenResolutionClass(); +// ProvideConsoleGop + XmlBool ProvideConsoleGop = XmlBool(); +// ConsoleMode + class ConsoleModeClass : public XmlInt64OrString { + using super = XmlInt64OrString; + public: +// ConsoleMode_Class() : XmlInt64OrString(false) {}; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( !xmlString8.isDefined() ) return true; + if ( xmlString8.value().isEqualIC("Max") ) return true; + if ( xmlString8.value().isEqualIC("Min") ) return true; + xmlLiteParser->addWarning(generateErrors, S8Printf("Expecting an integer or \"Min\" or \"Max\" for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; + } + } ConsoleMode = ConsoleModeClass(); +// Language + class LanguageClass: public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( xstring8.containsIC("en") ) return true; + if ( xstring8.containsIC("ru") ) return true; + if ( xstring8.containsIC("ua") ) return true; + if ( xstring8.containsIC("fr") ) return true; + if ( xstring8.containsIC("it") ) return true; + if ( xstring8.containsIC("es") ) return true; + if ( xstring8.containsIC("pt") ) return true; + if ( xstring8.containsIC("br") ) return true; + if ( xstring8.containsIC("de") ) return true; + if ( xstring8.containsIC("nl") ) return true; + if ( xstring8.containsIC("pl") ) return true; + if ( xstring8.containsIC("cz") ) return true; + if ( xstring8.containsIC("hr") ) return true; + if ( xstring8.containsIC("id") ) return true; + if ( xstring8.containsIC("zh_CN") ) return true; + if ( xstring8.containsIC("ro") ) return true; + if ( xstring8.containsIC("ko") ) return true; + xmlLiteParser->addError(generateErrors, S8Printf("Language '%s' is unknown at line %d. Ignored.", xstring8.c_str(), keyPos.getLine())); + return false; + } + } Language = LanguageClass(); +// KbdPrevLang + XmlBool KbdPrevLang = XmlBool(); +public: +// Mouse + GUI_Mouse_Class Mouse = GUI_Mouse_Class(); +// Hide +protected: + XmlString8Array Hide = XmlString8Array(); +public: +// Scan + GUI_Scan_Class Scan = GUI_Scan_Class(*this); +// Custom + GUI_Custom_Class Custom = GUI_Custom_Class(); + +protected: + XmlDictField m_fields[16] = { + {"Timezone", Timezone}, + {"Theme", Theme}, + {"EmbeddedThemeType", EmbeddedThemeType}, + {"PlayAsync", PlayAsync}, + {"CustomIcons", CustomIcons}, + {"TextOnly", TextOnly}, + {"ShowOptimus", ShowOptimus}, + {"ScreenResolution", ScreenResolution}, + {"ProvideConsoleGop", ProvideConsoleGop}, + {"ConsoleMode", ConsoleMode}, + {"Language", Language}, + {"KbdPrevLang", KbdPrevLang}, + {"Mouse", Mouse}, + {"Hide", Hide}, + {"Scan", Scan}, + {"Custom", Custom}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +// virtual bool validate(XmlLiteParser* xmlLiteParser, const char* name, XmlAbstractType* xmlTyp, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) override; + + int32_t dgetTimezone() const { return Timezone.isDefined() ? Timezone.value() : 0xFF; }; + const XString8& dgetTheme() const { return Theme.isDefined() ? Theme.value() : NullXString8; }; + const XString8& dgetEmbeddedThemeType() const { return EmbeddedThemeType.isDefined() ? EmbeddedThemeType.value() : NullXString8; }; + bool dgetPlayAsync() const { return PlayAsync.isDefined() ? PlayAsync.value() : false; }; + bool dgetCustomIcons() const { return CustomIcons.isDefined() ? CustomIcons.value() : false; }; + bool dgetTextOnly() const { return TextOnly.isDefined() ? TextOnly.value() : false; }; + bool dgetShowOptimus() const { return ShowOptimus.isDefined() ? ShowOptimus.value() : false; }; + const XString8& dgetScreenResolution() const { return ScreenResolution.isDefined() ? ScreenResolution.value() : NullXString8; }; + bool dgetProvideConsoleGop() const { return isDefined() ? ProvideConsoleGop.isDefined() ? ProvideConsoleGop.value() : true : false; }; // TODO: different default value if section is not defined + int64_t dgetConsoleMode() const { + if ( ConsoleMode.xmlInt64.isDefined() ) { + return ConsoleMode.xmlInt64.value(); + } else if ( ConsoleMode.xmlString8.isDefined() ) { + if ( ConsoleMode.xmlString8.value().contains("Max") ) { + return -1; + } else if ( ConsoleMode.xmlString8.value().contains("Min") ) { + return -2; + } else { + return (INT32)AsciiStrDecimalToUintn(ConsoleMode.xmlString8.value()); + } + } + return 0; + } + const decltype(Language)::ValueType& dgetLanguage() const { return Language.isDefined() ? Language.value() : Language.nullValue; }; + LanguageCode dgetlanguageCode() const { + if ( !Language.isDefined() ) return english; + if ( Language.value().contains("en") ) { + return english; + } else if ( Language.value().contains("ru")) { + return russian; + } else if ( Language.value().contains("ua")) { + return ukrainian; + } else if ( Language.value().contains("fr")) { + return french; //default is extended latin + } else if ( Language.value().contains("it")) { + return italian; + } else if ( Language.value().contains("es")) { + return spanish; + } else if ( Language.value().contains("pt")) { + return portuguese; + } else if ( Language.value().contains("br")) { + return brasil; + } else if ( Language.value().contains("de")) { + return german; + } else if ( Language.value().contains("nl")) { + return dutch; + } else if ( Language.value().contains("pl")) { + return polish; + } else if ( Language.value().contains("cz")) { + return czech; + } else if ( Language.value().contains("hr")) { + return croatian; + } else if ( Language.value().contains("id")) { + return indonesian; + } else if ( Language.value().contains("zh_CN")) { + return chinese; + } else if ( Language.value().contains("ro")) { + return romanian; + } else if ( Language.value().contains("ko")) { + return korean; + } + return english; + } + + + + bool dgetKbdPrevLang() const { return KbdPrevLang.isDefined() ? KbdPrevLang.value() : false; }; + + /* calculated value */ + + bool getDarkEmbedded(bool isDaylight) const { + if ( !EmbeddedThemeType.isDefined() ) return false; + if ( EmbeddedThemeType.value().isEqualIC("Dark") ) return true; + if ( EmbeddedThemeType.value().isEqualIC("Daytime") ) return !isDaylight; + return false; + } + + const decltype(Hide)::ValueType& dgetHVHideStrings() const { return Hide.isDefined() ? Hide.value() : Hide.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_GUI_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Graphics.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Graphics.h new file mode 100644 index 000000000..b14e70c9a --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Graphics.h @@ -0,0 +1,289 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_GRAPHICS_H_ +#define _CONFIGPLISTCLASS_GRAPHICS_H_ + + +class Graphics_Class : public XmlDict +{ + using super = XmlDict; +public: + const ConfigPlistClass& configPlist; + + class Graphics_PatchVBiosBytes_Class : public XmlDict + { + protected: + XmlData Find = XmlData(); + XmlData Replace = XmlData(); + + XmlDictField m_fields[2] = { + {"Find", Find}, + {"Replace", Replace}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + public: + const decltype(Find)::ValueType& dgetFind() const { return Find.isDefined() ? Find.value() : Find.nullValue; }; + const decltype(Replace)::ValueType& dgetReplace() const { return Replace.isDefined() ? Replace.value() : Replace.nullValue; }; + + }; + + + class Graphics_ATI_NVIDIA_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlString8AllowEmpty Model = XmlString8AllowEmpty(); + XmlUInt32 IOPCIPrimaryMatch = XmlUInt32(); // Id + XmlUInt32 IOPCISubDevId = XmlUInt32(); // SubId + XmlUInt64 VRAM = XmlUInt64(); // VideoRam + XmlUInt64 VideoPorts = decltype(VideoPorts)(); // VideoPorts + XmlBool LoadVBios = XmlBool(); // LoadVBios + + XmlDictField m_fields[6] = { + {"Model", Model}, + {"IOPCIPrimaryMatch", IOPCIPrimaryMatch}, + {"IOPCISubDevId", IOPCISubDevId}, + {"VRAM", VRAM}, + {"VideoPorts", VideoPorts}, + {"LoadVBios", LoadVBios}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + public: + const decltype(Model)::ValueType& dgetModel() const { return Model.isDefined() ? Model.value() : Model.nullValue; }; + const decltype(IOPCIPrimaryMatch)::ValueType& dgetId() const { return IOPCIPrimaryMatch.isDefined() ? IOPCIPrimaryMatch.value() : IOPCIPrimaryMatch.nullValue; }; + const decltype(IOPCISubDevId)::ValueType& dgetSubId() const { return IOPCISubDevId.isDefined() ? IOPCISubDevId.value() : IOPCISubDevId.nullValue; }; + decltype(VRAM)::ValueType dgetVideoRam() const { return VRAM.isDefined() ? LShiftU64(VRAM.value(), 20) : VRAM.nullValue; }; //Mb -> bytes + const decltype(VideoPorts)::ValueType& dgetVideoPorts() const { return VideoPorts.isDefined() ? VideoPorts.value() : VideoPorts.nullValue; }; + const decltype(LoadVBios)::ValueType& dgetLoadVBios() const { return LoadVBios.isDefined() ? LoadVBios.value() : LoadVBios.nullValue; }; + UINT32 dgetSignature() const { return SIGNATURE_32('C','A','R','D'); }; + + }; + + class Graphics_EDID_Class : public XmlDict + { + using super = XmlDict; + public: + XmlBool Inject = XmlBool(); + XmlData Custom = XmlData(); + XmlUInt16 VendorID = XmlUInt16(); + XmlUInt16 ProductID = XmlUInt16(); + XmlUInt16 HorizontalSyncPulseWidth = XmlUInt16(); + XmlUInt8 VideoInputSignal = XmlUInt8(); + + XmlDictField m_fields[6] = { + {"Inject", Inject}, + {"Custom", Custom}, + {"VendorID", VendorID}, + {"ProductID", ProductID}, + {"HorizontalSyncPulseWidth", HorizontalSyncPulseWidth}, + {"VideoInputSignal", VideoInputSignal}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + RETURN_IF_FALSE( super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ); + if ( Inject.isDefined() ) { + if ( Inject.value() ) { + if ( !Custom.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Custom has to be defined if Inject is defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); +// return false; // Allow this to be compatible with old way of reading settings. Can be put back when definitive switch is made + }else{ + if ( Custom.value().size() % 128 != 0 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Custom length must be modulo 128 in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + Custom.reset(); + return true; // that's what Clover is currently doing. + } + } + }else{ + if ( Custom.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Custom is defined and will be ignored because Inject is false in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; + } + } + }else{ + if ( Custom.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Custom is defined and will be ignored because Inject isn't defined '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; + } + } + return true; + + }; + const decltype(Inject)::ValueType& dgetInjectEDID() const { return Inject.isDefined() ? Inject.value() : Inject.nullValue; }; + const decltype(Custom)::ValueType& dgetCustomEDID() const { return dgetInjectEDID() && Custom.isDefined() ? Custom.value() : Custom.nullValue; }; + const decltype(VendorID)::ValueType& dgetVendorEDID() const { return dgetInjectEDID() && VendorID.isDefined() ? VendorID.value() : VendorID.nullValue; }; + const decltype(ProductID)::ValueType& dgetProductEDID() const { return dgetInjectEDID() && ProductID.isDefined() ? ProductID.value() : ProductID.nullValue; }; + const decltype(HorizontalSyncPulseWidth)::ValueType& dgetEdidFixHorizontalSyncPulseWidth() const { return dgetInjectEDID() && HorizontalSyncPulseWidth.isDefined() ? HorizontalSyncPulseWidth.value() : HorizontalSyncPulseWidth.nullValue; }; + const decltype(VideoInputSignal)::ValueType& dgetEdidFixVideoInputSignal() const { return dgetInjectEDID() && VideoInputSignal.isDefined() ? VideoInputSignal.value() : VideoInputSignal.nullValue; }; + + }; + class XmlInjectUnion; + class Graphics_Inject_Class : public XmlDict + { + using super = XmlDict; + protected: + XmlBool Intel = XmlBool(); + XmlBool ATI = XmlBool(); + XmlBool NVidia = XmlBool(); + + XmlDictField m_fields[3] = { + {"Intel", Intel}, + {"ATI", ATI}, + {"NVidia", NVidia}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + protected: + const decltype(Intel)::ValueType& dgetIntel() const { return Intel.isDefined() ? Intel.value() : Intel.nullValue; }; + const decltype(ATI)::ValueType& dgetATI() const { return ATI.isDefined() ? ATI.value() : ATI.nullValue; }; + const decltype(NVidia)::ValueType& dgetNVidia() const { return NVidia.isDefined() ? NVidia.value() : NVidia.nullValue; }; + friend class XmlInjectUnion; + bool isInjectIntelDefined() const { return Intel.isDefined(); }; + bool isInjectATIDefined() const { return ATI.isDefined(); }; + bool isInjectNVidiaDefined() const { return NVidia.isDefined(); }; + }; + + class XmlInjectUnion: public XmlUnion + { + protected: + XmlBool xmlBool = XmlBool(); + Graphics_Inject_Class xmlDict = Graphics_Inject_Class(); + XmlUnionField m_fields[2] = { xmlBool, xmlDict}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + public: + bool dgetGraphicsInjector() const { + if ( xmlBool.isDefined() ) return xmlBool.value(); + return false; + } + const decltype(Graphics_Inject_Class::Intel)::ValueType& dgetInjectIntel() const { return xmlBool.isDefined() ? xmlBool.value() : xmlDict.isDefined() ? xmlDict.dgetIntel() : decltype(Graphics_Inject_Class::Intel)::nullValue; }; + const decltype(Graphics_Inject_Class::ATI)::ValueType& dgetInjectATI() const { return xmlBool.isDefined() ? xmlBool.value() : xmlDict.isDefined() ? xmlDict.dgetATI() : decltype(Graphics_Inject_Class::ATI)::nullValue; }; + const decltype(Graphics_Inject_Class::NVidia)::ValueType& dgetInjectNVidia() const { return xmlBool.isDefined() ? xmlBool.value() : xmlDict.isDefined() ? xmlDict.dgetNVidia() : decltype(Graphics_Inject_Class::NVidia)::nullValue; }; + + bool isInjectIntelDefined() const { return xmlBool.isDefined() || xmlDict.isInjectIntelDefined(); }; + bool isInjectATIDefined() const { return xmlBool.isDefined() || xmlDict.isInjectATIDefined(); }; + bool isInjectNVidiaDefined() const { return xmlBool.isDefined() || xmlDict.isInjectNVidiaDefined(); }; + }; + +protected: + XmlBool PatchVBios = XmlBool(); + XmlBool RadeonDeInit = XmlBool(); + XmlUInt64 VRAM = XmlUInt64(); + XmlUInt32 RefCLK = XmlUInt32(); + XmlBool LoadVBios = XmlBool(); + XmlUInt16 VideoPorts = XmlUInt16(); + XmlInt8 BootDisplay = XmlInt8(); + XmlString8AllowEmpty FBName = XmlString8AllowEmpty(); + XmlString8AllowEmpty NVCAP = XmlString8AllowEmpty(); // It's currently an hex sequence without 0x. TODO validation. Only hex char, space and comma (see hex2bin), length < 20 + XmlString8AllowEmpty displayCfg = XmlString8AllowEmpty(); // It's currently an hex sequence without 0x. TODO validation. Only hex char, space and comma, length < 8 + XmlUInt32 DualLink = XmlUInt32(); + XmlBool NvidiaGeneric = XmlBool(); + XmlBool NvidiaNoEFI = XmlBool(); + XmlBool NvidiaSingle = XmlBool(); + XmlUInt32 igPlatformId = XmlUInt32(); + XmlUInt32 snbPlatformId = XmlUInt32(); + +public: + XmlInjectUnion Inject = XmlInjectUnion(); + Graphics_EDID_Class EDID = Graphics_EDID_Class(); + XmlArray PatchVBiosBytesArray = XmlArray(); + XmlArray ATI = XmlArray(); + XmlArray NVIDIA = XmlArray(); + + XmlDictField m_fields[21] = { + {"PatchVBios", PatchVBios}, + {"RadeonDeInit", RadeonDeInit}, + {"VRAM", VRAM}, + {"RefCLK", RefCLK}, + {"LoadVBios", LoadVBios}, + {"VideoPorts", VideoPorts}, + {"BootDisplay", BootDisplay}, + {"FBName", FBName}, + {"NVCAP", NVCAP}, + {"display-cfg", displayCfg}, + {"DualLink", DualLink}, + {"NvidiaGeneric", NvidiaGeneric}, + {"NvidiaNoEFI", NvidiaNoEFI}, + {"NvidiaSingle", NvidiaSingle}, + {"ig-platform-id", igPlatformId}, + {"snb-platform-id", snbPlatformId}, // TODO: validate : shpouldn't have both. + {"Inject", Inject}, + {"EDID", EDID}, + {"PatchVBiosBytes", PatchVBiosBytesArray}, + {"ATI", ATI}, + {"NVIDIA", NVIDIA}, + }; + + Graphics_Class(const ConfigPlistClass& _configPlist) : configPlist(_configPlist) {} + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + const decltype(PatchVBios)::ValueType& dgetPatchVBios() const { return PatchVBios.isDefined() ? PatchVBios.value() : PatchVBios.nullValue; }; + const decltype(PatchVBiosBytesArray)::ValueType& dgetPatchVBiosBytes() const { return PatchVBiosBytesArray.isDefined() ? PatchVBiosBytesArray.value() : PatchVBiosBytesArray.nullValue; }; + const decltype(RadeonDeInit)::ValueType& dgetRadeonDeInit() const { return RadeonDeInit.isDefined() ? RadeonDeInit.value() : RadeonDeInit.nullValue; }; + const decltype(VRAM)::ValueType& dgetVRAM() const { return VRAM.isDefined() ? VRAM.value() : VRAM.nullValue; }; + const decltype(RefCLK)::ValueType& dgetRefCLK() const { return RefCLK.isDefined() ? RefCLK.value() : RefCLK.nullValue; }; + const decltype(LoadVBios)::ValueType& dgetLoadVBios() const { return LoadVBios.isDefined() ? LoadVBios.value() : LoadVBios.nullValue; }; + const decltype(VideoPorts)::ValueType& dgetVideoPorts() const { return VideoPorts.isDefined() ? VideoPorts.value() : VideoPorts.nullValue; }; + int8_t dgetBootDisplay() const { return isDefined() ? BootDisplay.isDefined() ? BootDisplay.value() : -1 : 0; }; // TODO: different default value if section is not defined + const decltype(FBName)::ValueType& dgetFBName() const { return FBName.isDefined() ? FBName.value() : FBName.nullValue; }; +// const decltype(displayCfg)::ValueType& dgetdisplayCfg() const { return displayCfg.isDefined() ? displayCfg.value() : displayCfg.nullValue; }; + decltype(DualLink)::ValueType dgetDualLink() const { return DualLink.isDefined() ? DualLink.value() : 0xA; }; + const decltype(NvidiaGeneric)::ValueType& dgetNvidiaGeneric() const { return NvidiaGeneric.isDefined() ? NvidiaGeneric.value() : NvidiaGeneric.nullValue; }; + const decltype(NvidiaNoEFI)::ValueType& dgetNvidiaNoEFI() const { return NvidiaNoEFI.isDefined() ? NvidiaNoEFI.value() : NvidiaNoEFI.nullValue; }; + const decltype(NvidiaSingle)::ValueType& dgetNvidiaSingle() const { return NvidiaSingle.isDefined() ? NvidiaSingle.value() : NvidiaSingle.nullValue; }; + decltype(igPlatformId)::ValueType dget_IgPlatform() const { + for ( size_t idx = 0 ; idx < configPlist.Devices.Arbitrary.size() ; ++idx ) { + const ConfigPlistClass::DevicesClass::Devices_Arbitrary_Class& arbitraryProperty = configPlist.Devices.Arbitrary[idx]; + for ( size_t jdx = 0 ; jdx < arbitraryProperty.CustomProperties.size() ; ++jdx ) { + const ConfigPlistClass::DevicesClass::SimplePropertyClass_Class& customProperty = arbitraryProperty.CustomProperties[jdx]; + if ( customProperty.key.isDefined() && customProperty.key.value().contains("-platform-id") ) { + XBuffer buf = customProperty.dgetValue(); + if ( buf.size() == 0 ) return 0; + decltype(igPlatformId)::ValueType v = 0; + memcpy(&v, buf.data(), MIN(sizeof(decltype(igPlatformId)::ValueType), buf.size())); + return v; + } + } + } + if ( snbPlatformId.isDefined() ) return snbPlatformId.value(); + return igPlatformId.isDefined() ? igPlatformId.value() : igPlatformId.nullValue; + }; +// const decltype(snbPlatformId)::ValueType& dgetsnbPlatformId() const { return snbPlatformId.isDefined() ? snbPlatformId.value() : snbPlatformId.nullValue; }; + +// undefinable_bool dgetInjectAsBool() const { return Inject.isDefined() && Inject.xmlBool.isDefined() ? undefinable_bool(Inject.xmlBool.value()) : undefinable_bool(); }; + const XArray dgetDcfg() const { + XArray xbuffer; + xbuffer.Add(0, 8); + if ( displayCfg.isDefined() ) { + hex2bin(displayCfg.value().c_str(), displayCfg.value().length(), xbuffer.data(), 8); + }else{ + memcpy(xbuffer.data(), default_dcfg_0, 4); + memcpy(&xbuffer[4], default_dcfg_1, 4); + } + return xbuffer; + }; + const XArray dgetNVCAP() const { + XArray xbuffer; + xbuffer.Add(0, 20); + if ( NVCAP.isDefined() ) { + hex2bin(NVCAP.value().c_str(), NVCAP.value().length(), xbuffer.data(), 20); + }else{ + memcpy(xbuffer.data(), default_NVCAP, 20); + } + return xbuffer; + }; + + const decltype(NVIDIA)::ValueType& dgetNVIDIA() const { return NVIDIA.isDefined() ? NVIDIA.value() : NVIDIA.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_GRAPHICS_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_KernelAndKextPatches.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_KernelAndKextPatches.h new file mode 100644 index 000000000..017e2c555 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_KernelAndKextPatches.h @@ -0,0 +1,350 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_KERNELANDKEXTPATCHES_H_ +#define _CONFIGPLISTCLASS_KERNELANDKEXTPATCHES_H_ + + + +class KernelAndKextPatches_Class : public XmlDict +{ + using super = XmlDict; +public: + + + class KernelAndKextPatches_AbstractPatch_Class : public XmlDict + { + using super = XmlDict; + public: + XmlBool Disabled = XmlBool(); + XmlString8AllowEmpty Comment = XmlString8AllowEmpty(); + XmlData Find = XmlData(); // ABSTRACT_PATCH.Data + XmlData Replace = XmlData(); // ABSTRACT_PATCH.Patch + XmlData MaskFind = XmlData(); + XmlData MaskReplace = XmlData(); + XmlData StartPattern = XmlData(); + XmlData MaskStart = XmlData(); // ABSTRACT_PATCH.StartMask + XmlInt64 RangeFind = XmlInt64(); + XmlInt64 Skip = XmlInt64(); + XmlInt64 Count = XmlInt64(); + XmlString8AllowEmpty MatchOS = XmlString8AllowEmpty(); // validation ? + XmlString8AllowEmpty MatchBuild = XmlString8AllowEmpty(); // validation ? + + // XmlDictField m_fields[13] = { + // {"Comment", Comment}, + // {"Disabled", Disabled}, + // {"RangeFind", RangeFind}, + // {"Skip", Skip}, + // {"StartPattern", StartPattern}, + // {"MaskStart", MaskStart}, + // {"Find", Find}, + // {"Replace", Replace}, + // {"MaskFind", MaskFind}, + // {"MaskReplace", MaskReplace}, + // {"Count", Count}, + // {"MatchOS", MatchOS}, + // {"MatchBuild", MatchBuild}, + // }; + + public: + // virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { panic("BUG: This cannot be called"); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + // TODO after switch to new parser : name.isEmpty() + if ( !Find.isDefined() || Find.value().size() == 0 ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Find has to be defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + if ( !Replace.isDefined() || Replace.value().size() == 0 ) return xmlLiteParser->addWarning(generateErrors, S8Printf("One of Find or Replace has to be defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + if ( Replace.value().size() > Find.value().size() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Replace is longer (%zu) than Find (%zu) and will be truncated in dict '%s:%d'.", Replace.value().size(), Find.value().size(), xmlPath.c_str(), keyPos.getLine())); + Replace.modifiableValue().setSize(Find.value().size(), 0); + } + return b; + } + + bool dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : false; }; + const XBuffer& dgetFind() const { return Find.isDefined() ? Find.value() : XBuffer::NullXBuffer; }; + const XBuffer& dgetReplace() const { return Replace.isDefined() ? Replace.value() : XBuffer::NullXBuffer; }; + XBuffer dgetMaskFind() const + { + if ( !Find.isDefined() || Find.value().size() == 0 ) return MaskReplace.nullValue; + if ( !MaskFind.isDefined() || MaskFind.value().size() == 0 ) return MaskReplace.nullValue; + XBuffer returnValue; + size_t findSize = dgetFind().size(); + returnValue.ncpy(MaskFind.value().data(), MIN(findSize, MaskFind.value().size())); + returnValue.setSize(findSize, 0xFF); + return returnValue; + }; + + XBuffer dgetMaskReplace() const + { + if ( !Find.isDefined() || Find.value().size() == 0 ) return MaskReplace.nullValue; + if ( !Replace.isDefined() || Replace.value().size() == 0 ) return MaskReplace.nullValue; + if ( !MaskReplace.isDefined() || MaskReplace.value().size() == 0 ) return MaskReplace.nullValue; + XBuffer returnValue; + size_t findSize = dgetFind().size(); + returnValue.ncpy(MaskReplace.value().data(), MIN(findSize, MaskReplace.value().size())); + returnValue.setSize(findSize, 0); + return returnValue; + }; + + const XBuffer& dgetStartPattern() const { return StartPattern.isDefined() ? StartPattern.value() : XBuffer::NullXBuffer; }; + XBuffer dgetStartMask() const + { + if ( !StartPattern.isDefined() || StartPattern.value().size() == 0 ) return MaskReplace.nullValue; +// if ( !MaskStart.isDefined() || MaskStart.value().size() == 0 ) return MaskReplace.nullValue; + XBuffer returnValue; + size_t findSize = StartPattern.value().size(); + if ( MaskStart.isDefined() ) { + returnValue.ncpy(MaskStart.value().data(), MIN(findSize, MaskStart.value().size())); + } + returnValue.setSize(findSize, 0xFF); + return returnValue; + }; + INTN dgetSearchLen() const { return RangeFind.isDefined() ? RangeFind.value() : false; }; + virtual INTN dgetCount() const { return Count.isDefined() ? Count.value() : 0; }; + INTN dgetSkip() const { return Skip.isDefined() ? Skip.value() : false; }; + const XString8& dgetMatchOS() const { return MatchOS.isDefined() ? MatchOS.value() : NullXString8; }; + const XString8& dgetMatchBuild() const { return MatchBuild.isDefined() ? MatchBuild.value() : NullXString8; }; + + virtual XString8 dgetLabel() const = 0; + + }; + + class ABSTRACT_KEXT_OR_KERNEL_PATCH : public KernelAndKextPatches_AbstractPatch_Class + { + public: + XmlString8AllowEmpty Procedure = XmlString8AllowEmpty(); + const XString8& dgetProcedureName() const { return Procedure.isDefined() ? Procedure.value() : NullXString8; }; + }; + + class KernelAndKextPatches_KextsToPatch_Class : public ABSTRACT_KEXT_OR_KERNEL_PATCH + { + using super = KernelAndKextPatches_AbstractPatch_Class; + public: + XmlString8AllowEmpty Name = XmlString8AllowEmpty(); + XmlBool InfoPlistPatch = XmlBool(); + + XmlDictField m_fields[16] = { + {"Name", Name}, + {"Comment", Comment}, + {"Disabled", Disabled}, + {"RangeFind", RangeFind}, + {"Skip", Skip}, + {"StartPattern", StartPattern}, + {"MaskStart", MaskStart}, + {"Find", Find}, + {"Replace", Replace}, + {"Procedure", Procedure}, + {"MaskFind", MaskFind}, + {"MaskReplace", MaskReplace}, + {"Count", Count}, + {"MatchOS", MatchOS}, + {"MatchBuild", MatchBuild}, + {"InfoPlistPatch", InfoPlistPatch}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + b = super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors); + if ( !Name.isDefined() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("Kernel patch is ignored because 'Name' is not defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + // TODO after switch to new parser : name.isEmpty() + return b; + } + + const XString8& dgetName() const { return Name.isDefined() ? Name.value() : NullXString8; }; + XString8 dgetLabel() const override { return Comment.isDefined() ? S8Printf("%s (%s)", Name.value().c_str(), Comment.value().c_str()) : S8Printf("%s (NoLabel)", Name.value().c_str()); }; + bool dgetIsPlistPatch() const { return InfoPlistPatch.isDefined() ? InfoPlistPatch.value() : false; }; + + // override because of different defaultvalue + virtual INTN dgetCount() const override { return Count.isDefined() ? Count.value() : 1; }; + + }; + + class KernelAndKextPatches_KernelToPatch_Class : public ABSTRACT_KEXT_OR_KERNEL_PATCH + { + using super = KernelAndKextPatches_AbstractPatch_Class; + public: + + XmlDictField m_fields[14] = { + {"Comment", Comment}, + {"Disabled", Disabled}, + {"RangeFind", RangeFind}, + {"Skip", Skip}, + {"StartPattern", StartPattern}, + {"MaskStart", MaskStart}, + {"Find", Find}, + {"Replace", Replace}, + {"Procedure", Procedure}, + {"MaskFind", MaskFind}, + {"MaskReplace", MaskReplace}, + {"Count", Count}, + {"MatchOS", MatchOS}, + {"MatchBuild", MatchBuild}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + bool b = true; + b = super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors); + return b; + } + XString8 dgetName() const { return "kernel"_XS8; }; + XString8 dgetLabel() const override { return Comment.isDefined() ? Comment.value() : "NoLabel"_XS8; }; + const XString8& dgetProcedureName() const { return Procedure.isDefined() ? Procedure.value() : NullXString8; }; + }; + + class KernelAndKextPatches_BootPatch_Class : public KernelAndKextPatches_AbstractPatch_Class + { + using super = KernelAndKextPatches_AbstractPatch_Class; + public: + + XmlDictField m_fields[13] = { + {"Comment", Comment}, + {"Disabled", Disabled}, + {"RangeFind", RangeFind}, + {"Skip", Skip}, + {"StartPattern", StartPattern}, + {"MaskStart", MaskStart}, + {"Find", Find}, + {"Replace", Replace}, + {"MaskFind", MaskFind}, + {"MaskReplace", MaskReplace}, + {"Count", Count}, + {"MatchOS", MatchOS}, + {"MatchBuild", MatchBuild}, + }; + + public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + bool b = true; + b = super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors); + return b; + } + XString8 dgetName() const { return "boot.efi"_XS8; }; + XString8 dgetLabel() const override { return Comment.isDefined() ? Comment.value() : "NoLabel"_XS8; }; + }; + + + + class ForceKextsToLoadClass : public XmlStringWArray + { + using super = XmlStringWArray; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + for ( size_t idx = 0 ; idx < value().size() ; ) { + if ( value()[idx] == "\\"_XS8 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("String cannot be '\\' for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + value().removeAtPos(idx); + }else{ + ++idx; + } + } + return true; + } + }; + + XmlBool Debug = XmlBool(); + XmlBool KernelLapic = XmlBool(); + XmlBool KernelXCPM = XmlBool(); + XmlBool KernelPm = XmlBool(); + XmlBool PanicNoKextDump = XmlBool(); + XmlBool AppleIntelCPUPM = XmlBool(); + XmlBool AppleRTC = XmlBool(); + XmlBool EightApple = XmlBool(); + XmlBool DellSMBIOSPatch = XmlBool(); + XmlUInt32 FakeCPUID = XmlUInt32(); + XmlString8AllowEmpty ATIConnectorsController = XmlString8AllowEmpty(); + XmlData ATIConnectorsData = XmlData(); + XmlData ATIConnectorsPatch = XmlData(); + ForceKextsToLoadClass ForceKextsToLoad = ForceKextsToLoadClass(); + XmlArray KextsToPatch = XmlArray(); + XmlArray KernelToPatch = XmlArray(); + XmlArray BootPatches = XmlArray(); + + XmlDictField m_fields[17] = { + {"Debug", Debug}, + {"KernelLapic", KernelLapic}, + {"KernelXCPM", KernelXCPM}, + {"KernelPm", KernelPm}, + {"PanicNoKextDump", PanicNoKextDump}, + {"AppleIntelCPUPM", AppleIntelCPUPM}, + {"AppleRTC", AppleRTC}, + {"EightApple", EightApple}, + {"DellSMBIOSPatch", DellSMBIOSPatch}, + {"FakeCPUID", FakeCPUID}, + {"ATIConnectorsController", ATIConnectorsController}, + {"ATIConnectorsData", ATIConnectorsData}, + {"ATIConnectorsPatch", ATIConnectorsPatch}, + {"ForceKextsToLoad", ForceKextsToLoad}, + {"KextsToPatch", KextsToPatch}, + {"KernelToPatch", KernelToPatch}, + {"BootPatches", BootPatches}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + if ( !ATIConnectorsController.isDefined() ) { + if ( ATIConnectorsData.isDefined() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("ATIConnectorsData is ignored because ATIConnectorsController is not defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + if ( ATIConnectorsPatch.isDefined() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("ATIConnectorsPatch is ignored because ATIConnectorsController is not defined in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + }else{ + // ATIConnectorsController is defined + if ( !ATIConnectorsPatch.isDefined() || ATIConnectorsPatch.value().isEmpty() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("ATIConnectorsController is ignored because ATIConnectorsPatch is not defined or empty in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + if ( !ATIConnectorsData.isDefined() || ATIConnectorsData.value().isEmpty() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("ATIConnectorsController is ignored because ATIConnectorsData is not defined or empty in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + if ( b && ATIConnectorsPatch.value().size() != ATIConnectorsData.value().size() ) { + b = xmlLiteParser->addWarning(generateErrors, S8Printf("ATIConnectorsPatch length != ATIConnectorsData length in dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + } + if ( !b ) { + ATIConnectorsController.reset(); + ATIConnectorsData.reset(); + ATIConnectorsPatch.reset(); + } + return true; + } + + bool dgetKPDebug() const { return Debug.isDefined() ? Debug.value() : false; }; + bool dgetKPKernelLapic() const { return KernelLapic.isDefined() ? KernelLapic.value() : false; }; + bool dgetKPKernelXCPM() const { return KernelXCPM.isDefined() ? KernelXCPM.value() : false; }; + bool dget_KPKernelPm() const { return KernelPm.isDefined() ? KernelPm.value() : false; }; + bool dgetKPPanicNoKextDump() const { return PanicNoKextDump.isDefined() ? PanicNoKextDump.value() : false; }; + bool dget_KPAppleIntelCPUPM() const { return AppleIntelCPUPM.isDefined() ? AppleIntelCPUPM.value() : false; }; + bool dgetKPAppleRTC() const { return AppleRTC.isDefined() ? AppleRTC.value() : true; }; + bool dgetEightApple() const { return EightApple.isDefined() ? EightApple.value() : false; }; + bool dgetKPDELLSMBIOS() const { return DellSMBIOSPatch.isDefined() ? DellSMBIOSPatch.value() : false; }; + uint32_t dgetFakeCPUID() const { return FakeCPUID.isDefined() ? FakeCPUID.value() : false; }; + const XString8& dgetKPATIConnectorsController() const { return ATIConnectorsController.isDefined() ? ATIConnectorsController.value() : NullXString8; }; + const XBuffer& dgetKPATIConnectorsData() const { return ATIConnectorsData.isDefined() ? ATIConnectorsData.value() : XBuffer::NullXBuffer; }; + const XBuffer& dgetKPATIConnectorsPatch() const { return ATIConnectorsPatch.isDefined() ? ATIConnectorsPatch.value() : XBuffer::NullXBuffer; }; + const decltype(ForceKextsToLoad)::ValueType& dgetForceKextsToLoad() const { return ForceKextsToLoad.isDefined() ? ForceKextsToLoad.value() : ForceKextsToLoad.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_KERNELANDKEXTPATCHES_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.cpp b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.cpp new file mode 100644 index 000000000..28664af74 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.cpp @@ -0,0 +1,13 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +#include "ConfigPlistClass.h" + +const decltype(ConfigPlistClass::Quirks_Class::Quirks_MmioWhitelist_Class::Comment)::ValueType& ConfigPlistClass::Quirks_Class::Quirks_MmioWhitelist_Class::defaultComment = " (NoLabel)"_XS8; diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h new file mode 100644 index 000000000..af990b5ed --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_Quirks.h @@ -0,0 +1,200 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_QUIRKS_H_ +#define _CONFIGPLISTCLASS_QUIRKS_H_ + + +class Quirks_Class : public XmlDict +{ + using super = XmlDict; +public: + + + class Quirks_MmioWhitelist_Class : public XmlDict + { + using super = XmlDict; + public: + XmlString8 Comment = XmlString8(); + XmlUInt64 Address = XmlUInt64(); + XmlBool Enabled = XmlBool(); + + XmlDictField m_fields[3] = { + {"Comment", Comment}, + {"Address", Address}, + {"Enabled", Enabled}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + if ( !Address.isDefined() || Address.value() == 0) { + if ( Enabled.isDefined() && Enabled.value() ) b = xmlLiteParser->addWarning(generateErrors, S8Printf("Enabled is ignored because Address is not defined or 0 in dict '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + } + return b; + } + + static const decltype(Comment)::ValueType& defaultComment; + const decltype(Comment)::ValueType& dgetcomment() const { return Comment.isDefined() ? Comment.value() : defaultComment; }; + const decltype(Address)::ValueType& dgetaddress() const { return Address.isDefined() ? Address.value() : Address.nullValue; }; + const decltype(Enabled)::ValueType& dgetenabled() const { return Enabled.isDefined() ? Enabled.value() : Enabled.nullValue; }; + + }; + + + + + // This is to mimic what's in settings. This is NOT a plist dict section. It is just cosmetic. TODO: remove that OC coupling in SETTINGS_DATA. + class OcKernelQuirks_Class { + //const Quirks_Class& parent; + public: + XmlBool AppleXcpmExtraMsrs = XmlBool(); + XmlBool AppleXcpmForceBoost = XmlBool(); + XmlBool DisableIoMapper = XmlBool(); + XmlBool DisableLinkeditJettison = XmlBool(); + XmlBool DummyPowerManagement = XmlBool(); + XmlBool ExternalDiskIcons = XmlBool(); + XmlBool IncreasePciBarSize = XmlBool(); + XmlBool PowerTimeoutKernelPanic = XmlBool(); + XmlBool ThirdPartyDrives = XmlBool(); + XmlBool XhciPortLimit = XmlBool(); + + bool dgetAppleXcpmExtraMsrs() const { return AppleXcpmExtraMsrs.isDefined() ? AppleXcpmExtraMsrs.value() : AppleXcpmExtraMsrs.nullValue; }; + bool dgetAppleXcpmForceBoost() const { return AppleXcpmForceBoost.isDefined() ? AppleXcpmForceBoost.value() : AppleXcpmForceBoost.nullValue; }; + bool dgetDisableIoMapper() const { return DisableIoMapper.isDefined() ? DisableIoMapper.value() : DisableIoMapper.nullValue; }; + bool dgetDisableLinkeditJettison() const { return DisableLinkeditJettison.isDefined() ? DisableLinkeditJettison.value() : DisableLinkeditJettison.nullValue; }; + bool dgetDummyPowerManagement() const { return DummyPowerManagement.isDefined() ? DummyPowerManagement.value() : DummyPowerManagement.nullValue; }; + bool dgetExternalDiskIcons() const { return ExternalDiskIcons.isDefined() ? ExternalDiskIcons.value() : ExternalDiskIcons.nullValue; }; + bool dgetIncreasePciBarSize() const { return IncreasePciBarSize.isDefined() ? IncreasePciBarSize.value() : IncreasePciBarSize.nullValue; }; + bool dgetPowerTimeoutKernelPanic() const { return PowerTimeoutKernelPanic.isDefined() ? PowerTimeoutKernelPanic.value() : PowerTimeoutKernelPanic.nullValue; }; + bool dgetThirdPartyDrives() const { return ThirdPartyDrives.isDefined() ? ThirdPartyDrives.value() : ThirdPartyDrives.nullValue; }; + bool dgetXhciPortLimit() const { return XhciPortLimit.isDefined() ? XhciPortLimit.value() : XhciPortLimit.nullValue; }; + + OcKernelQuirks_Class(const Quirks_Class& _parent) /*: parent(_parent)*/ {} + }; + + // This is to mimic what's in settings. This is NOT a plist dict section. It is just cosmetic. TODO: remove that OC coupling in SETTINGS_DATA. + class OcBooterQuirks_Class { + const Quirks_Class& parent; + public: + XmlBool AvoidRuntimeDefrag = XmlBool(); + XmlBool DevirtualiseMmio = XmlBool(); + XmlBool DisableSingleUser = XmlBool(); + XmlBool DisableVariableWrite = XmlBool(); + XmlBool DiscardHibernateMap = XmlBool(); + XmlBool EnableSafeModeSlide = XmlBool(); + XmlBool EnableWriteUnprotector = XmlBool(); + XmlBool ForceExitBootServices = XmlBool(); + XmlBool ProtectMemoryRegions = XmlBool(); + XmlBool ProtectSecureBoot = XmlBool(); + XmlBool ProtectUefiServices = XmlBool(); + XmlBool ProvideCustomSlide = XmlBool(); + XmlUInt8 ProvideMaxSlide = XmlUInt8(); + XmlBool RebuildAppleMemoryMap = XmlBool(); + XmlBool SetupVirtualMap = XmlBool(); + XmlBool SignalAppleOS = XmlBool(); + XmlBool SyncRuntimePermissions = XmlBool(); + + bool dgetAvoidRuntimeDefrag() const { return parent.isDefined() ? AvoidRuntimeDefrag.isDefined() ? AvoidRuntimeDefrag.value() : true : false; }; // TODO: different default value if section is not defined + bool dgetDevirtualiseMmio() const { return DevirtualiseMmio.isDefined() ? DevirtualiseMmio.value() : DevirtualiseMmio.nullValue; }; + bool dgetDisableSingleUser() const { return DisableSingleUser.isDefined() ? DisableSingleUser.value() : DisableSingleUser.nullValue; }; + bool dgetDisableVariableWrite() const { return DisableVariableWrite.isDefined() ? DisableVariableWrite.value() : DisableVariableWrite.nullValue; }; + bool dgetDiscardHibernateMap() const { return DiscardHibernateMap.isDefined() ? DiscardHibernateMap.value() : DiscardHibernateMap.nullValue; }; + bool dgetEnableSafeModeSlide() const { return parent.isDefined() ? EnableSafeModeSlide.isDefined() ? EnableSafeModeSlide.value() : true : false; }; // TODO: different default value if section is not defined + bool dgetEnableWriteUnprotector() const { return parent.isDefined() ? EnableWriteUnprotector.isDefined() ? EnableWriteUnprotector.value() : true : EnableWriteUnprotector.nullValue; }; // TODO: different default value if section is not defined + bool dgetForceExitBootServices() const { return ForceExitBootServices.isDefined() ? ForceExitBootServices.value() : ForceExitBootServices.nullValue; }; + bool dgetProtectMemoryRegions() const { return ProtectMemoryRegions.isDefined() ? ProtectMemoryRegions.value() : ProtectMemoryRegions.nullValue; }; + bool dgetProtectSecureBoot() const { return ProtectSecureBoot.isDefined() ? ProtectSecureBoot.value() : ProtectSecureBoot.nullValue; }; + bool dgetProtectUefiServices() const { return ProtectUefiServices.isDefined() ? ProtectUefiServices.value() : ProtectUefiServices.nullValue; }; + bool dgetProvideCustomSlide() const { return ProvideCustomSlide.isDefined() ? ProvideCustomSlide.value() : ProvideCustomSlide.nullValue; }; + uint8_t dgetProvideMaxSlide() const { return ProvideMaxSlide.isDefined() ? ProvideMaxSlide.value() : ProvideMaxSlide.nullValue; }; + bool dgetRebuildAppleMemoryMap() const { return RebuildAppleMemoryMap.isDefined() ? RebuildAppleMemoryMap.value() : RebuildAppleMemoryMap.nullValue; }; + bool dgetSetupVirtualMap() const { return parent.isDefined() ? SetupVirtualMap.isDefined() ? SetupVirtualMap.value() : true : SetupVirtualMap.nullValue; }; // TODO: different default value if section is not defined + bool dgetSignalAppleOS() const { return SignalAppleOS.isDefined() ? SignalAppleOS.value() : SignalAppleOS.nullValue; }; + bool dgetSyncRuntimePermissions() const { return parent.isDefined() ? SyncRuntimePermissions.isDefined() ? SyncRuntimePermissions.value() : true : false; }; // TODO: different default value if section is not defined + + OcBooterQuirks_Class(const Quirks_Class& _parent) : parent(_parent) {} + }; + XmlArray MmioWhitelist = XmlArray(); +protected: + XmlBool FuzzyMatch = XmlBool(); + XmlString8AllowEmpty KernelCache = XmlString8AllowEmpty(); + XmlBool ProvideConsoleGopEnable = XmlBool(); +public: + OcKernelQuirks_Class OcKernelQuirks = OcKernelQuirks_Class(*this); + OcBooterQuirks_Class OcBooterQuirks = OcBooterQuirks_Class(*this); + + XmlDictField m_fields[30] = { + {"AvoidRuntimeDefrag", OcBooterQuirks.AvoidRuntimeDefrag}, + {"DevirtualiseMmio", OcBooterQuirks.DevirtualiseMmio}, + {"DisableSingleUser", OcBooterQuirks.DisableSingleUser}, + {"DisableVariableWrite", OcBooterQuirks.DisableVariableWrite}, + {"DiscardHibernateMap", OcBooterQuirks.DiscardHibernateMap}, + {"EnableSafeModeSlide", OcBooterQuirks.EnableSafeModeSlide}, + {"EnableWriteUnprotector", OcBooterQuirks.EnableWriteUnprotector}, + {"ForceExitBootServices", OcBooterQuirks.ForceExitBootServices}, + {"ProtectMemoryRegions", OcBooterQuirks.ProtectMemoryRegions}, + {"ProtectSecureBoot", OcBooterQuirks.ProtectSecureBoot}, + {"ProtectUefiServices", OcBooterQuirks.ProtectUefiServices}, + {"ProvideCustomSlide", OcBooterQuirks.ProvideCustomSlide}, + {"ProvideMaxSlide", OcBooterQuirks.ProvideMaxSlide}, + {"RebuildAppleMemoryMap", OcBooterQuirks.RebuildAppleMemoryMap}, + {"SetupVirtualMap", OcBooterQuirks.SetupVirtualMap}, + {"SignalAppleOS", OcBooterQuirks.SignalAppleOS}, + {"SyncRuntimePermissions", OcBooterQuirks.SyncRuntimePermissions}, + {"MmioWhitelist", MmioWhitelist}, + {"FuzzyMatch", FuzzyMatch}, + {"KernelCache", KernelCache}, + {"AppleXcpmExtraMsrs", OcKernelQuirks.AppleXcpmExtraMsrs}, + {"AppleXcpmForceBoost", OcKernelQuirks.AppleXcpmForceBoost}, + {"DisableIoMapper", OcKernelQuirks.DisableIoMapper}, + {"DisableLinkeditJettison", OcKernelQuirks.DisableLinkeditJettison}, + {"DummyPowerManagement", OcKernelQuirks.DummyPowerManagement}, + {"ExternalDiskIcons", OcKernelQuirks.ExternalDiskIcons}, + {"IncreasePciBarSize", OcKernelQuirks.IncreasePciBarSize}, + {"PowerTimeoutKernelPanic", OcKernelQuirks.PowerTimeoutKernelPanic}, + {"ThirdPartyDrives", OcKernelQuirks.ThirdPartyDrives}, + {"XhciPortLimit", OcKernelQuirks.XhciPortLimit}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + return b; + } + const decltype(FuzzyMatch)::ValueType& dgetFuzzyMatch() const { return FuzzyMatch.isDefined() ? FuzzyMatch.value() : FuzzyMatch.nullValue; }; + const decltype(KernelCache)::ValueType& dgetOcKernelCache() const { return KernelCache.isDefined() ? KernelCache.value() : KernelCache.nullValue; }; +// bool dgetProvideConsoleGop() const { return ProvideConsoleGopEnable.isDefined() ? ProvideConsoleGopEnable.value() : ProvideConsoleGopEnable.nullValue; }; + UINT32 dgetQuirksMask() const { + UINT32 mask = 0; + mask |= OcBooterQuirks.dgetAvoidRuntimeDefrag() ? QUIRK_DEFRAG:0; + mask |= OcBooterQuirks.dgetDevirtualiseMmio() ? QUIRK_MMIO:0; + mask |= OcBooterQuirks.dgetDisableSingleUser() ? QUIRK_SU:0; + mask |= OcBooterQuirks.dgetDisableVariableWrite() ? QUIRK_VAR:0; + mask |= OcBooterQuirks.dgetDiscardHibernateMap() ? QUIRK_HIBER:0; + mask |= OcBooterQuirks.dgetEnableSafeModeSlide() ? QUIRK_SAFE:0; + mask |= OcBooterQuirks.dgetEnableWriteUnprotector() ? QUIRK_UNPROT:0; + mask |= OcBooterQuirks.dgetForceExitBootServices() ? QUIRK_EXIT:0; + mask |= OcBooterQuirks.dgetProtectMemoryRegions() ? QUIRK_REGION:0; + mask |= OcBooterQuirks.dgetProtectSecureBoot() ? QUIRK_SECURE:0; + mask |= OcBooterQuirks.dgetProtectUefiServices() ? QUIRK_UEFI:0; + mask |= OcBooterQuirks.dgetProvideCustomSlide() ? QUIRK_CUSTOM:0; + mask |= OcBooterQuirks.dgetRebuildAppleMemoryMap() ? QUIRK_MAP:0; + mask |= OcBooterQuirks.dgetSetupVirtualMap() ? QUIRK_VIRT:0; + mask |= OcBooterQuirks.dgetSignalAppleOS() ? QUIRK_OS:0; + mask |= OcBooterQuirks.dgetSyncRuntimePermissions() ? QUIRK_PERM:0; + return mask; + }; + +}; + + +#endif /* _CONFIGPLISTCLASS_QUIRKS_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_RtVariables.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_RtVariables.h new file mode 100644 index 000000000..4961f11ed --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_RtVariables.h @@ -0,0 +1,176 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_RTVARIABLES_H_ +#define _CONFIGPLISTCLASS_RTVARIABLES_H_ + + +class RtVariables_Class : public XmlDict +{ + using super = XmlDict; +public: + + class Devices_RtVariables_Block : public XmlDict + { + using super = XmlDict; + public: + class GuidClass : public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) return true; + if ( !IsValidGuidString(xstring8) ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Invalid GUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX in dict '%s:%d'", xstring8.c_str(), xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + protected: + XmlString8AllowEmpty Comment = XmlString8AllowEmpty(); + XmlBool Disabled = XmlBool(); + XmlStringW Name = XmlStringW(); + public: + GuidClass Guid = GuidClass(); + + XmlDictField m_fields[4] = { + {"Comment", Comment}, + {"Disabled", Disabled}, + {"Guid", Guid}, + {"Name", Name}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + public: + const decltype(Comment)::ValueType& dgetComment() const { return Comment.isDefined() ? Comment.value() : Comment.nullValue; }; + const decltype(Disabled)::ValueType& dgetDisabled() const { return Disabled.isDefined() ? Disabled.value() : Disabled.nullValue; }; + uint8_t dgetBValue() const { return Disabled.isDefined() ? Disabled.value() : Disabled.nullValue; }; + const EFI_GUID dgetGuid() const { + EFI_GUID efiGuid; + EFI_STATUS Status; + if ( Guid.isDefined() ) { + Status = StrToGuidBE(Guid.value(), &efiGuid); + if ( EFI_ERROR(Status) ) panic("StrToGuidBE failed. This could not happen because Guid is checked to be valid. Did you comment out the field validation ?"); + return efiGuid; + } + return nullGuid; + }; + const decltype(Name)::ValueType& dgetName() const { return Name.isDefined() ? Name.value() : Name.nullValue; }; + }; + + class ROMClass: public XmlUnion + { + protected: + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + XmlData xmlData = XmlData(); + XmlUnionField m_fields[2] = { xmlString8, xmlData}; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +// virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override +// { +// WARNING_IF_DEFINED; +// +// XmlParserPosition pos = xmlLiteParser->getPosition(); +// if ( xmlString8.parseFromXmlLite(xmlLiteParser, xmlPath, false ) ) { +// if ( xmlString8.value().isEqualIC("UseMacAddr0") ) return true; +// if ( xmlString8.value().isEqualIC("UseMacAddr1") ) return true; +// } +// xmlLiteParser->restorePosition(pos); +// if ( xmlData.parseFromXmlLite(xmlLiteParser, xmlPath, false) ) return true; +// xmlLiteParser->addError(generateErrors, S8Printf("Expecting \"UseMacAddr0\", \"UseMacAddr1\", a string or data for tag '%s:%d'.", xmlPath.c_str(), pos.getLine())); +// return false; +// } +// virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { +//if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; +// if ( !xmlString8.isDefined() ) return true; +// if ( xmlString8.value().isEqualIC("UseMacAddr0") ) return true; +// if ( xmlString8.value().isEqualIC("UseMacAddr1") ) return true; +// xmlLiteParser->addWarning(generateErrors, S8Printf("Expecting an integer or \"Detect\" or \"No\" for tag '%s:%d'", xmlPath.c_str(), keyPos.getLine())); +// return false; +// } + public: +// const decltype(xmlString8)::ValueType& dgetRtROMAsString() const { return xmlString8.isDefined() ? xmlString8.value() : xmlString8.nullValue; }; +// const decltype(xmlData)::ValueType& dgetRtROMAsData() const { return xmlData.isDefined() ? xmlData.value() : xmlData.nullValue; }; + + const XString8& dgetRtROMAsString() const { + if ( xmlString8.isDefined() ) { + if ( xmlString8.value().isEqualIC("UseMacAddr0") ) return xmlString8.value(); + if ( xmlString8.value().isEqualIC("UseMacAddr1") ) return xmlString8.value(); + } + return xmlString8.nullValue; + }; + + XBuffer dgetRtROMAsData() const { + XBuffer return_value; + if ( xmlString8.isDefined() ) { + if ( xmlString8.value().isEqualIC("UseMacAddr0") ) return return_value; + if ( xmlString8.value().isEqualIC("UseMacAddr1") ) return return_value; + size_t binary_size = hex2bin(xmlString8.value(), NULL, 0); + return_value.memset(0, binary_size); + hex2bin(xmlString8.value(), return_value.data(), return_value.size()); + return return_value; + } + if ( xmlData.isDefined() ) return xmlData.value(); + return return_value; + }; + + }; + +// class ROMClass: public XmlData { +// virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { +//if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; +// if ( "UseMacAddr0"_XS8.isEqualIC(value().CData()) ) return true; +// if ( "UseMacAddr1"_XS8.isEqualIC(value().CData()) ) return true; +// // TODO check length and format of ROM +// return true; +// xmlLiteParser->addWarning(generateErrors, S8Printf("Expecting \"UseMacAddr0\", \"UseMacAddr0\" or data tag '%s:%d'", xmlPath.c_str(), keyPos.getLine())); +// return false; +// } +// }; + +protected: + ROMClass ROM = ROMClass(); + XmlString8AllowEmpty MLB = XmlString8AllowEmpty(); + XmlUInt32 CsrActiveConfig = XmlUInt32(); + XmlUInt16 BooterConfig = XmlUInt16(); + XmlString8AllowEmpty BooterCfg = XmlString8AllowEmpty(); +public: + XmlArray Block = XmlArray(); + + XmlDictField m_fields[6] = { + {"ROM", ROM}, + {"MLB", MLB}, + {"CsrActiveConfig", CsrActiveConfig}, + {"BooterConfig", BooterConfig}, + {"BooterCfg", BooterCfg}, + {"Block", Block}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +// const XString8 dgetRtROMAsString() const { +// if ( ROM.isDefined() && ROM.xmlString8.isDefined() ) { +// if ( "UseMacAddr0"_XS8.isEqualIC(ROM.xmlString8.value()) ) return "UseMacAddr0"_XS8; +// if ( "UseMacAddr1"_XS8.isEqualIC(ROM.xmlString8.value()) ) return "UseMacAddr0"_XS8; +// } +// return NullXString8; +// } + decltype(declval().dgetRtROMAsString()) dgetRtROMAsString() const { return ROM.dgetRtROMAsString(); }; + decltype(declval().dgetRtROMAsData()) dgetRtROMAsData() const { return ROM.dgetRtROMAsData(); }; + +// const XBuffer dgetRtROMAsData() const { +// if ( !ROM.isDefined() || dgetRtROMAsString().notEmpty() ) return ROM.nullValue; +// return ROM.value(); +// } +// +// const decltype(ROM)::ValueType& dgetROM() const { return ROM.isDefined() ? ROM.value() : ROM.nullValue; }; + const decltype(MLB)::ValueType& dgetRtMLBSetting() const { return MLB.isDefined() ? MLB.value() : MLB.nullValue; }; + decltype(CsrActiveConfig)::ValueType dgetCsrActiveConfig() const { return CsrActiveConfig.isDefined() ? CsrActiveConfig.value() : 0xFFFF; }; // 0xFFFF = not set + const decltype(BooterConfig)::ValueType& dgetBooterConfig() const { return BooterConfig.isDefined() ? BooterConfig.value() : BooterConfig.nullValue; }; + const decltype(BooterCfg)::ValueType& dgetBooterCfgStr() const { return BooterCfg.isDefined() ? BooterCfg.value() : BooterCfg.nullValue; }; + +}; + + +#endif /* _CONFIGPLISTCLASS_RTVARIABLES_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/Config_SystemParameters.h b/rEFIt_UEFI/Settings/ConfigPlist/Config_SystemParameters.h new file mode 100644 index 000000000..500288b05 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/Config_SystemParameters.h @@ -0,0 +1,84 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _CONFIGPLISTCLASS_SYSTEMPARAMETERS_H_ +#define _CONFIGPLISTCLASS_SYSTEMPARAMETERS_H_ + + +class SystemParameters_Class : public XmlDict +{ + using super = XmlDict; +public: + class InjectKextsClass: public XmlBoolOrString { + using super = XmlBoolOrString; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( isDefined() && xmlString8.isDefined() ) { + if ( !xmlString8.value().isEqualIC("Detect") ) return xmlLiteParser->addWarning(generateErrors, S8Printf("InjectKexts must be a boolean or \"Detect\" in dict '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + } + return true; + } + }; + class CustomUUIDClass : public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) return true; + if ( !IsValidGuidString(xstring8) ) return xmlLiteParser->addWarning(generateErrors, S8Printf(" invalid CustomUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX in dict '%s:%d'", xstring8.c_str(), xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + + class BacklightLevelClass : public XmlUnion + { + using super = XmlUnion; + public: + XmlInt16 xmlInt16 = XmlInt16(); + XmlString8AllowEmpty xmlString8 = XmlString8AllowEmpty(); + virtual const char* getDescription() override { return "int16|string"; }; + XmlUnionField m_fields[2] = { xmlInt16, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + }; + + InjectKextsClass InjectKexts = InjectKextsClass(); + XmlBool NoCaches = XmlBool(); + //XmlFloat BlueValue = XmlFloat(); TODO + BacklightLevelClass BacklightLevel = BacklightLevelClass(); + CustomUUIDClass CustomUUID = CustomUUIDClass(); + XmlBool InjectSystemID = XmlBool(); + XmlBool NvidiaWeb = XmlBool(); + + XmlDictField m_fields[6] = { + {"InjectKexts", InjectKexts}, + {"NoCaches", NoCaches}, + // {"BlueValue", BlueValue}, + {"BacklightLevel", BacklightLevel}, + {"CustomUUID", CustomUUID}, + {"InjectSystemID", InjectSystemID}, + {"NvidiaWeb", NvidiaWeb}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + return b; + } + + bool dgetWithKexts() const { return true; } // looks like it can never be false anymore... + bool dgetWithKextsIfNoFakeSMC() const { return InjectKexts.xmlString8.isDefined() ? InjectKexts.xmlString8.value().isEqualIC("Detect") : false; } + bool dgetNoCaches() const { return NoCaches.isDefined() ? NoCaches.value() : false; } + bool dgetBacklightLevelConfig() const { return BacklightLevel.isDefined(); } + uint16_t dgetBacklightLevel() const { return BacklightLevel.isDefined() && BacklightLevel.xmlInt16.isDefined() ? BacklightLevel.xmlInt16.value() : 0xFFFF; } + const XString8& dgetCustomUuid() const { return CustomUUID.isDefined() ? CustomUUID.value() : NullXString8; } + UINT8 dget_InjectSystemID() const { return InjectSystemID.isDefined() ? InjectSystemID.value() : 2; } + bool dgetNvidiaWeb() const { return NvidiaWeb.isDefined() ? NvidiaWeb.value() : 0; } +}; + + +#endif /* _CONFIGPLISTCLASS_SYSTEMPARAMETERS_H_ */ diff --git a/rEFIt_UEFI/Settings/ConfigPlist/README.md b/rEFIt_UEFI/Settings/ConfigPlist/README.md new file mode 100644 index 000000000..525d23eab --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/README.md @@ -0,0 +1,344 @@ +# How to use the xmlLite tools to read and validate plist + +### Creation of a dict + +Example 1 : + +``` +class MyDictClass : public XmlDict +{ + using super = XmlDict; + public: + XmlBool aBool; + XmlInt32 anInt32; + + XmlDictField m_fields[2] = { + {"KeyNameForBool", aBool}, + {"KeyNameForInt32", anInt32}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +} MyDict; +``` + +1. your class must heritate from XmlDict + +2. define an array to create a link between the xml key in the dict and the field. + +3. override method `getFields() `to return that array. + +This can read this file + +``` + + + + + KeyNameForBool + + KeyNameForInt32 + 13864 + +``` + + + + + + + + +NOTE : the top level dict can heritate from ConfigPlistAbstractClass instead. That'll give you parse() methods to parse from a buffer + +### Values + +A dict is composed of key value pair. In the previous we used XmlBool and XmlInt32. In XmlLiteSimpleType.h there is few others : + +- XmlBool + +- XmlStrictBool + +- XmlString8 + +- XmlStringW + +- XmlString8AllowEmpty + +- XmlString8Trimed + +- XmlData + +- XmlUInt{8, 16 32} and XmlInt {8, 16 32} + +- Of course, you can declare an XmlDict as a value in a containing dict. Example 2 : + +``` +class MyInsideDictClass : public XmlDict +{ + using super = XmlDict; + public: + XmlBool aBool; + XmlInt32 anInt32; + + XmlDictField m_fields[2] = { + {"KeyNameForBool", aBool}, + {"KeyNameForInt32", anInt32}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + +class MyTopLevelDictClass : public ConfigPlistAbstractClass +{ + using super = XmlDict; + public: + MyInsideDictClass inside1; + + XmlDictField m_fields[1] = { + {"KeyNameForInsideDict", inside1}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +} MyDict; +``` + + This can read this file + +``` + + + + + KeyNameForInsideDict + + KeyNameForBool + + KeyNameForInt32 + 13864 + + +``` + +- Arrays + +### Validation + +##### Validation of a single value + +To validate and reject bad input, override the method validate. Imagine we have an integer value that is a count between 0 and 15. Example 3 : + +``` +class CountClass : public XmlInt64 +{ + using super = XmlInt64; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( value() < -2 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Count cannot be negative. It must a number between -2 and 18 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( value() > 18 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Count cannot > 18. It must a number between -2 and 18 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } +} Count = CountClass(); +``` + +Returning false will put back the value to an undefined state. + +In your dict, declare a member CountClass Count. If the value is out of range, Count will be undefined. + +##### Validation of interdependent values + +To check for consistency of values in a dict, you override the same validate method for your dict. + +Imagine you have a dict containing a type (1 or 2) and a subType, but type 1 cannot have subtype. Type 2 may have subtype, and if there is, it must be 11 or 12. Example 4 : + +``` +class MyDictClass : public XmlDict +{ + using super = XmlDict; + public: + MyXmlType type; // this is a subclass of XmlUInt8 that check that type is 1 or 2 + MyXmlSubType subType; // this is a subclass of XmlUInt8 that check that subtype is 11 or 12 + XmlString8 name; // as many other field that there is in this dict + + XmlDictField m_fields[2] = { + {"Type", type}, + {"SubType", subType}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !type.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must befined at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( type.value() == 1 ) { + if ( subType.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type 1 cannot have a subtype at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + }else if ( type.value() == 2 ) { + // nothing to do because subtype is optional, and if it exists, weknow that the value is correct because of th validation in MyXmlSubType + }else{ + panic("There is a bug in MyXmlType::validate() !"); + } + return true; + } +}; +``` + +Returning false will put back the dict to an undefined state. Which means, in that case, the whole dict to be undefined as it wasn't at all in the XML file. + +NOTE : it's possible to do the single field validation at dict level. The previous example could written as example 5 : + +``` +class MyDictClass : public XmlDict +{ + using super = XmlDict; + public: + XmlUInt8 type; // no validation except that the value is an unsigned 8 bits int + XmlUInt8 subType; // no validation except that the value is an unsigned 8 bits int + XmlString8 name; // as many other field that there is in this dict + + XmlDictField m_fields[2] = { + {"Type", type}, + {"SubType", subType}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !type.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must befined at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( type.value() == 1 ) { + if ( subType.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type 1 cannot have a subtype at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + }else if ( type.value() == 2 ) { + if ( subType.isDefined() ) { + if ( type.value() != 11 and type.value() != 12 ) + xmlLiteParser->addWarning(generateErrors, S8Printf("SubType must be 11 or 12 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + }else{ + // subtype is optional, so it's ok. + } + }else{ + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must be 1 or 2 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + // Let's think that we want to ignore this value but we syill want to keep the dict as the other field still has meaning. + type.reset(); // we only reset this field. We don't return false because that'll undefine the whole dict + subtype.reset(); // SubType means nothing without a Type. + } + return true; + } +}; +``` + +### Arrays + +To create an array, declare an XmlArray<[any class that inherite from XmlAbstractType]> member. Example 6 : + +``` +class MyDictClass : public XmlDict +{ + using super = XmlDict; + public: + XmlArray aBoolArray; + + XmlDictField m_fields[2] = { + {"KeyNameForBoolArray", aBoolArray}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; +``` + +This can read this file : + +``` + + + + + KeyNameForBoolArray + + + + + ... {as many as ther is} + + +``` + +Of course, you can create an XmlArray of a dict you created. + +### Repeating dict + +Until now, examples shown a dict that has a predefined set of keys. But you can have a dict that contains repeating key/value pair. The key could be any string. + +For that, you have a template class XmlRepeatingDict. To create a dict that can contains a sequence of key and int32. Example 7 : + +``` +class MyDictClass : public ConfigPlistAbstractClass +{ + using super = XmlDict; + public: + XmlRepeatingDict> keyIntPairs; + + XmlDictField m_fields[1] = { + {"KeyNameForKeyIntPairs", keyIntPairs}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +} MyDict; +``` + +Because a dict has to be a sequence of key and value, please note the use of the class XmlAddKey> that "adds" a key to a XmlInt32. You can replace XmlInt32 by any type the inherite from XmlAbstractType. That includes your own dicts and arrays. + +The example above will parse a file like : + +``` + + + + + KeyNameForKeyIntPairs + + a key + 1 + another key + 2 + third key + 3 + + +``` + +After the dict is parsed, you can access values this way : + +``` +XObjArray> array = MyDict.keyIntPairs.valueArray(); +XString8 keyOne = array[1].key(); // == "another key" +int32_t valueOne = array[1].value(); // == 2 +``` + +### Union + +Sometimes, a value can be, for example, a bool or a string. In that case it's easy to declare. Just subclass XmlUnion : + +``` +class XmlBoolOrString : public XmlUnion +{ + using super = XmlUnion; +public: + XmlBool xmlBool = XmlBool(); + XmlString8 xmlString8 = XmlString8(); + virtual const char* getDescription() override { return "bool or string"; }; + XmlUnionField m_fields[2] = { xmlBool, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; +``` + +In this example, the value will be tried to be parsed as a bool. If it doesn't work, the next possibility is tried. Here it's xmlString8. You can create union with any kind of field you create, including dict and arrays. diff --git a/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.cpp b/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.cpp new file mode 100644 index 000000000..5dacd41f4 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.cpp @@ -0,0 +1,15 @@ +/* + * ConfigPlist.cpp + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#include "SMBIOSPlist.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + + +SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass::NullValue = SmbiosPlistClass::SmbiosDictClass::MemoryDictClass::ModuleDictClass(); + +SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass::NullValue = SmbiosPlistClass::SmbiosDictClass::SlotDeviceDictClass(); diff --git a/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.h b/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.h new file mode 100644 index 000000000..0e69e9728 --- /dev/null +++ b/rEFIt_UEFI/Settings/ConfigPlist/SMBIOSPlist.h @@ -0,0 +1,648 @@ +/* + * ConfigPlist.h + * + * Created on: Oct 9, 2020 + * Author: jief + */ + +#ifndef _SMBIOSPLISTCLASS_H_ +#define _SMBIOSPLISTCLASS_H_ + +#include "../../include/VolumeTypes.h" +#include "../../include/OSTypes.h" +#include "../../include/OSFlags.h" +#include "../../include/BootTypes.h" +#include "../../include/Languages.h" +#include "../../include/Devices.h" +#include "../../include/QuirksCodes.h" +#include "../../include/TagTypes.h" +#include "../../include/Pci.h" +#include "../../entry_scan/loader.h" // for KERNEL_SCAN_xxx constants +#include // for Smbios memory type +#include "../../Platform/guid.h" +#include "../../Platform/platformdata.h" +//#include "../cpu.h" + +#include "../../cpp_lib/undefinable.h" +#include "../../cpp_lib/XmlLiteSimpleTypes.h" +#include "../../cpp_lib/XmlLiteCompositeTypes.h" +#include "../../cpp_lib/XmlLiteDictTypes.h" +#include "../../cpp_lib/XmlLiteArrayTypes.h" +#include "../../cpp_lib/XmlLiteUnionTypes.h" +#include "../../cpp_lib/XmlLiteParser.h" + +#include "../../cpp_foundation/XString.h" +#include "../../cpp_foundation/XStringArray.h" +#include "../../cpp_foundation/XArray.h" +#include "../../cpp_foundation/XObjArray.h" +#include "../../Platform/Utils.h" + +#include "ConfigPlistAbstract.h" + + +class SmbiosPlistClass : public ConfigPlistAbstractClass +{ + using super = ConfigPlistAbstractClass; +public: +// #include "Config_SMBIOS.h" + + + class SmbiosDictClass : public XmlDict + { + using super = XmlDict; + public: + + + class MemoryDictClass : public XmlDict + { + using super = XmlDict; + public: + + class ModuleDictClass : public XmlDict + { + using super = XmlDict; + public: + static ModuleDictClass NullValue; + + class SlotClass : public XmlUInt64 + { + using super = XmlUInt64; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Slot must be defined as a number between 0 and 15 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + if ( value() < 0 ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Slot cannot be negative. It must a number between 0 and 15 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + if ( value() > 15 ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Slot cannot > 15. It must a number between 0 and 15 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + + XmlUInt64 Slot = XmlUInt64(); + XmlUInt32 Size = XmlUInt32(); + XmlUInt32 Frequency = XmlUInt32(); + XmlString8AllowEmpty Vendor = XmlString8AllowEmpty(); + XmlString8AllowEmpty Part = XmlString8AllowEmpty(); + XmlString8AllowEmpty Serial = XmlString8AllowEmpty(); + class TypeClass: public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( isDefined() ) { + if ( xstring8.isEqualIC("DDR") ) return true; + if ( xstring8.isEqualIC("DDR2") ) return true; + if ( xstring8.isEqualIC("DDR3") ) return true; + if ( xstring8.isEqualIC("DDR4") ) return true; + } + return xmlLiteParser->addWarning(generateErrors, S8Printf("Type must be \"DDR\", \"DDR2\", \"DDR3\" or \"DDR4\" in dict '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + } + public: + } Type = TypeClass(); + + XmlDictField m_fields[7] = { + {"Slot", Slot}, + {"Size", Size}, + {"Frequency", Frequency}, + {"Vendor", Vendor}, + {"Part", Part}, + {"Serial", Serial}, + {"Type", Type}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !Slot.isDefined() ) return false; + return true; + } + + const decltype(Slot)::ValueType& dgetSlotNo() const { return Slot.isDefined() ? Slot.value() : Slot.nullValue; }; + const decltype(Size)::ValueType& dgetModuleSize() const { return Size.isDefined() ? Size.value() : Size.nullValue; }; + const decltype(Frequency)::ValueType& dgetFrequency() const { return Frequency.isDefined() ? Frequency.value() : Frequency.nullValue; }; + const decltype(Vendor)::ValueType& dgetVendor() const { return Vendor.isDefined() ? Vendor.value() : Vendor.nullValue; }; + const decltype(Part)::ValueType& dgetPartNo() const { return Part.isDefined() ? Part.value() : Part.nullValue; }; + const decltype(Serial)::ValueType& dgetSerialNo() const { return Serial.isDefined() ? Serial.value() : Serial.nullValue; }; + UINT8 dgetType() const { +// if ( !Type.isDefined() ) return dgetModuleSize() > 0 ? MemoryTypeDdr3: 0; + if ( !Type.isDefined() ) return MemoryTypeDdr3; + if (Type.value().isEqualIC("DDR2")) { + return MemoryTypeDdr2; + } else if (Type.value().isEqualIC("DDR3")) { + return MemoryTypeDdr3; + } else if (Type.value().isEqualIC("DDR4")) { + return MemoryTypeDdr4; + } else if (Type.value().isEqualIC("DDR")) { + return MemoryTypeDdr; + } + // Cannot happen if validate has been done properly. + panic("invalid value"); + } + bool dgetInUse() const { return Size.isDefined() ? Size.value() > 0 : false; }; + + }; + + class ModuleArrayClass : public XmlArray + { + public: + + const ModuleDictClass& dgetSolt(size_t slotNo) const { + for ( size_t idx = 0; idx < size(); ++idx ) { + if ( ElementAt(idx).dgetSlotNo() == slotNo ) + return ElementAt(idx); + } + return ModuleDictClass::NullValue; + } + + }; + + + + XmlUInt8 SlotCount = XmlUInt8(); + XmlUInt8 Channels = XmlUInt8(); + ModuleArrayClass Modules = ModuleArrayClass(); + + XmlDictField m_fields[3] = { + {"SlotCount", SlotCount}, + {"Channels", Channels}, + {"Modules", Modules}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + return b; + } + + decltype(SlotCount)::ValueType dgetSlotCountSetting() const { return SlotCount.isDefined() ? SlotCount.value() : 0; }; + const decltype(Channels)::ValueType& dgetUserChannels() const { return Channels.isDefined() ? Channels.value() : Channels.nullValue; }; + + decltype(SlotCount)::ValueType dgetSlotMax() const { + if ( !isDefined() || !Modules.isDefined() || Modules.size() == 0 ) return 0; + decltype(SlotCount)::ValueType max = 0; + for ( size_t idx = 0 ; idx < Modules.size() ; ++idx ) { + if ( Modules[idx].dgetModuleSize() > 0 ) { + if ( Modules[idx].dgetSlotNo() > max ) max = Modules[idx].dgetSlotNo(); + } + } + return max+1; + }; + + decltype(SlotCount)::ValueType dgetSlotCounts() const { return dgetSlotCountSetting() > dgetSlotMax() ? dgetSlotCountSetting() : dgetSlotMax(); }; + + }; + + class SlotDeviceDictClass : public XmlDict + { + using super = XmlDict; + public: + static SlotDeviceDictClass NullValue; + + class DeviceClass: public XmlString8AllowEmpty { + using super = XmlString8AllowEmpty; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( isDefined() ) { + if ( xstring8.isEqualIC("ATI") ) return true; + if ( xstring8.isEqualIC("NVidia") ) return true; + if ( xstring8.isEqualIC("IntelGFX") ) return true; + if ( xstring8.isEqualIC("LAN") ) return true; + if ( xstring8.isEqualIC("WIFI") ) return true; + if ( xstring8.isEqualIC("Firewire") ) return true; + if ( xstring8.isEqualIC("HDMI") ) return true; + if ( xstring8.isEqualIC("USB") ) return true; + if ( xstring8.isEqualIC("NVME") ) return true; + } + return xmlLiteParser->addWarning(generateErrors, S8Printf("Type must be \"ATI\", \"NVidia\", \"IntelGFX\", \"LAN\", \"WIFI\", \"Firewire\", \"HDMI\", \"USB\" or \"NVME\" in dict '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + } + } Device = DeviceClass(); + XmlUInt8 ID = XmlUInt8(); + XmlUInt8 Type = XmlUInt8(); + XmlString8AllowEmpty Name = XmlString8AllowEmpty(); + + XmlDictField m_fields[4] = { + {"Device", Device}, + {"ID", ID}, + {"Type", Type}, + {"Name", Name}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + bool b = true; + return b; + } + const decltype(Device)::ValueType& dgetDevice() const { return Device.isDefined() ? Device.value() : Device.nullValue; }; + INTN dgetDeviceN() const { + // if ( !Device.isDefined() ) panic("%s: invalid value. Check validate method.", __PRETTY_FUNCTION__); + if ( !Device.isDefined() ) return 0; + if (Device.value().isEqualIC("ATI")) { + return 0; + } else if (Device.value().isEqualIC("NVidia")) { + return 1; + } else if (Device.value().isEqualIC("IntelGFX")) { + return 2; + } else if (Device.value().isEqualIC("LAN")) { + return 5; + } else if (Device.value().isEqualIC("WIFI")) { + return 6; + } else if (Device.value().isEqualIC("Firewire")) { + return 12; + } else if (Device.value().isEqualIC("HDMI")) { + return 4; + } else if (Device.value().isEqualIC("USB")) { + return 11; + } else if (Device.value().isEqualIC("NVME")) { + return 13; + } else { + panic("%s: invalid value. Check validate method.", __PRETTY_FUNCTION__); + } + } + + decltype(ID)::ValueType dgetSlotID() const { return ID.isDefined() ? ID.value() : dgetDeviceN(); }; + MISC_SLOT_TYPE dgetSlotType() const { + if ( !Type.isDefined() ) return Device.isDefined() ? SlotTypePci : MISC_SLOT_TYPE(0); + switch ( Type.value() ) { + case 0: + return SlotTypePci; + case 1: + return SlotTypePciExpressX1; + case 2: + return SlotTypePciExpressX2; + case 4: + return SlotTypePciExpressX4; + case 8: + return SlotTypePciExpressX8; + case 16: + return SlotTypePciExpressX16; + default: + return SlotTypePciExpress; + } + } + + decltype(Name)::ValueType dgetSlotName() const { return Name.isDefined() ? Name.value() : Device.isDefined() ? S8Printf("PCI Slot %lld", dgetDeviceN()) : NullXString8; }; + + }; + + + class SlotDeviceArrayClass : public XmlArray + { + public: + const SlotDeviceDictClass& dgetSoltDevice(INTN slotNo) const { + for ( size_t idx = 0; idx < size(); ++idx ) { + if ( ElementAt(idx).dgetDeviceN() == slotNo ) + return ElementAt(idx); + } + return SlotDeviceDictClass::NullValue; + } + }; + + class SmUUIDClass : public XmlString8AllowEmpty + { + using super = XmlString8AllowEmpty; + protected: + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) return true; + if ( !IsValidGuidString(xstring8) ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Invalid SmUUID '%s' - should be in the format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX in dict '%s:%d'", xstring8.c_str(), xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + + class ProductNameClass : public XmlString8Trimed + { + using super = XmlString8Trimed; + public: + ProductNameClass() : super(true) {}; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !isDefined() ) { + xmlLiteParser->addError(generateErrors, S8Printf("You must define ProductName in SMBIOS dict, line %d", keyPos.getLine())); + return true; + } + MACHINE_TYPES Model; + Model = GetModelFromString(xstring8); + if ( Model == MaxMachineType ) return xmlLiteParser->addWarning(generateErrors, S8Printf("Invalid ProductName '%s' in dict '%s:%d'", xstring8.c_str(), xmlPath.c_str(), keyPos.getLine())); + return true; + } + }; + + protected: + XmlString8Trimed BiosVendor = XmlString8Trimed(true); // true = allow empty + XmlString8Trimed BiosVersion = XmlString8Trimed(true); // RomVersion + XmlString8AllowEmpty EfiVersion = XmlString8AllowEmpty(); + XmlString8Trimed BiosReleaseDate = XmlString8Trimed(true); + + XmlString8Trimed Manufacturer = XmlString8Trimed(true); + ProductNameClass ProductName = ProductNameClass(); + XmlString8Trimed Version = XmlString8Trimed(true); + XmlString8Trimed SerialNumber = XmlString8Trimed(true); + SmUUIDClass SmUUID = SmUUIDClass(); + XmlString8Trimed Family = XmlString8Trimed(true); + + XmlString8Trimed BoardManufacturer = XmlString8Trimed(); + XmlString8Trimed BoardSerialNumber = XmlString8Trimed(); + XmlString8Trimed BoardID = XmlString8Trimed(true); + XmlString8Trimed LocationInChassis = XmlString8Trimed(true); + XmlString8Trimed BoardVersion = XmlString8Trimed(true); + XmlUInt8 BoardType = XmlUInt8(); + + XmlBool Mobile = XmlBool(); + XmlUInt8 ChassisType = XmlUInt8(); + XmlString8Trimed ChassisManufacturer = XmlString8Trimed(true); + XmlString8Trimed ChassisAssetTag = XmlString8Trimed(true); + + XmlUInt16 SmbiosVersion = XmlUInt16(); + XmlInt8 MemoryRank = XmlInt8(); // Attribute + + XmlBool Trust = XmlBool(); + XmlUInt64 PlatformFeature = XmlUInt64(); + XmlBool NoRomInfo = XmlBool(); + + XmlUInt32 FirmwareFeatures = XmlUInt32(); // gFwFeatures + XmlUInt32 FirmwareFeaturesMask = XmlUInt32(); + public: + MemoryDictClass Memory = MemoryDictClass(); + SlotDeviceArrayClass Slots = SlotDeviceArrayClass(); + + XmlDictField m_fields[29] = { + {"Trust", Trust}, + {"MemoryRank", MemoryRank}, + {"Memory", Memory}, + {"Slots", Slots}, + {"ProductName", ProductName}, + {"SmbiosVersion", SmbiosVersion}, + {"BiosVersion", BiosVersion}, + {"BiosReleaseDate", BiosReleaseDate}, + {"EfiVersion", EfiVersion}, + {"FirmwareFeatures", FirmwareFeatures}, + {"FirmwareFeaturesMask", FirmwareFeaturesMask}, + {"PlatformFeature", PlatformFeature}, + {"BiosVendor", BiosVendor}, + {"Manufacturer", Manufacturer}, + {"Version", Version}, + {"Family", Family}, + {"SerialNumber", SerialNumber}, + {"SmUUID", SmUUID}, + {"BoardManufacturer", BoardManufacturer}, + {"BoardSerialNumber", BoardSerialNumber}, + {"Board-ID", BoardID}, + {"BoardVersion", BoardVersion}, + {"BoardType", BoardType}, + {"Mobile", Mobile}, + {"LocationInChassis", LocationInChassis}, + {"ChassisManufacturer", ChassisManufacturer}, + {"ChassisAssetTag", ChassisAssetTag}, + {"ChassisType", ChassisType}, + {"NoRomInfo", NoRomInfo}, + }; + + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !ProductName.isDefined() ) { + return xmlLiteParser->addWarning(generateErrors, S8Printf("ProductName is not defined, the whole SMBIOS dict is ignored at line %d.", keyPos.getLine())); + } + if ( BiosVersion.isDefined() ) { + if ( !BiosVersion.value().contains(".") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("BiosVersion '%s' doesn't contains a dot in dict '%s:%d'.", BiosVersion.value().c_str(), xmlPath.c_str(), keyPos.getLine())); + BiosVersion.reset(); + }else{ + size_t rindex = BiosVersion.value().rindexOf("."); + if ( BiosVersion.value().length() - rindex < 7 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Last part of BiosVersion '%s' must be at least 6 chars in dict '%s:%d'.", BiosVersion.value().c_str(), xmlPath.c_str(), keyPos.getLine())); + BiosVersion.reset(); + }else{ + // Should we check the format of these 6 last chars ? + if ( hasModel() ) { + if ( !is2ndBiosVersionGreaterThan1st(ApplePlatformData[getModel()].firmwareVersion, BiosVersion.value()) ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("BiosVersion '%s' is before than default ('%s') -> ignored. Dict '%s:%d'.", BiosVersion.value().c_str(), ApplePlatformData[getModel()].firmwareVersion.c_str(), xmlPath.c_str(), keyPos.getLine())); + BiosVersion.reset(); + } + }else{ + xmlLiteParser->addWarning(generateErrors, S8Printf("Cannot check validity of BiosVersion because ProductName is not set. Dict '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + } + } + } + } + return true; // we don't want to invalidate the whole dict + } + + + + const decltype(Trust)& getTrust() const { return Trust; } + const decltype(MemoryRank)& getMemoryRank() const { return MemoryRank; } + const decltype(Memory)& getMemory() const { return Memory; } + const decltype(Slots)& getSlots() const { return Slots; } + const decltype(ProductName)& getProductName() const { return ProductName; } + const decltype(SmbiosVersion)& getSmbiosVersion() const { return SmbiosVersion; } + const decltype(BiosVersion)& getBiosVersion() const { return BiosVersion; } + const decltype(BiosReleaseDate)& getBiosReleaseDate() const { return BiosReleaseDate; } + const decltype(EfiVersion)& getEfiVersion() const { return EfiVersion; } + const decltype(FirmwareFeatures)& getFirmwareFeatures() const { return FirmwareFeatures; } + const decltype(FirmwareFeaturesMask)& getFirmwareFeaturesMask() const { return FirmwareFeaturesMask; } + const decltype(PlatformFeature)& getPlatformFeature() const { return PlatformFeature; } + const decltype(BiosVendor)& getBiosVendor() const { return BiosVendor; } + const decltype(Manufacturer)& getManufacturer() const { return Manufacturer; } + const decltype(Version)& getVersion() const { return Version; } + const decltype(Family)& getFamily() const { return Family; } + const decltype(SerialNumber)& getSerialNumber() const { return SerialNumber; } + const decltype(SmUUID)& getSmUUID() const { return SmUUID; } + const decltype(BoardManufacturer)& getBoardManufacturer() const { return BoardManufacturer; } + const decltype(BoardSerialNumber)& getBoardSerialNumber() const { return BoardSerialNumber; } + const decltype(BoardID)& getBoardID() const { return BoardID; } + const decltype(BoardVersion)& getBoardVersion() const { return BoardVersion; } + const decltype(BoardType)& getBoardType() const { return BoardType; } + const decltype(Mobile)& getMobile() const { return Mobile; } + const decltype(LocationInChassis)& getLocationInChassis() const { return LocationInChassis; } + const decltype(ChassisManufacturer)& getChassisManufacturer() const { return ChassisManufacturer; } + const decltype(ChassisAssetTag)& getChassisAssetTag() const { return ChassisAssetTag; } + const decltype(ChassisType)& getChassisType() const { return ChassisType; } + const decltype(NoRomInfo)& getNoRomInfo() const { return NoRomInfo; } + + + /* + * DO NOT call this if !ProductName.isDefined() + */ + MACHINE_TYPES getModel() const + { + if ( !ProductName.isDefined() ) { + log_technical_bug("%s : !ProductName.isDefined()", __PRETTY_FUNCTION__); + return iMac132; + } + return GetModelFromString(ProductName.value()); // ProductName has been validated, so Model CANNOT be MaxMachineType + } + bool hasModel() const { return ProductName.isDefined(); } + + MACHINE_TYPES dgetModel() const + { + if ( !hasModel() ) return MaxMachineType; + return getModel(); + } + + decltype(BiosVendor)::ValueType dgetBiosVendor() const { + if ( BiosVendor.isDefined() ) return BiosVendor.value(); + return AppleBiosVendor; + }; + + decltype(BiosVersion)::ValueType dgetBiosVersion() const { + if ( BiosVersion.isDefined() ) return BiosVersion.value(); + return ApplePlatformData[dgetModel()].firmwareVersion; + }; + + decltype(EfiVersion)::ValueType dgetEfiVersion() const { + if ( !EfiVersion.isDefined() ) return ApplePlatformData[dgetModel()].efiversion; + XString8 returnValue; + returnValue = EfiVersion.value(); + returnValue.trim(); + return returnValue; + } + + decltype(BiosReleaseDate)::ValueType dgetBiosReleaseDate() const + { + if ( BiosReleaseDate.isDefined() ) return BiosReleaseDate.value(); + XString8 dBiosVersion = dgetBiosVersion(); + XString8 returnValue; + if ( dBiosVersion.notEmpty() ) { + if ( !dBiosVersion.contains(".") ) { + log_technical_bug("!dBiosVersion.contains(\".\")"); // Must not happen, BiosVersion has been validated to have a '.' followed by 6 chars. + return NullXString8; + } + const char* i = dBiosVersion.c_str(); + i += AsciiStrLen(i); + while ( *i != '.' ) i--; + if ( strlen(i) < 7 ) { + log_technical_bug("strlen(i) < 7"); // Must not happen, BiosVersion has been validated to have a '.' followed by 6 chars. + return NullXString8; + } + if ( isReleaseDateWithYear20(dgetModel()) ) { + returnValue.S8Printf("%c%c/%c%c/20%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); + }else{ + returnValue.S8Printf("%c%c/%c%c/%c%c", i[3], i[4], i[5], i[6], i[1], i[2]); + } + } + return returnValue; + } + + decltype(Manufacturer)::ValueType dgetManufactureName() const { + if ( Manufacturer.isDefined() ) return Manufacturer.value(); + return AppleBiosVendor; + }; + + const decltype(ProductName)::ValueType& dgetProductName() const { return ProductName.isDefined() ? ProductName.value() : ProductName.nullValue; }; + + decltype(Version)::ValueType dgetSystemVersion() const { + if ( Version.isDefined() ) return Version.value(); + return ApplePlatformData[dgetModel()].systemVersion; + }; + + const decltype(SerialNumber)::ValueType& dgetSerialNr() const { + if ( SerialNumber.isDefined() ) return SerialNumber.value(); + return ApplePlatformData[dgetModel()].serialNumber; + }; + + decltype(SmUUID)::ValueType dgetSmUUID() const { return SmUUID.isDefined() ? SmUUID.value() : nullGuidAsString; }; + + decltype(Family)::ValueType dgetFamilyName() const { + if ( Family.isDefined() ) return Family.value(); + return ApplePlatformData[dgetModel()].productFamily; + }; + + decltype(BoardManufacturer)::ValueType dgetBoardManufactureName() const { + if ( BoardManufacturer.isDefined() ) return BoardManufacturer.value(); + return dgetBiosVendor(); + + }; + + decltype(BoardSerialNumber)::ValueType dgetBoardSerialNumber() const { + if ( BoardSerialNumber.isDefined() ) return BoardSerialNumber.value(); + return AppleBoardSN; + }; + + decltype(BoardID)::ValueType dgetBoardNumber() const { + if ( BoardID.isDefined() ) return BoardID.value(); + return ApplePlatformData[dgetModel()].boardID; + }; + + decltype(LocationInChassis)::ValueType dgetLocationInChassis() const { + if ( LocationInChassis.isDefined() ) return LocationInChassis.value(); + return AppleBoardLocation; + }; + + decltype(BoardVersion)::ValueType dgetBoardVersion() const { + return BoardVersion.isDefined() ? BoardVersion.value() : dgetProductName(); + }; + + decltype(BoardType)::ValueType dgetBoardType() const { + if ( BoardType.isDefined() ) return BoardType.value(); + MACHINE_TYPES Model = dgetModel(); + if ((Model > MacPro31) && (Model < MacPro71)) { + return BaseBoardTypeProcessorMemoryModule; //0xB; + } else { + return BaseBoardTypeMotherBoard; //0xA; + } + }; + + decltype(Mobile)::ValueType dgetMobile() const { + if ( Mobile.isDefined() ) return Mobile.value(); + return GetMobile(dgetModel()); + }; + + decltype(ChassisType)::ValueType dgetChassisType() const { + if ( ChassisType.isDefined() ) return ChassisType.value(); + return GetChassisTypeFromModel(dgetModel()); + }; + + decltype(ChassisManufacturer)::ValueType dgetChassisManufacturer() const { + if ( ChassisManufacturer.isDefined() ) return ChassisManufacturer.value(); + return dgetBiosVendor(); + }; + + decltype(ChassisAssetTag)::ValueType dgetChassisAssetTag() const { + if ( ChassisAssetTag.isDefined() ) return ChassisAssetTag.value(); + return ApplePlatformData[dgetModel()].chassisAsset; + }; + + decltype(SmbiosVersion)::ValueType dgetSmbiosVersion() const { return SmbiosVersion.isDefined() ? SmbiosVersion.value() : 0x204; }; + decltype(MemoryRank)::ValueType dgetAttribute() const { return MemoryRank.isDefined() ? MemoryRank.value() : -1; }; + decltype(Trust)::ValueType dgetTrustSMBIOS() const { return Trust.isDefined() ? Trust.value() : true; }; + bool dgetInjectMemoryTables() const { return Memory.Modules.isDefined() && Memory.Modules.size() > 0 ? Memory.dgetSlotCounts() > 0 : false; }; + decltype(PlatformFeature)::ValueType dgetgPlatformFeature() const { + if ( PlatformFeature.isDefined() ) return PlatformFeature.value(); + return GetPlatformFeature(dgetModel()); + }; + const decltype(NoRomInfo)::ValueType& dgetNoRomInfo() const { return NoRomInfo.isDefined() ? NoRomInfo.value() : NoRomInfo.nullValue; }; + decltype(FirmwareFeatures)::ValueType dgetFirmwareFeatures() const { + if ( FirmwareFeatures.isDefined() ) return FirmwareFeatures.value(); + return GetFwFeatures(dgetModel()); + }; + decltype(FirmwareFeaturesMask)::ValueType dgetFirmwareFeaturesMask() const { + if ( FirmwareFeaturesMask.isDefined() ) return FirmwareFeaturesMask.value(); + return GetFwFeaturesMaskFromModel(dgetModel()); + } + + }; + + SmbiosDictClass SMBIOS = SmbiosDictClass(); + + XmlDictField m_fields[1] = { + {"SMBIOS", SMBIOS}, + }; + +public: + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + +public: + SmbiosPlistClass() {}; + +}; + + +//extern const ConfigPlist& configPlist; +//extern const ConfigPlist& getConfigPlist(); + +#endif /* _SMBIOSPLISTCLASS_H_ */ diff --git a/rEFIt_UEFI/Settings/Readme.md b/rEFIt_UEFI/Settings/Readme.md new file mode 100644 index 000000000..20ee4044c --- /dev/null +++ b/rEFIt_UEFI/Settings/Readme.md @@ -0,0 +1,8 @@ +#### Settings folder +In this folder is grouped all what deals with "settings". +By settings, I mean : + - user settings (for example plist files) + - discovered charateristics (for example hardware, mac address, etc.) + - live state (currently represented by GlobalConfig and scattered globals variables). + +2021-04: work in progress. Not all are in there yet. \ No newline at end of file diff --git a/rEFIt_UEFI/Platform/Self.cpp b/rEFIt_UEFI/Settings/Self.cpp similarity index 99% rename from rEFIt_UEFI/Platform/Self.cpp rename to rEFIt_UEFI/Settings/Self.cpp index 3b5f88414..d53c32f90 100644 --- a/rEFIt_UEFI/Platform/Self.cpp +++ b/rEFIt_UEFI/Settings/Self.cpp @@ -5,7 +5,7 @@ * Author: jief */ -#include "Self.h" +#include "../Settings/Self.h" #include #include "../refit/lib.h" diff --git a/rEFIt_UEFI/Platform/Self.h b/rEFIt_UEFI/Settings/Self.h similarity index 100% rename from rEFIt_UEFI/Platform/Self.h rename to rEFIt_UEFI/Settings/Self.h diff --git a/rEFIt_UEFI/Platform/SelfOem.cpp b/rEFIt_UEFI/Settings/SelfOem.cpp similarity index 88% rename from rEFIt_UEFI/Platform/SelfOem.cpp rename to rEFIt_UEFI/Settings/SelfOem.cpp index 4998faffb..807cc4e3a 100644 --- a/rEFIt_UEFI/Platform/SelfOem.cpp +++ b/rEFIt_UEFI/Settings/SelfOem.cpp @@ -6,10 +6,12 @@ */ #include -#include "SelfOem.h" -#include "Self.h" +#include "../Settings/SelfOem.h" +#include "../Settings/Self.h" #include "../refit/lib.h" +#define DONT_DEFINE_GLOBALS + #ifndef DEBUG_ALL #define DEBUG_SELF 1 #else @@ -72,23 +74,10 @@ bool SelfOem::_checkOEMPath() return true; } -bool SelfOem::_setOemPathRelToSelfDir(bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, UINTN nLanCards, UINT8 gLanMac[4][6]) +bool SelfOem::_setOemPathRelToSelfDir(bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, const XObjArray& lanCardArray) { - - if ( nLanCards > 0 ) { - m_OemPathRelToSelfDir.SWPrintf("OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", OEMProduct.c_str(), gLanMac[0][0], gLanMac[0][1], gLanMac[0][2], gLanMac[0][3], gLanMac[0][4], gLanMac[0][5]); - if ( _checkOEMPath() ) return true; - } - if ( nLanCards > 1 ) { - m_OemPathRelToSelfDir.SWPrintf("OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", OEMProduct.c_str(), gLanMac[1][0], gLanMac[1][1], gLanMac[1][2], gLanMac[1][3], gLanMac[1][4], gLanMac[1][5]); - if ( _checkOEMPath() ) return true; - } - if ( nLanCards > 2 ) { - m_OemPathRelToSelfDir.SWPrintf("OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", OEMProduct.c_str(), gLanMac[2][0], gLanMac[2][1], gLanMac[2][2], gLanMac[2][3], gLanMac[2][4], gLanMac[2][5]); - if ( _checkOEMPath() ) return true; - } - if ( nLanCards > 3 ) { - m_OemPathRelToSelfDir.SWPrintf("OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", OEMProduct.c_str(), gLanMac[3][0], gLanMac[3][1], gLanMac[3][2], gLanMac[3][3], gLanMac[3][4], gLanMac[3][5]); + for ( size_t idx = 0 ; idx < lanCardArray.size() ; ++idx ) { + m_OemPathRelToSelfDir.SWPrintf("OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", OEMProduct.c_str(), lanCardArray[idx].MacAddress[0], lanCardArray[idx].MacAddress[1], lanCardArray[idx].MacAddress[2], lanCardArray[idx].MacAddress[3], lanCardArray[idx].MacAddress[4], lanCardArray[idx].MacAddress[5]); if ( _checkOEMPath() ) return true; } if ( !isFirmwareClover ) { @@ -181,7 +170,7 @@ EFI_STATUS SelfOem::_initialize() return EFI_SUCCESS; } -EFI_STATUS SelfOem::initialize(const XString8& confName, bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, UINTN nLanCards, UINT8 gLanMac[4][6]) +EFI_STATUS SelfOem::initialize(const XString8& confName, bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, const XObjArray& lanCardArray) { if ( m_ConfName.notEmpty() ) { log_technical_bug("%s : cannot be called twice. Use reinitialize.", __PRETTY_FUNCTION__); @@ -197,7 +186,7 @@ EFI_STATUS SelfOem::initialize(const XString8& confName, bool isFirmwareClover, m_ConfName = confName; // Initialise m_OemPathRelToSelfDir and leave m_OemDir opened. - _setOemPathRelToSelfDir(isFirmwareClover, OEMBoard, OEMProduct, frequency, nLanCards, gLanMac); + _setOemPathRelToSelfDir(isFirmwareClover, OEMBoard, OEMProduct, frequency, lanCardArray); EFI_STATUS Status = _initialize(); return Status; diff --git a/rEFIt_UEFI/Platform/SelfOem.h b/rEFIt_UEFI/Settings/SelfOem.h similarity index 92% rename from rEFIt_UEFI/Platform/SelfOem.h rename to rEFIt_UEFI/Settings/SelfOem.h index 873dd0e3c..71da0c953 100644 --- a/rEFIt_UEFI/Platform/SelfOem.h +++ b/rEFIt_UEFI/Settings/SelfOem.h @@ -8,7 +8,8 @@ #ifndef PLATFORM_SELFOEM_H_ #define PLATFORM_SELFOEM_H_ -#include "Self.h" +#include "../Settings/Self.h" +#include "../Settings/ConfigManager.h" class SelfOem { @@ -30,7 +31,7 @@ protected: // EFI_STATUS _openDir(const XStringW& path, bool* b, EFI_FILE** efiDir); bool _checkOEMPath(); - bool _setOemPathRelToSelfDir(bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, UINTN nLanCards, UINT8 gLanMac[4][6]); + bool _setOemPathRelToSelfDir(bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, const XObjArray& lanCardArray); EFI_STATUS _initialize(); public: @@ -40,7 +41,7 @@ public: ~SelfOem () {}; - EFI_STATUS initialize(const XString8& confName, bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, UINTN nLanCards, UINT8 gLanMac[4][6]); + EFI_STATUS initialize(const XString8& confName, bool isFirmwareClover, const XString8& OEMBoard, const XString8& OEMProduct, INT32 frequency, const XObjArray& lanCardArray); void unInitialize(); EFI_STATUS reInitialize(); void closeHandle(); diff --git a/rEFIt_UEFI/cpp_foundation/XArray.h b/rEFIt_UEFI/cpp_foundation/XArray.h index c91c9d17f..78536b716 100755 --- a/rEFIt_UEFI/cpp_foundation/XArray.h +++ b/rEFIt_UEFI/cpp_foundation/XArray.h @@ -1,12 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// XArray -// -// Developed by jief666, from 1997. -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XARRAY_H__) #define __XARRAY_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XBuffer.cpp b/rEFIt_UEFI/cpp_foundation/XBuffer.cpp index f321c5b23..e7bb2e107 100755 --- a/rEFIt_UEFI/cpp_foundation/XBuffer.cpp +++ b/rEFIt_UEFI/cpp_foundation/XBuffer.cpp @@ -1,8 +1,10 @@ -//************************************************************************************************* -// -// Buffer -// -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XBUFFER_CPP__) #define __XBUFFER_CPP__ diff --git a/rEFIt_UEFI/cpp_foundation/XBuffer.h b/rEFIt_UEFI/cpp_foundation/XBuffer.h index f32bb7c05..b0c327d4d 100755 --- a/rEFIt_UEFI/cpp_foundation/XBuffer.h +++ b/rEFIt_UEFI/cpp_foundation/XBuffer.h @@ -1,10 +1,11 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// BUFFER -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + #if !defined(__XBUFFER_H__) #define __XBUFFER_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XObjArray.h b/rEFIt_UEFI/cpp_foundation/XObjArray.h index 50d921d9f..36b07782e 100755 --- a/rEFIt_UEFI/cpp_foundation/XObjArray.h +++ b/rEFIt_UEFI/cpp_foundation/XObjArray.h @@ -1,12 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// XObjArray -// -// Developed by jief666, from 1997. -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XOBJARRAY_H__) #define __XOBJARRAY_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XRBuffer.cpp b/rEFIt_UEFI/cpp_foundation/XRBuffer.cpp index 035c4f762..1806a4da6 100755 --- a/rEFIt_UEFI/cpp_foundation/XRBuffer.cpp +++ b/rEFIt_UEFI/cpp_foundation/XRBuffer.cpp @@ -1,8 +1,10 @@ -//************************************************************************************************* -// -// Read only Buffer -// -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XRBUFFER_CPP__) #define __XRBUFFER_CPP__ diff --git a/rEFIt_UEFI/cpp_foundation/XRBuffer.h b/rEFIt_UEFI/cpp_foundation/XRBuffer.h index 210a7a6d4..ce261c34f 100755 --- a/rEFIt_UEFI/cpp_foundation/XRBuffer.h +++ b/rEFIt_UEFI/cpp_foundation/XRBuffer.h @@ -1,10 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// RBUFFER -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XRBUFFER_H__) #define __XRBUFFER_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XString.cpp b/rEFIt_UEFI/cpp_foundation/XString.cpp index 5ba50405e..8de4eebd1 100755 --- a/rEFIt_UEFI/cpp_foundation/XString.cpp +++ b/rEFIt_UEFI/cpp_foundation/XString.cpp @@ -1,12 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// STRING -// -// Developed by jief666, from 1997. -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if 0 diff --git a/rEFIt_UEFI/cpp_foundation/XString.h b/rEFIt_UEFI/cpp_foundation/XString.h index d699754ab..eb72224d2 100755 --- a/rEFIt_UEFI/cpp_foundation/XString.h +++ b/rEFIt_UEFI/cpp_foundation/XString.h @@ -1,13 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// STRING -// -// Developed by jief666, from 1997. -// -//************************************************************************************************* -//************************************************************************************************* - +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XString_H__) #define __XString_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XStringAbstract.h b/rEFIt_UEFI/cpp_foundation/XStringAbstract.h index 8aba71134..68d59b574 100755 --- a/rEFIt_UEFI/cpp_foundation/XStringAbstract.h +++ b/rEFIt_UEFI/cpp_foundation/XStringAbstract.h @@ -1,27 +1,10 @@ /* - * Copyright (c) 2019 Jief. * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * -*/ + */ #if !defined(__XSTRINGABSTRACT_H__) #define __XSTRINGABSTRACT_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XStringArray.cpp b/rEFIt_UEFI/cpp_foundation/XStringArray.cpp index 186cd5489..0d8f61311 100755 --- a/rEFIt_UEFI/cpp_foundation/XStringArray.cpp +++ b/rEFIt_UEFI/cpp_foundation/XStringArray.cpp @@ -1,8 +1,10 @@ -//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -// -// STRINGS -// -//xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #include // Only use angled for Platform, else, xcode project won't compile #include "XStringArray.h" diff --git a/rEFIt_UEFI/cpp_foundation/XStringArray.h b/rEFIt_UEFI/cpp_foundation/XStringArray.h index 3d4a6170e..7e83c2ef0 100755 --- a/rEFIt_UEFI/cpp_foundation/XStringArray.h +++ b/rEFIt_UEFI/cpp_foundation/XStringArray.h @@ -1,10 +1,10 @@ -//************************************************************************************************* -//************************************************************************************************* -// -// STRINGS -// -//************************************************************************************************* -//************************************************************************************************* +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #if !defined(__XSTRINGARRAY_H__) #define __XSTRINGARRAY_H__ diff --git a/rEFIt_UEFI/cpp_foundation/XToolsCommon.h b/rEFIt_UEFI/cpp_foundation/XToolsCommon.h index 4a48dbc8a..9b8f2a50c 100644 --- a/rEFIt_UEFI/cpp_foundation/XToolsCommon.h +++ b/rEFIt_UEFI/cpp_foundation/XToolsCommon.h @@ -1,10 +1,10 @@ -// -// XToolsCommon.h -// cpp_tests -// -// Created by jief on 25.04.20. -// Copyright © 2020 jief_machack. All rights reserved. -// +/* + * + * Created by jief in 1997. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #ifndef XToolsCommon_h #define XToolsCommon_h diff --git a/rEFIt_UEFI/cpp_foundation/unicode_conversions.cpp b/rEFIt_UEFI/cpp_foundation/unicode_conversions.cpp index f5f2d7a80..577a170d6 100755 --- a/rEFIt_UEFI/cpp_foundation/unicode_conversions.cpp +++ b/rEFIt_UEFI/cpp_foundation/unicode_conversions.cpp @@ -1,9 +1,9 @@ /* - * unicode_conversions.cpp * - * Created by jief the 24 Feb 2020. + * Created by jief the 24 Feb 2020. + * Copyright (c) 2020 Jief + * All rights reserved. * - * version 1.0 */ #include "unicode_conversions.h" diff --git a/rEFIt_UEFI/cpp_foundation/unicode_conversions.h b/rEFIt_UEFI/cpp_foundation/unicode_conversions.h index 2acc5ec32..518782b09 100644 --- a/rEFIt_UEFI/cpp_foundation/unicode_conversions.h +++ b/rEFIt_UEFI/cpp_foundation/unicode_conversions.h @@ -1,10 +1,10 @@ /* -* unicode_conversions.cpp -* -* Created by jief the 24 Feb 2020. -* -* version 1.0 -*/ + * + * Created by jief the 24 Feb 2020. + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ #ifndef __unicode_conversions_h__ #define __unicode_conversions_h__ diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.cpp new file mode 100644 index 000000000..47ba40b5b --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.cpp @@ -0,0 +1,12 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "XmlLiteArrayTypes.h" + +const typename XmlString8Array::ValueType XmlString8Array::nullValue = XmlString8Array::ValueType(); +const typename XmlStringWArray::ValueType XmlStringWArray::nullValue = XmlStringWArray::ValueType(); + diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.h b/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.h new file mode 100644 index 000000000..8eedac432 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteArrayTypes.h @@ -0,0 +1,185 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#ifndef XmlLiteArrayTypes_h +#define XmlLiteArrayTypes_h + +#include +#include "XmlLiteSimpleTypes.h" + +#ifndef NOP +#define NOP do { int i=0 ; (void)i; } while (0) // for debugging +#endif + +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wnon-virtual-dtor" + +template +class XmlArray : public XmlAbstractType, public XObjArray +{ + using super1 = XmlAbstractType; + using super2 = XObjArray; + + public: + using ValueType = XObjArray; + static const ValueType nullValue; +// XObjArray array = XObjArray(); + + public: + XmlArray() {} + virtual ~XmlArray() {} + + virtual const char* getDescription() override { return "array"; }; + virtual void reset() override { super1::reset(); super2::setEmpty(); }; + + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return *this; } +// const ValueType& v() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return *this; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("array"); } + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + // Validate remove invalid elements, but doesn't invalidate the whole array. So this is always returning true. + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; +}; + +#pragma GCC diagnostic pop + +template +const typename XmlArray::ValueType XmlArray::nullValue; + + +template +bool XmlArray::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + RETURN_IF_FALSE ( xmlLiteParser->consumeOpeningTag("array") ); + + setDefined(); + + size_t n = 0; + XString8 xmlSubPath; +// XmlParserPosition pos; + + while ( !xmlLiteParser->nextTagIsClosingTag("array") ) + { + xmlSubPath = xmlPath; + xmlSubPath.S8Catf("[%zu]", n); + + XmlParserPosition beforePos = xmlLiteParser->getPosition(); + T* newT = new T(); + if ( newT->parseFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors) ) { + super2::AddReference(newT, true); + }else{ + delete newT; + if ( xmlLiteParser->getPosition() == beforePos ) { + // position is still the same. So we'll endlessly loop if we do not move forward + if ( *xmlLiteParser->getPosition().p == '<' ) xmlLiteParser->skipNextTag(false); + else xmlLiteParser->moveForwardUntil('<'); + if ( xmlLiteParser->getPosition() == beforePos ) { + // still not moved ??? + return false; + } + } + } + n += 1; + } + xmlLiteParser->consumeClosingTag("array", generateErrors); +// return validate(xmlLiteParser, xmlPath, pos, generateErrors); + return true; +} + +template +bool XmlArray::validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) +{ + for ( size_t idx = 0 ; idx < super2::size() ; ) { + if ( !super2::ElementAt(idx).validate(xmlLiteParser, xmlPath, pos, generateErrors) ) { + super2::RemoveAtIndex(idx); + }else{ + ++idx; + } + } + return true; +} + + +class XmlString8Array : public XmlArray +{ + using super = XmlArray; + + public: + using ValueType = ConstXString8Array; + static const ValueType nullValue; + ValueType array = ValueType(); + + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return array; } + + virtual void reset() override { super::reset(); array.setEmpty(); }; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override + { + bool b = super::parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors); + for ( size_t idx = 0 ; idx < super::size() ; idx++ ) { + array.AddReference(&super::ElementAt(idx).value(), false); + } + return b; + } + // Validate can remove invalid element. So we have to regenerate 'array'. There is no object copy, so it's very quick + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override + { + bool b = super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors); + array.setEmpty(); + for ( size_t idx = 0 ; idx < super::size() ; idx++ ) { + array.AddReference(&super::ElementAt(idx).value(), false); + } + return b; + } + +}; + +//class XmlString8AllowEmptyArray : public XmlArray +//{ +//}; + +class XmlStringWArray : public XmlArray +{ + using super = XmlArray; + public: + using ValueType = ConstXStringWArray; + static const ValueType nullValue; + ValueType array = ValueType(); + + ValueType& value() { if ( !isDefined() ) log_technical_bug("%s : value is not defined", __PRETTY_FUNCTION__); return array; } + const ValueType& value() const { if ( !isDefined() ) log_technical_bug("%s : value is not defined", __PRETTY_FUNCTION__); return array; } + + virtual void reset() override { super::reset(); array.setEmpty(); }; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override + { +#ifdef JIEF_DEBUG +if (xmlPath == "/DisableDrivers"_XS8) { +NOP; +} +#endif + bool b = super::parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors); + array.setEmpty(); + for ( size_t idx = 0 ; idx < super::size() ; idx++ ) { + array.AddReference(&super::ElementAt(idx).value(), false); + } + return b; + } + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override + { + bool b = super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors); + // Validate can remove invalid element. So we have to regenerate 'array'. There is no object copy, so it's very quick + array.setEmpty(); + for ( size_t idx = 0 ; idx < super::size() ; idx++ ) { + array.AddReference(&super::ElementAt(idx).value(), false); + } + return b; + } + +}; + + +#endif /* XmlLiteArrayTypes_h */ diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.cpp new file mode 100644 index 000000000..e0074965f --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.cpp @@ -0,0 +1,83 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "XmlLiteCompositeTypes.h" + + +// +// +//void XmlComposite::reset() +//{ +// super::reset(); +// XmlCompositeField* fields; +// size_t nb; +// getFields(&fields, &nb); +// if ( nb == 0 ) panic("XmlComposite::reset() : no field defined"); +// for ( size_t idx = 0 ; idx < nb ; idx++ ) { +// XmlCompositeField& xmlCompositeField = fields[idx]; +// XmlAbstractType& xmlAbstractType = xmlCompositeField.xmlAbstractType; +// xmlAbstractType.reset(); +// } +//} +// +//bool XmlComposite::isTheNextTag(XmlLiteParser* xmlLiteParser) +//{ +// XmlCompositeField* fields; +// size_t nb; +// getFields(&fields, &nb); +// if ( nb == 0 ) panic("XmlComposite::isTheNextTag() : no field defined"); +// +// if ( nb > 0 ) { +// XmlCompositeField& xmlCompositeField = fields[0]; +// XmlAbstractType& xmlAbstractType = xmlCompositeField.xmlAbstractType; +// if ( xmlAbstractType.isTheNextTag(xmlLiteParser) ) return true; +// } +// return false; +//} +// +//bool XmlComposite::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +//{ +// XmlCompositeField* fields; +// size_t nb; +// getFields(&fields, &nb); +// if ( nb == 0 ) panic("XmlComposite::parseFromXmlLite() : no field defined"); +// +//#ifdef JIEF_DEBUG +// if ( xmlPath.startWithOrEqualToIC("/Devices/Properties") ) { +// printf("%s", ""); +// } +//#endif +// +// XString8 xmlSubPath = xmlPath; // TODO : concat to xmlPath and then truncate instead of constructing new ones. +// +// for ( size_t idx = 0 ; idx < nb ; idx++ ) { +// XmlCompositeField& xmlCompositeField = fields[idx]; +// XmlAbstractType& xmlAbstractType = xmlCompositeField.xmlAbstractType; +// if ( !xmlAbstractType.parseFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors) ) return false; +// if ( xmlAbstractType.isKey() ) xmlSubPath.S8Catf("/%s", xmlAbstractType.getKey().c_str()); +// } +// setDefined(); +// return true; +//} +// +// +//bool XmlComposite::validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) +//{ +// XmlCompositeField* fields; +// size_t nb; +// getFields(&fields, &nb); +// for ( size_t idx = 0 ; idx < nb ; idx++ ) { +// XmlCompositeField& xmlCompositeField = fields[idx]; +// XmlAbstractType& xmlAbstractType = xmlCompositeField.xmlAbstractType; +// if ( !xmlAbstractType.validate(xmlLiteParser, xmlPath, pos, generateErrors) ) { +// return false; +// } +// } +// return true; +//} +// +// diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.h b/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.h new file mode 100644 index 000000000..514e613cd --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteCompositeTypes.h @@ -0,0 +1,92 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "../cpp_foundation/XToolsCommon.h" + +#ifndef XmlLiteCompositeTypes_h +#define XmlLiteCompositeTypes_h + +#include +#include "XmlLiteSimpleTypes.h" +#include "XmlLiteCompositeTypes.h" + + + +/*----------------------------------------------- Composition */ + +// +///* +// * "Composition" here means : all the fields, in order. +// */ +//class XmlCompositeField +//{ +//public: +// XmlAbstractType& xmlAbstractType; +// XmlCompositeField(XmlAbstractType& XmlAbstractType) : xmlAbstractType(XmlAbstractType) {}; +//}; +// +//class XmlComposite : public XmlAbstractType +//{ +// using super = XmlAbstractType; +//protected: +// XString8 description = XString8(); +//public: +// XmlComposite() : super() {}; +// ~XmlComposite() {}; +// +// virtual const char* getDescription() override { +// XmlCompositeField* fields; +// size_t nb; +// getFields(&fields, &nb); +// if ( nb == 0 ) panic("nb==0"); +// for ( size_t idx = 0 ; idx < nb ; idx++ ) { +// if ( idx > 0 ) description += '+'; +// XmlCompositeField& xmlCompositeField = fields[idx]; +// XmlAbstractType& xmlAbstractType = xmlCompositeField.xmlAbstractType; +// description += xmlAbstractType.getDescription(); +// } +// return description.c_str(); +// }; +// virtual void getFields(XmlCompositeField** fields, size_t* nb) = 0; +// +// virtual void reset() override; +// +// virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override; +// virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +// virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; +//}; +// +// +// +///*----------------------------------------------- Some predefined composition */ +// +//template +//class XmlKeyAndValue : public XmlComposite +//{ +// using super = XmlComposite; +// private: +// public: +// XmlKey xmlKey = XmlKey(); +// ValueClass xmlValue = ValueClass(); +// public: +// XmlCompositeField m_fields[2] = { xmlKey, xmlValue }; +// virtual void getFields(XmlCompositeField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +// +// // Super class parseFromXmlLite would be fine, execpt for the calculation of xmlPath +// virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override +// { +// if ( !xmlKey.parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) return false; +// if ( !xmlValue.parseFromXmlLite(xmlLiteParser, S8Printf("%s/%s", xmlPath.c_str(), xmlKey.xstring8.c_str()), generateErrors) ) return false; +// return true; +// } +//}; +// + + + + +#endif /* XmlLiteCompositeTypes_h */ diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.cpp new file mode 100644 index 000000000..dfa237b5d --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.cpp @@ -0,0 +1,230 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "XmlLiteDictTypes.h" + +void XmlDict::reset() +{ + super::reset(); + XmlDictField* fields; + size_t nb; + getFields(&fields, &nb); + if ( nb == 0 ) { + // XmlDict object with custom parseFromXmlLite method may not have defined getFields(). + // Therefore, it'll return 0. So : no panic. +// panic("Dict has no field defined"); + + } + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + XmlDictField& xmlDictField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlDictField.xmlAbstractType; + xmlAbstractType.reset(); + } +} + +/* + * Try to parse the tag following a key in a dict + */ +XmlAbstractType& XmlDict::parseValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const XmlParserPosition &keyPos, const char *keyValue, size_t keyValueLength, bool* keyFound) +{ + XmlDictField* fields; + size_t nb; + *keyFound = false; + getFields(&fields, &nb); + if ( nb == 0 ) { + panic("Dict '%s' has no field defined", xmlPath.c_str()); + } + for ( size_t idx = 0 ; !*keyFound && idx < nb ; idx++ ) + { + XmlDictField& xmlDictField = fields[idx]; + const char* fieldName = xmlDictField.m_name; + XmlAbstractType& xmlAbstractType = xmlDictField.xmlAbstractType; + if ( strnIsEqualIC(keyValue, keyValueLength, fieldName) ) + { +#ifdef DEBUG +if ( xmlPath.containsIC("/ACPI/RenameDevices") ) { + (void)1; +} +if ( strcmp(fieldName, "AutoMerge") == 0 ) { + (void)1; +} +#endif + *keyFound = true; +//#ifdef DEBUG +// XmlParserPosition pos = xmlLiteParser->getPosition(); +//#endif + +// if ( xmlAbstractType.isDefined() ) { +// xmlLiteParser->addWarning(generateErrors, S8Printf("Tag '%s:%d' is previously defined. Previous value ignored.", xmlPath.c_str(), keyPos.getLine())); +// xmlAbstractType.reset(); +// } +// if ( !xmlAbstractType.parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { +////#ifdef DEBUG +//// xmlAbstractType.reset(); +//// xmlLiteParser->restorePosition(pos); +//// xmlAbstractType.parseFromXmlLite(xmlLiteParser, xmlPath, false); +////#endif +// } + if ( xmlAbstractType.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Tag '%s:%d' is previously defined. New value ignored.", xmlPath.c_str(), keyPos.getLine())); + xmlLiteParser->skipNextTag(false); + }else{ + if ( !xmlAbstractType.parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { + } + } + return xmlAbstractType; + } + } + if ( !keyFound ) { + // This key doesn't exist in the dict. Try to skip the value. + if ( !xmlLiteParser->nextTagIsOpeningTag("key") ) { + xmlLiteParser->skipNextTag(false); + } + } + return nullXmlType; +} + +XmlAbstractType& XmlDict::parseKeyAndValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const char** keyValuePtr, +size_t* keyValueLengthPtr) +{ + const char*& keyValue = *keyValuePtr; + size_t& keyValueLength = *keyValueLengthPtr; + + XmlParserPosition keyPos; + if ( !xmlLiteParser->getKeyTagValue(&keyValue, &keyValueLength, &keyPos, true) ) { + // This is an error. It may not be a parsing error. + // ie : if key tag is not "key" + xmlLiteParser->skipNextTag(false); + return nullXmlType; + } + if ( keyValueLength == 0 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Key in '%s:%d' is empty. Skipped.", xmlPath.c_str(), keyPos.getLine())); + xmlLiteParser->skipNextTag(generateErrors); // return value doesn't need to be tested, because skipNextTag() set xmlLiteParser::xmlParsingError to true. + return nullXmlType; + } + XString8 xmlSubPath = xmlPath; + if ( xmlPath.lastChar() == '/' ) xmlSubPath.S8Catf("%.*s", (int)keyValueLength, keyValue); + else xmlSubPath.S8Catf("/%.*s", (int)keyValueLength, keyValue); + +//#ifdef DEBUG +//XmlParserPosition valuePos = xmlLiteParser->getPosition(); +//#endif + + bool keyFound; + XmlAbstractType& xmlAbstractType = parseValueFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors, keyPos, keyValue, keyValueLength, &keyFound); + + if ( !keyFound ) { + if ( keyValueLength == 0 || keyValue[0] != '#' ) { + XString8 xmlSubPath2 = xmlPath.lastChar() == '/' ? S8Printf("Unknown key '%s%.*s:%d'. Skipped.", xmlPath.c_str(), (int)keyValueLength, keyValue, keyPos.getLine()) : S8Printf("Unknown key '%s/%.*s:%d'. Skipped.", xmlPath.c_str(), (int)keyValueLength, keyValue, keyPos.getLine()); + xmlLiteParser->addWarning(generateErrors, xmlSubPath2); + } + xmlLiteParser->skipNextTag(generateErrors); // return value doesn't need to be tested, because skipNextTag() set xmlLiteParser::xmlParsingError to true. + } + +//#ifdef DEBUG +// if ( xmlLiteParser->xmlParsingError ) { +// xmlLiteParser->restorePosition(valuePos); +// reset(); +// XmlAbstractType& xmlAbstractType2 = parseValueFromXmlLite(xmlLiteParser, xmlSubPath, false, keyPos, keyValue, keyValueLength, &keyFound); +// (void)xmlAbstractType2; +// } +//#endif + + return xmlAbstractType; +} + +bool XmlDict::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + RETURN_IF_FALSE ( xmlLiteParser->consumeOpeningTag("dict", generateErrors) ); + setDefined(); + +// const char* keyValue; +// size_t keyValueLength; +// XString8 xmlSubPath; + + while ( !xmlLiteParser->isEof() && !xmlLiteParser->nextTagIsClosingTag("dict") ) + { +// RETURN_IF_FALSE( xmlLiteParser->getKeyTagValue(&keyValue, &keyValueLength, &keyPos, true) ); +// xmlSubPath = xmlPath; +// xmlSubPath.S8Catf("/%.*s", (int)keyValueLength, keyValue); +// +#ifdef DEBUG +XmlParserPosition valuePos = xmlLiteParser->getPosition(); +(void)valuePos; +#endif +// bool keyFound; +// XmlAbstractType& xmlAbstractType = parseValueFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors, keyPos, keyValue, keyValueLength, &keyFound); + + XmlParserPosition keyPos = xmlLiteParser->getPosition(); + + const char* keyValue; + size_t keyValueLength; + XmlParserPosition beforePos = xmlLiteParser->getPosition(); + + XmlAbstractType& xmlAbstractType = parseKeyAndValueFromXmlLite(xmlLiteParser, xmlPath, generateErrors, &keyValue, &keyValueLength); + +// if ( xmlLiteParser->xmlParsingError ) { +// //return false; +// } +// else +// { + if ( xmlAbstractType.isDefined() ) + { + XString8 xmlSubPath = xmlPath.lastChar() == '/' ? S8Printf("%s%.*s", xmlPath.c_str(), (int)keyValueLength, keyValue) : S8Printf("%s/%.*s", xmlPath.c_str(), (int)keyValueLength, keyValue); + bool validated = xmlAbstractType.validate(xmlLiteParser, xmlSubPath, keyPos, generateErrors); + if ( !validated ) xmlAbstractType.reset(); + }else{ + if ( xmlLiteParser->getPosition() == beforePos ) { + // position is still the same. So we'll endlessly loop if we do not move forward + if ( *xmlLiteParser->getPosition().p == '<' ) xmlLiteParser->skipNextTag(false); + else xmlLiteParser->moveForwardUntil('<'); + if ( xmlLiteParser->getPosition() == beforePos ) { + // still not moved ??? + return false; + } + } + // if !xmlAbstractType.isDefined(), it's because a unknown key, or a comment. + // Just try to continue. + } +// } + } + RETURN_IF_FALSE ( xmlLiteParser->consumeClosingTag("dict", generateErrors) ); + return true; +} + +bool XmlDict::validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) +{ + (void)xmlLiteParser; + (void)xmlPath; + (void)pos; + (void)generateErrors; +// XmlDictField* fields; +// size_t nb; +// getFields(&fields, &nb); +// for ( size_t idx = 0 ; idx < nb ; idx++ ) { +// XmlDictField& xmlDictField = fields[idx]; +// XmlAbstractType& xmlAbstractType = xmlDictField.xmlAbstractType; +// XString8 subXmlPath = S8Printf("%s/%s", xmlPath.c_str(), xmlDictField.m_name); +//#ifdef DEBUG +////if ( subXmlPath == "/ACPI/DSDT/Name"_XS8 ) { +//if ( subXmlPath == "/Boot/Policy"_XS8 ) { +// printf(""); +//} +//#endif +// if ( !xmlAbstractType.validate(xmlLiteParser, subXmlPath, pos, generateErrors) ) { +// #ifdef DEBUG +//// xmlAbstractType.validate(xmlLiteParser, subXmlPath, pos, false); +// #endif +// return false; +// } +// } + return true; +} + + diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.h b/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.h new file mode 100644 index 000000000..4108edeec --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteDictTypes.h @@ -0,0 +1,431 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "../cpp_foundation/XToolsCommon.h" + +#ifndef XmlLiteDictTypes_h +#define XmlLiteDictTypes_h + +#include +#include "XmlLiteSimpleTypes.h" +#include "XmlLiteDictTypes.h" + +class XmlDictField +{ +public: + const char* m_name; + XmlAbstractType& xmlAbstractType; + XmlDictField(const char* name, XmlAbstractType& XmlAbstractType) : m_name(name), xmlAbstractType(XmlAbstractType) {}; +}; + +class XmlDict : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + XmlDict() : super() {}; + ~XmlDict() {}; + + virtual const char* getDescription() override { return "dict"; }; + virtual void reset() override; + + virtual void getFields(XmlDictField** fields, size_t* nb) { *fields = NULL; *nb = 0; }; + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("dict"); } + + virtual XmlAbstractType& parseValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const XmlParserPosition &keyPos, const char *keyValue, size_t keyValueLength, bool* keyFound); + virtual XmlAbstractType& parseKeyAndValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const char** keyValuePtr, size_t* keyValueLengthPtr); + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; +}; + + + + +template +class XmlAddKey : public XmlValueClass +{ + using super = XmlValueClass; + private: + XmlKeyClass m_key = XmlKeyClass(); +// using ValueType = MyXmlAddKey; + + public: + using keyType = XmlKeyClass; + +// virtual void setKey(const char* keyValue, size_t keyValueLength) { +// m_key.strncpy(keyValue, keyValueLength); +// } +// XmlKeyClass& key() { return m_key; } + XmlKeyClass xmlKey() const { return m_key; } + decltype(m_key.value()) key() const { return m_key.value(); } + + void setKey(const XmlKeyClass& aKey) { +// if ( aKey.isEmpty() ) { +// log_technical_bug("%s : aKey.length() == 0", __PRETTY_FUNCTION__); +// } + m_key = aKey; + } +// const XmlClass& value() const { return value(); } +}; + + + + + + + +template +class _XmlRepeatingDict : public XmlAbstractType +{ + using super = XmlAbstractType; +protected: + using ValueArrayType = XObjArray; +// XString8Array keyArray; + XmlKeyType keyTmp = XmlKeyType(); + ValueArrayType m_valueArray = ValueArrayType(); +public: + bool ignoreCommented = true; + + _XmlRepeatingDict() : super() {}; + ~_XmlRepeatingDict() {}; + + virtual const char* getDescription() override { return "dict"; }; + virtual void reset() override { super::reset(); m_valueArray.setEmpty(); }; + + virtual XmlValueType* getNewInstance() { return new XmlValueType(); } + + const ValueArrayType& valueArray() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return m_valueArray; } + + virtual void addValue(XmlValueType* xmlValueType) = 0; + + virtual void getFields(XmlDictField** fields, size_t* nb) { panic("BUG : repeating dict don't use getFields()"); }; + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("dict"); } + +// virtual XmlAbstractType& parseValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const XmlParserPosition &keyPos, const char *keyValue, size_t keyValueLength, bool* keyFound); + virtual XmlValueType* parseKeyAndValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors); + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + +// virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; +}; + + +template +XmlValueType* _XmlRepeatingDict::parseKeyAndValueFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + keyTmp.reset(); + if ( keyTmp.parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { + XmlValueType* newValue = getNewInstance(); + if ( newValue->parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { + return newValue; + } + } + return NULL; +// const char* tag; +// size_t tagLength; +// +// XmlParserPosition pos = xmlLiteParser->getPosition(); +// if ( !xmlLiteParser->getSimpleTag(&tag, &tagLength, keyValuePtr, keyValueLengthPtr, NULL, generateErrors) ) { +// return NULL; +// } +// if ( !strnIsEqual(tag, tagLength, "key") ) { +// xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting a tag in '%s' at line %d.", xmlPath.c_str(), pos.getLine())); +// return NULL; +// } +// XmlValueType* kv = getNewInstance(); +// if ( kv->parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { +// return kv; +// } +// delete kv; +// return NULL; +} + +template +bool _XmlRepeatingDict::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + RETURN_IF_FALSE ( xmlLiteParser->consumeOpeningTag("dict", generateErrors) ); + setDefined(); + +#ifdef JIEF_DEBUG +if ( xmlPath.startWithOrEqualToIC("/Devices/Properties"_XS8) ) { + int i=0; (void)i; +} +#endif + +// const char* keyValue; +// size_t keyValueLength; +// XString8 xmlSubPath; + + size_t n = 0; + + while ( !xmlLiteParser->nextTagIsClosingTag("dict") ) + { +// RETURN_IF_FALSE( xmlLiteParser->getKeyTagValue(&keyValue, &keyValueLength, &keyPos, true) ); +// xmlSubPath = xmlPath; +// xmlSubPath.S8Catf("/%.*s", (int)keyValueLength, keyValue); +// +#ifdef DEBUG +XmlParserPosition valuePos = xmlLiteParser->getPosition(); +(void)valuePos; +#endif +// bool keyFound; +// XmlAbstractType& xmlAbstractType = parseValueFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors, keyPos, keyValue, keyValueLength, &keyFound); + + XmlParserPosition keyPos = xmlLiteParser->getPosition(); + + XString8 xmlSubPath = xmlPath; + xmlSubPath.S8Catf("[%zu]", n); + + XmlValueType* xmlValueType = parseKeyAndValueFromXmlLite(xmlLiteParser, xmlSubPath, generateErrors); // key goes in keyTmp + + if ( xmlLiteParser->xmlParsingError ) { + return false; + } + if ( keyTmp.value().length() > 0 ) + { + if ( !( keyTmp.value()[0] == '#' && ignoreCommented ) ) + { + if ( xmlValueType != NULL ) + { + if ( !xmlValueType->isDefined() ) panic("BUG: parseKeyAndValueFromXmlLite must not return an undefined item"); + bool validated = xmlValueType->validate(xmlLiteParser, S8Printf("%s/%s", xmlPath.c_str(), keyTmp.value().c_str()), keyPos, generateErrors); + if ( validated ) { + xmlValueType->setKey(keyTmp); + addValue(xmlValueType); + } + }else{ + // wrong value. Let's try to ignore and continue + } + }else{ + // Commented out. + } + }else{ + xmlLiteParser->addWarning(generateErrors, S8Printf("Empty key, following value is ignored at line %d", keyPos.getLine())); + // if !xmlAbstractType.isDefined(), it's because a unknown key, or a comment. + // Just try to continue. + } + ++n; + } + RETURN_IF_FALSE ( xmlLiteParser->consumeClosingTag("dict", generateErrors) ); + return true; +} + + + +// +//template struct _XmlRepeatingDict_has_ValueType { typedef void Typp; }; +// +//template +//class XmlRepeatingDict : public _XmlRepeatingDict +//{ +// using super = _XmlRepeatingDict; +// +// virtual void addValue(XmlValueType* xmlValueType) { +// super::arrayValue().AddReference(xmlValueType, true); +// } +//}; +// +//template +//class XmlRepeatingDict::Typp> : public _XmlRepeatingDict +//{ +// using super = _XmlRepeatingDict; +// +// virtual void addValue(XmlValueType* xmlValueType) { +// super::arrayValue().AddCopy(xmlValueType->value()); +// delete xmlValueType; // TODO improve to avoid memory allocation. At least use stealValueFrom +// } +//}; +// +// +// +// + + + + + + + + +template _Tp&& __declval(int); +template _Tp __declval(long); + +template +decltype(__declval<_Tp>(0)) +declval() ; + + +template +struct HasUsedMemoryMethod +{ + template struct SFINAE {}; + template static char Test(SFINAE*); + template static int Test(...); + static const bool Has = sizeof(Test(0)) == sizeof(char); +}; + + +template struct __xmldict__declare_void { typedef void Typp; }; + + +template +class XmlRepeatingDict : public _XmlRepeatingDict +{ + using super = _XmlRepeatingDict; + virtual void addValue(XmlAddKeyType* xmlValueType) { + super::m_valueArray.AddReference(xmlValueType, true); + } +}; + + +// +//template +//class XmlRepeatingDict : public _XmlRepeatingDict +//{ +//// using super = _XmlRepeatingDict; +////public: +//// virtual void addValue(XmlValueType* xmlValueType, const char* keyValue, size_t keyLength) { +//// super::valueArray.AddReference(xmlValueType, true); +//// } +//}; + +template +class XmlRepeatingDict> : public _XmlRepeatingDict, XmlAddKey> +{ + using super = _XmlRepeatingDict, XmlAddKey>; +//public: + virtual void addValue(XmlAddKey* xmlValueType) { + super::m_valueArray.AddReference(xmlValueType, true); + } +}; + + + +// +//template +//class XmlRepeatingDict::Typp +// > +// : public _XmlRepeatingDict +//{ +// using super = _XmlRepeatingDict; +//// decltype(declval().setKey()) a; +// +// virtual void addValue(XmlValueType* xmlValueType, const char* keyValue, size_t keyLength) { +// super::valueArray.AddCopy(xmlValueType->value(), true); +// delete xmlValueType; +// } +//}; +// + + + + +// +//template +//class XmlAddKey::Typp> : public XmlClass +//{ +// using super = XmlClass; +// private: +// XString8 m_key; +//// using ValueType = MyXmlAddKey; +// +// public: +// virtual void setKey(const char* keyValue, size_t keyValueLength) { +// m_key.strncpy(keyValue, keyValueLength); +// } +// const XString8& key() const { return m_key; } +// const typename XmlClass::ValueType& value() const { return super::value(); } +// +//// template +//// bool operator ==(const OtherXStringArrayClass &aXStrings) const { return super::operator ==(aXStrings); } +//// template +//// bool operator !=(const OtherXStringArrayClass &aXStrings) const { return super::operator !=(aXStrings); } +// +//}; +// +// +// +// +// +//template +//class XmlRepeatingDict : public _XmlRepeatingDict +//{ +// using super = _XmlRepeatingDict; +//public: +// virtual void addValue(XmlValueType* xmlValueType, const char* keyValue, size_t keyLength) { +// super::arrayValue().AddReference(xmlValueType, true); +// } +//}; +// +//template +//class XmlRepeatingDict::Typp +// > +// : public _XmlRepeatingDict, XmlAddKey> +//{ +// using super = _XmlRepeatingDict, XmlAddKey>; +//// decltype(declval().setKey()) a; +// +// virtual void addValue(XmlAddKey* xmlValueType, const char* keyValue, size_t keyLength) { +//// super::arrayValue().AddCopy(xmlValueType->value()); +//// delete xmlValueType; // TODO improve to avoid memory allocation. At least use stealValueFrom +// xmlValueType->setKey(keyValue, keyLength); +// super::valueArray.AddReference(xmlValueType, true); +// } +//}; +// +//// +////template +////class XmlRepeatingDict> +//// : public _XmlRepeatingDict, XmlAddKey> +////{ +//// using super = _XmlRepeatingDict, XmlAddKey>; +////public: +//// +////// decltype(declval().setKey()) a; +//// XString8Array keyArray = XString8Array(); +//// +//// virtual void addValue(XmlAddKey* xmlValueType, const char* keyValue, size_t keyLength) { +//// xmlValueType->setKey(keyValue, keyLength); +//// super::valueArray.AddReference(xmlValueType, true); +//// } +////}; +//// +//// +// +// +// +//// +//// +////template +////class XmlRepeatingDict::Typp, +//// typename __xmldict__declare_void(), declval()))>::Typp +//// > +//// : public _XmlRepeatingDict +////{ +//// using super = _XmlRepeatingDict; +////public: +//// +////// decltype(declval().setKey()) a; +//// XString8Array keyArray = XString8Array(); +//// +//// virtual void addValue(XmlValueType* xmlValueType, const char* keyValue, size_t keyLength) { +////// super::arrayValue().AddCopy(xmlValueType->value()); +////// keyArray.Add(); +//// delete xmlValueType; // TODO improve to avoid memory allocation. At least use stealValueFrom +//// } +////}; +//// +// + + +#endif /* XmlLiteCompositeTypes_h */ diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteParser.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteParser.cpp new file mode 100755 index 000000000..73c1f4071 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteParser.cpp @@ -0,0 +1,544 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +// Only use angled for Platform, else, xcode project won't compile +#include "XmlLiteSimpleTypes.h" +#include "XmlLiteParser.h" + +#include "../cpp_foundation/XString.h" +#include "../cpp_foundation/XStringArray.h" +#include "../cpp_foundation/unicode_conversions.h" +#include "../Platform/plist/plist.h" + + + +bool strnnIsEqual(const char* key, size_t keyLength, const char* value, size_t valueLength) +{ + if ( keyLength != valueLength ) return false; + return strncmp(key, value, keyLength) == 0; +} + +bool strnIsEqual(const char* key, size_t keyLength, const char* value) +{ + return strnnIsEqual(key, keyLength, value, strlen(value)); +} + + +bool strnnIsEqualIC(const char* key, size_t keyLength, const char* value, size_t valueLength) +{ + if ( keyLength != valueLength ) return false; + return strncasecmp(key, value, keyLength) == 0; +} + +bool strnIsEqualIC(const char* key, size_t keyLength, const char* value) +{ + return strnnIsEqualIC(key, keyLength, value, strlen(value)); +} + + +XmlParserPosition XmlLiteParser::getPosition() +{ + return currentPos; +} + +void XmlLiteParser::restorePosition(XmlParserPosition& xml_position) +{ + currentPos = xml_position; +} + +void XmlLiteParser::init(const char* buf, size_t size) +{ +(void)size; + p_start = (char*)malloc(size+1); + memcpy(p_start, buf, size); // TODO remove that copy. I shouldnt need an ending 0 anymore, I think... Check. + p_start[size] = 0; + p_end = p_start + size; + + currentPos.p = p_start; + currentPos.line = 1; + currentPos.col = 1; + + errorsAndWarnings.setEmpty(); + + for ( size_t i = 0; i < size ; ++i) { + if ( p_start[i] == 0 ) { + addWarning(true, S8Printf("Invalid NULL char at offset %zu. Replace by a space", i)); + p_start[i] = 0x20; //replace random zero bytes to spaces + } + } + +} + +char XmlLiteParser::getchar() +{ + return *currentPos.p; +} + +char XmlLiteParser::moveForward() +{ +// if ( getchar() == 0 ) { + if ( currentPos.p >= p_end ) { + if ( currentPos.p > p_end ) { + panic("BUG in xmlLiteParser. Went past the end."); + } + return 0; + } + if ( getchar() == '\n' ) { + currentPos.line++; + currentPos.col = 1; + }else{ + currentPos.col++; + } + return *( ++(currentPos.p) ); +} + +char XmlLiteParser::moveForward(int n) +{ + for ( int i = 0 ; i < n-1 ; i++ ) moveForward(); + return moveForward(); +} + +char XmlLiteParser::moveBackward() +{ + if ( currentPos.p == p_start ) return 0; + + currentPos.p--; + if ( getchar() == '\n' ) { + if ( currentPos.col != 1 ) panic("%s : currentPos.col != 1", __PRETTY_FUNCTION__); + currentPos.line--; + currentPos.col = 1; + char* q = currentPos.p; + while ( q > p_start && *(--q) != '\n' ) { currentPos.col++; }; + }else{ + currentPos.col--; + } + return getchar(); +} + +char XmlLiteParser::moveForwardUntilSignificant() +{ + char c = getchar(); + while ( c == ' ' || c == '\t' || c == '\r' || c == '\n' ) { + c = moveForward(); + } + return c; +} + +char XmlLiteParser::moveBackwardUntilSignificant() +{ + char c = getchar(); + while ( c == ' ' || c == '\t' || c == '\r' || c == '\n' ) { + c = moveBackward(); + } + return c; +} + +char XmlLiteParser::moveForwardUntil(char until) +{ + char c = getchar(); + while ( currentPos.p < p_end && c != until ) c = moveForward(); + #ifdef JIEF_DEBUG + if ( currentPos.p > p_end ) panic("%s : currentPos.p > p_end", __PRETTY_FUNCTION__); + #endif + if ( currentPos.p == p_end ) return 0; + return c; +} + +char XmlLiteParser::moveBackwardUntil(char until) +{ + char c = moveBackward(); + while ( c && c != until ) c = moveBackward(); + return c; +} + +char XmlLiteParser::moveForwardPastNext(char until) +{ + moveForwardUntil(until); + return moveForward(); +} + +void XmlLiteParser::skipHeader() +{ + if ( strncmp(currentPos.p, "'); + moveForwardUntilSignificant(); + if ( strncmp(currentPos.p, "'); + moveForwardUntilSignificant(); + } + if ( strncmp(currentPos.p, "'); + moveForwardUntilSignificant(); + } + } +} + +#define IS_TAGCHAR(x) ( ( x >= 'a' && x <='z' ) || ( x >= 'A' && x <='Z' ) || ( x >= '0' && x <= '9' ) ) + +bool XmlLiteParser::getNextTag(const char** tag, size_t* length, bool* isOpeningTag, bool* isClosingTag, bool generateErrors) +{ + if (tag == NULL) panic("tag == NULL"); + +// // Find the start of the tag. +// moveUntilNext('<'); + + moveForwardUntilSignificant(); + +// if ( getchar() == '\0' ) { + if ( currentPos.p >= p_end ) { + addXmlError(generateErrors, S8Printf("Unexpected end of file at line %d col %d", currentPos.line, currentPos.col)); + return false; + } + if ( getchar() == '<' ) { + moveForward(); + if ( getchar() == '/') { + *isOpeningTag = false; + *isClosingTag = true; + moveForward(); + }else{ + *isOpeningTag = true; + *isClosingTag = false; + } + *tag = currentPos.p; + + // Find the end of the tag. + char c = moveForward(); + while ( IS_TAGCHAR(c) ) c = moveForward(); + + if ( c == '/' ) { + if ( *isClosingTag ) { + // tag like are illegal + addXmlError(generateErrors, S8Printf("unexpected '/' at line %d col %d. Tag like are illegal.", currentPos.line, currentPos.col)); + return false; + } + *length = size_t(currentPos.p - *tag); + return true; + } + if ( c != '>' ) { + if ( c == '\0' ) { + addXmlError(generateErrors, S8Printf("Unexpected end of file at line %d col %d while looking for closing char '>'", currentPos.line, currentPos.col)); + return false; + } + addXmlError(generateErrors, S8Printf("Unexpected char '%c' at line %d col %d while looking for closing char '>'", c, currentPos.line, currentPos.col)); + return false; + } + *length = size_t(currentPos.p - *tag); + moveForward(); +// moveForwardUntilSignificant(); + return true; + }else + if ( getchar() == '/' ) { + // special case where we left at an empty tag + XmlParserPosition pos = getPosition(); + moveBackwardUntil('<'); + moveForward(); + *tag = currentPos.p; + restorePosition(pos); + *length = size_t(currentPos.p - *tag); + char c = moveForward(); // skip '/' + if ( c != '>' ) { + if ( c == '\0' ) { + addXmlError(generateErrors, S8Printf("Unexpected end of file at line %d col %d while looking for closing char '>'", currentPos.line, currentPos.col)); + return false; + } + addXmlError(generateErrors, S8Printf("Unexpected char '%c' at line %d col %d while looking for closing char '>'", c, currentPos.line, currentPos.col)); + return false; + } + moveForward(); +// moveForwardUntilSignificant(); + *isOpeningTag = false; + *isClosingTag = true; + return true; + }else{ + addXmlError(generateErrors, S8Printf("Unexpected char '%c' at line %d col %d while looking for a tag that must start with '<'", getchar() , currentPos.line, currentPos.col)); + moveForward(); + return false; + } +} + +/* + * Get the string from current position until the next '<', or end of buffer. + * Spaces at begining or end are skipped. + * If no '<', false is returned. + * Position at the '<' when exit. + */ +void XmlLiteParser::getString(const char** string, size_t* length) +{ + if ( *currentPos.p == '/' && *(currentPos.p+1) == '>' ) { + // Special case. We were left at '/>' to represent an empty tag + *string = NULL; + *length = 0; + return; + } + char c; +// c = moveForwardUntilSignificant(); + c = getchar(); +// if ( c == 0 || c == '<' /*|| c == '/'*/ ) { + if ( currentPos.p >= p_end || c == '<' /*|| c == '/'*/ ) { + *string = NULL; + *length = 0; + return; + } + *string = currentPos.p; + c = moveForwardUntil('<'); + if ( c ) { + moveBackward(); + } +// moveBackwardUntilSignificant(); + *length = size_t(currentPos.p - *string + 1); + if ( *length == 0 ) *string = NULL; + moveForwardUntil('<'); +} + +#define RETURN_IF_FALSE(Expression) do { bool b = Expression; if ( !b ) return false; } while (0); + +bool XmlLiteParser::getSimpleTag(const char** tag, size_t* tagLength, const char** value, size_t* valueLength, const char* expectedTag/*, bool valueCanBeEmpty*/, bool generateErrors) +{ + bool isOpeningTag, isClosingTag; + + XmlParserPosition pos = getPosition(); + RETURN_IF_FALSE( getNextTag(tag, tagLength, &isOpeningTag, &isClosingTag, generateErrors) ); + if ( isClosingTag ) { + // opening tag expected + addXmlError(generateErrors, S8Printf("Unexpected closing tag '%.*s' at line %d col %d. Was expecting .", (int)*tagLength, *tag, pos.line, pos.col)); + return false; + } + if ( expectedTag && !strnIsEqual(*tag, *tagLength, expectedTag) ) { + addXmlError(generateErrors, S8Printf("Unexpected tag '%.*s' at line %d col %d. Was expecting <%s>.", (int)*tagLength, *tag, pos.line, pos.col, expectedTag)); + return false; + } + + getString(value, valueLength); +// if ( !valueCanBeEmpty && *valueLength == 0 ) { +// if ( generateErrors ) addError(S8Printf("Text of tag '%.*s' cannot be empty at line %d col %d\n", (int)*tagLength, *tag, currentPos.line, currentPos.col)); +// return false; +// } + + const char* endTag; + size_t endTagLength; + pos = getPosition(); + RETURN_IF_FALSE( getNextTag(&endTag, &endTagLength, &isOpeningTag, &isClosingTag, generateErrors) ); + if ( isOpeningTag ) { + // closing tag expected + currentPos = pos; + addXmlError(generateErrors, S8Printf("Expected closing tag '%.*s' at line %d col %d", (int)*tagLength, *tag, pos.line, pos.col)); + return false; + } + if ( !strnnIsEqual(endTag, endTagLength, *tag, *tagLength) ) { + // closing tag name is different + currentPos = pos; + addXmlError(generateErrors, S8Printf("Expected closing tag '%.*s' at line %d col %d", (int)*tagLength, *tag, pos.line, pos.col)); + return false; + } +// if ( *valueLength == 0 ) { +// addError(generateErrors, S8Printf("Key '%.*s' has an empty value at line %d col %d\n", (int)*tagLength, *tag, pos.line, pos.col)); +// return false; +// } + return true; +} + +/* + * The opening tag has been read. Skip until the closing tag + */ +bool XmlLiteParser::skipUntilClosingTag(const char* tagToSkip, size_t tagToSkipLength, bool generateErrors) +{ + const char* value; + size_t valueLength; + bool b; + + getString(&value, &valueLength); + +//TODO +while ( valueLength > 0 && (*value == ' ' || *value == '\t' || *value == '\r' || *value == '\n') ) { + ++value; + --valueLength; +} + + const char* tag; + size_t tagLength; + bool isOpeningTag, isClosingTag; + + XmlParserPosition pos = getPosition(); + b = getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, generateErrors); + if ( !b ) return false; + if ( isOpeningTag && valueLength > 0 ) { + // cannot have a tag containing text AND subtag + addXmlError(generateErrors, S8Printf("Tag '%.*s' cannot contains text AND tag at line %d col %d", (int)tagToSkipLength, tagToSkip, pos.line, pos.col)); + return false; + } + while ( isOpeningTag ) + { + b = skipUntilClosingTag(tag, tagLength, generateErrors); + if ( !b ) return false; + + b = getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, generateErrors); + if ( !b ) return false; + } + if ( !strnnIsEqual(tag, tagLength, tagToSkip, tagToSkipLength) ) { + // closing tag is different + addXmlError(generateErrors, S8Printf("Expected closing tag '%.*s' at line %d col %d", (int)tagToSkipLength, tagToSkip, pos.line, pos.col)); + return false; + } + char c = moveForwardUntilSignificant(); + if ( c != 0 && c != '<' ) { + // After a closing tag, we can't have chars other than spaces + addXmlError(generateErrors, S8Printf("Unexpected char '%c' at line %d col %d after the end of tag '%.*s'. The containing tag cannot have text abd tab", getchar() , currentPos.line, currentPos.col, (int)tagToSkipLength, tagToSkip)); + return false; + } + + return true; +} + +bool XmlLiteParser::skipNextTag(bool generateErrors) +{ + const char* tag; + size_t tagLength; + bool isOpeningTag, isClosingTag; + bool b; + + XmlParserPosition pos = getPosition(); + b = getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, generateErrors); + if ( !b ) return false; + if ( isClosingTag ) { + // next tag should be an opening one + addXmlError(generateErrors, S8Printf("Expected an opening tag at line %d col %d", pos.line, pos.col)); + return false; + } + return skipUntilClosingTag(tag, tagLength, generateErrors); +} + +bool XmlLiteParser::getSimpleTagValue(const char* expectedTag, size_t expectedTagLength, const char** value, size_t* valueLength, XmlParserPosition* xmlParserPosition, bool generateErrors) +{ + const char* tag; + size_t tagLength; + + *xmlParserPosition = getPosition(); + bool b = getSimpleTag(&tag, &tagLength, value, valueLength, expectedTag, generateErrors); + if ( !b ) return false; + if ( !strnnIsEqualIC(tag, tagLength, expectedTag, expectedTagLength) ) { + addXmlError(generateErrors, S8Printf("Expecting a <%s> at line %d col %d", expectedTag, (*xmlParserPosition).line, (*xmlParserPosition).col)); + return false; + } +// if ( *valueLength == 0 ) { +// return false; +// // todo Msg +// } +// if ( **value == '#' ) { +// b = skipNextTag(); +// if ( !b ) return false; +// return getSimpleTagValue(expectedTag, expectedTagLength, value, valueLength, xmlParserPosition, generateErrors); +// } + return true; +} + + +bool XmlLiteParser::getKeyTagValue(const char** value, size_t* valueLength, XmlParserPosition* xmlParserPosition, bool generateErrors) +{ + const char* tag; + size_t tagLength; + + *xmlParserPosition = getPosition(); + bool b = getSimpleTag(&tag, &tagLength, value, valueLength, "key", generateErrors); + if ( !b ) { + currentPos = *xmlParserPosition; + return false; + } + // I think the following cannot happen anymore... + if ( !strnIsEqualIC(tag, tagLength, "key") ) { + addXmlError(generateErrors, S8Printf("Expecting a at line %d col %d", (*xmlParserPosition).line, (*xmlParserPosition).col)); + currentPos = *xmlParserPosition; + return false; + } +// if ( *valueLength == 0 ) { +// if ( generateErrors ) addWarning(S8Printf("Expecting text for key tag at line %d col %d. SKipped\n", (*xmlParserPosition).line, (*xmlParserPosition).col)); +// b = skipNextTag(); +// if ( !b ) return false; +// return getKeyTagValue(value, valueLength, xmlParserPosition, generateErrors); +// } +// if ( **value == '#' ) { +// b = skipNextTag(); +// if ( !b ) return false; +// return getKeyTagValue(value, valueLength, xmlParserPosition, generateErrors); +// } + return true; +} + + +bool XmlLiteParser::consumeOpeningTag(const char* expectedTag, bool generateErrors) +{ + const char* tag; + size_t length; + bool isOpeningTag, isClosingTag; + + auto pos = currentPos; + + RETURN_IF_FALSE ( getNextTag(&tag, &length, &isOpeningTag, &isClosingTag, generateErrors) ); + + if ( !strnIsEqual(tag, length, expectedTag) ) { + addXmlError(generateErrors, S8Printf("Expecting tag '%s' at line %d.", expectedTag, pos.getLine())); + currentPos = pos; + return false; + } + if ( isClosingTag ) { + addXmlError(generateErrors, S8Printf("Expecting opening tag '%s' at line %d.", expectedTag, pos.getLine())); + currentPos = pos; + return false; + } + return true; +} + +bool XmlLiteParser::consumeClosingTag(const char* expectedTag, bool generateErrors) +{ + const char* tag; + size_t length; + bool isOpeningTag, isClosingTag; + + auto pos = currentPos; + + RETURN_IF_FALSE ( getNextTag(&tag, &length, &isOpeningTag, &isClosingTag, generateErrors) ); + + if ( !strnIsEqual(tag, length, expectedTag) ) { + addXmlError(true, S8Printf("Expecting tag '%s' at line %d.", expectedTag, pos.getLine())); + return false; + } + if ( isOpeningTag ) { + addXmlError(true, S8Printf("Expecting closing tag '%s' at line %d.", expectedTag, pos.getLine())); + return false; + } + return true; +} + +bool XmlLiteParser::nextTagIsOpeningTag(const char* expectedTag) +{ + const char* tag; + size_t length; + bool isOpeningTag, isClosingTag; + + XmlParserPosition pos = getPosition(); + RETURN_IF_FALSE ( getNextTag(&tag, &length, &isOpeningTag, &isClosingTag, false) ); + restorePosition(pos); + + if ( !strnIsEqual(tag, length, expectedTag) ) return false; + if ( isClosingTag ) return false; + return true; +} + +bool XmlLiteParser::nextTagIsClosingTag(const char* expectedTag) +{ + const char* tag; + size_t length; + bool isOpeningTag, isClosingTag; + + XmlParserPosition pos = getPosition(); + RETURN_IF_FALSE ( getNextTag(&tag, &length, &isOpeningTag, &isClosingTag, false) ); + restorePosition(pos); + + if ( !strnIsEqual(tag, length, expectedTag) ) return false; + if ( isOpeningTag ) return false; + return true; +} + diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteParser.h b/rEFIt_UEFI/cpp_lib/XmlLiteParser.h new file mode 100755 index 000000000..7ccd6d118 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteParser.h @@ -0,0 +1,180 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#ifndef __XML_LITE_H__ +#define __XML_LITE_H__ + +#include "../cpp_foundation/XStringArray.h" +#include "../cpp_lib/XmlLiteSimpleTypes.h" +#include "../cpp_lib/XmlLiteParser.h" + +bool strnnIsEqual(const char* key, size_t keyLength, const char* value, size_t valueLength); +bool strnIsEqual(const char* key, size_t keyLength, const char* value); +bool strnnIsEqualIC(const char* key, size_t keyLength, const char* value, size_t valueLength); +bool strnIsEqualIC(const char* key, size_t keyLength, const char* value); + +class XmlParserMessage +{ + public: + bool isError = true; + XString8 msg; + XmlParserMessage(bool _isError, const XString8& _msg) : isError(_isError), msg(_msg) {}; +}; + +class XmlLiteParser; + +class XmlParserPosition +{ + friend class XmlLiteParser; + +public: + char* p; + int line; +protected: + int col; +public: + + XmlParserPosition() : p(NULL), line(1), col(1) {}; + XmlParserPosition(char* _p) : p(_p), line(1), col(1) {}; + + int getLine() const { return line; } + int getCol() const { return col; } + + bool operator == (const XmlParserPosition& other) const { + return p == other.p; + } +}; + +class XmlLiteParser +{ + friend class XmlParserPosition; + + char* p_start = NULL; + char* p_end = NULL; + XmlParserPosition currentPos = XmlParserPosition(); + XObjArray errorsAndWarnings = XObjArray(); + + bool AddErrorOrWarning(XmlParserMessage* msg) { + if ( errorsAndWarnings.size() < 500 ) errorsAndWarnings.AddReference(msg, true); + if ( errorsAndWarnings.size() == 500 ) errorsAndWarnings.AddReference(new XmlParserMessage(true, "Too many error. Stopping"_XS8), true); + return false; + } +public: + bool xmlParsingError = false; + + XmlLiteParser() {}; + XmlLiteParser(char* _p) : p_start(_p) + { + p_end = p_start + strlen(p_start); + }; + XmlLiteParser(const XmlLiteParser&) = delete; + XmlLiteParser& operator = (const XmlLiteParser&) = delete; + + void init(const char* buf, size_t size); + void init(const char* buf) { init(buf, strlen(buf)); }; + + int getLine() { return currentPos.line; } + int getCol() { return currentPos.col; } + XObjArray& getErrorsAndWarnings() { return errorsAndWarnings; } + // Add warning, error and xml error always return false so you can return addWarning(...) from validate function + bool addWarning(bool generateErrors, const XString8& warning) { if ( generateErrors ) AddErrorOrWarning(new XmlParserMessage(false, warning)); return false; } + bool addError(bool generateErrors, const XString8& warning) { if ( generateErrors ) AddErrorOrWarning(new XmlParserMessage(true, warning)); return false; } + // Xml stuctural error. Parsing should probably stop. + bool addXmlError(bool generateErrors, const XString8& warning) { + if ( generateErrors ) {xmlParsingError = true; AddErrorOrWarning(new XmlParserMessage(true, warning));} + return false; + } + void printfErrorsAndWarnings() { + for ( size_t idx = 0 ; idx < getErrorsAndWarnings().size() ; idx++ ) { + printf("%s: %s\n", getErrorsAndWarnings()[idx].isError ? "Error" : "Warning", getErrorsAndWarnings()[idx].msg.c_str()); + } + } + + XmlParserPosition getPosition(); + void restorePosition(XmlParserPosition& xml_position); + + bool isEof() const { return currentPos.p >= p_end; } + char getchar(); + char* getcharPtr() { return currentPos.p; }; + + char moveForward(); + char moveForward(int n); + char moveBackward(); + char moveForwardUntil(char until); + char moveBackwardUntil(char until); + char moveForwardPastNext(char until); + + char moveForwardUntilSignificant(); + char moveBackwardUntilSignificant(); + + void skipHeader(); + /* + * The opening tag has been read. Skip until the closing tag + */ + bool skipUntilClosingTag(const char* tagToSkip, size_t tagToSkipLength, bool generateErrors); + bool skipNextTag(bool generateErrors); + + + + /* + * Get the string from current position until the next '<', or end of buffer. + * Spaces at begining or end are skipped. + * If current char is '<', empty string is returned. (*string=NULL and *length=0). + * If current char is '/', empty string is returned. This is because getNextTag leaves to pinter to the '/' for empty tag. + * If no '<', false is returned. + * Position at the '<' when exit. + */ + void getString(const char** string, size_t* length); + + /* + * Get the next tag, either opening or closing tag. + * For empty tag (), first call return that it's an opening tag. Second call return that it's a closing tag. + */ + bool getNextTag(const char** tag, size_t* length, bool* isOpeningTag, bool* isClosingTag, bool generateErrors); + bool getSimpleTag(const char** tag, size_t* tagLength, const char** value, size_t* valueLength, const char* expectedTag/*, bool valueCanBeEmpty*/, bool generateErrors); + + bool getSimpleTagValue(const char* tag, size_t tagLength, const char** value, size_t* valueLength, XmlParserPosition* xmlParserPosition, bool generateErrors); + + /* + * Get the next tag, check it's a key, get the value and consume the closing tag ("
"). + */ + bool getKeyTagValue(const char** value, size_t* valueLength, XmlParserPosition* xmlParserPosition, bool generateErrors); + + /* + * Check and consume the tag + * Returns true if it's the expected opening tag + * Returns false, add error in error list and don't change position if it's not + */ + bool consumeOpeningTag(const char* expectedTag, bool generateErrors = true); + + /* + * Check and consume the tag + * Returns true if it's the expected closing tag + * Returns false, add error in error list and don't change position if it's not + */ + bool consumeClosingTag(const char* expectedTag, bool generateErrors); + + /* + * Check but do NOT consume the tag + * Returns true if it's the expected opening tag + * Returns false, DO NOT add error in error list and don't change position if it's not + */ + bool nextTagIsOpeningTag(const char* expectedTag); + bool nextTagIsClosingTag(const char* expectedTag); + +// bool getTagBool(XmlBool* XmlBoolean); + + +}; + + +#define RETURN_IF_FALSE(Expression) do { bool b = Expression; if ( !b ) return false; } while (0); + + + +#endif // __XML_LITE_H__ + diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.cpp new file mode 100644 index 000000000..ede8f8701 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.cpp @@ -0,0 +1,555 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "XmlLiteSimpleTypes.h" +#include "XmlLiteParser.h" +#include "../Platform/plist/xml.h" +#include "../Platform/Utils.h" + +NullXmlType nullXmlType; + +#define RETURN_IF_FALSE(Expression) do { bool b = Expression; if ( !b ) return false; } while (0); + +const XmlStrictBool::ValueType XmlStrictBool::nullValue = XmlStrictBool::ValueType(); + +bool XmlStrictBool::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + +#ifdef JIEF_DEBUG +if ( xmlPath == "/Boot/XMPDetection"_XS8 ) { + int i=0; (void)i; +} +#endif + XmlParserPosition pos = xmlLiteParser->getPosition(); + if ( !xmlLiteParser->nextTagIsOpeningTag("string") && !xmlLiteParser->nextTagIsOpeningTag("true") && !xmlLiteParser->nextTagIsOpeningTag("false") ) { + if ( xmlLiteParser->skipNextTag(generateErrors) ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + }else{ + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + } + return false; + } + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqualIC(tag, tagLength, "true") ) { + if ( valueLength == 0 ) return setBoolValue(true); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'true' cannot contains text at line %d.", pos.getLine())); + }else + if ( strnIsEqualIC(tag, tagLength, "false") ) { + if ( valueLength == 0 ) return setBoolValue(false); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'false' cannot contains text at line %d.", pos.getLine())); + } + xmlLiteParser->addError(generateErrors, S8Printf("Expecting strict boolean value for tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return false; +} + +bool XmlBool::isTheNextTag(XmlLiteParser* xmlLiteParser) +{ + XmlParserPosition pos = xmlLiteParser->getPosition(); + // Because we currently accept string tag as boolean, we have to parse to see if it can be a bool. We can't just check the next tag. + // Use a temporary variable. TODO improve by separating parsing and storage (ie Do not call setBoolValue in parseFromXmlLite(). + XmlBool xmlBool; + bool b = xmlBool.parseFromXmlLite(xmlLiteParser, NullXString8, false); + xmlLiteParser->restorePosition(pos); + return b; +} + +bool XmlBool::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + +#ifdef JIEF_DEBUG +if ( xmlPath.containsIC("/Debug"_XS8) ) { + int i=0; (void)i; +} +#endif + XmlParserPosition pos = xmlLiteParser->getPosition(); + if ( !xmlLiteParser->nextTagIsOpeningTag("string") && !xmlLiteParser->nextTagIsOpeningTag("true") && !xmlLiteParser->nextTagIsOpeningTag("false") ) { + if ( xmlLiteParser->skipNextTag(generateErrors) ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + }else{ + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + } + return false; + } + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqualIC(tag, tagLength, "true") ) { +// if ( valueLength == 0 ) return setBoolValue(true, xmlLiteParser, xmlPath, pos, generateErrors); + if ( valueLength == 0 ) return setBoolValue(true); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'true' cannot contains text at line %d.", pos.getLine())); + }else + if ( strnIsEqualIC(tag, tagLength, "false") ) { + if ( valueLength == 0 ) return setBoolValue(false); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'false' cannot contains text at line %d.", pos.getLine())); + }else + if ( strnIsEqual(tag, tagLength, "string") ) { + if ( strnIsEqualIC(value, valueLength, "true") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Boolean value contained in a string. Please use instead of true for tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return setBoolValue(true); + }else + if ( strnIsEqualIC(value, valueLength, "yes") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Boolean value contained in a string. Please use instead of yes for tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return setBoolValue(true); + }else + if ( strnIsEqualIC(value, valueLength, "false") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Boolean value contained in a string. Please use instead of false for tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return setBoolValue(false); + }else + if ( strnIsEqualIC(value, valueLength, "no") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Boolean value contained in a string. Please use instead of no for tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return setBoolValue(false); + } + } + xmlLiteParser->addError(generateErrors, S8Printf("Expecting or tag containing true, false, yes or no tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return false; +} + + +bool XmlBoolYesNo::isTheNextTag(XmlLiteParser* xmlLiteParser) +{ + XmlParserPosition pos = xmlLiteParser->getPosition(); + // Because we currently accept string tag as boolean, we have to parse to see if it can be a bool. We can't just check the next tag. + // Use a temporary variable. TODO improve by separating parsing and storage (ie Do not call setBoolValue in parseFromXmlLite(). + XmlBoolYesNo xmlBool; + bool b = xmlBool.parseFromXmlLite(xmlLiteParser, NullXString8, false); + xmlLiteParser->restorePosition(pos); + return b; +} + +bool XmlBoolYesNo::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + +#ifdef JIEF_DEBUG +if ( xmlPath.containsIC("/Debug"_XS8) ) { + int i=0; (void)i; +} +#endif + XmlParserPosition pos = xmlLiteParser->getPosition(); + if ( !xmlLiteParser->nextTagIsOpeningTag("string") && !xmlLiteParser->nextTagIsOpeningTag("true") && !xmlLiteParser->nextTagIsOpeningTag("false") ) { + if ( xmlLiteParser->skipNextTag(generateErrors) ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + }else{ + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting boolean value at line %d.", pos.getLine())); + } + return false; + } + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqualIC(tag, tagLength, "true") ) { +// if ( valueLength == 0 ) return setBoolValue(true, xmlLiteParser, xmlPath, pos, generateErrors); + if ( valueLength == 0 ) return setBoolValue(true); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'true' cannot contains text at line %d.", pos.getLine())); + }else + if ( strnIsEqualIC(tag, tagLength, "false") ) { + if ( valueLength == 0 ) return setBoolValue(false); + xmlLiteParser->addError(generateErrors, S8Printf("Tag 'false' cannot contains text at line %d.", pos.getLine())); + }else + if ( strnIsEqual(tag, tagLength, "string") ) { + if ( strnIsEqualIC(value, valueLength, "true") ) { + return setBoolValue(true); + }else + if ( strnIsEqualIC(value, valueLength, "yes") ) { + return setBoolValue(true); + }else + if ( strnIsEqualIC(value, valueLength, "false") ) { + return setBoolValue(false); + }else + if ( strnIsEqualIC(value, valueLength, "no") ) { + return setBoolValue(false); + } + } + xmlLiteParser->addError(generateErrors, S8Printf("Expecting or tag containing true, false, yes or no tag '%s:%d'", xmlPath.c_str(), pos.getLine())); + return false; +} + + + +bool XmlString8::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + +#ifdef JIEF_DEBUG +if ( xmlPath.contains("Theme") ) { + NOP; +} +if (xmlPath.containsIC("KextsToPatch[28]/Comment"_XS8) ) { + NOP; +} +#endif + XmlParserPosition pos = xmlLiteParser->getPosition(); + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqual(tag, tagLength, "string") ) { +#ifdef JIEF_DEBUG +if ( value && strcmp(value, "/SMBIOs") == 0 ) { + NOP; +} +#endif + char* out = (char*)malloc(valueLength+1); +#ifdef JIEF_DEBUG +//printf("parse1 : %llx, out=%s\n", uintptr_t(out), out); +if ( out && strcmp(out, "/SMBIOs") == 0 ) { + NOP; +} +//printf("parseFromXmlLite %s. XmlDecode(%s, %zu, %s, %lu)\n", xmlPath.c_str(), value, valueLength, out, valueLength+1); +#endif + XMLDecode(value, valueLength, out, valueLength+1); +#ifdef JIEF_DEBUG +//printf("parse2 : %llx, out=%s\n", uintptr_t(out), out); +if ( out && strcmp(out, "/SMBIOs") == 0 ) { + NOP; +} +#endif + return stealStringValue(out, valueLength+1); + } + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting a tag in '%s' at line %d.", xmlPath.c_str(), pos.getLine())); + return false; +} +const XmlString8::ValueType XmlString8::nullValue = XmlString8::ValueType(); + +bool XmlStringW::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + +#ifdef JIEF_DEBUG + if ( xmlPath.containsIC("/ACPI/DisabledAML") ) { + printf("%s", ""); + } +#endif + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + + XmlParserPosition pos = xmlLiteParser->getPosition(); + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqual(tag, tagLength, "string") ) { + char* out = (char*)malloc(valueLength+1); // Should we use a static buffer to speed up and minimize allocation/re-allocation ? + size_t outlen = XMLDecode(value, valueLength, out, valueLength+1); + setStringValue(out, outlen); + free(out); + return true; + } + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting a tag in '%s' at line %d.", xmlPath.c_str(), pos.getLine())); + return false; +} +const XmlStringW::ValueType XmlStringW::nullValue = XmlString8::ValueType(); + +const XmlKey::ValueType XmlKey::nullValue = XmlKey::ValueType(); + +// TODO only difference with XmlString8::parseFromXmlLite is paramter "key" instead of "string" +bool XmlKey::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const char** keyValuePtr, size_t* keyValueLengthPtr) +{ + WARNING_IF_DEFINED; + +#ifdef JIEF_DEBUG + if ( xmlPath.startWithOrEqualToIC("/Devices/Properties/Properties_key1") ) { + printf("%s", ""); + } +#endif + + const char* tag; + size_t tagLength; +// const char* _value; +// size_t _valueLength; +// if ( keyValuePtr == NULL ) keyValuePtr = &_value; +// if ( keyValueLengthPtr == NULL ) keyValueLengthPtr = &_valueLength; + + XmlParserPosition pos = xmlLiteParser->getPosition(); + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, keyValuePtr, keyValueLengthPtr, NULL, generateErrors) ); + if ( strnIsEqual(tag, tagLength, "key") ) return setStringValue(*keyValuePtr, *keyValueLengthPtr); + xmlLiteParser->addXmlError(generateErrors, S8Printf("Expecting a tag in '%s' at line %d.", xmlPath.c_str(), pos.getLine())); + return false; +} + +bool XmlKey::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + const char* _value; + size_t _valueLength; + return parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors, &_value, &_valueLength); +} + +#include "../Platform/b64cdecode.h" + +const XmlData::ValueType XmlData::nullValue = XmlData::ValueType(); + +bool XmlData::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + +#ifdef JIEF_DEBUG + if ( xmlPath.startWithOrEqualToIC("/KernelAndKextPatches/KernelToPatch[0]/Find") ) { + int i=0; (void)i; + } +#endif + + XmlParserPosition pos = xmlLiteParser->getPosition(); + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + if ( strnIsEqual(tag, tagLength, "string") ) { + size_t allocatedSize = valueLength/2; // number of hex digits + uint8_t *Data = (__typeof__(Data))malloc(allocatedSize); + size_t hexLen = hex2bin(value, valueLength, Data, allocatedSize); + return stealDataValue(Data, hexLen, allocatedSize); + } + if ( strnIsEqual(tag, tagLength, "data") ) { + UINTN decodedSize; + UINT8* decoded = Base64DecodeClover(value, valueLength, &decodedSize); + return stealDataValue(decoded, decodedSize); + } + xmlLiteParser->addError(generateErrors, S8Printf("Expecting a tag following key '%s' at line %d.", xmlPath.c_str(), pos.getLine())); + return false; +} + + +bool XmlIntegerAbstract::isTheNextTag(XmlLiteParser* xmlLiteParser) +{ + if ( xmlLiteParser->nextTagIsOpeningTag("integer") ) return true; + + XmlParserPosition pos = xmlLiteParser->getPosition(); + // Because we currently accept string tag containing an integer, we have to parse tosee if it can be an integer. + // Use a temporary variable. TODO improve by separating parsing and storage (ie Do not call setBoolValue in parseFromXmlLite(). + + UINTN result; + bool negative; + bool b = parseXmlInteger(xmlLiteParser, NullXString8, &result, &negative, INT64_MIN, UINT64_MAX, false); + xmlLiteParser->restorePosition(pos); + return b; +} + +/* + * Minimum is an absolute value. For a minium of -3, pass 3. + * Minimum can be a positive integer. It's possible to pass minimum=10 and maximum=15. + * Maximum can't be a negative integer. + */ +bool XmlIntegerAbstract::parseXmlInteger(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, UINTN* resultPtr, bool* negativePtr, INTN minimum, UINTN maximum, bool generateErrors) +{ + WARNING_IF_DEFINED; + + const char* tag; + size_t tagLength; + const char* value; + size_t valueLength; + + XmlParserPosition pos = xmlLiteParser->getPosition(); + RETURN_IF_FALSE( xmlLiteParser->getSimpleTag(&tag, &tagLength, &value, &valueLength, NULL, generateErrors) ); + + UINTN& result = *resultPtr; + bool& negative = *negativePtr; + bool atLeastOneDigit = false; + +#ifdef JIEF_DEBUG +if ( xmlPath.contains("CsrActiveConfig") ) { + int i=0; (void)i; +} +#endif + + if ( strnIsEqual(tag, tagLength, "integer") || strnIsEqual(tag, tagLength, "string") ) + { + result = 0; + negative = false; + + if( valueLength > 1 && (value[1] == 'x' || value[1] == 'X') ) { // Hex value + size_t idx = 2; + int digit; + while ( idx < valueLength ) { + if ( value[idx] >= '0' && value[idx] <= '9' ) { // 0 - 9 + digit = value[idx] - '0'; + atLeastOneDigit = true; + } + else if ( value[idx] >= 'a' && value[idx] <= 'f' ) { // a - f + digit = value[idx] - 'a' + 10; + atLeastOneDigit = true; + } + else if ( value[idx] >= 'A' && value[idx] <= 'F' ) { // A - F + digit =value[idx] - 'A' + 10; + atLeastOneDigit = true; + } + else { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting hex digits for tag '%s:%d'.", xmlPath.c_str(), pos.getLine())); + return false; + } + if ( result > UINT64_MAX/16) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + result *= 16; + if ( result > UINT64_MAX - (unsigned int)digit) { // safe cast, digit is >= 0 + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + result += (unsigned int)digit; // safe cast, digit is >= 0 + idx++; + } + if ( !atLeastOneDigit ) { + // Currently, Clover accepts 0x. // TODO: remove this in a near future ? + return true; + } + } + else + if ( valueLength >= 1 && ( (value[0] >= '0' && value[0] <= '9') || value[0] == '-' ) ) { // Decimal value + size_t idx = 0; + if (value[idx] == '-') { + negative = TRUE; + idx++; + } + for ( ; idx < valueLength; idx++) + { + int digit; + if (value[idx] < '0' || value[idx] > '9') { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting decimal digits for tag '%s:%d'.", xmlPath.c_str(), pos.getLine())); + return false; + } + atLeastOneDigit = true; + digit = value[idx] - '0'; + if ( result > UINT64_MAX/10 ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + result *= 10; + if ( result > UINT64_MAX - (unsigned int)digit ) { // safe cast, digit is >= 0 + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + result += (unsigned int)digit; // safe cast, digit is >= 0 + } + }else{ + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer starting with a decimal digit, a minus sign or '0x' for tag '%s:%d'.", xmlPath.c_str(), pos.getLine())); + return false; + } + if ( !atLeastOneDigit ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting at least one digit for integer for tag '%s:%d'.", xmlPath.c_str(), pos.getLine())); + return false; + } + if ( !negative ) { + if ( (minimum > 0 && result < (UINT64)minimum) || result > maximum ) { // safe cast, here, minimum is >= 0 + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + }else{ + // Number is negative and maximum is >= 0. So no need to test maximum. + if ( result > UINT64(INT64_MAX)+1 || -((INT64)result) < minimum ) { + xmlLiteParser->addError(generateErrors, S8Printf("Expecting an integer between %lld and %llu for tag '%s:%d'.", minimum, maximum, xmlPath.c_str(), pos.getLine())); + return false; + } + } + if ( negative && result == 0 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Integer is -0. It's mathematically correct but looks like a mistake for tag '%s:%d'. Corrected to 0.", xmlPath.c_str(), pos.getLine())); + negative = false; + } + }else + if ( strnIsEqual(tag, tagLength, "data") ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Tag '%s:%d' should be an integer. It's currently a data. For now, I've made the conversion. Please update.", xmlPath.c_str(), pos.getLine())); + UINTN decodedSize; + UINT8* decoded = Base64DecodeClover(value, valueLength, &decodedSize); + if ( decoded ) { + if (decodedSize > sizeof(result) ) decodedSize = sizeof(result); + result = 0; + CopyMem(&result, decoded, decodedSize); // decodedSize can be < 8 bytes, but that works because of litlle endian. + FreePool(decoded); + }else{ + xmlLiteParser->addWarning(generateErrors, S8Printf("Tag '%s:%d' should be an integer. It's currently a data with conversion problem. Setting value to 0.", xmlPath.c_str(), pos.getLine())); + result = 0; + } + }else{ + xmlLiteParser->addError(generateErrors, S8Printf("Expecting a tag following key '%s' for tag '%s:%d'.", xmlPath.c_str(), xmlPath.c_str(), pos.getLine())); + return false; + } + if ( strnIsEqual(tag, tagLength, "string") ) { +// xmlLiteParser->addWarning(generateErrors, S8Printf("Tag '%s:%d' should be an integer. It's currently a string. For now, I've made the conversion. Please update.", xmlPath.c_str(), pos.getLine())); + } + return true; +} + + +bool XmlUInt8::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, 0, UINT8_MAX, generateErrors) ); + return setUInt8Value(value, sign); +} + +bool XmlUInt16::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, 0, UINT16_MAX, generateErrors) ); + return setUInt16Value(value, sign); +} + +bool XmlUInt32::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, 0, UINT32_MAX, generateErrors) ); + return setUInt32Value((uint32_t)value, sign); +} + +bool XmlUInt64::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, 0, UINT64_MAX, generateErrors) ); + return setUInt64Value(value, sign); +} + +bool XmlInt8::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, INT8_MIN, INT8_MAX, generateErrors) ); + return setInt8Value(value, sign); +} + +bool XmlInt16::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, INT16_MIN, INT16_MAX, generateErrors) ); + return setInt16Value(value, sign); +} + +bool XmlInt32::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, INT32_MIN, INT32_MAX, generateErrors) ); + return setInt32Value((int32_t)value, sign); +} + +bool XmlInt64::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + UINTN value; + bool sign; + RETURN_IF_FALSE( parseXmlInteger(xmlLiteParser, xmlPath, &value, &sign, INT64_MIN, INT64_MAX, generateErrors) ); + return setInt64Value(value, sign); +} diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.h b/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.h new file mode 100644 index 000000000..eb9e82407 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteSimpleTypes.h @@ -0,0 +1,485 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#ifndef CPP_LIB_XML_TYPES_H_ +#define CPP_LIB_XML_TYPES_H_ + +#ifndef NOP +#define NOP do { int i=0 ; (void)i; } while (0) // for debugging +#endif + + +#include "../cpp_foundation/XBuffer.h" +#include "../cpp_foundation/XObjArray.h" +#include "../cpp_foundation/XToolsCommon.h" + +#include "XmlLiteParser.h" + +static inline void WARNING_IF_DEFINED_breakpoint() +{ + (void)0; +} + +#define WARNING_IF_DEFINED \ + do { \ + if ( isDefined() ) { \ + WARNING_IF_DEFINED_breakpoint(); \ + xmlLiteParser->addWarning(true, S8Printf("Tag '%s:%d' is already defined. Previous value ignored.", xmlPath.c_str(), xmlLiteParser->getLine())); \ + reset(); \ + } \ + } while (0); \ + + +class XmlAbstractType +{ +private: + bool m_isDefined; + +public: + XmlAbstractType() : m_isDefined(false) {}; + virtual ~XmlAbstractType() {}; + + virtual const char* getDescription() = 0; + virtual void setDefined() { + if ( m_isDefined ) { + panic("m_isDefined"); + } + m_isDefined = true; + }; + virtual bool isDefined() const { return m_isDefined; }; + virtual void reset() { m_isDefined = false; }; + + virtual bool isKey() const { return false; } + virtual const XString8& getKey() const { return NullXString8; } +// virtual void setKey(const char* keyValue, size_t keyValueLength) {}; + + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) = 0; + /* + * Parse just get the tag and value and translate it to the underlying representation. + * Return false if there is a parsing problem. + * If it's a structural XML problem, xmlLiteParser::xmlParsingError is set to true. In that case, parsing must stop. + * If xmlLiteParser::xmlParsingError is false, the problem is with the content of the tag (for example alpha chars in integer tag). + * In that case, ignoring the tag and trying to continue is possible. + * It MUST NOT call validate. + */ + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) = 0; + + /* + * Validate the value. Intended for subclasser. + * Return false if value is not accepted. + */ + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) { (void)xmlLiteParser; (void)xmlPath; (void)keyPos; (void)generateErrors; return true; }; + +}; + +class NullXmlType : public XmlAbstractType +{ + virtual const char* getDescription() override { return "null"; }; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override { (void)xmlLiteParser; (void)xmlPath; (void)generateErrors; panic("NullXmlType : can't call parseFromXmlLite"); }; + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { (void)xmlLiteParser; return false; }; +}; + +extern NullXmlType nullXmlType; + +class XmlStrictBool : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + using ValueType = bool; + static const ValueType nullValue; +protected: + bool booll = false; +public: + XmlStrictBool() : super() {}; + XmlStrictBool(bool b) : booll(b) { /*if (b) b = 1;*/ } + + virtual void reset() override { super::reset(); booll = 0; }; + virtual const char* getDescription() override { return "boolean"; }; + + const bool& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return booll; } + + bool setBoolValue(bool b) { setDefined(); booll = b; return true; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("true") || xmlLiteParser->nextTagIsOpeningTag("false"); }; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlBool : public XmlStrictBool +{ + using super = XmlStrictBool; +public: + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override; +}; + + +class XmlBoolYesNo : public XmlStrictBool +{ + using super = XmlBoolYesNo; +public: + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override; +}; + + + +class XmlString8 : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + using ValueType = XString8; + static const ValueType nullValue; + +protected: + bool canBeEmpty = false; + ValueType xstring8 = ValueType(); + +public: + XmlString8() : super() {}; + XmlString8(bool _canBeEmpty) : super(), canBeEmpty(_canBeEmpty) {}; + virtual ~XmlString8() {}; + + virtual const char* getDescription() override { return "string"; }; + virtual void reset() override { + super::reset(); xstring8.setEmpty(); + }; + +// ValueType& value() { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return xstring8; } + virtual const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return xstring8; } + + virtual bool setStringValue(const ValueType& _value) { setDefined(); xstring8 = _value; return true; } + virtual bool setStringValue(const char* s, size_t size) { setDefined(); xstring8.strsicpy(s, size); return true; } + virtual bool stealStringValue(char* s, size_t size) { setDefined(); xstring8.stealValueFrom(s, size); return true; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("string"); } + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + // TODO validate !_canBeEmpty + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { +#ifdef JIEF_DEBUG +if (xmlPath.containsIC("BoardSerialNumber"_XS8) ) { + NOP; +} +#endif + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !canBeEmpty && xstring8.isEmpty() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("String cannot be empty for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } + +// operator const XString8& () const { return xstring8; }; +}; + +class XmlStringW : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + using ValueType = XStringW; + static const ValueType nullValue; + +protected: + bool canBeEmpty = false; + XStringW xstringW = ValueType(); + +public: + XmlStringW() : super() {}; + XmlStringW(bool _canBeEmpty) : super(), canBeEmpty(_canBeEmpty) {}; + virtual ~XmlStringW() {}; + + virtual const char* getDescription() override { return "string"; }; + virtual void reset() override { super::reset(); xstringW.setEmpty(); }; + + virtual const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return xstringW; } + virtual bool setStringValue(const char* s, size_t size) { setDefined(); xstringW.strsicpy(s, size); return true; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("string"); } + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + // TODO validate !_canBeEmpty + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !canBeEmpty && xstringW.isEmpty() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("String cannot be empty for tag '%s:%d'.", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } + + operator const XStringW& () const { return xstringW; }; +}; + +class XmlString8AllowEmpty : public XmlString8 +{ + using super = XmlString8; +public: + XmlString8AllowEmpty() : super(true) {}; +}; + +class XmlString8Trimed : public XmlString8 +{ + using super = XmlString8; +public: + XmlString8Trimed() : super(false) {}; + XmlString8Trimed(bool allowEmpty) : super(allowEmpty) {}; + virtual bool setStringValue(const char* s, size_t size) override { setDefined(); xstring8.strsicpy(s, size); xstring8.trim(); return true; } +}; + +class XmlKey : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + using ValueType = XString8; + static const ValueType nullValue; + + ValueType xstring8 = ValueType(); + +public: + XmlKey() : super() {}; + ~XmlKey() {}; + + virtual const char* getDescription() override { return "key"; }; + virtual void reset() override { super::reset(); xstring8.setEmpty(); }; + + virtual bool isKey() const override { return true; } + virtual const XString8& getKey() const override { return value(); } + + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return xstring8; } + + virtual bool setStringValue(const char* s, size_t size) { setDefined(); xstring8.strsicpy(s, size); return true; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("key"); } + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors, const char** keyValuePtr, size_t* keyValueLengthPtr); + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( xstring8.isEmpty() ) return false; + return true; + } + + operator const XString8& () const { return xstring8; }; +}; + +class XmlKeyDisablable : public XmlKey +{ + using super = XmlKey; +protected: + bool Disabled = false; +public: + XmlKeyDisablable() : super() {}; + ~XmlKeyDisablable() {}; + + virtual void reset() override { super::reset(); Disabled = false; }; + + virtual const char* getDescription() override { return "key(dis)"; }; + + bool isDisabled() const { return Disabled; } + bool isEnabled() const { return !Disabled; } + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return xstring8; } + + virtual bool setStringValue(const char* s, size_t size) override { + setDefined(); + if ( size > 0 && s[0] == '!' ) { + xstring8.strsicpy(s+1, size-1); + Disabled = true; + } else { + xstring8.strsicpy(s, size); + } + return true; + } + +// virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( xstring8.isEqual("!") ) return false; // it's an empty disabled key + return true; + } + + operator const XString8& () const { return xstring8; }; +}; + +/* +* If it's a string tag, the content of the string is put as is in the XBuffer. +* If it's a data tag, data are base64 decoded before being put in XBuffer. +*/ +class XmlData : public XmlAbstractType +{ + using super = XmlAbstractType; +public: + using ValueType = XBuffer; + static const ValueType nullValue; +protected: + ValueType m_value = ValueType(); +public: + + XmlData() : super() {}; + + virtual const char* getDescription() override { return "data"; }; + virtual void reset() override { super::reset(); m_value.setEmpty(); }; + + ValueType& modifiableValue() { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return m_value; } + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return m_value; } + + bool setDataValue(const uint8_t* s, size_t size) { setDefined(); m_value.ncpy(s, size); return true; } + bool stealDataValue(uint8_t* s, size_t size) { setDefined(); m_value.stealValueFrom(s, size); return true; } + bool stealDataValue(uint8_t* s, size_t size, size_t allocatedSize) { setDefined(); m_value.stealValueFrom(s, size, allocatedSize); return true; } + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override { return xmlLiteParser->nextTagIsOpeningTag("string") || xmlLiteParser->nextTagIsOpeningTag("data"); } + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlIntegerAbstract : public XmlAbstractType +{ +public: + bool isTheNextTag(XmlLiteParser* xmlLiteParser) override; + bool parseXmlInteger(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, UINTN* result, bool* negative, INTN minimum, UINTN maximum, bool generateErrors); +}; + +template +class XmlInteger : public XmlIntegerAbstract +{ + using super = XmlIntegerAbstract; + public: + using ValueType = IntegralType; + static const ValueType nullValue; + protected: + ValueType m_value = 0; + + public: + // these method are public for unit tests. + // Do NOT instanciate XmlInteger + // Do NOT call these methods directly. + XmlInteger() : super() {}; + virtual ~XmlInteger() {}; + + virtual void reset() override { super::reset(); m_value = 0; }; + + const ValueType& value() const { if ( !isDefined() ) panic("%s : value is not defined", __PRETTY_FUNCTION__); return m_value; } + +// bool parseXmlInteger(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, UINTN* result, bool* negative, INTN minimum, UINTN maximum, bool generateErrors); +}; +template +const typename XmlInteger::ValueType XmlInteger::nullValue = typename XmlInteger::ValueType(); + +class XmlUInt8 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlUInt8() : super() {}; + + virtual const char* getDescription() override { return "uint8"; }; + + bool setUInt8Value(ValueType ui8) { setDefined(); m_value = ui8; return true; } + bool setUInt8Value(ValueType value, bool sign) { if ( sign ) return setUInt8Value(-value); else setUInt8Value(value); return true; } +// bool setUInt8Value(uint8_t value, bool sign, XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) { +// setUInt8Value(value, sign); +// return validate(xmlLiteParser, xmlPath, pos, generateErrors); +// } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlInt8 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlInt8() : super() {}; + + virtual const char* getDescription() override { return "int8"; }; + + bool setInt8Value(int8_t i8) { setDefined(); m_value = i8; return true; } + bool setInt8Value(int8_t value, bool sign) { if ( sign ) return setInt8Value(-value); else setInt8Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlUInt16 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlUInt16() : super() {}; + + virtual const char* getDescription() override { return "uint16"; }; + + bool setUInt16Value(uint16_t ui16) { setDefined(); m_value = ui16; return true; } + bool setUInt16Value(uint16_t value, bool sign) { if ( sign ) return setUInt16Value(-value); else setUInt16Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlInt16 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlInt16() : super() {}; + + virtual const char* getDescription() override { return "unt16"; }; + + bool setInt16Value(uint16_t ui16) { setDefined(); m_value = ui16; return true; } + bool setInt16Value(uint16_t value, bool sign) { if ( sign ) return setInt16Value(-value); else setInt16Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlUInt32 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlUInt32() : super() {}; + + virtual const char* getDescription() override { return "uint32"; }; + + bool setUInt32Value(uint32_t ui32) { setDefined(); m_value = ui32; return true; } + bool setUInt32Value(uint32_t value, bool sign) { if ( sign ) return setUInt32Value(-value); else setUInt32Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlInt32 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlInt32() : super() {}; + + virtual const char* getDescription() override { return "int32"; }; + + bool setInt32Value(int32_t i32) { setDefined(); m_value = i32; return true; } + bool setInt32Value(uint32_t value, bool sign) { if ( sign ) return setInt32Value(-value); else setInt32Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlUInt64 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlUInt64() : super() {}; + + virtual const char* getDescription() override { return "uint64"; }; + + bool setUInt64Value(uint64_t ui64) { setDefined(); m_value = ui64; return true; } + bool setUInt64Value(UINTN value, bool sign) { if ( sign ) return setUInt64Value(-value); else setUInt64Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + +class XmlInt64 : public XmlInteger +{ + using super = XmlInteger; +public: + XmlInt64() : super() {}; + + virtual const char* getDescription() override { return "int64"; }; + + bool setInt64Value(int64_t i64) { setDefined(); m_value = i64; return true; } + bool setInt64Value(UINTN value, bool sign) { if ( sign ) return setInt64Value(-value); else setInt64Value(value); return true; } + + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; +}; + + +#endif /* CPP_LIB_XML_TYPES_H_ */ diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.cpp b/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.cpp new file mode 100644 index 000000000..db951defe --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.cpp @@ -0,0 +1,88 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "XmlLiteUnionTypes.h" + + +void XmlUnion::reset() +{ + XmlUnionSuper::reset(); + XmlUnionField* fields; + size_t nb; + getFields(&fields, &nb); + if ( nb == 0 ) panic("XmlUnion::reset() : no field defined"); + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + XmlUnionField& xmlUnionField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlUnionField.xmlAbstractType; + xmlAbstractType.reset(); + } +} + +bool XmlUnion::isTheNextTag(XmlLiteParser* xmlLiteParser) +{ + XmlUnionField* fields; + size_t nb; + getFields(&fields, &nb); + if ( nb == 0 ) panic("XmlUnion::reset() : no field defined"); + + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + XmlUnionField& xmlUnionField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlUnionField.xmlAbstractType; + if ( xmlAbstractType.isTheNextTag(xmlLiteParser) ) return true; + } + return false; +} + +bool XmlUnion::parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) +{ + XmlParserPosition pos = xmlLiteParser->getPosition(); +#ifdef JIEF_DEBUG +if ( xmlPath == "/Boot/XMPDetection"_XS8 ) { + int i=0; (void)i; +} +#endif + + XmlUnionField* fields; + size_t nb; + getFields(&fields, &nb); + if ( nb == 0 ) panic("XmlUnion::parseFromXmlLite() : no field defined"); + + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + XmlUnionField& xmlUnionField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlUnionField.xmlAbstractType; + if ( xmlAbstractType.isTheNextTag(xmlLiteParser) ) { + if ( xmlAbstractType.parseFromXmlLite(xmlLiteParser, xmlPath, generateErrors) ) { + setDefined(); + return true; + } + return false; + }else{ + } + } + xmlLiteParser->addError(generateErrors, S8Printf("Expecting %s for tag '%s:%d'", getDescription(), xmlPath.c_str(), pos.getLine())); + return false; +} + +bool XmlUnion::validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& pos, bool generateErrors) +{ + XmlUnionField* fields; + size_t nb; + getFields(&fields, &nb); + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + XmlUnionField& xmlUnionField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlUnionField.xmlAbstractType; + if ( xmlAbstractType.isDefined() && !xmlAbstractType.validate(xmlLiteParser, xmlPath, pos, generateErrors) ) { + return false; + } + } + return true; +} + + + + + diff --git a/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.h b/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.h new file mode 100644 index 000000000..5454ce8b0 --- /dev/null +++ b/rEFIt_UEFI/cpp_lib/XmlLiteUnionTypes.h @@ -0,0 +1,189 @@ +/* + * + * Copyright (c) 2020 Jief + * All rights reserved. + * + */ + +#include "../cpp_foundation/XToolsCommon.h" + +#ifndef XmlLiteUnionTypes_h +#define XmlLiteUnionTypes_h + +#include +#include "XmlLiteSimpleTypes.h" +#include "XmlLiteUnionTypes.h" + +/* + * "Union" here means, a bit like in C : it's one and only one of the defined fields. + */ +class XmlUnionField +{ +public: + XmlAbstractType& xmlAbstractType; + XmlUnionField(XmlAbstractType& XmlAbstractType) : xmlAbstractType(XmlAbstractType) {}; +}; + + +#define XmlUnionSuper XmlAbstractType +class XmlUnion : public XmlUnionSuper +{ +protected: + XString8 description = XString8(); +public: + XmlUnion() : XmlUnionSuper() {}; + ~XmlUnion() {}; + + virtual const char* getDescription() override { + XmlUnionField* fields; + size_t nb; + getFields(&fields, &nb); + if ( nb == 0 ) panic("nb==0"); + for ( size_t idx = 0 ; idx < nb ; idx++ ) { + if ( idx > 0 ) description += '|'; + XmlUnionField& xmlUnionField = fields[idx]; + XmlAbstractType& xmlAbstractType = xmlUnionField.xmlAbstractType; + description += xmlAbstractType.getDescription(); + } + return description.c_str(); + }; + virtual void getFields(XmlUnionField** fields, size_t* nb) = 0; + + virtual void reset() override; + + virtual bool isTheNextTag(XmlLiteParser* xmlLiteParser) override; + virtual bool parseFromXmlLite(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, bool generateErrors) override; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override; +}; + + + + +/*----------------------------------------------- Some predefined unions */ + +class XmlBoolOrString : public XmlUnion +{ + using super = XmlUnion; +public: + XmlBool xmlBool = XmlBool(); + XmlString8 xmlString8 = XmlString8(); + virtual const char* getDescription() override { return "bool or string"; }; + XmlUnionField m_fields[2] = { xmlBool, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + +class XmlInt8OrBool : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt8 xmlInt8 = XmlInt8(); + XmlBool xmlBool = XmlBool(); + virtual const char* getDescription() override { return "int8 or bool"; }; + XmlUnionField m_fields[2] = { xmlInt8, xmlBool }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + +class XmlInt64OrBool : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt64 xmlInt64 = XmlInt64(); + XmlBool xmlBool = XmlBool(); + virtual const char* getDescription() override { return "int64 or bool"; }; + XmlUnionField m_fields[2] = { xmlInt64, xmlBool }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + +class XmlBoolOrStringOrData : public XmlUnion +{ + using super = XmlUnion; +public: + XmlBool xmlBool = XmlBool(); + XmlString8 xmlString8 = XmlString8(); + XmlData xmlData = XmlData(); + + virtual const char* getDescription() override { return "bool|string|data"; }; + XmlUnionField m_fields[3] = { xmlBool, xmlString8, xmlData }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + +class XmlInt32OrString : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt32 xmlInt32 = XmlInt32(); + XmlString8 xmlString8 = XmlString8(); + virtual const char* getDescription() override { return "int32|string"; }; + XmlUnionField m_fields[2] = { xmlInt32, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + +class XmlInt16OrString : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt16 xmlInt16 = XmlInt16(); + XmlString8 xmlString8 = XmlString8(); + virtual const char* getDescription() override { return "int16|string"; }; + XmlUnionField m_fields[2] = { xmlInt16, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + + +class XmlInt32OrBoolOrData : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt32 xmlInt32 = XmlInt32(); + XmlBool xmlBool = XmlBool(); + XmlData xmlData = XmlData(); + virtual const char* getDescription() override { return "int32|string|data"; }; + XmlUnionField m_fields[3] = { xmlInt32, xmlBool, xmlData }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + +class XmlInt32OrData : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt32 xmlInt32 = XmlInt32(); + XmlData xmlData = XmlData(); + virtual const char* getDescription() override { return "int32|data"; }; + XmlUnionField m_fields[2] = { xmlInt32, xmlData }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + + + +class XmlInt64OrString : public XmlUnion +{ + using super = XmlUnion; +public: + XmlInt64 xmlInt64 = XmlInt64(); + XmlString8 xmlString8 = XmlString8(); + virtual const char* getDescription() override { return "int64|string"; }; + XmlUnionField m_fields[2] = { xmlInt64, xmlString8 }; + virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +}; + +// +//#define XmlInt64OrStringNotEmptySuper XmlUnion +//class XmlInt64OrStringNotEmpty : public XmlInt64OrStringNotEmptySuper +//{ +//public: +// XmlInt64 xmlInt64 = XmlInt64(); +// XmlString8 xmlString8 = XmlString8(); +// virtual const char* getDescription() override { return "int64|string"; }; +// XmlUnionField m_fields[2] = { xmlInt64, xmlString8 }; +// virtual void getFields(XmlUnionField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; +//}; +// + + +#endif /* XmlLiteCompositeTypes_h */ diff --git a/rEFIt_UEFI/cpp_lib/undefinable.h b/rEFIt_UEFI/cpp_lib/undefinable.h index 61a1f00ec..aa41f24bc 100644 --- a/rEFIt_UEFI/cpp_lib/undefinable.h +++ b/rEFIt_UEFI/cpp_lib/undefinable.h @@ -1,8 +1,8 @@ /* - * def_types.h * - * Created on: Mar 19, 2021 - * Author: jief + * Copyright (c) 2020 Jief + * All rights reserved. + * */ #ifndef CPP_LIB_DEF_TYPES_H_ @@ -56,6 +56,15 @@ public: undefinable_bool& operator = (bool newValue) { super::operator=(newValue); return *this; } }; +class undefinable_uint8 : public undefinable +{ + using super = undefinable; +public: + undefinable_uint8() { } + explicit undefinable_uint8(uint16_t newValue) { super::operator=(newValue); } + undefinable_uint8& operator = (uint8_t newValue) { super::operator=(newValue); return *this; } +}; + class undefinable_uint16 : public undefinable { using super = undefinable; diff --git a/rEFIt_UEFI/cpp_unit_test/XStringArray_test.cpp b/rEFIt_UEFI/cpp_unit_test/XStringArray_test.cpp index d2e448468..93a1251b2 100644 --- a/rEFIt_UEFI/cpp_unit_test/XStringArray_test.cpp +++ b/rEFIt_UEFI/cpp_unit_test/XStringArray_test.cpp @@ -42,6 +42,26 @@ int XStringArray_tests() if ( !array1.containsIC(L"oTHer2"_XSW) ) return 6; } + { + XStringWArray arrayW1; + arrayW1.Add(L"word1"_XSW); + arrayW1.Add(L"other2"_XSW); + + XStringWArray arrayW1bis; + arrayW1bis = arrayW1; + if ( arrayW1bis != arrayW1 ) return 11; + + { + XString8Array array81bis; + array81bis = arrayW1; + if ( array81bis != arrayW1 ) return 11; + } + { + XString8Array array81bis(arrayW1); + if ( array81bis != arrayW1 ) return 11; + } + } + // Test == and != { diff --git a/rEFIt_UEFI/cpp_unit_test/all_tests.cpp b/rEFIt_UEFI/cpp_unit_test/all_tests.cpp index 356e58c19..2e41f2249 100755 --- a/rEFIt_UEFI/cpp_unit_test/all_tests.cpp +++ b/rEFIt_UEFI/cpp_unit_test/all_tests.cpp @@ -22,6 +22,8 @@ #include "MacOsVersion_test.h" #include "xml_lite-test.h" #include "config-test.h" +#include "XToolsCommon_test.h" +#include "../Platform/guid.h" #if defined(JIEF_DEBUG) && defined(CLOVER_BUILD) #include "printlib-test.h" @@ -40,12 +42,29 @@ bool all_tests() #if defined(JIEF_DEBUG) + + int ret; -// ret = xml_lite_tests(); -// if ( ret != 0 ) { -// printf("xml_lite_tests() failed at test %d\n", ret); -// all_ok = false; -// } + ret = XString_tests(); + if ( ret != 0 ) { + printf("XString_tests() failed at test %d\n", ret); + all_ok = false; + } + ret = XStringArray_tests(); + if ( ret != 0 ) { + printf("XStringArray_tests() failed at test %d\n", ret); + all_ok = false; + } + ret = XToolsCommon_tests(); + if ( ret != 0 ) { + printf("XToolsCommon_tests() failed at test %d\n", ret); + all_ok = false; + } +ret = xml_lite_tests(); +if ( ret != 0 ) { + printf("xml_lite_tests() failed at test %d\n", ret); + all_ok = false; +} ret = strcasecmp_tests(); if ( ret != 0 ) { printf("strncmp_tests() failed at test %d\n", ret); @@ -64,7 +83,7 @@ if ( ret != 0 ) { // } #endif -#if defined(JIEF_DEBUGxxx) +#if defined(JIEF_DEBUG) #if defined(JIEF_DEBUG) && defined(CLOVER_BUILD) ret = printlib_tests(); diff --git a/rEFIt_UEFI/cpp_unit_test/config-test.cpp b/rEFIt_UEFI/cpp_unit_test/config-test.cpp index 235f0afe8..f15e8e072 100755 --- a/rEFIt_UEFI/cpp_unit_test/config-test.cpp +++ b/rEFIt_UEFI/cpp_unit_test/config-test.cpp @@ -5,7 +5,7 @@ #include "../Platform/plist/plist.h" #include "../cpp_lib/XmlLiteSimpleTypes.h" #include "../cpp_lib/XmlLiteParser.h" -#include "../Platform/ConfigPlist/ConfigPlistClass.h" +#include "../Settings/ConfigPlist/ConfigPlistClass.h" static const char* config_all = "\n\n\n\n\n\n\n\n\n\n\n" diff --git a/rEFIt_UEFI/cpp_unit_test/xml_lite-reapeatingdict-test.cpp b/rEFIt_UEFI/cpp_unit_test/xml_lite-reapeatingdict-test.cpp index 0c142badc..54f5e155a 100755 --- a/rEFIt_UEFI/cpp_unit_test/xml_lite-reapeatingdict-test.cpp +++ b/rEFIt_UEFI/cpp_unit_test/xml_lite-reapeatingdict-test.cpp @@ -46,7 +46,7 @@ static int repeatingdict_test1() b = dict.parseFromXmlLite(&gXmlLiteParser, "/"_XS8, true); //gXmlLiteParser.printfErrorsAndWarnings(); for ( size_t idx = 0 ; idx < dict.valueArray().size() ; idx++ ) { - printf("%s %s\n", dict.valueArray()[idx].key().value().c_str(), dict.valueArray()[idx].value().c_str()); + printf("%s %s\n", dict.valueArray()[idx].key().c_str(), dict.valueArray()[idx].value().c_str()); } if ( !b ) return breakpoint(1); if ( gXmlLiteParser.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); @@ -122,7 +122,7 @@ int repeatingdict_test2() gXmlLiteParser.printfErrorsAndWarnings(); for ( size_t idx = 0 ; idx < dict.valueArray().size() ; idx++ ) { auto item = dict.valueArray()[idx]; - printf("%s %d %s\n", dict.valueArray()[idx].key().value().c_str(), dict.valueArray()[idx].xmlBool.value(), dict.valueArray()[idx].xmlString.value().c_str()); + printf("%s %d %s\n", dict.valueArray()[idx].key().c_str(), dict.valueArray()[idx].xmlBool.value(), dict.valueArray()[idx].xmlString.value().c_str()); } if ( !b ) return breakpoint(1); if ( gXmlLiteParser.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); diff --git a/rEFIt_UEFI/cpp_unit_test/xml_lite-test.cpp b/rEFIt_UEFI/cpp_unit_test/xml_lite-test.cpp index 5dec537db..d76037115 100755 --- a/rEFIt_UEFI/cpp_unit_test/xml_lite-test.cpp +++ b/rEFIt_UEFI/cpp_unit_test/xml_lite-test.cpp @@ -6,8 +6,12 @@ #include "../cpp_lib/XmlLiteSimpleTypes.h" #include "../cpp_lib/XmlLiteCompositeTypes.h" +#include "../cpp_lib/XmlLiteDictTypes.h" +#include "../cpp_lib/XmlLiteArrayTypes.h" #include "../cpp_lib/XmlLiteParser.h" +#include "../Settings/ConfigPlist/ConfigPlistAbstract.h" +#include "xml_lite-reapeatingdict-test.h" static int breakpoint(int i) { @@ -15,7 +19,7 @@ static int breakpoint(int i) } -static XmlLiteParser gXmlLiteParser; +static XmlLiteParser gXmlLiteParserTest; @@ -23,10 +27,10 @@ static XmlLiteParser gXmlLiteParser; int move_tests() { - gXmlLiteParser.init("\n\n\n\n \n\n"); - while ( gXmlLiteParser.getLine() < 4 && gXmlLiteParser.moveForward() ) ; - while ( gXmlLiteParser.moveBackward() ); - if ( gXmlLiteParser.getPosition().getLine() != 1 || gXmlLiteParser.getPosition().getCol() != 1 ) return 1; + gXmlLiteParserTest.init("\n\n\n\n \n\n"); + while ( gXmlLiteParserTest.getLine() < 4 && gXmlLiteParserTest.moveForward() ) ; + while ( gXmlLiteParserTest.moveBackward() ); + if ( gXmlLiteParserTest.getPosition().getLine() != 1 || gXmlLiteParserTest.getPosition().getCol() != 1 ) return 1; return 0; } @@ -38,28 +42,28 @@ int getNextTag_tests() bool isOpeningTag, isClosingTag; bool b; - gXmlLiteParser.init(""); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( !b ) return breakpoint(1); if ( !isOpeningTag ) return breakpoint(2); if ( isClosingTag ) return breakpoint(3); - if ( gXmlLiteParser.getchar() != 0 ) return breakpoint(4); + if ( gXmlLiteParserTest.getchar() != 0 ) return breakpoint(4); - gXmlLiteParser.init(""); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( !b ) return breakpoint(5); if ( isOpeningTag ) return breakpoint(6); if ( !isClosingTag ) return breakpoint(7); - if ( gXmlLiteParser.getchar() != 0 ) return breakpoint(8); + if ( gXmlLiteParserTest.getchar() != 0 ) return breakpoint(8); - gXmlLiteParser.init(""); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( !b ) return breakpoint(10); if ( !isOpeningTag ) return breakpoint(11); if ( isClosingTag ) return breakpoint(12); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( !b ) return breakpoint(13); if ( isOpeningTag ) return breakpoint(14); if ( !isClosingTag ) return breakpoint(15); @@ -67,56 +71,56 @@ int getNextTag_tests() // // Test xmlLiteParser.getErrorsAndWarnings() // - gXmlLiteParser.init("foo1\n foo2"); - gXmlLiteParser.moveForwardUntil(0); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init("foo1\n foo2"); + gXmlLiteParserTest.moveForwardUntil(0); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( b ) return breakpoint(13); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 2 col 7") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 2 col 7") ) return breakpoint(14); - gXmlLiteParser.init("foo1\n bar1"); - gXmlLiteParser.moveForwardUntil('b'); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init("foo1\n bar1"); + gXmlLiteParserTest.moveForwardUntil('b'); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( b ) return breakpoint(13); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 2 col 3") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 2 col 3") ) return breakpoint(14); - gXmlLiteParser.init("foo1\n "); - gXmlLiteParser.moveForwardUntil('<'); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init("foo1\n "); + gXmlLiteParserTest.moveForwardUntil('<'); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( b ) return breakpoint(13); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 2 col 9") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 2 col 9") ) return breakpoint(14); - gXmlLiteParser.init("foo1\n "); - gXmlLiteParser.moveForwardUntil('<'); - b = gXmlLiteParser.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); + gXmlLiteParserTest.init("foo1\n "); + gXmlLiteParserTest.moveForwardUntil('<'); + b = gXmlLiteParserTest.getNextTag(&tag, &tagLength, &isOpeningTag, &isClosingTag, true); if ( b ) return breakpoint(13); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 2 col 13") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 2 col 13") ) return breakpoint(14); - gXmlLiteParser.init("foo1\n\nkv"); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("kv"); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( !b ) return breakpoint(1); if ( !strnIsEqual(tag, tagLength, "key") ) return breakpoint(2); if ( !strnIsEqual(value, valueLength, "k") ) return breakpoint(3); - gXmlLiteParser.init(""); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( !b ) return breakpoint(1); if ( value != NULL ) return breakpoint(3); if ( valueLength != 0 ) return breakpoint(3); - gXmlLiteParser.init(""); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( !b ) return breakpoint(1); if ( value != NULL ) return breakpoint(3); if ( valueLength != 0 ) return breakpoint(3); - gXmlLiteParser.init(""); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "true", true); + gXmlLiteParserTest.init(""); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "true", true); if ( !b ) return breakpoint(1); if ( !strnIsEqual(tag, tagLength, "true") ) return breakpoint(2); if ( value != NULL ) return breakpoint(3); if ( valueLength != 0 ) return breakpoint(3); - gXmlLiteParser.init("kvk"); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("kvk"); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( b ) return breakpoint(4); // // Test xmlLiteParser.getErrorsAndWarnings() // - gXmlLiteParser.init("\n\n k"); - gXmlLiteParser.moveForwardUntilSignificant(); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("\n\n k"); + gXmlLiteParserTest.moveForwardUntilSignificant(); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( b ) return breakpoint(4); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 3 col 3") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 3 col 3") ) return breakpoint(14); - gXmlLiteParser.init("\n\n k"); - gXmlLiteParser.moveForwardUntilSignificant(); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("\n\n k"); + gXmlLiteParserTest.moveForwardUntilSignificant(); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( b ) return breakpoint(4); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 3 col 5") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 3 col 5") ) return breakpoint(14); - gXmlLiteParser.init("\n\n "); - gXmlLiteParser.moveForwardUntilSignificant(); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("\n\n "); + gXmlLiteParserTest.moveForwardUntilSignificant(); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( !b ) return breakpoint(4); if ( value != NULL ) return breakpoint(3); if ( valueLength != 0 ) return breakpoint(3); - gXmlLiteParser.init("\n\n v"); - gXmlLiteParser.moveForwardUntilSignificant(); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("\n\n v"); + gXmlLiteParserTest.moveForwardUntilSignificant(); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( b ) return breakpoint(4); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 3 col 11") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 3 col 11") ) return breakpoint(14); - gXmlLiteParser.init("\n\n v"); - gXmlLiteParser.moveForwardUntilSignificant(); - b = gXmlLiteParser.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); + gXmlLiteParserTest.init("\n\n v"); + gXmlLiteParserTest.moveForwardUntilSignificant(); + b = gXmlLiteParserTest.getSimpleTag(&tag, &tagLength, &value, &valueLength, "key", true); if ( b ) return breakpoint(4); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 3 col 11") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 3 col 11") ) return breakpoint(14); return 0; } @@ -207,40 +211,40 @@ int getKey_tests() bool b; XmlParserPosition xmlParserPosition; - gXmlLiteParser.init("v"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init("v"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(3); if ( length != 0 ) return breakpoint(13); - gXmlLiteParser.init(" v"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init(" v"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(3); - if ( length != 0 ) return breakpoint(13); + if ( length != 1 ) return breakpoint(13); - gXmlLiteParser.init("av"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init("av"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(5); if ( !strnIsEqual(tag, length, "a") ) return breakpoint(6); - gXmlLiteParser.init(" a v"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init(" a v"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(6); - if ( !strnIsEqual(tag, length, "a") ) return breakpoint(6); + if ( !strnIsEqual(tag, length, " a ") ) return breakpoint(6); - gXmlLiteParser.init(" a v"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init(" a v"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(7); - if ( !strnIsEqual(tag, length, "a") ) return breakpoint(6); + if ( !strnIsEqual(tag, length, " a ") ) return breakpoint(6); - gXmlLiteParser.init("a v"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init("a v"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(8); - if ( !strnIsEqual(tag, length, "a") ) return breakpoint(6); + if ( !strnIsEqual(tag, length, "a ") ) return breakpoint(6); - gXmlLiteParser.init(" av"); - b = gXmlLiteParser.getKeyTagValue(&tag, &length, &xmlParserPosition, true); + gXmlLiteParserTest.init(" av"); + b = gXmlLiteParserTest.getKeyTagValue(&tag, &length, &xmlParserPosition, true); if ( !b ) return breakpoint(9); - if ( !strnIsEqual(tag, length, "a") ) return breakpoint(6); + if ( !strnIsEqual(tag, length, " a") ) return breakpoint(6); return 0; } @@ -249,55 +253,56 @@ int skip_tests() { bool b; - gXmlLiteParser.init("kv"); - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("kv"); + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( !b ) return breakpoint(1); - if ( !strnIsEqual(gXmlLiteParser.getcharPtr(), strlen(gXmlLiteParser.getcharPtr()), "v") ) return breakpoint(2); + if ( !strnIsEqual(gXmlLiteParserTest.getcharPtr(), strlen(gXmlLiteParserTest.getcharPtr()), "v") ) return breakpoint(2); - gXmlLiteParser.init("vfoo"); // 'foo' is text after closing tag -> fail - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("vfoo"); // 'foo' is text after closing tag -> fail + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( b ) return breakpoint(1); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 1 col 25") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); +auto msg = gXmlLiteParserTest.getErrorsAndWarnings()[0].msg; + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 1 col 25") ) return breakpoint(14); - gXmlLiteParser.init("v"); // is the next tag -> success - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("v"); // is the next tag -> success + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( !b ) return breakpoint(1); - if ( !strnIsEqual(gXmlLiteParser.getcharPtr(), strlen(gXmlLiteParser.getcharPtr()), "") ) return breakpoint(2); + if ( !strnIsEqual(gXmlLiteParserTest.getcharPtr(), strlen(gXmlLiteParserTest.getcharPtr()), "") ) return breakpoint(2); - gXmlLiteParser.init("v
"); // end of file just after skipped tag -> success - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("v
"); // end of file just after skipped tag -> success + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( !b ) return breakpoint(1); - if ( gXmlLiteParser.getchar() != 0 ) return breakpoint(2); + if ( gXmlLiteParserTest.getchar() != 0 ) return breakpoint(2); - gXmlLiteParser.init("vbar11bar2
"); - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("vbar11bar2
"); + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( !b ) return breakpoint(1); - if ( !strnIsEqual(gXmlLiteParser.getcharPtr(), strlen(gXmlLiteParser.getcharPtr()), "") ) return breakpoint(2); + if ( !strnIsEqual(gXmlLiteParserTest.getcharPtr(), strlen(gXmlLiteParserTest.getcharPtr()), "") ) return breakpoint(2); // Cannot have a tag containing chars AND subtag - gXmlLiteParser.init("\n\n\nkv"); - gXmlLiteParser.moveForwardUntil('k'); - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("\n\n\nkv"); + gXmlLiteParserTest.moveForwardUntil('k'); + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( b ) return breakpoint(2); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 4 col 2") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 4 col 2") ) return breakpoint(14); // Cannot have a tag containing chars AND subtag - gXmlLiteParser.init("vk"); - b = gXmlLiteParser.skipUntilClosingTag("key", strlen("key"), true); + gXmlLiteParserTest.init("vk"); + b = gXmlLiteParserTest.skipUntilClosingTag("key", strlen("key"), true); if ( b ) return breakpoint(2); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 1 col 19") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 1 col 19") ) return breakpoint(14); // Cannot have a tag containing chars AND subtag - gXmlLiteParser.init("\n
vk"); - gXmlLiteParser.moveForwardUntil('<'); - b = gXmlLiteParser.skipNextTag(true); + gXmlLiteParserTest.init("\n vk"); + gXmlLiteParserTest.moveForwardUntil('<'); + b = gXmlLiteParserTest.skipNextTag(true); if ( b ) return breakpoint(2); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("line 2 col 2") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(13); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("line 2 col 2") ) return breakpoint(14); return 0; } @@ -423,20 +428,20 @@ int validate_dict_tests() \r\n\ "; - gXmlLiteParser.init(config_test); - b = mainDict.parseFromXmlLite(&gXmlLiteParser, "/"_XS8, true); + gXmlLiteParserTest.init(config_test); + b = mainDict.parseFromXmlLite(&gXmlLiteParserTest, "/"_XS8, true); //gXmlLiteParser.printfErrorsAndWarnings(); if ( !b ) return breakpoint(1); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("Test1Bool tag") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("Test1Bool tag") ) return breakpoint(14); if ( !b ) return breakpoint(1); - gXmlLiteParser.init(config_test); - mainDict.validate(&gXmlLiteParser, "/"_XS8, XmlParserPosition(), true); + gXmlLiteParserTest.init(config_test); + mainDict.validate(&gXmlLiteParserTest, "/"_XS8, XmlParserPosition(), true); //gXmlLiteParser.printfErrorsAndWarnings(); if ( !b ) return breakpoint(1); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("ict1 tag") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("ict1 tag") ) return breakpoint(14); return 0; } @@ -476,31 +481,438 @@ int validate_array_tests() \r\n\ "; - gXmlLiteParser.init(config_test); - b = mainDict.parseFromXmlLite(&gXmlLiteParser, "/"_XS8, true); + gXmlLiteParserTest.init(config_test); + b = mainDict.parseFromXmlLite(&gXmlLiteParserTest, "/"_XS8, true); //gXmlLiteParser.printfErrorsAndWarnings(); if ( !b ) return breakpoint(1); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("Expecting ") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("Expecting ") ) return breakpoint(14); - gXmlLiteParser.init(config_test); - mainDict.validate(&gXmlLiteParser, "/"_XS8, XmlParserPosition(), true); + gXmlLiteParserTest.init(config_test); + mainDict.validate(&gXmlLiteParserTest, "/"_XS8, XmlParserPosition(), true); //gXmlLiteParser.printfErrorsAndWarnings(); if ( !b ) return breakpoint(1); - if ( gXmlLiteParser.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); - if ( !gXmlLiteParser.getErrorsAndWarnings()[0].msg.contains("dict2 tag") ) return breakpoint(14); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 1 ) return breakpoint(1); + if ( !gXmlLiteParserTest.getErrorsAndWarnings()[0].msg.contains("dict2 tag") ) return breakpoint(14); return 0; } + +int documentation_test1() +{ + bool b; + + class MyDictClass : public XmlDict + { + public: + XmlBool aBool; + XmlInt32 anInt32; + + XmlDictField m_fields[2] = { + {"KeyNameForBool", aBool}, + {"KeyNameForInt32", anInt32}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + } MyDict; + + + const char* config_test = R"V0G0N( + + + + + KeyNameForBool + + KeyNameForInt32 + 13864 + + )V0G0N"; + + + gXmlLiteParserTest.init(config_test); + gXmlLiteParserTest.moveForwardUntilSignificant(); + gXmlLiteParserTest.skipHeader(); + b = MyDict.parseFromXmlLite(&gXmlLiteParserTest, "/"_XS8, true); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test2() +{ + bool b; + + class MyInsideDictClass : public XmlDict + { + public: + XmlBool aBool; + XmlInt32 anInt32; + + XmlDictField m_fields[2] = { + {"KeyNameForBool", aBool}, + {"KeyNameForInt32", anInt32}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + }; + + class MyTopLevelDictClass : public ConfigPlistAbstractClass + { + public: + MyInsideDictClass inside1; + + XmlDictField m_fields[1] = { + {"KeyNameForInsideDict", inside1}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + } MyDict; + + const char* config_test = R"V0G0N( + + + + + KeyNameForInsideDict + + KeyNameForBool + + KeyNameForInt32 + 13864 + + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test3() +{ + bool b; + + class MyPlist : public ConfigPlistAbstractClass + { + public: + XmlBool aBool; + XmlInt32 anInt32; + class CountClass : public XmlInt64 + { + using super = XmlInt64; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( value() < -2 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Count cannot be negative. It must a number between -2 and 18 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( value() > 18 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Count cannot > 18. It must a number between -2 and 18 inclusive at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } + } Count = CountClass(); + + XmlDictField m_fields[1] = { + {"Count", Count}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + } MyDict; + + + const char* config_test = R"V0G0N( + + + + + Count + 12 + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test4() +{ + bool b; + class MyXmlType : public XmlUInt8 + { + using super = XmlUInt8; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( value() < 1 || value() > 2 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must be 1 or 2 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } + }; + + class MyXmlSubType : public XmlUInt8 + { + using super = XmlUInt8; + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( value() < 11 || value() > 12 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("SubType must be 11 or 22 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + return true; + } + }; + + class MyPlist : public ConfigPlistAbstractClass + { + using super = XmlDict; + public: + MyXmlType type; // this is a subclass of XmlUInt8 that check that type is 1 or 2 + MyXmlSubType subType; // this is a subclass of XmlUInt8 that check that subtype is 11 or 12 + XmlString8 name; // as many other field that there is in this dict + + XmlDictField m_fields[2] = { + {"Type", type}, + {"SubType", subType}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !type.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must befined at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( type.value() == 1 ) { + if ( subType.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type 1 cannot have a subtype at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + }else if ( type.value() == 2 ) { + // nothing to do because subtype is optional, and if it exists, weknow that the value is correct because of th validation in MyXmlSubType + }else{ + panic("There is a bug in MyXmlType::validate() !"); + } + return true; + } + } MyDict; + + + const char* config_test = R"V0G0N( + + + + + Type + 2 + SubType + 11 + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test5() +{ + bool b; + class MyPlist : public ConfigPlistAbstractClass + { + using super = XmlDict; + public: + XmlUInt8 type; // no validation except that the value is an unsigned 8 bits int + XmlUInt8 subType; // no validation except that the value is an unsigned 8 bits int + XmlString8 name; // as many other field that there is in this dict + + XmlDictField m_fields[2] = { + {"Type", type}, + {"SubType", subType}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + + virtual bool validate(XmlLiteParser* xmlLiteParser, const XString8& xmlPath, const XmlParserPosition& keyPos, bool generateErrors) override { + if ( !super::validate(xmlLiteParser, xmlPath, keyPos, generateErrors) ) return false; + if ( !type.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must befined at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + if ( type.value() == 1 ) { + if ( subType.isDefined() ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("Type 1 cannot have a subtype in dict '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + }else if ( type.value() == 2 ) { + if ( subType.isDefined() ) { + if ( subType.value() != 11 && subType.value() != 12 ) { + xmlLiteParser->addWarning(generateErrors, S8Printf("SubType must be 11 or 12 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + return false; + } + }else{ + // subtype is optional, so it's ok. + } + }else{ + xmlLiteParser->addWarning(generateErrors, S8Printf("Type must be 1 or 2 at '%s:%d'", xmlPath.c_str(), keyPos.getLine())); + // Let's think that we want to ignore this value but we syill want to keep the dict as the other field still has meaning. + type.reset(); // we only reset this field. We don't return false because that'll undefine the whole dict + subType.reset(); // SubType means nothing without a Type. + } + return true; + } + } MyDict; + + + const char* config_test = R"V0G0N( + + + + + Type + 2 + SubType + 11 + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test6() +{ + bool b; + + class MyDictClass : public ConfigPlistAbstractClass + { + public: + XmlArray aBoolArray; + + XmlDictField m_fields[1] = { + {"KeyNameForBoolArray", aBoolArray}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + } MyDict; + + const char* config_test = R"V0G0N( + + + + + KeyNameForBoolArray + + + + + + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + return 0; +} + +int documentation_test7() +{ + bool b; + + class MyDictClass : public ConfigPlistAbstractClass + { + public: + XmlRepeatingDict> keyIntPairs; + + XmlDictField m_fields[1] = { + {"KeyNameForKeyIntPairs", keyIntPairs}, + }; + virtual void getFields(XmlDictField** fields, size_t* nb) override { *fields = m_fields; *nb = sizeof(m_fields)/sizeof(m_fields[0]); }; + } MyDict; + + const char* config_test = R"V0G0N( + + + + + KeyNameForKeyIntPairs + + a key + 1 + another key + 2 + third key + 3 + + + )V0G0N"; + + + b = MyDict.parse(config_test, strlen(config_test), "/"_XS8, &gXmlLiteParserTest); +gXmlLiteParserTest.printfErrorsAndWarnings(); + if ( !b ) return breakpoint(1); + if ( gXmlLiteParserTest.getErrorsAndWarnings().size() != 0 ) return breakpoint(1); + + XObjArray> array = MyDict.keyIntPairs.valueArray(); + XString8 keyOne = array[1].key(); +// int32_t valueOne = array[1].value(); + + return 0; +} + int xml_lite_tests() { int ret; // XmlLiteParser xmlLiteParser; - + ret = documentation_test1(); + if ( ret ) return ret; + + ret = documentation_test2(); + if ( ret ) return ret; + + ret = documentation_test3(); + if ( ret ) return ret; + + ret = documentation_test4(); + if ( ret ) return ret; + + ret = documentation_test5(); + if ( ret ) return ret; + + ret = documentation_test6(); + if ( ret ) return ret; + + ret = documentation_test7(); + if ( ret ) return ret; + + + ret = xml_lite_reapeatingdict_tests(); + if ( ret ) return ret; ret = validate_array_tests(); if ( ret ) return ret; diff --git a/rEFIt_UEFI/entry_scan/loader.cpp b/rEFIt_UEFI/entry_scan/loader.cpp index be524e662..54dd3737a 100644 --- a/rEFIt_UEFI/entry_scan/loader.cpp +++ b/rEFIt_UEFI/entry_scan/loader.cpp @@ -49,7 +49,7 @@ #include "../refit/lib.h" #include "../gui/REFIT_MENU_SCREEN.h" #include "../gui/REFIT_MAINMENU_SCREEN.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../include/OSTypes.h" #include "../Platform/BootOptions.h" #include "../Platform/Volumes.h" @@ -448,6 +448,441 @@ STATIC EFI_STATUS GetOSXVolumeName(LOADER_ENTRY *Entry) return Status; } + +MacOsVersion GetOSVersion(int LoaderType, const XStringW& APFSTargetUUID, const REFIT_VOLUME* Volume, XString8* BuildVersionPtr) +{ + XString8 OSVersion; + XString8 BuildVersion; + EFI_STATUS Status = EFI_NOT_FOUND; + CHAR8* PlistBuffer = NULL; + UINTN PlistLen; + TagDict* Dict = NULL; + const TagDict* DictPointer = NULL; + const TagStruct* Prop = NULL; + + if ( !Volume ) { + return NullXString8; + } + + if (OSTYPE_IS_OSX(LoaderType)) + { + XString8 uuidPrefix; + if ( APFSTargetUUID.notEmpty() ) uuidPrefix = S8Printf("\\%ls", APFSTargetUUID.wc_str()); + + XStringW plist = SWPrintf("%s\\System\\Library\\CoreServices\\SystemVersion.plist", uuidPrefix.c_str()); + if ( !FileExists(Volume->RootDir, plist) ) { + plist = SWPrintf("%s\\System\\Library\\CoreServices\\ServerVersion.plist", uuidPrefix.c_str()); + if ( !FileExists(Volume->RootDir, plist) ) { + plist.setEmpty(); + } + } + + if ( plist.notEmpty() ) { // found macOS System + Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + OSVersion = Prop->getString()->stringValue(); + } + } + } + Prop = Dict->propertyForKey("ProductBuildVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + BuildVersion = Prop->getString()->stringValue(); + } + } + } + Dict->FreeTag(); + } + } + } + + if (OSTYPE_IS_OSX_INSTALLER (LoaderType)) { + // Detect exact version for 2nd stage Installer (thanks to dmazar for this idea) + // This should work for most installer cases. Rest cases will be read from boot.efi before booting. + // Reworked by Sherlocks. 2018.04.12 + + // 1st stage - 1 + // Check for plist - createinstallmedia/BaseSystem/InstallDVD/InstallESD + + XStringW InstallerPlist; + + if ( APFSTargetUUID.notEmpty() ) { + InstallerPlist = SWPrintf("%ls\\System\\Library\\CoreServices\\SystemVersion.plist", APFSTargetUUID.wc_str()); + if ( !FileExists(Volume->RootDir, InstallerPlist) ) InstallerPlist.setEmpty(); + } + + if ( InstallerPlist.isEmpty() ) { + InstallerPlist = SWPrintf("\\.IABootFilesSystemVersion.plist"); // 10.9 - 10.13.3 + if (!FileExists(Volume->RootDir, InstallerPlist) && FileExists (Volume->RootDir, L"\\System\\Library\\CoreServices\\boot.efi") && + ((FileExists(Volume->RootDir, L"\\BaseSystem.dmg") && FileExists (Volume->RootDir, L"\\mach_kernel")) || // 10.7/10.8 + FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\Mac OS X Installer.app") || // 10.6/10.7 + FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\OS X Installer.app") || // 10.8 - 10.11 + FileExists(Volume->RootDir, L"\\System\\Installation\\CDIS\\macOS Installer.app") || // 10.12+ + FileExists(Volume->RootDir, L"\\.IAPhysicalMedia"))) { // 10.13.4+ + InstallerPlist = SWPrintf("\\System\\Library\\CoreServices\\SystemVersion.plist"); + } + } + if (FileExists (Volume->RootDir, InstallerPlist)) { + Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + OSVersion = Prop->getString()->stringValue(); + } + } + } + Prop = Dict->propertyForKey("ProductBuildVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + BuildVersion = Prop->getString()->stringValue(); + } + } + } + Dict->FreeTag(); + } + } + +// if ( OSVersion.isEmpty() ) +// { +// if ( FileExists(Volume->RootDir, SWPrintf("\\%ls\\com.apple.installer\\BridgeVersion.plist", APFSTargetUUID.wc_str()).wc_str()) ) { +// OSVersion = "11.0"_XS8; +// // TODO so far, is there is a BridgeVersion.plist, it's version 11.0. Has to be improved with next releases. +// } +// } + + // 1st stage - 2 + // Check for plist - createinstallmedia/NetInstall + if (OSVersion.isEmpty()) { + InstallerPlist = SWPrintf("\\.IABootFiles\\com.apple.Boot.plist"); // 10.9 - ... + if (FileExists (Volume->RootDir, InstallerPlist)) { + Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("Kernel Flags"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in Kernel Flags\n"); + }else{ + if ( Prop->getString()->stringValue().contains("Install%20macOS%20BigSur") || Prop->getString()->stringValue().contains("Install%20macOS%2011.0")) { + OSVersion = "11"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20macOS%2010.16")) { + OSVersion = "10.16"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Catalina") || Prop->getString()->stringValue().contains("Install%20macOS%2010.15")) { + OSVersion = "10.15"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Mojave") || Prop->getString()->stringValue().contains("Install%20macOS%2010.14")) { + OSVersion = "10.14"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20High%20Sierra") || Prop->getString()->stringValue().contains("Install%20macOS%2010.13")) { + OSVersion = "10.13"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20macOS%20Sierra") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.12")) { + OSVersion = "10.12"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20El%20Capitan") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.11")) { + OSVersion = "10.11"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Yosemite") || Prop->getString()->stringValue().contains("Install%20OS%20hhX%2010.10")) { + OSVersion = "10.10"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Mavericks.app")) { + OSVersion = "10.9"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20OS%20hhX%20Mountain%20Lion")) { + OSVersion = "10.8"_XS8; + } else if ( Prop->getString()->stringValue().contains("Install%20Mac%20OS%20hhX%20Lion")) { + OSVersion = "10.7"_XS8; + } + } + } + } + } + } + + // 2nd stage - 1 + // Check for plist - AppStore/createinstallmedia/startosinstall/Fusion Drive + if (OSVersion.isEmpty()) { + InstallerPlist = SWPrintf("\\macOS Install Data\\Locked Files\\Boot Files\\SystemVersion.plist"); // 10.12.4+ + if (!FileExists (Volume->RootDir, InstallerPlist)) { + InstallerPlist = SWPrintf("\\macOS Install Data\\InstallInfo.plist"); // 10.12+ + if (!FileExists (Volume->RootDir, InstallerPlist)) { + InstallerPlist = SWPrintf("\\com.apple.boot.R\\SystemVersion.plist)"); // 10.12+ + if (!FileExists (Volume->RootDir, InstallerPlist)) { + InstallerPlist = SWPrintf("\\com.apple.boot.P\\SystemVersion.plist"); // 10.12+ + if (!FileExists (Volume->RootDir, InstallerPlist)) { + InstallerPlist = SWPrintf("\\com.apple.boot.S\\SystemVersion.plist"); // 10.12+ + if (!FileExists (Volume->RootDir, InstallerPlist) && + (FileExists (Volume->RootDir, L"\\com.apple.boot.R\\System\\Library\\PrelinkedKernels\\prelinkedkernel") || + FileExists (Volume->RootDir, L"\\com.apple.boot.P\\System\\Library\\PrelinkedKernels\\prelinkedkernel") || + FileExists (Volume->RootDir, L"\\com.apple.boot.S\\System\\Library\\PrelinkedKernels\\prelinkedkernel"))) { + InstallerPlist = SWPrintf("\\System\\Library\\CoreServices\\SystemVersion.plist"); // 10.11 + } + } + } + } + } + if (FileExists (Volume->RootDir, InstallerPlist)) { + Status = egLoadFile(Volume->RootDir, InstallerPlist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + OSVersion = Prop->getString()->stringValue(); + } + } + } + Prop = Dict->propertyForKey("ProductBuildVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + BuildVersion = Prop->getString()->stringValue(); + } + } + } + // In InstallInfo.plist, there is no a version key only when updating from AppStore in 10.13+ + // If use the startosinstall in 10.13+, this version key exists in InstallInfo.plist + DictPointer = Dict->dictPropertyForKey("System Image Info"); // 10.12+ + if (DictPointer != NULL) { + Prop = DictPointer->propertyForKey("version"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in version\n"); + }else{ + OSVersion = Prop->getString()->stringValue(); + } + } + } + Dict->FreeTag(); + } + } + } + + // 2nd stage - 2 + // Check for ia.log - InstallESD/createinstallmedia/startosinstall + // Implemented by Sherlocks + if (OSVersion.isEmpty()) { + CONST CHAR8 *s, *fileBuffer; +// CHAR8 *Res5 = (__typeof__(Res5))AllocateZeroPool(5); +// CHAR8 *Res6 = (__typeof__(Res6))AllocateZeroPool(6); +// CHAR8 *Res7 = (__typeof__(Res7))AllocateZeroPool(7); +// CHAR8 *Res8 = (__typeof__(Res8))AllocateZeroPool(8); + UINTN fileLen = 0; + XStringW InstallerLog; + InstallerLog = L"\\Mac OS X Install Data\\ia.log"_XSW; // 10.7 + if (!FileExists (Volume->RootDir, InstallerLog)) { + InstallerLog = L"\\OS X Install Data\\ia.log"_XSW; // 10.8 - 10.11 + if (!FileExists (Volume->RootDir, InstallerLog)) { + InstallerLog = L"\\macOS Install Data\\ia.log"_XSW; // 10.12+ + } + } + if (FileExists (Volume->RootDir, InstallerLog)) { + Status = egLoadFile(Volume->RootDir, InstallerLog.wc_str(), (UINT8 **)&fileBuffer, &fileLen); + if (!EFI_ERROR(Status)) { + XString8 targetString; + targetString.strncpy(fileBuffer, fileLen); + // s = SearchString(targetString, fileLen, "Running OS Build: Mac OS X ", 27); + s = AsciiStrStr(targetString.c_str(), "Running OS Build: Mac OS X "); + if (s[31] == ' ') { + OSVersion.S8Printf("%c%c.%c\n", s[27], s[28], s[30]); + if (s[38] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c\n", s[33], s[34], s[35], s[36], s[37]); + } else if (s[39] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[33], s[34], s[35], s[36], s[37], s[38]); + } + } else if (s[31] == '.') { + OSVersion.S8Printf("%c%c.%c.%c\n", s[27], s[28], s[30], s[32]); + if (s[40] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c\n", s[35], s[36], s[37], s[38], s[39]); + } else if (s[41] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[35], s[36], s[37], s[38], s[39], s[40]); + } + } else if (s[32] == ' ') { + OSVersion.S8Printf("%c%c.%c%c\n", s[27], s[28], s[30], s[31]); + if (s[39] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38]); + } else if (s[40] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38], s[39]); + } else if (s[41] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c%c\n", s[34], s[35], s[36], s[37], s[38], s[39], s[40]); + } + } else if (s[32] == '.') { + OSVersion.S8Printf("%c%c.%c%c.%c\n", s[27], s[28], s[30], s[31], s[33]); + if (s[41] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40]); + } else if (s[42] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40], s[41]); + } else if (s[43] == ')') { + BuildVersion.S8Printf("%c%c%c%c%c%c%c\n", s[36], s[37], s[38], s[39], s[40], s[41], s[42]); + } + } + FreePool(fileBuffer); + } + } + } + + // 2nd stage - 3 + // Check for plist - Preboot of APFS + if ( OSVersion.isEmpty() ) + { + XStringW plist = L"\\macOS Install Data\\Locked Files\\Boot Files\\SystemVersion.plist"_XSW; + if ( !FileExists(Volume->RootDir, plist) ) { + plist.setEmpty(); + } + + if ( plist.notEmpty() ) { // found macOS System + + Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + OSVersion = Prop->getString()->stringValue(); + } + } + Prop = Dict->propertyForKey("ProductBuildVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); + }else{ + BuildVersion = Prop->getString()->stringValue(); + } + } + } + Dict->FreeTag(); + } + } + } + + if (OSTYPE_IS_OSX_RECOVERY (LoaderType)) { + + XString8 uuidPrefix; + if ( APFSTargetUUID.notEmpty() ) uuidPrefix = S8Printf("\\%ls", APFSTargetUUID.wc_str()); + + XStringW plist = SWPrintf("%s\\SystemVersion.plist", uuidPrefix.c_str()); + if ( !FileExists(Volume->RootDir, plist) ) { + plist = SWPrintf("%s\\ServerVersion.plist", uuidPrefix.c_str()); + if ( !FileExists(Volume->RootDir, plist) ) { + plist = L"\\com.apple.recovery.boot\\SystemVersion.plist"_XSW; + if ( !FileExists(Volume->RootDir, plist) ) { + plist = L"\\com.apple.recovery.boot\\ServerVersion.plist"_XSW; + if ( !FileExists(Volume->RootDir, plist) ) { + plist.setEmpty(); + } + } + } + } + + // Detect exact version for OS X Recovery + if ( plist.notEmpty() ) { // found macOS System + Status = egLoadFile(Volume->RootDir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + OSVersion = Prop->getString()->stringValue(); + } + } + Prop = Dict->propertyForKey("ProductBuildVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductBuildVersion\n"); + }else{ + BuildVersion = Prop->getString()->stringValue(); + } + } + } + Dict->FreeTag(); + } else if (FileExists (Volume->RootDir, L"\\com.apple.recovery.boot\\boot.efi")) { + // Special case - com.apple.recovery.boot/boot.efi exists but SystemVersion.plist doesn't --> 10.9 recovery + OSVersion = "10.9"_XS8; + } + } + + if (PlistBuffer != NULL) { + FreePool(PlistBuffer); + } + (*BuildVersionPtr).stealValueFrom(&BuildVersion); + return OSVersion; +} + +inline MacOsVersion GetOSVersion (IN LOADER_ENTRY *Entry) { return GetOSVersion(Entry->LoaderType, Entry->APFSTargetUUID, Entry->Volume, &Entry->BuildVersion); }; + +//constexpr XStringW iconMac = L"mac"_XSW; +CONST XStringW +GetOSIconName (const MacOsVersion& OSVersion) +{ + XStringW OSIconName; + if (OSVersion.isEmpty()) { + OSIconName = L"mac"_XSW; + } else if ( (OSVersion.elementAt(0) == 10 && OSVersion.elementAt(1) == 16 ) || + (OSVersion.elementAt(0) == 11 /*&& OSVersion.elementAt(1) == 0*/ ) + ) { + // Big Sur + OSIconName = L"bigsur,mac"_XSW; + }else if ( OSVersion.elementAt(0) == 10 ) { + if ( OSVersion.elementAt(1) == 15 ) { + // Catalina + OSIconName = L"cata,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 14 ) { + // Mojave + OSIconName = L"moja,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 13 ) { + // High Sierra + OSIconName = L"hsierra,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 12 ) { + // Sierra + OSIconName = L"sierra,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 11 ) { + // El Capitan + OSIconName = L"cap,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 10 ) { + // Yosemite + OSIconName = L"yos,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 9 ) { + // Mavericks + OSIconName = L"mav,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 8 ) { + // Mountain Lion + OSIconName = L"cougar,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 7 ) { + // Lion + OSIconName = L"lion,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 6 ) { + // Snow Leopard + OSIconName = L"snow,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 5 ) { + // Leopard + OSIconName = L"leo,mac"_XSW; + } else if ( OSVersion.elementAt(1) == 4 ) { + // Tiger + OSIconName = L"tiger,mac"_XSW; + } else { + OSIconName = L"mac"_XSW; + } + } else { + OSIconName = L"mac"_XSW; + } + + return OSIconName; +} + STATIC LOADER_ENTRY *CreateLoaderEntry(IN CONST XStringW& LoaderPath, IN CONST XString8Array& LoaderOptions, IN CONST XString8& FullTitle, @@ -1327,6 +1762,83 @@ void AddPRSEntry(REFIT_VOLUME *Volume) #undef Rock #undef Scissor +XString8 GetAuthRootDmg(const EFI_FILE& dir, const XStringW& path) +{ + XString8 returnValue; + + XStringW plist = SWPrintf("%ls\\com.apple.Boot.plist", path.wc_str()); + if ( !FileExists(dir, plist) ) return NullXString8; + + CHAR8* PlistBuffer = NULL; + UINTN PlistLen; + TagDict* Dict = NULL; + const TagStruct* Prop = NULL; + + EFI_STATUS Status = egLoadFile(&dir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) + { + Prop = Dict->propertyForKey("Kernel Flags"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : Kernel Flags not string in ProductVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + const XString8& kernelFlags = Prop->getString()->stringValue(); + size_t idx = kernelFlags.indexOf("auth-root-dmg"); + if ( idx == MAX_XSIZE ) return NullXString8; + idx += strlen("auth-root-dmg"); + while ( idx < kernelFlags.length() && IS_BLANK(kernelFlags[idx]) ) ++idx; + if ( kernelFlags[idx] == '=' ) ++idx; + else return NullXString8; + while ( idx < kernelFlags.length() && IS_BLANK(kernelFlags[idx]) ) ++idx; + if ( kernelFlags.isEqualAtIC(idx, "file://"_XS8) ) idx += strlen("file://"); + size_t idxEnd = idx; + while ( idxEnd < kernelFlags.length() && !IS_BLANK(kernelFlags[idxEnd]) ) ++idxEnd; + returnValue = kernelFlags.subString(idx, idxEnd - idx); + } + } + } + } + if ( PlistBuffer ) FreePool(PlistBuffer); + return returnValue; +} + +MacOsVersion GetMacOSVersionFromFolder(const EFI_FILE& dir, const XStringW& path) +{ + MacOsVersion macOSVersion; + + XStringW plist = SWPrintf("%ls\\SystemVersion.plist", path.wc_str()); + if ( !FileExists(dir, plist) ) { + plist = SWPrintf("%ls\\ServerVersion.plist", path.wc_str()); + if ( !FileExists(dir, plist) ) { + plist.setEmpty(); + } + } + + if ( plist.notEmpty() ) { // found macOS System + CHAR8* PlistBuffer = NULL; + UINTN PlistLen; + TagDict* Dict = NULL; + const TagStruct* Prop = NULL; + + EFI_STATUS Status = egLoadFile(&dir, plist.wc_str(), (UINT8 **)&PlistBuffer, &PlistLen); + if (!EFI_ERROR(Status) && PlistBuffer != NULL && ParseXML(PlistBuffer, &Dict, 0) == EFI_SUCCESS) { + Prop = Dict->propertyForKey("ProductVersion"); + if ( Prop != NULL ) { + if ( !Prop->isString() ) { + MsgLog("ATTENTION : property not string in ProductVersion\n"); + }else{ + if( Prop->getString()->stringValue().notEmpty() ) { + macOSVersion = Prop->getString()->stringValue(); + } + } + } + } + if ( PlistBuffer ) FreePool(PlistBuffer); + } + return macOSVersion; +} + void ScanLoader(void) { //DBG("Scanning loaders...\n"); @@ -2251,10 +2763,15 @@ STATIC void AddCustomEntry(IN UINTN CustomIndex, Custom.settings.Type, newCustomFlags, Custom.settings.Hotkey, Custom.settings.BootBgColor, Custom.CustomLogoType, Custom.CustomLogoImage, /*(KERNEL_AND_KEXT_PATCHES *)(((UINTN)Custom) + OFFSET_OF(CUSTOM_LOADER_ENTRY, KernelAndKextPatches))*/ NULL, TRUE); if (Entry != NULL) { - if ( Custom.settings.Settings.notEmpty() ) DBG("Custom settings: %ls.plist will %s be applied\n", Custom.settings.Settings.wc_str(), Custom.settings.CommonSettings?"not":""); + if ( Custom.settings.Settings.notEmpty() ) { + DBG("Custom settings: %ls.plist will %s be applied\n", Custom.settings.Settings.wc_str(), Custom.settings.CommonSettings?"not":""); + } if (!Custom.settings.CommonSettings) { Entry->Settings = DefaultEntrySettings; } + if (Custom.settings.ForceTextMode) { + Entry->Flags = OSFLAG_UNSET(Entry->Flags, OSFLAG_USEGRAPHICS); + } if (OSFLAG_ISUNSET(newCustomFlags, OSFLAG_NODEFAULTMENU)) { Entry->AddDefaultMenu(); } else if (Custom.SubEntries.notEmpty()) { diff --git a/rEFIt_UEFI/entry_scan/loader.h b/rEFIt_UEFI/entry_scan/loader.h index 450762951..fc4f0b3a2 100644 --- a/rEFIt_UEFI/entry_scan/loader.h +++ b/rEFIt_UEFI/entry_scan/loader.h @@ -9,6 +9,8 @@ #define LOADER_H_ #include "../cpp_foundation/XString.h" +#include "../Platform/MacOsVersion.h" +#include "../Platform/Volume.h" //#define DUMP_KERNEL_KEXT_PATCHES 1 @@ -32,4 +34,12 @@ void DumpKernelAndKextPatches(KERNEL_AND_KEXT_PATCHES *Patches); #endif +CONST XStringW +GetOSIconName ( + const MacOsVersion& OSVersion + ); + +MacOsVersion GetOSVersion(int LoaderType, const XStringW& APFSTargetUUID, const REFIT_VOLUME* Volume, XString8* BuildVersionPtr); +MacOsVersion GetMacOSVersionFromFolder(const EFI_FILE& dir, const XStringW& path); + #endif diff --git a/rEFIt_UEFI/entry_scan/lockedgraphics.cpp b/rEFIt_UEFI/entry_scan/lockedgraphics.cpp index a2cf7f0cf..365f8d0e0 100644 --- a/rEFIt_UEFI/entry_scan/lockedgraphics.cpp +++ b/rEFIt_UEFI/entry_scan/lockedgraphics.cpp @@ -34,7 +34,7 @@ #include #include "entry_scan.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #ifndef DEBUG_ALL #define DEBUG_LOCK_BOOT_SCREEN 1 diff --git a/rEFIt_UEFI/entry_scan/secureboot.cpp b/rEFIt_UEFI/entry_scan/secureboot.cpp index cbc098e12..4c21bfaac 100644 --- a/rEFIt_UEFI/entry_scan/secureboot.cpp +++ b/rEFIt_UEFI/entry_scan/secureboot.cpp @@ -39,7 +39,7 @@ #include #include "../Platform/Settings.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "entry_scan.h" #include "secureboot.h" diff --git a/rEFIt_UEFI/entry_scan/securemenu.cpp b/rEFIt_UEFI/entry_scan/securemenu.cpp index d47e21d86..6b0a6bbb1 100644 --- a/rEFIt_UEFI/entry_scan/securemenu.cpp +++ b/rEFIt_UEFI/entry_scan/securemenu.cpp @@ -44,7 +44,7 @@ #include "../gui/REFIT_MENU_SCREEN.h" #include "../gui/menu_items/menu_items.h" #include "secureboot.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../refit/screen.h" #include "../libeg/XTheme.h" diff --git a/rEFIt_UEFI/entry_scan/tool.cpp b/rEFIt_UEFI/entry_scan/tool.cpp index 3c72bc657..3512a6094 100644 --- a/rEFIt_UEFI/entry_scan/tool.cpp +++ b/rEFIt_UEFI/entry_scan/tool.cpp @@ -41,7 +41,7 @@ #include "../refit/lib.h" #include "../gui/REFIT_MENU_SCREEN.h" #include "../gui/REFIT_MAINMENU_SCREEN.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../Platform/Volumes.h" #include "../libeg/XTheme.h" #include "../include/OSFlags.h" diff --git a/rEFIt_UEFI/generate_source_list.sh b/rEFIt_UEFI/generate_source_list.sh index db8d6e186..f85543189 100755 --- a/rEFIt_UEFI/generate_source_list.sh +++ b/rEFIt_UEFI/generate_source_list.sh @@ -1,3 +1,8 @@ +#!/bin/bash +SCRIPT_ABS_FILENAME=`LC_ALL=en_US.ISO8859-1 perl -e 'use Cwd "abs_path";print abs_path(shift)' "${BASH_SOURCE[0]}"` +SCRIPT_DIR=`dirname "$SCRIPT_ABS_FILENAME"` + +cd "$SCRIPT_DIR" echo " ../Include/Library/printf_lite-conf.h" echo " ../Include/Library/printf_lite.h" diff --git a/rEFIt_UEFI/gui/REFIT_MAINMENU_SCREEN.cpp b/rEFIt_UEFI/gui/REFIT_MAINMENU_SCREEN.cpp index c8b0dd8ca..aa0e38bee 100644 --- a/rEFIt_UEFI/gui/REFIT_MAINMENU_SCREEN.cpp +++ b/rEFIt_UEFI/gui/REFIT_MAINMENU_SCREEN.cpp @@ -56,9 +56,10 @@ #include "../Platform/Nvram.h" #include "../refit/screen.h" #include "../Platform/Events.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../Platform/Volumes.h" #include "../include/OSFlags.h" +#include "../Platform/CloverVersion.h" #ifndef DEBUG_ALL #define DEBUG_MENU 1 @@ -181,12 +182,12 @@ void REFIT_MENU_SCREEN::DrawTextCorner(UINTN TextC, UINT8 Align) Text = L"F1:Help"_XSW; break; case TEXT_CORNER_OPTIMUS: - if (gGraphics[0].Vendor != Intel) { + if (gConf.GfxPropertiesArray.size() > 0 && gConf.GfxPropertiesArray[0].Vendor != Intel) { Text = L"Discrete"_XSW; } else { Text = L"Intel"_XSW; } - // Text = (NGFX == 2)?L"Intel":L"Discrete"; + // Text = (gConf.GfxPropertiesArray.size() == 2)?L"Intel":L"Discrete"; break; default: return; diff --git a/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp b/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp index 48550dbdf..71302a2ee 100644 --- a/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp +++ b/rEFIt_UEFI/gui/REFIT_MENU_SCREEN.cpp @@ -56,7 +56,7 @@ #include "../Platform/Nvram.h" #include "../refit/screen.h" #include "../Platform/Events.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../Platform/Volumes.h" #include "../include/OSFlags.h" diff --git a/rEFIt_UEFI/include/Net.h b/rEFIt_UEFI/include/Net.h new file mode 100644 index 000000000..74c5d73ff --- /dev/null +++ b/rEFIt_UEFI/include/Net.h @@ -0,0 +1,38 @@ +/* + * Net.h + * + * Created on: Apr 27, 2021 + * Author: jief + */ + +#ifndef INCLUDE_NET_H_ +#define INCLUDE_NET_H_ + + + +//Marvell Yukon +#define B2_MAC_1 0x0100 /* NA reg MAC Address 1 */ +#define B2_MAC_2 0x0108 /* NA reg MAC Address 2 */ +#define B2_MAC_3 0x0110 /* NA reg MAC Address 3 */ + +//Atheros +#define L1C_STAD0 0x1488 +#define L1C_STAD1 0x148C + +//Intel +#define INTEL_MAC_1 0x5400 +#define INTEL_MAC_2 0x54E0 + +// Broadcom MAC Address Registers +#define EMAC_MACADDR0_HI 0x00000410 +#define EMAC_MACADDR0_LO 0x00000414 +#define EMAC_MACADDR1_HI 0x00000418 +#define EMAC_MACADDR1_LO 0x0000041C +#define EMAC_MACADDR2_HI 0x00000420 +#define EMAC_MACADDR2_LO 0x00000424 +#define EMAC_MACADDR3_HI 0x00000428 +#define EMAC_MACADDR3_LO 0x0000042C + + + +#endif /* INCLUDE_NET_H_ */ diff --git a/rEFIt_UEFI/libeg/VectorGraphics.cpp b/rEFIt_UEFI/libeg/VectorGraphics.cpp index 2b7efbb7b..cf1a83b70 100755 --- a/rEFIt_UEFI/libeg/VectorGraphics.cpp +++ b/rEFIt_UEFI/libeg/VectorGraphics.cpp @@ -22,7 +22,7 @@ #include "../refit/screen.h" #include "../cpp_foundation/XString.h" #include "../refit/lib.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #ifndef DEBUG_ALL #define DEBUG_VEC 1 diff --git a/rEFIt_UEFI/libeg/XTheme.cpp b/rEFIt_UEFI/libeg/XTheme.cpp index 51f346978..c7554040f 100644 --- a/rEFIt_UEFI/libeg/XTheme.cpp +++ b/rEFIt_UEFI/libeg/XTheme.cpp @@ -674,11 +674,11 @@ XTheme::GetThemeTagSettings(const TagDict* DictPointer) if (AnimeArray != NULL) { INTN Count = AnimeArray->arrayContent().size(); for (INTN i = 0; i < Count; i++) { - Dict3 = AnimeArray->dictElementAt(i, "Anime"_XS8); - if ( !Dict3->isDict() ) { - MsgLog("MALFORMED PLIST : Anime must be an array of dict"); + if ( !AnimeArray->elementAt(i)->isDict() ) { + MsgLog("MALFORMED PLIST : Anime must be an array of dict\n"); continue; } + Dict3 = AnimeArray->dictElementAt(i, "Anime"_XS8); FILM *NewFilm = new FILM(); diff --git a/rEFIt_UEFI/libeg/XTheme.h b/rEFIt_UEFI/libeg/XTheme.h index 56766ee51..902403a81 100644 --- a/rEFIt_UEFI/libeg/XTheme.h +++ b/rEFIt_UEFI/libeg/XTheme.h @@ -3,7 +3,7 @@ #include "../cpp_foundation/XObjArray.h" #include "../cpp_foundation/XString.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "libeg.h" #include "XImage.h" #include "XIcon.h" diff --git a/rEFIt_UEFI/libeg/libscreen.cpp b/rEFIt_UEFI/libeg/libscreen.cpp index 793e3f2b8..44558f223 100644 --- a/rEFIt_UEFI/libeg/libscreen.cpp +++ b/rEFIt_UEFI/libeg/libscreen.cpp @@ -38,7 +38,7 @@ #include "libegint.h" #include "lodepng.h" #include "../Platform/Settings.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" // Console defines and variables diff --git a/rEFIt_UEFI/libeg/text.cpp b/rEFIt_UEFI/libeg/text.cpp index 173df114a..08ca737e3 100644 --- a/rEFIt_UEFI/libeg/text.cpp +++ b/rEFIt_UEFI/libeg/text.cpp @@ -45,7 +45,7 @@ extern "C" { #include "VectorGraphics.h" #include "XTheme.h" #include "../Platform/Settings.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" //#include "egemb_font.h" //#define FONT_CELL_WIDTH (7) diff --git a/rEFIt_UEFI/refit.inf b/rEFIt_UEFI/refit.inf index 993710af8..c818a7bb1 100644 --- a/rEFIt_UEFI/refit.inf +++ b/rEFIt_UEFI/refit.inf @@ -19,8 +19,8 @@ BASE_NAME = CLOVERX64 FILE_GUID = 8F7D7B1E-0E1C-4C98-B12E-4EC99C4081AC MODULE_TYPE = UEFI_APPLICATION - EDK_RELEASE_VERSION = 0x00020000 - EFI_SPECIFICATION_VERSION = 0x00010000 + EDK_RELEASE_VERSION = 0x00020000 + EFI_SPECIFICATION_VERSION = 0x00010000 VERSION_STRING = 1.0 ENTRY_POINT = RefitMain @@ -50,6 +50,18 @@ cpp_foundation/XStringArray.h cpp_foundation/XToolsCommon.h cpp_lib/undefinable.h + cpp_lib/XmlLiteArrayTypes.cpp + cpp_lib/XmlLiteArrayTypes.h + cpp_lib/XmlLiteCompositeTypes.cpp + cpp_lib/XmlLiteCompositeTypes.h + cpp_lib/XmlLiteDictTypes.cpp + cpp_lib/XmlLiteDictTypes.h + cpp_lib/XmlLiteParser.cpp + cpp_lib/XmlLiteParser.h + cpp_lib/XmlLiteSimpleTypes.cpp + cpp_lib/XmlLiteSimpleTypes.h + cpp_lib/XmlLiteUnionTypes.cpp + cpp_lib/XmlLiteUnionTypes.h cpp_unit_test/all_tests.cpp cpp_unit_test/all_tests.h cpp_unit_test/find_replace_mask_Clover_tests.cpp @@ -80,6 +92,10 @@ cpp_unit_test/XArray_tests.h cpp_unit_test/XBuffer_tests.cpp cpp_unit_test/XBuffer_tests.h + cpp_unit_test/xml_lite-reapeatingdict-test.cpp + cpp_unit_test/xml_lite-reapeatingdict-test.h + cpp_unit_test/xml_lite-test.cpp + cpp_unit_test/xml_lite-test.h cpp_unit_test/XObjArray_tests.cpp cpp_unit_test/XObjArray_tests.h cpp_unit_test/XStringArray_test.cpp @@ -126,6 +142,7 @@ include/Efi.h include/Handle.h include/Languages.h + include/Net.h include/OC.h include/OneLinerMacros.h include/OSFlags.h @@ -189,6 +206,8 @@ Platform/BootOptions.h Platform/card_vlist.cpp Platform/card_vlist.h + Platform/CloverVersion.cpp + Platform/CloverVersion.h Platform/Console.cpp Platform/Console.h Platform/cpu.cpp @@ -198,7 +217,6 @@ Platform/DataHubCpu.cpp Platform/DataHubCpu.h Platform/DataHubExt.h - Platform/DevicePath.cpp Platform/device_inject.cpp Platform/device_inject.h Platform/Edid.cpp @@ -237,8 +255,6 @@ Platform/MemoryOperation.c Platform/MemoryOperation.h Platform/memvendors.h - Platform/Net.cpp - Platform/Net.h Platform/nvidia.cpp Platform/nvidia.h Platform/Nvram.cpp @@ -271,14 +287,14 @@ Platform/plist/TagString8.h Platform/plist/xml.cpp Platform/plist/xml.h - Platform/Self.cpp - Platform/Self.h - Platform/SelfOem.cpp - Platform/SelfOem.h Platform/Settings.cpp Platform/Settings.h + Platform/SettingsUtils.cpp + Platform/SettingsUtils.h Platform/smbios.cpp Platform/smbios.h + Platform/SmbiosFillPatchingValues.cpp + Platform/SmbiosFillPatchingValues.h Platform/sound.cpp Platform/spd.cpp Platform/spd.h @@ -294,6 +310,8 @@ Platform/Utils.h Platform/VersionString.cpp Platform/VersionString.h + Platform/Volume.cpp + Platform/Volume.h Platform/Volumes.cpp Platform/Volumes.h PlatformEFI/BasicIO.cpp @@ -337,6 +355,41 @@ refit/menu.h refit/screen.cpp refit/screen.h + Settings/ConfigManager.cpp + Settings/ConfigManager.h + Settings/ConfigPlist/ConfigPlistAbstract.cpp + Settings/ConfigPlist/ConfigPlistAbstract.h + Settings/ConfigPlist/ConfigPlistClass.cpp + Settings/ConfigPlist/ConfigPlistClass.h + Settings/ConfigPlist/Config_ACPI.cpp + Settings/ConfigPlist/Config_ACPI.h + Settings/ConfigPlist/Config_ACPI_DSDT.cpp + Settings/ConfigPlist/Config_ACPI_DSDT.h + Settings/ConfigPlist/Config_ACPI_SSDT.h + Settings/ConfigPlist/Config_Boot.h + Settings/ConfigPlist/Config_BootGraphics.h + Settings/ConfigPlist/Config_CPU.h + Settings/ConfigPlist/Config_Devices.h + Settings/ConfigPlist/Config_Devices_AddProperties.h + Settings/ConfigPlist/Config_Devices_Arbitrary.h + Settings/ConfigPlist/Config_Devices_Audio.h + Settings/ConfigPlist/Config_Devices_FakeID.h + Settings/ConfigPlist/Config_Devices_Properties.h + Settings/ConfigPlist/Config_Devices_USB.h + Settings/ConfigPlist/Config_Graphics.h + Settings/ConfigPlist/Config_GUI.cpp + Settings/ConfigPlist/Config_GUI.h + Settings/ConfigPlist/Config_KernelAndKextPatches.h + Settings/ConfigPlist/Config_Quirks.cpp + Settings/ConfigPlist/Config_Quirks.h + Settings/ConfigPlist/Config_RtVariables.h + Settings/ConfigPlist/Config_SystemParameters.h + Settings/ConfigPlist/SMBIOSPlist.cpp + Settings/ConfigPlist/SMBIOSPlist.h + Settings/Self.cpp + Settings/Self.h + Settings/SelfOem.cpp + Settings/SelfOem.h [Sources.IA32] PlatformIA32/ftol.asm | MSFT @@ -450,14 +503,14 @@ gEfiFirmwareVolume2ProtocolGuid # PROTOCOL CONSUMES gEfiGraphicsOutputProtocolGuid # PROTOCOL SOMETIMES_CONSUMES gEfiHiiFontProtocolGuid # PROTOCOL CONSUMES - gEfiLegacy8259ProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES + gEfiLegacy8259ProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES gEfiLoadedImageProtocolGuid # PROTOCOL CONSUMES gEfiOEMBadgingProtocolGuid # PROTOCOL CONSUMES gEfiPciIoProtocolGuid # PROTOCOL CONSUMES gEfiScsiIoProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES gEfiScsiPassThruProtocolGuid ## PROTOCOL SOMETIMES_CONSUMES gEfiSimpleNetworkProtocolGuid # PROTOCOL CONSUMES - gEfiStatusCodeRuntimeProtocolGuid # PROTOCOL CONSUMES + gEfiStatusCodeRuntimeProtocolGuid # PROTOCOL CONSUMES gEfiUgaDrawProtocolGuid |PcdUgaConsumeSupport # PROTOCOL SOMETIMES_CONSUMES gEfiManagedNetworkServiceBindingProtocolGuid diff --git a/rEFIt_UEFI/refit/lib.cpp b/rEFIt_UEFI/refit/lib.cpp index 59898acae..0bf8d154f 100644 --- a/rEFIt_UEFI/refit/lib.cpp +++ b/rEFIt_UEFI/refit/lib.cpp @@ -45,8 +45,8 @@ #include "../Platform/APFS.h" #include "../refit/lib.h" #include "../Platform/Settings.h" -#include "../Platform/Self.h" -#include "../Platform/SelfOem.h" +#include "../Settings/Self.h" +#include "../Settings/SelfOem.h" #include "../Platform/Volumes.h" #include "../libeg/XTheme.h" diff --git a/rEFIt_UEFI/refit/lib.h b/rEFIt_UEFI/refit/lib.h index 8090c5436..8c3369b59 100644 --- a/rEFIt_UEFI/refit/lib.h +++ b/rEFIt_UEFI/refit/lib.h @@ -296,6 +296,8 @@ EFI_STATUS InitializeUnicodeCollationProtocol (void); //extern INTN FontWidth; //extern INTN FontHeight; +#ifndef DONT_DEFINE_GLOBALS + extern const INTN BCSMargin; extern const EFI_GRAPHICS_OUTPUT_BLT_PIXEL StdBackgroundPixel; extern const EFI_GRAPHICS_OUTPUT_BLT_PIXEL MenuBackgroundPixel; @@ -316,6 +318,8 @@ extern INTN UGAWidth; extern INTN UGAHeight; extern BOOLEAN AllowGraphicsMode; +#endif + #if REFIT_DEBUG > 0 void DebugPause(void); #else diff --git a/rEFIt_UEFI/refit/main.cpp b/rEFIt_UEFI/refit/main.cpp index 354cc8d1c..af956d399 100644 --- a/rEFIt_UEFI/refit/main.cpp +++ b/rEFIt_UEFI/refit/main.cpp @@ -35,9 +35,10 @@ */ #include // Only use angled for Platform, else, xcode project won't compile -#include "../cpp_foundation/XString.h" #include #include + +#include "../cpp_foundation/XString.h" #include "../cpp_unit_test/all_tests.h" #include "../entry_scan/entry_scan.h" @@ -63,7 +64,6 @@ #include "../Platform/PlatformDriverOverride.h" #include "../Platform/Edid.h" #include "../Platform/Console.h" -#include "../Platform/Net.h" #include "../Platform/spd.h" #include "../Platform/Injectors.h" #include "../Platform/StartupSound.h" @@ -73,13 +73,15 @@ #include "../Platform/KextList.h" #include "../gui/REFIT_MENU_SCREEN.h" #include "../gui/REFIT_MAINMENU_SCREEN.h" -#include "../Platform/Self.h" -#include "../Platform/SelfOem.h" -#include "../Platform/Net.h" +#include "../Settings/Self.h" +#include "../Settings/SelfOem.h" #include "../Platform/BasicIO.h" #include "../include/OSTypes.h" #include "../include/OSFlags.h" #include "../libeg/XTheme.h" +#include "../Settings/ConfigManager.h" +#include "../Platform/CloverVersion.h" +#include "../Platform/SmbiosFillPatchingValues.h" #include "../include/OC.h" @@ -747,25 +749,12 @@ void LOADER_ENTRY::StartLoader() if (Settings.notEmpty()) { DBG(" Settings: %ls\n", Settings.wc_str()); - TagDict* dict; - Status = LoadUserSettings(Settings, &dict); + Status = gConf.ReLoadConfig(Settings); if (!EFI_ERROR(Status)) { DBG(" - found custom settings for this entry: %ls\n", Settings.wc_str()); - GlobalConfig.gBootChanged = TRUE; - Status = GetUserSettings(dict, gSettings); - if (EFI_ERROR(Status)) { - DBG(" - ... but: %s\n", efiStrError(Status)); - } else { - if ((gSettings.CPU.CpuFreqMHz > 100) && (gSettings.CPU.CpuFreqMHz < 20000)) { - gCPUStructure.MaxSpeed = gSettings.CPU.CpuFreqMHz; - } - //CopyMem(KernelAndKextPatches, - // &gSettings.KernelAndKextPatches, - // sizeof(KERNEL_AND_KEXT_PATCHES)); - //DBG("Custom KernelAndKextPatches copyed to started entry\n"); - } } else { DBG(" - [!] LoadUserSettings failed: %s\n", efiStrError(Status)); + /* we are not sure of the state of gSettings here... try to boot anyway */ } } @@ -1399,7 +1388,8 @@ void LOADER_ENTRY::StartLoader() // first patchACPI and find PCIROOT and RTC // but before ACPI patch we need smbios patch CheckEmptyFB(); - PatchSmbios(); + SmbiosFillPatchingValues(GlobalConfig.SetTable132, GlobalConfig.EnabledCores, g_SmbiosDiscoveredSettings.RamSlotCount, gConf.SlotDeviceArray, gSettings, gCPUStructure, &g_SmbiosInjectedSettings); + PatchSmbios(g_SmbiosInjectedSettings); // DBG("PatchACPI\n"); PatchACPI(Volume, macOSVersion); // @@ -1422,7 +1412,7 @@ void LOADER_ENTRY::StartLoader() // Jief : if we want to use our FixUSBOwnership, we need our OnExitBootServices EventsInitialize(this); // DBG("FinalizeSmbios\n"); - FinalizeSmbios(); + FinalizeSmbios(g_SmbiosInjectedSettings); SetCPUProperties(); //very special procedure @@ -2385,46 +2375,6 @@ void SetVariablesFromNvram() } -//BOOLEAN SetOEMPathIfExists(const EFI_FILE *Root, const XStringW& path, const XStringW& ConfName) -//{ -// BOOLEAN res = FileExists(Root, path); -// if ( res ) { -// CHAR16 ConfigPath[1024]; -// snwprintf(ConfigPath, sizeof(ConfigPath), "%ls\\%ls.plist", path.wc_str(), ConfName.wc_str()); -// BOOLEAN res2 = FileExists(Root, ConfigPath); -// if ( res2 ) { -// OEMPath = path; -// DBG("CheckOEMPathExists: set OEMPath: %ls\n", OEMPath.wc_str()); -// return 1; -// }else{ -// DBG("CheckOEMPathExists tried %ls. '%ls.plist' not exists in dir\n", path.wc_str(), ConfName.wc_str()); -// } -// }else{ -// DBG("CheckOEMPathExists tried %ls. Dir not exists\n", path.wc_str()); -// } -// return 0; -//} -// -//void SetOEMPath(const XStringW& ConfName) -// { -// OEMPath.takeValueFrom("EFI\\CLOVER"); -// if ( ConfName.isEmpty() ) { -// DBG("set OEMPath (ConfName == NULL): %ls\n", OEMPath.wc_str()); -// } else if ( nLanCards > 0 && SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", GlobalConfig.OEMProductFromSmbios.c_str(), gLanMac[0][0], gLanMac[0][1], gLanMac[0][2], gLanMac[0][3], gLanMac[0][4], gLanMac[0][5]), ConfName)) { -// } else if ( nLanCards > 1 && SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", GlobalConfig.OEMProductFromSmbios.c_str(), gLanMac[1][0], gLanMac[1][1], gLanMac[1][2], gLanMac[1][3], gLanMac[1][4], gLanMac[1][5]), ConfName)) { -// } else if ( nLanCards > 2 && SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", GlobalConfig.OEMProductFromSmbios.c_str(), gLanMac[2][0], gLanMac[2][1], gLanMac[2][2], gLanMac[2][3], gLanMac[2][4], gLanMac[2][5]), ConfName)) { -// } else if ( nLanCards > 3 && SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s--%02X-%02X-%02X-%02X-%02X-%02X", GlobalConfig.OEMProductFromSmbios.c_str(), gLanMac[3][0], gLanMac[3][1], gLanMac[3][2], gLanMac[3][3], gLanMac[3][4], gLanMac[3][5]), ConfName)) { -// } else if (!gFirmwareClover && SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s\\UEFI", GlobalConfig.OEMBoardFromSmbios.c_str()), ConfName)) { -// } else if (SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s", GlobalConfig.OEMProductFromSmbios.c_str()), ConfName)) { -// } else if (SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s-%d", GlobalConfig.OEMProductFromSmbios.c_str(), (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega))), ConfName)) { -// } else if (SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s", GlobalConfig.OEMBoardFromSmbios.c_str()), ConfName)) { -// } else if (SetOEMPathIfExists(&self.getSelfRootDir(), SWPrintf("EFI\\CLOVER\\OEM\\%s-%d", GlobalConfig.OEMBoardFromSmbios.c_str(), (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega))), ConfName) ) { -// } else { -// DBG("set OEMPath by default: %ls\n", OEMPath.wc_str()); -// } -// } - - void GetListOfConfigs () { @@ -2581,231 +2531,109 @@ GetListOfThemes () DirIterClose(&DirIter); } -/* - * To ease copy/paste and text replacement from GetUserSettings, the parameter has the same name as the global - * and is passed by non-const reference. - * This temporary during the refactoring - * All code from this comes from settings.cpp. I am taking out all the init code from settings.cpp so I can replace the reading layer. - */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -void afterGetUserSettings(SETTINGS_DATA& gSettings) -{ -#pragma GCC diagnostic pop +//// +//// analyze self.getSelfLoadedImage().LoadOptions to extract Default Volume and Default Loader +//// input and output data are global +//// +//void +//GetBootFromOption(void) +//{ +// UINT8 *Data = (UINT8*)self.getSelfLoadedImage().LoadOptions; +// UINTN Len = self.getSelfLoadedImage().LoadOptionsSize; +// UINTN NameSize, Name2Size; +// +// Data += 4; //skip signature as we already here +// NameSize = *(UINT16*)Data; +// +// Data += 2; // pointer to Volume name +// settingsData.Boot.DefaultVolume.strncpy((__typeof__(settingsData.Boot.DefaultVolume.wc_str()))Data, NameSize); +// +// Data += NameSize; +// Name2Size = Len - NameSize; +// if (Name2Size != 0) { +// settingsData.Boot.DefaultLoader.strncpy((__typeof__(settingsData.Boot.DefaultVolume.wc_str()))Data, NameSize); +// } +// +// DBG("Clover started with option to boot %ls from %ls\n", +// settingsData.Boot.DefaultLoader.notEmpty() ? settingsData.Boot.DefaultLoader.wc_str() : L"legacy", +// settingsData.Boot.DefaultVolume.wc_str()); +//} - // Secure boot - /* this parameter, which should be called SecureBootSetupMode, is ignored if : - * it is true - * SecureBoot is already true. - */ - if ( gSettings.Boot.SecureSetting == 0 ) { - // Only disable setup mode, we want always secure boot - GlobalConfig.SecureBootSetupMode = 0; - } else if ( gSettings.Boot.SecureSetting == 1 && !GlobalConfig.SecureBoot ) { - // This mode will force boot policy even when no secure boot or it is disabled - GlobalConfig.SecureBootSetupMode = 1; - GlobalConfig.SecureBoot = 1; - } +//void +//ParseLoadOptions ( +// OUT XStringW* ConfNamePtr, +// OUT TagDict** Dict +// ) +//{ +// CHAR8 *End; +// CHAR8 *Start; +// UINTN TailSize; +// UINTN i; +// CONST CHAR8 *PlistStrings[] = +// { +// "", +// "\0" +// }; +// +// UINTN PlistStringsLen; +// *Dict = NULL; +// +// XStringW& ConfName = *ConfNamePtr; +// +// Start = (CHAR8*)self.getSelfLoadedImage().LoadOptions; +// End = (CHAR8*)((CHAR8*)self.getSelfLoadedImage().LoadOptions + self.getSelfLoadedImage().LoadOptionsSize); +// while ((Start < End) && ((*Start == ' ') || (*Start == '\\') || (*Start == '/'))) +// { +// ++Start; +// } +// +// TailSize = End - Start; +// //DBG("TailSize = %d\n", TailSize); +// +// if ((TailSize) <= 0) { +// return; +// } +// +// for (i = 0; PlistStrings[i][0] != '\0'; i++) { +// PlistStringsLen = AsciiStrLen(PlistStrings[i]); +// //DBG("PlistStrings[%d] = %s\n", i, PlistStrings[i]); +// if (PlistStringsLen < TailSize) { +// if (AsciiStriNCmp(PlistStrings[i], Start, PlistStringsLen)) { +// DBG(" - found plist string = %s, parse XML in LoadOptions\n", PlistStrings[i]); +// if (ParseXML(Start, Dict, TailSize) != EFI_SUCCESS) { +// *Dict = NULL; +// DBG(" - [!] xml in load options is bad\n"); +// return; +// } +// return; +// } +// } +// } +// +// while ((End > Start) && ((*End == ' ') || (*End == '\\') || (*End == '/'))) { +// --End; +// } +// +// TailSize = End - Start; +// // DBG("TailSize2 = %d\n", TailSize); +// +// if (TailSize > 6) { +// if (AsciiStriNCmp(".plist", End - 6, 6)) { +// End -= 6; +// TailSize -= 6; +// // DBG("TailSize3 = %d\n", TailSize); +// } +// } else if (TailSize <= 0) { +// return; +// } +// +// ConfName.strncpy(Start, TailSize + 1); +//} - //set to drop - GlobalConfig.DropSSDT = gSettings.ACPI.SSDT.DropSSDTSetting; - if (GlobalConfig.ACPIDropTables) { - for ( size_t idx = 0 ; idx < gSettings.ACPI.ACPIDropTablesArray.size() ; ++idx) - { - ACPI_DROP_TABLE *DropTable = GlobalConfig.ACPIDropTables; - DBG(" - [%02zd]: Drop table : %08X, %16llx : ", idx, gSettings.ACPI.ACPIDropTablesArray[idx].Signature, gSettings.ACPI.ACPIDropTablesArray[idx].TableId); - bool Dropped = FALSE; - while (DropTable) { - if (((gSettings.ACPI.ACPIDropTablesArray[idx].Signature == DropTable->Signature) && - (!gSettings.ACPI.ACPIDropTablesArray[idx].TableId || (DropTable->TableId == gSettings.ACPI.ACPIDropTablesArray[idx].TableId)) && - (!gSettings.ACPI.ACPIDropTablesArray[idx].TabLength || (DropTable->Length == gSettings.ACPI.ACPIDropTablesArray[idx].TabLength))) || - (!gSettings.ACPI.ACPIDropTablesArray[idx].Signature && (DropTable->TableId == gSettings.ACPI.ACPIDropTablesArray[idx].TableId))) { - DropTable->MenuItem.BValue = TRUE; - DropTable->OtherOS = gSettings.ACPI.ACPIDropTablesArray[idx].OtherOS; - GlobalConfig.DropSSDT = FALSE; // if one item=true then dropAll=false by default - //DBG(" true"); - Dropped = TRUE; - } - DropTable = DropTable->Next; - } - DBG(" %s\n", Dropped ? "yes" : "no"); - } - } - - // Whether or not to draw boot screen - GlobalConfig.CustomLogoType = gSettings.Boot.CustomLogoType; - if ( gSettings.Boot.CustomLogoType == CUSTOM_BOOT_USER && gSettings.Boot.CustomLogoAsXString8.notEmpty() ) { - if (GlobalConfig.CustomLogo != NULL) { - delete GlobalConfig.CustomLogo; - } - GlobalConfig.CustomLogo = new XImage; - GlobalConfig.CustomLogo->LoadXImage(&self.getSelfVolumeRootDir(), gSettings.Boot.CustomLogoAsXString8); - if (GlobalConfig.CustomLogo->isEmpty()) { - DBG("Custom boot logo not found at path '%s'!\n", gSettings.Boot.CustomLogoAsXString8.c_str()); - GlobalConfig.CustomLogoType = CUSTOM_BOOT_DISABLED; - } - } else if ( gSettings.Boot.CustomLogoType == CUSTOM_BOOT_USER && gSettings.Boot.CustomLogoAsData.notEmpty() ) { - if (GlobalConfig.CustomLogo != NULL) { - delete GlobalConfig.CustomLogo; - } - GlobalConfig.CustomLogo = new XImage; - GlobalConfig.CustomLogo->FromPNG(gSettings.Boot.CustomLogoAsData.data(), gSettings.Boot.CustomLogoAsData.size()); - if (GlobalConfig.CustomLogo->isEmpty()) { - DBG("Custom boot logo not decoded from data!\n"/*, Prop->getString()->stringValue().c_str()*/); - GlobalConfig.CustomLogoType = CUSTOM_BOOT_DISABLED; - } - } - DBG("Custom boot %s (0x%llX)\n", CustomBootModeToStr(GlobalConfig.CustomLogoType), (uintptr_t)GlobalConfig.CustomLogo); - - GlobalConfig.EnableC6 = gSettings.getEnableC6(); - GlobalConfig.EnableC4 = gSettings.getEnableC4(); - GlobalConfig.EnableC2 = gSettings.getEnableC2(); - GlobalConfig.C3Latency = gSettings.getEnableC6(); - - if (gSettings.CPU.HWPEnable && (gCPUStructure.Model >= CPU_MODEL_SKYLAKE_U)) { - GlobalConfig.HWP = TRUE; - AsmWriteMsr64 (MSR_IA32_PM_ENABLE, 1); - if ( gSettings.CPU.HWPValue.isDefined() ) { - AsmWriteMsr64 (MSR_IA32_HWP_REQUEST, gSettings.CPU.HWPValue.value()); - } - } - - for ( size_t idx = 0 ; idx < gSettings.GUI.CustomEntriesSettings.size() ; ++idx ) { - const CUSTOM_LOADER_ENTRY_SETTINGS& CustomEntrySettings = gSettings.GUI.CustomEntriesSettings[idx]; - CUSTOM_LOADER_ENTRY* entry = new CUSTOM_LOADER_ENTRY(CustomEntrySettings); - GlobalConfig.CustomEntries.AddReference(entry, true); - } - - for ( size_t idx = 0 ; idx < gSettings.GUI.CustomLegacySettings.size() ; ++idx ) { - const CUSTOM_LEGACY_ENTRY_SETTINGS& CustomLegacySettings = gSettings.GUI.CustomLegacySettings[idx]; - CUSTOM_LEGACY_ENTRY* entry = new CUSTOM_LEGACY_ENTRY(CustomLegacySettings, ThemeX.getThemeDir()); - GlobalConfig.CustomLegacyEntries.AddReference(entry, true); - } - - for ( size_t idx = 0 ; idx < gSettings.GUI.CustomToolSettings.size() ; ++idx ) { - const CUSTOM_TOOL_ENTRY_SETTINGS& CustomToolSettings = gSettings.GUI.CustomToolSettings[idx]; - CUSTOM_TOOL_ENTRY* entry = new CUSTOM_TOOL_ENTRY(CustomToolSettings, ThemeX.getThemeDir()); - GlobalConfig.CustomToolsEntries.AddReference(entry, true); - } - - if ( gSettings.GUI.Theme.notEmpty() ) - { - ThemeX.Theme.takeValueFrom(gSettings.GUI.Theme); - DBG("Default theme: %ls\n", gSettings.GUI.Theme.wc_str()); - - OldChosenTheme = 0xFFFF; //default for embedded - for (UINTN i = 0; i < ThemeNameArray.size(); i++) { - //now comparison is case sensitive - if ( gSettings.GUI.Theme.isEqualIC(ThemeNameArray[i]) ) { - OldChosenTheme = i; - break; - } - } - } - - EFI_TIME Now; - gRT->GetTime(&Now, NULL); - if (gSettings.GUI.Timezone != 0xFF) { - INT32 NowHour = Now.Hour + gSettings.GUI.Timezone; - if (NowHour < 0 ) NowHour += 24; - if (NowHour >= 24 ) NowHour -= 24; - ThemeX.Daylight = (NowHour > 8) && (NowHour < 20); - } else { - ThemeX.Daylight = TRUE; - } - - ThemeX.DarkEmbedded = gSettings.GUI.getDarkEmbedded(ThemeX.Daylight); - - if ( gSettings.GUI.languageCode == english ) { - GlobalConfig.Codepage = 0xC0; - GlobalConfig.CodepageSize = 0; - } else if ( gSettings.GUI.languageCode == russian ) { - GlobalConfig.Codepage = 0x410; - GlobalConfig.CodepageSize = 0x40; - } else if ( gSettings.GUI.languageCode == ukrainian ) { - GlobalConfig.Codepage = 0x400; - GlobalConfig.CodepageSize = 0x60; - } else if ( gSettings.GUI.languageCode == chinese ) { - GlobalConfig.Codepage = 0x3400; - GlobalConfig.CodepageSize = 0x19C0; - } else if ( gSettings.GUI.languageCode == korean ) { - GlobalConfig.Codepage = 0x1100; - GlobalConfig.CodepageSize = 0x100; - } - - if (gSettings.Graphics.EDID.InjectEDID){ - //DBG("Inject EDID\n"); - if ( gSettings.Graphics.EDID.CustomEDID.size() > 0 && gSettings.Graphics.EDID.CustomEDID.size() % 128 == 0 ) { - InitializeEdidOverride(); - } - } - - GlobalConfig.KPKernelPm = gSettings.KernelAndKextPatches._KPKernelPm || GlobalConfig.NeedPMfix; - GlobalConfig.KPAppleIntelCPUPM = gSettings.KernelAndKextPatches._KPAppleIntelCPUPM || GlobalConfig.NeedPMfix; - - if ( gSettings.RtVariables.RtROMAsString.isEqualIC("UseMacAddr0") ) { - GlobalConfig.RtROM.ncpy(&gLanMac[0][0], 6); - } else if ( gSettings.RtVariables.RtROMAsString.isEqualIC("UseMacAddr1") ) { - GlobalConfig.RtROM.ncpy(&gLanMac[1][0], 6); - }else{ - GlobalConfig.RtROM = gSettings.RtVariables.RtROMAsData; - } - if ( GlobalConfig.RtROM.isEmpty() ) { - EFI_GUID uuid; - StrToGuidLE(gSettings.Smbios.SmUUID, &uuid); - GlobalConfig.RtROM.ncpy(&uuid.Data4[2], 6); - } - GlobalConfig.RtMLB = gSettings.RtVariables.RtMLBSetting; - if ( GlobalConfig.RtMLB.isEmpty() ) { - GlobalConfig.RtMLB = gSettings.Smbios.BoardSerialNumber; - } - - for (size_t i = 0; i < NGFX; i++) { - gGraphics[i].LoadVBios = gSettings.Graphics.LoadVBios; //default - } - - if ( gSettings.CPU.TurboDisabled ) { - GlobalConfig.Turbo = false; - }else{ - GlobalConfig.Turbo = gCPUStructure.Turbo; - } - - // Jief : Shouldn't this injection made at StartLoader only ? And only for macOS ? - if ( gSettings.Devices.Properties.propertiesAsString.notEmpty() ) - { - size_t binaryPropSize = hex2bin(gSettings.Devices.Properties.propertiesAsString, NULL, 0); // check of correct length is supposed to have been done when reading settings. - UINTN nbPages = EFI_SIZE_TO_PAGES(binaryPropSize); - EFI_PHYSICAL_ADDRESS BufferPtr = EFI_SYSTEM_TABLE_MAX_ADDRESS; //0xFE000000; - EFI_STATUS Status = gBS->AllocatePages ( - AllocateMaxAddress, - EfiACPIReclaimMemory, - nbPages, - &BufferPtr - ); - - if (!EFI_ERROR(Status)) { - cProperties = (UINT8*)(UINTN)BufferPtr; - cPropSize = (UINT32)hex2bin(gSettings.Devices.Properties.propertiesAsString, cProperties, EFI_PAGES_TO_SIZE(nbPages)); // cast should be safe hex2bin return < MAX_UINT32 - - DBG("Injected EFIString of length %d\n", cPropSize); - }else{ - MsgLog("AllocatePages failed (%s), Properties not injected", efiStrError(Status)); - } - } - //--------- - GlobalConfig.IgPlatform = gSettings.Graphics._IgPlatform; - for ( size_t idx = 0 ; idx < gSettings.Devices.ArbitraryArray.size() ; ++idx ) { - const SETTINGS_DATA::DevicesClass::ArbitraryPropertyClass& arbitraryProperty = gSettings.Devices.ArbitraryArray[idx]; - for ( size_t jdx = 0 ; jdx < arbitraryProperty.CustomPropertyArray.size() ; ++jdx ) { - const SETTINGS_DATA::DevicesClass::SimplePropertyClass& customProperty = arbitraryProperty.CustomPropertyArray[jdx]; - if ( customProperty.Key.contains("-platform-id") ) { - memcpy(&GlobalConfig.IgPlatform, customProperty.Key.data(), 4); - } - } - } -} - // // main entry point // @@ -2827,9 +2655,9 @@ RefitMain (IN EFI_HANDLE ImageHandle, //UINT64 TscDiv; //UINT64 TscRemainder = 0; // LOADER_ENTRY *LoaderEntry; - XStringW ConfName; - TagDict* smbiosTags = NULL; - BOOLEAN UniteConfigs = FALSE; +// XStringW ConfName; +// TagDict* smbiosTags = NULL; +// BOOLEAN UniteConfigs = FALSE; EFI_TIME Now; BOOLEAN HaveDefaultVolume; REFIT_MENU_SCREEN BootScreen; @@ -2853,6 +2681,7 @@ RefitMain (IN EFI_HANDLE ImageHandle, /*Status = */EfiGetSystemConfigurationTable (&gEfiDxeServicesTableGuid, (void **) &gDS); ConsoleInHandle = SystemTable->ConsoleInHandle; + //#define DEBUG_ERALY_CRASH #ifdef DEBUG_ERALY_CRASH SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Step1"); @@ -2927,8 +2756,6 @@ RefitMain (IN EFI_HANDLE ImageHandle, DataHubInstall (ImageHandle, SystemTable); InitializeConsoleSim(); InitBooterLog(); - ZeroMem((void*)&gGraphics[0], sizeof(GFX_PROPERTIES) * 4); - ZeroMem((void*)&gAudios[0], sizeof(HDA_PROPERTIES) * 4); DbgHeader("Starting Clover"); if (Now.TimeZone < -1440 || Now.TimeZone > 1440) { @@ -2989,67 +2816,9 @@ RefitMain (IN EFI_HANDLE ImageHandle, } DBG("SimpleTextEx Status=%s\n", efiStrError(Status)); - GetDefaultSettings(); // do this before PrepatchSmbios() because PrepatchSmbios() change gSettings.Smbios.SmUUID. - // TODO : there is a mixup between SmUUID read from the platform and the SmUUID set by the user. They should be read in 2 different vars. - PrepatchSmbios(); + gConf.InitialisePlatform(); - //replace / with _ - GlobalConfig.OEMProductFromSmbios.replaceAll(U'/', U'_'); - GlobalConfig.OEMBoardFromSmbios.replaceAll(U'/', U'_'); - DBG("Running on: '%s' with board '%s'\n", GlobalConfig.OEMProductFromSmbios.c_str(), GlobalConfig.OEMBoardFromSmbios.c_str()); - GetCPUProperties(); - GetDefaultCpuSettings(gSettings); //split from GetDefaultSettings() because it should be after GetCPUProperties() - GetDevices(); // Do this BEFORE SetOEMPath(); - - // LoadOptions Parsing - DBG("Clover load options size = %d bytes\n", self.getSelfLoadedImage().LoadOptionsSize); - if ((self.getSelfLoadedImage().LoadOptions != NULL) && - (self.getSelfLoadedImage().LoadOptionsSize != 0)){ - if (*(UINT32*)self.getSelfLoadedImage().LoadOptions == CLOVER_SIGN) { - GetBootFromOption(); - } else { - ParseLoadOptions(&ConfName, &gConfigDict[1]); - if (ConfName.isEmpty()) { - gConfigDict[1] = NULL; - } else { - selfOem.initialize(ConfName, gFirmwareClover, GlobalConfig.OEMBoardFromSmbios, GlobalConfig.OEMProductFromSmbios, (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega)), nLanCards, gLanMac); - Status = LoadUserSettings(ConfName, &gConfigDict[1]); - DBG("%ls\\%ls.plist %ls loaded with name from LoadOptions: %s\n", selfOem.getConfigDirFullPath().wc_str(), ConfName.wc_str(), EFI_ERROR(Status) ? L" not" : L"", efiStrError(Status)); - if (EFI_ERROR(Status)) { - gConfigDict[1] = NULL; - selfOem.unInitialize(); - } - } - } - } - if (gConfigDict[1]) { - const TagStruct* UniteTag = gConfigDict[1]->propertyForKey("Unite"); - if(UniteTag) { - UniteConfigs = UniteTag->isTrueOrYy(); - DBG("UniteConfigs = %ls", UniteConfigs ? L"TRUE\n": L"FALSE\n" ); - } - } - if (!gConfigDict[1] || UniteConfigs) { - selfOem.initialize("config"_XS8, gFirmwareClover, GlobalConfig.OEMBoardFromSmbios, GlobalConfig.OEMProductFromSmbios, (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega)), nLanCards, gLanMac); -// selfOem.unInitialize(); -// selfOem.initialize("config"_XS8, gFirmwareClover, GlobalConfig.OEMBoardFromSmbios, GlobalConfig.OEMProductFromSmbios, (INT32)(DivU64x32(gCPUStructure.CPUFrequency, Mega)), nLanCards, gLanMac); - Status = LoadUserSettings(L"config"_XSW, &gConfigDict[0]); - DBG("%ls\\config.plist %ls loaded: %s\n", selfOem.getConfigDirFullPath().wc_str(), EFI_ERROR(Status) ? L" not" : L"", efiStrError(Status)); - } -// GlobalConfig.ConfigName.SWPrintf("%ls%ls%ls", -// gConfigDict[0] ? L"config": L"", -// (gConfigDict[0] && gConfigDict[1]) ? L" + ": L"", -// !gConfigDict[1] ? L"": (ConfName.notEmpty() ? ConfName.wc_str() : L"Load Options")); - //gSettings.MainConfigName.takeValueFrom(gSettings.ConfigName); - - gSettings.GUI.Mouse.PointerEnabled = TRUE; - gSettings.GUI.Mouse.PointerSpeed = 2; - gSettings.GUI.Mouse.DoubleClickTime = 500; //TODO - make it constant as nobody change it - -#ifdef ENABLE_SECURE_BOOT - InitializeSecureBoot(); -#endif // ENABLE_SECURE_BOOT { // UINT32 machineSignature = 0; @@ -3136,11 +2905,11 @@ RefitMain (IN EFI_HANDLE ImageHandle, } } - for (i=0; i<2; i++) { - if (gConfigDict[i]) { - GetEarlyUserSettings(gConfigDict[i], gSettings); - } - } +// for (i=0; i<2; i++) { +// if (gConfigDict[i]) { +// GetEarlyUserSettings(gConfigDict[i], gSettings); +// } +// } #ifdef ENABLE_SECURE_BOOT // Install secure boot shim @@ -3208,11 +2977,6 @@ RefitMain (IN EFI_HANDLE ImageHandle, GuiEventsInitialize(); - if (!GlobalConfig.EnabledCores) { - GlobalConfig.EnabledCores = gCPUStructure.Cores; - } - - GetMacAddress(); //DBG("ScanSPD() start\n"); ScanSPD(); //DBG("ScanSPD() end\n"); @@ -3221,44 +2985,6 @@ RefitMain (IN EFI_HANDLE ImageHandle, // GetDefaultSettings(); GetAcpiTablesList(); - DBG("Calibrated TSC Frequency = %llu = %lluMHz\n", gCPUStructure.TSCCalibr, DivU64x32(gCPUStructure.TSCCalibr, Mega)); - if (gCPUStructure.TSCCalibr > 200000000ULL) { //200MHz - gCPUStructure.TSCFrequency = gCPUStructure.TSCCalibr; - } -// DBG("print error level mask = %x\n", GetDebugPrintErrorLevel() ); - gCPUStructure.CPUFrequency = gCPUStructure.TSCFrequency; - gCPUStructure.FSBFrequency = DivU64x32(MultU64x32(gCPUStructure.CPUFrequency, 10), - (gCPUStructure.MaxRatio == 0) ? 1 : gCPUStructure.MaxRatio); - gCPUStructure.MaxSpeed = (UINT32)DivU64x32(gCPUStructure.TSCFrequency + (Mega >> 1), Mega); - - switch (gCPUStructure.Model) { - case CPU_MODEL_PENTIUM_M: - case CPU_MODEL_ATOM:// Atom - case CPU_MODEL_DOTHAN:// Pentium M, Dothan, 90nm - case CPU_MODEL_YONAH:// Core Duo/Solo, Pentium M DC - case CPU_MODEL_MEROM:// Core Xeon, Core 2 Duo, 65nm, Mobile - //case CPU_MODEL_CONROE:// Core Xeon, Core 2 Duo, 65nm, Desktop like Merom but not mobile - case CPU_MODEL_CELERON: - case CPU_MODEL_PENRYN:// Core 2 Duo/Extreme, Xeon, 45nm , Mobile - case CPU_MODEL_NEHALEM:// Core i7 LGA1366, Xeon 5500, "Bloomfield", "Gainstown", 45nm - case CPU_MODEL_FIELDS:// Core i7, i5 LGA1156, "Clarksfield", "Lynnfield", "Jasper", 45nm - case CPU_MODEL_DALES:// Core i7, i5, Nehalem - case CPU_MODEL_CLARKDALE:// Core i7, i5, i3 LGA1156, "Westmere", "Clarkdale", , 32nm - case CPU_MODEL_WESTMERE:// Core i7 LGA1366, Six-core, "Westmere", "Gulftown", 32nm - case CPU_MODEL_NEHALEM_EX:// Core i7, Nehalem-Ex Xeon, "Beckton" - case CPU_MODEL_WESTMERE_EX:// Core i7, Nehalem-Ex Xeon, "Eagleton" - gCPUStructure.ExternalClock = (UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo); - //DBG(" Read TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); - break; - default: - //DBG(" Read TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.FSBFrequency, Mega))); - - // for sandy bridge or newer - // to match ExternalClock 25 MHz like real mac, divide FSBFrequency by 4 - gCPUStructure.ExternalClock = ((UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo) + 3) / 4; - //DBG(" Corrected TSC ExternalClock: %d MHz\n", (INT32)(DivU64x32(gCPUStructure.ExternalClock, Kilo))); - break; - } if (!gSettings.Boot.NoEarlyProgress && !GlobalConfig.isFastBoot() && gSettings.Boot.Timeout>0) { XStringW Message = SWPrintf("... user settings ..."); @@ -3266,52 +2992,33 @@ RefitMain (IN EFI_HANDLE ImageHandle, BootScreen.DrawTextXY(Message, (UGAWidth >> 1), (UGAHeight >> 1) + 20, X_IS_CENTER); } - //Second step. Load config.plist into gSettings - for (i=0; i<2; i++) { - if (gConfigDict[i]) { - Status = GetUserSettings(gConfigDict[i], gSettings); - afterGetUserSettings(gSettings); - if (EFI_ERROR(Status)) { - DBG("Error in Second part of settings %llu: %s\n", i, efiStrError(Status)); - } - } - } +// //Second step. Load config.plist into gSettings +// for (i=0; i<2; i++) { +// if (gConfigDict[i]) { +// Status = GetUserSettings(gConfigDict[i], gSettings); +// afterGetUserSettings(gSettings); +// if (EFI_ERROR(Status)) { +// DBG("Error in Second part of settings %llu: %s\n", i, efiStrError(Status)); +// } +// } +// } + afterGetUserSettings(gSettings); - if (gSettings.CPU.QEMU) { -// UINT64 Msrflex = 0ULL; - - if (!gSettings.CPU.UserChange) { - gSettings.CPU.BusSpeed = 200000; - } - gCPUStructure.MaxRatio = (UINT32)DivU64x32(gCPUStructure.TSCCalibr, gSettings.CPU.BusSpeed * Kilo); - DBG("Set MaxRatio for QEMU: %d\n", gCPUStructure.MaxRatio); - gCPUStructure.MaxRatio *= 10; - gCPUStructure.MinRatio = 60; -/* AsmWriteMsr64(MSR_FLEX_RATIO, ((6ULL << 40) + //(1ULL << 16) + - (gCPUStructure.MaxRatio << 8))); - DBG("check if flex is RW\n"); - Msrflex = AsmReadMsr64(MSR_FLEX_RATIO); //0 == not Rw :( - DBG("MSR_FLEX_RATIO = %lx\n", Msrflex); - */ - gCPUStructure.FSBFrequency = DivU64x32(MultU64x32(gCPUStructure.CPUFrequency, 10), - (gCPUStructure.MaxRatio == 0) ? 1 : gCPUStructure.MaxRatio); - gCPUStructure.ExternalClock = (UINT32)DivU64x32(gCPUStructure.FSBFrequency + Kilo - 1, Kilo); - } // dropDSM = 0xFFFF; //by default we drop all OEM _DSM. They have no sense for us. // if (defDSM) { // dropDSM = gSettings.DropOEM_DSM; //if set by user // } // Load any extra SMBIOS information - if (!EFI_ERROR(LoadUserSettings(L"smbios"_XSW, &smbiosTags)) && (smbiosTags != NULL)) { - const TagDict* dictPointer = smbiosTags->dictPropertyForKey("SMBIOS"); - if (dictPointer) { - ParseSMBIOSSettings(gSettings, dictPointer); - } else { - DBG("Invalid smbios.plist, not overriding config.plist!\n"); - } - } +// if (!EFI_ERROR(LoadUserSettings(L"smbios"_XSW, &smbiosTags)) && (smbiosTags != NULL)) { +// const TagDict* dictPointer = smbiosTags->dictPropertyForKey("SMBIOS"); +// if (dictPointer) { +// ParseSMBIOSSettings(gSettings, dictPointer); +// } else { +// DBG("Invalid smbios.plist, not overriding config.plist!\n"); +// } +// } /* if (gFirmwareClover || gDriversFlags.EmuVariableLoaded) { if (gSettings.Boot.StrictHibernate) { diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index b9cede562..ce8b0c90d 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -62,8 +62,10 @@ #include "../Platform/KextList.h" #include "../gui/REFIT_MENU_SCREEN.h" #include "../gui/REFIT_MAINMENU_SCREEN.h" -#include "../Platform/Self.h" +#include "../Settings/Self.h" #include "../Platform/VersionString.h" +#include "../Settings/ConfigManager.h" +#include "../Platform/CloverVersion.h" #ifndef DEBUG_ALL @@ -190,20 +192,20 @@ void FillInputs(BOOLEAN New) InputItems[InputItemsCount++].SValue.SWPrintf("%06llu", gCPUStructure.ExternalClock); } InputItemsCount = 20; - for (i=0; i 2 ) { //fool proof: cfg_name is 3 character or more. InputItems[InputItemsCount++].SValue.SWPrintf("%ls", gSettings.Graphics.FBName.wc_str()); } else { - InputItems[InputItemsCount++].SValue.SWPrintf("%s", gGraphics[i].Config); + InputItems[InputItemsCount++].SValue.SWPrintf("%s", gConf.GfxPropertiesArray[i].Config.c_str()); } - } else if (gGraphics[i].Vendor == Nvidia) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { InputItems[InputItemsCount].ItemType = BoolValue; //21+i*6 InputItems[InputItemsCount++].BValue = gSettings.Graphics.InjectAsDict.InjectNVidia; InputItems[InputItemsCount].ItemType = ASString; //22+6i @@ -226,10 +228,10 @@ void FillInputs(BOOLEAN New) if (gSettings.Graphics.VideoPorts > 0) { InputItems[InputItemsCount++].SValue.SWPrintf("%02d", gSettings.Graphics.VideoPorts); } else { - InputItems[InputItemsCount++].SValue.SWPrintf("%02d", gGraphics[i].Ports); + InputItems[InputItemsCount++].SValue.SWPrintf("%02d", gConf.GfxPropertiesArray[i].Ports); } - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { InputItems[InputItemsCount].ItemType = ASString; //24+6i for (j=0; jFreeTag(); - gConfigDict[2] = dict; +// Status = GetUserSettings(dict, gSettings); +// if (gConfigDict[2]) gConfigDict[2]->FreeTag(); +// gConfigDict[2] = dict; // GlobalConfig.ConfigName.takeValueFrom(ConfigsList[OldChosenConfig]); - } +// } FillInputs(FALSE); NeedSave = FALSE; } @@ -1068,7 +1070,7 @@ void ApplyInputs(void) if (NeedSave) { - SaveSettings(); + ApplySettings(); } } @@ -1568,7 +1570,7 @@ REFIT_ABSTRACT_MENU_ENTRY *SubMenuGraphics() REFIT_MENU_SCREEN *SubScreen; Entry = newREFIT_MENU_ITEM_OPTIONS(&SubScreen, ActionEnter, SCREEN_GRAPHICS, "Graphics Injector->"_XS8); - SubScreen->AddMenuInfoLine_f("Number of VideoCard%s=%llu",((NGFX!=1)?"s":""), NGFX); + SubScreen->AddMenuInfoLine_f("Number of VideoCard%s=%zu",((gConf.GfxPropertiesArray.size()!=1)?"s":""), gConf.GfxPropertiesArray.size()); SubScreen->AddMenuItemInput(52, "InjectEDID", FALSE); SubScreen->AddMenuItemInput(53, "Fake Vendor EDID:", TRUE); SubScreen->AddMenuItemInput(54, "Fake Product EDID:", TRUE); @@ -1576,62 +1578,62 @@ REFIT_ABSTRACT_MENU_ENTRY *SubMenuGraphics() SubScreen->AddMenuItemInput(112, "Intel Max Backlight:", TRUE); //gSettings.Devices.IntelMaxValue - for (UINTN i = 0; i < NGFX; i++) { + for (UINTN i = 0; i < gConf.GfxPropertiesArray.size(); i++) { SubScreen->AddMenuInfo_f("----------------------"); - SubScreen->AddMenuInfo_f("Card DeviceID=%04hx", gGraphics[i].DeviceID); + SubScreen->AddMenuInfo_f("Card DeviceID=%04hx", gConf.GfxPropertiesArray[i].DeviceID); UINTN N = 20 + i * 6; SubScreen->AddMenuItemInput(N, "Model:", TRUE); - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { SubScreen->AddMenuItemInput(N+1, "InjectNVidia", FALSE); - } else if (gGraphics[i].Vendor == Ati) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Ati) { SubScreen->AddMenuItemInput(N+1, "InjectATI", FALSE); - } else if (gGraphics[i].Vendor == Intel) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Intel) { SubScreen->AddMenuItemInput(N+1, "InjectIntel", FALSE); } else { SubScreen->AddMenuItemInput(N+1, "InjectX3", FALSE); } UINTN Ven = 97; //it can be used for non Ati, Nvidia, Intel in QEMU for example - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { Ven = 95; - } else if (gGraphics[i].Vendor == Ati) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Ati) { Ven = 94; - } else if (gGraphics[i].Vendor == Intel) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Intel) { Ven = 96; } - if ((gGraphics[i].Vendor == Ati) || (gGraphics[i].Vendor == Intel)) { + if ((gConf.GfxPropertiesArray[i].Vendor == Ati) || (gConf.GfxPropertiesArray[i].Vendor == Intel)) { SubScreen->AddMenuItemInput(109, "DualLink:", TRUE); } - if (gGraphics[i].Vendor == Ati) { + if (gConf.GfxPropertiesArray[i].Vendor == Ati) { SubScreen->AddMenuItemInput(114, "DeInit:", TRUE); } SubScreen->AddMenuItemInput(Ven, "FakeID:", TRUE); - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { SubScreen->AddMenuItemInput(N+2, "DisplayCFG:", TRUE); - } else if (gGraphics[i].Vendor == Ati) { + } else if (gConf.GfxPropertiesArray[i].Vendor == Ati) { SubScreen->AddMenuItemInput(N+2, "FBConfig:", TRUE); } else /*if (gGraphics[i].Vendor == Intel)*/{ SubScreen->AddMenuItemInput(N+2, "*-platform-id:", TRUE); } // ErmaC: NvidiaGeneric entry - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { SubScreen->AddMenuItemInput(55, "Generic NVIDIA name", FALSE); SubScreen->AddMenuItemInput(110, "NVIDIA No EFI", FALSE); SubScreen->AddMenuItemInput(111, "NVIDIA Single", FALSE); SubScreen->AddMenuItemInput(56, "Use NVIDIA WEB drivers", FALSE); } - if (gGraphics[i].Vendor == Intel) { + if (gConf.GfxPropertiesArray[i].Vendor == Intel) { continue; } SubScreen->AddMenuItemInput(N+3, "Ports:", TRUE); - if (gGraphics[i].Vendor == Nvidia) { + if (gConf.GfxPropertiesArray[i].Vendor == Nvidia) { SubScreen->AddMenuItemInput(N+4, "NVCAP:", TRUE); } else { SubScreen->AddMenuItemInput(N+4, "Connectors:", TRUE); @@ -1659,13 +1661,13 @@ REFIT_ABSTRACT_MENU_ENTRY *SubMenuAudio() // submenu description SubScreen->AddMenuInfoLine_f("Choose options to tune the HDA devices"); - SubScreen->AddMenuInfoLine_f("Number of Audio Controller%s=%llu", ((NHDA!=1)?"s":""), NHDA); - for (i = 0; i < NHDA; i++) { + SubScreen->AddMenuInfoLine_f("Number of Audio Controller%s=%zu", ((gConf.HdaPropertiesArray.size()!=1)?"s":""), gConf.HdaPropertiesArray.size()); + for (i = 0 ; i < gConf.HdaPropertiesArray.size() ; i++) { SubScreen->AddMenuInfoLine_f("%llu) %ls [%04hX][%04hX]", (i+1), - gAudios[i].controller_name, - gAudios[i].controller_vendor_id, - gAudios[i].controller_device_id + gConf.HdaPropertiesArray[i].controller_name, + gConf.HdaPropertiesArray[i].controller_vendor_id, + gConf.HdaPropertiesArray[i].controller_device_id ); } @@ -2327,7 +2329,7 @@ REFIT_ABSTRACT_MENU_ENTRY* SubMenuAddProperties() for ( size_t idx = 0 ; idx < gSettings.Devices.AddPropertyArray.size() ; ++idx) { SETTINGS_DATA::DevicesClass::AddPropertyClass& Prop = gSettings.Devices.AddPropertyArray[idx]; - SubScreen->AddMenuInfo_f("%s", Prop.Label.c_str()); +// SubScreen->AddMenuInfo_f("%s", Prop.Label.c_str()); CreateMenuAddProp(SubScreen, &Prop); } SubScreen->AddMenuEntry(&MenuEntryReturn, false); diff --git a/rEFIt_UEFI/refit/screen.cpp b/rEFIt_UEFI/refit/screen.cpp index 38fff29b5..b784a5e6f 100644 --- a/rEFIt_UEFI/refit/screen.cpp +++ b/rEFIt_UEFI/refit/screen.cpp @@ -41,6 +41,7 @@ #include "../Platform/BasicIO.h" #include "menu.h" #include "../gui/REFIT_MENU_SCREEN.h" +#include "../Platform/CloverVersion.h" #ifndef DEBUG_ALL #define DEBUG_SCR 1