From 67d332ce14ad62f9d1449309c5c84aa4e3bf9001 Mon Sep 17 00:00:00 2001 From: SergeySlice Date: Tue, 1 Sep 2020 20:58:59 +0300 Subject: [PATCH] somehow resolve conflict between c++ and swift Signed-off-by: SergeySlice --- CloverApp/Clover.xcodeproj/project.pbxproj | 2 + CloverApp/Clover/Clover-Bridging-Header.h | 575 +---------------- CloverApp/Clover/CloverOldHeaders.h | 583 ++++++++++++++++++ Xcode/Clover/Clover.xcodeproj/project.pbxproj | 2 + rEFIt_UEFI/Platform/Settings.cpp | 2 +- 5 files changed, 589 insertions(+), 575 deletions(-) create mode 100644 CloverApp/Clover/CloverOldHeaders.h diff --git a/CloverApp/Clover.xcodeproj/project.pbxproj b/CloverApp/Clover.xcodeproj/project.pbxproj index d060e6ebc..587320401 100644 --- a/CloverApp/Clover.xcodeproj/project.pbxproj +++ b/CloverApp/Clover.xcodeproj/project.pbxproj @@ -449,6 +449,7 @@ 95E68ADD235B86A1002B37A5 /* Disks.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Disks.swift; sourceTree = ""; }; 95E68ADE235B86A1002B37A5 /* bdmesg.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = bdmesg.swift; sourceTree = ""; }; 95E68AE4235B89D9002B37A5 /* Installer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Installer.swift; sourceTree = ""; }; + A5263CE524FEC13300B3EB14 /* CloverOldHeaders.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CloverOldHeaders.h; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -679,6 +680,7 @@ 95E68AD2235B8632002B37A5 /* Info.plist */, 95E68AD3235B8632002B37A5 /* Clover.entitlements */, 954FCFD023917A8A00C9273C /* Clover-Bridging-Header.h */, + A5263CE524FEC13300B3EB14 /* CloverOldHeaders.h */, 954FCFD72391818300C9273C /* NSWindowFix.h */, 954FCFD82391818300C9273C /* NSWindowFix.m */, 9580403E2414070F00F09F2C /* ThemeImage.h */, diff --git a/CloverApp/Clover/Clover-Bridging-Header.h b/CloverApp/Clover/Clover-Bridging-Header.h index 0e4cdff8a..548df2500 100644 --- a/CloverApp/Clover/Clover-Bridging-Header.h +++ b/CloverApp/Clover/Clover-Bridging-Header.h @@ -82,578 +82,5 @@ typedef struct { UINT8 b, g, r, a; } EG_PIXEL; -typedef struct { - INTN Width; - INTN Height; - EG_PIXEL *PixelData; - BOOLEAN HasAlpha; //moved here to avoid alignment issue -} EG_IMAGE; - -typedef enum { - BoolValue, - Decimal, - Hex, - ASString, - UNIString, - RadioSwitch, - CheckBit, - -} ITEM_TYPE; - -typedef struct { - ITEM_TYPE ItemType; //string, value, boolean - BOOLEAN Valid; - BOOLEAN BValue; - UINT8 Pad8; - UINT32 IValue; - // UINT64 UValue; - // CHAR8* AValue; - CHAR16* SValue; // Max Size (see below) so the field can be edit by the GUI - UINTN LineShift; -} INPUT_ITEM; - -typedef enum { - kTagTypeNone, - kTagTypeDict, - kTagTypeKey, - kTagTypeString, - kTagTypeInteger, - kTagTypeData, - kTagTypeDate, - kTagTypeFalse, - kTagTypeTrue, - kTagTypeArray -} TAG_TYPE; - -typedef struct DEV_PROPERTY DEV_PROPERTY; //yyyy -struct DEV_PROPERTY { - UINT32 Device; - EFI_DEVICE_PATH_PROTOCOL* DevicePath; - CHAR8 *Key; - UINT8 *Value; - UINTN ValueLen; - DEV_PROPERTY *Next; //next device or next property - DEV_PROPERTY *Child; // property list of the device - CHAR8 *Label; - INPUT_ITEM MenuItem; - TAG_TYPE ValueType; -}; - -typedef struct KEXT_PATCH KEXT_PATCH; -struct KEXT_PATCH -{ - CHAR8 *Name; - CHAR8 *Label; - BOOLEAN IsPlistPatch; - CHAR8 align[7]; - INT64 DataLen; - UINT8 *Data; - UINT8 *Patch; - UINT8 *MaskFind; - UINT8 *MaskReplace; - CHAR8 *MatchOS; - CHAR8 *MatchBuild; - INPUT_ITEM MenuItem; -}; - -typedef struct { - CHAR8 *Label; - INTN DataLen; - UINT8 *Data; - UINT8 *Patch; - UINT8 *MaskFind; - UINT8 *MaskReplace; - INTN Count; - CHAR8 *MatchOS; - CHAR8 *MatchBuild; - INPUT_ITEM MenuItem; -} KERNEL_PATCH; - -typedef struct KERNEL_AND_KEXT_PATCHES -{ - BOOLEAN KPDebug; - BOOLEAN KPKernelCpu; - BOOLEAN KPKernelLapic; - BOOLEAN KPKernelXCPM; - BOOLEAN KPKernelPm; - BOOLEAN KPAppleIntelCPUPM; - BOOLEAN KPAppleRTC; - BOOLEAN KPDELLSMBIOS; // Dell SMBIOS patch - BOOLEAN KPPanicNoKextDump; - UINT8 pad[3]; - UINT32 FakeCPUID; - // UINT32 align0; - CHAR16 *KPATIConnectorsController; -#if defined(MDE_CPU_IA32) - UINT32 align1; -#endif - - UINT8 *KPATIConnectorsData; -#if defined(MDE_CPU_IA32) - UINT32 align2; -#endif - - UINTN KPATIConnectorsDataLen; -#if defined(MDE_CPU_IA32) - UINT32 align3; -#endif - UINT8 *KPATIConnectorsPatch; -#if defined(MDE_CPU_IA32) - UINT32 align4; -#endif - - INT32 NrKexts; - UINT32 align40; - KEXT_PATCH *KextPatches; //zzzz -#if defined(MDE_CPU_IA32) - UINT32 align5; -#endif - - INT32 NrForceKexts; - UINT32 align50; - CHAR16 **ForceKexts; -#if defined(MDE_CPU_IA32) - UINT32 align6; -#endif - INT32 NrKernels; - KERNEL_PATCH *KernelPatches; - INT32 NrBoots; - KERNEL_PATCH *BootPatches; - -} KERNEL_AND_KEXT_PATCHES; - -typedef struct ACPI_NAME_LIST ACPI_NAME_LIST; -struct ACPI_NAME_LIST { - ACPI_NAME_LIST *Next; - CHAR8 *Name; -}; - -typedef struct ACPI_DROP_TABLE ACPI_DROP_TABLE; -struct ACPI_DROP_TABLE -{ - ACPI_DROP_TABLE *Next; - UINT32 Signature; - UINT32 Length; - UINT64 TableId; - INPUT_ITEM MenuItem; -}; - -typedef struct RT_VARIABLES RT_VARIABLES; -struct RT_VARIABLES { - // BOOLEAN Disabled; - CHAR16 *Name; - EFI_GUID VarGuid; -}; - -typedef struct CUSTOM_LOADER_ENTRY CUSTOM_LOADER_ENTRY; -struct CUSTOM_LOADER_ENTRY { - CUSTOM_LOADER_ENTRY *Next; - CUSTOM_LOADER_ENTRY *SubEntries; - EG_IMAGE *Image; - EG_IMAGE *DriveImage; - CONST CHAR16 *ImagePath; - CONST CHAR16 *DriveImagePath; - CONST CHAR16 *Volume; - CONST CHAR16 *Path; - CONST CHAR16 *Options; - CONST CHAR16 *FullTitle; - CONST CHAR16 *Title; - CONST CHAR16 *Settings; - CHAR16 Hotkey; - BOOLEAN CommonSettings; - UINT8 Flags; - UINT8 Type; - UINT8 VolumeType; - UINT8 KernelScan; - UINT8 CustomBoot; - EG_IMAGE *CustomLogo; - EG_PIXEL *BootBgColor; - KERNEL_AND_KEXT_PATCHES KernelAndKextPatches; //zzzz -}; - -typedef struct CUSTOM_LEGACY_ENTRY CUSTOM_LEGACY_ENTRY; -struct CUSTOM_LEGACY_ENTRY { - CUSTOM_LEGACY_ENTRY *Next; - EG_IMAGE *Image; - EG_IMAGE *DriveImage; - CONST CHAR16 *ImagePath; - CONST CHAR16 *DriveImagePath; - CONST CHAR16 *Volume; - CONST CHAR16 *FullTitle; - CONST CHAR16 *Title; - CHAR16 Hotkey; - UINT8 Flags; - UINT8 Type; - UINT8 VolumeType; -}; - -typedef struct CUSTOM_TOOL_ENTRY CUSTOM_TOOL_ENTRY; -struct CUSTOM_TOOL_ENTRY { - CUSTOM_TOOL_ENTRY *Next; - EG_IMAGE *Image; - CHAR16 *ImagePath; - CHAR16 *Volume; - CHAR16 *Path; - CHAR16 *Options; - CHAR16 *FullTitle; - CHAR16 *Title; - CHAR16 Hotkey; - UINT8 Flags; - UINT8 VolumeType; -}; - -// Set of Search & replace bytes for VideoBiosPatchBytes(). -typedef struct _VBIOS_PATCH_BYTES { - VOID *Find; - VOID *Replace; - UINTN NumberOfBytes; -} VBIOS_PATCH_BYTES; - -typedef struct { - - // SMBIOS TYPE0 - CHAR8 VendorName[64]; - CHAR8 RomVersion[64]; - CHAR8 EfiVersion[64]; - CHAR8 ReleaseDate[64]; - // SMBIOS TYPE1 - CHAR8 ManufactureName[64]; - CHAR8 ProductName[64]; - CHAR8 VersionNr[64]; - CHAR8 SerialNr[64]; - EFI_GUID SmUUID; - BOOLEAN SmUUIDConfig; - CHAR8 pad0[7]; - //CHAR8 Uuid[64]; - //CHAR8 SKUNumber[64]; - CHAR8 FamilyName[64]; - CHAR8 OEMProduct[64]; - CHAR8 OEMVendor[64]; - // SMBIOS TYPE2 - CHAR8 BoardManufactureName[64]; - CHAR8 BoardSerialNumber[64]; - CHAR8 BoardNumber[64]; //Board-ID - CHAR8 LocationInChassis[64]; - CHAR8 BoardVersion[64]; - CHAR8 OEMBoard[64]; - UINT8 BoardType; - UINT8 Pad1; - // SMBIOS TYPE3 - BOOLEAN Mobile; - UINT8 ChassisType; - CHAR8 ChassisManufacturer[64]; - CHAR8 ChassisAssetTag[64]; - // SMBIOS TYPE4 - UINT32 CpuFreqMHz; - UINT32 BusSpeed; //in kHz - BOOLEAN Turbo; - UINT8 EnabledCores; - BOOLEAN UserChange; - BOOLEAN QEMU; - // SMBIOS TYPE17 - UINT16 SmbiosVersion; - INT8 Attribute; - INT8 Pad17[1]; - CHAR8 MemoryManufacturer[64]; - CHAR8 MemorySerialNumber[64]; - CHAR8 MemoryPartNumber[64]; - CHAR8 MemorySpeed[64]; - // SMBIOS TYPE131 - UINT16 CpuType; - // SMBIOS TYPE132 - UINT16 QPI; - BOOLEAN SetTable132; - BOOLEAN TrustSMBIOS; - BOOLEAN InjectMemoryTables; - INT8 XMPDetection; - BOOLEAN UseARTFreq; - // SMBIOS TYPE133 - UINT64 PlatformFeature; - - // PatchTableType11 - BOOLEAN NoRomInfo; - - // OS parameters - CHAR8 Language[16]; - CHAR8 BootArgs[256]; - CHAR16 CustomUuid[40]; - - CHAR16 *DefaultVolume; - CHAR16 *DefaultLoader; - //Boot - BOOLEAN LastBootedVolume; - BOOLEAN SkipHibernateTimeout; - //Monitor - BOOLEAN IntelMaxBacklight; - // UINT8 Pad21[1]; - UINT16 VendorEDID; - UINT16 ProductEDID; - UINT16 BacklightLevel; - BOOLEAN BacklightLevelConfig; - BOOLEAN IntelBacklight; - //Boot options - BOOLEAN MemoryFix; - BOOLEAN WithKexts; - BOOLEAN WithKextsIfNoFakeSMC; - BOOLEAN FakeSMCFound; - BOOLEAN NoCaches; - - // GUI parameters - BOOLEAN Debug; - BOOLEAN Proportional; - // UINT8 Pad22[1]; - UINT32 DefaultBackgroundColor; - - //ACPI - UINT64 ResetAddr; - UINT8 ResetVal; - BOOLEAN NoASPM; - BOOLEAN DropSSDT; - BOOLEAN NoOemTableId; - BOOLEAN NoDynamicExtract; - BOOLEAN AutoMerge; - BOOLEAN GeneratePStates; - BOOLEAN GenerateCStates; - BOOLEAN GenerateAPSN; - BOOLEAN GenerateAPLF; - BOOLEAN GeneratePluginType; - UINT8 PLimitDict; - UINT8 UnderVoltStep; - BOOLEAN DoubleFirstState; - BOOLEAN SuspendOverride; - BOOLEAN EnableC2; - BOOLEAN EnableC4; - BOOLEAN EnableC6; - BOOLEAN EnableISS; - BOOLEAN SlpSmiEnable; - BOOLEAN FixHeaders; - UINT16 C3Latency; - BOOLEAN smartUPS; - BOOLEAN PatchNMI; - BOOLEAN EnableC7; - UINT8 SavingMode; - - CHAR16 DsdtName[28]; - UINT32 FixDsdt; - UINT8 MinMultiplier; - UINT8 MaxMultiplier; - UINT8 PluginType; - // BOOLEAN DropMCFG; - BOOLEAN FixMCFG; - - UINT32 DeviceRenameCount; - ACPI_NAME_LIST *DeviceRename; - //Injections - BOOLEAN StringInjector; - BOOLEAN InjectSystemID; - BOOLEAN NoDefaultProperties; - - BOOLEAN ReuseFFFF; - - //PCI devices - UINT32 FakeATI; //97 - UINT32 FakeNVidia; - UINT32 FakeIntel; - UINT32 FakeLAN; //100 - UINT32 FakeWIFI; - UINT32 FakeSATA; - UINT32 FakeXHCI; //103 - UINT32 FakeIMEI; //106 - - //Graphics - // UINT16 PCIRootUID; - BOOLEAN GraphicsInjector; - BOOLEAN InjectIntel; - BOOLEAN InjectATI; - BOOLEAN InjectNVidia; - BOOLEAN DeInit; - BOOLEAN LoadVBios; - BOOLEAN PatchVBios; - VBIOS_PATCH_BYTES *PatchVBiosBytes; - UINTN PatchVBiosBytesCount; - BOOLEAN InjectEDID; - BOOLEAN LpcTune; - UINT16 DropOEM_DSM; // vacant (unused in 0b7eed38f14400c8501228a30dcc023e1132cec3 r5017+) - UINT8 *CustomEDID; - UINT16 CustomEDIDsize; - UINT16 EdidFixHorizontalSyncPulseWidth; - UINT8 EdidFixVideoInputSignal; - - CHAR16 FBName[16]; - UINT16 VideoPorts; - BOOLEAN NvidiaGeneric; - BOOLEAN NvidiaNoEFI; - BOOLEAN NvidiaSingle; - UINT64 VRAM; - UINT8 Dcfg[8]; - UINT8 NVCAP[20]; - INT8 BootDisplay; - BOOLEAN NvidiaWeb; - UINT8 pad41[2]; - UINT32 DualLink; - UINT32 IgPlatform; - - // Secure boot white/black list - UINT32 SecureBootWhiteListCount; - UINT32 SecureBootBlackListCount; - CHAR16 **SecureBootWhiteList; - - CHAR16 **SecureBootBlackList; - - // Secure boot - UINT8 SecureBoot; - UINT8 SecureBootSetupMode; - UINT8 SecureBootPolicy; - - // HDA - BOOLEAN HDAInjection; - INT32 HDALayoutId; - - // USB DeviceTree injection - BOOLEAN USBInjection; - BOOLEAN USBFixOwnership; - BOOLEAN InjectClockID; - BOOLEAN HighCurrent; - BOOLEAN NameEH00; - BOOLEAN NameXH00; - - BOOLEAN LANInjection; - BOOLEAN HDMIInjection; - - // UINT8 pad61[2]; - - // LegacyBoot - CHAR16 LegacyBoot[32]; - UINT16 LegacyBiosDefaultEntry; - - //SkyLake - BOOLEAN HWP; - UINT8 TDP; - UINT32 HWPValue; - - //Volumes hiding - CHAR16 **HVHideStrings; - - INTN HVCount; - - // KernelAndKextPatches - KERNEL_AND_KEXT_PATCHES KernelAndKextPatches; //zzzz - BOOLEAN KextPatchesAllowed; - BOOLEAN KernelPatchesAllowed; //From GUI: Only for user patches, not internal Clover - - CHAR8 AirportBridgeDeviceName[5]; - - // Pre-language - BOOLEAN KbdPrevLang; - - //Pointer - BOOLEAN PointerEnabled; - INTN PointerSpeed; - UINT64 DoubleClickTime; - BOOLEAN PointerMirror; - - // UINT8 pad7[6]; - UINT8 CustomBoot; - EG_IMAGE *CustomLogo; - - UINT32 RefCLK; - - // SysVariables - CHAR8 *RtMLB; - UINT8 *RtROM; - UINTN RtROMLen; - - UINT32 CsrActiveConfig; - UINT16 BooterConfig; - CHAR8 BooterCfgStr[64]; - BOOLEAN DisableCloverHotkeys; - BOOLEAN NeverDoRecovery; - - // Multi-config - CHAR16 ConfigName[30]; - CHAR16 *MainConfigName; - - //Drivers - INTN BlackListCount; - CHAR16 **BlackList; - - //SMC keys - CHAR8 RPlt[8]; - CHAR8 RBr[8]; - UINT8 EPCI[4]; - UINT8 REV[6]; - - //other devices - BOOLEAN Rtc8Allowed; - BOOLEAN ForceHPET; - BOOLEAN ResetHDA; - BOOLEAN PlayAsync; - UINT32 DisableFunctions; - - //Patch DSDT arbitrary - UINT32 PatchDsdtNum; - UINT8 **PatchDsdtFind; - UINT32 *LenToFind; - UINT8 **PatchDsdtReplace; - - UINT32 *LenToReplace; - BOOLEAN DebugDSDT; - BOOLEAN SlpWak; - BOOLEAN UseIntelHDMI; - UINT8 AFGLowPowerState; - UINT8 PNLF_UID; - // UINT8 pad83[4]; - - - // Table dropping - ACPI_DROP_TABLE *ACPIDropTables; - - // Custom entries - BOOLEAN DisableEntryScan; - BOOLEAN DisableToolScan; - BOOLEAN ShowHiddenEntries; - UINT8 KernelScan; - BOOLEAN LinuxScan; - // UINT8 pad84[3]; - CUSTOM_LOADER_ENTRY *CustomEntries; - CUSTOM_LEGACY_ENTRY *CustomLegacy; - CUSTOM_TOOL_ENTRY *CustomTool; - - //Add custom properties - UINTN NrAddProperties; - DEV_PROPERTY *AddProperties; - - //BlackListed kexts - CHAR16 BlockKexts[64]; - - // Disable inject kexts - // UINT32 DisableInjectKextCount; - // CHAR16 **DisabledInjectKext; - // INPUT_ITEM *InjectKextMenuItem; - - //ACPI tables - UINTN SortedACPICount; - CHAR16 **SortedACPI; - - // ACPI/PATCHED/AML - UINT32 DisabledAMLCount; - CHAR16 **DisabledAML; - CHAR8 **PatchDsdtLabel; //yyyy - CHAR8 **PatchDsdtTgt; - INPUT_ITEM *PatchDsdtMenuItem; - - //other - UINT32 IntelMaxValue; - // UINT32 AudioVolume; - - // boot.efi - UINT32 OptionsBits; - UINT32 FlagsBits; - UINT32 UIScale; - UINT32 EFILoginHiDPI; - UINT8 flagstate[32]; - - DEV_PROPERTY *ArbProperties; - -} SETTINGS_DATA; +#import "CloverOldHeaders.h" diff --git a/CloverApp/Clover/CloverOldHeaders.h b/CloverApp/Clover/CloverOldHeaders.h new file mode 100644 index 000000000..aec476ca5 --- /dev/null +++ b/CloverApp/Clover/CloverOldHeaders.h @@ -0,0 +1,583 @@ +#ifdef __cplusplus +extern "C" { +#endif + + +typedef struct { + INTN Width; + INTN Height; + EG_PIXEL *PixelData; + BOOLEAN HasAlpha; //moved here to avoid alignment issue +} EG_IMAGE; + +typedef enum { + BoolValue, + Decimal, + Hex, + ASString, + UNIString, + RadioSwitch, + CheckBit, + +} ITEM_TYPE; + +typedef struct { + ITEM_TYPE ItemType; //string, value, boolean + BOOLEAN Valid; + BOOLEAN BValue; + UINT8 Pad8; + UINT32 IValue; + // UINT64 UValue; + // CHAR8* AValue; + CHAR16* SValue; // Max Size (see below) so the field can be edit by the GUI + UINTN LineShift; +} INPUT_ITEM; + +typedef enum { + kTagTypeNone, + kTagTypeDict, + kTagTypeKey, + kTagTypeString, + kTagTypeInteger, + kTagTypeData, + kTagTypeDate, + kTagTypeFalse, + kTagTypeTrue, + kTagTypeArray +} TAG_TYPE; + +typedef struct _DEV_PROPERTY DEV_PROPERTY; //yyyy +struct _DEV_PROPERTY { + UINT32 Device; + EFI_DEVICE_PATH_PROTOCOL* DevicePath; + CHAR8 *Key; + UINT8 *Value; + UINTN ValueLen; + DEV_PROPERTY *Next; //next device or next property + DEV_PROPERTY *Child; // property list of the device + CHAR8 *Label; + INPUT_ITEM MenuItem; + TAG_TYPE ValueType; +}; + +typedef struct _KEXT_PATCH KEXT_PATCH; +struct _KEXT_PATCH +{ + CHAR8 *Name; + CHAR8 *Label; + BOOLEAN IsPlistPatch; + CHAR8 align[7]; + INT64 DataLen; + UINT8 *Data; + UINT8 *Patch; + UINT8 *MaskFind; + UINT8 *MaskReplace; + CHAR8 *MatchOS; + CHAR8 *MatchBuild; + INPUT_ITEM MenuItem; +}; + +typedef struct { + CHAR8 *Label; + INTN DataLen; + UINT8 *Data; + UINT8 *Patch; + UINT8 *MaskFind; + UINT8 *MaskReplace; + INTN Count; + CHAR8 *MatchOS; + CHAR8 *MatchBuild; + INPUT_ITEM MenuItem; +} KERNEL_PATCH; + +typedef struct KERNEL_AND_KEXT_PATCHES +{ + BOOLEAN KPDebug; + BOOLEAN KPKernelCpu; + BOOLEAN KPKernelLapic; + BOOLEAN KPKernelXCPM; + BOOLEAN KPKernelPm; + BOOLEAN KPAppleIntelCPUPM; + BOOLEAN KPAppleRTC; + BOOLEAN KPDELLSMBIOS; // Dell SMBIOS patch + BOOLEAN KPPanicNoKextDump; + UINT8 pad[3]; + UINT32 FakeCPUID; + // UINT32 align0; + CHAR16 *KPATIConnectorsController; +#if defined(MDE_CPU_IA32) + UINT32 align1; +#endif + + UINT8 *KPATIConnectorsData; +#if defined(MDE_CPU_IA32) + UINT32 align2; +#endif + + UINTN KPATIConnectorsDataLen; +#if defined(MDE_CPU_IA32) + UINT32 align3; +#endif + UINT8 *KPATIConnectorsPatch; +#if defined(MDE_CPU_IA32) + UINT32 align4; +#endif + + INT32 NrKexts; + UINT32 align40; + KEXT_PATCH *KextPatches; //zzzz +#if defined(MDE_CPU_IA32) + UINT32 align5; +#endif + + INT32 NrForceKexts; + UINT32 align50; + CHAR16 **ForceKexts; +#if defined(MDE_CPU_IA32) + UINT32 align6; +#endif + INT32 NrKernels; + KERNEL_PATCH *KernelPatches; + INT32 NrBoots; + KERNEL_PATCH *BootPatches; + +} KERNEL_AND_KEXT_PATCHES; + +typedef struct _ACPI_NAME_LIST ACPI_NAME_LIST; +struct _ACPI_NAME_LIST { + ACPI_NAME_LIST *Next; + CHAR8 *Name; +}; + +typedef struct _ACPI_DROP_TABLE ACPI_DROP_TABLE; +struct _ACPI_DROP_TABLE +{ + ACPI_DROP_TABLE *Next; + UINT32 Signature; + UINT32 Length; + UINT64 TableId; + INPUT_ITEM MenuItem; +}; + +typedef struct _RT_VARIABLES RT_VARIABLES; +struct _RT_VARIABLES { + // BOOLEAN Disabled; + CHAR16 *Name; + EFI_GUID VarGuid; +}; + +typedef struct _CUSTOM_LOADER_ENTRY CUSTOM_LOADER_ENTRY; +struct _CUSTOM_LOADER_ENTRY { + CUSTOM_LOADER_ENTRY *Next; + CUSTOM_LOADER_ENTRY *SubEntries; + EG_IMAGE *Image; + EG_IMAGE *DriveImage; + CONST CHAR16 *ImagePath; + CONST CHAR16 *DriveImagePath; + CONST CHAR16 *Volume; + CONST CHAR16 *Path; + CONST CHAR16 *Options; + CONST CHAR16 *FullTitle; + CONST CHAR16 *Title; + CONST CHAR16 *Settings; + CHAR16 Hotkey; + BOOLEAN CommonSettings; + UINT8 Flags; + UINT8 Type; + UINT8 VolumeType; + UINT8 KernelScan; + UINT8 CustomBoot; + EG_IMAGE *CustomLogo; + EG_PIXEL *BootBgColor; + KERNEL_AND_KEXT_PATCHES KernelAndKextPatches; //zzzz +}; + +typedef struct _CUSTOM_LEGACY_ENTRY CUSTOM_LEGACY_ENTRY; +struct _CUSTOM_LEGACY_ENTRY { + CUSTOM_LEGACY_ENTRY *Next; + EG_IMAGE *Image; + EG_IMAGE *DriveImage; + CONST CHAR16 *ImagePath; + CONST CHAR16 *DriveImagePath; + CONST CHAR16 *Volume; + CONST CHAR16 *FullTitle; + CONST CHAR16 *Title; + CHAR16 Hotkey; + UINT8 Flags; + UINT8 Type; + UINT8 VolumeType; +}; + +typedef struct _CUSTOM_TOOL_ENTRY CUSTOM_TOOL_ENTRY; +struct _CUSTOM_TOOL_ENTRY { + CUSTOM_TOOL_ENTRY *Next; + EG_IMAGE *Image; + CHAR16 *ImagePath; + CHAR16 *Volume; + CHAR16 *Path; + CHAR16 *Options; + CHAR16 *FullTitle; + CHAR16 *Title; + CHAR16 Hotkey; + UINT8 Flags; + UINT8 VolumeType; +}; + +// Set of Search & replace bytes for VideoBiosPatchBytes(). +typedef struct _VBIOS_PATCH_BYTES { + VOID *Find; + VOID *Replace; + UINTN NumberOfBytes; +} VBIOS_PATCH_BYTES; + +typedef struct { + + // SMBIOS TYPE0 + CHAR8 VendorName[64]; + CHAR8 RomVersion[64]; + CHAR8 EfiVersion[64]; + CHAR8 ReleaseDate[64]; + // SMBIOS TYPE1 + CHAR8 ManufactureName[64]; + CHAR8 ProductName[64]; + CHAR8 VersionNr[64]; + CHAR8 SerialNr[64]; + EFI_GUID SmUUID; + BOOLEAN SmUUIDConfig; + CHAR8 pad0[7]; + //CHAR8 Uuid[64]; + //CHAR8 SKUNumber[64]; + CHAR8 FamilyName[64]; + CHAR8 OEMProduct[64]; + CHAR8 OEMVendor[64]; + // SMBIOS TYPE2 + CHAR8 BoardManufactureName[64]; + CHAR8 BoardSerialNumber[64]; + CHAR8 BoardNumber[64]; //Board-ID + CHAR8 LocationInChassis[64]; + CHAR8 BoardVersion[64]; + CHAR8 OEMBoard[64]; + UINT8 BoardType; + UINT8 Pad1; + // SMBIOS TYPE3 + BOOLEAN Mobile; + UINT8 ChassisType; + CHAR8 ChassisManufacturer[64]; + CHAR8 ChassisAssetTag[64]; + // SMBIOS TYPE4 + UINT32 CpuFreqMHz; + UINT32 BusSpeed; //in kHz + BOOLEAN Turbo; + UINT8 EnabledCores; + BOOLEAN UserChange; + BOOLEAN QEMU; + // SMBIOS TYPE17 + UINT16 SmbiosVersion; + INT8 Attribute; + INT8 Pad17[1]; + CHAR8 MemoryManufacturer[64]; + CHAR8 MemorySerialNumber[64]; + CHAR8 MemoryPartNumber[64]; + CHAR8 MemorySpeed[64]; + // SMBIOS TYPE131 + UINT16 CpuType; + // SMBIOS TYPE132 + UINT16 QPI; + BOOLEAN SetTable132; + BOOLEAN TrustSMBIOS; + BOOLEAN InjectMemoryTables; + INT8 XMPDetection; + BOOLEAN UseARTFreq; + // SMBIOS TYPE133 + UINT64 PlatformFeature; + + // PatchTableType11 + BOOLEAN NoRomInfo; + + // OS parameters + CHAR8 Language[16]; + CHAR8 BootArgs[256]; + CHAR16 CustomUuid[40]; + + CHAR16 *DefaultVolume; + CHAR16 *DefaultLoader; + //Boot + BOOLEAN LastBootedVolume; + BOOLEAN SkipHibernateTimeout; + //Monitor + BOOLEAN IntelMaxBacklight; + // UINT8 Pad21[1]; + UINT16 VendorEDID; + UINT16 ProductEDID; + UINT16 BacklightLevel; + BOOLEAN BacklightLevelConfig; + BOOLEAN IntelBacklight; + //Boot options + BOOLEAN MemoryFix; + BOOLEAN WithKexts; + BOOLEAN WithKextsIfNoFakeSMC; + BOOLEAN FakeSMCFound; + BOOLEAN NoCaches; + + // GUI parameters + BOOLEAN Debug; + BOOLEAN Proportional; + // UINT8 Pad22[1]; + UINT32 DefaultBackgroundColor; + + //ACPI + UINT64 ResetAddr; + UINT8 ResetVal; + BOOLEAN NoASPM; + BOOLEAN DropSSDT; + BOOLEAN NoOemTableId; + BOOLEAN NoDynamicExtract; + BOOLEAN AutoMerge; + BOOLEAN GeneratePStates; + BOOLEAN GenerateCStates; + BOOLEAN GenerateAPSN; + BOOLEAN GenerateAPLF; + BOOLEAN GeneratePluginType; + UINT8 PLimitDict; + UINT8 UnderVoltStep; + BOOLEAN DoubleFirstState; + BOOLEAN SuspendOverride; + BOOLEAN EnableC2; + BOOLEAN EnableC4; + BOOLEAN EnableC6; + BOOLEAN EnableISS; + BOOLEAN SlpSmiEnable; + BOOLEAN FixHeaders; + UINT16 C3Latency; + BOOLEAN smartUPS; + BOOLEAN PatchNMI; + BOOLEAN EnableC7; + UINT8 SavingMode; + + CHAR16 DsdtName[28]; + UINT32 FixDsdt; + UINT8 MinMultiplier; + UINT8 MaxMultiplier; + UINT8 PluginType; + // BOOLEAN DropMCFG; + BOOLEAN FixMCFG; + + UINT32 DeviceRenameCount; + ACPI_NAME_LIST *DeviceRename; + //Injections + BOOLEAN StringInjector; + BOOLEAN InjectSystemID; + BOOLEAN NoDefaultProperties; + + BOOLEAN ReuseFFFF; + + //PCI devices + UINT32 FakeATI; //97 + UINT32 FakeNVidia; + UINT32 FakeIntel; + UINT32 FakeLAN; //100 + UINT32 FakeWIFI; + UINT32 FakeSATA; + UINT32 FakeXHCI; //103 + UINT32 FakeIMEI; //106 + + //Graphics + // UINT16 PCIRootUID; + BOOLEAN GraphicsInjector; + BOOLEAN InjectIntel; + BOOLEAN InjectATI; + BOOLEAN InjectNVidia; + BOOLEAN DeInit; + BOOLEAN LoadVBios; + BOOLEAN PatchVBios; + VBIOS_PATCH_BYTES *PatchVBiosBytes; + UINTN PatchVBiosBytesCount; + BOOLEAN InjectEDID; + BOOLEAN LpcTune; + UINT16 DropOEM_DSM; // vacant (unused in 0b7eed38f14400c8501228a30dcc023e1132cec3 r5017+) + UINT8 *CustomEDID; + UINT16 CustomEDIDsize; + UINT16 EdidFixHorizontalSyncPulseWidth; + UINT8 EdidFixVideoInputSignal; + + CHAR16 FBName[16]; + UINT16 VideoPorts; + BOOLEAN NvidiaGeneric; + BOOLEAN NvidiaNoEFI; + BOOLEAN NvidiaSingle; + UINT64 VRAM; + UINT8 Dcfg[8]; + UINT8 NVCAP[20]; + INT8 BootDisplay; + BOOLEAN NvidiaWeb; + UINT8 pad41[2]; + UINT32 DualLink; + UINT32 IgPlatform; + + // Secure boot white/black list + UINT32 SecureBootWhiteListCount; + UINT32 SecureBootBlackListCount; + CHAR16 **SecureBootWhiteList; + + CHAR16 **SecureBootBlackList; + + // Secure boot + UINT8 SecureBoot; + UINT8 SecureBootSetupMode; + UINT8 SecureBootPolicy; + + // HDA + BOOLEAN HDAInjection; + INT32 HDALayoutId; + + // USB DeviceTree injection + BOOLEAN USBInjection; + BOOLEAN USBFixOwnership; + BOOLEAN InjectClockID; + BOOLEAN HighCurrent; + BOOLEAN NameEH00; + BOOLEAN NameXH00; + + BOOLEAN LANInjection; + BOOLEAN HDMIInjection; + + // UINT8 pad61[2]; + + // LegacyBoot + CHAR16 LegacyBoot[32]; + UINT16 LegacyBiosDefaultEntry; + + //SkyLake + BOOLEAN HWP; + UINT8 TDP; + UINT32 HWPValue; + + //Volumes hiding + CHAR16 **HVHideStrings; + + INTN HVCount; + + // KernelAndKextPatches + KERNEL_AND_KEXT_PATCHES KernelAndKextPatches; //zzzz + BOOLEAN KextPatchesAllowed; + BOOLEAN KernelPatchesAllowed; //From GUI: Only for user patches, not internal Clover + + CHAR8 AirportBridgeDeviceName[5]; + + // Pre-language + BOOLEAN KbdPrevLang; + + //Pointer + BOOLEAN PointerEnabled; + INTN PointerSpeed; + UINT64 DoubleClickTime; + BOOLEAN PointerMirror; + + // UINT8 pad7[6]; + UINT8 CustomBoot; + EG_IMAGE *CustomLogo; + + UINT32 RefCLK; + + // SysVariables + CHAR8 *RtMLB; + UINT8 *RtROM; + UINTN RtROMLen; + + UINT32 CsrActiveConfig; + UINT16 BooterConfig; + CHAR8 BooterCfgStr[64]; + BOOLEAN DisableCloverHotkeys; + BOOLEAN NeverDoRecovery; + + // Multi-config + CHAR16 ConfigName[30]; + CHAR16 *MainConfigName; + + //Drivers + INTN BlackListCount; + CHAR16 **BlackList; + + //SMC keys + CHAR8 RPlt[8]; + CHAR8 RBr[8]; + UINT8 EPCI[4]; + UINT8 REV[6]; + + //other devices + BOOLEAN Rtc8Allowed; + BOOLEAN ForceHPET; + BOOLEAN ResetHDA; + BOOLEAN PlayAsync; + UINT32 DisableFunctions; + + //Patch DSDT arbitrary + UINT32 PatchDsdtNum; + UINT8 **PatchDsdtFind; + UINT32 *LenToFind; + UINT8 **PatchDsdtReplace; + + UINT32 *LenToReplace; + BOOLEAN DebugDSDT; + BOOLEAN SlpWak; + BOOLEAN UseIntelHDMI; + UINT8 AFGLowPowerState; + UINT8 PNLF_UID; + // UINT8 pad83[4]; + + + // Table dropping + ACPI_DROP_TABLE *ACPIDropTables; + + // Custom entries + BOOLEAN DisableEntryScan; + BOOLEAN DisableToolScan; + BOOLEAN ShowHiddenEntries; + UINT8 KernelScan; + BOOLEAN LinuxScan; + // UINT8 pad84[3]; + CUSTOM_LOADER_ENTRY *CustomEntries; + CUSTOM_LEGACY_ENTRY *CustomLegacy; + CUSTOM_TOOL_ENTRY *CustomTool; + + //Add custom properties + UINTN NrAddProperties; + DEV_PROPERTY *AddProperties; + + //BlackListed kexts + CHAR16 BlockKexts[64]; + + // Disable inject kexts + // UINT32 DisableInjectKextCount; + // CHAR16 **DisabledInjectKext; + // INPUT_ITEM *InjectKextMenuItem; + + //ACPI tables + UINTN SortedACPICount; + CHAR16 **SortedACPI; + + // ACPI/PATCHED/AML + UINT32 DisabledAMLCount; + CHAR16 **DisabledAML; + CHAR8 **PatchDsdtLabel; //yyyy + CHAR8 **PatchDsdtTgt; + INPUT_ITEM *PatchDsdtMenuItem; + + //other + UINT32 IntelMaxValue; + // UINT32 AudioVolume; + + // boot.efi + UINT32 OptionsBits; + UINT32 FlagsBits; + UINT32 UIScale; + UINT32 EFILoginHiDPI; + UINT8 flagstate[32]; + + DEV_PROPERTY *ArbProperties; + +} SETTINGS_DATA; + +#ifdef __cplusplus +} +#endif diff --git a/Xcode/Clover/Clover.xcodeproj/project.pbxproj b/Xcode/Clover/Clover.xcodeproj/project.pbxproj index c62672517..3916b37c8 100644 --- a/Xcode/Clover/Clover.xcodeproj/project.pbxproj +++ b/Xcode/Clover/Clover.xcodeproj/project.pbxproj @@ -2226,6 +2226,7 @@ A52313392448B3F300421FB2 /* VersionString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VersionString.cpp; sourceTree = ""; }; A523133A2448B3F400421FB2 /* usbfix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = usbfix.h; sourceTree = ""; }; A523133C2448B43C00421FB2 /* Version.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Version.h; path = ../../Version.h; sourceTree = ""; }; + A5263CE424FEBD6E00B3EB14 /* CloverOldHeaders.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = CloverOldHeaders.h; path = ../CloverApp/Clover/CloverOldHeaders.h; sourceTree = ""; }; A529342B24FB9255004241C3 /* XBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XBuffer.h; sourceTree = ""; }; A529342C24FB9256004241C3 /* XBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = XBuffer.cpp; sourceTree = ""; }; A529342E24FB9265004241C3 /* XRBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XRBuffer.h; sourceTree = ""; }; @@ -16880,6 +16881,7 @@ A5C324A624B5022F004E20CC /* Guid */, A5C3244F24B5022F004E20CC /* IndustryStandard */, A5C3309A24B6F110004E20CC /* AppleMacEfi.h */, + A5263CE424FEBD6E00B3EB14 /* CloverOldHeaders.h */, A5C3246124B5022F004E20CC /* EfiLdrHandoff.h */, A5C3246224B5022F004E20CC /* Library */, A5C3247F24B5022F004E20CC /* Protocol */, diff --git a/rEFIt_UEFI/Platform/Settings.cpp b/rEFIt_UEFI/Platform/Settings.cpp index 007212558..eea6d0887 100644 --- a/rEFIt_UEFI/Platform/Settings.cpp +++ b/rEFIt_UEFI/Platform/Settings.cpp @@ -8075,7 +8075,7 @@ EFI_STATUS LOADER_ENTRY::SetFSInjection () namespace old { -#include "../../CloverApp/Clover/Clover-Bridging-Header.h" +#include "../../CloverApp/Clover/CloverOldHeaders.h" } static void breakpoint()