]> git.proxmox.com Git - mirror_edk2.git/commitdiff
BaseTools: replace 'UINT8','UINT16','UINT32','UINT64','VOID*' with shared constants.
authorCarsey, Jaben <jaben.carsey@intel.com>
Wed, 11 Apr 2018 16:14:05 +0000 (09:14 -0700)
committerYonghong Zhu <yonghong.zhu@intel.com>
Mon, 23 Apr 2018 03:11:20 +0000 (11:11 +0800)
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
16 files changed:
BaseTools/Source/Python/AutoGen/AutoGen.py
BaseTools/Source/Python/AutoGen/GenC.py
BaseTools/Source/Python/AutoGen/GenPcdDb.py
BaseTools/Source/Python/AutoGen/GenVar.py
BaseTools/Source/Python/AutoGen/ValidCheckingInfoObject.py
BaseTools/Source/Python/Common/DataType.py
BaseTools/Source/Python/Common/Expression.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Common/VpdInfoFile.py
BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
BaseTools/Source/Python/GenFds/FdfParser.py
BaseTools/Source/Python/GenFds/FfsInfStatement.py
BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
BaseTools/Source/Python/Workspace/DscBuildData.py
BaseTools/Source/Python/build/BuildReport.py

index 6152225943cf51a0f52b161ffd887a98237c1f1d..56b5d399727e4f68af31d654c4115047286267c6 100644 (file)
@@ -1394,7 +1394,7 @@ class PlatformAutoGen(AutoGen):
 \r
             for PcdFromModule in M.ModulePcdList + M.LibraryPcdList:\r
                 # make sure that the "VOID*" kind of datum has MaxDatumSize set\r
-                if PcdFromModule.DatumType == "VOID*" and PcdFromModule.MaxDatumSize in [None, '']:\r
+                if PcdFromModule.DatumType == TAB_VOID and PcdFromModule.MaxDatumSize in [None, '']:\r
                     NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, F))\r
 \r
                 # Check the PCD from Binary INF or Source INF\r
@@ -1471,7 +1471,7 @@ class PlatformAutoGen(AutoGen):
                                         ExtraData="\n\tExisted %s PCD %s in:\n\t\t%s\n"\r
                                         % (PcdFromModule.Type, PcdFromModule.TokenCName, InfName))\r
                     # make sure that the "VOID*" kind of datum has MaxDatumSize set\r
-                    if PcdFromModule.DatumType == "VOID*" and PcdFromModule.MaxDatumSize in [None, '']:\r
+                    if PcdFromModule.DatumType == TAB_VOID and PcdFromModule.MaxDatumSize in [None, '']:\r
                         NoDatumTypePcdList.add("%s.%s [%s]" % (PcdFromModule.TokenSpaceGuidCName, PcdFromModule.TokenCName, InfName))\r
                     if M.ModuleType in ["PEIM", "PEI_CORE"]:\r
                         PcdFromModule.Phase = "PEI"\r
@@ -1536,7 +1536,7 @@ class PlatformAutoGen(AutoGen):
 \r
         for item in self._PlatformPcds:\r
             if self._PlatformPcds[item].DatumType and self._PlatformPcds[item].DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
-                self._PlatformPcds[item].DatumType = "VOID*"\r
+                self._PlatformPcds[item].DatumType = TAB_VOID\r
 \r
         if (self.Workspace.ArchList[-1] == self.Arch): \r
             for Pcd in self._DynamicPcdList:\r
@@ -1545,7 +1545,7 @@ class PlatformAutoGen(AutoGen):
                 Sku.VpdOffset = Sku.VpdOffset.strip()\r
 \r
                 if Pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
-                    Pcd.DatumType = "VOID*"\r
+                    Pcd.DatumType = TAB_VOID\r
 \r
                     # if found PCD which datum value is unicode string the insert to left size of UnicodeIndex\r
                     # if found HII type PCD then insert to right of UnicodeIndex\r
@@ -1697,7 +1697,7 @@ class PlatformAutoGen(AutoGen):
                                 SkuValueMap[PcdValue].append(Sku)\r
                                 if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":\r
                                     NeedProcessVpdMapFile = True \r
-                            if DscPcdEntry.DatumType == 'VOID*' and PcdValue.startswith("L"):\r
+                            if DscPcdEntry.DatumType == TAB_VOID and PcdValue.startswith("L"):\r
                                 UnicodePcdArray.add(DscPcdEntry)\r
                             elif len(Sku.VariableName) > 0:\r
                                 HiiPcdArray.add(DscPcdEntry)\r
@@ -1744,10 +1744,10 @@ class PlatformAutoGen(AutoGen):
                 Sku.VpdOffset = Sku.VpdOffset.strip()\r
 \r
                 if Pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
-                    Pcd.DatumType = "VOID*"\r
+                    Pcd.DatumType = TAB_VOID\r
 \r
                 PcdValue = Sku.DefaultValue\r
-                if Pcd.DatumType == 'VOID*' and PcdValue.startswith("L"):\r
+                if Pcd.DatumType == TAB_VOID and PcdValue.startswith("L"):\r
                     # if found PCD which datum value is unicode string the insert to left size of UnicodeIndex\r
                     UnicodePcdArray.add(Pcd)\r
                 elif len(Sku.VariableName) > 0:\r
@@ -2369,7 +2369,7 @@ class PlatformAutoGen(AutoGen):
             ToPcd.validlists = FromPcd.validlists\r
             ToPcd.expressions = FromPcd.expressions\r
 \r
-        if FromPcd is not None and ToPcd.DatumType == "VOID*" and ToPcd.MaxDatumSize in ['', None]:\r
+        if FromPcd is not None and ToPcd.DatumType == TAB_VOID and ToPcd.MaxDatumSize in ['', None]:\r
             EdkLogger.debug(EdkLogger.DEBUG_9, "No MaxDatumSize specified for PCD %s.%s" \\r
                             % (ToPcd.TokenSpaceGuidCName, TokenCName))\r
             Value = ToPcd.DefaultValue\r
@@ -2445,7 +2445,7 @@ class PlatformAutoGen(AutoGen):
         # use PCD value to calculate the MaxDatumSize when it is not specified\r
         for Name, Guid in Pcds:\r
             Pcd = Pcds[Name, Guid]\r
-            if Pcd.DatumType == "VOID*" and Pcd.MaxDatumSize in ['', None]:\r
+            if Pcd.DatumType == TAB_VOID and Pcd.MaxDatumSize in ['', None]:\r
                 Pcd.MaxSizeUserSet = None\r
                 Value = Pcd.DefaultValue\r
                 if Value in [None, '']:\r
@@ -4113,13 +4113,13 @@ class ModuleAutoGen(AutoGen):
                     elif BoolValue == 'FALSE':\r
                         Pcd.DefaultValue = '0'\r
 \r
-                if Pcd.DatumType in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN']:\r
+                if Pcd.DatumType in TAB_PCD_NUMERIC_TYPES:\r
                     HexFormat = '0x%02x'\r
-                    if Pcd.DatumType == 'UINT16':\r
+                    if Pcd.DatumType == TAB_UINT16:\r
                         HexFormat = '0x%04x'\r
-                    elif Pcd.DatumType == 'UINT32':\r
+                    elif Pcd.DatumType == TAB_UINT32:\r
                         HexFormat = '0x%08x'\r
-                    elif Pcd.DatumType == 'UINT64':\r
+                    elif Pcd.DatumType == TAB_UINT64:\r
                         HexFormat = '0x%016x'\r
                     PcdValue = HexFormat % int(Pcd.DefaultValue, 0)\r
                 else:\r
index 6706629722fcc7581054059becaa7cd39baf498d..73d7699ad01bfe60d68545f672399a1a43bd1754 100644 (file)
@@ -41,8 +41,6 @@ gItemTypeStringDatabase  = {
     TAB_PCDS_DYNAMIC_EX_HII     :   '',\r
 }\r
 \r
-_NumericDataTypesList = ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN']\r
-\r
 ## Dynamic PCD types\r
 gDynamicPcd = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_VPD, TAB_PCDS_DYNAMIC_HII]\r
 \r
