merge master and c++_globals

Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
This commit is contained in:
Sergey Isakov 2020-02-15 17:29:59 +03:00
parent 28ad1105d3
commit d2ac4d7de9
22 changed files with 181 additions and 105 deletions

1
.gitignore vendored
View File

@ -108,6 +108,7 @@ build/
!default.mode2v3
!default.perspectivev3
xcuserdata/
xcshareddata/
# Translation files
CloverUpdater.strings

View File

@ -51,6 +51,12 @@ SECTIONS {
KEEP (*(.eh_frame))
}
.ctorss ALIGN(CONSTANT(COMMONPAGESIZE)) : {
__beginning_of_section_ctors = .; /* create symbol for start of section */
KEEP (*(.ctors))
__end_of_section_ctors = .; /* create symbol for end of section */
}
.rela (INFO) : {
*(.rela .rela.*)
}

View File

@ -50,11 +50,11 @@
"false" = "ложь";
"Theme:" = "Тема:";
"Themes" = "Themes"; // window title
"No themes found" = "No themes found";
"Manager" = "Manager"; // Theme manager
"Can't remove the theme" = "Can't remove the theme";
"Show installed" = "Show installed";
"Themes" = "Темы"; // window title
"No themes found" = "Темы не найдены";
"Manager" = "Менеджер"; // Theme manager
"Can't remove the theme" = "Не возможно удалить тему";
"Show installed" = "Показать установленные";
"Sound:" = "Звук:";
"*Make filesystem read-write" = "*Открыть файловую систему на запись";
"*Disable Sleep Proxy Client" = "*Отключение Sleep Proxy Client";

View File

