]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools: DataType - cleanup list constants
[mirror_edk2.git] / BaseTools / Source / Python / GenFds / FdfParser.py
index dce41701a510ff2af605a9b8601e6180fc6abf10..469cb128ba5fc1f78d45a01034ea67876e39b8d8 100644 (file)
@@ -52,6 +52,7 @@ from Common.String import NormPath
 import Common.GlobalData as GlobalData\r
 from Common.Expression import *\r
 from Common import GlobalData\r
+from Common.DataType import *\r
 from Common.String import ReplaceMacro\r
 import uuid\r
 from Common.Misc import tdict\r
@@ -511,8 +512,8 @@ class FdfParser:
         if Item == '' or Item == 'RULE':\r
             return\r
 \r
-        if Item == 'DEFINES':\r
-            self.__CurSection = ['COMMON', 'COMMON', 'COMMON']\r
+        if Item == TAB_COMMON_DEFINES.upper():\r
+            self.__CurSection = [TAB_COMMON, TAB_COMMON, TAB_COMMON]\r
         elif Item == 'VTF' and len(ItemList) == 3:\r
             UiName = ItemList[2]\r
             Pos = UiName.find(',')\r
@@ -520,9 +521,9 @@ class FdfParser:
                 UiName = UiName[:Pos]\r
             self.__CurSection = ['VTF', UiName, ItemList[1]]\r
         elif len(ItemList) > 1:\r
-            self.__CurSection = [ItemList[0], ItemList[1], 'COMMON']\r
+            self.__CurSection = [ItemList[0], ItemList[1], TAB_COMMON]\r
         elif len(ItemList) > 0:\r
-            self.__CurSection = [ItemList[0], 'DUMMY', 'COMMON']\r
+            self.__CurSection = [ItemList[0], 'DUMMY', TAB_COMMON]\r
 \r
     ## PreprocessFile() method\r
     #\r
@@ -886,7 +887,7 @@ class FdfParser:
 \r
         if self.__CurSection:\r
             # Defines macro\r
-            ScopeMacro = self.__MacroDict['COMMON', 'COMMON', 'COMMON']\r
+            ScopeMacro = self.__MacroDict[TAB_COMMON, TAB_COMMON, TAB_COMMON]\r
             if ScopeMacro:\r
                 MacroDict.update(ScopeMacro)\r
     \r
@@ -1133,7 +1134,7 @@ class FdfParser:
 \r
     @staticmethod\r
     def __Verify(Name, Value, Scope):\r
-        if Scope in ['UINT64', 'UINT8']:\r
+        if Scope in [TAB_UINT64, TAB_UINT8]:\r
             ValueNumber = 0\r
             try:\r
                 ValueNumber = int (Value, 0)\r
@@ -1141,10 +1142,10 @@ class FdfParser:
                 EdkLogger.error("FdfParser", FORMAT_INVALID, "The value is not valid dec or hex number for %s." % Name)\r
             if ValueNumber < 0:\r
                 EdkLogger.error("FdfParser", FORMAT_INVALID, "The value can't be set to negative value for %s." % Name)\r
-            if Scope == 'UINT64':\r
+            if Scope == TAB_UINT64:\r
                 if ValueNumber >= 0x10000000000000000:\r
                     EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name)\r
-            if Scope == 'UINT8':\r
+            if Scope == TAB_UINT8:\r
                 if ValueNumber >= 0x100:\r
                     EdkLogger.error("FdfParser", FORMAT_INVALID, "Too large value for %s." % Name)\r
             return True\r
@@ -1182,13 +1183,6 @@ class FdfParser:
 \r
         self.__GetOneChar()\r
 \r
-    def __IsHex(self, HexStr):\r
-        if not HexStr.upper().startswith("0X"):\r
-            return False\r
-        if len(self.__Token) <= 2:\r
-            return False\r
-        return True if all(x in string.hexdigits for x in HexStr[2:]) else False\r
-\r
     ## __GetNextHexNumber() method\r
     #\r
     #   Get next HEX data before a seperator\r
@@ -1201,7 +1195,7 @@ class FdfParser:
     def __GetNextHexNumber(self):\r
         if not self.__GetNextToken():\r
             return False\r
-        if self.__IsHex(self.__Token):\r
+        if gHexPatternAll.match(self.__Token):\r
             return True\r
         else:\r
             self.__UndoToken()\r
@@ -2632,7 +2626,7 @@ class FdfParser:
     #\r
     @staticmethod\r
     def __FileCouldHaveRelocFlag (FileType):\r
