def _CheckPcdDefineAndType(self):\r
PcdTypeList = [\r
TAB_PCDS_FIXED_AT_BUILD, TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS_FEATURE_FLAG,\r
- TAB_PCDS_DYNAMIC, #"DynamicHii", "DynamicVpd",\r
- TAB_PCDS_DYNAMIC_EX, # "DynamicExHii", "DynamicExVpd"\r
+ TAB_PCDS_DYNAMIC, #TAB_PCDS_DYNAMIC_HII, TAB_PCDS_DYNAMIC_VPD,\r
+ TAB_PCDS_DYNAMIC_EX, # TAB_PCDS_DYNAMIC_EX_HII, TAB_PCDS_DYNAMIC_EX_VPD\r
]\r
\r
# This dict store PCDs which are not used by any modules with specified arches\r
\r
## PCD type string\r
gItemTypeStringDatabase = {\r
- TAB_PCDS_FEATURE_FLAG : 'FixedAtBuild',\r
- TAB_PCDS_FIXED_AT_BUILD : 'FixedAtBuild',\r
+ TAB_PCDS_FEATURE_FLAG : TAB_PCDS_FIXED_AT_BUILD,\r
+ TAB_PCDS_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,\r
TAB_PCDS_PATCHABLE_IN_MODULE: 'BinaryPatch',\r
TAB_PCDS_DYNAMIC : '',\r
TAB_PCDS_DYNAMIC_DEFAULT : '',\r
Pcd.InitString = 'UNINIT'\r
\r
if Pcd.DatumType == TAB_VOID:\r
- if Pcd.Type not in ["DynamicVpd", "DynamicExVpd"]:\r
+ if Pcd.Type not in [TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_EX_VPD]:\r
Pcd.TokenTypeList = ['PCD_TYPE_STRING']\r
else:\r
Pcd.TokenTypeList = []\r
PCD_DYNAMIC_TYPE_SET = {TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII}\r
PCD_DYNAMIC_EX_TYPE_SET = {TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII}\r
\r
+# leave as a list for order\r
+PCD_TYPE_LIST = [TAB_PCDS_FIXED_AT_BUILD, TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS_FEATURE_FLAG, TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_EX]\r
+\r
TAB_PCDS_FIXED_AT_BUILD_NULL = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD\r
TAB_PCDS_FIXED_AT_BUILD_COMMON = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_COMMON\r
TAB_PCDS_FIXED_AT_BUILD_IA32 = TAB_PCDS + TAB_PCDS_FIXED_AT_BUILD + TAB_SPLIT + TAB_ARCH_IA32\r
XmlTag = "Usage"\r
Common.Usage = XmlAttribute(XmlCommon, XmlTag).split()\r
\r
- XmlTag = "FeatureFlag"\r
+ XmlTag = TAB_PCDS_FEATURE_FLAG\r
Common.FeatureFlag = XmlAttribute(XmlCommon, XmlTag)\r
\r
XmlTag = "SupArchList"\r
Pcd = InfPcds[PcdKey]\r
if not hasattr(Pcd, 'Offset'):\r
continue\r
- if Pcd.Type != 'PatchableInModule':\r
+ if Pcd.Type != TAB_PCDS_PATCHABLE_IN_MODULE:\r
continue\r
# Override Patchable PCD value by the value from DSC\r
PatchPcd = None\r
for Key in PcdDict:\r
PcdObj = PcdDict[Key]\r
if (PcdObj.TokenCName == TokenCName) and (PcdObj.TokenSpaceGuidCName == TokenSpace):\r
- if PcdObj.Type != 'FixedAtBuild':\r
+ if PcdObj.Type != DataType.TAB_PCDS_FIXED_AT_BUILD:\r
EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not FixedAtBuild type." % PcdPattern)\r
if PcdObj.DatumType != DataType.TAB_VOID:\r
EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not VOID* datum type." % PcdPattern)\r
for Key in PcdDict:\r
PcdObj = PcdDict[Key]\r
if (PcdObj.TokenCName == TokenCName) and (PcdObj.TokenSpaceGuidCName == TokenSpace):\r
- if PcdObj.Type != 'FixedAtBuild':\r
+ if PcdObj.Type != DataType.TAB_PCDS_FIXED_AT_BUILD:\r
EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not FixedAtBuild type." % PcdPattern)\r
if PcdObj.DatumType != DataType.TAB_VOID:\r
EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not VOID* datum type." % PcdPattern)\r
class DecBuildData(PackageBuildClassObject):\r
# dict used to convert PCD type in database to string used by build tool\r
_PCD_TYPE_STRING_ = {\r
- MODEL_PCD_FIXED_AT_BUILD : "FixedAtBuild",\r
- MODEL_PCD_PATCHABLE_IN_MODULE : "PatchableInModule",\r
- MODEL_PCD_FEATURE_FLAG : "FeatureFlag",\r
- MODEL_PCD_DYNAMIC : "Dynamic",\r
- MODEL_PCD_DYNAMIC_DEFAULT : "Dynamic",\r
- MODEL_PCD_DYNAMIC_HII : "DynamicHii",\r
- MODEL_PCD_DYNAMIC_VPD : "DynamicVpd",\r
- MODEL_PCD_DYNAMIC_EX : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_DEFAULT : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_HII : "DynamicExHii",\r
- MODEL_PCD_DYNAMIC_EX_VPD : "DynamicExVpd",\r
+ MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,\r
+ MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,\r
+ MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,\r
+ MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,\r
+ MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,\r
+ MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,\r
+ MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,\r
}\r
\r
# dict used to convert part of [Defines] to members of DecBuildData directly\r
class DscBuildData(PlatformBuildClassObject):\r
# dict used to convert PCD type in database to string used by build tool\r
_PCD_TYPE_STRING_ = {\r
- MODEL_PCD_FIXED_AT_BUILD : "FixedAtBuild",\r
- MODEL_PCD_PATCHABLE_IN_MODULE : "PatchableInModule",\r
- MODEL_PCD_FEATURE_FLAG : "FeatureFlag",\r
- MODEL_PCD_DYNAMIC : "Dynamic",\r
- MODEL_PCD_DYNAMIC_DEFAULT : "Dynamic",\r
- MODEL_PCD_DYNAMIC_HII : "DynamicHii",\r
- MODEL_PCD_DYNAMIC_VPD : "DynamicVpd",\r
- MODEL_PCD_DYNAMIC_EX : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_DEFAULT : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_HII : "DynamicExHii",\r
- MODEL_PCD_DYNAMIC_EX_VPD : "DynamicExVpd",\r
+ MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,\r
+ MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,\r
+ MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,\r
+ MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,\r
+ MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,\r
+ MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,\r
+ MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,\r
}\r
\r
# dict used to convert part of [Defines] to members of DscBuildData directly\r
class InfBuildData(ModuleBuildClassObject):\r
# dict used to convert PCD type in database to string used by build tool\r
_PCD_TYPE_STRING_ = {\r
- MODEL_PCD_FIXED_AT_BUILD : "FixedAtBuild",\r
- MODEL_PCD_PATCHABLE_IN_MODULE : "PatchableInModule",\r
- MODEL_PCD_FEATURE_FLAG : "FeatureFlag",\r
- MODEL_PCD_DYNAMIC : "Dynamic",\r
- MODEL_PCD_DYNAMIC_DEFAULT : "Dynamic",\r
- MODEL_PCD_DYNAMIC_HII : "DynamicHii",\r
- MODEL_PCD_DYNAMIC_VPD : "DynamicVpd",\r
- MODEL_PCD_DYNAMIC_EX : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_DEFAULT : "DynamicEx",\r
- MODEL_PCD_DYNAMIC_EX_HII : "DynamicExHii",\r
- MODEL_PCD_DYNAMIC_EX_VPD : "DynamicExVpd",\r
+ MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,\r
+ MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,\r
+ MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,\r
+ MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,\r
+ MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,\r
+ MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,\r
+ MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,\r
+ MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,\r
+ MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,\r
}\r
\r
# dict used to convert part of [Defines] to members of InfBuildData directly\r
# if platform doesn't give its type, use 'lowest' one in the\r
# following order, if any\r
#\r
- # "FixedAtBuild", "PatchableInModule", "FeatureFlag", "Dynamic", "DynamicEx"\r
+ # TAB_PCDS_FIXED_AT_BUILD, TAB_PCDS_PATCHABLE_IN_MODULE, TAB_PCDS_FEATURE_FLAG, TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_EX\r
#\r
_GuidDict.update(Package.Guids)\r
PcdType = self._PCD_TYPE_STRING_[Type]\r
if Type == MODEL_PCD_DYNAMIC:\r
Pcd.Pending = True\r
- for T in ["FixedAtBuild", "PatchableInModule", "FeatureFlag", "Dynamic", "DynamicEx"]:\r
+ for T in PCD_TYPE_LIST:\r
if (PcdRealName, TokenSpaceGuid) in GlobalData.MixedPcd:\r
for item in GlobalData.MixedPcd[(PcdRealName, TokenSpaceGuid)]:\r
if str(item[0]).endswith(T) and (item[0], item[1], T) in Package.Pcds:\r
\r
## The look up table to map PCD type to pair of report display type and DEC type\r
gPcdTypeMap = {\r
- 'FixedAtBuild' : ('FIXED', 'FixedAtBuild'),\r
- 'PatchableInModule': ('PATCH', 'PatchableInModule'),\r
- 'FeatureFlag' : ('FLAG', 'FeatureFlag'),\r
- 'Dynamic' : ('DYN', 'Dynamic'),\r
- 'DynamicHii' : ('DYNHII', 'Dynamic'),\r
- 'DynamicVpd' : ('DYNVPD', 'Dynamic'),\r
- 'DynamicEx' : ('DEX', 'DynamicEx'),\r
- 'DynamicExHii' : ('DEXHII', 'DynamicEx'),\r
- 'DynamicExVpd' : ('DEXVPD', 'DynamicEx'),\r
+ TAB_PCDS_FIXED_AT_BUILD : ('FIXED', TAB_PCDS_FIXED_AT_BUILD),\r
+ TAB_PCDS_PATCHABLE_IN_MODULE: ('PATCH', TAB_PCDS_PATCHABLE_IN_MODULE),\r
+ TAB_PCDS_FEATURE_FLAG : ('FLAG', TAB_PCDS_FEATURE_FLAG),\r
+ TAB_PCDS_DYNAMIC : ('DYN', TAB_PCDS_DYNAMIC),\r
+ TAB_PCDS_DYNAMIC_HII : ('DYNHII', TAB_PCDS_DYNAMIC),\r
+ TAB_PCDS_DYNAMIC_VPD : ('DYNVPD', TAB_PCDS_DYNAMIC),\r
+ TAB_PCDS_DYNAMIC_EX : ('DEX', TAB_PCDS_DYNAMIC_EX),\r
+ TAB_PCDS_DYNAMIC_EX_HII : ('DEXHII', TAB_PCDS_DYNAMIC_EX),\r
+ TAB_PCDS_DYNAMIC_EX_VPD : ('DEXVPD', TAB_PCDS_DYNAMIC_EX),\r
}\r
\r
## The look up table to map module type to driver type\r
Pcd = Pa.Platform.Pcds[item]\r
if not Pcd.Type:\r
# check the Pcd in FDF file, whether it is used in module first\r
- for T in ["FixedAtBuild", "PatchableInModule", "FeatureFlag", "Dynamic", "DynamicEx"]:\r
+ for T in PCD_TYPE_LIST:\r
PcdList = self.AllPcds.setdefault(Pcd.TokenSpaceGuidCName, {}).setdefault(T, [])\r
if Pcd in PcdList:\r
Pcd.Type = T\r
if not Pcd.Type:\r
PcdTypeFlag = False\r
for package in Pa.PackageList:\r
- for T in ["FixedAtBuild", "PatchableInModule", "FeatureFlag", "Dynamic", "DynamicEx"]:\r
+ for T in PCD_TYPE_LIST:\r
if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, T) in package.Pcds:\r
Pcd.Type = T\r
PcdTypeFlag = True\r
if not Pcd.DatumType:\r
PcdType = Pcd.Type\r
# Try to remove Hii and Vpd suffix\r
- if PcdType.startswith("DynamicEx"):\r
- PcdType = "DynamicEx"\r
- elif PcdType.startswith("Dynamic"):\r
- PcdType = "Dynamic"\r
+ if PcdType.startswith(TAB_PCDS_DYNAMIC_EX):\r
+ PcdType = TAB_PCDS_DYNAMIC_EX\r
+ elif PcdType.startswith(TAB_PCDS_DYNAMIC):\r
+ PcdType = TAB_PCDS_DYNAMIC\r
for package in Pa.PackageList:\r
if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, PcdType) in package.Pcds:\r
Pcd.DatumType = package.Pcds[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName, PcdType)].DatumType\r