summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
e1a76b4)
prepend functiosn with @staticmethod
change calls to use class name, not self
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>
if not IsValidWord(Record[1]):\r
EdkLogger.error('build', FORMAT_INVALID, "The format of the Sku ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",\r
File=self.MetaFile, Line=Record[-1])\r
if not IsValidWord(Record[1]):\r
EdkLogger.error('build', FORMAT_INVALID, "The format of the Sku ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",\r
File=self.MetaFile, Line=Record[-1])\r
- self._SkuIds[Record[1].upper()] = (str(self.ToInt(Record[0])), Record[1].upper(), Record[2].upper())\r
+ self._SkuIds[Record[1].upper()] = (str(DscBuildData.ToInt(Record[0])), Record[1].upper(), Record[2].upper())\r
if 'DEFAULT' not in self._SkuIds:\r
self._SkuIds['DEFAULT'] = ("0","DEFAULT","DEFAULT")\r
if 'COMMON' not in self._SkuIds:\r
self._SkuIds['COMMON'] = ("0","DEFAULT","DEFAULT")\r
return self._SkuIds\r
if 'DEFAULT' not in self._SkuIds:\r
self._SkuIds['DEFAULT'] = ("0","DEFAULT","DEFAULT")\r
if 'COMMON' not in self._SkuIds:\r
self._SkuIds['COMMON'] = ("0","DEFAULT","DEFAULT")\r
return self._SkuIds\r
- def ToInt(self,intstr):\r
+\r
+ @staticmethod\r
+ def ToInt(intstr):\r
return int(intstr,16) if intstr.upper().startswith("0X") else int(intstr)\r
return int(intstr,16) if intstr.upper().startswith("0X") else int(intstr)\r
def _GetDefaultStores(self):\r
if self.DefaultStores is None:\r
self.DefaultStores = OrderedDict()\r
def _GetDefaultStores(self):\r
if self.DefaultStores is None:\r
self.DefaultStores = OrderedDict()\r
if not IsValidWord(Record[1]):\r
EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",\r
File=self.MetaFile, Line=Record[-1])\r
if not IsValidWord(Record[1]):\r
EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",\r
File=self.MetaFile, Line=Record[-1])\r
- self.DefaultStores[Record[1].upper()] = (self.ToInt(Record[0]),Record[1].upper())\r
+ self.DefaultStores[Record[1].upper()] = (DscBuildData.ToInt(Record[0]),Record[1].upper())\r
if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:\r
self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)\r
GlobalData.gDefaultStores = self.DefaultStores.keys()\r
if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:\r
self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)\r
GlobalData.gDefaultStores = self.DefaultStores.keys()\r
EdkLogger.error('build', AUTOGEN_ERROR, "The Pcd %s is not found in the DEC file." % (DisplayName))\r
pcdvalue = pcdvalue.replace("\\\\\\'", '\\\\\\"').replace('\\\'', '\'').replace('\\\\\\"', "\\'")\r
if FieldName:\r
EdkLogger.error('build', AUTOGEN_ERROR, "The Pcd %s is not found in the DEC file." % (DisplayName))\r
pcdvalue = pcdvalue.replace("\\\\\\'", '\\\\\\"').replace('\\\'', '\'').replace('\\\\\\"', "\\'")\r
if FieldName:\r
- pcdvalue = self.HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, pcdvalue, PcdDatumType, self._GuidDict, FieldName)\r
+ pcdvalue = DscBuildData.HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, pcdvalue, PcdDatumType, self._GuidDict, FieldName)\r
- pcdvalue = self.HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, pcdvalue, PcdDatumType, self._GuidDict)\r
+ pcdvalue = DscBuildData.HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, pcdvalue, PcdDatumType, self._GuidDict)\r
IsValid, Cause = CheckPcdDatum(PcdDatumType, pcdvalue)\r
if not IsValid:\r
EdkLogger.error("build", FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))\r
IsValid, Cause = CheckPcdDatum(PcdDatumType, pcdvalue)\r
if not IsValid:\r
EdkLogger.error("build", FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))\r
if (TokenSpaceGuidCName, TokenCName) == (PcdItem.TokenSpaceGuidCName, PcdItem.TokenCName) and FieldName =="":\r
PcdItem.DefaultValue = pcdvalue\r
\r
if (TokenSpaceGuidCName, TokenCName) == (PcdItem.TokenSpaceGuidCName, PcdItem.TokenCName) and FieldName =="":\r
PcdItem.DefaultValue = pcdvalue\r
\r
- def HandleFlexiblePcd(self, TokenSpaceGuidCName, TokenCName, PcdValue, PcdDatumType, GuidDict, FieldName=''):\r
+ @staticmethod\r
+ def HandleFlexiblePcd(TokenSpaceGuidCName, TokenCName, PcdValue, PcdDatumType, GuidDict, FieldName=''):\r
if FieldName:\r
IsArray = False\r
TokenCName += '.' + FieldName\r
if FieldName:\r
IsArray = False\r
TokenCName += '.' + FieldName\r
structure_pcd_data[(item[0],item[1])].append(item)\r
\r
return structure_pcd_data\r
structure_pcd_data[(item[0],item[1])].append(item)\r
\r
return structure_pcd_data\r
- def OverrideByFdfComm(self,StruPcds):\r
+\r
+ @staticmethod\r
+ def OverrideByFdfComm(StruPcds):\r
StructurePcdInCom = OrderedDict()\r
for item in GlobalData.BuildOptionPcd:\r
if len(item) == 5 and (item[1],item[0]) in StruPcds:\r
StructurePcdInCom = OrderedDict()\r
for item in GlobalData.BuildOptionPcd:\r
if len(item) == 5 and (item[1],item[0]) in StruPcds:\r
Pcd.PcdFieldValueFromComm[field][1] = FieldValues[field][1][0]\r
Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]\r
return StruPcds\r
Pcd.PcdFieldValueFromComm[field][1] = FieldValues[field][1][0]\r
Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]\r
return StruPcds\r
def OverrideByFdfCommOverAll(self,AllPcds):\r
def CheckStructureInComm(commpcds):\r
if not commpcds:\r
def OverrideByFdfCommOverAll(self,AllPcds):\r
def CheckStructureInComm(commpcds):\r
if not commpcds:\r
if defaultstoreid not in stru_pcd.SkuOverrideValues[skuid]:\r
stru_pcd.SkuOverrideValues[skuid][defaultstoreid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid][mindefaultstorename])\r
stru_pcd.ValueChain[(skuid,defaultstoreid)]= (nextskuid,mindefaultstorename)\r
if defaultstoreid not in stru_pcd.SkuOverrideValues[skuid]:\r
stru_pcd.SkuOverrideValues[skuid][defaultstoreid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid][mindefaultstorename])\r
stru_pcd.ValueChain[(skuid,defaultstoreid)]= (nextskuid,mindefaultstorename)\r
- S_pcd_set = self.OverrideByFdfComm(S_pcd_set)\r
+ S_pcd_set = DscBuildData.OverrideByFdfComm(S_pcd_set)\r
Str_Pcd_Values = self.GenerateByteArrayValue(S_pcd_set)\r
if Str_Pcd_Values:\r
for (skuname,StoreName,PcdGuid,PcdName,PcdValue) in Str_Pcd_Values:\r
Str_Pcd_Values = self.GenerateByteArrayValue(S_pcd_set)\r
if Str_Pcd_Values:\r
for (skuname,StoreName,PcdGuid,PcdName,PcdValue) in Str_Pcd_Values:\r
\r
return str(max([pcd_size for pcd_size in [get_length(item) for item in sku_values]]))\r
\r
\r
return str(max([pcd_size for pcd_size in [get_length(item) for item in sku_values]]))\r
\r
- def ExecuteCommand (self, Command):\r
+ @staticmethod\r
+ def ExecuteCommand (Command):\r
try:\r
Process = subprocess.Popen(Command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)\r
except:\r
try:\r
Process = subprocess.Popen(Command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)\r
except:\r
Result = Process.communicate()\r
return Process.returncode, Result[0], Result[1]\r
\r
Result = Process.communicate()\r
return Process.returncode, Result[0], Result[1]\r
\r
- def IntToCString(self, Value, ValueSize):\r
+ @staticmethod\r
+ def IntToCString(Value, ValueSize):\r
Result = '"'\r
if not isinstance (Value, str):\r
for Index in range(0, ValueSize):\r
Result = '"'\r
if not isinstance (Value, str):\r
for Index in range(0, ValueSize):\r
Result = Result + '"'\r
return Result\r
\r
Result = Result + '"'\r
return Result\r
\r
- def GetPcdMaxSize(self,Pcd):\r
+ @staticmethod\r
+ def GetPcdMaxSize(Pcd):\r
MaxSize = int(Pcd.MaxDatumSize,10) if Pcd.MaxDatumSize else 0\r
if Pcd.DatumType not in ['BOOLEAN','UINT8','UINT16','UINT32','UINT64']:\r
if Pcd.PcdValueFromComm:\r
MaxSize = int(Pcd.MaxDatumSize,10) if Pcd.MaxDatumSize else 0\r
if Pcd.DatumType not in ['BOOLEAN','UINT8','UINT16','UINT32','UINT64']:\r
if Pcd.PcdValueFromComm:\r
elif Pcd.DatumType == 'UINT64':\r
MaxSize = 8\r
return MaxSize\r
elif Pcd.DatumType == 'UINT64':\r
MaxSize = 8\r
return MaxSize\r
def GenerateSizeFunction(self,Pcd):\r
CApp = "// Default Value in Dec \n"\r
CApp = CApp + "void Cal_%s_%s_Size(UINT32 *Size){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
def GenerateSizeFunction(self,Pcd):\r
CApp = "// Default Value in Dec \n"\r
CApp = CApp + "void Cal_%s_%s_Size(UINT32 *Size){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
while '[' in FieldName:\r
FieldName = FieldName.rsplit('[', 1)[0]\r
CApp = CApp + ' __FLEXIBLE_SIZE(*Size, %s, %s, %d); // From %s Line %d Value %s \n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1, Pcd.PcdFieldValueFromComm[FieldName_ori][1], Pcd.PcdFieldValueFromComm[FieldName_ori][2], Pcd.PcdFieldValueFromComm[FieldName_ori][0])\r
while '[' in FieldName:\r
FieldName = FieldName.rsplit('[', 1)[0]\r
CApp = CApp + ' __FLEXIBLE_SIZE(*Size, %s, %s, %d); // From %s Line %d Value %s \n' % (Pcd.DatumType, FieldName.strip("."), ArrayIndex + 1, Pcd.PcdFieldValueFromComm[FieldName_ori][1], Pcd.PcdFieldValueFromComm[FieldName_ori][2], Pcd.PcdFieldValueFromComm[FieldName_ori][0])\r
- CApp = CApp + " *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (self.GetPcdMaxSize(Pcd),self.GetPcdMaxSize(Pcd),self.GetPcdMaxSize(Pcd))\r
+ CApp = CApp + " *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (DscBuildData.GetPcdMaxSize(Pcd),DscBuildData.GetPcdMaxSize(Pcd),DscBuildData.GetPcdMaxSize(Pcd))\r
CApp = CApp + "}\n"\r
return CApp\r
CApp = CApp + "}\n"\r
return CApp\r
- def GenerateSizeStatments(self,Pcd):\r
+\r
+ @staticmethod\r
+ def GenerateSizeStatments(Pcd):\r
CApp = ' Size = sizeof(%s);\n' % (Pcd.DatumType)\r
CApp = CApp + ' Cal_%s_%s_Size(&Size);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
CApp = ' Size = sizeof(%s);\n' % (Pcd.DatumType)\r
CApp = CApp + ' Cal_%s_%s_Size(&Size);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
def GenerateDefaultValueAssignFunction(self,Pcd):\r
CApp = "// Default value in Dec \n"\r
CApp = CApp + "void Assign_%s_%s_Default_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)\r
def GenerateDefaultValueAssignFunction(self,Pcd):\r
CApp = "// Default value in Dec \n"\r
CApp = CApp + "void Assign_%s_%s_Default_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)\r
#\r
# Use memcpy() to copy value into field\r
#\r
#\r
# Use memcpy() to copy value into field\r
#\r
- CApp = CApp + ' Value = %s; // From DEC Default Value %s\n' % (self.IntToCString(Value, ValueSize), Pcd.DefaultValueFromDec)\r
+ CApp = CApp + ' Value = %s; // From DEC Default Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), Pcd.DefaultValueFromDec)\r
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
for FieldList in [Pcd.DefaultValues]:\r
if not FieldList:\r
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
for FieldList in [Pcd.DefaultValues]:\r
if not FieldList:\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
- CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (self.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
+ CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
- def GenerateDefaultValueAssignStatement(self,Pcd):\r
+\r
+ @staticmethod\r
+ def GenerateDefaultValueAssignStatement(Pcd):\r
CApp = ' Assign_%s_%s_Default_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
CApp = ' Assign_%s_%s_Default_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
def GenerateInitValueFunction(self,Pcd,SkuName,DefaultStoreName):\r
CApp = "// Value in Dsc for Sku: %s, DefaultStore %s\n" % (SkuName,DefaultStoreName)\r
CApp = CApp + "void Assign_%s_%s_%s_%s_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName,Pcd.DatumType)\r
def GenerateInitValueFunction(self,Pcd,SkuName,DefaultStoreName):\r
CApp = "// Value in Dsc for Sku: %s, DefaultStore %s\n" % (SkuName,DefaultStoreName)\r
CApp = CApp + "void Assign_%s_%s_%s_%s_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName,Pcd.DatumType)\r
#\r
# Use memcpy() to copy value into field\r
#\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(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)\r
+ CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.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
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
else:\r
if isinstance(Value, str):\r
#\r
# Use memcpy() to copy value into field\r
#\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.DscRawValue.get(SkuName,{}).get(DefaultStoreName))\r
+ CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.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',TAB_DEFAULT_STORES_DEFAULT) or (( (SkuName,'') not in Pcd.ValueChain) and ( (SkuName,DefaultStoreName) not in Pcd.ValueChain )):\r
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
continue\r
if (SkuName,DefaultStoreName) == ('DEFAULT',TAB_DEFAULT_STORES_DEFAULT) or (( (SkuName,'') not in Pcd.ValueChain) and ( (SkuName,DefaultStoreName) not in Pcd.ValueChain )):\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
- CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (self.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
+ CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
- def GenerateInitValueStatement(self,Pcd,SkuName,DefaultStoreName):\r
+\r
+ @staticmethod\r
+ def GenerateInitValueStatement(Pcd,SkuName,DefaultStoreName):\r
CApp = ' Assign_%s_%s_%s_%s_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName)\r
return CApp\r
CApp = ' Assign_%s_%s_%s_%s_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName)\r
return CApp\r
def GenerateCommandLineValue(self,Pcd):\r
CApp = "// Value in CommandLine\n"\r
CApp = CApp + "void Assign_%s_%s_CommandLine_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)\r
def GenerateCommandLineValue(self,Pcd):\r
CApp = "// Value in CommandLine\n"\r
CApp = CApp + "void Assign_%s_%s_CommandLine_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)\r
#\r
# Use memcpy() to copy value into field\r
#\r
#\r
# Use memcpy() to copy value into field\r
#\r
- CApp = CApp + ' Value = %s; // From Command Line.\n' % (self.IntToCString(Value, ValueSize))\r
+ CApp = CApp + ' Value = %s; // From Command Line.\n' % (DscBuildData.IntToCString(Value, ValueSize))\r
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
continue\r
for FieldName in FieldList:\r
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)\r
continue\r
for FieldName in FieldList:\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
# Use memcpy() to copy value into field\r
#\r
CApp = CApp + ' FieldSize = __FIELD_SIZE(%s, %s);\n' % (Pcd.DatumType, FieldName)\r
- CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (self.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
+ CApp = CApp + ' Value = %s; // From %s Line %d Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' memcpy (&Pcd->%s, Value, (FieldSize > 0 && FieldSize < %d) ? FieldSize : %d);\n' % (FieldName, ValueSize, ValueSize)\r
else:\r
if ValueSize > 4:\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
CApp = CApp + ' Pcd->%s = %d; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])\r
CApp = CApp + "}\n"\r
return CApp\r
- def GenerateCommandLineValueStatement(self,Pcd):\r
+\r
+ @staticmethod\r
+ def GenerateCommandLineValueStatement(Pcd):\r
CApp = ' Assign_%s_%s_CommandLine_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
CApp = ' Assign_%s_%s_CommandLine_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)\r
return CApp\r
def GenerateInitializeFunc(self, SkuName, DefaultStore, Pcd, InitByteValue, CApp):\r
OverrideValues = {DefaultStore:""}\r
if Pcd.SkuOverrideValues:\r
def GenerateInitializeFunc(self, SkuName, DefaultStore, Pcd, InitByteValue, CApp):\r
OverrideValues = {DefaultStore:""}\r
if Pcd.SkuOverrideValues:\r
# in a structure. The size formula for this case is:\r
# OFFSET_OF(FlexbleArrayField) + sizeof(FlexibleArray[0]) * (HighestIndex + 1)\r
#\r
# in a structure. The size formula for this case is:\r
# OFFSET_OF(FlexbleArrayField) + sizeof(FlexibleArray[0]) * (HighestIndex + 1)\r
#\r
- CApp = CApp + self.GenerateSizeStatments(Pcd)\r
+ CApp = CApp + DscBuildData.GenerateSizeStatments(Pcd)\r
\r
#\r
# Allocate and zero buffer for the PCD\r
\r
#\r
# Allocate and zero buffer for the PCD\r
#\r
# Assign field values in PCD\r
#\r
#\r
# Assign field values in PCD\r
#\r
- CApp = CApp + self.GenerateDefaultValueAssignStatement(Pcd)\r
+ CApp = CApp + DscBuildData.GenerateDefaultValueAssignStatement(Pcd)\r
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 == 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
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 == 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
+ CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd,skuname,defaultstorenameitem)\r
if skuname == SkuName:\r
break\r
else:\r
CApp = CApp + "// SkuName: %s, DefaultStoreName: STANDARD \n" % self.SkuIdMgr.SystemSkuId\r
if skuname == SkuName:\r
break\r
else:\r
CApp = CApp + "// SkuName: %s, DefaultStoreName: STANDARD \n" % self.SkuIdMgr.SystemSkuId\r
- CApp = CApp + self.GenerateInitValueStatement(Pcd,self.SkuIdMgr.SystemSkuId,TAB_DEFAULT_STORES_DEFAULT)\r
- CApp = CApp + self.GenerateCommandLineValueStatement(Pcd)\r
+ CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd,self.SkuIdMgr.SystemSkuId,TAB_DEFAULT_STORES_DEFAULT)\r
+ CApp = CApp + DscBuildData.GenerateCommandLineValueStatement(Pcd)\r
#\r
# Set new PCD value and size\r
#\r
#\r
# Set new PCD value and size\r
#\r
Messages = ''\r
if sys.platform == "win32":\r
MakeCommand = 'nmake -f %s' % (MakeFileName)\r
Messages = ''\r
if sys.platform == "win32":\r
MakeCommand = 'nmake -f %s' % (MakeFileName)\r
- returncode, StdOut, StdErr = self.ExecuteCommand (MakeCommand)\r
+ returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (MakeCommand)\r
Messages = StdOut\r
else:\r
MakeCommand = 'make -f %s' % (MakeFileName)\r
Messages = StdOut\r
else:\r
MakeCommand = 'make -f %s' % (MakeFileName)\r
- returncode, StdOut, StdErr = self.ExecuteCommand (MakeCommand)\r
+ returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (MakeCommand)\r
Messages = StdErr\r
Messages = Messages.split('\n')\r
MessageGroup = []\r
Messages = StdErr\r
Messages = Messages.split('\n')\r
MessageGroup = []\r
else:\r
EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % MakeCommand)\r
\r
else:\r
EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % MakeCommand)\r
\r
- if self.NeedUpdateOutput(OutputValueFile, PcdValueInitExe ,InputValueFile):\r
+ if DscBuildData.NeedUpdateOutput(OutputValueFile, PcdValueInitExe ,InputValueFile):\r
Command = PcdValueInitExe + ' -i %s -o %s' % (InputValueFile, OutputValueFile)\r
Command = PcdValueInitExe + ' -i %s -o %s' % (InputValueFile, OutputValueFile)\r
- returncode, StdOut, StdErr = self.ExecuteCommand (Command)\r
+ returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (Command)\r
if returncode <> 0:\r
EdkLogger.warn('Build', COMMAND_FAILURE, 'Can not collect output from command: %s' % Command)\r
\r
if returncode <> 0:\r
EdkLogger.warn('Build', COMMAND_FAILURE, 'Can not collect output from command: %s' % Command)\r
\r
StructurePcdSet.append((PcdInfo[0],PcdInfo[1], PcdInfo[2], PcdInfo[3], PcdValue[2].strip()))\r
return StructurePcdSet\r
\r
StructurePcdSet.append((PcdInfo[0],PcdInfo[1], PcdInfo[2], PcdInfo[3], PcdValue[2].strip()))\r
return StructurePcdSet\r
\r
- def NeedUpdateOutput(self,OutputFile, ValueCFile, StructureInput):\r
+ @staticmethod\r
+ def NeedUpdateOutput(OutputFile, ValueCFile, StructureInput):\r
if not os.path.exists(OutputFile):\r
return True\r
if os.stat(OutputFile).st_mtime <= os.stat(ValueCFile).st_mtime:\r
if not os.path.exists(OutputFile):\r
return True\r
if os.stat(OutputFile).st_mtime <= os.stat(ValueCFile).st_mtime:\r
-\r
- def CompareVarAttr(self, Attr1, Attr2):\r
+ @staticmethod\r
+ def CompareVarAttr(Attr1, Attr2):\r
if not Attr1 or not Attr2: # for empty string\r
return True\r
Attr1s = [attr.strip() for attr in Attr1.split(",")]\r
if not Attr1 or not Attr2: # for empty string\r
return True\r
Attr1s = [attr.strip() for attr in Attr1.split(",")]\r
return True\r
else:\r
return False\r
return True\r
else:\r
return False\r
def CopyDscRawValue(self,Pcd):\r
if Pcd.DscRawValue is None:\r
Pcd.DscRawValue = dict()\r
def CopyDscRawValue(self,Pcd):\r
if Pcd.DscRawValue is None:\r
Pcd.DscRawValue = dict()\r
if (VariableName, VariableGuid) not in VariableAttrs:\r
VariableAttrs[(VariableName, VariableGuid)] = VarAttribute\r
else:\r
if (VariableName, VariableGuid) not in VariableAttrs:\r
VariableAttrs[(VariableName, VariableGuid)] = VarAttribute\r
else:\r
- if not self.CompareVarAttr(VariableAttrs[(VariableName, VariableGuid)], VarAttribute):\r
+ if not DscBuildData.CompareVarAttr(VariableAttrs[(VariableName, VariableGuid)], VarAttribute):\r
EdkLogger.error('Build', PCD_VARIABLE_ATTRIBUTES_CONFLICT_ERROR, "The variable %s.%s for DynamicHii PCDs has conflicting attributes [%s] and [%s] " % (VariableGuid, VariableName, VarAttribute, VariableAttrs[(VariableName, VariableGuid)]))\r
\r
pcdDecObject = self._DecPcds[PcdCName, TokenSpaceGuid]\r
EdkLogger.error('Build', PCD_VARIABLE_ATTRIBUTES_CONFLICT_ERROR, "The variable %s.%s for DynamicHii PCDs has conflicting attributes [%s] and [%s] " % (VariableGuid, VariableName, VarAttribute, VariableAttrs[(VariableName, VariableGuid)]))\r
\r
pcdDecObject = self._DecPcds[PcdCName, TokenSpaceGuid]\r
skuobj.DefaultStoreDict[defaultst] = StringToArray(skuobj.DefaultStoreDict[defaultst])\r
pcd.DefaultValue = StringToArray(pcd.DefaultValue)\r
pcd.MaxDatumSize = str(MaxSize)\r
skuobj.DefaultStoreDict[defaultst] = StringToArray(skuobj.DefaultStoreDict[defaultst])\r
pcd.DefaultValue = StringToArray(pcd.DefaultValue)\r
pcd.MaxDatumSize = str(MaxSize)\r
- rt, invalidhii = self.CheckVariableNameAssignment(Pcds)\r
+ rt, invalidhii = DscBuildData.CheckVariableNameAssignment(Pcds)\r
if not rt:\r
invalidpcd = ",".join(invalidhii)\r
EdkLogger.error('build', PCD_VARIABLE_INFO_ERROR, Message='The same HII PCD must map to the same EFI variable for all SKUs', File=self.MetaFile, ExtraData=invalidpcd)\r
if not rt:\r
invalidpcd = ",".join(invalidhii)\r
EdkLogger.error('build', PCD_VARIABLE_INFO_ERROR, Message='The same HII PCD must map to the same EFI variable for all SKUs', File=self.MetaFile, ExtraData=invalidpcd)\r
- def CheckVariableNameAssignment(self,Pcds):\r
+ @staticmethod\r
+ def CheckVariableNameAssignment(Pcds):\r
invalidhii = []\r
for pcdname in Pcds:\r
pcd = Pcds[pcdname]\r
invalidhii = []\r
for pcdname in Pcds:\r
pcd = Pcds[pcdname]\r