OEMIsProcessorFeaturePresent (Compact 2013)
10/16/2014
This function queries the OEM adaptation layer (OAL) for information about whether the processor supports a specified feature.
Syntax
BOOL OEMIsProcessorFeaturePresent(
DWORD dwProcessorFeature
);
Parameters
dwProcessorFeature
[in] Specifies the flag for the feature that you want to verify support for.The following table shows the flags for ARM processor features.
Flag
Description
PF_ARM_V6
ARMv6 architecture. ARMv6 is not supported in Windows Embedded Compact 2013. This flag always returns TRUE.
PF_ARM_V7
ARMv7 architecture. This flag always returns TRUE.
PF_ARM_THUMB
Thumb instruction set.
PF_ARM_JAZELLE
ARM Jazelle technology.
PF_ARM_DSP
'E' digital signal processor (DSP) instructions.
This flag is deprecated.
PF_ARM_MOVE_CP
ARM MOVE coprocessor.
PF_ARM_MPU
Memory protection unit (MPU).
PF_ARM_WRITE_BUFFER
Writeback buffer.
PF_ARM_MBX
ARM MBX technology.
PF_ARM_L2CACHE
Level 2 cache controller.
This flag is deprecated.
PF_ARM_L2CACHE_MEMORY_MAPPED and
PF_ARM_L2CACHE_COPROC.
PF_ARM_PHYSICALLY_TAGGED_CACHE
Cache is, or can be, physically tagged.
PF_ARM_ITCM
Tightly-coupled data memory.
PF_ARM_DTCM
Tightly-coupled data memory.
PF_ARM_UNIFIED_CACHE
Unified cache.
PF_ARM_WRITE_BACK_CACHE
Writeback cache.
PF_ARM_CACHE_CAN_BE_LOCKED_DOWN
The OS can lock down the cache.
PF_ARM_L2CACHE_MEMORY_MAPPED
Level 2 cache controller is implemented as a memory-mapped peripheral.
PF_ARM_L2CACHE_COPROC
Level 2 cache controller is implemented as a coprocessor.
PF_ARM_THUMB2
Thumb-2 instruction set.
PF_ARM_T2EE
Thumb-2 execution environment (T2EE).
PF_ARM_UNALIGNED_ACCESS
Unaligned access support if you call KLIB_IOCTL to enable it. This flag always returns TRUE.
PF_ARM_INTEL_XSCALE
Intel XScale processor.
This flag is deprecated. Use this flag to determine if the processor supports operations where
src==dest
.PF_ARM_INTEL_PMU
This flag is deprecated. Performance Monitor Unit (PMU).
PF_ARM_INTEL_WMMX
This flag is deprecated. Intel wireless MMX (WMMX).
The following table shows the flags for x86 processor features.
Flag
Description
PF_FLOATING_POINT_PRECISION_ERRATA
On a Pentium, a floating-point precision error can occur in rare circumstances.
PF_FLOATING_POINT_EMULATED
Floating-point operations are emulated.
PF_COMPARE_EXCHANGE_DOUBLE
Atomic compare and exchange double operation (cmpxchg).
PF_MMX_INSTRUCTIONS_AVAILABLE
MMX instruction set.
PF_XMMI_INSTRUCTIONS_AVAILABLE
Streaming SIMD Extensions (SSE) instruction set.
PF_PPC_MOVEMEM_64BIT_OK
Not supported in Windows Embedded Compact.
PF_ALPHA_BYTE_INSTRUCTIONS
Not supported in Windows Embedded Compact.
PF_3DNOW_INSTRUCTIONS_AVAILABLE
3DNow instruction set.
PF_RDTSC_INSTRUCTION_AVAILABLE
RDTSC instruction.
PF_PAE_ENABLED
Physical Address Extension (PAE) X86.
PF_XMMI64_INSTRUCTIONS_AVAILABLE
SSE2 instruction set.
PF_SSE_DAZ_MODE_AVAILABLE
Denormals-are-zeros (DAZ) mode for SSE.
PF_NX_ENABLED
Data Execution Prevention (DEP) is enabled.
PF_SSE3_INSTRUCTIONS_AVAILABLE
SSE3 instruction set.
PF_COMPARE_EXCHANGE128
Atomic compare and exchange 128-bit operation (cmpxchg16b).
PF_COMPARE64_EXCHANGE128
Atomic compare 64-bit and exchange 128-bit operation (cmp8xchg16).
PF_CHANNELS_ENABLED
Processor channels are enabled.
PF_X86_VIRTUALIZED
Software emulates x86 processor hardware.
Note
All other PF_XXX flags to this function return false.
Return Value
Returns nonzero if the processor feature is supported; otherwise, returns false.
Remarks
The kernel filters the PF_XXX flags in dwProcessorFeature based on the CPU type. Depending on the processor for which your code is compiled, only the PF_XXX flags corresponding to your CPU are present. If you send a flag for an unsupported feature, the function returns false.
If you implement OEMIsProcessorFeaturePresent, it will be called by IsProcessorFeaturePresent when IsProcessorFeaturePresent does not recognize the dwProcessorFeature value.
If you implement OEMIsProcessorFeaturePresent, set the pfnIsProcessorFeaturePresent member of OEMGLOBAL to point to this function.
Requirements
Header |
Developer Implemented |
Library |
OEMMain.lib or OEMMain_StaticKITL.lib |
See Also
Reference
Optional OAL Functions
OEMIsVFPFeaturePresent