Share via


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

Other Resources

IsProcessorFeaturePresent