BaseTools: use existing shared variable
authorCarsey, Jaben </o=Intel/ou=Americas01/cn=Workers/cn=Carsey, Jaben>
Tue, 10 Apr 2018 23:17:20 +0000 (07:17 +0800)
committerYonghong Zhu <yonghong.zhu@intel.com>
Tue, 17 Apr 2018 12:48:51 +0000 (20:48 +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>
BaseTools/Source/Python/AutoGen/GenVar.py
BaseTools/Source/Python/Common/Misc.py
BaseTools/Source/Python/Workspace/DscBuildData.py

index d222e6ed5e7ed608793cbc578e279a63bae2dc92..7a29a0edca4585b9b64bc15f8e375daf5e7513da 100644 (file)
@@ -20,6 +20,7 @@ import copy
 from Common.VariableAttributes import VariableAttributes\r
 from Common.Misc import *\r
 import collections\r
+import Common.DataType as DataType\r
 \r
 var_info = collections.namedtuple("uefi_var", "pcdindex,pcdname,defaultstoragename,skuname,var_name, var_guid, var_offset,var_attribute,pcd_default_value, default_value, data_type")\r
 NvStorageHeaderSize = 28\r
@@ -141,7 +142,7 @@ class VariableMgr(object):
             default_data_buffer = ""\r
             others_data_buffer = ""\r
             tail = None\r
-            default_sku_default = indexedvarinfo.get(index).get(("DEFAULT","STANDARD"))\r
+            default_sku_default = indexedvarinfo.get(index).get(("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT))\r
 \r
             if default_sku_default.data_type not in ["UINT8","UINT16","UINT32","UINT64","BOOLEAN"]:\r
                 var_max_len = max([len(var_item.default_value.split(",")) for var_item in sku_var_info.values()])\r
@@ -154,13 +155,13 @@ class VariableMgr(object):
             for item in default_data_buffer:\r
                 default_data_array += unpack("B",item)\r
 \r
-            if ("DEFAULT","STANDARD") not in var_data:\r
-                var_data[("DEFAULT","STANDARD")] = collections.OrderedDict()\r
-            var_data[("DEFAULT","STANDARD")][index] = (default_data_buffer,sku_var_info[("DEFAULT","STANDARD")])\r
+            if ("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT) not in var_data:\r
+                var_data[("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT)] = collections.OrderedDict()\r
+            var_data[("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT)][index] = (default_data_buffer,sku_var_info[("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT)])\r
 \r
             for (skuid,defaultstoragename) in indexedvarinfo.get(index):\r
                 tail = None\r
-                if (skuid,defaultstoragename) == ("DEFAULT","STANDARD"):\r
+                if (skuid,defaultstoragename) == ("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT):\r
                     continue\r
                 other_sku_other = indexedvarinfo.get(index).get((skuid,defaultstoragename))\r
 \r
@@ -189,7 +190,7 @@ class VariableMgr(object):
         if not var_data:\r
             return []\r
 \r
-        pcds_default_data = var_data.get(("DEFAULT","STANDARD"),{})\r
+        pcds_default_data = var_data.get(("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT),{})\r
         NvStoreDataBuffer = ""\r
         var_data_offset = collections.OrderedDict()\r
         offset = NvStorageHeaderSize\r
@@ -219,7 +220,7 @@ class VariableMgr(object):
 \r
         data_delta_structure_buffer = ""\r
         for skuname,defaultstore in var_data:\r
-            if (skuname,defaultstore) == ("DEFAULT","STANDARD"):\r
+            if (skuname,defaultstore) == ("DEFAULT",DataType.TAB_DEFAULT_STORES_DEFAULT):\r
                 continue\r
             pcds_sku_data = var_data.get((skuname,defaultstore))\r
             delta_data_set = []\r
index 23c1a4a0b236ec9e9068499e451045de18def852..5ffd8cd0223dbeb12f8f0428153de5509da0ea00 100644 (file)
@@ -1922,7 +1922,7 @@ class DefaultStore():
             return (str(minvalue), self.DefaultStores[str(minvalue)])\r
     def GetMin(self,DefaultSIdList):\r
         if not DefaultSIdList:\r
-            return "STANDARD"\r
+            return TAB_DEFAULT_STORES_DEFAULT\r
         storeidset = {storeid for storeid, storename in self.DefaultStores.values() if storename in DefaultSIdList}\r
         if not storeidset:\r
             return ""\r
index 6766f059b0f76942384dc5205b412252f0cda9c1..fcd3132860d5ba9a3d61be8488000864824e7599 100644 (file)
@@ -947,10 +947,10 @@ class DscBuildData(PlatformBuildClassObject):
         for pcd in HiiPcd:\r
             for skuid in pcd.SkuInfoList:\r
                 skuobj = pcd.SkuInfoList.get(skuid)\r
-                if "STANDARD" not in skuobj.DefaultStoreDict:\r
+                if TAB_DEFAULT_STORES_DEFAULT not in skuobj.DefaultStoreDict:\r
                     PcdDefaultStoreSet = set([defaultstorename  for defaultstorename in skuobj.DefaultStoreDict])\r
                     mindefaultstorename = DefaultStoreMgr.GetMin(PcdDefaultStoreSet)\r
-                    skuobj.DefaultStoreDict['STANDARD'] = copy.deepcopy(skuobj.DefaultStoreDict[mindefaultstorename])\r
+                    skuobj.DefaultStoreDict[TAB_DEFAULT_STORES_DEFAULT] = copy.deepcopy(skuobj.DefaultStoreDict[mindefaultstorename])\r
         return Pcds\r
 \r
     def RecoverCommandLinePcd(self):\r
@@ -1325,7 +1325,7 @@ class DscBuildData(PlatformBuildClassObject):
                         str_pcd_obj_str.DefaultFromDSC = {skuname:{defaultstore: str_pcd_obj.SkuInfoList[skuname].DefaultStoreDict.get(defaultstore, str_pcd_obj.SkuInfoList[skuname].DefaultValue) for defaultstore in DefaultStores} for skuname in str_pcd_obj.SkuInfoList}\r
                 for str_pcd_data in StrPcdSet[str_pcd]:\r
                     if str_pcd_data[3] in SkuIds:\r
-                        str_pcd_obj_str.AddOverrideValue(str_pcd_data[2], str(str_pcd_data[6]), 'DEFAULT' if str_pcd_data[3] == 'COMMON' else str_pcd_data[3],'STANDARD' if str_pcd_data[4] == 'COMMON' else str_pcd_data[4], self.MetaFile.File if self.WorkspaceDir not in self.MetaFile.File else self.MetaFile.File[len(self.WorkspaceDir) if self.WorkspaceDir.endswith(os.path.sep) else len(self.WorkspaceDir)+1:],LineNo=str_pcd_data[5])\r
+                        str_pcd_obj_str.AddOverrideValue(str_pcd_data[2], str(str_pcd_data[6]), 'DEFAULT' if str_pcd_data[3] == 'COMMON' else str_pcd_data[3],TAB_DEFAULT_STORES_DEFAULT if str_pcd_data[4] == 'COMMON' else str_pcd_data[4], self.MetaFile.File if self.WorkspaceDir not in self.MetaFile.File else self.MetaFile.File[len(self.WorkspaceDir) if self.WorkspaceDir.endswith(os.path.sep) else len(self.WorkspaceDir)+1:],LineNo=str_pcd_data[5])\r
                 S_pcd_set[str_pcd[1], str_pcd[0]] = str_pcd_obj_str\r
             else:\r
                 EdkLogger.error('build', PARSER_ERROR,\r
@@ -1359,7 +1359,7 @@ class DscBuildData(PlatformBuildClassObject):
                             NoDefault = True\r
                             break\r
                         nextskuid = self.SkuIdMgr.GetNextSkuId(nextskuid)\r
-                    stru_pcd.SkuOverrideValues[skuid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid]) if not NoDefault else copy.deepcopy({defaultstorename: stru_pcd.DefaultValues for defaultstorename in DefaultStores} if DefaultStores else {'STANDARD':stru_pcd.DefaultValues})\r
+                    stru_pcd.SkuOverrideValues[skuid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid]) if not NoDefault else copy.deepcopy({defaultstorename: stru_pcd.DefaultValues for defaultstorename in DefaultStores} if DefaultStores else {TAB_DEFAULT_STORES_DEFAULT:stru_pcd.DefaultValues})\r
                     if not NoDefault:\r
                         stru_pcd.ValueChain[(skuid,'')]= (nextskuid,'')\r
             if stru_pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:\r
@@ -1744,10 +1744,10 @@ class DscBuildData(PlatformBuildClassObject):
         CApp = CApp + '  UINT32  FieldSize;\n'\r
         CApp = CApp + '  CHAR8   *Value;\n'\r
 \r
-        CApp = CApp + "// SkuName: %s,  DefaultStoreName: %s \n" % ('DEFAULT', 'STANDARD')\r
+        CApp = CApp + "// SkuName: %s,  DefaultStoreName: %s \n" % ('DEFAULT', TAB_DEFAULT_STORES_DEFAULT)\r
         inherit_OverrideValues = Pcd.SkuOverrideValues[SkuName]\r
-        if (SkuName,DefaultStoreName) == ('DEFAULT','STANDARD'):\r
-            pcddefaultvalue = Pcd.DefaultFromDSC.get('DEFAULT',{}).get('STANDARD', Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue\r
+        if (SkuName,DefaultStoreName) == ('DEFAULT',TAB_DEFAULT_STORES_DEFAULT):\r
+            pcddefaultvalue = Pcd.DefaultFromDSC.get('DEFAULT',{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue\r
         else:\r
             if not Pcd.DscRawValue:\r
                 # handle the case that structure pcd is not appear in DSC\r
@@ -1766,14 +1766,14 @@ class DscBuildData(PlatformBuildClassObject):
                                         (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldList))\r
                 Value, ValueSize = ParseFieldValue (FieldList)\r
 \r
-                if (SkuName,DefaultStoreName) == ('DEFAULT','STANDARD'):\r
+                if (SkuName,DefaultStoreName) == ('DEFAULT',TAB_DEFAULT_STORES_DEFAULT):\r
                     if isinstance(Value, str):\r
-                        CApp = CApp + '  Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DefaultFromDSC.get('DEFAULT',{}).get('STANDARD', Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)\r
+                        CApp = CApp + '  Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DefaultFromDSC.get('DEFAULT',{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)\r
                     elif IsArray:\r
                     #\r
                     # Use memcpy() to copy value into field\r
                     #\r
-                        CApp = CApp + '  Value     = %s; // From DSC Default Value %s\n' % (self.IntToCString(Value, ValueSize), Pcd.DefaultFromDSC.get('DEFAULT',{}).get('STANDARD', Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)\r
+                        CApp = CApp + '  Value     = %s; // From DSC Default Value %s\n' % (self.IntToCString(Value, ValueSize), Pcd.DefaultFromDSC.get('DEFAULT',{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)\r
                         CApp = CApp + '  memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
                 else:\r
                     if isinstance(Value, str):\r
@@ -1785,7 +1785,7 @@ class DscBuildData(PlatformBuildClassObject):
                         CApp = CApp + '  Value     = %s; // From DSC Default Value %s\n' % (self.IntToCString(Value, ValueSize), Pcd.DscRawValue.get(SkuName,{}).get(DefaultStoreName))\r
                         CApp = CApp + '  memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
                 continue\r
-            if (SkuName,DefaultStoreName) == ('DEFAULT','STANDARD') or (( (SkuName,'') not in Pcd.ValueChain) and ( (SkuName,DefaultStoreName) not in Pcd.ValueChain )):\r
+            if (SkuName,DefaultStoreName) == ('DEFAULT',TAB_DEFAULT_STORES_DEFAULT) or (( (SkuName,'') not in Pcd.ValueChain) and ( (SkuName,DefaultStoreName) not in Pcd.ValueChain )):\r
                 for FieldName in FieldList:\r
                     IsArray = IsFieldValueAnArray(FieldList[FieldName][0])\r
                     if IsArray:\r
@@ -1941,7 +1941,7 @@ class DscBuildData(PlatformBuildClassObject):
             if Pcd.Type not in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],\r
                         self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:\r
                 for skuname in self.SkuIdMgr.GetSkuChain(SkuName):\r
-                    storeset = [DefaultStoreName] if DefaultStoreName == 'STANDARD' else ['STANDARD', DefaultStoreName]\r
+                    storeset = [DefaultStoreName] if DefaultStoreName == TAB_DEFAULT_STORES_DEFAULT else [TAB_DEFAULT_STORES_DEFAULT, DefaultStoreName]\r
                     for defaultstorenameitem in storeset:\r
                         CApp = CApp + "// SkuName: %s,  DefaultStoreName: %s \n" % (skuname, defaultstorenameitem)\r
                         CApp = CApp + self.GenerateInitValueStatement(Pcd,skuname,defaultstorenameitem)\r
@@ -1949,7 +1949,7 @@ class DscBuildData(PlatformBuildClassObject):
                         break\r
             else:\r
                 CApp = CApp + "// SkuName: %s,  DefaultStoreName: STANDARD \n" % self.SkuIdMgr.SystemSkuId\r
-                CApp = CApp + self.GenerateInitValueStatement(Pcd,self.SkuIdMgr.SystemSkuId,"STANDARD")\r
+                CApp = CApp + self.GenerateInitValueStatement(Pcd,self.SkuIdMgr.SystemSkuId,TAB_DEFAULT_STORES_DEFAULT)\r
             CApp = CApp + self.GenerateCommandLineValueStatement(Pcd)\r
             #\r
             # Set new PCD value and size\r
@@ -1991,7 +1991,7 @@ class DscBuildData(PlatformBuildClassObject):
             CApp = CApp + self.GenerateCommandLineValue(Pcd)\r
             if not Pcd.SkuOverrideValues or Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],\r
                         self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:\r
-                CApp = CApp + self.GenerateInitValueFunction(Pcd,self.SkuIdMgr.SystemSkuId, 'STANDARD')\r
+                CApp = CApp + self.GenerateInitValueFunction(Pcd,self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT)\r
             else:\r
                 for SkuName in self.SkuIdMgr.SkuOverrideOrder():\r
                     if SkuName not in Pcd.SkuOverrideValues:\r
@@ -2000,7 +2000,7 @@ class DscBuildData(PlatformBuildClassObject):
                         CApp = CApp + self.GenerateInitValueFunction(Pcd,SkuName,DefaultStoreName)\r
             if not Pcd.SkuOverrideValues or Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],\r
                         self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:\r
-                InitByteValue, CApp = self.GenerateInitializeFunc(self.SkuIdMgr.SystemSkuId, 'STANDARD', Pcd, InitByteValue, CApp)\r
+                InitByteValue, CApp = self.GenerateInitializeFunc(self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT, Pcd, InitByteValue, CApp)\r
             else:\r
                 for SkuName in self.SkuIdMgr.SkuOverrideOrder():\r
                     if SkuName not in Pcd.SkuOverrideValues:\r
@@ -2016,7 +2016,7 @@ class DscBuildData(PlatformBuildClassObject):
         CApp = CApp + '{\n'\r
         for Pcd in StructuredPcds.values():\r
             if not Pcd.SkuOverrideValues or Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:\r
-                CApp = CApp + '  Initialize_%s_%s_%s_%s();\n' % (self.SkuIdMgr.SystemSkuId, 'STANDARD', Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
+                CApp = CApp + '  Initialize_%s_%s_%s_%s();\n' % (self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
             else:\r
                 for SkuName in self.SkuIdMgr.SkuOverrideOrder():\r
                     if SkuName not in Pcd.SkuOverrideValues:\r
@@ -2340,14 +2340,14 @@ class DscBuildData(PlatformBuildClassObject):
         if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD], self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:\r
             if self.SkuIdMgr.SystemSkuId not in Pcd.DscRawValue:\r
                 Pcd.DscRawValue[self.SkuIdMgr.SystemSkuId] = {}\r
-            Pcd.DscRawValue[self.SkuIdMgr.SystemSkuId]['STANDARD'] = Pcd.DefaultValue\r
+            Pcd.DscRawValue[self.SkuIdMgr.SystemSkuId][TAB_DEFAULT_STORES_DEFAULT] = Pcd.DefaultValue\r
         for skuname in Pcd.SkuInfoList:\r
             Pcd.DscRawValue[skuname] = {}\r
             if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:\r
                 for defaultstore in Pcd.SkuInfoList[skuname].DefaultStoreDict:\r
                     Pcd.DscRawValue[skuname][defaultstore] = Pcd.SkuInfoList[skuname].DefaultStoreDict[defaultstore]\r
             else:\r
-                Pcd.DscRawValue[skuname]['STANDARD'] = Pcd.SkuInfoList[skuname].DefaultValue\r
+                Pcd.DscRawValue[skuname][TAB_DEFAULT_STORES_DEFAULT] = Pcd.SkuInfoList[skuname].DefaultValue\r
     def CompletePcdValues(self,PcdSet):\r
         Pcds = {}\r
         DefaultStoreObj = DefaultStore(self._GetDefaultStores())\r
@@ -2412,7 +2412,7 @@ class DscBuildData(PlatformBuildClassObject):
             SkuName = 'DEFAULT' if SkuName == 'COMMON' else SkuName\r
             DefaultStore = DefaultStore.upper()\r
             if DefaultStore == "COMMON":\r
-                DefaultStore = "STANDARD"\r
+                DefaultStore = TAB_DEFAULT_STORES_DEFAULT\r
             if SkuName not in AvailableSkuIdSet:\r
                 EdkLogger.error('build', PARAMETER_INVALID, 'Sku %s is not defined in [SkuIds] section' % SkuName,\r
                                             File=self.MetaFile, Line=Dummy5)\r