if (BuildData.Pcds[key].TokenCName, BuildData.Pcds[key].TokenSpaceGuidCName) == SinglePcd:\r
for item in GlobalData.MixedPcd[SinglePcd]:\r
Pcd_Type = item[0].split('_')[-1]\r
- if (Pcd_Type == BuildData.Pcds[key].Type) or (Pcd_Type == TAB_PCDS_DYNAMIC_EX and BuildData.Pcds[key].Type in GenC.gDynamicExPcd) or \\r
- (Pcd_Type == TAB_PCDS_DYNAMIC and BuildData.Pcds[key].Type in GenC.gDynamicPcd):\r
+ if (Pcd_Type == BuildData.Pcds[key].Type) or (Pcd_Type == TAB_PCDS_DYNAMIC_EX and BuildData.Pcds[key].Type in PCD_DYNAMIC_EX_TYPE_SET) or \\r
+ (Pcd_Type == TAB_PCDS_DYNAMIC and BuildData.Pcds[key].Type in PCD_DYNAMIC_TYPE_SET):\r
Value = BuildData.Pcds[key]\r
Value.TokenCName = BuildData.Pcds[key].TokenCName + '_' + Pcd_Type\r
if len(key) == 2:\r
if (self.Platform.Pcds[key].TokenCName, self.Platform.Pcds[key].TokenSpaceGuidCName) == SinglePcd:\r
for item in GlobalData.MixedPcd[SinglePcd]:\r
Pcd_Type = item[0].split('_')[-1]\r
- if (Pcd_Type == self.Platform.Pcds[key].Type) or (Pcd_Type == TAB_PCDS_DYNAMIC_EX and self.Platform.Pcds[key].Type in GenC.gDynamicExPcd) or \\r
- (Pcd_Type == TAB_PCDS_DYNAMIC and self.Platform.Pcds[key].Type in GenC.gDynamicPcd):\r
+ if (Pcd_Type == self.Platform.Pcds[key].Type) or (Pcd_Type == TAB_PCDS_DYNAMIC_EX and self.Platform.Pcds[key].Type in PCD_DYNAMIC_EX_TYPE_SET) or \\r
+ (Pcd_Type == TAB_PCDS_DYNAMIC and self.Platform.Pcds[key].Type in PCD_DYNAMIC_TYPE_SET):\r
Value = self.Platform.Pcds[key]\r
Value.TokenCName = self.Platform.Pcds[key].TokenCName + '_' + Pcd_Type\r
if len(key) == 2:\r
# Check the PCD from DSC or not \r
PcdFromModule.IsFromDsc = (PcdFromModule.TokenCName, PcdFromModule.TokenSpaceGuidCName) in self.Platform.Pcds\r
\r
- if PcdFromModule.Type in GenC.gDynamicPcd or PcdFromModule.Type in GenC.gDynamicExPcd:\r
+ if PcdFromModule.Type in PCD_DYNAMIC_TYPE_SET or PcdFromModule.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if F.Path not in FdfModuleList:\r
# If one of the Source built modules listed in the DSC is not listed \r
# in FDF modules, and the INF lists a PCD can only use the PcdsDynamic \r
# be included in a flash image in order to be functional. These Dynamic \r
# PCD will not be added into the Database unless it is used by other \r
# modules that are included in the FDF file.\r
- if PcdFromModule.Type in GenC.gDynamicPcd and \\r
+ if PcdFromModule.Type in PCD_DYNAMIC_TYPE_SET and \\r
PcdFromModule.IsFromBinaryInf == False:\r
# Print warning message to let the developer make a determine.\r
continue\r
# access method (it is only listed in the DEC file that declares the \r
# PCD as PcdsDynamicEx), then DO NOT break the build; DO NOT add the \r
# PCD to the Platform's PCD Database.\r
- if PcdFromModule.Type in GenC.gDynamicExPcd:\r
+ if PcdFromModule.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
continue\r
#\r
# If a dynamic PCD used by a PEM module/PEI module & DXE module,\r
PcdFromModule.IsFromBinaryInf = True\r
PcdFromModule.IsFromDsc = False\r
# Only allow the DynamicEx and Patchable PCD in AsBuild INF\r
- if PcdFromModule.Type not in GenC.gDynamicExPcd and PcdFromModule.Type not in TAB_PCDS_PATCHABLE_IN_MODULE:\r
+ if PcdFromModule.Type not in PCD_DYNAMIC_EX_TYPE_SET and PcdFromModule.Type not in TAB_PCDS_PATCHABLE_IN_MODULE:\r
EdkLogger.error("build", AUTOGEN_ERROR, "PCD setting error",\r
File=self.MetaFile,\r
ExtraData="\n\tExisted %s PCD %s in:\n\t\t%s\n"\r
NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, InfName))\r
if M.ModuleType in SUP_MODULE_SET_PEI:\r
PcdFromModule.Phase = "PEI"\r
- if PcdFromModule not in self._DynaPcdList_ and PcdFromModule.Type in GenC.gDynamicExPcd:\r
+ if PcdFromModule not in self._DynaPcdList_ and PcdFromModule.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
self._DynaPcdList_.append(PcdFromModule)\r
elif PcdFromModule not in self._NonDynaPcdList_ and PcdFromModule.Type in TAB_PCDS_PATCHABLE_IN_MODULE:\r
self._NonDynaPcdList_.append(PcdFromModule)\r
- if PcdFromModule in self._DynaPcdList_ and PcdFromModule.Phase == 'PEI' and PcdFromModule.Type in GenC.gDynamicExPcd:\r
+ if PcdFromModule in self._DynaPcdList_ and PcdFromModule.Phase == 'PEI' and PcdFromModule.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
# Overwrite the phase of any the same PCD existing, if Phase is PEI.\r
# It is to solve the case that a dynamic PCD used by a PEM module/PEI \r
# module & DXE module at a same time.\r
#\r
for Pcd in self.DynamicPcdList:\r
if Pcd.Phase == "PEI":\r
- if Pcd.Type in [TAB_PCDS_DYNAMIC, "DynamicDefault", "DynamicVpd", "DynamicHii"]:\r
+ if Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
EdkLogger.debug(EdkLogger.DEBUG_5, "%s %s (%s) -> %d" % (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Phase, TokenNumber))\r
self._PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName] = TokenNumber\r
TokenNumber += 1\r
\r
for Pcd in self.DynamicPcdList:\r
if Pcd.Phase == "PEI":\r
- if Pcd.Type in [TAB_PCDS_DYNAMIC_EX, "DynamicExDefault", "DynamicExVpd", "DynamicExHii"]:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
EdkLogger.debug(EdkLogger.DEBUG_5, "%s %s (%s) -> %d" % (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Phase, TokenNumber))\r
self._PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName] = TokenNumber\r
TokenNumber += 1\r
\r
for Pcd in self.DynamicPcdList:\r
if Pcd.Phase == "DXE":\r
- if Pcd.Type in [TAB_PCDS_DYNAMIC, "DynamicDefault", "DynamicVpd", "DynamicHii"]:\r
+ if Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
EdkLogger.debug(EdkLogger.DEBUG_5, "%s %s (%s) -> %d" % (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Phase, TokenNumber))\r
self._PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName] = TokenNumber\r
TokenNumber += 1\r
\r
for Pcd in self.DynamicPcdList:\r
if Pcd.Phase == "DXE":\r
- if Pcd.Type in [TAB_PCDS_DYNAMIC_EX, "DynamicExDefault", "DynamicExVpd", "DynamicExHii"]:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
EdkLogger.debug(EdkLogger.DEBUG_5, "%s %s (%s) -> %d" % (Pcd.TokenCName, Pcd.TokenSpaceGuidCName, Pcd.Phase, TokenNumber))\r
self._PcdTokenNumber[Pcd.TokenCName, Pcd.TokenSpaceGuidCName] = TokenNumber\r
TokenNumber += 1\r
ToPcd.MaxDatumSize = str(len(Value) - 1)\r
\r
# apply default SKU for dynamic PCDS if specified one is not available\r
- if (ToPcd.Type in PCD_DYNAMIC_TYPE_LIST or ToPcd.Type in PCD_DYNAMIC_EX_TYPE_LIST) \\r
+ if (ToPcd.Type in PCD_DYNAMIC_TYPE_SET or ToPcd.Type in PCD_DYNAMIC_EX_TYPE_SET) \\r
and ToPcd.SkuInfoList in [None, {}, '']:\r
if self.Platform.SkuName in self.Platform.SkuIds:\r
SkuName = self.Platform.SkuName\r
if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:\r
PatchablePcds += [Pcd]\r
PcdCheckList.append((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, TAB_PCDS_PATCHABLE_IN_MODULE))\r
- elif Pcd.Type in GenC.gDynamicExPcd:\r
+ elif Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if Pcd not in Pcds:\r
Pcds += [Pcd]\r
PcdCheckList.append((Pcd.TokenCName, Pcd.TokenSpaceGuidCName, TAB_PCDS_DYNAMIC_EX))\r
TAB_PCDS_DYNAMIC_EX_HII : '',\r
}\r
\r
-## Dynamic PCD types\r
-gDynamicPcd = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII]\r
-\r
-## Dynamic-ex PCD types\r
-gDynamicExPcd = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
\r
## Datum size\r
gDatumSizeStringDatabase = {TAB_UINT8:'8',TAB_UINT16:'16',TAB_UINT32:'32',TAB_UINT64:'64','BOOLEAN':'BOOLEAN',TAB_VOID:'8'}\r
# Even it is the Library, the PCD is saved in the ModulePcdList\r
PcdList = Info.ModulePcdList\r
for Pcd in PcdList:\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
ExTokenCNameList.append(Pcd.TokenCName)\r
PcdExList.append(Pcd)\r
if len(ExTokenCNameList) == 0:\r
if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) in GlobalData.MixedPcd[PcdItem]:\r
RealTokenCName = PcdItem[0]\r
break\r
- if Pcd.Type in gDynamicExPcd and Pcd.TokenCName == TokenCName:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == TokenCName:\r
Index = Index + 1\r
if Index == 1:\r
AutoGenH.Append('\n#define __PCD_%s_VAL_CMP(GuidPtr) (' % (RealTokenCName))\r
if Pcd.PcdValueFromComm:\r
Pcd.DefaultValue = Pcd.PcdValueFromComm\r
\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
TokenNumber = int(Pcd.TokenValue, 0)\r
# Add TokenSpaceGuidValue value to PcdTokenName to discriminate the DynamicEx PCDs with \r
# different Guids but same TokenCName\r
# will not be added into the Database unless it is used by other modules that are \r
# included in the FDF file. \r
# In this case, just assign an invalid token number to make it pass build.\r
- if Pcd.Type in PCD_DYNAMIC_TYPE_LIST:\r
+ if Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
TokenNumber = 0\r
else:\r
EdkLogger.error("build", AUTOGEN_ERROR,\r
SetModeStatusName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_S_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[TAB_VOID] + '_S_' + TokenCName\r
GetModeSizeName = '_PCD_GET_MODE_SIZE' + '_' + TokenCName\r
\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if Info.IsLibrary:\r
PcdList = Info.LibraryPcdList\r
else:\r
PcdList = Info.ModulePcdList\r
PcdExCNameTest = 0\r
for PcdModule in PcdList:\r
- if PcdModule.Type in gDynamicExPcd and Pcd.TokenCName == PcdModule.TokenCName:\r
+ if PcdModule.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName:\r
PcdExCNameTest += 1\r
# get out early once we found > 1...\r
if PcdExCNameTest > 1:\r
else:\r
AutoGenH.Append('#define %s(Value) LibPcdSetEx%s(&%s, %s, (Value))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
AutoGenH.Append('#define %s(Value) LibPcdSetEx%sS(&%s, %s, (Value))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
- elif Pcd.Type in gDynamicPcd:\r
+ elif Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
PcdCNameTest = 0\r
for PcdModule in Info.LibraryPcdList + Info.ModulePcdList:\r
- if PcdModule.Type in gDynamicPcd and Pcd.TokenCName == PcdModule.TokenCName:\r
+ if PcdModule.Type in PCD_DYNAMIC_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName:\r
PcdCNameTest += 1\r
# get out early once we found > 1...\r
if PcdCNameTest > 1:\r
#\r
# Write PCDs\r
#\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
TokenNumber = int(Pcd.TokenValue, 0)\r
else:\r
if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) not in PcdTokenNumber:\r
# will not be added into the Database unless it is used by other modules that are \r
# included in the FDF file. \r
# In this case, just assign an invalid token number to make it pass build.\r
- if Pcd.Type in PCD_DYNAMIC_TYPE_LIST:\r
+ if Pcd.Type in PCD_DYNAMIC_TYPE_SET:\r
TokenNumber = 0\r
else:\r
EdkLogger.error("build", AUTOGEN_ERROR,\r
Type = '(VOID *)'\r
Array = '[]'\r
PcdItemType = Pcd.Type\r
- if PcdItemType in gDynamicExPcd:\r
+ if PcdItemType in PCD_DYNAMIC_EX_TYPE_SET:\r
PcdExTokenName = '_PCD_TOKEN_' + TokenSpaceGuidCName + '_' + TokenCName\r
AutoGenH.Append('\n#define %s %dU\n' % (PcdExTokenName, TokenNumber))\r
\r
PcdList = Info.ModulePcdList\r
PcdExCNameTest = 0\r
for PcdModule in PcdList:\r
- if PcdModule.Type in gDynamicExPcd and Pcd.TokenCName == PcdModule.TokenCName:\r
+ if PcdModule.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenCName == PcdModule.TokenCName:\r
PcdExCNameTest += 1\r
# get out early once we found > 1...\r
if PcdExCNameTest > 1:\r
AutoGenH.Append('#define %s(Value) LibPcdSetEx%sS(&%s, %s, (Value))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
else:\r
AutoGenH.Append('#define _PCD_TOKEN_%s %dU\n' % (TokenCName, TokenNumber))\r
- if PcdItemType in gDynamicPcd:\r
+ if PcdItemType in PCD_DYNAMIC_TYPE_SET:\r
PcdList = []\r
PcdCNameList = []\r
PcdList.extend(Info.LibraryPcdList)\r
PcdList.extend(Info.ModulePcdList)\r
for PcdModule in PcdList:\r
- if PcdModule.Type in gDynamicPcd:\r
+ if PcdModule.Type in PCD_DYNAMIC_TYPE_SET:\r
PcdCNameList.append(PcdModule.TokenCName)\r
if PcdCNameList.count(Pcd.TokenCName) > 1:\r
EdkLogger.error("build", AUTOGEN_ERROR, "More than one Dynamic Pcds [%s] are different Guids but same CName.They need to be changed to DynamicEx type to avoid the confliction.\n" % (TokenCName), ExtraData="[%s]" % str(Info.MetaFile.Path))\r
# Collect Token Space GUIDs used by DynamicEc PCDs\r
TokenSpaceList = []\r
for Pcd in Info.ModulePcdList:\r
- if Pcd.Type in gDynamicExPcd and Pcd.TokenSpaceGuidCName not in TokenSpaceList:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET and Pcd.TokenSpaceGuidCName not in TokenSpaceList:\r
TokenSpaceList += [Pcd.TokenSpaceGuidCName]\r
\r
SkuMgr = Info.Workspace.Platform.SkuIdMgr\r
#\r
TokenSpaceGuidStructure = Pcd.TokenSpaceGuidValue\r
TokenSpaceGuid = GuidStructureStringToGuidValueName(TokenSpaceGuidStructure)\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
if TokenSpaceGuid not in GuidList:\r
GuidList += [TokenSpaceGuid]\r
Dict['GUID_STRUCTURE'].append(TokenSpaceGuidStructure)\r
Dict['VARDEF_HEADER'][GeneratedTokenNumber] = ''\r
\r
\r
- if Pcd.Type in gDynamicExPcd:\r
+ if Pcd.Type in PCD_DYNAMIC_EX_TYPE_SET:\r
\r
if Phase == 'DXE':\r
GeneratedTokenNumber += NumberOfPeiLocalTokens\r
TAB_ARCH_EBC = 'EBC'\r
TAB_ARCH_AARCH64 = 'AARCH64'\r
\r
-ARCH_LIST = [TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64]\r
-ARCH_LIST_FULL = [TAB_ARCH_COMMON] + ARCH_LIST\r
+ARCH_SET_FULL = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_EBC, TAB_ARCH_AARCH64, TAB_ARCH_COMMON}\r
\r
SUP_MODULE_BASE = 'BASE'\r
SUP_MODULE_SEC = 'SEC'\r
TAB_PCDS_DYNAMIC_VPD = 'DynamicVpd'\r
TAB_PCDS_DYNAMIC_HII = 'DynamicHii'\r
\r
-PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII]\r
-PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\r
-\r
-## Dynamic-ex PCD types\r
-gDynamicExPcd = [TAB_PCDS_DYNAMIC_EX, TAB_PCDS_DYNAMIC_EX_DEFAULT, TAB_PCDS_DYNAMIC_EX_VPD, TAB_PCDS_DYNAMIC_EX_HII]\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
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_DYNAMIC_EBC = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_EBC\r
TAB_PCDS_DYNAMIC_AARCH64 = TAB_PCDS + TAB_PCDS_DYNAMIC + TAB_SPLIT + TAB_ARCH_AARCH64\r
\r
-TAB_PCD_DYNAMIC_TYPE_LIST = [TAB_PCDS_DYNAMIC_DEFAULT_NULL, TAB_PCDS_DYNAMIC_VPD_NULL, TAB_PCDS_DYNAMIC_HII_NULL]\r
-TAB_PCD_DYNAMIC_EX_TYPE_LIST = [TAB_PCDS_DYNAMIC_EX_DEFAULT_NULL, TAB_PCDS_DYNAMIC_EX_VPD_NULL, TAB_PCDS_DYNAMIC_EX_HII_NULL]\r
-\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE = 'PcdLoadFixAddressPeiCodePageNumber'\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE = 'PcdLoadFixAddressBootTimeCodePageNumber'\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE = 'PcdLoadFixAddressSmmCodePageNumber'\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE_DATA_TYPE = 'UINT32'\r
-TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_LIST = [TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE, \\r
+TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SET = {TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_PEI_PAGE_SIZE, \\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_DXE_PAGE_SIZE, \\r
TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_RUNTIME_PAGE_SIZE, \\r
- TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE]\r
+ TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SMM_PAGE_SIZE}\r
\r
## The mapping dictionary from datum type to its maximum number.\r
MAX_VAL_TYPE = {"BOOLEAN":0x01, TAB_UINT8:0xFF, TAB_UINT16:0xFFFF, TAB_UINT32:0xFFFFFFFF, TAB_UINT64:0xFFFFFFFFFFFFFFFF}\r
DATABASE_PATH = ":memory:" #"BuildDatabase.db"\r
\r
# used by ECC\r
-MODIFIER_LIST = ['IN', 'OUT', 'OPTIONAL', 'UNALIGNED', 'EFI_RUNTIMESERVICE', 'EFI_BOOTSERVICE', 'EFIAPI']\r
+MODIFIER_SET = {'IN', 'OUT', 'OPTIONAL', 'UNALIGNED', 'EFI_RUNTIMESERVICE', 'EFI_BOOTSERVICE', 'EFIAPI'}\r
\r
# Dependency Expression\r
-DEPEX_SUPPORTED_OPCODE = ["BEFORE", "AFTER", "PUSH", "AND", "OR", "NOT", "END", "SOR", "TRUE", "FALSE", '(', ')']\r
+DEPEX_SUPPORTED_OPCODE_SET = {"BEFORE", "AFTER", "PUSH", "AND", "OR", "NOT", "END", "SOR", "TRUE", "FALSE", '(', ')'}\r
\r
TAB_STATIC_LIBRARY = "STATIC-LIBRARY-FILE"\r
TAB_DYNAMIC_LIBRARY = "DYNAMIC-LIBRARY-FILE"\r
PCDS_DYNAMICEX_VPD = "PcdsDynamicExVpd"\r
PCDS_DYNAMICEX_HII = "PcdsDynamicExHii"\r
\r
-SECTIONS_HAVE_ITEM_PCD = [PCDS_DYNAMIC_DEFAULT.upper(),PCDS_DYNAMIC_VPD.upper(),PCDS_DYNAMIC_HII.upper(), \\r
- PCDS_DYNAMICEX_DEFAULT.upper(),PCDS_DYNAMICEX_VPD.upper(),PCDS_DYNAMICEX_HII.upper()]\r
+SECTIONS_HAVE_ITEM_PCD_SET = {PCDS_DYNAMIC_DEFAULT.upper(),PCDS_DYNAMIC_VPD.upper(),PCDS_DYNAMIC_HII.upper(), \\r
+ PCDS_DYNAMICEX_DEFAULT.upper(),PCDS_DYNAMICEX_VPD.upper(),PCDS_DYNAMICEX_HII.upper()}\r
# Section allowed to have items after arch\r
-SECTIONS_HAVE_ITEM_AFTER_ARCH = [TAB_LIBRARY_CLASSES.upper(), TAB_DEPEX.upper(), TAB_USER_EXTENSIONS.upper(),\r
+SECTIONS_HAVE_ITEM_AFTER_ARCH_SET = {TAB_LIBRARY_CLASSES.upper(), TAB_DEPEX.upper(), TAB_USER_EXTENSIONS.upper(),\r
PCDS_DYNAMIC_DEFAULT.upper(),\r
PCDS_DYNAMIC_VPD.upper(),\r
PCDS_DYNAMIC_HII.upper(),\r
PCDS_DYNAMICEX_VPD.upper(),\r
PCDS_DYNAMICEX_HII.upper(),\r
TAB_BUILD_OPTIONS.upper(),\r
- TAB_INCLUDES.upper()]\r
+ TAB_INCLUDES.upper()}\r
\r
# List customized Modifer here, split with ','\r
# Defaultly use the definition in class DataType\r
- self.ModifierList = MODIFIER_LIST\r
+ self.ModifierSet = MODIFIER_SET\r
\r
## General Checking\r
self.GeneralCheckAll = 0\r
MList = ModifierStr.split()\r
ReturnType = ''\r
for M in MList:\r
- if M in EccGlobalData.gConfig.ModifierList:\r
+ if M in EccGlobalData.gConfig.ModifierSet:\r
continue\r
# remove array sufix\r
if M.startswith('[') or M.endswith(']'):\r
raise Warning("expected '.'", self.FileName, self.CurrentLineNumber)\r
\r
Arch = self.__SkippedChars.rstrip(".")\r
- if Arch.upper() not in ARCH_LIST_FULL:\r
+ if Arch.upper() not in ARCH_SET_FULL:\r
raise Warning("Unknown Arch '%s'" % Arch, self.FileName, self.CurrentLineNumber)\r
\r
ModuleType = self.__GetModuleType()\r
## @file\r
# process FFS generation\r
#\r
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2007-2018, Intel Corporation. All rights reserved.<BR>\r
#\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
#\r
#\r
class Ffs(FDClassObject):\r
- \r
- # mapping between MODULE type in FDF (from INF) and file type for GenFfs\r
- ModuleTypeToFileType = {\r
- SUP_MODULE_SEC : 'EFI_FV_FILETYPE_SECURITY_CORE',\r
- SUP_MODULE_PEI_CORE : 'EFI_FV_FILETYPE_PEI_CORE',\r
- SUP_MODULE_PEIM : 'EFI_FV_FILETYPE_PEIM',\r
- SUP_MODULE_DXE_CORE : 'EFI_FV_FILETYPE_DXE_CORE',\r
- SUP_MODULE_DXE_DRIVER : 'EFI_FV_FILETYPE_DRIVER',\r
- SUP_MODULE_DXE_SAL_DRIVER : 'EFI_FV_FILETYPE_DRIVER',\r
- SUP_MODULE_DXE_SMM_DRIVER : 'EFI_FV_FILETYPE_DRIVER',\r
- SUP_MODULE_DXE_RUNTIME_DRIVER: 'EFI_FV_FILETYPE_DRIVER',\r
- SUP_MODULE_UEFI_DRIVER : 'EFI_FV_FILETYPE_DRIVER',\r
- SUP_MODULE_UEFI_APPLICATION : 'EFI_FV_FILETYPE_APPLICATION',\r
- SUP_MODULE_SMM_CORE : 'EFI_FV_FILETYPE_SMM_CORE',\r
- SUP_MODULE_MM_STANDALONE : 'EFI_FV_FILETYPE_MM_STANDALONE',\r
- SUP_MODULE_MM_CORE_STANDALONE : 'EFI_FV_FILETYPE_MM_CORE_STANDALONE'\r
- }\r
- \r
# mapping between FILE type in FDF and file type for GenFfs\r
FdfFvFileTypeToFileType = {\r
SUP_MODULE_SEC : 'EFI_FV_FILETYPE_SECURITY_CORE',\r
#\r
Rule = self.__GetRule__()\r
GenFdsGlobalVariable.VerboseLogger( "Packing binaries from inf file : %s" %self.InfFileName)\r
- #FileType = Ffs.Ffs.ModuleTypeToFileType[Rule.ModuleType]\r
#\r
# For the rule only has simpleFile\r
#\r
Depex[Arch, ModuleType] = []\r
DepexList = Depex[Arch, ModuleType]\r
for Token in TokenList:\r
- if Token in DEPEX_SUPPORTED_OPCODE:\r
+ if Token in DEPEX_SUPPORTED_OPCODE_SET:\r
DepexList.append(Token)\r
elif Token.endswith(".inf"): # module file name\r
ModuleFile = os.path.normpath(Token)\r
if self._SectionName in self.DataType:\r
self._SectionType = self.DataType[self._SectionName]\r
# Check if the section name is valid\r
- if self._SectionName not in SECTIONS_HAVE_ITEM_AFTER_ARCH and len(ItemList) > 3:\r
+ if self._SectionName not in SECTIONS_HAVE_ITEM_AFTER_ARCH_SET and len(ItemList) > 3:\r
EdkLogger.error("Parser", FORMAT_UNKNOWN_ERROR, "%s is not a valid section name" % Item,\r
self.MetaFile, self._LineIndex + 1, self._CurrentLine)\r
elif self._Version >= 0x00010005:\r
\r
# S2 may be Platform or ModuleType\r
if len(ItemList) > 2:\r
- if self._SectionName.upper() in SECTIONS_HAVE_ITEM_PCD:\r
+ if self._SectionName.upper() in SECTIONS_HAVE_ITEM_PCD_SET:\r
S2 = ItemList[2]\r
else:\r
S2 = ItemList[2].upper()\r
if OutputImageFile != '':\r
ModuleIsPatch = False\r
for Pcd in Module.ModulePcdList:\r
- if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE and Pcd.TokenCName in TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_LIST:\r
+ if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE and Pcd.TokenCName in TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SET:\r
ModuleIsPatch = True\r
break\r
if not ModuleIsPatch:\r
for Pcd in Module.LibraryPcdList:\r
- if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE and Pcd.TokenCName in TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_LIST:\r
+ if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE and Pcd.TokenCName in TAB_PCDS_PATCHABLE_LOAD_FIX_ADDRESS_SET:\r
ModuleIsPatch = True\r
break\r
\r