@@ -50,9 +48,9 @@ gDynamicPcd = [TAB_PCDS_DYNAMIC, TAB_PCDS_DYNAMIC_DEFAULT, TAB_PCDS_DYNAMIC_VPD,
 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 = {'UINT8':'8','UINT16':'16','UINT32':'32','UINT64':'64','BOOLEAN':'BOOLEAN','VOID*':'8'}\r
-gDatumSizeStringDatabaseH = {'UINT8':'8','UINT16':'16','UINT32':'32','UINT64':'64','BOOLEAN':'BOOL','VOID*':'PTR'}\r
-gDatumSizeStringDatabaseLib = {'UINT8':'8','UINT16':'16','UINT32':'32','UINT64':'64','BOOLEAN':'Bool','VOID*':'Ptr'}\r
+gDatumSizeStringDatabase = {TAB_UINT8:'8',TAB_UINT16:'16',TAB_UINT32:'32',TAB_UINT64:'64','BOOLEAN':'BOOLEAN',TAB_VOID:'8'}\r
+gDatumSizeStringDatabaseH = {TAB_UINT8:'8',TAB_UINT16:'16',TAB_UINT32:'32',TAB_UINT64:'64','BOOLEAN':'BOOL',TAB_VOID:'PTR'}\r
+gDatumSizeStringDatabaseLib = {TAB_UINT8:'8',TAB_UINT16:'16',TAB_UINT32:'32',TAB_UINT64:'64','BOOLEAN':'Bool',TAB_VOID:'Ptr'}\r
 \r
 ## AutoGen File Header Templates\r
 gAutoGenHeaderString = TemplateString("""\\r
@@ -871,7 +869,7 @@ def DynExPcdTokenNumberMapping(Info, AutoGenH):
                 TokenCNameList.add(TokenCName)\r
 \r
 def GetPcdSize(Pcd):\r
-    if Pcd.DatumType not in _NumericDataTypesList:\r
+    if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
         Value = Pcd.DefaultValue\r
         if Value in [None, '']:\r
             return 1\r
@@ -881,13 +879,13 @@ def GetPcdSize(Pcd):
             return len(Value.split(','))\r
         else:\r
             return len(Value) - 1\r
-    if Pcd.DatumType == 'UINT64':\r
+    if Pcd.DatumType == TAB_UINT64:\r
         return 8\r
-    if Pcd.DatumType == 'UINT32':\r
+    if Pcd.DatumType == TAB_UINT32:\r
         return 4\r
-    if Pcd.DatumType == 'UINT16':\r
+    if Pcd.DatumType == TAB_UINT16:\r
         return 2\r
-    if Pcd.DatumType == 'UINT8':\r
+    if Pcd.DatumType == TAB_UINT8:\r
         return 1\r
     if Pcd.DatumType == 'BOOLEAN':\r
         return 1\r
@@ -955,11 +953,11 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                         "Unknown PCD type [%s] of PCD %s.%s" % (Pcd.Type, Pcd.TokenSpaceGuidCName, TokenCName),\r
                         ExtraData="[%s]" % str(Info))\r
 \r
-    DatumSize = gDatumSizeStringDatabase[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabase else gDatumSizeStringDatabase['VOID*']\r
-    DatumSizeLib = gDatumSizeStringDatabaseLib[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabaseLib else gDatumSizeStringDatabaseLib['VOID*']\r
-    GetModeName = '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_' + TokenCName\r
-    SetModeName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_' + TokenCName\r
-    SetModeStatusName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_S_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_S_' + TokenCName\r
+    DatumSize = gDatumSizeStringDatabase[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabase else gDatumSizeStringDatabase[TAB_VOID]\r
+    DatumSizeLib = gDatumSizeStringDatabaseLib[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabaseLib else gDatumSizeStringDatabaseLib[TAB_VOID]\r
+    GetModeName = '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[TAB_VOID] + '_' + TokenCName\r
+    SetModeName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[TAB_VOID] + '_' + TokenCName\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
@@ -982,7 +980,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
             AutoGenH.Append('// #define %s  %s\n' % (PcdTokenName, PcdExTokenName))\r
             AutoGenH.Append('// #define %s  LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             AutoGenH.Append('// #define %s  LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
                 AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             else:\r
@@ -992,7 +990,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
             AutoGenH.Append('#define %s  %s\n' % (PcdTokenName, PcdExTokenName))\r
             AutoGenH.Append('#define %s  LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             else:\r
@@ -1011,7 +1009,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
         else:\r
             AutoGenH.Append('#define %s  LibPcdGet%s(%s)\n' % (GetModeName, DatumSizeLib, PcdTokenName))\r
             AutoGenH.Append('#define %s  LibPcdGetSize(%s)\n' % (GetModeSizeName, PcdTokenName))\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSet%s(%s, (SizeOfBuffer), (Buffer))\n' %(SetModeName, DatumSizeLib, PcdTokenName))\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSet%sS(%s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, PcdTokenName))\r
             else:\r
@@ -1035,7 +1033,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
             elif BoolValue == 'FALSE' or BoolValue == '0':\r
                 Value = '0U'\r
 \r
-        if Pcd.DatumType in ['UINT64', 'UINT32', 'UINT16', 'UINT8']:\r
+        if Pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
             try:\r
                 if Value.upper().endswith('L'):\r
                     Value = Value[:-1]\r
@@ -1044,7 +1042,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                 EdkLogger.error("build", AUTOGEN_ERROR,\r
                                 "PCD value is not valid dec or hex number for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),\r
                                 ExtraData="[%s]" % str(Info))\r
-            if Pcd.DatumType == 'UINT64':\r
+            if Pcd.DatumType == TAB_UINT64:\r
                 if ValueNumber < 0:\r
                     EdkLogger.error("build", AUTOGEN_ERROR,\r
                                     "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),\r
@@ -1055,7 +1053,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                                     ExtraData="[%s]" % str(Info))\r
                 if not Value.endswith('ULL'):\r
                     Value += 'ULL'\r
-            elif Pcd.DatumType == 'UINT32':\r
+            elif Pcd.DatumType == TAB_UINT32:\r
                 if ValueNumber < 0:\r
                     EdkLogger.error("build", AUTOGEN_ERROR,\r
                                     "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),\r
@@ -1066,7 +1064,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                                     ExtraData="[%s]" % str(Info))\r
                 if not Value.endswith('U'):\r
                     Value += 'U'\r
-            elif Pcd.DatumType == 'UINT16':\r
+            elif Pcd.DatumType == TAB_UINT16:\r
                 if ValueNumber < 0:\r
                     EdkLogger.error("build", AUTOGEN_ERROR,\r
                                     "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),\r
@@ -1077,7 +1075,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                                     ExtraData="[%s]" % str(Info))\r
                 if not Value.endswith('U'):\r
                     Value += 'U'                    \r
-            elif Pcd.DatumType == 'UINT8':\r
+            elif Pcd.DatumType == TAB_UINT8:\r
                 if ValueNumber < 0:\r
                     EdkLogger.error("build", AUTOGEN_ERROR,\r
                                     "PCD can't be set to negative value for datum type [%s] of PCD %s.%s" % (Pcd.DatumType, Pcd.TokenSpaceGuidCName, TokenCName),\r
@@ -1088,7 +1086,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
                                     ExtraData="[%s]" % str(Info))\r
                 if not Value.endswith('U'):\r
                     Value += 'U'\r
-        if Pcd.DatumType not in _NumericDataTypesList:\r
+        if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
             if Pcd.MaxDatumSize is None or Pcd.MaxDatumSize == '':\r
                 EdkLogger.error("build", AUTOGEN_ERROR,\r
                                 "Unknown [MaxDatumSize] of PCD [%s.%s]" % (Pcd.TokenSpaceGuidCName, TokenCName),\r
@@ -1126,10 +1124,10 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
         # skip casting for fixed at build since it breaks ARM assembly.\r
         # Long term we need PCD macros that work in assembly\r
         #\r
-        elif Pcd.Type != TAB_PCDS_FIXED_AT_BUILD and Pcd.DatumType in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN', 'VOID*']:\r
+        elif Pcd.Type != TAB_PCDS_FIXED_AT_BUILD and Pcd.DatumType in TAB_PCD_NUMERIC_TYPES_VOID:\r
             Value = "((%s)%s)" % (Pcd.DatumType, Value)\r
 \r
-        if Pcd.DatumType not in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN', 'VOID*']:\r
+        if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES_VOID:\r
             # handle structure PCD\r
             if Pcd.MaxDatumSize is None or Pcd.MaxDatumSize == '':\r
                 EdkLogger.error("build", AUTOGEN_ERROR,\r
@@ -1144,7 +1142,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
         else:\r
             PcdValueName = '_PCD_VALUE_' + TokenCName\r
             \r
-        if Pcd.DatumType not in _NumericDataTypesList:\r
+        if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
             #\r
             # For unicode, UINT16 array will be generated, so the alignment of unicode is guaranteed.\r
             #\r
@@ -1191,7 +1189,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
             AutoGenH.Append('#define %s  %s%s\n' % (GetModeName, Type, PcdVariableName))\r
 \r
         if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPatchPcdSetPtrAndSize((VOID *)_gPcd_BinaryPatch_%s, &_gPcd_BinaryPatch_Size_%s, (UINTN)_PCD_PATCHABLE_%s_SIZE, (SizeOfBuffer), (Buffer))\n' % (SetModeName, Pcd.TokenCName, Pcd.TokenCName, Pcd.TokenCName))\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPatchPcdSetPtrAndSizeS((VOID *)_gPcd_BinaryPatch_%s, &_gPcd_BinaryPatch_Size_%s, (UINTN)_PCD_PATCHABLE_%s_SIZE, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, Pcd.TokenCName, Pcd.TokenCName, Pcd.TokenCName))\r
             else:\r
@@ -1254,16 +1252,16 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
                         ExtraData="[%s]" % str(Info))\r
 \r
     DatumType   = Pcd.DatumType\r
-    DatumSize = gDatumSizeStringDatabase[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabase else gDatumSizeStringDatabase['VOID*']\r
-    DatumSizeLib = gDatumSizeStringDatabaseLib[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabaseLib else gDatumSizeStringDatabaseLib['VOID*']\r
-    GetModeName = '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_' + TokenCName\r
-    SetModeName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_' + TokenCName\r
-    SetModeStatusName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_S_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH['VOID*'] + '_S_' + TokenCName\r
+    DatumSize = gDatumSizeStringDatabase[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabase else gDatumSizeStringDatabase[TAB_VOID]\r
+    DatumSizeLib = gDatumSizeStringDatabaseLib[Pcd.DatumType] if Pcd.DatumType in gDatumSizeStringDatabaseLib else gDatumSizeStringDatabaseLib[TAB_VOID]\r
+    GetModeName = '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_GET_MODE_' + gDatumSizeStringDatabaseH[TAB_VOID] + '_' + TokenCName\r
+    SetModeName = '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[Pcd.DatumType] + '_' + TokenCName if Pcd.DatumType in gDatumSizeStringDatabaseH else '_PCD_SET_MODE_' + gDatumSizeStringDatabaseH[TAB_VOID] + '_' + TokenCName\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
     Type = ''\r
     Array = ''\r
-    if Pcd.DatumType not in _NumericDataTypesList:\r
+    if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
         if Pcd.DefaultValue[0]== '{':\r
             Type = '(VOID *)'\r
         Array = '[]'\r
@@ -1291,7 +1289,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
             AutoGenH.Append('// #define %s  %s\n' % (PcdTokenName, PcdExTokenName))\r
             AutoGenH.Append('// #define %s  LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             AutoGenH.Append('// #define %s  LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
                 AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             else:\r
@@ -1301,7 +1299,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
             AutoGenH.Append('#define %s  %s\n' % (PcdTokenName, PcdExTokenName))\r
             AutoGenH.Append('#define %s  LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))\r
             else:\r
@@ -1322,7 +1320,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
         else:\r
             AutoGenH.Append('#define %s  LibPcdGet%s(%s)\n' % (GetModeName, DatumSizeLib, PcdTokenName))\r
             AutoGenH.Append('#define %s  LibPcdGetSize(%s)\n' % (GetModeSizeName, PcdTokenName))\r
-            if DatumType not in _NumericDataTypesList:\r
+            if DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSet%s(%s, (SizeOfBuffer), (Buffer))\n' %(SetModeName, DatumSizeLib, PcdTokenName))\r
                 AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPcdSet%sS(%s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, PcdTokenName))\r
             else:\r
@@ -1331,17 +1329,17 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
     if PcdItemType == TAB_PCDS_PATCHABLE_IN_MODULE:\r
         GetModeMaxSizeName = '_PCD_GET_MODE_MAXSIZE' + '_' + TokenCName\r
         PcdVariableName = '_gPcd_' + gItemTypeStringDatabase[TAB_PCDS_PATCHABLE_IN_MODULE] + '_' + TokenCName\r
-        if DatumType not in _NumericDataTypesList:\r
-            if DatumType == 'VOID*' and Array == '[]':\r
-                DatumType = ['UINT8', 'UINT16'][Pcd.DefaultValue[0] == 'L']\r
+        if DatumType not in TAB_PCD_NUMERIC_TYPES:\r
+            if DatumType == TAB_VOID and Array == '[]':\r
+                DatumType = [TAB_UINT8, TAB_UINT16][Pcd.DefaultValue[0] == 'L']\r
             else:\r
-                DatumType = 'UINT8'\r
+                DatumType = TAB_UINT8\r
             AutoGenH.Append('extern %s _gPcd_BinaryPatch_%s%s;\n' %(DatumType, TokenCName, Array))\r
         else:\r
             AutoGenH.Append('extern volatile  %s  %s%s;\n' % (DatumType, PcdVariableName, Array))\r
         AutoGenH.Append('#define %s  %s_gPcd_BinaryPatch_%s\n' %(GetModeName, Type, TokenCName))\r
         PcdDataSize = GetPcdSize(Pcd)\r
-        if Pcd.DatumType not in _NumericDataTypesList:\r
+        if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
             AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPatchPcdSetPtrAndSize((VOID *)_gPcd_BinaryPatch_%s, &%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, TokenCName, PatchPcdSizeVariableName, PatchPcdMaxSizeVariable))\r
             AutoGenH.Append('#define %s(SizeOfBuffer, Buffer)  LibPatchPcdSetPtrAndSizeS((VOID *)_gPcd_BinaryPatch_%s, &%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, TokenCName, PatchPcdSizeVariableName, PatchPcdMaxSizeVariable))\r
             AutoGenH.Append('#define %s %s\n' % (GetModeMaxSizeName, PatchPcdMaxSizeVariable))\r
@@ -1357,10 +1355,10 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
     if PcdItemType == TAB_PCDS_FIXED_AT_BUILD or PcdItemType == TAB_PCDS_FEATURE_FLAG:\r
         key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))\r
         PcdVariableName = '_gPcd_' + gItemTypeStringDatabase[Pcd.Type] + '_' + TokenCName\r
-        if DatumType == 'VOID*' and Array == '[]':\r
-            DatumType = ['UINT8', 'UINT16'][Pcd.DefaultValue[0] == 'L']\r
-        if DatumType not in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN', 'VOID*']:\r
-            DatumType = 'UINT8'\r
+        if DatumType == TAB_VOID and Array == '[]':\r
+            DatumType = [TAB_UINT8, TAB_UINT16][Pcd.DefaultValue[0] == 'L']\r
+        if DatumType not in TAB_PCD_NUMERIC_TYPES_VOID:\r
+            DatumType = TAB_UINT8\r
         AutoGenH.Append('extern const %s _gPcd_FixedAtBuild_%s%s;\n' %(DatumType, TokenCName, Array))\r
         AutoGenH.Append('#define %s  %s_gPcd_FixedAtBuild_%s\n' %(GetModeName, Type, TokenCName))\r
         AutoGenH.Append('//#define %s  ASSERT(FALSE)  // It is not allowed to set value for a FIXED_AT_BUILD PCD\n' % SetModeName)\r
@@ -1370,13 +1368,13 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
             ConstFixedPcd = True\r
             if key in Info.ConstPcd:\r
                 Pcd.DefaultValue = Info.ConstPcd[key]\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 AutoGenH.Append('#define _PCD_VALUE_%s %s%s\n' %(TokenCName, Type, PcdVariableName))\r
             else:\r
                 AutoGenH.Append('#define _PCD_VALUE_%s %s\n' %(TokenCName, Pcd.DefaultValue))\r
         PcdDataSize = GetPcdSize(Pcd)\r
         if PcdItemType == TAB_PCDS_FIXED_AT_BUILD:\r
-            if Pcd.DatumType not in _NumericDataTypesList:\r
+            if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 if ConstFixedPcd:\r
                     AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))\r
                     AutoGenH.Append('#define %s %s\n' % (GetModeSizeName,FixPcdSizeTokenName))\r
index 5937558e7038632bcf7721935a794cb057cb4a8c..d08a389d817f85bf499c8b823b086c1896e79e8b 100644 (file)
@@ -20,7 +20,7 @@ from ValidCheckingInfoObject import VAR_VALID_OBJECT_FACTORY
 from Common.VariableAttributes import VariableAttributes\r
 import copy\r
 from struct import unpack\r
-from Common.DataType import TAB_DEFAULT\r
+from Common.DataType import *\r
 \r
 DATABASE_VERSION = 7\r
 \r
@@ -1026,7 +1026,7 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
         new_pcd = copy.deepcopy(pcd)\r
         new_pcd.SkuInfoList = {skuname:pcd.SkuInfoList[skuname]}\r
         new_pcd.isinit = 'INIT'\r
-        if new_pcd.DatumType in ['UINT8','UINT16','UINT32','UINT64']:\r
+        if new_pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
             for skuobj in pcd.SkuInfoList.values():\r
                 if skuobj.DefaultValue:\r
                     defaultvalue = int(skuobj.DefaultValue,16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue,10)\r
@@ -1105,7 +1105,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
 \r
     Dict['PCD_INFO_FLAG'] = Platform.Platform.PcdInfoFlag\r
 \r
-    for DatumType in ['UINT64','UINT32','UINT16','UINT8','BOOLEAN', "VOID*"]:\r
+    for DatumType in TAB_PCD_NUMERIC_TYPES_VOID:\r
         Dict['VARDEF_CNAME_' + DatumType] = []\r
         Dict['VARDEF_GUID_' + DatumType]  = []\r
         Dict['VARDEF_SKUID_' + DatumType] = []\r
@@ -1177,7 +1177,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
     ReorderedDynPcdList = GetOrderedDynamicPcdList(DynamicPcdList, Platform.PcdTokenNumber)\r
     for item in ReorderedDynPcdList:\r
         if item.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:\r
-            item.DatumType = "VOID*"\r
+            item.DatumType = TAB_VOID\r
     for Pcd in ReorderedDynPcdList:\r
         VoidStarTypeCurrSize = []\r
         i += 1\r
@@ -1218,7 +1218,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
         VariableDbValueList = []\r
         Pcd.InitString = 'UNINIT'\r
 \r
-        if Pcd.DatumType == 'VOID*':\r
+        if Pcd.DatumType == TAB_VOID:\r
             if Pcd.Type not in ["DynamicVpd", "DynamicExVpd"]:\r
                 Pcd.TokenTypeList = ['PCD_TYPE_STRING']\r
             else:\r
@@ -1322,9 +1322,9 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                     #\r
                     Dict['VARDEF_DB_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue)\r
                     \r
-                    if Pcd.DatumType == "UINT64":\r
+                    if Pcd.DatumType == TAB_UINT64:\r
                         Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "ULL")\r
-                    elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+                    elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
                         Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "U")\r
                     elif Pcd.DatumType == "BOOLEAN":\r
                         if eval(Sku.HiiDefaultValue) in [1,0]:\r
@@ -1355,13 +1355,13 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 VpdHeadOffsetList.append(str(Sku.VpdOffset) + 'U')\r
                 VpdDbOffsetList.append(Sku.VpdOffset)\r
                 # Also add the VOID* string of VPD PCD to SizeTable \r
-                if Pcd.DatumType == 'VOID*':\r
+                if Pcd.DatumType == TAB_VOID:\r
                     NumberOfSizeItems += 1\r
                     # For VPD type of PCD, its current size is equal to its MAX size.\r
                     VoidStarTypeCurrSize = [str(Pcd.MaxDatumSize) + 'U']                 \r
                 continue\r
           \r
-            if Pcd.DatumType == 'VOID*':\r
+            if Pcd.DatumType == TAB_VOID:\r
                 Pcd.TokenTypeList += ['PCD_TYPE_STRING']\r
                 Pcd.InitString = 'INIT'\r
                 if Sku.HiiDefaultValue != '' and Sku.DefaultValue == '':\r
@@ -1420,9 +1420,9 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 # For UNIT64 type PCD's value, ULL should be append to avoid\r
                 # warning under linux building environment.\r
                 #\r
-                if Pcd.DatumType == "UINT64":\r
+                if Pcd.DatumType == TAB_UINT64:\r
                     ValueList.append(Sku.DefaultValue + "ULL")\r
-                elif Pcd.DatumType in ("UINT32", "UINT16", "UINT8"):\r
+                elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):\r
                     ValueList.append(Sku.DefaultValue + "U")\r
                 elif Pcd.DatumType == "BOOLEAN":\r
                     if Sku.DefaultValue in ["1", "0"]:\r
@@ -1433,7 +1433,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
                 DbValueList.append(Sku.DefaultValue)\r
 \r
         Pcd.TokenTypeList = list(set(Pcd.TokenTypeList))\r
-        if Pcd.DatumType == 'VOID*':  \r
+        if Pcd.DatumType == TAB_VOID:\r
             Dict['SIZE_TABLE_CNAME'].append(CName)\r
             Dict['SIZE_TABLE_GUID'].append(TokenSpaceGuid)\r
             Dict['SIZE_TABLE_MAXIMUM_LENGTH'].append(str(Pcd.MaxDatumSize) + 'U')\r
index 37c168a84b4389a4b9049ae08d048b514f278ce5..3dae16efd0f557bc9c4a7cffa94cc3f8433db445 100644 (file)
@@ -91,14 +91,14 @@ class VariableMgr(object):
             for item in sku_var_info_offset_list:\r
                 data_type = item.data_type\r
                 value_list = item.default_value.strip("{").strip("}").split(",")\r
-                if data_type in ["BOOLEAN","UINT8","UINT16","UINT32","UINT64"]:\r
-                    if data_type == ["BOOLEAN","UINT8"]:\r
+                if data_type in DataType.TAB_PCD_NUMERIC_TYPES:\r
+                    if data_type == ["BOOLEAN", DataType.TAB_UINT8]:\r
                         data_flag = "=B"\r
-                    elif data_type == "UINT16":\r
+                    elif data_type == DataType.TAB_UINT16:\r
                         data_flag = "=H"\r
-                    elif data_type == "UINT32":\r
+                    elif data_type == DataType.TAB_UINT32:\r
                         data_flag = "=L"\r
-                    elif data_type == "UINT64":\r
+                    elif data_type == DataType.TAB_UINT64:\r
                         data_flag = "=Q"\r
                     data = value_list[0]\r
                     value_list = []\r
@@ -110,7 +110,7 @@ class VariableMgr(object):
             except:\r
                 EdkLogger.error("build", AUTOGEN_ERROR, "Variable offset conflict in PCDs: %s \n" % (" and ".join([item.pcdname for item in sku_var_info_offset_list])))\r
             n = sku_var_info_offset_list[0]\r
-            indexedvarinfo[key] =  [var_info(n.pcdindex,n.pcdname,n.defaultstoragename,n.skuname,n.var_name, n.var_guid, "0x00",n.var_attribute,newvaluestr  , newvaluestr , "VOID*")]\r
+            indexedvarinfo[key] =  [var_info(n.pcdindex,n.pcdname,n.defaultstoragename,n.skuname,n.var_name, n.var_guid, "0x00",n.var_attribute,newvaluestr  , newvaluestr , DataType.TAB_VOID)]\r
         self.VarInfo = [item[0] for item in indexedvarinfo.values()]\r
 \r
     def assemble_variable(self, valuelist):\r
@@ -144,7 +144,7 @@ class VariableMgr(object):
             tail = None\r
             default_sku_default = indexedvarinfo.get(index).get((DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT))\r
 \r
-            if default_sku_default.data_type not in ["UINT8","UINT16","UINT32","UINT64","BOOLEAN"]:\r
+            if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:\r
                 var_max_len = max([len(var_item.default_value.split(",")) for var_item in sku_var_info.values()])\r
                 if len(default_sku_default.default_value.split(",")) < var_max_len:\r
                     tail = ",".join([ "0x00" for i in range(var_max_len-len(default_sku_default.default_value.split(",")))])\r
@@ -165,7 +165,7 @@ class VariableMgr(object):
                     continue\r
                 other_sku_other = indexedvarinfo.get(index).get((skuid,defaultstoragename))\r
 \r
-                if default_sku_default.data_type not in ["UINT8","UINT16","UINT32","UINT64","BOOLEAN"]:\r
+                if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:\r
                     if len(other_sku_other.default_value.split(",")) < var_max_len:\r
                         tail = ",".join([ "0x00" for i in range(var_max_len-len(other_sku_other.default_value.split(",")))])\r
 \r
@@ -314,7 +314,7 @@ class VariableMgr(object):
     def PACK_VARIABLES_DATA(self, var_value,data_type, tail = None):\r
         Buffer = ""\r
         data_len = 0\r
-        if data_type == "VOID*":\r
+        if data_type == DataType.TAB_VOID:\r
             for value_char in var_value.strip("{").strip("}").split(","):\r
                 Buffer += pack("=B",int(value_char,16))\r
             data_len += len(var_value.split(","))\r
@@ -325,16 +325,16 @@ class VariableMgr(object):
         elif data_type == "BOOLEAN":\r
             Buffer += pack("=B",True) if var_value.upper() == "TRUE" else pack("=B",False)\r
             data_len += 1\r
-        elif data_type  == "UINT8":\r
+        elif data_type  == DataType.TAB_UINT8:\r
             Buffer += pack("=B",GetIntegerValue(var_value))\r
             data_len += 1\r
-        elif data_type == "UINT16":\r
+        elif data_type == DataType.TAB_UINT16:\r
             Buffer += pack("=H",GetIntegerValue(var_value))\r
             data_len += 2\r
-        elif data_type == "UINT32":\r
+        elif data_type == DataType.TAB_UINT32:\r
             Buffer += pack("=L",GetIntegerValue(var_value))\r
             data_len += 4\r
-        elif data_type == "UINT64":\r
+        elif data_type == DataType.TAB_UINT64:\r
             Buffer += pack("=Q",GetIntegerValue(var_value))\r
             data_len += 8\r
 \r
index 92ede7a82324f59a82028368da2075487005e7b2..df7a9b889aa4f74c0d5a058d2e16571b18094020 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2015 - 2018, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -19,6 +19,7 @@ from Common.RangeExpression import RangeExpression
 from Common.Misc import *\r
 from StringIO import StringIO\r
 from struct import pack\r
+from Common.DataType import *\r
 \r
 class VAR_CHECK_PCD_VARIABLE_TAB_CONTAINER(object):\r
     def __init__(self):\r
@@ -250,13 +251,13 @@ class VAR_CHECK_PCD_VALID_OBJ(object):
         self.ValidData = True\r
         self.updateStorageWidth()\r
     def updateStorageWidth(self):\r
-        if self.PcdDataType == "UINT8" or self.PcdDataType == "BOOLEAN":\r
+        if self.PcdDataType == TAB_UINT8 or self.PcdDataType == "BOOLEAN":\r
             self.StorageWidth = 1\r
-        elif self.PcdDataType == "UINT16":\r
+        elif self.PcdDataType == TAB_UINT16:\r
             self.StorageWidth = 2\r
-        elif self.PcdDataType == "UINT32":\r
+        elif self.PcdDataType == TAB_UINT32:\r
             self.StorageWidth = 4\r
-        elif self.PcdDataType == "UINT64":\r
+        elif self.PcdDataType == TAB_UINT64:\r
             self.StorageWidth = 8\r
         else:\r
             self.StorageWidth = 0\r
index 1e632f3abdbf1e275e500192d4166f30a94dffdf..6312d3007f5652356ac7898b38ec397e3ecd5672 100644 (file)
@@ -41,6 +41,10 @@ TAB_UINT32 = 'UINT32'
 TAB_UINT64 = 'UINT64'\r
 TAB_VOID = 'VOID*'\r
 \r
+TAB_PCD_CLEAN_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64}\r
+TAB_PCD_NUMERIC_TYPES = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN'}\r
+TAB_PCD_NUMERIC_TYPES_VOID = {TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, 'BOOLEAN', TAB_VOID}\r
+\r
 TAB_EDK_SOURCE = '$(EDK_SOURCE)'\r
 TAB_EFI_SOURCE = '$(EFI_SOURCE)'\r
 TAB_WORKSPACE = '$(WORKSPACE)'\r
index 9a3415ccaabe03bd29749f33a2895f88a91729a8..99b01012a0cb1c18c826cb86a432f72dfedef2c8 100644 (file)
@@ -18,6 +18,7 @@ from CommonDataClass.Exceptions import WrnExpression
 from Misc import GuidStringToGuidStructureString, ParseFieldValue, IsFieldValueAnArray\r
 import Common.EdkLogger as EdkLogger\r
 import copy\r
+from Common.DataType import *\r
 \r
 ERR_STRING_EXPR         = 'This operator cannot be used in string expression: [%s].'\r
 ERR_SNYTAX              = 'Syntax error, the rest of expression cannot be evaluated: [%s].'\r
@@ -136,7 +137,7 @@ def BuildOptionValue(PcdValue, GuidDict):
         InputValue = PcdValue\r
     if IsFieldValueAnArray(InputValue):\r
         try:\r
-            PcdValue = ValueExpressionEx(InputValue, 'VOID*', GuidDict)(True)\r
+            PcdValue = ValueExpressionEx(InputValue, TAB_VOID, GuidDict)(True)\r
         except:\r
             pass\r
     return PcdValue\r
@@ -800,20 +801,20 @@ class ValueExpressionEx(ValueExpression):
         PcdValue = self.PcdValue\r
         try:\r
             PcdValue = ValueExpression.__call__(self, RealValue, Depth)\r
-            if self.PcdType == 'VOID*' and (PcdValue.startswith("'") or PcdValue.startswith("L'")):\r
+            if self.PcdType == TAB_VOID and (PcdValue.startswith("'") or PcdValue.startswith("L'")):\r
                 PcdValue, Size = ParseFieldValue(PcdValue)\r
                 PcdValueList = []\r
                 for I in range(Size):\r
                     PcdValueList.append('0x%02X'%(PcdValue & 0xff))\r
                     PcdValue = PcdValue >> 8\r
                 PcdValue = '{' + ','.join(PcdValueList) + '}'\r
-            elif self.PcdType in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN'] and (PcdValue.startswith("'") or \\r
+            elif self.PcdType in TAB_PCD_NUMERIC_TYPES and (PcdValue.startswith("'") or \\r
                       PcdValue.startswith('"') or PcdValue.startswith("L'") or PcdValue.startswith('L"') or PcdValue.startswith('{')):\r
                 raise BadExpression\r
         except WrnExpression, Value:\r
             PcdValue = Value.result\r
         except BadExpression, Value:\r
-            if self.PcdType in ['UINT8', 'UINT16', 'UINT32', 'UINT64', 'BOOLEAN']:\r
+            if self.PcdType in TAB_PCD_NUMERIC_TYPES:\r
                 PcdValue = PcdValue.strip()\r
                 if type(PcdValue) == type('') and PcdValue.startswith('{') and PcdValue.endswith('}'):\r
                     PcdValue = SplitPcdValueString(PcdValue[1:-1])\r
@@ -823,24 +824,24 @@ class ValueExpressionEx(ValueExpression):
                     ValueType = ''\r
                     for Item in PcdValue:\r
                         Item = Item.strip()\r
-                        if Item.startswith('UINT8'):\r
+                        if Item.startswith(TAB_UINT8):\r
                             ItemSize = 1\r
-                            ValueType = 'UINT8'\r
-                        elif Item.startswith('UINT16'):\r
+                            ValueType = TAB_UINT8\r
+                        elif Item.startswith(TAB_UINT16):\r
                             ItemSize = 2\r
-                            ValueType = 'UINT16'\r
-                        elif Item.startswith('UINT32'):\r
+                            ValueType = TAB_UINT16\r
+                        elif Item.startswith(TAB_UINT32):\r
                             ItemSize = 4\r
-                            ValueType = 'UINT32'\r
-                        elif Item.startswith('UINT64'):\r
+                            ValueType = TAB_UINT32\r
+                        elif Item.startswith(TAB_UINT64):\r
                             ItemSize = 8\r
-                            ValueType = 'UINT64'\r
+                            ValueType = TAB_UINT64\r
                         elif Item[0] in ['"',"'",'L']:\r
                             ItemSize = 0\r
-                            ValueType = 'VOID*'\r
+                            ValueType = TAB_VOID\r
                         else:\r
                             ItemSize = 0\r
-                            ValueType = 'UINT8'\r
+                            ValueType = TAB_UINT8\r
                         Item = ValueExpressionEx(Item, ValueType, self._Symb)(True)\r
 \r
                         if ItemSize == 0:\r
@@ -875,13 +876,13 @@ class ValueExpressionEx(ValueExpression):
                     PcdValue = '0x%0{}X'.format(Size) % (TmpValue)\r
                 if TmpValue < 0:\r
                     raise  BadExpression('Type %s PCD Value is negative' % self.PcdType)\r
-                if self.PcdType == 'UINT8' and Size > 1:\r
+                if self.PcdType == TAB_UINT8 and Size > 1:\r
                     raise BadExpression('Type %s PCD Value Size is Larger than 1 byte' % self.PcdType)\r
-                if self.PcdType == 'UINT16' and Size > 2:\r
+                if self.PcdType == TAB_UINT16 and Size > 2:\r
                     raise BadExpression('Type %s PCD Value Size is Larger than 2 byte' % self.PcdType)\r
-                if self.PcdType == 'UINT32' and Size > 4:\r
+                if self.PcdType == TAB_UINT32 and Size > 4:\r
                     raise BadExpression('Type %s PCD Value Size is Larger than 4 byte' % self.PcdType)\r
-                if self.PcdType == 'UINT64' and Size > 8:\r
+                if self.PcdType == TAB_UINT64 and Size > 8:\r
                     raise BadExpression('Type %s PCD Value Size is Larger than 8 byte' % self.PcdType)\r
             else:\r
                 try:\r
@@ -910,13 +911,13 @@ class ValueExpressionEx(ValueExpression):
                                         raise BadExpression('%s is not a valid c variable name' % Label)\r
                                     if Label not in LabelDict:\r
                                         LabelDict[Label] = str(LabelOffset)\r
-                            if Item.startswith('UINT8'):\r
+                            if Item.startswith(TAB_UINT8):\r
                                 LabelOffset = LabelOffset + 1\r
-                            elif Item.startswith('UINT16'):\r
+                            elif Item.startswith(TAB_UINT16):\r
                                 LabelOffset = LabelOffset + 2\r
-                            elif Item.startswith('UINT32'):\r
+                            elif Item.startswith(TAB_UINT32):\r
                                 LabelOffset = LabelOffset + 4\r
-                            elif Item.startswith('UINT64'):\r
+                            elif Item.startswith(TAB_UINT64):\r
                                 LabelOffset = LabelOffset + 8\r
                             else:\r
                                 try:\r
@@ -971,18 +972,18 @@ class ValueExpressionEx(ValueExpression):
                                 continue\r
                             else:\r
                                 ValueType = ""\r
-                                if Item.startswith('UINT8'):\r
+                                if Item.startswith(TAB_UINT8):\r
                                     ItemSize = 1\r
-                                    ValueType = "UINT8"\r
-                                elif Item.startswith('UINT16'):\r
+                                    ValueType = TAB_UINT8\r
+                                elif Item.startswith(TAB_UINT16):\r
                                     ItemSize = 2\r
-                                    ValueType = "UINT16"\r
-                                elif Item.startswith('UINT32'):\r
+                                    ValueType = TAB_UINT16\r
+                                elif Item.startswith(TAB_UINT32):\r
                                     ItemSize = 4\r
-                                    ValueType = "UINT32"\r
-                                elif Item.startswith('UINT64'):\r
+                                    ValueType = TAB_UINT32\r
+                                elif Item.startswith(TAB_UINT64):\r
                                     ItemSize = 8\r
-                                    ValueType = "UINT64"\r
+                                    ValueType = TAB_UINT64\r
                                 else:\r
                                     ItemSize = 0\r
                                 if ValueType:\r
index 4f2bfd63cfc326b71481a0785d28659723652463..60ae98c550a8e940566b8e7e17157a32991b861b 100644 (file)
@@ -1288,22 +1288,22 @@ def ParseFieldValue (Value):
     if type(Value) <> type(''):\r
         raise BadExpression('Type %s is %s' %(Value, type(Value)))\r
     Value = Value.strip()\r
-    if Value.startswith('UINT8') and Value.endswith(')'):\r
+    if Value.startswith(TAB_UINT8) and Value.endswith(')'):\r
         Value, Size = ParseFieldValue(Value.split('(', 1)[1][:-1])\r
         if Size > 1:\r
             raise BadExpression('Value (%s) Size larger than %d' %(Value, Size))\r
         return Value, 1\r
-    if Value.startswith('UINT16') and Value.endswith(')'):\r
+    if Value.startswith(TAB_UINT16) and Value.endswith(')'):\r
         Value, Size = ParseFieldValue(Value.split('(', 1)[1][:-1])\r
         if Size > 2:\r
             raise BadExpression('Value (%s) Size larger than %d' %(Value, Size))\r
         return Value, 2\r
-    if Value.startswith('UINT32') and Value.endswith(')'):\r
+    if Value.startswith(TAB_UINT32) and Value.endswith(')'):\r
         Value, Size = ParseFieldValue(Value.split('(', 1)[1][:-1])\r
         if Size > 4:\r
             raise BadExpression('Value (%s) Size larger than %d' %(Value, Size))\r
         return Value, 4\r
-    if Value.startswith('UINT64') and Value.endswith(')'):\r
+    if Value.startswith(TAB_UINT64) and Value.endswith(')'):\r
         Value, Size = ParseFieldValue(Value.split('(', 1)[1][:-1])\r
         if Size > 8:\r
             raise BadExpression('Value (%s) Size larger than %d' % (Value, Size))\r
@@ -1490,7 +1490,7 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
     elif PcdType in (MODEL_PCD_DYNAMIC_VPD, MODEL_PCD_DYNAMIC_EX_VPD):\r
         VpdOffset = FieldList[0]\r
         Value = Size = ''\r
-        if not DataType == 'VOID*':\r
+        if not DataType == TAB_VOID:\r
             if len(FieldList) > 1:\r
                 Value = FieldList[1]\r
         else:\r
@@ -1558,7 +1558,7 @@ def AnalyzePcdData(Setting):
 # For PCD value setting\r
 #\r
 def CheckPcdDatum(Type, Value):\r
-    if Type == "VOID*":\r
+    if Type == TAB_VOID:\r
         ValueRe = re.compile(r'\s*L?\".*\"\s*$')\r
         if not (((Value.startswith('L"') or Value.startswith('"')) and Value.endswith('"'))\r
                 or (Value.startswith('{') and Value.endswith('}')) or (Value.startswith("L'") or Value.startswith("'") and Value.endswith("'"))\r
index b2ad5235bb3f290417a7dfb850b89c5bd15ae9b2..155693740f12057982843e11b9b294ac8d919a95 100644 (file)
@@ -94,11 +94,11 @@ class VpdInfoFile:
         if not (Offset >= 0 or Offset == "*"):\r
             EdkLogger.error("VpdInfoFile", BuildToolError.PARAMETER_INVALID, "Invalid offset parameter: %s." % Offset)\r
         \r
-        if Vpd.DatumType == "VOID*":\r
+        if Vpd.DatumType == TAB_VOID:\r
             if Vpd.MaxDatumSize <= 0:\r
                 EdkLogger.error("VpdInfoFile", BuildToolError.PARAMETER_INVALID, \r
                                 "Invalid max datum size for VPD PCD %s.%s" % (Vpd.TokenSpaceGuidCName, Vpd.TokenCName))\r
-        elif Vpd.DatumType in ["BOOLEAN", "UINT8", "UINT16", "UINT32", "UINT64"]\r
+        elif Vpd.DatumType in TAB_PCD_NUMERIC_TYPES\r
             if Vpd.MaxDatumSize is None or Vpd.MaxDatumSize == "":\r
                 Vpd.MaxDatumSize = MAX_SIZE_TYPE[Vpd.DatumType]\r
         else:\r
index 237cf5acfea13ad0210cf3edda189e1b8d2fbe9f..4d61cd1cea917db996e81f8f65890337ed4d2965 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # This file is used to parse meta files\r
 #\r
-# Copyright (c) 2008 - 2015, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -1433,7 +1433,7 @@ class DscParser(MetaFileParser):
         #\r
         # PCD value can be an expression\r
         #\r
-        if len(ValueList) > 1 and ValueList[1] == 'VOID*':\r
+        if len(ValueList) > 1 and ValueList[1] == TAB_VOID:\r
             PcdValue = ValueList[0]      \r
             try:\r
                 ValueList[0] = ValueExpression(PcdValue, self._Macros)(True)\r
index a106253527c4c97c15d16f46c73b0ae4c524d6d8..6baf875833a8ce4858f8876ce9861ff68963f18a 100644 (file)
@@ -1134,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
@@ -1142,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
index 37624f3fa9d4e0b9b357b65627d89bbb99aabef7..3c5eef40222b25fb3117284c2c1e7c3a6156b98b 100644 (file)
@@ -296,7 +296,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
                     EdkLogger.error("GenFds", GENFDS_ERROR, 'PCD [%s.%s] Value "%s"' %(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DefaultValue),File=self.InfFileName)\r
 \r
             # Check value, if value are equal, no need to patch\r
-            if Pcd.DatumType == "VOID*":\r
+            if Pcd.DatumType == TAB_VOID:\r
                 if Pcd.InfDefaultValue == DefaultValue or DefaultValue in [None, '']:\r
                     continue\r
                 # Get the string size from FDF or DSC\r
@@ -326,7 +326,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
                 except:\r
                     continue\r
             # Check the Pcd size and data type\r
-            if Pcd.DatumType == "VOID*":\r
+            if Pcd.DatumType == TAB_VOID:\r
                 if int(MaxDatumSize) > int(Pcd.MaxDatumSize):\r
                     EdkLogger.error("GenFds", GENFDS_ERROR, "The size of VOID* type PCD '%s.%s' exceeds its maximum size %d bytes." \\r
                                     % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, int(MaxDatumSize) - int(Pcd.MaxDatumSize)))\r
index 6a3873940ec01452a2bdcdb8181cb27efcccdeaf..6745a89514b768e246bd165e3860ff2ec635acb9 100644 (file)
@@ -811,7 +811,7 @@ class GenFdsGlobalVariable:
                 if (PcdObj.TokenCName == TokenCName) and (PcdObj.TokenSpaceGuidCName == TokenSpace):\r
                     if PcdObj.Type != 'FixedAtBuild':\r
                         EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not FixedAtBuild type." % PcdPattern)\r
-                    if PcdObj.DatumType != 'VOID*':\r
+                    if PcdObj.DatumType != DataType.TAB_VOID:\r
                         EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not VOID* datum type." % PcdPattern)\r
                         \r
                     PcdValue = PcdObj.DefaultValue\r
@@ -827,7 +827,7 @@ class GenFdsGlobalVariable:
                     if (PcdObj.TokenCName == TokenCName) and (PcdObj.TokenSpaceGuidCName == TokenSpace):\r
                         if PcdObj.Type != 'FixedAtBuild':\r
                             EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not FixedAtBuild type." % PcdPattern)\r
-                        if PcdObj.DatumType != 'VOID*':\r
+                        if PcdObj.DatumType != DataType.TAB_VOID:\r
                             EdkLogger.error("GenFds", GENFDS_ERROR, "%s is not VOID* datum type." % PcdPattern)\r
                             \r
                         PcdValue = PcdObj.DefaultValue\r
index 0664d6a90fa14ca9a11dadfd644698aa55816467..cf2fc7c4f70a471210c031390f1325162fce4d57 100644 (file)
@@ -1,7 +1,7 @@
 ## @file\r
 # Patch value into the binary file.\r
 #\r
-# Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
 # which accompanies this distribution.  The full text of the license may be found at\r
@@ -25,6 +25,7 @@ from Common.BuildToolError import *
 import Common.EdkLogger as EdkLogger\r
 from Common.BuildVersion import gBUILD_VERSION\r
 import array\r
+from Common.DataType import *\r
 \r
 # Version and Copyright\r
 __version_number__ = ("0.10" + " " + gBUILD_VERSION)\r
@@ -62,15 +63,15 @@ def PatchBinaryFile(FileName, ValueOffset, TypeName, ValueString, MaxSize=0):
     ValueLength = 0\r
     if TypeName == 'BOOLEAN':\r
         ValueLength = 1\r
-    elif TypeName == 'UINT8':\r
+    elif TypeName == TAB_UINT8:\r
         ValueLength = 1\r
-    elif TypeName == 'UINT16':\r
+    elif TypeName == TAB_UINT16:\r
         ValueLength = 2\r
-    elif TypeName == 'UINT32':\r
+    elif TypeName == TAB_UINT32:\r
         ValueLength = 4\r
-    elif TypeName == 'UINT64':\r
+    elif TypeName == TAB_UINT64:\r
         ValueLength = 8\r
-    elif TypeName == 'VOID*':\r
+    elif TypeName == TAB_VOID:\r
         if MaxSize == 0:\r
             return OPTION_MISSING, "PcdMaxSize is not specified for VOID* type PCD."\r
         ValueLength = int(MaxSize)\r
@@ -119,7 +120,7 @@ def PatchBinaryFile(FileName, ValueOffset, TypeName, ValueString, MaxSize=0):
         # Set PCD value into binary data\r
         #\r
         ByteList[ValueOffset] = ValueNumber\r
-    elif TypeName in ['UINT8', 'UINT16', 'UINT32', 'UINT64']:\r
+    elif TypeName in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
         #\r
         # Get PCD value for UINT* data type\r
         #\r
@@ -133,7 +134,7 @@ def PatchBinaryFile(FileName, ValueOffset, TypeName, ValueString, MaxSize=0):
         for Index in range(ValueLength):\r
             ByteList[ValueOffset + Index] = ValueNumber % 0x100\r
             ValueNumber = ValueNumber / 0x100\r
-    elif TypeName == 'VOID*':\r
+    elif TypeName == TAB_VOID:\r
         ValueString = SavedStr\r
         if ValueString.startswith('L"'):\r
             #\r
@@ -264,10 +265,10 @@ def Main():
         if CommandOptions.PcdOffset is None or CommandOptions.PcdValue is None or CommandOptions.PcdTypeName is None:\r
             EdkLogger.error("PatchPcdValue", OPTION_MISSING, ExtraData="PcdOffset or PcdValue of PcdTypeName is not specified.")\r
             return 1\r
-        if CommandOptions.PcdTypeName.upper() not in ["BOOLEAN", "UINT8", "UINT16", "UINT32", "UINT64", "VOID*"]:\r
+        if CommandOptions.PcdTypeName.upper() not in TAB_PCD_NUMERIC_TYPES_VOID:\r
             EdkLogger.error("PatchPcdValue", PARAMETER_INVALID, ExtraData="PCD type %s is not valid." % (CommandOptions.PcdTypeName))\r
             return 1\r
-        if CommandOptions.PcdTypeName.upper() == "VOID*" and CommandOptions.PcdMaxSize is None:\r
+        if CommandOptions.PcdTypeName.upper() == TAB_VOID and CommandOptions.PcdMaxSize is None:\r
             EdkLogger.error("PatchPcdValue", OPTION_MISSING, ExtraData="PcdMaxSize is not specified for VOID* type PCD.")\r
             return 1\r
         #\r
index e2af803420f6b5f62c433777d061e7345f4743a8..7e3187fb5d2d82720dd353d1f27371c3cdad1528 100644 (file)
@@ -41,13 +41,7 @@ from Common.Misc import SaveFileOnChange
 from Workspace.BuildClassObject import PlatformBuildClassObject, StructurePcd, PcdClassObject, ModuleBuildClassObject\r
 from collections import OrderedDict\r
 \r
-#\r
-# Treat CHAR16 as a synonym for UINT16.  CHAR16 support is required for VFR C structs\r
-#\r
 PcdValueInitName = 'PcdValueInit'\r
-PcdSupportedBaseTypes = ['BOOLEAN', 'UINT8', 'UINT16', 'UINT32', 'UINT64', 'CHAR16']\r
-PcdSupportedBaseTypeWidth = {'BOOLEAN':8, 'UINT8':8, 'UINT16':16, 'UINT32':32, 'UINT64':64}\r
-PcdUnsupportedBaseTypes = ['INT8', 'INT16', 'INT32', 'INT64', 'CHAR8', 'UINTN', 'INTN', 'VOID']\r
 \r
 PcdMainCHeader = '''\r
 /**\r
@@ -1057,7 +1051,7 @@ class DscBuildData(PlatformBuildClassObject):
             TokenCName += '.' + FieldName\r
         if PcdValue.startswith('H'):\r
             if FieldName and IsFieldValueAnArray(PcdValue[1:]):\r
-                PcdDatumType = 'VOID*'\r
+                PcdDatumType = TAB_VOID\r
                 IsArray = True\r
             if FieldName and not IsArray:\r
                 return PcdValue\r
@@ -1068,7 +1062,7 @@ class DscBuildData(PlatformBuildClassObject):
                                 (TokenSpaceGuidCName, TokenCName, PcdValue, Value))\r
         elif PcdValue.startswith("L'") or PcdValue.startswith("'"):\r
             if FieldName and IsFieldValueAnArray(PcdValue):\r
-                PcdDatumType = 'VOID*'\r
+                PcdDatumType = TAB_VOID\r
                 IsArray = True\r
             if FieldName and not IsArray:\r
                 return PcdValue\r
@@ -1080,7 +1074,7 @@ class DscBuildData(PlatformBuildClassObject):
         elif PcdValue.startswith('L'):\r
             PcdValue = 'L"' + PcdValue[1:] + '"'\r
             if FieldName and IsFieldValueAnArray(PcdValue):\r
-                PcdDatumType = 'VOID*'\r
+                PcdDatumType = TAB_VOID\r
                 IsArray = True\r
             if FieldName and not IsArray:\r
                 return PcdValue\r
@@ -1095,7 +1089,7 @@ class DscBuildData(PlatformBuildClassObject):
             if PcdValue.upper() == 'TRUE':\r
                 PcdValue = str(1)\r
             if not FieldName:\r
-                if PcdDatumType not in ['UINT8','UINT16','UINT32','UINT64','BOOLEAN']:\r
+                if PcdDatumType not in TAB_PCD_NUMERIC_TYPES:\r
                     PcdValue = '"' + PcdValue + '"'\r
             else:\r
                 IsArray = False\r
@@ -1107,7 +1101,7 @@ class DscBuildData(PlatformBuildClassObject):
                 except:\r
                     PcdValue = '"' + PcdValue + '"'\r
                 if IsFieldValueAnArray(PcdValue):\r
-                    PcdDatumType = 'VOID*'\r
+                    PcdDatumType = TAB_VOID\r
                     IsArray = True\r
                 if not IsArray:\r
                     return PcdValue\r
@@ -1246,7 +1240,7 @@ class DscBuildData(PlatformBuildClassObject):
                             for defaultstore in SkuInfo.DefaultStoreDict:\r
                                 SkuInfo.DefaultStoreDict[defaultstore] = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]\r
                     if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII]]:\r
-                        if Pcd.DatumType == "VOID*":\r
+                        if Pcd.DatumType == TAB_VOID:\r
                             if not Pcd.MaxDatumSize:\r
                                 Pcd.MaxDatumSize = '0'\r
                             CurrentSize = int(Pcd.MaxDatumSize,16) if Pcd.MaxDatumSize.upper().startswith("0X") else int(Pcd.MaxDatumSize)\r
@@ -1568,7 +1562,7 @@ class DscBuildData(PlatformBuildClassObject):
                 IsArray = IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])\r
                 if IsArray and not (FieldList[FieldName.strip(".")][0].startswith('{GUID') and FieldList[FieldName.strip(".")][0].endswith('}')):\r
                     try:\r
-                        Value = ValueExpressionEx(FieldList[FieldName.strip(".")][0], "VOID*", self._GuidDict)(True)\r
+                        Value = ValueExpressionEx(FieldList[FieldName.strip(".")][0], TAB_VOID, self._GuidDict)(True)\r
                     except BadExpression:\r
                         EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                         (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName.strip('.'))), FieldList[FieldName.strip(".")][1], FieldList[FieldName.strip(".")][2]))\r
@@ -1598,7 +1592,7 @@ class DscBuildData(PlatformBuildClassObject):
                         IsArray = IsFieldValueAnArray(FieldList[FieldName.strip(".")][0])\r
                         if IsArray and not (FieldList[FieldName.strip(".")][0].startswith('{GUID') and FieldList[FieldName.strip(".")][0].endswith('}')):\r
                             try:\r
-                                Value = ValueExpressionEx(FieldList[FieldName.strip(".")][0], "VOID*", self._GuidDict)(True)\r
+                                Value = ValueExpressionEx(FieldList[FieldName.strip(".")][0], TAB_VOID, self._GuidDict)(True)\r
                             except BadExpression:\r
                                 EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                                 (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName.strip('.'))), FieldList[FieldName.strip(".")][1], FieldList[FieldName.strip(".")][2]))\r
@@ -1622,7 +1616,7 @@ class DscBuildData(PlatformBuildClassObject):
             IsArray = IsFieldValueAnArray(Pcd.PcdFieldValueFromComm[FieldName.strip(".")][0])\r
             if IsArray and not (Pcd.PcdFieldValueFromComm[FieldName.strip(".")][0].startswith('{GUID') and Pcd.PcdFieldValueFromComm[FieldName.strip(".")][0].endswith('}')):\r
                 try:\r
-                    Value = ValueExpressionEx(Pcd.PcdFieldValueFromComm[FieldName.strip(".")][0], "VOID*", self._GuidDict)(True)\r
+                    Value = ValueExpressionEx(Pcd.PcdFieldValueFromComm[FieldName.strip(".")][0], TAB_VOID, self._GuidDict)(True)\r
                 except BadExpression:\r
                     EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                     (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName.strip('.'))), Pcd.PcdFieldValueFromComm[FieldName.strip(".")][1], Pcd.PcdFieldValueFromComm[FieldName.strip(".")][2]))\r
@@ -1658,7 +1652,7 @@ class DscBuildData(PlatformBuildClassObject):
         IsArray = IsFieldValueAnArray(Pcd.DefaultValueFromDec)\r
         if IsArray:\r
             try:\r
-                DefaultValueFromDec = ValueExpressionEx(Pcd.DefaultValueFromDec, "VOID*")(True)\r
+                DefaultValueFromDec = ValueExpressionEx(Pcd.DefaultValueFromDec, TAB_VOID)(True)\r
             except BadExpression:\r
                 EdkLogger.error("Build", FORMAT_INVALID, "Invalid value format for %s.%s, from DEC: %s" %\r
                                 (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, DefaultValueFromDec))\r
@@ -1679,7 +1673,7 @@ class DscBuildData(PlatformBuildClassObject):
                 IsArray = IsFieldValueAnArray(FieldList[FieldName][0])\r
                 if IsArray:\r
                     try:\r
-                        FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], "VOID*", self._GuidDict)(True)\r
+                        FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], TAB_VOID, self._GuidDict)(True)\r
                     except BadExpression:\r
                         EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                         (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1],FieldList[FieldName][2]))\r
@@ -1732,7 +1726,7 @@ class DscBuildData(PlatformBuildClassObject):
                 IsArray = IsFieldValueAnArray(FieldList)\r
                 if IsArray:\r
                     try:\r
-                        FieldList = ValueExpressionEx(FieldList, "VOID*")(True)\r
+                        FieldList = ValueExpressionEx(FieldList, TAB_VOID)(True)\r
                     except BadExpression:\r
                         EdkLogger.error("Build", FORMAT_INVALID, "Invalid value format for %s.%s, from DSC: %s" %\r
                                         (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldList))\r
@@ -1762,7 +1756,7 @@ class DscBuildData(PlatformBuildClassObject):
                     IsArray = IsFieldValueAnArray(FieldList[FieldName][0])\r
                     if IsArray:\r
                         try:\r
-                            FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], "VOID*", self._GuidDict)(True)\r
+                            FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], TAB_VOID, self._GuidDict)(True)\r
                         except BadExpression:\r
                             EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                             (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))\r
@@ -1806,7 +1800,7 @@ class DscBuildData(PlatformBuildClassObject):
                 IsArray = IsFieldValueAnArray(FieldList)\r
                 if IsArray:\r
                     try:\r
-                        FieldList = ValueExpressionEx(FieldList, "VOID*")(True)\r
+                        FieldList = ValueExpressionEx(FieldList, TAB_VOID)(True)\r
                     except BadExpression:\r
                         EdkLogger.error("Build", FORMAT_INVALID, "Invalid value format for %s.%s, from Command: %s" %\r
                                         (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldList))\r
@@ -1825,7 +1819,7 @@ class DscBuildData(PlatformBuildClassObject):
                 IsArray = IsFieldValueAnArray(FieldList[FieldName][0])\r
                 if IsArray:\r
                     try:\r
-                        FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], "VOID*", self._GuidDict)(True)\r
+                        FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], TAB_VOID, self._GuidDict)(True)\r
                     except BadExpression:\r
                         EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %\r
                                         (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))\r
@@ -2497,7 +2491,7 @@ class DscBuildData(PlatformBuildClassObject):
                 MaxSize = int(pcd.MaxDatumSize, 0)\r
             else:\r
                 MaxSize = 0\r
-            if pcd.DatumType not in ['BOOLEAN','UINT8','UINT16','UINT32','UINT64']:\r
+            if pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:\r
                 for (_, skuobj) in pcd.SkuInfoList.items():\r
                     datalen = 0\r
                     skuobj.HiiDefaultValue = StringToArray(skuobj.HiiDefaultValue)\r
index 635c311f1a4820036bb2aebfab46f25fcdb99bd1..c4647d068a6b91ed336cb9d078b3599e657f7706 100644 (file)
@@ -1007,7 +1007,7 @@ class PcdReport(object):
                         First = False\r
 \r
 \r
-                    if Pcd.DatumType in ('UINT8', 'UINT16', 'UINT32', 'UINT64'):\r
+                    if Pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
                         PcdValueNumber = int(PcdValue.strip(), 0)\r
                         if DecDefaultValue is None:\r
                             DecMatch = True\r
@@ -1112,7 +1112,7 @@ class PcdReport(object):
                             ModuleOverride = self.ModulePcdOverride.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName), {})\r
                             for ModulePath in ModuleOverride:\r
                                 ModuleDefault = ModuleOverride[ModulePath]\r
-                                if Pcd.DatumType in ('UINT8', 'UINT16', 'UINT32', 'UINT64'):\r
+                                if Pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:\r
                                     ModulePcdDefaultValueNumber = int(ModuleDefault.strip(), 0)\r
                                     Match = (ModulePcdDefaultValueNumber == PcdValueNumber)\r
                                 else:\r