Fix KPKernelPm KPAppleIntelCPUPM.

Fix bad "dead installer" detection.
Exclude a DisableDriversArray string if it's empty.
Rename back PatchVBiosBytesNew to PatchVBiosBytes.
Rename ConfigPlist to ConfigPlistClass.
Minor other renames to clean settings.h.
This commit is contained in:
jief666 2021-03-27 21:53:30 +03:00
parent de80f6c2fb
commit 04e288d53b
10 changed files with 309 additions and 293 deletions

View File

@ -26,6 +26,7 @@ extern "C" {
#include <Library/MemoryAllocationLib.h>
#include "../../../../../rEFIt_UEFI/Platform/BootLog.h"
//#include "BootLog.h"
#include <Library/DebugLib.h> // this is just to define DEBUG, because Slice wrongly did some #ifdef DEBUG
#ifdef __cplusplus
}

View File

@ -13,27 +13,11 @@
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 */; };
9A358B2125CF115200A3850D /* Config_RtVariables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AF525CF115100A3850D /* Config_RtVariables.cpp */; };
9A358B2225CF115200A3850D /* Config_SMBIOS.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AF625CF115100A3850D /* Config_SMBIOS.cpp */; };
9A358B2325CF115200A3850D /* Config_Devices_Audio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AF925CF115100A3850D /* Config_Devices_Audio.cpp */; };
9A358B2425CF115200A3850D /* Config_KernelAndKextPatches.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AFC25CF115100A3850D /* Config_KernelAndKextPatches.cpp */; };
9A358B2525CF115200A3850D /* Config_Quirks.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358AFD25CF115100A3850D /* Config_Quirks.cpp */; };
9A358B2625CF115200A3850D /* Config_CPU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0025CF115100A3850D /* Config_CPU.cpp */; };
9A358B2725CF115200A3850D /* Config_Devices_FakeID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0325CF115100A3850D /* Config_Devices_FakeID.cpp */; };
9A358B2825CF115200A3850D /* Config_ACPI_SSDT.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0625CF115100A3850D /* Config_ACPI_SSDT.cpp */; };
9A358B2925CF115200A3850D /* Config_Boot.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0725CF115100A3850D /* Config_Boot.cpp */; };
9A358B2A25CF115200A3850D /* Config_Devices_AddProperties.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0825CF115100A3850D /* Config_Devices_AddProperties.cpp */; };
9A358B2B25CF115200A3850D /* ConfigPlist.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0A25CF115100A3850D /* ConfigPlist.cpp */; };
9A358B2C25CF115200A3850D /* Config_Devices_USB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0B25CF115100A3850D /* Config_Devices_USB.cpp */; };
9A358B2D25CF115200A3850D /* Config_Devices.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B0C25CF115100A3850D /* Config_Devices.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 */; };
9A358B3025CF115200A3850D /* Config_Graphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1225CF115100A3850D /* Config_Graphics.cpp */; };
9A358B3125CF115200A3850D /* Config_SystemParameters.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1525CF115100A3850D /* Config_SystemParameters.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 */; };
9A358B3425CF115200A3850D /* Config_BootGraphics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1825CF115100A3850D /* Config_BootGraphics.cpp */; };
9A358B3525CF115200A3850D /* Config_Devices_Arbitrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9A358B1925CF115100A3850D /* Config_Devices_Arbitrary.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 */; };
@ -64,6 +48,14 @@
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 */; };
@ -280,43 +272,27 @@
9A28CD1D241BB61B00F3D247 /* abort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = abort.cpp; sourceTree = "<group>"; };
9A28CD1E241BB61B00F3D247 /* strlen.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = strlen.cpp; sourceTree = "<group>"; };
9A358AF425CF115100A3850D /* Config_GUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_GUI.cpp; sourceTree = "<group>"; };
9A358AF525CF115100A3850D /* Config_RtVariables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_RtVariables.cpp; sourceTree = "<group>"; };
9A358AF625CF115100A3850D /* Config_SMBIOS.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_SMBIOS.cpp; sourceTree = "<group>"; };
9A358AF725CF115100A3850D /* Config_KernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_KernelAndKextPatches.h; sourceTree = "<group>"; };
9A358AF825CF115100A3850D /* Config_Graphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Graphics.h; sourceTree = "<group>"; };
9A358AF925CF115100A3850D /* Config_Devices_Audio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_Audio.cpp; sourceTree = "<group>"; };
9A358AFA25CF115100A3850D /* Config_ACPI_DSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_DSDT.h; sourceTree = "<group>"; };
9A358AFB25CF115100A3850D /* ConfigPlist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlist.h; sourceTree = "<group>"; };
9A358AFC25CF115100A3850D /* Config_KernelAndKextPatches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_KernelAndKextPatches.cpp; sourceTree = "<group>"; };
9A358AFD25CF115100A3850D /* Config_Quirks.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Quirks.cpp; sourceTree = "<group>"; };
9A358AFB25CF115100A3850D /* ConfigPlistClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConfigPlistClass.h; sourceTree = "<group>"; };
9A358AFE25CF115100A3850D /* CompareSettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettings.h; sourceTree = "<group>"; };
9A358AFF25CF115100A3850D /* Config_Devices_Audio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Audio.h; sourceTree = "<group>"; };
9A358B0025CF115100A3850D /* Config_CPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_CPU.cpp; sourceTree = "<group>"; };
9A358B0125CF115100A3850D /* Config_Quirks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Quirks.h; sourceTree = "<group>"; };
9A358B0225CF115100A3850D /* Config_ACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI.h; sourceTree = "<group>"; };
9A358B0325CF115100A3850D /* Config_Devices_FakeID.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_FakeID.cpp; sourceTree = "<group>"; };
9A358B0425CF115100A3850D /* Config_Devices_Properties.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Properties.h; sourceTree = "<group>"; };
9A358B0525CF115100A3850D /* Config_Boot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Boot.h; sourceTree = "<group>"; };
9A358B0625CF115100A3850D /* Config_ACPI_SSDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI_SSDT.cpp; sourceTree = "<group>"; };
9A358B0725CF115100A3850D /* Config_Boot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Boot.cpp; sourceTree = "<group>"; };
9A358B0825CF115100A3850D /* Config_Devices_AddProperties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_AddProperties.cpp; sourceTree = "<group>"; };
9A358B0925CF115100A3850D /* Config_Devices_Arbitrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices_Arbitrary.h; sourceTree = "<group>"; };
9A358B0A25CF115100A3850D /* ConfigPlist.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlist.cpp; sourceTree = "<group>"; };
9A358B0B25CF115100A3850D /* Config_Devices_USB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_USB.cpp; sourceTree = "<group>"; };
9A358B0C25CF115100A3850D /* Config_Devices.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices.cpp; sourceTree = "<group>"; };
9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ConfigPlistClass.cpp; sourceTree = "<group>"; };
9A358B0D25CF115100A3850D /* Config_SystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SystemParameters.h; sourceTree = "<group>"; };
9A358B0E25CF115100A3850D /* Config_SMBIOS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_SMBIOS.h; sourceTree = "<group>"; };
9A358B0F25CF115100A3850D /* Config_ACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI.cpp; sourceTree = "<group>"; };
9A358B1025CF115100A3850D /* Config_Devices_Properties.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_Properties.cpp; sourceTree = "<group>"; };
9A358B1125CF115100A3850D /* Config_Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_Devices.h; sourceTree = "<group>"; };
9A358B1225CF115100A3850D /* Config_Graphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Graphics.cpp; sourceTree = "<group>"; };
9A358B1325CF115100A3850D /* Config_CPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_CPU.h; sourceTree = "<group>"; };
9A358B1425CF115100A3850D /* Config_BootGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_BootGraphics.h; sourceTree = "<group>"; };
9A358B1525CF115100A3850D /* Config_SystemParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_SystemParameters.cpp; sourceTree = "<group>"; };
9A358B1625CF115100A3850D /* CompareSettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettings.cpp; sourceTree = "<group>"; };
9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_ACPI_DSDT.cpp; sourceTree = "<group>"; };
9A358B1825CF115100A3850D /* Config_BootGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_BootGraphics.cpp; sourceTree = "<group>"; };
9A358B1925CF115100A3850D /* Config_Devices_Arbitrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = Config_Devices_Arbitrary.cpp; sourceTree = "<group>"; };
9A358B1A25CF115100A3850D /* Config_ACPI_SSDT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_ACPI_SSDT.h; sourceTree = "<group>"; };
9A358B1B25CF115100A3850D /* Config_GUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_GUI.h; sourceTree = "<group>"; };
9A358B1C25CF115100A3850D /* Config_RtVariables.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Config_RtVariables.h; sourceTree = "<group>"; };
@ -392,6 +368,22 @@
9A9223302402FD1000483CBA /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = "<group>"; };
9A9AEB8B243F73CE00FBD7D8 /* unicode_conversions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unicode_conversions.h; sourceTree = "<group>"; };
9A9AEB8C243F73CE00FBD7D8 /* unicode_conversions.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c.preprocessed; fileEncoding = 4; path = unicode_conversions.cpp; sourceTree = "<group>"; };
9AA316CB260EF75A0033D29F /* CompareSettingsBoot.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsBoot.cpp; sourceTree = "<group>"; };
9AA316CC260EF75A0033D29F /* CompareSettingsBoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsBoot.h; sourceTree = "<group>"; };
9AA316CE260EF7750033D29F /* CompareField.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareField.cpp; sourceTree = "<group>"; };
9AA316CF260EF7760033D29F /* CompareField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareField.h; sourceTree = "<group>"; };
9AA316D1260EFC410033D29F /* CompareSettingsACPI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsACPI.cpp; sourceTree = "<group>"; };
9AA316D2260EFC410033D29F /* CompareSettingsACPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsACPI.h; sourceTree = "<group>"; };
9AA316D4260F0CBE0033D29F /* CompareSettingsGUI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGUI.cpp; sourceTree = "<group>"; };
9AA316D5260F0CBE0033D29F /* CompareSettingsGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGUI.h; sourceTree = "<group>"; };
9AA316D7260F259F0033D29F /* CompareSettingsCPU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsCPU.h; sourceTree = "<group>"; };
9AA316D8260F259F0033D29F /* CompareSettingsCPU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsCPU.cpp; sourceTree = "<group>"; };
9AA316DA260F26790033D29F /* CompareSettingsSystemParameters.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsSystemParameters.cpp; sourceTree = "<group>"; };
9AA316DB260F267A0033D29F /* CompareSettingsSystemParameters.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsSystemParameters.h; sourceTree = "<group>"; };
9AA316DD260F27790033D29F /* CompareSettingsKernelAndKextPatches.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsKernelAndKextPatches.h; sourceTree = "<group>"; };
9AA316DE260F27790033D29F /* CompareSettingsKernelAndKextPatches.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsKernelAndKextPatches.cpp; sourceTree = "<group>"; };
9AA316E0260F2BE50033D29F /* CompareSettingsGraphics.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CompareSettingsGraphics.cpp; sourceTree = "<group>"; };
9AA316E1260F2BE60033D29F /* CompareSettingsGraphics.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CompareSettingsGraphics.h; sourceTree = "<group>"; };
9AA3911825CC56840099DC1F /* FixBiosDsdt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FixBiosDsdt.h; sourceTree = "<group>"; };
9AA3911A25CC56E60099DC1F /* Devices.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Devices.h; sourceTree = "<group>"; };
9AA3911B25CC56E60099DC1F /* printlib-test-cpp_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "printlib-test-cpp_conf.h"; sourceTree = "<group>"; };
@ -5387,50 +5379,50 @@
9A358AF325CF115100A3850D /* ConfigPlist */ = {
isa = PBXGroup;
children = (
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 */,
9A358B1725CF115100A3850D /* Config_ACPI_DSDT.cpp */,
9A358AFA25CF115100A3850D /* Config_ACPI_DSDT.h */,
9A358B0625CF115100A3850D /* Config_ACPI_SSDT.cpp */,
9A358B1A25CF115100A3850D /* Config_ACPI_SSDT.h */,
9A358B0F25CF115100A3850D /* Config_ACPI.cpp */,
9A358B0225CF115100A3850D /* Config_ACPI.h */,
9A358B0725CF115100A3850D /* Config_Boot.cpp */,
9A358B0525CF115100A3850D /* Config_Boot.h */,
9A358B1825CF115100A3850D /* Config_BootGraphics.cpp */,
9A358B1425CF115100A3850D /* Config_BootGraphics.h */,
9A358B0025CF115100A3850D /* Config_CPU.cpp */,
9A358B1325CF115100A3850D /* Config_CPU.h */,
9A358B0825CF115100A3850D /* Config_Devices_AddProperties.cpp */,
9A358B1F25CF115100A3850D /* Config_Devices_AddProperties.h */,
9A358B1925CF115100A3850D /* Config_Devices_Arbitrary.cpp */,
9A358B0925CF115100A3850D /* Config_Devices_Arbitrary.h */,
9A358AF925CF115100A3850D /* Config_Devices_Audio.cpp */,
9A358AFF25CF115100A3850D /* Config_Devices_Audio.h */,
9A358B0325CF115100A3850D /* Config_Devices_FakeID.cpp */,
9A358B1D25CF115100A3850D /* Config_Devices_FakeID.h */,
9A358B1025CF115100A3850D /* Config_Devices_Properties.cpp */,
9A358B0425CF115100A3850D /* Config_Devices_Properties.h */,
9A358B0B25CF115100A3850D /* Config_Devices_USB.cpp */,
9A358B1E25CF115100A3850D /* Config_Devices_USB.h */,
9A358B0C25CF115100A3850D /* Config_Devices.cpp */,
9A358B1125CF115100A3850D /* Config_Devices.h */,
9A358B1225CF115100A3850D /* Config_Graphics.cpp */,
9A358AF825CF115100A3850D /* Config_Graphics.h */,
9A358AF425CF115100A3850D /* Config_GUI.cpp */,
9A358B1B25CF115100A3850D /* Config_GUI.h */,
9A358AFC25CF115100A3850D /* Config_KernelAndKextPatches.cpp */,
9A358AF725CF115100A3850D /* Config_KernelAndKextPatches.h */,
9A358AFD25CF115100A3850D /* Config_Quirks.cpp */,
9A358B0125CF115100A3850D /* Config_Quirks.h */,
9A358AF525CF115100A3850D /* Config_RtVariables.cpp */,
9A358B1C25CF115100A3850D /* Config_RtVariables.h */,
9A358AF625CF115100A3850D /* Config_SMBIOS.cpp */,
9A358B0E25CF115100A3850D /* Config_SMBIOS.h */,
9A358B1525CF115100A3850D /* Config_SystemParameters.cpp */,
9A358B0D25CF115100A3850D /* Config_SystemParameters.h */,
9A358B0A25CF115100A3850D /* ConfigPlist.cpp */,
9A358AFB25CF115100A3850D /* ConfigPlist.h */,
9A358B0A25CF115100A3850D /* ConfigPlistClass.cpp */,
9A358AFB25CF115100A3850D /* ConfigPlistClass.h */,
);
path = ConfigPlist;
sourceTree = "<group>";
@ -15902,8 +15894,8 @@
9A36E50424F3B537007A1107 /* TagInt64.cpp in Sources */,
9A36E50024F3B537007A1107 /* TagDict.cpp in Sources */,
9A4C576B255AAD07004F0B21 /* MacOsVersion.cpp in Sources */,
9A358B2325CF115200A3850D /* Config_Devices_Audio.cpp in Sources */,
9A36E50C24F3B537007A1107 /* TagData.cpp in Sources */,
9AA316DC260F267A0033D29F /* CompareSettingsSystemParameters.cpp in Sources */,
9AD0358C25C57A4500E58351 /* MemoryAllocationLib.c in Sources */,
9AA9253025CD74CC00BD5E8B /* secureboot.cpp in Sources */,
9AA924FB25CD5B2E00BD5E8B /* AcpiPatcher.cpp in Sources */,
@ -15916,6 +15908,7 @@
9AFDD0BD25CE731000EEAF06 /* strlen_test.cpp in Sources */,
9A358B3D25CF117A00A3850D /* XmlLiteCompositeTypes.cpp in Sources */,
9AA9250325CD5B2E00BD5E8B /* StateGenerator.cpp in Sources */,
9AA316D9260F259F0033D29F /* CompareSettingsCPU.cpp in Sources */,
9AA9253125CD74CC00BD5E8B /* securemenu.cpp in Sources */,
9AD0EB24260A497600093F23 /* XmlLiteSimpleTypes.cpp in Sources */,
9AFDD0A525CE731000EEAF06 /* all_tests.cpp in Sources */,
@ -15926,7 +15919,6 @@
9A28CD22241BB61B00F3D247 /* strlen.cpp in Sources */,
9AA9248325CD5B2E00BD5E8B /* Volumes.cpp in Sources */,
9AA9241F25CD5B2E00BD5E8B /* LegacyBiosThunk.cpp in Sources */,
9A358B2125CF115200A3850D /* Config_RtVariables.cpp in Sources */,
9AA9246325CD5B2E00BD5E8B /* HdaCodecDump.cpp in Sources */,
9AA9259125CD770F00BD5E8B /* scroll_images.cpp in Sources */,
9AFDD05425CDBC1800EEAF06 /* printf_lite.c in Sources */,
@ -15936,12 +15928,10 @@
9AFDD09525CE731000EEAF06 /* strcmp_test.cpp in Sources */,
9A36E52624F3BB6B007A1107 /* FloatLib.cpp in Sources */,
9AFDD09125CE731000EEAF06 /* MacOsVersion_test.cpp in Sources */,
9A358B2525CF115200A3850D /* Config_Quirks.cpp in Sources */,
9AA924F725CD5B2E00BD5E8B /* DevicePath.cpp in Sources */,
9A838CB425347C36008303F5 /* MemoryOperation.c in Sources */,
9AA9252B25CD74CC00BD5E8B /* tool.cpp in Sources */,
9AA9241325CD5B2E00BD5E8B /* SelfOem.cpp in Sources */,
9A358B2D25CF115200A3850D /* Config_Devices.cpp in Sources */,
9AA9252C25CD74CC00BD5E8B /* lockedgraphics.cpp in Sources */,
9A358B2E25CF115200A3850D /* Config_ACPI.cpp in Sources */,
9AA9E4EE25CD283400BD5E8B /* XIcon.cpp in Sources */,
@ -15950,12 +15940,13 @@
9AA9247B25CD5B2E00BD5E8B /* platformdata.cpp in Sources */,
9AA9E4EA25CD283400BD5E8B /* XImage.cpp in Sources */,
9AA9241B25CD5B2E00BD5E8B /* Edid.cpp in Sources */,
9A358B3525CF115200A3850D /* Config_Devices_Arbitrary.cpp in Sources */,
9AA9252D25CD74CC00BD5E8B /* securehash.cpp in Sources */,
9AA316E2260F2BE60033D29F /* CompareSettingsGraphics.cpp in Sources */,
9AA9252E25CD74CC00BD5E8B /* legacy.cpp in Sources */,
9AA924A725CD5B2E00BD5E8B /* Self.cpp in Sources */,
9AA925A125CD770F00BD5E8B /* VectorGraphics.cpp in Sources */,
9A9223312402FD1000483CBA /* main.cpp in Sources */,
9AA316D3260EFC410033D29F /* CompareSettingsACPI.cpp in Sources */,
9AA924D725CD5B2E00BD5E8B /* cpu.cpp in Sources */,
9AA9242B25CD5B2E00BD5E8B /* spd.cpp in Sources */,
9AA925DE25CD967800BD5E8B /* SafeString.c in Sources */,
@ -15964,12 +15955,12 @@
9AA924CF25CD5B2E00BD5E8B /* hda.cpp in Sources */,
9AA9249725CD5B2E00BD5E8B /* Hibernate.cpp in Sources */,
9AFDD0B925CE731000EEAF06 /* XToolsCommon_test.cpp in Sources */,
9AA316D6260F0CBE0033D29F /* CompareSettingsGUI.cpp in Sources */,
9AA9E4F625CD283400BD5E8B /* XCinema.cpp in Sources */,
9AA924F325CD5B2E00BD5E8B /* device_inject.cpp in Sources */,
9AA9247F25CD5B2E00BD5E8B /* sound.cpp in Sources */,
9AFDD0A125CE731000EEAF06 /* find_replace_mask_Clover_tests.cpp in Sources */,
9AA9249F25CD5B2E00BD5E8B /* nvidia.cpp in Sources */,
9A358B3125CF115200A3850D /* Config_SystemParameters.cpp in Sources */,
9AA9249B25CD5B2E00BD5E8B /* APFS.cpp in Sources */,
9AA9257925CD770F00BD5E8B /* text.cpp in Sources */,
9A9037E725CFE7D100F14179 /* config-test.cpp in Sources */,
@ -15978,6 +15969,7 @@
9A358B2F25CF115200A3850D /* Config_Devices_Properties.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 */,
@ -15987,7 +15979,6 @@
9AA924DB25CD5B2E00BD5E8B /* StartupSound.cpp in Sources */,
9AA9253B25CD764900BD5E8B /* REFIT_MENU_SCREEN.cpp in Sources */,
9AA9259D25CD770F00BD5E8B /* lodepng.cpp in Sources */,
9A358B2225CF115200A3850D /* Config_SMBIOS.cpp in Sources */,
9AA925B325CD79AB00BD5E8B /* icns.cpp in Sources */,
9A36E4F424F3B537007A1107 /* plist.cpp in Sources */,
9AA924D325CD5B2E00BD5E8B /* Events.cpp in Sources */,
@ -16008,15 +15999,12 @@
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 */,
9AA924FF25CD5B2E00BD5E8B /* KERNEL_AND_KEXT_PATCHES.cpp in Sources */,
9A358B3425CF115200A3850D /* Config_BootGraphics.cpp in Sources */,
9A358B2C25CF115200A3850D /* Config_Devices_USB.cpp in Sources */,
9AA9253225CD74CC00BD5E8B /* securevars.cpp in Sources */,
9AFDD05025CDBAA700EEAF06 /* MemLogLib.c in Sources */,
9A358B2425CF115200A3850D /* Config_KernelAndKextPatches.cpp in Sources */,
9A358B2825CF115200A3850D /* Config_ACPI_SSDT.cpp in Sources */,
9AA9242325CD5B2E00BD5E8B /* PlatformDriverOverride.cpp in Sources */,
9AA918C725CD4CD300BD5E8B /* BmLib.cpp in Sources */,
9AA924E725CD5B2E00BD5E8B /* gma.cpp in Sources */,
@ -16026,20 +16014,17 @@
9AA924EB25CD5B2E00BD5E8B /* kernel_patcher.cpp in Sources */,
9AA9253325CD74CC00BD5E8B /* common.cpp in Sources */,
9AFDD09925CE731000EEAF06 /* printlib-test.cpp in Sources */,
9A358B2B25CF115200A3850D /* ConfigPlist.cpp in Sources */,
9A358B2625CF115200A3850D /* Config_CPU.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 */,
9A358B3025CF115200A3850D /* Config_Graphics.cpp 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 */,
9AFDD08D25CE731000EEAF06 /* plist_tests.cpp in Sources */,
9A358B2725CF115200A3850D /* Config_Devices_FakeID.cpp in Sources */,
9A358B2925CF115200A3850D /* Config_Boot.cpp in Sources */,
9AA9E53D25CD306700BD5E8B /* loader.cpp in Sources */,
9AA924C725CD5B2E00BD5E8B /* Injectors.cpp in Sources */,
9AA9258925CD770F00BD5E8B /* load_icns.cpp in Sources */,
@ -16057,7 +16042,6 @@
9AA925C025CD87B600BD5E8B /* BasicIO.cpp in Sources */,
9A838CBA25348237008303F5 /* BaseMemoryLib.c in Sources */,
9AA9259925CD770F00BD5E8B /* egemb_font.cpp in Sources */,
9A358B2A25CF115200A3850D /* Config_Devices_AddProperties.cpp in Sources */,
9A36E51424F3B537007A1107 /* TagFloat.cpp in Sources */,
9AA9259525CD770F00BD5E8B /* image.cpp in Sources */,
9AD7B15026079F5D00E850D1 /* REFIT_MAINMENU_SCREEN.cpp in Sources */,

View File

@ -16,7 +16,7 @@
#include "../../../../../cpp_tests/Include/xcode_utf_fixed.h"
#include "ConfigSample1.h"
#include "../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlist.h"
#include "../../../rEFIt_UEFI/Platform/ConfigPlist/ConfigPlistClass.h"
#include "../../../rEFIt_UEFI/Platform/ConfigPlist/CompareSettings.h"
@ -75,7 +75,7 @@ int test1()
printf("GetUserSettings returns %s\n", efiStrError(Status));
bool b;
ConfigPlist configPlist;
ConfigPlistClass configPlist;
XmlLiteParser xmlLiteParser;
xmlLiteParser.init(source, newLen);
@ -94,8 +94,8 @@ int test1()
}
printf("\n");
printf("=== [ CompareEarlyUserSettingsWithConfigPlist ] ====================\n");
return CompareEarlyUserSettingsWithConfigPlist(settings, configPlist) ? 0 : -1;
printf("=== [ CompareOldNewSettings ] ====================\n");
return CompareOldNewSettings(settings, configPlist) ? 0 : -1;
}

