This commit is contained in:
Igor Pavlov
2018-05-02 22:28:04 +01:00
committed by Kornel
parent f19b649c73
commit 18dc2b4161
121 changed files with 3523 additions and 1866 deletions

View File

@@ -2602,7 +2602,8 @@ static void SysInfo_To_String(AString &s, const SYSTEM_INFO &si)
PrintHex(s, si.wProcessorLevel);
s += ".";
PrintHex(s, si.wProcessorRevision);
if (si.dwActiveProcessorMask + 1 != ((UInt64)1 << si.dwNumberOfProcessors))
if ((UInt64)si.dwActiveProcessorMask + 1 != ((UInt64)1 << si.dwNumberOfProcessors))
if ((UInt64)si.dwActiveProcessorMask + 1 != 0 || si.dwNumberOfProcessors != sizeof(UInt64) * 8)
{
s += " act:";
PrintHex(s, si.dwActiveProcessorMask);
@@ -2686,13 +2687,15 @@ void GetCpuName(AString &s)
AString s2;
x86cpuid_to_String(cpuid, s2);
s += s2;
return;
}
else
{
#ifdef MY_CPU_AMD64
s += "x64";
#else
s += "x86";
#endif
}
}
#else
@@ -2703,6 +2706,9 @@ void GetCpuName(AString &s)
#endif
#endif
if (g_LargePagesMode)
s += " (LP)";
}
@@ -2725,6 +2731,27 @@ void GetCpuFeatures(AString &s)
}
#ifdef _WIN32
#ifndef UNDER_CE
typedef void (WINAPI * Func_RtlGetVersion) (OSVERSIONINFOEXW *);
static BOOL My_RtlGetVersion(OSVERSIONINFOEXW *vi)
{
HMODULE ntdll = ::GetModuleHandleW(L"ntdll.dll");
if (!ntdll)
return FALSE;
Func_RtlGetVersion func = (Func_RtlGetVersion)GetProcAddress(ntdll, "RtlGetVersion");
if (!func)
return FALSE;
func(vi);
return TRUE;
}
#endif
#endif
HRESULT Bench(
DECL_EXTERNAL_CODECS_LOC_VARS
IBenchPrintCallback *printCallback,
@@ -2859,6 +2886,30 @@ HRESULT Bench(
if (printCallback)
{
#ifdef _WIN32
#ifndef UNDER_CE
{
AString s;
// OSVERSIONINFO vi;
OSVERSIONINFOEXW vi;
vi.dwOSVersionInfoSize = sizeof(vi);
// if (::GetVersionEx(&vi))
if (My_RtlGetVersion(&vi))
{
s += "Windows";
if (vi.dwPlatformId != VER_PLATFORM_WIN32_NT)
s.Add_UInt32(vi.dwPlatformId);
s += " "; s.Add_UInt32(vi.dwMajorVersion);
s += "."; s.Add_UInt32(vi.dwMinorVersion);
s += " "; s.Add_UInt32(vi.dwBuildNumber);
// s += " "; s += GetAnsiString(vi.szCSDVersion);
}
printCallback->Print(s);
printCallback->NewLine();
}
#endif
#endif
{
AString s1, s2;
GetSysInfo(s1, s2);