RtGetEnabledXStateFeature
RtGetEnabledXStateFeature obtains the highest feature for a specified XState feature set supported on the running processor and enabled by eRTOS.
Syntax
BOOL RtGetEnabledXStateFeature(
XSTATE_BIT XStateBit,
PENABLED_HIGHEST_FEATURE HighestFeature
);
Parameters
XStateBit
The XState feature set to obtain:
Values | Description |
XStateFPU | MMX registers support |
XStateSSE | SSE registers supported |
XStateAVX | AVX registers supported |
XStateMPX | MPX registers supported |
XStatePT | PT registers supported |
HighestFeature
A pointer to an ENABLED_HIGHEST_FEATURE structure which will be filled in with the highest version supported by the XState feature queried.
Return Value
If the function succeeds, it returns a non-zero value. If the function fails, it returns 0 (zero).
Remarks
A process should call this function to determine what features are present and enabled on eRTOS before using an XState processor feature:
XState | Values | Description |
All states | NotSupported | Floating point is not supported |
XStateFPU | x87FPU | Floating point is supported |
XStateSSE | SSE | SSE is supported |
SSE2 | SSE/SSE2 is supported | |
SSE3 | SSE/SSE2/SSE3 is supported | |
SSE4_1 | SSE/SSE2/SSE3/SSE4.1 is supported | |
SSE4_2 | SSE/SSE2/SSE3/SSE4.2 is supported | |
XStateAVX | AVX | AVX is supported |
AVX2 | AVX/AVX2 is supported | |
AVX512 | AVX/AVX2/AVX512 is supported | |
XStateMPX | MPX | MPX is supported |
XStatePT | PT | PT is supported |
typedef enum _XSTATE_BIT {
XStateUndefined = -1, // -1
XStateFPU, // 0 - x87 FPU
XStateSSE, // 1 - SSE
XStateAVX, // 2 - AVX
XStateMPX, // 3 - MPX
XStatePT, // 4 - PT
XStateMaximum // Invalid
} XSTATE_BIT, *PXSTATE_BIT;
ENABLED_HIGHEST_FEATURE is defined as follows:
typedef enum _ENABLED_HIGHEST_FEATURE {
NotSupported = -1,
x87FPU,
SSE,
SSE2,
SSE3,
SSSE3,
SSE4_1,
SSE4_2,
AVX,
AVX2,
AVX512,
MPX,
PT
} ENABLED_HIGHEST_FEATURE, *PENABLED_HIGHEST_FEATURE;
For XState feature set XStateFPU, there is only one feature: x87FPU.
For XState feature set XStateSSE, the function returns the highest of the following six features: SSE, SSE2, SSE3, SSSE3, SSE4_1, SSE4_2.
For XState feature set XStateAVX, the function returns the highest of the following three features: AVX, AVX2, AVX512.
For XState feature set XStateMPX, there is only one feature: MPX.
For XState feature set XStatePT, there is only one feature: PT.
Note: Not all features supported by a processor may be enabled on the system. Using a feature which is not enabled may result in exceptions or undefined behavior.
Requirements
Minimum supported version | Header | Library |
---|---|---|
eRTOS 1.0 SDK |
RtssApi.h | rtkrnl.lib |