View File

@ -230,9 +230,9 @@ CUSTOM_LOADER_ENTRY::CUSTOM_LOADER_ENTRY(const CUSTOM_LOADER_ENTRY_SETTINGS& _se
XString8Array CUSTOM_LOADER_SUBENTRY::getLoadOptions() const
{
if ( settings.m_Arguments.isDefined() ) return Split<XString8Array>(settings.m_Arguments.value(), " ");
if ( settings._Arguments.isDefined() ) return Split<XString8Array>(settings._Arguments.value(), " ");
XString8Array LoadOptions = parent.getLoadOptions();
LoadOptions.import(Split<XString8Array>(settings.m_AddArguments, " "));
LoadOptions.import(Split<XString8Array>(settings._AddArguments, " "));
if (LoadOptions.isEmpty() && OSTYPE_IS_WINDOWS(parent.settings.Type)) {
LoadOptions.Add("-s");
LoadOptions.Add("-h");
@ -244,9 +244,9 @@ XString8Array CUSTOM_LOADER_SUBENTRY::getLoadOptions() const
UINT8 CUSTOM_LOADER_SUBENTRY::getFlags(bool NoCachesDefault) const
{
UINT8 Flags = parent.getFlags(NoCachesDefault);
if ( settings.m_Arguments.isDefined() ) Flags = OSFLAG_SET(Flags, OSFLAG_NODEFAULTARGS);
if ( settings.m_NoCaches.isDefined() ) {
if ( settings.m_NoCaches.value() ) Flags = OSFLAG_SET(Flags, OSFLAG_NOCACHES);
if ( settings._Arguments.isDefined() ) Flags = OSFLAG_SET(Flags, OSFLAG_NODEFAULTARGS);
if ( settings._NoCaches.isDefined() ) {
if ( settings._NoCaches.value() ) Flags = OSFLAG_SET(Flags, OSFLAG_NOCACHES);
else Flags = OSFLAG_UNSET(Flags, OSFLAG_NOCACHES);
}
return Flags;
@ -265,13 +265,13 @@ XString8Array CUSTOM_LOADER_ENTRY::getLoadOptions() const
return LoadOptions;
}
const XString8& CUSTOM_LOADER_SUBENTRY::getTitle() const {
if ( settings.m_Title.isDefined() ) return settings.m_Title.value();
if ( settings.m_FullTitle.isDefined() ) return NullXString8;
if ( settings._Title.isDefined() ) return settings._Title.value();
if ( settings._FullTitle.isDefined() ) return NullXString8;
return parent.settings.dgetTitle();
};
const XString8& CUSTOM_LOADER_SUBENTRY::getFullTitle() const {
if ( settings.m_FullTitle.isDefined() ) return settings.m_FullTitle.value();
if ( settings.m_Title.isDefined() ) return NullXString8;
if ( settings._FullTitle.isDefined() ) return settings._FullTitle.value();
if ( settings._Title.isDefined() ) return NullXString8;
return parent.settings.FullTitle;
};
@ -1553,25 +1553,25 @@ FillinCustomSubEntry (
// } else {
// Entry->Options.SPrintf("%s", Prop->getString()->stringValue());
// }
Entry->m_AddArguments = Prop->getString()->stringValue();
Entry->_AddArguments = Prop->getString()->stringValue();
// Entry->LoadOptions.import(Split<XString8Array>(Prop->getString()->stringValue(), " "));
} else {
Prop = DictPointer->propertyForKey("Arguments");
if (Prop != NULL && (Prop->isString())) {
// Entry->Options.SPrintf("%s", Prop->getString()->stringValue());
Entry->m_Arguments = Prop->getString()->stringValue();
Entry->_Arguments = Prop->getString()->stringValue();
// Entry->LoadOptions = Split<XString8Array>(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();
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->m_FullTitle = Prop->getString()->stringValue();
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.
}
@ -1705,11 +1705,11 @@ FillinCustomSubEntry (
// Entry->LoadOptions.Add("-s");
// Entry->LoadOptions.Add("-h");
// }
if (Entry->m_Title.dgetValue().isEmpty()) {
if (Entry->_Title.dgetValue().isEmpty()) {
if (OSTYPE_IS_OSX_RECOVERY(parentType)) {
Entry->m_Title = "Recovery"_XS8;
Entry->_Title = "Recovery"_XS8;
} else if (OSTYPE_IS_OSX_INSTALLER(parentType)) {
Entry->m_Title = "Install macOS"_XS8;
Entry->_Title = "Install macOS"_XS8;
}
}
// if (Entry->Image.isEmpty() && (Entry->ImagePath.isEmpty())) {
@ -1759,12 +1759,12 @@ FillinCustomSubEntry (
if (Prop != NULL) {
if (IsPropertyNotNullAndTrue(Prop)) {
// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES);
Entry->m_NoCaches = true;
Entry->_NoCaches = true;
} else {
// Use global settings
if (gSettings.SystemParameters.NoCaches) {
// Entry->Flags = OSFLAG_SET(Entry->Flags, OSFLAG_NOCACHES);
Entry->m_NoCaches = false;
Entry->_NoCaches = false;
}
}
}
@ -2492,7 +2492,7 @@ EFI_STATUS GetEarlyUserSettings (
if (BootDict != NULL) {
const TagStruct* Prop = BootDict->propertyForKey("Timeout");
if (Prop != NULL) {
gSettings.Boot.Timeout = (INT32)GetPropertyAsInteger(Prop, gSettings.Boot.Timeout);
gSettings.Boot.Timeout = GetPropertyAsInteger(Prop, gSettings.Boot.Timeout);
DBG("timeout set to %lld\n", gSettings.Boot.Timeout);
}
@ -3095,7 +3095,7 @@ EFI_STATUS GetEarlyUserSettings (
const TagStruct* Prop = GraphicsDict->propertyForKey("PatchVBios");
gSettings.Graphics.PatchVBios = IsPropertyNotNullAndTrue(Prop);
gSettings.Graphics.PatchVBiosBytesNew.setEmpty();
gSettings.Graphics.PatchVBiosBytes.setEmpty();
const TagArray* Dict2 = GraphicsDict->arrayPropertyForKey("PatchVBiosBytes"); // array of dict
if (Dict2 != NULL) {
@ -3139,7 +3139,7 @@ EFI_STATUS GetEarlyUserSettings (
// VBiosPatch->NumberOfBytes = FindSize;
// go to next entry
// ++gSettings.Graphics.PatchVBiosBytesCount;
gSettings.Graphics.PatchVBiosBytesNew.AddReference(VBiosPatchPtr, true);
gSettings.Graphics.PatchVBiosBytes.AddReference(VBiosPatchPtr, true);
} else {
// error - release mem
delete VBiosPatchPtr;
@ -3185,6 +3185,7 @@ EFI_STATUS GetEarlyUserSettings (
MsgLog("MALFORMED PLIST : DisableDrivers must be an array of string");
continue;
}
if ( Prop->getString()->stringValue().notEmpty() )
gSettings.DisabledDriverArray.Add(Prop->getString()->stringValue());
}
}
@ -4014,8 +4015,8 @@ static void getACPISettings(const TagDict *CfgDict, SETTINGS_DATA& gSettings)
gSettings.ACPI.DSDT.DSDTPatchArray.setEmpty();
for (i = 0; i < Count; i++)
{
DSDT_Patch* dsdtPatchPtr = new DSDT_Patch();
DSDT_Patch& dsdtPatch = *dsdtPatchPtr;
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);
@ -5505,18 +5506,18 @@ EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings)
//else gUuid value from SMBIOS
// DBG("Finally use %s\n", strguid(&gUuid));
gSettings.SystemParameters.InjectSystemID = 2;
gSettings.SystemParameters._InjectSystemID = 2;
Prop = SystemParametersDict->propertyForKey("InjectSystemID");
if ( Prop ) {
if ( Prop->isBool() ) gSettings.SystemParameters.InjectSystemID = Prop->getBool()->boolValue();
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().equalIC("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().equalIC("false") ) gSettings.SystemParameters.InjectSystemID = 0;
else if ( Prop->getString()->stringValue().equalIC("n") ) gSettings.SystemParameters.InjectSystemID = 0;
else if ( Prop->getString()->stringValue().equalIC("N") ) gSettings.SystemParameters.InjectSystemID = 0;
if ( Prop->getString()->stringValue().equalIC("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().equalIC("false") ) gSettings.SystemParameters._InjectSystemID = 0;
else if ( Prop->getString()->stringValue().equalIC("n") ) gSettings.SystemParameters._InjectSystemID = 0;
else if ( Prop->getString()->stringValue().equalIC("N") ) gSettings.SystemParameters._InjectSystemID = 0;
else {
DBG("MALFORMED PLIST : SMBIOS/InjectSystemID must be true, yes, false, no, or non existant");
}

View File

@ -14,6 +14,8 @@
#include "../cpp_lib/undefinable.h"
#include "../entry_scan/loader.h" // for KERNEL_SCAN_xxx constants
//#include "card_vlist.h"
#include "ConfigPlist/ConfigPlistClass.h"
#define CLOVER_SIGN SIGNATURE_32('C','l','v','r')
@ -135,31 +137,32 @@ public:
class CUSTOM_LOADER_SUBENTRY_SETTINGS;
class CUSTOM_LOADER_SUBENTRY;
class GUI_Custom_SubEntry_Class;
template<class C> class XmlArray;
//class ConfigPlistClass;
//class ConfigPlistClass::GUI_Custom_Entry_Class;
//template<class C> class XmlArray;
void CompareCustomSubEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_SubEntry_Class>& newCustomEntries);
BOOLEAN FillinCustomSubEntry(UINT8 parentType, IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
//void CompareCustomSubEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_SubEntry_Class>& newCustomEntries);
//BOOLEAN FillinCustomSubEntry(UINT8 parentType, IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
class CUSTOM_LOADER_SUBENTRY_SETTINGS
{
public:
bool Disabled = 0;
protected:
// member defined with m_ prefix should not be accessed from outside. I left them public for now for CompareCustomEntries()
undefinable_XString8 m_Arguments = undefinable_XString8();
XString8 m_AddArguments = XString8();
public: // temporary, must be protected:
// member defined with _ prefix should not be accessed from outside. I left them public for now for CompareCustomEntries()
undefinable_XString8 _Arguments = undefinable_XString8();
XString8 _AddArguments = XString8();
undefinable_XString8 m_FullTitle = undefinable_XString8();
undefinable_XString8 m_Title = undefinable_XString8();
undefinable_XString8 _FullTitle = undefinable_XString8();
undefinable_XString8 _Title = undefinable_XString8();
undefinable_bool m_NoCaches = undefinable_bool();
undefinable_bool _NoCaches = undefinable_bool();
public:
friend void ::CompareCustomSubEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_SubEntry_Class>& newCustomEntries);
friend BOOLEAN FillinCustomSubEntry(UINT8 parentType, IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
friend class ::CUSTOM_LOADER_SUBENTRY;
// friend void ::CompareCustomSubEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_SubEntry_Class>& newCustomEntries);
// friend BOOLEAN FillinCustomSubEntry(UINT8 parentType, IN OUT CUSTOM_LOADER_SUBENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
// friend class ::CUSTOM_LOADER_SUBENTRY;
};
class CUSTOM_LOADER_ENTRY;
@ -179,11 +182,11 @@ public:
const XString8& getFullTitle() const;
};
class GUI_Custom_Entry_Class;
//class GUI_Custom_Entry_Class;
class CUSTOM_LOADER_ENTRY_SETTINGS;
void CompareCustomEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_Entry_Class>& newCustomEntries);
BOOLEAN FillinCustomEntry(IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
//
//void CompareCustomEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_Entry_Class>& newCustomEntries);
//BOOLEAN FillinCustomEntry(IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
extern const XString8 defaultInstallTitle;
extern const XString8 defaultRecoveryTitle;
@ -194,23 +197,13 @@ class CUSTOM_LOADER_ENTRY_SETTINGS
{
public:
bool Disabled = 0;
XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS> SubEntriesSettings = XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>();
protected:
XStringW m_ImagePath = XStringW();
public:
XBuffer<UINT8> ImageData = XBuffer<UINT8>();
protected:
XStringW m_DriveImagePath = XStringW();
public:
XBuffer<UINT8> DriveImageData = XBuffer<UINT8>();
XStringW Volume = XStringW();
XStringW Path = XStringW();
undefinable_XString8 Arguments = undefinable_XString8();
XString8 AddArguments = XString8();
XString8 FullTitle = XStringW();
protected:
XString8 m_Title = XStringW();
public:
XStringW Settings = XStringW(); // path of a config.plist that'll be read at the beginning of startloader
CHAR16 Hotkey = 0;
BOOLEAN CommonSettings = 0;
@ -220,17 +213,21 @@ public:
UINT8 Type = 0;
UINT8 VolumeType = 0;
UINT8 KernelScan = KERNEL_SCAN_ALL;
protected:
UINT8 CustomLogoTypeSettings = 0;
public:
XString8 CustomLogoAsXString8 = XString8();
XBuffer<UINT8> CustomLogoAsData = XBuffer<UINT8>();
EFI_GRAPHICS_OUTPUT_BLT_PIXEL BootBgColor = EFI_GRAPHICS_OUTPUT_BLT_PIXEL({0,0,0,0});
INT8 InjectKexts = -1;
undefinable_bool NoCaches = undefinable_bool();
XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS> SubEntriesSettings = XObjArray<CUSTOM_LOADER_SUBENTRY_SETTINGS>();
public: // temporary, must be protected:
XStringW m_DriveImagePath = XStringW();
XString8 m_Title = XStringW();
UINT8 CustomLogoTypeSettings = 0;
XStringW m_ImagePath = XStringW();
public:
friend class ::CUSTOM_LOADER_ENTRY;
friend void ::CompareCustomEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_Entry_Class>& newCustomEntries);
// friend void ::CompareCustomEntries(const XString8& label, const XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS>& olDCustomEntries, const XmlArray<GUI_Custom_Entry_Class>& newCustomEntries);
friend BOOLEAN FillinCustomEntry(IN OUT CUSTOM_LOADER_ENTRY_SETTINGS *Entry, const TagDict* DictPointer, IN BOOLEAN SubEntry);
@ -413,23 +410,6 @@ public:
DEV_PROPERTY& operator=(const DEV_PROPERTY&) = delete;
};
//#pragma GCC diagnostic error "-Wpadded"
class DSDT_Patch
{
public :
bool Disabled = bool();
XString8 PatchDsdtLabel = XString8();
XBuffer<UINT8> PatchDsdtFind = XBuffer<UINT8>();
XBuffer<UINT8> PatchDsdtReplace = XBuffer<UINT8>();
XBuffer<UINT8> PatchDsdtTgt = XBuffer<UINT8>();
INPUT_ITEM PatchDsdtMenuItem = INPUT_ITEM();
DSDT_Patch() = default; // default is fine if there is only native type and objects that have copy ctor
DSDT_Patch(const DSDT_Patch& other) = default; // default is fine if there is only native type and objects that have copy ctor
DSDT_Patch& operator = ( const DSDT_Patch & ) = default; // default is fine if there is only native type and objects that have copy ctor
};
class MMIOWhiteList
{
public :
@ -476,9 +456,9 @@ public:
class SETTINGS_DATA;
class ConfigPlist;
class ConfigPlistClass;
class TagDict;
bool CompareEarlyUserSettingsWithConfigPlist(const SETTINGS_DATA& olDSettings, const ConfigPlist& configPlist);
//bool CompareOldNewSettings(const SETTINGS_DATA& , const ConfigPlistClass& );
EFI_STATUS GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings);
class SETTINGS_DATA {
@ -503,8 +483,8 @@ public:
bool HibernationFixup = false;
bool SignatureFixup = false;
INT8 SecureSetting = 0; // 0 == false, 1 == true, -1 == undefined
// UINT8 SecureBoot = 0;
// UINT8 SecureBootSetupMode = 0;
//UINT8 SecureBoot = 0;
//UINT8 SecureBootSetupMode = 0;
UINT8 SecureBootPolicy = 0;
// Secure boot white/black list
XStringWArray SecureBootWhiteList = XStringWArray();
@ -516,7 +496,7 @@ public:
UINT8 CustomLogoType = 0;
XString8 CustomLogoAsXString8 = XString8();
XBuffer<UINT8> CustomLogoAsData = XBuffer<UINT8>();
} Boot = BootClass();
};
class ACPIClass
{
@ -529,11 +509,21 @@ public:
UINT32 TabLength = 0;
bool OtherOS = 0;
};
XObjArray<ACPIDropTablesClass> ACPIDropTablesArray = XObjArray<ACPIDropTablesClass>();
class DSDTClass
{
public:
class DSDT_Patch
{
public :
bool Disabled = bool();
XString8 PatchDsdtLabel = XString8();
XBuffer<UINT8> PatchDsdtFind = XBuffer<UINT8>();
XBuffer<UINT8> PatchDsdtReplace = XBuffer<UINT8>();
XBuffer<UINT8> PatchDsdtTgt = XBuffer<UINT8>();
INPUT_ITEM PatchDsdtMenuItem = INPUT_ITEM();
};
XStringW DsdtName = XStringW();
bool DebugDSDT = 0;
bool Rtc8Allowed = 0;
@ -542,7 +532,7 @@ public:
bool ReuseFFFF = 0;
bool SuspendOverride = 0;
XObjArray<DSDT_Patch> DSDTPatchArray = XObjArray<DSDT_Patch>();
} DSDT = DSDTClass();
};
class SSDTClass
{
@ -555,44 +545,65 @@ public:
bool GenerateAPSN = 0;
bool GenerateAPLF = 0;
bool GeneratePluginType = 0;
} Generate = GenerateClass();
bool DropSSDTSetting = 0;
bool NoOemTableId = 0;
bool NoDynamicExtract = 0;
bool EnableISS = 0;
bool EnableC7 = 0;
bool _EnableC6 = 0;
bool _EnableC4 = 0;
bool _EnableC2 = 0;
};
bool DropSSDTSetting = 0;
bool NoOemTableId = 0;
bool NoDynamicExtract = 0;
bool EnableISS = 0;
bool EnableC7 = 0;
bool _EnableC6 = 0;
bool _EnableC4 = 0;
bool _EnableC2 = 0;
UINT16 _C3Latency = 0;
UINT8 PLimitDict = 0;
UINT8 UnderVoltStep = 0;
bool DoubleFirstState = 0;
bool DoubleFirstState = 0;
UINT8 MinMultiplier = 0;
UINT8 MaxMultiplier = 0;
UINT8 PluginType = 0;
} SSDT = SSDTClass();
GenerateClass Generate = GenerateClass();
};
UINT64 ResetAddr = 0;
UINT8 ResetVal = 0;
bool SlpSmiEnable = 0;
bool FixHeaders = 0;
bool FixMCFG = 0;
bool NoASPM = 0;
bool smartUPS = 0;
bool PatchNMI = 0;
bool AutoMerge = 0;
XStringWArray DisabledAML = XStringWArray();
XString8Array SortedACPI = XString8Array();
XObjArray<ACPI_NAME_LIST> DeviceRename = XObjArray<ACPI_NAME_LIST>();
} ACPI = ACPIClass();
UINT64 ResetAddr = 0;
UINT8 ResetVal = 0;
bool SlpSmiEnable = 0;
bool FixHeaders = 0;
bool FixMCFG = 0;
bool NoASPM = 0;
bool smartUPS = 0;
bool PatchNMI = 0;
bool AutoMerge = 0;
XStringWArray DisabledAML = XStringWArray();
XString8Array SortedACPI = XString8Array();
XObjArray<ACPI_NAME_LIST> DeviceRename = XObjArray<ACPI_NAME_LIST>();
XObjArray<ACPIDropTablesClass> ACPIDropTablesArray = XObjArray<ACPIDropTablesClass>();
DSDTClass DSDT = DSDTClass();
SSDTClass SSDT = SSDTClass();
};
class GUIClass {
public:
class MouseClass {
public:
INTN PointerSpeed = 0;
bool PointerEnabled = 0;
UINT64 DoubleClickTime = 0;
bool PointerMirror = 0;
} ;
class ScanClass {
public:
bool DisableEntryScan = 0;
bool DisableToolScan = 0;
UINT8 KernelScan = 0;
bool LinuxScan = 0;
bool LegacyFirst = false;
bool NoLegacy = false;
};
INT32 Timezone = -1;
XStringW Theme = XStringW();
// bool DarkEmbedded = 0;
//bool DarkEmbedded = 0;
XString8 EmbeddedThemeType = XString8();
bool PlayAsync = 0;
bool CustomIcons = false;
@ -602,31 +613,17 @@ public:
bool ProvideConsoleGop = 0;
INTN ConsoleMode = 0;
LANGUAGES Language = english;
bool KbdPrevLang = 0;
class MouseClass {
public:
INTN PointerSpeed = 0;
bool PointerEnabled = 0;
UINT64 DoubleClickTime = 0;
bool PointerMirror = 0;
} Mouse = MouseClass();
bool KbdPrevLang = 0;
XString8Array HVHideStrings = XString8Array();
class ScanClass {
public:
bool DisableEntryScan = 0;
bool DisableToolScan = 0;
UINT8 KernelScan = 0;
bool LinuxScan = 0;
bool LegacyFirst = false;
bool NoLegacy = false;
} Scan = ScanClass();
ScanClass Scan = ScanClass();
MouseClass Mouse = MouseClass();
XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS> CustomEntriesSettings = XObjArray<CUSTOM_LOADER_ENTRY_SETTINGS>();
XObjArray<CUSTOM_LEGACY_ENTRY_SETTINGS> CustomLegacySettings = XObjArray<CUSTOM_LEGACY_ENTRY_SETTINGS>();
XObjArray<CUSTOM_TOOL_ENTRY_SETTINGS> CustomToolSettings = XObjArray<CUSTOM_TOOL_ENTRY_SETTINGS>();
bool getDarkEmbedded(bool isDaylight) const;
bool getDarkEmbedded(bool isDaylight) const;
} GUI = GUIClass();
};
class CPUClass {
public:
@ -646,7 +643,7 @@ public:
undefinable_bool _EnableC4 = undefinable_bool();
undefinable_bool _EnableC2 = undefinable_bool();
undefinable_uint16 _C3Latency = undefinable_uint16();
} CPU = CPUClass();
};
class SystemParametersClass {
public:
@ -656,24 +653,17 @@ public:
uint16_t BacklightLevel = 0xFFFF;
bool BacklightLevelConfig = false;
XString8 CustomUuid = XString8();
protected:
UINT8 InjectSystemID = 2; // 0=false, 1=true, other value = default.
public: // temporary, must be protected:
UINT8 _InjectSystemID = 2; // 0=false, 1=true, other value = default.
public:
bool NvidiaWeb = 0;
friend class ::SETTINGS_DATA;
friend bool ::CompareEarlyUserSettingsWithConfigPlist(const SETTINGS_DATA& olDSettings, const ConfigPlist& configPlist);
friend unsigned long long ::GetUserSettings(const TagDict* CfgDict, SETTINGS_DATA& gSettings);
} SystemParameters = SystemParametersClass();
KERNEL_AND_KEXT_PATCHES KernelAndKextPatches = KERNEL_AND_KEXT_PATCHES();
};
class GraphicsClass {
public:
bool PatchVBios = bool();
PatchVBiosBytesNewClass PatchVBiosBytesNew = PatchVBiosBytesNewClass();
class EDIDClass {
public:
bool InjectEDID = bool();
@ -682,16 +672,29 @@ public:
UINT16 ProductEDID = UINT16();
UINT16 EdidFixHorizontalSyncPulseWidth = UINT16();
UINT8 EdidFixVideoInputSignal = UINT8();
} EDID = EDIDClass();
};
undefinable_bool InjectAsBool = undefinable_bool();
class InjectAsDictClass {
public:
bool InjectIntel = bool();
bool InjectATI = bool();
bool InjectNVidia = bool();
} InjectAsDict = InjectAsDictClass();
};
class GRAPHIC_CARD {
public:
UINT32 Signature = 0;
XString8 Model = XString8();
UINT32 Id = 0;
UINT32 SubId = 0;
UINT64 VideoRam = 0;
UINTN VideoPorts = 0;
bool LoadVBios = 0;
};
bool PatchVBios = bool();
PatchVBiosBytesNewClass PatchVBiosBytes = PatchVBiosBytesNewClass();
undefinable_bool InjectAsBool = undefinable_bool();
bool RadeonDeInit = bool();
bool LoadVBios = bool();
UINT64 VRAM = bool();
@ -706,29 +709,17 @@ public:
INT8 BootDisplay = INT8();
UINT32 DualLink = UINT32();
UINT32 IgPlatform = UINT32(); //could also be snb-platform-id
class GRAPHIC_CARD {
public:
UINT32 Signature = 0;
XString8 Model = XString8();
UINT32 Id = 0;
UINT32 SubId = 0;
UINT64 VideoRam = 0;
UINTN VideoPorts = 0;
bool LoadVBios = 0;
};
EDIDClass EDID = EDIDClass();
InjectAsDictClass InjectAsDict = InjectAsDictClass();
XObjArray<GRAPHIC_CARD> gCardList = XObjArray<GRAPHIC_CARD>();
// bool getGraphicsInjector() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.GraphicsInjector; }
//bool getGraphicsInjector() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.GraphicsInjector; }
bool InjectIntel() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.InjectIntel; }
bool InjectATI() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.InjectATI; }
bool InjectNVidia() const { return InjectAsBool.isDefined() ? InjectAsBool.value() : InjectAsDict.InjectNVidia; }
} Graphics = GraphicsClass();
};
class DevicesClass {
public:
@ -738,61 +729,52 @@ public:
bool ResetHDA = bool();
} Audio = AudioClass();
} Devices = DevicesClass();
};
class QuirksClass {
public:
bool FuzzyMatch = bool();
XString8 OcKernelCache = XString8();
OC_KERNEL_QUIRKS OcKernelQuirks = OC_KERNEL_QUIRKS();
} Quirks = QuirksClass();
XStringWArray DisabledDriverArray = XStringWArray();
};
class RtVariablesClass {
public:
XString8 RtROMAsString = XString8();
XBuffer<UINT8> RtROMAsData = XBuffer<UINT8>();
XString8 RtMLBSetting = XString8();
UINT32 CsrActiveConfig = UINT32();
UINT16 BooterConfig = UINT16();
XString8 BooterCfgStr = XString8();
class RT_VARIABLES
{
public:
XString8 Comment = XStringW();
XStringW Name = XStringW();
EFI_GUID VarGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
};
XString8 RtROMAsString = XString8();
XBuffer<UINT8> RtROMAsData = XBuffer<UINT8>();
XString8 RtMLBSetting = XString8();
UINT32 CsrActiveConfig = UINT32();
UINT16 BooterConfig = UINT16();
XString8 BooterCfgStr = XString8();
XObjArray<RT_VARIABLES> BlockRtVariableArray = XObjArray<RT_VARIABLES>();
class RT_VARIABLES
{
public:
XString8 Comment = XStringW();
XStringW Name = XStringW();
EFI_GUID VarGuid = {0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0}};
};
XObjArray<RT_VARIABLES> BlockRtVariableArray = XObjArray<RT_VARIABLES>();
bool GetLegacyLanAddress() const {
return RtROMAsString.equalIC("UseMacAddr0") || RtROMAsString.equalIC("UseMacAddr1");
}
bool GetLegacyLanAddress() const {
return RtROMAsString.equalIC("UseMacAddr0") || RtROMAsString.equalIC("UseMacAddr1");
}
} RtVariables = RtVariablesClass();
};
BootClass Boot = BootClass();
ACPIClass ACPI = ACPIClass();
GUIClass GUI = GUIClass();
CPUClass CPU = CPUClass();
SystemParametersClass SystemParameters = SystemParametersClass();
KERNEL_AND_KEXT_PATCHES KernelAndKextPatches = KERNEL_AND_KEXT_PATCHES();
GraphicsClass Graphics = GraphicsClass();
XStringWArray DisabledDriverArray = XStringWArray();
QuirksClass Quirks = QuirksClass();
RtVariablesClass RtVariables = RtVariablesClass();
DevicesClass Devices = DevicesClass();
bool getEnableC6() const {
if ( CPU._EnableC6.isDefined() ) return CPU._EnableC6.value();
return ACPI.SSDT._EnableC6;
}
bool getEnableC4() const {
if ( CPU._EnableC4.isDefined() ) return CPU._EnableC4.value();
return ACPI.SSDT._EnableC4;
}
bool getEnableC2() const {
if ( CPU._EnableC2.isDefined() ) return CPU._EnableC2.value();
return ACPI.SSDT._EnableC2;
}
bool getC3Latency() const {
if ( CPU._C3Latency.isDefined() ) return CPU._C3Latency.value();
return ACPI.SSDT._C3Latency;
}
// SMBIOS TYPE0
XString8 VendorName;
XString8 RomVersion;
@ -1007,13 +989,31 @@ public:
// If SmUUID is defined, return true by default.
bool ShouldInjectSystemID() {
if ( SystemParameters.CustomUuid.notEmpty() && SystemParameters.CustomUuid != nullGuid ) {
if ( SystemParameters.InjectSystemID == 2 ) return false;
else return SystemParameters.InjectSystemID;
if ( SystemParameters._InjectSystemID == 2 ) return false;
else return SystemParameters._InjectSystemID;
}
if ( SmUUID.isEmpty() || SmUUID == nullGuid ) return false;
if ( SystemParameters.InjectSystemID == 2 ) return true;
return SystemParameters.InjectSystemID;
if ( SystemParameters._InjectSystemID == 2 ) return true;
return SystemParameters._InjectSystemID;
}
bool getEnableC6() const {
if ( CPU._EnableC6.isDefined() ) return CPU._EnableC6.value();
return ACPI.SSDT._EnableC6;
}
bool getEnableC4() const {
if ( CPU._EnableC4.isDefined() ) return CPU._EnableC4.value();
return ACPI.SSDT._EnableC4;
}
bool getEnableC2() const {
if ( CPU._EnableC2.isDefined() ) return CPU._EnableC2.value();
return ACPI.SSDT._EnableC2;
}
bool getC3Latency() const {
if ( CPU._C3Latency.isDefined() ) return CPU._C3Latency.value();
return ACPI.SSDT._C3Latency;
}
};
//#pragma GCC diagnostic ignored "-Wpadded"
@ -1188,7 +1188,7 @@ public:
XBuffer<UINT8> RtROM = XBuffer<UINT8>();
XString8 RtMLB = XString8();
bool Turbo;
bool Turbo = true;
REFIT_CONFIG() {};
REFIT_CONFIG(const REFIT_CONFIG& other) = delete; // Can be defined if needed

