return CoreDepType;\r
}\r
\r
- if ((CpuFeature->BeforeFeatureBitMask != NULL) &&\r
- IsBitMaskMatchCheck (NextCpuFeatureMask, CpuFeature->BeforeFeatureBitMask)) {\r
+ if ((CpuFeature->ThreadBeforeFeatureBitMask != NULL) &&\r
+ IsBitMaskMatchCheck (NextCpuFeatureMask, CpuFeature->ThreadBeforeFeatureBitMask)) {\r
return ThreadDepType;\r
}\r
\r
return CoreDepType;\r
}\r
\r
- if ((CpuFeature->AfterFeatureBitMask != NULL) &&\r
- IsBitMaskMatchCheck (NextCpuFeatureMask, CpuFeature->AfterFeatureBitMask)) {\r
+ if ((CpuFeature->ThreadAfterFeatureBitMask != NULL) &&\r
+ IsBitMaskMatchCheck (NextCpuFeatureMask, CpuFeature->ThreadAfterFeatureBitMask)) {\r
return ThreadDepType;\r
}\r
\r
return CoreDepType;\r
}\r
\r
- if ((CpuFeature->BeforeFeatureBitMask != NULL) &&\r
- FindSpecifyFeature(FeatureList, &CpuFeature->Link, FALSE, CpuFeature->BeforeFeatureBitMask)) {\r
+ if ((CpuFeature->ThreadBeforeFeatureBitMask != NULL) &&\r
+ FindSpecifyFeature(FeatureList, &CpuFeature->Link, FALSE, CpuFeature->ThreadBeforeFeatureBitMask)) {\r
return ThreadDepType;\r
}\r
\r
return CoreDepType;\r
}\r
\r
- if ((CpuFeature->AfterFeatureBitMask != NULL) &&\r
- FindSpecifyFeature(FeatureList, &CpuFeature->Link, TRUE, CpuFeature->AfterFeatureBitMask)) {\r
+ if ((CpuFeature->ThreadAfterFeatureBitMask != NULL) &&\r
+ FindSpecifyFeature(FeatureList, &CpuFeature->Link, TRUE, CpuFeature->ThreadAfterFeatureBitMask)) {\r
return ThreadDepType;\r
}\r
\r
}\r
}\r
\r
- if (CpuFeature->BeforeFeatureBitMask != NULL) {\r
- Swapped = InsertToBeforeEntry (FeatureList, CurrentEntry, CpuFeature->BeforeFeatureBitMask);\r
+ if (CpuFeature->ThreadBeforeFeatureBitMask != NULL) {\r
+ Swapped = InsertToBeforeEntry (FeatureList, CurrentEntry, CpuFeature->ThreadBeforeFeatureBitMask);\r
if (Swapped) {\r
continue;\r
}\r
}\r
\r
- if (CpuFeature->AfterFeatureBitMask != NULL) {\r
- Swapped = InsertToAfterEntry (FeatureList, CurrentEntry, CpuFeature->AfterFeatureBitMask);\r
+ if (CpuFeature->ThreadAfterFeatureBitMask != NULL) {\r
+ Swapped = InsertToAfterEntry (FeatureList, CurrentEntry, CpuFeature->ThreadAfterFeatureBitMask);\r
if (Swapped) {\r
continue;\r
}\r
ASSERT_EFI_ERROR (Status);\r
FreePool (CpuFeature->FeatureName);\r
}\r
- if (CpuFeature->BeforeFeatureBitMask != NULL) {\r
- if (CpuFeatureEntry->BeforeFeatureBitMask != NULL) {\r
- FreePool (CpuFeatureEntry->BeforeFeatureBitMask);\r
+ if (CpuFeature->ThreadBeforeFeatureBitMask != NULL) {\r
+ if (CpuFeatureEntry->ThreadBeforeFeatureBitMask != NULL) {\r
+ FreePool (CpuFeatureEntry->ThreadBeforeFeatureBitMask);\r
}\r
- CpuFeatureEntry->BeforeFeatureBitMask = CpuFeature->BeforeFeatureBitMask;\r
+ CpuFeatureEntry->ThreadBeforeFeatureBitMask = CpuFeature->ThreadBeforeFeatureBitMask;\r
}\r
- if (CpuFeature->AfterFeatureBitMask != NULL) {\r
- if (CpuFeatureEntry->AfterFeatureBitMask != NULL) {\r
- FreePool (CpuFeatureEntry->AfterFeatureBitMask);\r
+ if (CpuFeature->ThreadAfterFeatureBitMask != NULL) {\r
+ if (CpuFeatureEntry->ThreadAfterFeatureBitMask != NULL) {\r
+ FreePool (CpuFeatureEntry->ThreadAfterFeatureBitMask);\r
}\r
- CpuFeatureEntry->AfterFeatureBitMask = CpuFeature->AfterFeatureBitMask;\r
+ CpuFeatureEntry->ThreadAfterFeatureBitMask = CpuFeature->ThreadAfterFeatureBitMask;\r
}\r
if (CpuFeature->CoreBeforeFeatureBitMask != NULL) {\r
if (CpuFeatureEntry->CoreBeforeFeatureBitMask != NULL) {\r
UINT32 Feature;\r
CPU_FEATURES_ENTRY *CpuFeature;\r
UINT8 *FeatureMask;\r
- UINT8 *BeforeFeatureBitMask;\r
- UINT8 *AfterFeatureBitMask;\r
+ UINT8 *ThreadBeforeFeatureBitMask;\r
+ UINT8 *ThreadAfterFeatureBitMask;\r
UINT8 *CoreBeforeFeatureBitMask;\r
UINT8 *CoreAfterFeatureBitMask;\r
UINT8 *PackageBeforeFeatureBitMask;\r
CPU_FEATURES_DATA *CpuFeaturesData;\r
\r
FeatureMask = NULL;\r
- BeforeFeatureBitMask = NULL;\r
- AfterFeatureBitMask = NULL;\r
+ ThreadBeforeFeatureBitMask = NULL;\r
+ ThreadAfterFeatureBitMask = NULL;\r
CoreBeforeFeatureBitMask = NULL;\r
CoreAfterFeatureBitMask = NULL;\r
PackageBeforeFeatureBitMask = NULL;\r
VA_START (Marker, InitializeFunc);\r
Feature = VA_ARG (Marker, UINT32);\r
while (Feature != CPU_FEATURE_END) {\r
- ASSERT ((Feature & (CPU_FEATURE_BEFORE | CPU_FEATURE_AFTER))\r
- != (CPU_FEATURE_BEFORE | CPU_FEATURE_AFTER));\r
+ //\r
+ // It's invalid to require a feature is before AND after all other features.\r
+ //\r
ASSERT ((Feature & (CPU_FEATURE_BEFORE_ALL | CPU_FEATURE_AFTER_ALL))\r
!= (CPU_FEATURE_BEFORE_ALL | CPU_FEATURE_AFTER_ALL));\r
+\r
+ //\r
+ // It's invalid to require feature A is before AND after before feature B,\r
+ // either in thread level, core level or package level.\r
+ //\r
+ ASSERT ((Feature & (CPU_FEATURE_THREAD_BEFORE | CPU_FEATURE_THREAD_AFTER))\r
+ != (CPU_FEATURE_THREAD_BEFORE | CPU_FEATURE_THREAD_AFTER));\r
ASSERT ((Feature & (CPU_FEATURE_CORE_BEFORE | CPU_FEATURE_CORE_AFTER))\r
!= (CPU_FEATURE_CORE_BEFORE | CPU_FEATURE_CORE_AFTER));\r
ASSERT ((Feature & (CPU_FEATURE_PACKAGE_BEFORE | CPU_FEATURE_PACKAGE_AFTER))\r
ASSERT (FeatureMask == NULL);\r
SetCpuFeaturesBitMask (&FeatureMask, Feature, CpuFeaturesData->BitMaskSize);\r
} else if ((Feature & CPU_FEATURE_THREAD_BEFORE) != 0) {\r
- SetCpuFeaturesBitMask (&BeforeFeatureBitMask, Feature & ~CPU_FEATURE_THREAD_BEFORE, CpuFeaturesData->BitMaskSize);\r
+ SetCpuFeaturesBitMask (&ThreadBeforeFeatureBitMask, Feature & ~CPU_FEATURE_THREAD_BEFORE, CpuFeaturesData->BitMaskSize);\r
} else if ((Feature & CPU_FEATURE_THREAD_AFTER) != 0) {\r
- SetCpuFeaturesBitMask (&AfterFeatureBitMask, Feature & ~CPU_FEATURE_THREAD_AFTER, CpuFeaturesData->BitMaskSize);\r
+ SetCpuFeaturesBitMask (&ThreadAfterFeatureBitMask, Feature & ~CPU_FEATURE_THREAD_AFTER, CpuFeaturesData->BitMaskSize);\r
} else if ((Feature & CPU_FEATURE_CORE_BEFORE) != 0) {\r
SetCpuFeaturesBitMask (&CoreBeforeFeatureBitMask, Feature & ~CPU_FEATURE_CORE_BEFORE, CpuFeaturesData->BitMaskSize);\r
} else if ((Feature & CPU_FEATURE_CORE_AFTER) != 0) {\r
ASSERT (CpuFeature != NULL);\r
CpuFeature->Signature = CPU_FEATURE_ENTRY_SIGNATURE;\r
CpuFeature->FeatureMask = FeatureMask;\r
- CpuFeature->BeforeFeatureBitMask = BeforeFeatureBitMask;\r
- CpuFeature->AfterFeatureBitMask = AfterFeatureBitMask;\r
+ CpuFeature->ThreadBeforeFeatureBitMask = ThreadBeforeFeatureBitMask;\r
+ CpuFeature->ThreadAfterFeatureBitMask = ThreadAfterFeatureBitMask;\r
CpuFeature->CoreBeforeFeatureBitMask = CoreBeforeFeatureBitMask;\r
CpuFeature->CoreAfterFeatureBitMask = CoreAfterFeatureBitMask;\r
CpuFeature->PackageBeforeFeatureBitMask = PackageBeforeFeatureBitMask;\r