ALIGNMENTS = {"Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",\r
"256K", "512K", "1M", "2M", "4M", "8M", "16M"}\r
ALIGNMENT_NOAUTO = ALIGNMENTS - {"Auto"}\r
+CR_LB_SET = {T_CHAR_CR, TAB_LINE_BREAK}\r
\r
RegionSizePattern = compile("\s*(?P<base>(?:0x|0X)?[a-fA-F0-9]+)\s*\|\s*(?P<size>(?:0x|0X)?[a-fA-F0-9]+)\s*")\r
RegionSizeGuidPattern = compile("\s*(?P<base>\w+\.\w+[\.\w\[\]]*)\s*\|\s*(?P<size>\w+\.\w+[\.\w\[\]]*)\s*")\r
#\r
def _SkipWhiteSpace(self):\r
while not self._EndOfFile():\r
- if self._CurrentChar() in (TAB_PRINTCHAR_NUL, T_CHAR_CR, TAB_LINE_BREAK, TAB_SPACE_SPLIT, T_CHAR_TAB):\r
+ if self._CurrentChar() in {TAB_PRINTCHAR_NUL, T_CHAR_CR, TAB_LINE_BREAK, TAB_SPACE_SPLIT, T_CHAR_TAB}:\r
self._SkippedChars += str(self._CurrentChar())\r
self._GetOneChar()\r
else:\r
return\r
\r
Offset = StartPos[1]\r
- while self.Profile.FileLinesList[StartPos[0]][Offset] not in (T_CHAR_CR, TAB_LINE_BREAK):\r
+ while self.Profile.FileLinesList[StartPos[0]][Offset] not in CR_LB_SET:\r
self.Profile.FileLinesList[StartPos[0]][Offset] = Value\r
Offset += 1\r
\r
Line = StartPos[0]\r
while Line < EndPos[0]:\r
Offset = 0\r
- while self.Profile.FileLinesList[Line][Offset] not in (T_CHAR_CR, TAB_LINE_BREAK):\r
+ while self.Profile.FileLinesList[Line][Offset] not in CR_LB_SET:\r
self.Profile.FileLinesList[Line][Offset] = Value\r
Offset += 1\r
Line += 1\r
PreIndex = 0\r
StartPos = CurLine.find('$(', PreIndex)\r
EndPos = CurLine.find(')', StartPos+2)\r
- while StartPos != -1 and EndPos != -1 and self._Token not in [TAB_IF_DEF, TAB_IF_N_DEF, TAB_IF, TAB_ELSE_IF]:\r
+ while StartPos != -1 and EndPos != -1 and self._Token not in {TAB_IF_DEF, TAB_IF_N_DEF, TAB_IF, TAB_ELSE_IF}:\r
MacroName = CurLine[StartPos+2: EndPos]\r
MacorValue = self._GetMacroValue(MacroName)\r
if MacorValue is not None:\r
self.Profile.PcdFileLineDict[PcdPair] = FileLineTuple\r
\r
self._WipeOffArea.append(((SetLine, SetOffset), (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
- elif self._Token in (TAB_IF_DEF, TAB_IF_N_DEF, TAB_IF):\r
+ elif self._Token in {TAB_IF_DEF, TAB_IF_N_DEF, TAB_IF}:\r
IfStartPos = (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - len(self._Token))\r
IfList.append([IfStartPos, None, None])\r
\r
IfList[-1] = [IfList[-1][0], ConditionSatisfied, BranchDetermined]\r
if ConditionSatisfied:\r
self._WipeOffArea.append((IfList[-1][0], (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - 1)))\r
- elif self._Token in (TAB_ELSE_IF, '!else'):\r
+ elif self._Token in {TAB_ELSE_IF, TAB_ELSE}:\r
ElseStartPos = (self.CurrentLineNumber - 1, self.CurrentOffsetWithinLine - len(self._Token))\r
if len(IfList) <= 0:\r
raise Warning("Missing !if statement", self.FileName, self.CurrentLineNumber)\r
\r
MacroDict.update(GlobalData.gGlobalDefines)\r
MacroDict.update(GlobalData.gCommandLineDefines)\r
- if GlobalData.BuildOptionPcd:\r
- for Item in GlobalData.BuildOptionPcd:\r
- if isinstance(Item, tuple):\r
- continue\r
- PcdName, TmpValue = Item.split(TAB_EQUAL_SPLIT)\r
- TmpValue = BuildOptionValue(TmpValue, {})\r
- MacroDict[PcdName.strip()] = TmpValue\r
+ for Item in GlobalData.BuildOptionPcd:\r
+ if isinstance(Item, tuple):\r
+ continue\r
+ PcdName, TmpValue = Item.split(TAB_EQUAL_SPLIT)\r
+ TmpValue = BuildOptionValue(TmpValue, {})\r
+ MacroDict[PcdName.strip()] = TmpValue\r
# Highest priority\r
\r
return MacroDict\r
def _GetExpression(self):\r
Line = self.Profile.FileLinesList[self.CurrentLineNumber - 1]\r
Index = len(Line) - 1\r
- while Line[Index] in [T_CHAR_CR, TAB_LINE_BREAK]:\r
+ while Line[Index] in CR_LB_SET:\r
Index -= 1\r
ExpressionString = self.Profile.FileLinesList[self.CurrentLineNumber - 1][self.CurrentOffsetWithinLine:Index+1]\r
self.CurrentOffsetWithinLine += len(ExpressionString)\r
if self.CurrentLineNumber != StartLine:\r
EndPos = len(self.Profile.FileLinesList[StartLine-1])\r
self._Token = self.Profile.FileLinesList[StartLine-1][StartPos: EndPos]\r
- if self._Token.lower() in [TAB_IF, TAB_END_IF, TAB_ELSE_IF, TAB_ELSE, TAB_IF_DEF, TAB_IF_N_DEF, TAB_ERROR, TAB_INCLUDE]:\r
+ if self._Token.lower() in {TAB_IF, TAB_END_IF, TAB_ELSE_IF, TAB_ELSE, TAB_IF_DEF, TAB_IF_N_DEF, TAB_ERROR, TAB_INCLUDE}:\r
self._Token = self._Token.lower()\r
if StartPos != self.CurrentOffsetWithinLine:\r
return True\r
if not self._GetNextWord():\r
return True\r
\r
- if not self._Token in ("SET", BINARY_FILE_TYPE_FV, "FILE", "DATA", "CAPSULE", "INF"):\r
+ if not self._Token in {"SET", BINARY_FILE_TYPE_FV, "FILE", "DATA", "CAPSULE", "INF"}:\r
#\r
# If next token is a word which is not a valid FV type, it might be part of [PcdOffset[|PcdSize]]\r
# Or it might be next region's offset described by an expression which starts with a PCD.\r
if not self._GetNextToken():\r
raise Warning("expected alignment value", self.FileName, self.CurrentLineNumber)\r
\r
- if self._Token.upper() not in ("1", "2", "4", "8", "16", "32", "64", "128", "256", "512", \\r
+ if self._Token.upper() not in {"1", "2", "4", "8", "16", "32", "64", "128", "256", "512", \\r
"1K", "2K", "4K", "8K", "16K", "32K", "64K", "128K", "256K", "512K", \\r
"1M", "2M", "4M", "8M", "16M", "32M", "64M", "128M", "256M", "512M", \\r
- "1G", "2G"):\r
+ "1G", "2G"}:\r
raise Warning("Unknown alignment value '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
Obj.FvAlignment = self._Token\r
return True\r
if not self._GetNextToken():\r
raise Warning("expected FvForceRebase value", self.FileName, self.CurrentLineNumber)\r
\r
- if self._Token.upper() not in ["TRUE", "FALSE", "0", "0X0", "0X00", "1", "0X1", "0X01"]:\r
+ if self._Token.upper() not in {"TRUE", "FALSE", "0", "0X0", "0X00", "1", "0X1", "0X01"}:\r
raise Warning("Unknown FvForceRebase value '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
\r
- if self._Token.upper() in ["TRUE", "1", "0X1", "0X01"]:\r
+ if self._Token.upper() in {"TRUE", "1", "0X1", "0X01"}:\r
Obj.FvForceRebase = True\r
- elif self._Token.upper() in ["FALSE", "0", "0X0", "0X00"]:\r
+ elif self._Token.upper() in {"FALSE", "0", "0X0", "0X00"}:\r
Obj.FvForceRebase = False\r
else:\r
Obj.FvForceRebase = None\r
while self._GetNextWord():\r
IsWordToken = True\r
name = self._Token\r
- if name not in ("ERASE_POLARITY", "MEMORY_MAPPED", \\r
+ if name not in {"ERASE_POLARITY", "MEMORY_MAPPED", \\r
"STICKY_WRITE", "LOCK_CAP", "LOCK_STATUS", "WRITE_ENABLED_CAP", \\r
"WRITE_DISABLED_CAP", "WRITE_STATUS", "READ_ENABLED_CAP", \\r
"READ_DISABLED_CAP", "READ_STATUS", "READ_LOCK_CAP", \\r
"READ_LOCK_STATUS", "WRITE_LOCK_CAP", "WRITE_LOCK_STATUS", \\r
- "WRITE_POLICY_RELIABLE", "WEAK_ALIGNMENT", "FvUsedSizeEnable"):\r
+ "WRITE_POLICY_RELIABLE", "WEAK_ALIGNMENT", "FvUsedSizeEnable"}:\r
self._UndoToken()\r
return False\r
\r
if not self._IsToken(TAB_EQUAL_SPLIT):\r
raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
\r
- if not self._GetNextToken() or self._Token.upper() not in ("TRUE", "FALSE", "1", "0"):\r
+ if not self._GetNextToken() or self._Token.upper() not in {"TRUE", "FALSE", "1", "0"}:\r
raise Warning("expected TRUE/FALSE (1/0)", self.FileName, self.CurrentLineNumber)\r
\r
FvObj.FvAttributeDict[name] = self._Token\r
if not self._IsToken(TAB_EQUAL_SPLIT):\r
raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
\r
- if not self._GetNextToken() or self._Token not in ('TRUE', 'FALSE'):\r
+ if not self._GetNextToken() or self._Token not in {'TRUE', 'FALSE'}:\r
raise Warning("expected TRUE or FALSE for FvNameString", self.FileName, self.CurrentLineNumber)\r
\r
FvObj.FvNameString = self._Token\r
#\r
@staticmethod\r
def _FileCouldHaveRelocFlag (FileType):\r
- if FileType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, 'PEI_DXE_COMBO'):\r
+ if FileType in {SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, 'PEI_DXE_COMBO'}:\r
return True\r
else:\r
return False\r
#\r
@staticmethod\r
def _SectionCouldHaveRelocFlag (SectionType):\r
- if SectionType in (BINARY_FILE_TYPE_TE, BINARY_FILE_TYPE_PE32):\r
+ if SectionType in {BINARY_FILE_TYPE_TE, BINARY_FILE_TYPE_PE32}:\r
return True\r
else:\r
return False\r
raise Warning("expected FD name", self.FileName, self.CurrentLineNumber)\r
FfsFileObj.FdName = self._Token\r
\r
- elif self._Token in (TAB_DEFINE, "APRIORI", "SECTION"):\r
+ elif self._Token in {TAB_DEFINE, "APRIORI", "SECTION"}:\r
self._UndoToken()\r
self._GetSectionData(FfsFileObj, MacroDict)\r
\r
self.SetFileBufferPos(OldPos)\r
return False\r
\r
- if self._Token not in ("COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
- BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, "SUBTYPE_GUID", BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if self._Token not in {"COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
+ BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, "SUBTYPE_GUID", BINARY_FILE_TYPE_SMM_DEPEX}:\r
raise Warning("Unknown section type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
if AlignValue == 'Auto'and (not self._Token == BINARY_FILE_TYPE_PE32) and (not self._Token == BINARY_FILE_TYPE_TE):\r
raise Warning("Auto alignment can only be used in PE32 or TE section ", self.FileName, self.CurrentLineNumber)\r
continue\r
except ValueError:\r
raise Warning("expected Number", self.FileName, self.CurrentLineNumber)\r
- elif self._Token.upper() not in ("TRUE", "FALSE", "1", "0"):\r
+ elif self._Token.upper() not in {"TRUE", "FALSE", "1", "0"}:\r
raise Warning("expected TRUE/FALSE (1/0)", self.FileName, self.CurrentLineNumber)\r
AttribDict[AttribKey] = self._Token\r
\r
def _GetCapsuleTokens(self, Obj):\r
if not self._GetNextToken():\r
return False\r
- while self._Token in ("CAPSULE_GUID", "CAPSULE_HEADER_SIZE", "CAPSULE_FLAGS", "OEM_CAPSULE_FLAGS", "CAPSULE_HEADER_INIT_VERSION"):\r
+ while self._Token in {"CAPSULE_GUID", "CAPSULE_HEADER_SIZE", "CAPSULE_FLAGS", "OEM_CAPSULE_FLAGS", "CAPSULE_HEADER_INIT_VERSION"}:\r
Name = self._Token.strip()\r
if not self._IsToken(TAB_EQUAL_SPLIT):\r
raise Warning("expected '='", self.FileName, self.CurrentLineNumber)\r
if not self._GetNextToken():\r
raise Warning("expected value", self.FileName, self.CurrentLineNumber)\r
if Name == 'CAPSULE_FLAGS':\r
- if not self._Token in ("PersistAcrossReset", "PopulateSystemTable", "InitiateReset"):\r
+ if not self._Token in {"PersistAcrossReset", "PopulateSystemTable", "InitiateReset"}:\r
raise Warning("expected PersistAcrossReset, PopulateSystemTable, or InitiateReset", self.FileName, self.CurrentLineNumber)\r
Value = self._Token.strip()\r
while self._IsToken(TAB_COMMA_SPLIT):\r
Value += TAB_COMMA_SPLIT\r
if not self._GetNextToken():\r
raise Warning("expected value", self.FileName, self.CurrentLineNumber)\r
- if not self._Token in ("PersistAcrossReset", "PopulateSystemTable", "InitiateReset"):\r
+ if not self._Token in {"PersistAcrossReset", "PopulateSystemTable", "InitiateReset"}:\r
raise Warning("expected PersistAcrossReset, PopulateSystemTable, or InitiateReset", self.FileName, self.CurrentLineNumber)\r
Value += self._Token.strip()\r
elif Name == 'OEM_CAPSULE_FLAGS':\r
AfileName = self._Token\r
AfileBaseName = os.path.basename(AfileName)\r
\r
- if os.path.splitext(AfileBaseName)[1] not in [".bin", ".BIN", ".Bin", ".dat", ".DAT", ".Dat", ".data", ".DATA", ".Data"]:\r
+ if os.path.splitext(AfileBaseName)[1] not in {".bin", ".BIN", ".Bin", ".dat", ".DAT", ".Dat", ".data", ".DATA", ".Data"}:\r
raise Warning('invalid binary file type, should be one of "bin",BINARY_FILE_TYPE_BIN,"Bin","dat","DAT","Dat","data","DATA","Data"', \\r
self.FileName, self.CurrentLineNumber)\r
\r
def _GetModuleType(self):\r
if not self._GetNextWord():\r
raise Warning("expected Module type", self.FileName, self.CurrentLineNumber)\r
- if self._Token.upper() not in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_DXE_CORE, \\r
- SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, \\r
- SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER, \\r
- SUP_MODULE_UEFI_DRIVER, SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED, TAB_DEFAULT, SUP_MODULE_BASE, \\r
- EDK_COMPONENT_TYPE_SECURITY_CORE, EDK_COMPONENT_TYPE_COMBINED_PEIM_DRIVER, EDK_COMPONENT_TYPE_PIC_PEIM, EDK_COMPONENT_TYPE_RELOCATABLE_PEIM, \\r
- "PE32_PEIM", EDK_COMPONENT_TYPE_BS_DRIVER, EDK_COMPONENT_TYPE_RT_DRIVER, EDK_COMPONENT_TYPE_SAL_RT_DRIVER, EDK_COMPONENT_TYPE_APPLICATION, "ACPITABLE", SUP_MODULE_SMM_CORE, SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE):\r
+ if self._Token.upper() not in {\r
+ SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM,\r
+ SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER,\r
+ SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_DXE_SMM_DRIVER,\r
+ SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_UEFI_DRIVER,\r
+ SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_USER_DEFINED,\r
+ TAB_DEFAULT, SUP_MODULE_BASE,\r
+ EDK_COMPONENT_TYPE_SECURITY_CORE,\r
+ EDK_COMPONENT_TYPE_COMBINED_PEIM_DRIVER,\r
+ EDK_COMPONENT_TYPE_PIC_PEIM,\r
+ EDK_COMPONENT_TYPE_RELOCATABLE_PEIM, "PE32_PEIM",\r
+ EDK_COMPONENT_TYPE_BS_DRIVER, EDK_COMPONENT_TYPE_RT_DRIVER,\r
+ EDK_COMPONENT_TYPE_SAL_RT_DRIVER,\r
+ EDK_COMPONENT_TYPE_APPLICATION, "ACPITABLE",\r
+ SUP_MODULE_SMM_CORE, SUP_MODULE_MM_STANDALONE,\r
+ SUP_MODULE_MM_CORE_STANDALONE}:\r
raise Warning("Unknown Module type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
return self._Token\r
\r
raise Warning("expected FFS type", self.FileName, self.CurrentLineNumber)\r
\r
Type = self._Token.strip().upper()\r
- if Type not in ("RAW", "FREEFORM", SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM,\\r
- "PEI_DXE_COMBO", "DRIVER", SUP_MODULE_DXE_CORE, EDK_COMPONENT_TYPE_APPLICATION, "FV_IMAGE", "SMM", SUP_MODULE_SMM_CORE, SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE):\r
+ if Type not in {"RAW", "FREEFORM", SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM,\r
+ "PEI_DXE_COMBO", "DRIVER", SUP_MODULE_DXE_CORE, EDK_COMPONENT_TYPE_APPLICATION,\r
+ "FV_IMAGE", "SMM", SUP_MODULE_SMM_CORE, SUP_MODULE_MM_STANDALONE,\r
+ SUP_MODULE_MM_CORE_STANDALONE}:\r
raise Warning("Unknown FV type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
\r
if not self._IsToken(TAB_EQUAL_SPLIT):\r
\r
SectionName = self._Token\r
\r
- if SectionName not in ("COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
- BINARY_FILE_TYPE_UI, BINARY_FILE_TYPE_PEI_DEPEX, "VERSION", "SUBTYPE_GUID", BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if SectionName not in {\r
+ "COMPAT16", BINARY_FILE_TYPE_PE32,\r
+ BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE",\r
+ "RAW",BINARY_FILE_TYPE_DXE_DEPEX, BINARY_FILE_TYPE_UI,\r
+ BINARY_FILE_TYPE_PEI_DEPEX, "VERSION", "SUBTYPE_GUID",\r
+ BINARY_FILE_TYPE_SMM_DEPEX}:\r
raise Warning("Unknown leaf section name '%s'" % SectionName, self.FileName, self.CurrentLineNumber)\r
\r
\r
return False\r
SectionName = self._Token\r
\r
- if SectionName not in ("COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
- BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, BINARY_FILE_TYPE_GUID, BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if SectionName not in {\r
+ "COMPAT16", BINARY_FILE_TYPE_PE32,\r
+ BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE",\r
+ "RAW",BINARY_FILE_TYPE_DXE_DEPEX, BINARY_FILE_TYPE_UI,\r
+ BINARY_FILE_TYPE_PEI_DEPEX, "VERSION", "SUBTYPE_GUID",\r
+ BINARY_FILE_TYPE_SMM_DEPEX, BINARY_FILE_TYPE_GUID}:\r
self._UndoToken()\r
return False\r
\r
if self._IsToken(TAB_VALUE_SPLIT):\r
FvImageSectionObj.FvFileExtension = self._GetFileExtension()\r
elif self._GetNextToken():\r
- if self._Token not in ("}", "COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
- BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, BINARY_FILE_TYPE_GUID, BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if self._Token not in {\r
+ "}", "COMPAT16", BINARY_FILE_TYPE_PE32,\r
+ BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE,\r
+ "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\r
+ BINARY_FILE_TYPE_UI, "VERSION",\r
+ BINARY_FILE_TYPE_PEI_DEPEX, BINARY_FILE_TYPE_GUID,\r
+ BINARY_FILE_TYPE_SMM_DEPEX}:\r
FvImageSectionObj.FvFileName = self._Token\r
else:\r
self._UndoToken()\r
if self._IsToken(TAB_VALUE_SPLIT):\r
EfiSectionObj.FileExtension = self._GetFileExtension()\r
elif self._GetNextToken():\r
- if self._Token not in ("}", "COMPAT16", BINARY_FILE_TYPE_PE32, BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE, "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\\r
- BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, BINARY_FILE_TYPE_GUID, BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if self._Token not in {\r
+ "}", "COMPAT16", BINARY_FILE_TYPE_PE32,\r
+ BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_TE,\r
+ "FV_IMAGE", "RAW", BINARY_FILE_TYPE_DXE_DEPEX,\r
+ BINARY_FILE_TYPE_UI, "VERSION",\r
+ BINARY_FILE_TYPE_PEI_DEPEX, BINARY_FILE_TYPE_GUID,\r
+ BINARY_FILE_TYPE_SMM_DEPEX}:\r
\r
if self._Token.startswith('PCD'):\r
self._UndoToken()\r
#\r
@staticmethod\r
def _RuleSectionCouldBeOptional(SectionType):\r
- if SectionType in (BINARY_FILE_TYPE_DXE_DEPEX, BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, "RAW", BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if SectionType in {BINARY_FILE_TYPE_DXE_DEPEX, BINARY_FILE_TYPE_UI, "VERSION", BINARY_FILE_TYPE_PEI_DEPEX, "RAW", BINARY_FILE_TYPE_SMM_DEPEX}:\r
return True\r
else:\r
return False\r
#\r
@staticmethod\r
def _RuleSectionCouldHaveBuildNum(SectionType):\r
- if SectionType in ("VERSION"):\r
+ if SectionType == "VERSION":\r
return True\r
else:\r
return False\r
#\r
@staticmethod\r
def _RuleSectionCouldHaveString(SectionType):\r
- if SectionType in (BINARY_FILE_TYPE_UI, "VERSION"):\r
+ if SectionType in {BINARY_FILE_TYPE_UI, "VERSION"}:\r
return True\r
else:\r
return False\r
#\r
def _CheckRuleSectionFileType(self, SectionType, FileType):\r
if SectionType == "COMPAT16":\r
- if FileType not in ("COMPAT16", "SEC_COMPAT16"):\r
+ if FileType not in {"COMPAT16", "SEC_COMPAT16"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_PE32:\r
- if FileType not in (BINARY_FILE_TYPE_PE32, "SEC_PE32"):\r
+ if FileType not in {BINARY_FILE_TYPE_PE32, "SEC_PE32"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_PIC:\r
- if FileType not in (BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_PIC):\r
+ if FileType not in {BINARY_FILE_TYPE_PIC, BINARY_FILE_TYPE_PIC}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_TE:\r
- if FileType not in (BINARY_FILE_TYPE_TE, "SEC_TE"):\r
+ if FileType not in {BINARY_FILE_TYPE_TE, "SEC_TE"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == "RAW":\r
- if FileType not in (BINARY_FILE_TYPE_BIN, "SEC_BIN", "RAW", "ASL", "ACPI"):\r
+ if FileType not in {BINARY_FILE_TYPE_BIN, "SEC_BIN", "RAW", "ASL", "ACPI"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_DXE_DEPEX or SectionType == BINARY_FILE_TYPE_SMM_DEPEX:\r
- if FileType not in (BINARY_FILE_TYPE_DXE_DEPEX, "SEC_DXE_DEPEX", BINARY_FILE_TYPE_SMM_DEPEX):\r
+ if FileType not in {BINARY_FILE_TYPE_DXE_DEPEX, "SEC_DXE_DEPEX", BINARY_FILE_TYPE_SMM_DEPEX}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_UI:\r
- if FileType not in (BINARY_FILE_TYPE_UI, "SEC_UI"):\r
+ if FileType not in {BINARY_FILE_TYPE_UI, "SEC_UI"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == "VERSION":\r
- if FileType not in ("VERSION", "SEC_VERSION"):\r
+ if FileType not in {"VERSION", "SEC_VERSION"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_PEI_DEPEX:\r
- if FileType not in (BINARY_FILE_TYPE_PEI_DEPEX, "SEC_PEI_DEPEX"):\r
+ if FileType not in {BINARY_FILE_TYPE_PEI_DEPEX, "SEC_PEI_DEPEX"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
elif SectionType == BINARY_FILE_TYPE_GUID:\r
- if FileType not in (BINARY_FILE_TYPE_PE32, "SEC_GUID"):\r
+ if FileType not in {BINARY_FILE_TYPE_PE32, "SEC_GUID"}:\r
raise Warning("Incorrect section file type '%s'" % FileType, self.FileName, self.CurrentLineNumber)\r
\r
## _GetRuleEncapsulationSection() method\r
# @retval False Not able to find a VTF\r
#\r
def _GetVtf(self):\r
+ HW_ARCH_SET = {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_AARCH64}\r
if not self._GetNextToken():\r
return False\r
\r
raise Warning("expected '.'", self.FileName, self.CurrentLineNumber)\r
\r
Arch = self._SkippedChars.rstrip(TAB_SPLIT).upper()\r
- if Arch not in {TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_AARCH64}:\r
+ if Arch not in HW_ARCH_SET:\r
raise Warning("Unknown Arch '%s'" % Arch, self.FileName, self.CurrentLineNumber)\r
\r
if not self._GetNextWord():\r
if self._IsToken(TAB_COMMA_SPLIT):\r
if not self._GetNextWord():\r
raise Warning("expected Arch list", self.FileName, self.CurrentLineNumber)\r
- if self._Token.upper() not in (TAB_ARCH_IA32, TAB_ARCH_X64, TAB_ARCH_IPF, TAB_ARCH_ARM, TAB_ARCH_AARCH64):\r
+ if self._Token.upper() not in HW_ARCH_SET:\r
raise Warning("Unknown Arch '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
VtfObj.ArchList = self._Token.upper()\r
\r
if not self._GetNextWord():\r
raise Warning("Expected Region Name", self.FileName, self.CurrentLineNumber)\r
\r
- if self._Token not in ("F", "N", "S"): #, "H", "L", "PH", "PL"): not support\r
+ if self._Token not in {"F", "N", "S"}: #, "H", "L", "PH", "PL"): not support\r
raise Warning("Unknown location type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
\r
CompStatementObj.FilePos = self._Token\r
\r
if not self._GetNextToken():\r
raise Warning("expected Component type", self.FileName, self.CurrentLineNumber)\r
- if self._Token not in ("FIT", "PAL_B", "PAL_A", "OEM"):\r
+ if self._Token not in {"FIT", "PAL_B", "PAL_A", "OEM"}:\r
if not self._Token.startswith("0x") or len(self._Token) < 3 or len(self._Token) > 4 or \\r
not self._Token[2] in hexdigits or not self._Token[-1] in hexdigits:\r
raise Warning("Unknown location type '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
\r
if not self._GetNextToken():\r
raise Warning("expected Component CS", self.FileName, self.CurrentLineNumber)\r
- if self._Token not in ("1", "0"):\r
+ if self._Token not in {"1", "0"}:\r
raise Warning("Unknown Component CS '%s'" % self._Token, self.FileName, self.CurrentLineNumber)\r
CompStatementObj.CompCs = self._Token\r
\r
# @param FvList referenced FV by section\r
#\r
def _GetReferencedFdFvTupleFromSection(self, FfsFile, FdList = [], FvList = []):\r
- SectionStack = []\r
- SectionStack.extend(FfsFile.SectionList)\r
+ SectionStack = list(FfsFile.SectionList)\r
while SectionStack != []:\r
SectionObj = SectionStack.pop()\r
if isinstance(SectionObj, FvImageSection):\r
MaxLength = len (self.Profile.FvDict)\r
for FvName in self.Profile.FvDict:\r
LogStr = "\nCycle Reference Checking for FV: %s\n" % FvName\r
- RefFvStack = []\r
- RefFvStack.append(FvName)\r
- FdAnalyzedList = []\r
+ RefFvStack = set(FvName)\r
+ FdAnalyzedList = set()\r
\r
Index = 0\r
while RefFvStack and Index < MaxLength:\r
for FvNameInFd in FvInFdList:\r
LogStr += "FD %s contains FV %s\n" % (RefFdName, FvNameInFd)\r
if FvNameInFd not in RefFvStack:\r
- RefFvStack.append(FvNameInFd)\r
+ RefFvStack.add(FvNameInFd)\r
\r
if FvName in RefFvStack or FvNameFromStack in RefFvStack:\r
EdkLogger.info(LogStr)\r
return True\r
- FdAnalyzedList.append(RefFdName)\r
+ FdAnalyzedList.add(RefFdName)\r
\r
for RefFvName in RefFvList:\r
LogStr += "FV %s contains FV %s\n" % (FvNameFromStack, RefFvName)\r
if RefFvName not in RefFvStack:\r
- RefFvStack.append(RefFvName)\r
+ RefFvStack.add(RefFvName)\r
\r
if FvName in RefFvStack or FvNameFromStack in RefFvStack:\r
EdkLogger.info(LogStr)\r
# Capsule image to be checked.\r
#\r
LogStr = "\n\n\nCycle Reference Checking for Capsule: %s\n" % CapName\r
- RefCapStack = []\r
- RefCapStack.append(CapName)\r
- FdAnalyzedList = []\r
- FvAnalyzedList = []\r
+ RefCapStack = {CapName}\r
+ FdAnalyzedList = set()\r
+ FvAnalyzedList = set()\r
\r
Index = 0\r
- while RefCapStack != [] and Index < MaxLength:\r
+ while RefCapStack and Index < MaxLength:\r
Index = Index + 1\r
CapNameFromStack = RefCapStack.pop()\r
if CapNameFromStack.upper() in self.Profile.CapsuleDict:\r
continue\r
\r
LogStr += "Capsule %s contains FD %s\n" % (CapNameFromStack, RefFdName)\r
- CapInFdList = self._GetCapInFd(RefFdName)\r
- if CapInFdList != []:\r
- for CapNameInFd in CapInFdList:\r
- LogStr += "FD %s contains Capsule %s\n" % (RefFdName, CapNameInFd)\r
- if CapNameInFd not in RefCapStack:\r
- RefCapStack.append(CapNameInFd)\r
-\r
- if CapName in RefCapStack or CapNameFromStack in RefCapStack:\r
- EdkLogger.info(LogStr)\r
- return True\r
-\r
- FvInFdList = self._GetFvInFd(RefFdName)\r
- if FvInFdList != []:\r
- for FvNameInFd in FvInFdList:\r
- LogStr += "FD %s contains FV %s\n" % (RefFdName, FvNameInFd)\r
- if FvNameInFd not in RefFvList:\r
- RefFvList.append(FvNameInFd)\r
-\r
- FdAnalyzedList.append(RefFdName)\r
+ for CapNameInFd in self._GetCapInFd(RefFdName):\r
+ LogStr += "FD %s contains Capsule %s\n" % (RefFdName, CapNameInFd)\r
+ if CapNameInFd not in RefCapStack:\r
+ RefCapStack.append(CapNameInFd)\r
+\r
+ if CapName in RefCapStack or CapNameFromStack in RefCapStack:\r
+ EdkLogger.info(LogStr)\r
+ return True\r
+\r
+ for FvNameInFd in self._GetFvInFd(RefFdName):\r
+ LogStr += "FD %s contains FV %s\n" % (RefFdName, FvNameInFd)\r
+ if FvNameInFd not in RefFvList:\r
+ RefFvList.append(FvNameInFd)\r
+\r
+ FdAnalyzedList.add(RefFdName)\r
#\r
# the number of the parsed FV and FD image\r
#\r
else:\r
continue\r
self._GetReferencedFdFvTuple(FvObj, RefFdList, RefFvList)\r
- FvAnalyzedList.append(RefFvName)\r
+ FvAnalyzedList.add(RefFvName)\r
\r
return False\r
\r