View File

@ -44,7 +44,7 @@ class undefinable_bool : public undefinable<bool>
using super = undefinable<bool>;
public:
undefinable_bool() { }
undefinable_bool(bool newValue) { super::operator=(newValue); }
explicit undefinable_bool(bool newValue) { super::operator=(newValue); }
undefinable_bool& operator = (bool newValue) { super::operator=(newValue); return *this; }
};
@ -53,7 +53,7 @@ class undefinable_uint16 : public undefinable<uint16_t>
using super = undefinable<uint16_t>;
public:
undefinable_uint16() { }
undefinable_uint16(uint32_t newValue) { super::operator=(newValue); }
explicit undefinable_uint16(uint32_t newValue) { super::operator=(newValue); }
undefinable_uint16& operator = (uint16_t newValue) { super::operator=(newValue); return *this; }
};
@ -62,7 +62,7 @@ class undefinable_uint32 : public undefinable<uint32_t>
using super = undefinable<uint32_t>;
public:
undefinable_uint32() { }
undefinable_uint32(uint32_t newValue) { super::operator=(newValue); }
explicit undefinable_uint32(uint32_t newValue) { super::operator=(newValue); }
undefinable_uint32& operator = (uint32_t newValue) { super::operator=(newValue); return *this; }
};
@ -70,6 +70,8 @@ class undefinable_XString8 : public undefinable<XString8>
{
using super = undefinable<XString8>;
public:
undefinable_XString8() { }
explicit undefinable_XString8(const XString8& newValue) { super::operator=(newValue); }
undefinable_XString8& operator = (XString8 newValue) { super::operator=(newValue); return *this; }
};

