Skip to content

Commit

Permalink
fb
Browse files Browse the repository at this point in the history
  • Loading branch information
am11 committed Jun 28, 2024
1 parent 3a7fa93 commit 4a13734
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 16 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
// The .NET Foundation licenses this file to you under the MIT license.

using System.Runtime.InteropServices;
using System.Threading;

internal static partial class Interop
{
Expand All @@ -11,7 +12,22 @@ internal static partial class Sys
[return: MarshalAs(UnmanagedType.Bool)]
private static partial bool IsQemuDetectedImpl();

private static bool? _isQemuDetected;
internal static bool IsQemuDetected() => _isQemuDetected ??= IsQemuDetectedImpl();
private static int s_isQemuDetected;

internal static bool IsQemuDetected()
{
int isQemuDetected = Interlocked.CompareExchange(ref s_isQemuDetected, 0, 0);
if (isQemuDetected == 0)
{
isQemuDetected = IsQemuDetectedImpl() ? 1 : 2;
int oldValue = Interlocked.CompareExchange(ref s_isQemuDetected, isQemuDetected, 0);
if (oldValue != 0) // a different thread has managed to update the value
{
isQemuDetected = oldValue;
}
}

return isQemuDetected == 1;
}
}
}
33 changes: 19 additions & 14 deletions src/native/minipal/cpufeatures.c
Original file line number Diff line number Diff line change
Expand Up @@ -231,11 +231,11 @@ int minipal_getcpufeatures(void)

if (IsAvx512Enabled() && (avx512StateSupport() == 1)) // XGETBV XRC0[7:5] == 111
{
if (((cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 16)) != 0) && // AVX512F
((cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 30)) != 0) && // AVX512BW
((cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 28)) != 0) && // AVX512CD
((cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 17)) != 0) && // AVX512DQ
((cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 31)) != 0)) // AVX512VL
if ((((uint32_t)cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 16)) != 0) && // AVX512F
(((uint32_t)cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 30)) != 0) && // AVX512BW
(((uint32_t)cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 28)) != 0) && // AVX512CD
(((uint32_t)cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 17)) != 0) && // AVX512DQ
(((uint32_t)cpuidInfo[CPUID_EBX] & ((uint32_t)1 << 31)) != 0)) // AVX512VL
{
// While the AVX-512 ISAs can be individually lit-up, they really
// need F, BW, CD, DQ, and VL to be fully functional without adding
Expand Down Expand Up @@ -450,48 +450,53 @@ int minipal_getcpufeatures(void)
return result;
}

static const char* GetCpuBrand(void)
static bool GetCpuBrand(char* brand, size_t bufferSize)

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build ios-arm64 Release AllSubsets_NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GAE6DDA5D: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G7A9E76FA: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G7A9E76FA: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G7A9E76FA: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G7A9E76FA: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GA2E31A52: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GA2E31A52: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GA2E31A52: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build tvos-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GA2E31A52: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build ios-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G9A349979: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build ios-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G9A349979: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build ios-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G9A349979: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build ios-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G9A349979: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm Debug AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GB0DA4B06: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm Debug AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GB0DA4B06: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm Debug AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GB0DA4B06: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G5E37A80A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G5E37A80A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G5E37A80A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build osx-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G5E37A80A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-riscv64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GB834CB5A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-riscv64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GB834CB5A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G7B54D3DE: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G7B54D3DE: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G7B54D3DE: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G7B54D3DE: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build android-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GD9AE937A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build android-arm64 Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GD9AE937A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build android-arm Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G49F03912: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build android-arm Release AllSubsets_Mono)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G49F03912: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug AllSubsets_Mono_LLVMJIT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G0A5A308A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug AllSubsets_Mono_LLVMJIT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G0A5A308A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug AllSubsets_Mono_LLVMJIT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G0A5A308A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug AllSubsets_Mono_LLVMJIT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G0A5A308A: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GBE1C5848: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GBE1C5848: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GBE1C5848: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release NativeAOT_Libraries)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GBE1C5848: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_LLVMAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GB7A01CE7: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_LLVMAOT)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GB7A01CE7: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug Mono_MiniJIT_LibrariesTests)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GA78226AC: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug Mono_MiniJIT_LibrariesTests)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GA78226AC: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug Mono_MiniJIT_LibrariesTests)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GA78226AC: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Debug Mono_MiniJIT_LibrariesTests)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GA78226AC: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GAB1711C3: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GAB1711C3: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error GAB1711C3: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime (Build linux-arm64 Release AllSubsets_Mono_Minijit_RuntimeTests minijit)

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error GAB1711C3: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,31): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'brand' [-Werror,-Wunused-parameter]

Check failure on line 453 in src/native/minipal/cpufeatures.c

View check run for this annotation

Azure Pipelines / runtime

src/native/minipal/cpufeatures.c#L453

src/native/minipal/cpufeatures.c(453,45): error G45E30020: (NETCORE_ENGINEERING_TELEMETRY=Build) unused parameter 'bufferSize' [-Werror,-Wunused-parameter]
{
#if defined(HOST_AMD64) || defined(HOST_X86)
// Check for CPU brand indicating emulation
int regs[4];
static char brand[49];

// Get the maximum value for extended function CPUID info
__cpuid(regs, (int)0x80000000);
if ((unsigned int)regs[0] < 0x80000004)
{
return ""; // Extended CPUID not supported, return empty string or handle error
brand[0] = '\0'; // Extended CPUID not supported, return empty string or handle error
return false;
}

// Retrieve the CPU brand string
// Retrieve the CPU brand string directly into the caller-provided buffer
for (unsigned int i = 0x80000002; i <= 0x80000004; ++i)
{
__cpuid(regs, (int)i);
memcpy(brand + (i - 0x80000002) * sizeof(regs), regs, sizeof(regs));
}
brand[sizeof(brand) - 1] = '\0';

return brand;
brand[bufferSize - 1] = '\0';

return true;
#else
return "";
return false;
#endif // HOST_AMD64 || HOST_X86
}

// Detect if the current process is running under the Apple Rosetta x64 emulator
bool minipal_detect_rosetta(void)
{
char brand[49];

// Check if CPU brand indicates emulation
return (strstr(GetCpuBrand(), "VirtualApple") != NULL);
return GetCpuBrand(brand, sizeof(brand)) && (strstr(brand, "VirtualApple") != NULL);
}

#if !defined(HOST_WINDOWS)

// Detect if the current process is running under QEMU
bool minipal_detect_qemu(void)
{
char brand[49];

// Check if CPU brand indicates emulation
if (strstr(GetCpuBrand(), "QEMU") != NULL)
if (GetCpuBrand(brand, sizeof(brand)) && strstr(brand, "QEMU") != NULL)
{
return true;
}
Expand Down

0 comments on commit 4a13734

Please sign in to comment.