@ -1421,7 +1421,7 @@ BiosVideoCheckForVbe (
}
if (ModeNumber > 1) {
gBS->CopyMem (
CopyMem (
ModeBuffer,
BiosVideoPrivate->ModeData,
(ModeNumber - 1) * sizeof (BIOS_VIDEO_MODE_DATA)
@ -2121,7 +2121,7 @@ BiosVideoGraphicsOutputVbeBlt (
VbeBuffer = ((UINT8 *) VbeFrameBuffer + DstY * BytesPerScanLine + DestinationX * VbePixelWidth);
VbeBuffer1 = ((UINT8 *) VbeFrameBuffer + SrcY * BytesPerScanLine + SourceX * VbePixelWidth);
gBS->CopyMem (
CopyMem (
VbeBuffer,
VbeBuffer1,
TotalBytes
@ -2157,7 +2157,7 @@ BiosVideoGraphicsOutputVbeBlt (
((Blt->Blue & Mode->Blue.Mask) << Mode->Blue.Position);
for (Index = 0; Index < Width; Index++) {
gBS->CopyMem (
CopyMem (
VbeBuffer,
&Pixel,
VbePixelWidth
@ -2167,7 +2167,7 @@ BiosVideoGraphicsOutputVbeBlt (
VbeBuffer = (UINT8 *) ((UINTN) VbeFrameBuffer + (DestinationY * BytesPerScanLine) + DestinationX * VbePixelWidth);
for (DstY = DestinationY + 1; DstY < (Height + DestinationY); DstY++) {
gBS->CopyMem (
CopyMem (
(VOID *) ((UINTN) VbeFrameBuffer + (DstY * BytesPerScanLine) + DestinationX * VbePixelWidth),
VbeBuffer,
TotalBytes
@ -2201,7 +2201,7 @@ BiosVideoGraphicsOutputVbeBlt (
Pixel = ((Blt->Red & Mode->Red.Mask) << Mode->Red.Position) |
((Blt->Green & Mode->Green.Mask) << Mode->Green.Position) |
((Blt->Blue & Mode->Blue.Mask) << Mode->Blue.Position);
gBS->CopyMem (
CopyMem (
VbeBuffer,
&Pixel,
VbePixelWidth

View File

@ -107,7 +107,7 @@ InitializeInterruptRedirection (
//
// Copy code to legacy region
//
gBS->CopyMem ((VOID *)(UINTN)LegacyRegionBase, (VOID *)&InterruptRedirectionCode[0], sizeof (InterruptRedirectionCode));
CopyMem ((VOID *)(UINTN)LegacyRegionBase, (VOID *)&InterruptRedirectionCode[0], sizeof (InterruptRedirectionCode));
//
// Get VectorBase, it should be 0x68

View File

@ -106,15 +106,36 @@
# build_rule_version=0.1
#
[Cxx-Code-File]
<InputFile>
?.cpp
?.Cpp
?.CPP
<ExtraDependency>
$(MAKE_FILE)
<OutputFile>
$(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
<Command.MSFT, Command.INTEL>
"$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
<Command.GCC, Command.RVCT>
# For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
@"$(CC)" $(CXX_FLAGS) -c -o ${dst} $(INC) ${src}
@"echo" [CC] ${s_base}
<Command.XCODE>
@"$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
@"echo" [CC] ${s_base}
[C-Code-File]
<InputFile>
?.c
?.C
?.cc
?.CC
?.cpp
?.Cpp
?.CPP
<ExtraDependency>
$(MAKE_FILE)

View File

@ -2408,6 +2408,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
*_GCC53_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS),-m,elf_x86_64
*_GCC53_X64_ASM_FLAGS = DEF(GCC53_ASM_FLAGS) -m64
*_GCC53_X64_CC_FLAGS = DEF(GCC53_X64_CC_FLAGS) ENV(GCC53_X64_EXTRA_CC_FLAGS)
*_GCC53_X64_CXX_FLAGS = DEF(GCC53_X64_CC_FLAGS) ENV(GCC53_X64_EXTRA_CC_FLAGS)
*_GCC53_X64_DLINK_FLAGS = DEF(GCC53_X64_DLINK_FLAGS) DEF(GCC53_X64_CC_FLAGS) ENV(GCC53_X64_EXTRA_CC_FLAGS)
*_GCC53_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC53_X64_OBJCOPY_FLAGS =

View File

@ -77,7 +77,7 @@ HdaControllerStreamPollTimerHandler(
// Have we reached the end of the source buffer? If so the stream will stop on the next block.
if (HdaStream->BufferSourcePosition >= HdaStream->BufferSourceLength) {
// Zero out next block.
gBS->SetMem(HdaStream->BufferData + (HdaNextBlock * HDA_BDL_BLOCKSIZE), HDA_BDL_BLOCKSIZE, 0);
SetMem(HdaStream->BufferData + (HdaNextBlock * HDA_BDL_BLOCKSIZE), HDA_BDL_BLOCKSIZE, 0);
// Set flag to stop stream on the next block.
HdaStream->BufferSourceDone = TRUE;
@ -95,7 +95,7 @@ HdaControllerStreamPollTimerHandler(
if (HdaStream->Output) {
// Copy data to DMA buffer.
if (HdaSourceLength < HDA_BDL_BLOCKSIZE)
gBS->SetMem(HdaStream->BufferData + (HdaNextBlock * HDA_BDL_BLOCKSIZE), HDA_BDL_BLOCKSIZE, 0);
SetMem(HdaStream->BufferData + (HdaNextBlock * HDA_BDL_BLOCKSIZE), HDA_BDL_BLOCKSIZE, 0);
CopyMem(HdaStream->BufferData + (HdaNextBlock * HDA_BDL_BLOCKSIZE), HdaStream->BufferSource + HdaStream->BufferSourcePosition, HdaSourceLength);
} else { // Input stream (copy data from).
// Copy data from DMA buffer.
@ -294,7 +294,7 @@ HdaControllerScanCodecs(
// Create verb list with single item.
VendorVerb = HDA_CODEC_VERB(HDA_VERB_GET_PARAMETER, HDA_PARAMETER_VENDOR_ID);
gBS->SetMem(&HdaCodecVerbList, sizeof(EFI_HDA_IO_VERB_LIST), 0);
SetMem(&HdaCodecVerbList, sizeof(EFI_HDA_IO_VERB_LIST), 0);
HdaCodecVerbList.Count = 1;
HdaCodecVerbList.Verbs = &VendorVerb;
HdaCodecVerbList.Responses = &VendorResponse;

View File

@ -400,7 +400,7 @@ HdaControllerHdaIoStartStream(
HdaStream->CallbackContext3 = Context3;
// Zero out buffer.
gBS->SetMem(HdaStream->BufferData, HDA_STREAM_BUF_SIZE, 0);
SetMem(HdaStream->BufferData, HDA_STREAM_BUF_SIZE, 0);
// Fill rest of current block.
HdaStreamDmaRemainingLength = HDA_BDL_BLOCKSIZE - (HdaStreamDmaPos - (HdaStreamCurrentBlock * HDA_BDL_BLOCKSIZE));

View File

@ -75,7 +75,7 @@ HdaControllerInitCorb(
Status = PciIo->AllocateBuffer(PciIo, AllocateAnyPages, EfiBootServicesData, EFI_SIZE_TO_PAGES(CorbLength), &CorbBuffer, 0);
if (EFI_ERROR(Status))
return Status;
gBS->SetMem(CorbBuffer, CorbLength, 0);
SetMem(CorbBuffer, CorbLength, 0);
// Map outbound buffer.
CorbLengthActual = CorbLength;
@ -464,7 +464,7 @@ HdaControllerInitStreams(
(VOID**)&HdaStream->BufferList, 0);
if (EFI_ERROR(Status))
goto FREE_BUFFER;
gBS->SetMem(HdaStream->BufferList, HDA_BDL_SIZE, 0);
SetMem(HdaStream->BufferList, HDA_BDL_SIZE, 0);
// Map buffer descriptor list.
BdlLengthActual = HDA_BDL_SIZE;
@ -487,7 +487,7 @@ HdaControllerInitStreams(
(VOID**)&HdaStream->BufferData, 0);
if (EFI_ERROR(Status))
goto FREE_BUFFER;
gBS->SetMem(HdaStream->BufferData, HDA_STREAM_BUF_SIZE, 0);
SetMem(HdaStream->BufferData, HDA_STREAM_BUF_SIZE, 0);
// Map buffer descriptor list.
DataLengthActual = HDA_STREAM_BUF_SIZE;
@ -517,7 +517,7 @@ HdaControllerInitStreams(
EFI_SIZE_TO_PAGES(HdaControllerDev->DmaPositionsSize), (VOID**)&HdaControllerDev->DmaPositions, 0);
if (EFI_ERROR(Status))
goto FREE_BUFFER;
gBS->SetMem(HdaControllerDev->DmaPositions, HdaControllerDev->DmaPositionsSize, 0);
SetMem(HdaControllerDev->DmaPositions, HdaControllerDev->DmaPositionsSize, 0);
// Map buffer descriptor list.
DmaPositionsLengthActual = HdaControllerDev->DmaPositionsSize;

View File

@ -197,7 +197,7 @@ int EFIAPI tfp_sprintf(char *str, const char *fmt, ...) __printflike(2, 3);
do { vprintf (f, v); do { } while (1); } while (0)
// Avoid implementing memcpy as a function to avoid LTO conflicts.
#define memcpy(Dst, Src, Size) do { gBS->CopyMem(Dst, Src, Size); } while (0)
#define memcpy(Dst, Src, Size) do { CopyMem(Dst, Src, Size); } while (0)
// Forcing VOID for those as the return types actually differ.
#define strlcpy(Dst, Src, Size) do { AsciiStrnCpyS (Dst, Size, Src, AsciiStrLen (Src)); } while (0)

View File

@ -370,7 +370,11 @@ struct _LIST_ENTRY {
///
/// NULL pointer (VOID *)
///
#ifdef __cplusplus
#define NULL nullptr
#else
#define NULL ((VOID *) 0)
#endif
//
// Null character

View File

@ -200,7 +200,11 @@
/// 2-byte Character. Unless otherwise specified all strings are stored in the
/// UTF-16 encoding format as defined by Unicode 2.1 and ISO/IEC 10646 standards.
///
#ifdef __cplusplus
#define CHAR16 wchar_t
#else
typedef unsigned short CHAR16;
#endif
///
/// 2-byte signed value
///

View File

@ -150,8 +150,6 @@ DecodeImageData (//IN APPLE_IMAGE_CODEC_PROTOCOL* This,
EFI_STATUS Status;
EG_IMAGE *Image;
INTN Index;
// UINT32 ImageDataSize;
//automatic choose format
if (!RawImageData || !RawImageDataSize) {
return EFI_INVALID_PARAMETER;

View File

@ -8,8 +8,13 @@
*/
#include <Protocol/MsgLog.h>
#include <Library/PrintLib.h>
#include <Library/BaseLib.h>
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/UefiRuntimeServicesTableLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/MemoryAllocationLib.h>
#include <Library/PrintLib.h>
MESSAGE_LOG_PROTOCOL MsgLogProtocol;
EFI_HANDLE mHandle = NULL;

View File

@ -18,9 +18,9 @@
#include <Library/UefiLib.h>
#include <Library/UefiBootServicesTableLib.h>
#include <Library/BaseMemoryLib.h>
#include <Library/DebugLib.h>
#include <Library/DevicePathLib.h>
#include <Library/BaseMemoryLib.h>
#include <Protocol/LoadedImage.h>
#include <Protocol/LoadFile.h>
#include <Protocol/SimpleFileSystem.h>
@ -310,6 +310,10 @@ OvrLoadImage(IN BOOLEAN BootPolicy,
gBS->FreePool(SourceBuffer);
}
if (FileInfo) {
gBS->FreePool(FileInfo);
}
//
// dmazar: some boards do not put device handle to EfiLoadedImageProtocol->DeviceHandle
// when image is loaded from SrcBuffer, and then boot.efi fails.

View File

@ -393,7 +393,7 @@ checkCmdlineArguments() {
done
# Update variables
PLATFORMFILE="${PLATFORMFILE:-Clover.dsc}"
PLATFORMFILE="${PLATFORMFILE:-Clover_cpp.dsc}"
if [ ! -z "${MODULEFILE}" ]; then
MODULEFILE=" -m $MODULEFILE"
fi

View File

@ -10,6 +10,9 @@ Headers collection for procedures
// Comment to use source debug options
//#define DEBUG_ALL 2
#ifdef __cplusplus
extern "C" {
#endif
#include <Uefi.h>
@ -2541,4 +2544,8 @@ YesNoMessage (
IN CHAR16 *Message);
#ifdef __cplusplus
}
#endif
#endif

View File

@ -679,9 +679,6 @@ VOID SetDMISettingsForModel(MACHINE_TYPES Model, BOOLEAN Redefine)
case iMac143:
gFwFeatures = 0xE00FE137;
break;
case MacPro61:
gFwFeatures = 0xE80FE176;
break;
case MacBookPro111:
case MacBookPro112:
case MacBookPro113:
@ -718,24 +715,17 @@ VOID SetDMISettingsForModel(MACHINE_TYPES Model, BOOLEAN Redefine)
case iMac192:
gFwFeatures = 0xFD8FF576;
break;
case MacPro71:
gFwFeatures = 0xFDAFF066;
break;
// Verified list from Users
case MacBookPro61:
case MacBookPro62:
case MacBookPro71:
case MacBookPro81:
case MacBookPro82:
case MacBookPro83:
gFwFeatures = 0xC00DE137;
break;
case MacBookAir31:
case MacBookAir32:
case MacMini41:
gFwFeatures = 0xD00DE137;
break;
case MacBookAir71:
case MacBookAir72:
gFwFeatures = 0xE00FE137;
break;
case iMac101:
case iMac111:
case iMac112:
@ -745,13 +735,23 @@ VOID SetDMISettingsForModel(MACHINE_TYPES Model, BOOLEAN Redefine)
case MacMini71:
gFwFeatures = 0xE00DE137;
break;
case MacBookAir71:
case MacBookAir72:
gFwFeatures = 0xE00FE137;
break;
case MacPro51:
gFwFeatures = 0xE80FE137;
break;
case MacPro61:
gFwFeatures = 0xE80FE176;
break;
case MacPro71:
gFwFeatures = 0xFD8FF53F;
break;
case MacBookPro61:
case MacBookPro62:
case MacBookPro71:
case MacBookPro81:
case MacBookPro82:
case MacBookPro83:
gFwFeatures = 0xC00DE137;
break;
case MacBookPro121:
case MacBookPro151:
case MacBookPro152:
@ -832,9 +832,6 @@ VOID SetDMISettingsForModel(MACHINE_TYPES Model, BOOLEAN Redefine)
case MacMini81:
gFwFeaturesMask = 0xFFDFFF7F;
break;
case MacPro71:
gFwFeaturesMask = 0xFFFFFF7F;
break;
// Verified list from Users
case MacBook61:
@ -872,6 +869,10 @@ VOID SetDMISettingsForModel(MACHINE_TYPES Model, BOOLEAN Redefine)
gFwFeaturesMask = 0xFF1FFF3F;
break;
case MacPro71:
gFwFeaturesMask = 0xFF9FFF3F;
break;
default:
gFwFeaturesMask = 0xFFFFFFFF; //unknown - use oem SMBIOS value to be default
break;

View File

@ -90,7 +90,6 @@ void* lodepng_realloc(void* ptr, size_t new_size)
#define memset(dest,ch,count) SetMem(dest,(UINTN)(count),(UINT8)(ch))
//MODSNI ^

View File

@ -28,61 +28,6 @@ Revision History
#define PRINT_ITEM_BUFFER_LEN 100
#define PRINT_JOINT_BUFFER_LEN 4
typedef struct {
BOOLEAN Ascii;
UINTN Index;
union {
CONST CHAR16 *pw;
CHAR8 *pc;
} u;
} POINTER;
typedef struct _pitem {
POINTER Item;
CHAR16 *Scratch;
UINTN Width;
UINTN FieldWidth;
UINTN *WidthParse;
CHAR16 Pad;
BOOLEAN PadBefore;
BOOLEAN Comma;
BOOLEAN Long;
} PRINT_ITEM;
typedef struct _pstate {
//
// Input
//
POINTER fmt;
VA_LIST args;
//
// Output
//
CHAR16 *Buffer;
CHAR16 *End;
CHAR16 *Pos;
UINTN Len;
UINTN Attr;
UINTN RestoreAttr;
UINTN AttrNorm;
UINTN AttrHighlight;
UINTN AttrError;
UINTN AttrBlueColor;
UINTN AttrGreenColor;
EFI_STATUS (EFIAPI *Output) (VOID *context, CHAR16 *str);
EFI_STATUS (EFIAPI *SetAttr) (VOID *context, UINTN attr);
VOID *Context;
//
// Current item being formatted
//
struct _pitem *Item;
} PRINT_STATE;
typedef struct {
BOOLEAN PageBreak;

View File

@ -47,6 +47,86 @@ Revision History
#define IS_PUNCT(x) ((x == '.') || (x == '-'))
// jief move struct definition to here to be accessible from XStringW
typedef struct {
BOOLEAN Ascii;
UINTN Index;
union {
CONST CHAR16 *pw;
CHAR8 *pc;
} u;
} POINTER;
typedef struct _pitem {
POINTER Item;
CHAR16 *Scratch;
UINTN Width;
UINTN FieldWidth;
UINTN *WidthParse;
CHAR16 Pad;
BOOLEAN PadBefore;
BOOLEAN Comma;
BOOLEAN Long;
} PRINT_ITEM;
typedef struct _pstate {
//
// Input
//
POINTER fmt;
VA_LIST args;
//
// Output
//
CHAR16 *Buffer;
CHAR16 *End;
CHAR16 *Pos;
UINTN Len;
UINTN Attr;
UINTN RestoreAttr;
UINTN AttrNorm;
UINTN AttrHighlight;
UINTN AttrError;
UINTN AttrBlueColor;
UINTN AttrGreenColor;
EFI_STATUS (EFIAPI *Output) (VOID *context, CHAR16 *str);
EFI_STATUS (EFIAPI *SetAttr) (VOID *context, UINTN attr);
VOID *Context;
//
// Current item being formatted
//
struct _pitem *Item;
} PRINT_STATE;
extern
EFI_STATUS
EFIAPI
_PoolPrint (
IN POOL_PRINT *Context,
IN CHAR16 *Buffer
);
extern
UINTN
_PPrint (
IN PRINT_STATE *ps
);
// jief
/*
typedef struct {
CHAR16 *Str;