-        if FileType in ('SEC', 'PEI_CORE', '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
@@ -3401,7 +3395,7 @@ class FdfParser:
         if not self.__GetNextToken():\r
             raise Warning("expected FV name", self.FileName, self.CurrentLineNumber)\r
 \r
-        if self.__Token.upper() not in self.Profile.FvDict.keys():\r
+        if self.__Token.upper() not in self.Profile.FvDict:\r
             raise Warning("FV name does not exist", self.FileName, self.CurrentLineNumber)\r
 \r
         CapsuleFv = CapsuleData.CapsuleFv()\r
@@ -3435,7 +3429,7 @@ class FdfParser:
         if not self.__GetNextToken():\r
             raise Warning("expected FD name", self.FileName, self.CurrentLineNumber)\r
 \r
-        if self.__Token.upper() not in self.Profile.FdDict.keys():\r
+        if self.__Token.upper() not in self.Profile.FdDict:\r
             raise Warning("FD name does not exist", self.FileName, self.CurrentLineNumber)\r
 \r
         CapsuleFd = CapsuleData.CapsuleFd()\r
@@ -3586,7 +3580,7 @@ class FdfParser:
             raise Warning("expected '.'", self.FileName, self.CurrentLineNumber)\r
 \r
         Arch = self.__SkippedChars.rstrip(".")\r
-        if Arch.upper() not in ("IA32", "X64", "IPF", "EBC", "ARM", "AARCH64", "COMMON"):\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
@@ -3632,12 +3626,12 @@ class FdfParser:
 \r
         if not self.__GetNextWord():\r
             raise Warning("expected Module type", self.FileName, self.CurrentLineNumber)\r
-        if self.__Token.upper() not in ("SEC", "PEI_CORE", "PEIM", "DXE_CORE", \\r
-                             "DXE_DRIVER", "DXE_SAL_DRIVER", \\r
-                             "DXE_SMM_DRIVER", "DXE_RUNTIME_DRIVER", \\r
-                             "UEFI_DRIVER", "UEFI_APPLICATION", "USER_DEFINED", "DEFAULT", "BASE", \\r
-                             "SECURITY_CORE", "COMBINED_PEIM_DRIVER", "PIC_PEIM", "RELOCATABLE_PEIM", \\r
-                                        "PE32_PEIM", "BS_DRIVER", "RT_DRIVER", "SAL_RT_DRIVER", "APPLICATION", "ACPITABLE", "SMM_CORE", "MM_STANDALONE", "MM_CORE_STANDALONE"):\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, "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
             raise Warning("Unknown Module type '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
         return self.__Token\r
 \r
@@ -3679,8 +3673,8 @@ class FdfParser:
             raise Warning("expected FFS type", self.FileName, self.CurrentLineNumber)\r
 \r
         Type = self.__Token.strip().upper()\r
-        if Type not in ("RAW", "FREEFORM", "SEC", "PEI_CORE", "PEIM",\\r
-                             "PEI_DXE_COMBO", "DRIVER", "DXE_CORE", "APPLICATION", "FV_IMAGE", "SMM", "SMM_CORE", "MM_STANDALONE", "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, "FV_IMAGE", "SMM", SUP_MODULE_SMM_CORE, SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE):\r
             raise Warning("Unknown FV type '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)\r
 \r
         if not self.__IsToken("="):\r
@@ -4531,7 +4525,7 @@ class FdfParser:
     def __GetCapInFd (self, FdName):\r
 \r
         CapList = []\r
-        if FdName.upper() in self.Profile.FdDict.keys():\r
+        if FdName.upper() in self.Profile.FdDict:\r
             FdObj = self.Profile.FdDict[FdName.upper()]\r
             for elementRegion in FdObj.RegionList:\r
                 if elementRegion.RegionType == 'CAPSULE':\r
@@ -4578,7 +4572,7 @@ class FdfParser:
     def __GetFvInFd (self, FdName):\r
 \r
         FvList = []\r
-        if FdName.upper() in self.Profile.FdDict.keys():\r
+        if FdName.upper() in self.Profile.FdDict:\r
             FdObj = self.Profile.FdDict[FdName.upper()]\r
             for elementRegion in FdObj.RegionList:\r
                 if elementRegion.RegionType == 'FV':\r
@@ -4647,7 +4641,7 @@ class FdfParser:
         # Check the cycle between FV and FD image\r
         #\r
         MaxLength = len (self.Profile.FvDict)\r
-        for FvName in self.Profile.FvDict.keys():\r
+        for FvName in self.Profile.FvDict:\r
             LogStr = "\nCycle Reference Checking for FV: %s\n" % FvName\r
             RefFvStack = []\r
             RefFvStack.append(FvName)\r
@@ -4657,7 +4651,7 @@ class FdfParser:
             while RefFvStack != [] and Index < MaxLength:\r
                 Index = Index + 1\r
                 FvNameFromStack = RefFvStack.pop()\r
-                if FvNameFromStack.upper() in self.Profile.FvDict.keys():\r
+                if FvNameFromStack.upper() in self.Profile.FvDict:\r
                     FvObj = self.Profile.FvDict[FvNameFromStack.upper()]\r
                 else:\r
                     continue\r
@@ -4696,7 +4690,7 @@ class FdfParser:
         # Check the cycle between Capsule and FD image\r
         #\r
         MaxLength = len (self.Profile.CapsuleDict)\r
-        for CapName in self.Profile.CapsuleDict.keys():\r
+        for CapName in self.Profile.CapsuleDict:\r
             #\r
             # Capsule image to be checked.\r
             #\r
@@ -4710,7 +4704,7 @@ class FdfParser:
             while RefCapStack != [] and Index < MaxLength:\r
                 Index = Index + 1\r
                 CapNameFromStack = RefCapStack.pop()\r
-                if CapNameFromStack.upper() in self.Profile.CapsuleDict.keys():\r
+                if CapNameFromStack.upper() in self.Profile.CapsuleDict:\r
                     CapObj = self.Profile.CapsuleDict[CapNameFromStack.upper()]\r
                 else:\r
                     continue\r
@@ -4755,7 +4749,7 @@ class FdfParser:
                         if RefFvName in FvAnalyzedList:\r
                             continue\r
                         LogStr += "Capsule %s contains FV %s\n" % (CapNameFromStack, RefFvName)\r
-                        if RefFvName.upper() in self.Profile.FvDict.keys():\r
+                        if RefFvName.upper() in self.Profile.FvDict:\r
                             FvObj = self.Profile.FvDict[RefFvName.upper()]\r
                         else:\r
                             continue\r