View File

@ -5,7 +5,7 @@
#include "../Platform/plist/plist.h"
#include "../cpp_lib/XmlLiteSimpleTypes.h"
#include "../cpp_lib/XmlLiteParser.h"
#include "../Platform/ConfigPlist/ConfigPlist.h"
#include "../Platform/ConfigPlist/ConfigPlistClass.h"
static const char* config_all = "\n\n\n\n\n\n\n\n\n\n\n"
@ -902,7 +902,7 @@ int config_plist_tests()
// size_t length;
// bool isOpeningTag, isClosingTag;
bool b;
ConfigPlist configPlistTest;
ConfigPlistClass configPlistTest;
XmlLiteParser xmlLiteParser;
// xmlLiteParser.init(config_all, strlen(config_all));

View File

@ -1609,11 +1609,15 @@ void ScanLoader(void)
rootDmg.replaceAll('/', '\\');
REFIT_VOLUME* targetInstallVolume = Volumes.getVolumeWithApfsContainerUUIDAndFileSystemUUID(Volume->ApfsContainerUUID, Volume->ApfsTargetUUIDArray[i]);
if ( targetInstallVolume ) {
if ( rootDmg.isEmpty() || FileExists(*targetInstallVolume->RootDir, rootDmg) ) { // rootDmg empty is accepted, to be compatible with previous code
EFI_FILE_PROTOCOL* TestFile;
EFI_STATUS Status = targetInstallVolume->RootDir->Open(targetInstallVolume->RootDir, &TestFile, L"\\", EFI_FILE_MODE_READ, 0);
if ( EFI_ERROR(Status) ) TestFile = NULL; // if the root of the volume can't be opened (most likely encrypted), add the installer anyway.
if ( rootDmg.isEmpty() || EFI_ERROR(Status) || FileExists(*targetInstallVolume->RootDir, rootDmg) ) { // rootDmg empty is accepted, to be compatible with previous code
AddLoaderEntry(SWPrintf("\\%s\\com.apple.installer\\boot.efi", Volume->ApfsTargetUUIDArray[i].c_str()), NullXString8Array, FullTitleInstaller, LoaderTitleInstaller, Volume, NULL, OSTYPE_OSX_INSTALLER, 0);
}else{
DBG(" Dead installer entry found (installer dmg boot file not found : '%s')\n", rootDmg.c_str());
}
if ( TestFile != NULL ) TestFile->Close(TestFile);
}else{
DBG(" Dead installer entry found (target volume not found : '%s')\n", Volume->ApfsTargetUUIDArray[i].c_str());
}

View File

@ -31,6 +31,12 @@
#define REG32(base, reg) (*(volatile UINT32 *)((UINTN)base + reg))
#define WRITEREG32(base, reg, value) REG32((base), (reg)) = value
#define CONCAT2(x, y) x ## y
#define CONCAT(x, y) CONCAT2(x, y)
#define STRINGIZE(x) #x
#ifdef __cplusplus
#include "../cpp_util/remove_ref.h"

View File

@ -1016,9 +1016,9 @@ void LOADER_ENTRY::StartLoader()
OC_STRING_ASSIGN(mOpenCoreConfiguration.Kernel.Scheme.KernelArch, "x86_64");
OC_STRING_ASSIGN(mOpenCoreConfiguration.Kernel.Scheme.KernelCache, gSettings.Quirks.OcKernelCache.c_str());
mOpenCoreConfiguration.Kernel.Scheme.FuzzyMatch = gSettings.Quirks.FuzzyMatch;
memcpy(&mOpenCoreConfiguration.Kernel.Quirks, &gSettings.Quirks.OcKernelQuirks, sizeof(mOpenCoreConfiguration.Kernel.Quirks));
gSettings.Quirks.OcKernelQuirks.AppleXcpmCfgLock = GlobalConfig.KPKernelPm;
gSettings.Quirks.OcKernelQuirks.AppleCpuPmCfgLock = GlobalConfig.KPAppleIntelCPUPM;
memcpy(&mOpenCoreConfiguration.Kernel.Quirks, &gSettings.Quirks.OcKernelQuirks, sizeof(mOpenCoreConfiguration.Kernel.Quirks));
mOpenCoreConfiguration.Kernel.Add.Count = (UINT32)kextArray.size();
mOpenCoreConfiguration.Kernel.Add.AllocCount = mOpenCoreConfiguration.Kernel.Add.Count;
@ -1577,6 +1577,24 @@ void LOADER_ENTRY::StartLoader()
LoadedImage->LoadOptions = (void*)LoadOptionsAsXStringW.wc_str();
LoadedImage->LoadOptionsSize = (UINT32)LoadOptionsAsXStringW.sizeInBytesIncludingTerminator();
DBG("Kernel quirks\n");
DBG("ACPCL %d AXCL %d AXEM %d AXFB %d CSG %d DIM %d DLJ %d DRC %d DPM %d EDI %d IPBS %d LKP %d PNKD %d PTKP %d TPD %d XPL %d\n",
mOpenCoreConfiguration.Kernel.Quirks.AppleCpuPmCfgLock,
mOpenCoreConfiguration.Kernel.Quirks.AppleXcpmCfgLock,
mOpenCoreConfiguration.Kernel.Quirks.AppleXcpmExtraMsrs,
mOpenCoreConfiguration.Kernel.Quirks.AppleXcpmForceBoost,
mOpenCoreConfiguration.Kernel.Quirks.CustomSmbiosGuid,
mOpenCoreConfiguration.Kernel.Quirks.DisableIoMapper,
mOpenCoreConfiguration.Kernel.Quirks.DisableLinkeditJettison,
mOpenCoreConfiguration.Kernel.Quirks.DisableRtcChecksum,
mOpenCoreConfiguration.Kernel.Quirks.DummyPowerManagement,
mOpenCoreConfiguration.Kernel.Quirks.ExternalDiskIcons,
mOpenCoreConfiguration.Kernel.Quirks.IncreasePciBarSize,
mOpenCoreConfiguration.Kernel.Quirks.LapicKernelPanic,
mOpenCoreConfiguration.Kernel.Quirks.PanicNoKextDump,
mOpenCoreConfiguration.Kernel.Quirks.PowerTimeoutKernelPanic,
mOpenCoreConfiguration.Kernel.Quirks.ThirdPartyDrives,
mOpenCoreConfiguration.Kernel.Quirks.XhciPortLimit);
DBG("Closing log\n");
if (SavePreBootLog) {
@ -2083,8 +2101,8 @@ void DisconnectSomeDevices(void)
void PatchVideoBios(UINT8 *Edid)
{
if ( gSettings.Graphics.PatchVBiosBytesNew.notEmpty() ) {
VideoBiosPatchBytes(gSettings.Graphics.PatchVBiosBytesNew.getVBIOS_PATCH_BYTES(), gSettings.Graphics.PatchVBiosBytesNew.getVBIOS_PATCH_BYTES_count());
if ( gSettings.Graphics.PatchVBiosBytes.notEmpty() ) {
VideoBiosPatchBytes(gSettings.Graphics.PatchVBiosBytes.getVBIOS_PATCH_BYTES(), gSettings.Graphics.PatchVBiosBytes.getVBIOS_PATCH_BYTES_count());
}
if (gSettings.Graphics.PatchVBios) {
@ -2122,7 +2140,7 @@ static void LoadDrivers(void)
ScanDriverDir(L"drivers32", &DriversToConnect, &DriversToConnectNum);
#endif
VBiosPatchNeeded = gSettings.Graphics.PatchVBios || gSettings.Graphics.PatchVBiosBytesNew.getVBIOS_PATCH_BYTES_count() > 0;
VBiosPatchNeeded = gSettings.Graphics.PatchVBios || gSettings.Graphics.PatchVBiosBytes.getVBIOS_PATCH_BYTES_count() > 0;
if (VBiosPatchNeeded) {
// check if it is already done in CloverEFI BiosVideo
Status = gRT->GetVariable (