mirror of https://github.com/acidanthera/audk.git
BaseTools: Adjust the spaces around commas and colons
Based on "futurize -f lib2to3.fixes.fix_ws_comma" Contributed-under: TianoCore Contribution Agreement 1.1 Cc: Yonghong Zhu <yonghong.zhu@intel.com> Cc: Liming Gao <liming.gao@intel.com> Signed-off-by: Gary Lin <glin@suse.com> Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
parent
df29fd130a
commit
ccaa7754a2
|
@ -48,7 +48,7 @@ def ConvertCygPathToDos(CygPath):
|
|||
DosPath = CygPath
|
||||
|
||||
# pipes.quote will add the extra \\ for us.
|
||||
return DosPath.replace('/','\\')
|
||||
return DosPath.replace('/', '\\')
|
||||
|
||||
|
||||
# we receive our options as a list, but we will be passing them to the shell as a line
|
||||
|
|
|
@ -41,13 +41,13 @@ if __name__ == '__main__':
|
|||
return Value
|
||||
|
||||
def ValidatePcdName (Argument):
|
||||
if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*\.[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']:
|
||||
if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*\.[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['', '']:
|
||||
Message = '{Argument} is not in the form <PcdTokenSpaceGuidCName>.<PcdCName>'.format (Argument = Argument)
|
||||
raise argparse.ArgumentTypeError (Message)
|
||||
return Argument
|
||||
|
||||
def ValidateGuidName (Argument):
|
||||
if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['','']:
|
||||
if re.split ('[a-zA-Z\_][a-zA-Z0-9\_]*', Argument) != ['', '']:
|
||||
Message = '{Argument} is not a valid GUID C name'.format (Argument = Argument)
|
||||
raise argparse.ArgumentTypeError (Message)
|
||||
return Argument
|
||||
|
@ -84,7 +84,7 @@ if __name__ == '__main__':
|
|||
help = "Output filename for PCD value or PCD statement")
|
||||
parser.add_argument ("-p", "--pcd", dest = 'PcdName', type = ValidatePcdName,
|
||||
help = "Name of the PCD in the form <PcdTokenSpaceGuidCName>.<PcdCName>")
|
||||
parser.add_argument ("-t", "--type", dest = 'PcdType', default = None, choices = ['VPD','HII'],
|
||||
parser.add_argument ("-t", "--type", dest = 'PcdType', default = None, choices = ['VPD', 'HII'],
|
||||
help = "PCD statement type (HII or VPD). Default is standard.")
|
||||
parser.add_argument ("-m", "--max-size", dest = 'MaxSize', type = ValidateUnsignedInteger,
|
||||
help = "Maximum size of the PCD. Ignored with --type HII.")
|
||||
|
|
|
@ -62,7 +62,7 @@ def FormatFilesInDir(DirPath, ExtList, Args):
|
|||
FormatFile(File, Args)
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(prog=__prog__,description=__description__ + __copyright__, conflict_handler = 'resolve')
|
||||
parser = argparse.ArgumentParser(prog=__prog__, description=__description__ + __copyright__, conflict_handler = 'resolve')
|
||||
|
||||
parser.add_argument('Path', nargs='+',
|
||||
help='the path for files to be converted.It could be directory or file path.')
|
||||
|
|
|
@ -191,7 +191,7 @@ def processLine(newline):
|
|||
|
||||
driverPrefixLen = len("Driver - ")
|
||||
# get driver name
|
||||
if cmp(newline[0:driverPrefixLen],"Driver - ") == 0 :
|
||||
if cmp(newline[0:driverPrefixLen], "Driver - ") == 0 :
|
||||
driverlineList = newline.split(" ")
|
||||
driverName = driverlineList[2]
|
||||
#print "Checking : ", driverName
|
||||
|
@ -214,7 +214,7 @@ def processLine(newline):
|
|||
else :
|
||||
symbolsFile.symbolsTable[driverName].parse_debug_file (driverName, pdbName)
|
||||
|
||||
elif cmp(newline,"") == 0 :
|
||||
elif cmp(newline, "") == 0 :
|
||||
driverName = ""
|
||||
|
||||
# check entry line
|
||||
|
@ -227,7 +227,7 @@ def processLine(newline):
|
|||
rvaName = ""
|
||||
symbolName = ""
|
||||
|
||||
if cmp(rvaName,"") == 0 :
|
||||
if cmp(rvaName, "") == 0 :
|
||||
return newline
|
||||
else :
|
||||
return newline + symbolName
|
||||
|
|
|
@ -66,7 +66,7 @@ class Page(BaseDoxygeItem):
|
|||
|
||||
def AddSection(self, section):
|
||||
self.mSections.append(section)
|
||||
self.mSections.sort(cmp=lambda x,y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
self.mSections.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
|
||||
def Generate(self):
|
||||
if self.mIsMainPage:
|
||||
|
@ -91,7 +91,7 @@ class Page(BaseDoxygeItem):
|
|||
self.mText.insert(endIndex, '<ul>')
|
||||
endIndex += 1
|
||||
if self.mIsSort:
|
||||
self.mSubPages.sort(cmp=lambda x,y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
self.mSubPages.sort(cmp=lambda x, y: cmp(x.mName.lower(), y.mName.lower()))
|
||||
for page in self.mSubPages:
|
||||
self.mText.insert(endIndex, '<li>\subpage %s \"%s\" </li>' % (page.mTag, page.mName))
|
||||
endIndex += 1
|
||||
|
|
|
@ -285,7 +285,7 @@ class GitDiffCheck:
|
|||
if self.state == START:
|
||||
if line.startswith('diff --git'):
|
||||
self.state = PRE_PATCH
|
||||
self.filename = line[13:].split(' ',1)[0]
|
||||
self.filename = line[13:].split(' ', 1)[0]
|
||||
self.is_newfile = False
|
||||
self.force_crlf = not self.filename.endswith('.sh')
|
||||
elif len(line.rstrip()) != 0:
|
||||
|
|
|
@ -149,7 +149,7 @@ if __name__ == '__main__':
|
|||
for Item in gArgs.Define:
|
||||
if '=' not in Item[0]:
|
||||
continue
|
||||
Item = Item[0].split('=',1)
|
||||
Item = Item[0].split('=', 1)
|
||||
CommandLine.append('%s="%s"' % (Item[0], Item[1]))
|
||||
CommandLine.append('EXTRA_FLAGS="%s"' % (gArgs.Remaining))
|
||||
CommandLine.append(gArgs.BuildType)
|
||||
|
|
|
@ -48,7 +48,7 @@ from Common.MultipleWorkspace import MultipleWorkspace as mws
|
|||
import InfSectionParser
|
||||
import datetime
|
||||
import hashlib
|
||||
from GenVar import VariableMgr,var_info
|
||||
from GenVar import VariableMgr, var_info
|
||||
from collections import OrderedDict
|
||||
from collections import defaultdict
|
||||
from Workspace.WorkspaceCommon import OrderedListDict
|
||||
|
@ -1293,7 +1293,7 @@ class PlatformAutoGen(AutoGen):
|
|||
ShareFixedAtBuildPcdsSameValue = {}
|
||||
for Module in LibAuto._ReferenceModules:
|
||||
for Pcd in Module.FixedAtBuildPcds + LibAuto.FixedAtBuildPcds:
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
|
||||
if key not in FixedAtBuildPcds:
|
||||
ShareFixedAtBuildPcdsSameValue[key] = True
|
||||
FixedAtBuildPcds[key] = Pcd.DefaultValue
|
||||
|
@ -1301,11 +1301,11 @@ class PlatformAutoGen(AutoGen):
|
|||
if FixedAtBuildPcds[key] != Pcd.DefaultValue:
|
||||
ShareFixedAtBuildPcdsSameValue[key] = False
|
||||
for Pcd in LibAuto.FixedAtBuildPcds:
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
|
||||
if (Pcd.TokenCName,Pcd.TokenSpaceGuidCName) not in self.NonDynamicPcdDict:
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
|
||||
if (Pcd.TokenCName, Pcd.TokenSpaceGuidCName) not in self.NonDynamicPcdDict:
|
||||
continue
|
||||
else:
|
||||
DscPcd = self.NonDynamicPcdDict[(Pcd.TokenCName,Pcd.TokenSpaceGuidCName)]
|
||||
DscPcd = self.NonDynamicPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)]
|
||||
if DscPcd.Type != TAB_PCDS_FIXED_AT_BUILD:
|
||||
continue
|
||||
if key in ShareFixedAtBuildPcdsSameValue and ShareFixedAtBuildPcdsSameValue[key]:
|
||||
|
@ -1325,12 +1325,12 @@ class PlatformAutoGen(AutoGen):
|
|||
break
|
||||
|
||||
|
||||
VariableInfo = VariableMgr(self.DscBuildDataObj._GetDefaultStores(),self.DscBuildDataObj._GetSkuIds())
|
||||
VariableInfo = VariableMgr(self.DscBuildDataObj._GetDefaultStores(), self.DscBuildDataObj._GetSkuIds())
|
||||
VariableInfo.SetVpdRegionMaxSize(VpdRegionSize)
|
||||
VariableInfo.SetVpdRegionOffset(VpdRegionBase)
|
||||
Index = 0
|
||||
for Pcd in DynamicPcdSet:
|
||||
pcdname = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
|
||||
pcdname = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
|
||||
for SkuName in Pcd.SkuInfoList:
|
||||
Sku = Pcd.SkuInfoList[SkuName]
|
||||
SkuId = Sku.SkuId
|
||||
|
@ -1340,11 +1340,11 @@ class PlatformAutoGen(AutoGen):
|
|||
VariableGuidStructure = Sku.VariableGuidValue
|
||||
VariableGuid = GuidStructureStringToGuidString(VariableGuidStructure)
|
||||
for StorageName in Sku.DefaultStoreDict:
|
||||
VariableInfo.append_variable(var_info(Index,pcdname,StorageName,SkuName, StringToArray(Sku.VariableName),VariableGuid, Sku.VariableOffset, Sku.VariableAttribute , Sku.HiiDefaultValue,Sku.DefaultStoreDict[StorageName],Pcd.DatumType))
|
||||
VariableInfo.append_variable(var_info(Index, pcdname, StorageName, SkuName, StringToArray(Sku.VariableName), VariableGuid, Sku.VariableOffset, Sku.VariableAttribute, Sku.HiiDefaultValue, Sku.DefaultStoreDict[StorageName], Pcd.DatumType))
|
||||
Index += 1
|
||||
return VariableInfo
|
||||
|
||||
def UpdateNVStoreMaxSize(self,OrgVpdFile):
|
||||
def UpdateNVStoreMaxSize(self, OrgVpdFile):
|
||||
if self.VariableInfo:
|
||||
VpdMapFilePath = os.path.join(self.BuildDir, TAB_FV_DIRECTORY, "%s.map" % self.Platform.VpdToolGuid)
|
||||
PcdNvStoreDfBuffer = [item for item in self._DynamicPcdList if item.TokenCName == "PcdNvStoreDefaultValueBuffer" and item.TokenSpaceGuidCName == "gEfiMdeModulePkgTokenSpaceGuid"]
|
||||
|
@ -1357,7 +1357,7 @@ class PlatformAutoGen(AutoGen):
|
|||
else:
|
||||
EdkLogger.error("build", FILE_READ_FAILURE, "Can not find VPD map file %s to fix up VPD offset." % VpdMapFilePath)
|
||||
|
||||
NvStoreOffset = int(NvStoreOffset,16) if NvStoreOffset.upper().startswith("0X") else int(NvStoreOffset)
|
||||
NvStoreOffset = int(NvStoreOffset, 16) if NvStoreOffset.upper().startswith("0X") else int(NvStoreOffset)
|
||||
default_skuobj = PcdNvStoreDfBuffer[0].SkuInfoList.get(TAB_DEFAULT)
|
||||
maxsize = self.VariableInfo.VpdRegionSize - NvStoreOffset if self.VariableInfo.VpdRegionSize else len(default_skuobj.DefaultValue.split(","))
|
||||
var_data = self.VariableInfo.PatchNVStoreDefaultMaxSize(maxsize)
|
||||
|
@ -1569,7 +1569,7 @@ class PlatformAutoGen(AutoGen):
|
|||
VpdPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd
|
||||
|
||||
#Collect DynamicHii PCD values and assign it to DynamicExVpd PCD gEfiMdeModulePkgTokenSpaceGuid.PcdNvStoreDefaultValueBuffer
|
||||
PcdNvStoreDfBuffer = VpdPcdDict.get(("PcdNvStoreDefaultValueBuffer","gEfiMdeModulePkgTokenSpaceGuid"))
|
||||
PcdNvStoreDfBuffer = VpdPcdDict.get(("PcdNvStoreDefaultValueBuffer", "gEfiMdeModulePkgTokenSpaceGuid"))
|
||||
if PcdNvStoreDfBuffer:
|
||||
self.VariableInfo = self.CollectVariables(self._DynamicPcdList)
|
||||
vardump = self.VariableInfo.dump()
|
||||
|
@ -1595,10 +1595,10 @@ class PlatformAutoGen(AutoGen):
|
|||
PcdValue = DefaultSku.DefaultValue
|
||||
if PcdValue not in SkuValueMap:
|
||||
SkuValueMap[PcdValue] = []
|
||||
VpdFile.Add(Pcd, TAB_DEFAULT,DefaultSku.VpdOffset)
|
||||
VpdFile.Add(Pcd, TAB_DEFAULT, DefaultSku.VpdOffset)
|
||||
SkuValueMap[PcdValue].append(DefaultSku)
|
||||
|
||||
for (SkuName,Sku) in Pcd.SkuInfoList.items():
|
||||
for (SkuName, Sku) in Pcd.SkuInfoList.items():
|
||||
Sku.VpdOffset = Sku.VpdOffset.strip()
|
||||
PcdValue = Sku.DefaultValue
|
||||
if PcdValue == "":
|
||||
|
@ -1624,7 +1624,7 @@ class PlatformAutoGen(AutoGen):
|
|||
EdkLogger.error("build", FORMAT_INVALID, 'The offset value of PCD %s.%s should be %s-byte aligned.' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Alignment))
|
||||
if PcdValue not in SkuValueMap:
|
||||
SkuValueMap[PcdValue] = []
|
||||
VpdFile.Add(Pcd, SkuName,Sku.VpdOffset)
|
||||
VpdFile.Add(Pcd, SkuName, Sku.VpdOffset)
|
||||
SkuValueMap[PcdValue].append(Sku)
|
||||
# if the offset of a VPD is *, then it need to be fixed up by third party tool.
|
||||
if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":
|
||||
|
@ -1656,9 +1656,9 @@ class PlatformAutoGen(AutoGen):
|
|||
SkuObjList = DscPcdEntry.SkuInfoList.items()
|
||||
DefaultSku = DscPcdEntry.SkuInfoList.get(TAB_DEFAULT)
|
||||
if DefaultSku:
|
||||
defaultindex = SkuObjList.index((TAB_DEFAULT,DefaultSku))
|
||||
SkuObjList[0],SkuObjList[defaultindex] = SkuObjList[defaultindex],SkuObjList[0]
|
||||
for (SkuName,Sku) in SkuObjList:
|
||||
defaultindex = SkuObjList.index((TAB_DEFAULT, DefaultSku))
|
||||
SkuObjList[0], SkuObjList[defaultindex] = SkuObjList[defaultindex], SkuObjList[0]
|
||||
for (SkuName, Sku) in SkuObjList:
|
||||
Sku.VpdOffset = Sku.VpdOffset.strip()
|
||||
|
||||
# Need to iterate DEC pcd information to get the value & datumtype
|
||||
|
@ -1708,7 +1708,7 @@ class PlatformAutoGen(AutoGen):
|
|||
EdkLogger.error("build", FORMAT_INVALID, 'The offset value of PCD %s.%s should be %s-byte aligned.' % (DscPcdEntry.TokenSpaceGuidCName, DscPcdEntry.TokenCName, Alignment))
|
||||
if PcdValue not in SkuValueMap:
|
||||
SkuValueMap[PcdValue] = []
|
||||
VpdFile.Add(DscPcdEntry, SkuName,Sku.VpdOffset)
|
||||
VpdFile.Add(DscPcdEntry, SkuName, Sku.VpdOffset)
|
||||
SkuValueMap[PcdValue].append(Sku)
|
||||
if not NeedProcessVpdMapFile and Sku.VpdOffset == "*":
|
||||
NeedProcessVpdMapFile = True
|
||||
|
@ -1774,17 +1774,17 @@ class PlatformAutoGen(AutoGen):
|
|||
self._DynamicPcdList.extend(list(UnicodePcdArray))
|
||||
self._DynamicPcdList.extend(list(HiiPcdArray))
|
||||
self._DynamicPcdList.extend(list(OtherPcdArray))
|
||||
allskuset = [(SkuName,Sku.SkuId) for pcd in self._DynamicPcdList for (SkuName,Sku) in pcd.SkuInfoList.items()]
|
||||
allskuset = [(SkuName, Sku.SkuId) for pcd in self._DynamicPcdList for (SkuName, Sku) in pcd.SkuInfoList.items()]
|
||||
for pcd in self._DynamicPcdList:
|
||||
if len(pcd.SkuInfoList) == 1:
|
||||
for (SkuName,SkuId) in allskuset:
|
||||
if type(SkuId) in (str,unicode) and eval(SkuId) == 0 or SkuId == 0:
|
||||
for (SkuName, SkuId) in allskuset:
|
||||
if type(SkuId) in (str, unicode) and eval(SkuId) == 0 or SkuId == 0:
|
||||
continue
|
||||
pcd.SkuInfoList[SkuName] = copy.deepcopy(pcd.SkuInfoList[TAB_DEFAULT])
|
||||
pcd.SkuInfoList[SkuName].SkuId = SkuId
|
||||
self.AllPcdList = self._NonDynamicPcdList + self._DynamicPcdList
|
||||
|
||||
def FixVpdOffset(self,VpdFile ):
|
||||
def FixVpdOffset(self, VpdFile ):
|
||||
FvPath = os.path.join(self.BuildDir, TAB_FV_DIRECTORY)
|
||||
if not os.path.exists(FvPath):
|
||||
try:
|
||||
|
@ -2050,7 +2050,7 @@ class PlatformAutoGen(AutoGen):
|
|||
if self._NonDynamicPcdDict:
|
||||
return self._NonDynamicPcdDict
|
||||
for Pcd in self.NonDynamicPcdList:
|
||||
self._NonDynamicPcdDict[(Pcd.TokenCName,Pcd.TokenSpaceGuidCName)] = Pcd
|
||||
self._NonDynamicPcdDict[(Pcd.TokenCName, Pcd.TokenSpaceGuidCName)] = Pcd
|
||||
return self._NonDynamicPcdDict
|
||||
|
||||
## Get list of non-dynamic PCDs
|
||||
|
@ -3711,7 +3711,7 @@ class ModuleAutoGen(AutoGen):
|
|||
try:
|
||||
fInputfile = open(UniVfrOffsetFileName, "wb+", 0)
|
||||
except:
|
||||
EdkLogger.error("build", FILE_OPEN_FAILURE, "File open failed for %s" % UniVfrOffsetFileName,None)
|
||||
EdkLogger.error("build", FILE_OPEN_FAILURE, "File open failed for %s" % UniVfrOffsetFileName, None)
|
||||
|
||||
# Use a instance of StringIO to cache data
|
||||
fStringIO = StringIO('')
|
||||
|
@ -3746,7 +3746,7 @@ class ModuleAutoGen(AutoGen):
|
|||
fInputfile.write (fStringIO.getvalue())
|
||||
except:
|
||||
EdkLogger.error("build", FILE_WRITE_FAILURE, "Write data to file %s failed, please check whether the "
|
||||
"file been locked or using by other applications." %UniVfrOffsetFileName,None)
|
||||
"file been locked or using by other applications." %UniVfrOffsetFileName, None)
|
||||
|
||||
fStringIO.close ()
|
||||
fInputfile.close ()
|
||||
|
@ -4181,7 +4181,7 @@ class ModuleAutoGen(AutoGen):
|
|||
def CopyBinaryFiles(self):
|
||||
for File in self.Module.Binaries:
|
||||
SrcPath = File.Path
|
||||
DstPath = os.path.join(self.OutputDir , os.path.basename(SrcPath))
|
||||
DstPath = os.path.join(self.OutputDir, os.path.basename(SrcPath))
|
||||
CopyLongFilePath(SrcPath, DstPath)
|
||||
## Create autogen code for the module and its dependent libraries
|
||||
#
|
||||
|
@ -4331,7 +4331,7 @@ class ModuleAutoGen(AutoGen):
|
|||
if SrcTimeStamp > DstTimeStamp:
|
||||
return False
|
||||
|
||||
with open(self.GetTimeStampPath(),'r') as f:
|
||||
with open(self.GetTimeStampPath(), 'r') as f:
|
||||
for source in f:
|
||||
source = source.rstrip('\n')
|
||||
if not os.path.exists(source):
|
||||
|
|
|
@ -949,7 +949,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
AutoGenH.Append('// Disabled the macros, as PcdToken and PcdGet/Set are not allowed in the case that more than one DynamicEx Pcds are different Guids but same CName.\n')
|
||||
AutoGenH.Append('// #define %s %s\n' % (PcdTokenName, PcdExTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
|
||||
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
|
@ -959,7 +959,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
else:
|
||||
AutoGenH.Append('#define %s %s\n' % (PcdTokenName, PcdExTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
|
||||
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
|
@ -1073,7 +1073,7 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
Value = eval(Value) # translate escape character
|
||||
ValueSize = len(Value) + 1
|
||||
NewValue = '{'
|
||||
for Index in range(0,len(Value)):
|
||||
for Index in range(0, len(Value)):
|
||||
if Unicode:
|
||||
NewValue = NewValue + str(ord(Value[Index]) % 0x10000) + ', '
|
||||
else:
|
||||
|
@ -1119,14 +1119,14 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
PcdDataSize = Pcd.GetPcdSize()
|
||||
if Pcd.Type == TAB_PCDS_FIXED_AT_BUILD:
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,FixPcdSizeTokenName))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED const UINTN %s = %s;\n' % (FixedPcdSizeVariableName,PcdDataSize))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName, FixPcdSizeTokenName))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED const UINTN %s = %s;\n' % (FixedPcdSizeVariableName, PcdDataSize))
|
||||
if Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:
|
||||
AutoGenH.Append('#define %s %s\n' % (PatchPcdSizeTokenName, Pcd.MaxDatumSize))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName, PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('extern UINTN %s; \n' % PatchPcdSizeVariableName)
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED UINTN %s = %s;\n' % (PatchPcdSizeVariableName,PcdDataSize))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED const UINTN %s = %s;\n' % (PatchPcdMaxSizeVariable,Pcd.MaxDatumSize))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED UINTN %s = %s;\n' % (PatchPcdSizeVariableName, PcdDataSize))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED const UINTN %s = %s;\n' % (PatchPcdMaxSizeVariable, Pcd.MaxDatumSize))
|
||||
elif Pcd.Type == TAB_PCDS_PATCHABLE_IN_MODULE:
|
||||
AutoGenH.Append('#define %s %s\n' %(PcdValueName, Value))
|
||||
AutoGenC.Append('volatile %s %s %s = %s;\n' %(Const, Pcd.DatumType, PcdVariableName, PcdValueName))
|
||||
|
@ -1136,13 +1136,13 @@ def CreateModulePcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
PcdDataSize = Pcd.GetPcdSize()
|
||||
AutoGenH.Append('#define %s %s\n' % (PatchPcdSizeTokenName, PcdDataSize))
|
||||
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName, PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('extern UINTN %s; \n' % PatchPcdSizeVariableName)
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED UINTN %s = %s;\n' % (PatchPcdSizeVariableName,PcdDataSize))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED UINTN %s = %s;\n' % (PatchPcdSizeVariableName, PcdDataSize))
|
||||
else:
|
||||
PcdDataSize = Pcd.GetPcdSize()
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName,FixPcdSizeTokenName))
|
||||
AutoGenH.Append('#define %s %s \n' % (GetModeSizeName, FixPcdSizeTokenName))
|
||||
|
||||
AutoGenH.Append('#define %s %s\n' %(PcdValueName, Value))
|
||||
AutoGenC.Append('GLOBAL_REMOVE_IF_UNREFERENCED %s %s %s = %s;\n' %(Const, Pcd.DatumType, PcdVariableName, PcdValueName))
|
||||
|
@ -1249,7 +1249,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
AutoGenH.Append('// Disabled the macros, as PcdToken and PcdGet/Set are not allowed in the case that more than one DynamicEx Pcds are different Guids but same CName.\n')
|
||||
AutoGenH.Append('// #define %s %s\n' % (PcdTokenName, PcdExTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
|
||||
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('// #define %s(SizeOfBuffer, Buffer) LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
|
@ -1259,7 +1259,7 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
else:
|
||||
AutoGenH.Append('#define %s %s\n' % (PcdTokenName, PcdExTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetEx%s(&%s, %s)\n' % (GetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName,Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s LibPcdGetExSize(&%s, %s)\n' % (GetModeSizeName, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
|
||||
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPcdSetEx%s(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
AutoGenH.Append('#define %s(SizeOfBuffer, Buffer) LibPcdSetEx%sS(&%s, %s, (SizeOfBuffer), (Buffer))\n' % (SetModeStatusName, DatumSizeLib, Pcd.TokenSpaceGuidCName, PcdTokenName))
|
||||
|
@ -1310,11 +1310,11 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
AutoGenH.Append('#define %s(Value) ((%s = (Value)), RETURN_SUCCESS)\n' % (SetModeStatusName, PcdVariableName))
|
||||
AutoGenH.Append('#define %s %s\n' % (PatchPcdSizeTokenName, PcdDataSize))
|
||||
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName,PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName, PatchPcdSizeVariableName))
|
||||
AutoGenH.Append('extern UINTN %s; \n' % PatchPcdSizeVariableName)
|
||||
|
||||
if PcdItemType == TAB_PCDS_FIXED_AT_BUILD or PcdItemType == TAB_PCDS_FEATURE_FLAG:
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName))
|
||||
key = ".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName))
|
||||
PcdVariableName = '_gPcd_' + gItemTypeStringDatabase[Pcd.Type] + '_' + TokenCName
|
||||
if DatumType == TAB_VOID and Array == '[]':
|
||||
DatumType = [TAB_UINT8, TAB_UINT16][Pcd.DefaultValue[0] == 'L']
|
||||
|
@ -1338,14 +1338,14 @@ def CreateLibraryPcdCode(Info, AutoGenC, AutoGenH, Pcd):
|
|||
if Pcd.DatumType not in TAB_PCD_NUMERIC_TYPES:
|
||||
if ConstFixedPcd:
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName,FixPcdSizeTokenName))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName, FixPcdSizeTokenName))
|
||||
else:
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName,FixedPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName,FixedPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName, FixedPcdSizeVariableName))
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, FixedPcdSizeVariableName))
|
||||
AutoGenH.Append('extern const UINTN %s; \n' % FixedPcdSizeVariableName)
|
||||
else:
|
||||
AutoGenH.Append('#define %s %s\n' % (FixPcdSizeTokenName, PcdDataSize))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName,FixPcdSizeTokenName))
|
||||
AutoGenH.Append('#define %s %s\n' % (GetModeSizeName, FixPcdSizeTokenName))
|
||||
|
||||
## Create code for library constructor
|
||||
#
|
||||
|
@ -1373,11 +1373,11 @@ def CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH):
|
|||
elif Lib.ModuleType in SUP_MODULE_SET_PEI:
|
||||
ConstructorPrototypeString.Append(gLibraryStructorPrototype['PEI'].Replace(Dict))
|
||||
ConstructorCallingString.Append(gLibraryStructorCall['PEI'].Replace(Dict))
|
||||
elif Lib.ModuleType in [SUP_MODULE_DXE_CORE,SUP_MODULE_DXE_DRIVER,SUP_MODULE_DXE_SMM_DRIVER,SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER,SUP_MODULE_UEFI_DRIVER,SUP_MODULE_UEFI_APPLICATION,SUP_MODULE_SMM_CORE]:
|
||||
elif Lib.ModuleType in [SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_UEFI_DRIVER, SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_SMM_CORE]:
|
||||
ConstructorPrototypeString.Append(gLibraryStructorPrototype['DXE'].Replace(Dict))
|
||||
ConstructorCallingString.Append(gLibraryStructorCall['DXE'].Replace(Dict))
|
||||
elif Lib.ModuleType in [SUP_MODULE_MM_STANDALONE,SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
elif Lib.ModuleType in [SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
ConstructorPrototypeString.Append(gLibraryStructorPrototype['MM'].Replace(Dict))
|
||||
ConstructorCallingString.Append(gLibraryStructorCall['MM'].Replace(Dict))
|
||||
|
||||
|
@ -1402,10 +1402,10 @@ def CreateLibraryConstructorCode(Info, AutoGenC, AutoGenH):
|
|||
AutoGenC.Append(gLibraryString[SUP_MODULE_BASE].Replace(Dict))
|
||||
elif Info.ModuleType in SUP_MODULE_SET_PEI:
|
||||
AutoGenC.Append(gLibraryString['PEI'].Replace(Dict))
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_CORE,SUP_MODULE_DXE_DRIVER,SUP_MODULE_DXE_SMM_DRIVER,SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER,SUP_MODULE_UEFI_DRIVER,SUP_MODULE_UEFI_APPLICATION,SUP_MODULE_SMM_CORE]:
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_UEFI_DRIVER, SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_SMM_CORE]:
|
||||
AutoGenC.Append(gLibraryString['DXE'].Replace(Dict))
|
||||
elif Info.ModuleType in [SUP_MODULE_MM_STANDALONE,SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
elif Info.ModuleType in [SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
AutoGenC.Append(gLibraryString['MM'].Replace(Dict))
|
||||
|
||||
## Create code for library destructor
|
||||
|
@ -1435,11 +1435,11 @@ def CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH):
|
|||
elif Lib.ModuleType in SUP_MODULE_SET_PEI:
|
||||
DestructorPrototypeString.Append(gLibraryStructorPrototype['PEI'].Replace(Dict))
|
||||
DestructorCallingString.Append(gLibraryStructorCall['PEI'].Replace(Dict))
|
||||
elif Lib.ModuleType in [SUP_MODULE_DXE_CORE,SUP_MODULE_DXE_DRIVER,SUP_MODULE_DXE_SMM_DRIVER,SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER,SUP_MODULE_UEFI_DRIVER,SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_SMM_CORE]:
|
||||
elif Lib.ModuleType in [SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_UEFI_DRIVER, SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_SMM_CORE]:
|
||||
DestructorPrototypeString.Append(gLibraryStructorPrototype['DXE'].Replace(Dict))
|
||||
DestructorCallingString.Append(gLibraryStructorCall['DXE'].Replace(Dict))
|
||||
elif Lib.ModuleType in [SUP_MODULE_MM_STANDALONE,SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
elif Lib.ModuleType in [SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
DestructorPrototypeString.Append(gLibraryStructorPrototype['MM'].Replace(Dict))
|
||||
DestructorCallingString.Append(gLibraryStructorCall['MM'].Replace(Dict))
|
||||
|
||||
|
@ -1464,10 +1464,10 @@ def CreateLibraryDestructorCode(Info, AutoGenC, AutoGenH):
|
|||
AutoGenC.Append(gLibraryString[SUP_MODULE_BASE].Replace(Dict))
|
||||
elif Info.ModuleType in SUP_MODULE_SET_PEI:
|
||||
AutoGenC.Append(gLibraryString['PEI'].Replace(Dict))
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_CORE,SUP_MODULE_DXE_DRIVER,SUP_MODULE_DXE_SMM_DRIVER,SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER,SUP_MODULE_UEFI_DRIVER,SUP_MODULE_UEFI_APPLICATION,SUP_MODULE_SMM_CORE]:
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_CORE, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SMM_DRIVER, SUP_MODULE_DXE_RUNTIME_DRIVER,
|
||||
SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_UEFI_DRIVER, SUP_MODULE_UEFI_APPLICATION, SUP_MODULE_SMM_CORE]:
|
||||
AutoGenC.Append(gLibraryString['DXE'].Replace(Dict))
|
||||
elif Info.ModuleType in [SUP_MODULE_MM_STANDALONE,SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
elif Info.ModuleType in [SUP_MODULE_MM_STANDALONE, SUP_MODULE_MM_CORE_STANDALONE]:
|
||||
AutoGenC.Append(gLibraryString['MM'].Replace(Dict))
|
||||
|
||||
|
||||
|
@ -1526,7 +1526,7 @@ def CreateModuleEntryPointCode(Info, AutoGenC, AutoGenH):
|
|||
else:
|
||||
AutoGenC.Append(gPeimEntryPointString[2].Replace(Dict))
|
||||
AutoGenH.Append(gPeimEntryPointPrototype.Replace(Dict))
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_RUNTIME_DRIVER,SUP_MODULE_DXE_DRIVER,SUP_MODULE_DXE_SAL_DRIVER,SUP_MODULE_UEFI_DRIVER]:
|
||||
elif Info.ModuleType in [SUP_MODULE_DXE_RUNTIME_DRIVER, SUP_MODULE_DXE_DRIVER, SUP_MODULE_DXE_SAL_DRIVER, SUP_MODULE_UEFI_DRIVER]:
|
||||
if NumEntryPoints < 2:
|
||||
AutoGenC.Append(gUefiDriverEntryPointString[NumEntryPoints].Replace(Dict))
|
||||
else:
|
||||
|
@ -1925,7 +1925,7 @@ def BmpImageDecoder(File, Buffer, PaletteIndex, TransParent):
|
|||
ImageType, = struct.unpack('2s', Buffer[0:2])
|
||||
if ImageType!= 'BM': # BMP file type is 'BM'
|
||||
EdkLogger.error("build", FILE_TYPE_MISMATCH, "The file %s is not a standard BMP file." % File.Path)
|
||||
BMP_IMAGE_HEADER = collections.namedtuple('BMP_IMAGE_HEADER', ['bfSize','bfReserved1','bfReserved2','bfOffBits','biSize','biWidth','biHeight','biPlanes','biBitCount', 'biCompression', 'biSizeImage','biXPelsPerMeter','biYPelsPerMeter','biClrUsed','biClrImportant'])
|
||||
BMP_IMAGE_HEADER = collections.namedtuple('BMP_IMAGE_HEADER', ['bfSize', 'bfReserved1', 'bfReserved2', 'bfOffBits', 'biSize', 'biWidth', 'biHeight', 'biPlanes', 'biBitCount', 'biCompression', 'biSizeImage', 'biXPelsPerMeter', 'biYPelsPerMeter', 'biClrUsed', 'biClrImportant'])
|
||||
BMP_IMAGE_HEADER_STRUCT = struct.Struct('IHHIIIIHHIIIIII')
|
||||
BmpHeader = BMP_IMAGE_HEADER._make(BMP_IMAGE_HEADER_STRUCT.unpack_from(Buffer[2:]))
|
||||
#
|
||||
|
@ -2009,7 +2009,7 @@ def CreateHeaderCode(Info, AutoGenC, AutoGenH):
|
|||
# file header
|
||||
AutoGenH.Append(gAutoGenHeaderString.Replace({'FileName':'AutoGen.h'}))
|
||||
# header file Prologue
|
||||
AutoGenH.Append(gAutoGenHPrologueString.Replace({'File':'AUTOGENH','Guid':Info.Guid.replace('-','_')}))
|
||||
AutoGenH.Append(gAutoGenHPrologueString.Replace({'File':'AUTOGENH','Guid':Info.Guid.replace('-', '_')}))
|
||||
AutoGenH.Append(gAutoGenHCppPrologueString)
|
||||
if Info.AutoGenVersion >= 0x00010005:
|
||||
# header files includes
|
||||
|
@ -2085,7 +2085,7 @@ def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer,
|
|||
if Info.UnicodeFileList:
|
||||
FileName = "%sStrDefs.h" % Info.Name
|
||||
StringH.Append(gAutoGenHeaderString.Replace({'FileName':FileName}))
|
||||
StringH.Append(gAutoGenHPrologueString.Replace({'File':'STRDEFS', 'Guid':Info.Guid.replace('-','_')}))
|
||||
StringH.Append(gAutoGenHPrologueString.Replace({'File':'STRDEFS', 'Guid':Info.Guid.replace('-', '_')}))
|
||||
CreateUnicodeStringCode(Info, AutoGenC, StringH, UniGenCFlag, UniGenBinBuffer)
|
||||
|
||||
GuidMacros = []
|
||||
|
@ -2131,7 +2131,7 @@ def CreateCode(Info, AutoGenC, AutoGenH, StringH, UniGenCFlag, UniGenBinBuffer,
|
|||
if Info.IdfFileList:
|
||||
FileName = "%sImgDefs.h" % Info.Name
|
||||
StringIdf.Append(gAutoGenHeaderString.Replace({'FileName':FileName}))
|
||||
StringIdf.Append(gAutoGenHPrologueString.Replace({'File':'IMAGEDEFS', 'Guid':Info.Guid.replace('-','_')}))
|
||||
StringIdf.Append(gAutoGenHPrologueString.Replace({'File':'IMAGEDEFS', 'Guid':Info.Guid.replace('-', '_')}))
|
||||
CreateIdfFileCode(Info, AutoGenC, StringIdf, IdfGenCFlag, IdfGenBinBuffer)
|
||||
|
||||
StringIdf.Append("\n#endif\n")
|
||||
|
|
|
@ -745,7 +745,7 @@ cleanlib:
|
|||
if CmdName == 'Trim':
|
||||
SecDepsFileList.append(os.path.join('$(DEBUG_DIR)', os.path.basename(OutputFile).replace('offset', 'efi')))
|
||||
if OutputFile.endswith('.ui') or OutputFile.endswith('.ver'):
|
||||
SecDepsFileList.append(os.path.join('$(MODULE_DIR)','$(MODULE_FILE)'))
|
||||
SecDepsFileList.append(os.path.join('$(MODULE_DIR)', '$(MODULE_FILE)'))
|
||||
self.FfsOutputFileList.append((OutputFile, ' '.join(SecDepsFileList), SecCmdStr))
|
||||
if len(SecDepsFileList) > 0:
|
||||
self.ParseSecCmd(SecDepsFileList, CmdTuple)
|
||||
|
@ -867,7 +867,7 @@ cleanlib:
|
|||
for Target in BuildTargets:
|
||||
for i, SingleCommand in enumerate(BuildTargets[Target].Commands):
|
||||
if FlagDict[Flag]['Macro'] in SingleCommand:
|
||||
BuildTargets[Target].Commands[i] = SingleCommand.replace('$(INC)','').replace(FlagDict[Flag]['Macro'], RespMacro)
|
||||
BuildTargets[Target].Commands[i] = SingleCommand.replace('$(INC)', '').replace(FlagDict[Flag]['Macro'], RespMacro)
|
||||
return RespDict
|
||||
|
||||
def ProcessBuildTargetList(self):
|
||||
|
|
|
@ -574,22 +574,22 @@ def StringArrayToList(StringArray):
|
|||
#
|
||||
def GetTokenTypeValue(TokenType):
|
||||
TokenTypeDict = {
|
||||
"PCD_TYPE_SHIFT":28,
|
||||
"PCD_TYPE_DATA":(0x0 << 28),
|
||||
"PCD_TYPE_HII":(0x8 << 28),
|
||||
"PCD_TYPE_VPD":(0x4 << 28),
|
||||
"PCD_TYPE_SHIFT": 28,
|
||||
"PCD_TYPE_DATA": (0x0 << 28),
|
||||
"PCD_TYPE_HII": (0x8 << 28),
|
||||
"PCD_TYPE_VPD": (0x4 << 28),
|
||||
# "PCD_TYPE_SKU_ENABLED":(0x2 << 28),
|
||||
"PCD_TYPE_STRING":(0x1 << 28),
|
||||
"PCD_TYPE_STRING": (0x1 << 28),
|
||||
|
||||
"PCD_DATUM_TYPE_SHIFT":24,
|
||||
"PCD_DATUM_TYPE_POINTER":(0x0 << 24),
|
||||
"PCD_DATUM_TYPE_UINT8":(0x1 << 24),
|
||||
"PCD_DATUM_TYPE_UINT16":(0x2 << 24),
|
||||
"PCD_DATUM_TYPE_UINT32":(0x4 << 24),
|
||||
"PCD_DATUM_TYPE_UINT64":(0x8 << 24),
|
||||
"PCD_DATUM_TYPE_SHIFT": 24,
|
||||
"PCD_DATUM_TYPE_POINTER": (0x0 << 24),
|
||||
"PCD_DATUM_TYPE_UINT8": (0x1 << 24),
|
||||
"PCD_DATUM_TYPE_UINT16": (0x2 << 24),
|
||||
"PCD_DATUM_TYPE_UINT32": (0x4 << 24),
|
||||
"PCD_DATUM_TYPE_UINT64": (0x8 << 24),
|
||||
|
||||
"PCD_DATUM_TYPE_SHIFT2":20,
|
||||
"PCD_DATUM_TYPE_UINT8_BOOLEAN":(0x1 << 20 | 0x1 << 24),
|
||||
"PCD_DATUM_TYPE_SHIFT2": 20,
|
||||
"PCD_DATUM_TYPE_UINT8_BOOLEAN": (0x1 << 20 | 0x1 << 24),
|
||||
}
|
||||
return eval(TokenType, TokenTypeDict)
|
||||
|
||||
|
@ -643,7 +643,7 @@ def BuildExDataBase(Dict):
|
|||
DbPcdCNameTable = DbStringItemList(0, RawDataList = PcdCNameTableValue, LenList = PcdCNameLen)
|
||||
|
||||
PcdNameOffsetTable = Dict['PCD_NAME_OFFSET']
|
||||
DbPcdNameOffsetTable = DbItemList(4,RawDataList = PcdNameOffsetTable)
|
||||
DbPcdNameOffsetTable = DbItemList(4, RawDataList = PcdNameOffsetTable)
|
||||
|
||||
SizeTableValue = zip(Dict['SIZE_TABLE_MAXIMUM_LENGTH'], Dict['SIZE_TABLE_CURRENT_LENGTH'])
|
||||
DbSizeTableValue = DbSizeTableItemList(2, RawDataList = SizeTableValue)
|
||||
|
@ -678,16 +678,16 @@ def BuildExDataBase(Dict):
|
|||
PcdTokenNumberMap = Dict['PCD_ORDER_TOKEN_NUMBER_MAP']
|
||||
|
||||
DbNameTotle = ["SkuidValue", "InitValueUint64", "VardefValueUint64", "InitValueUint32", "VardefValueUint32", "VpdHeadValue", "ExMapTable",
|
||||
"LocalTokenNumberTable", "GuidTable", "StringHeadValue", "PcdNameOffsetTable","VariableTable", "StringTableLen", "PcdTokenTable", "PcdCNameTable",
|
||||
"LocalTokenNumberTable", "GuidTable", "StringHeadValue", "PcdNameOffsetTable", "VariableTable", "StringTableLen", "PcdTokenTable", "PcdCNameTable",
|
||||
"SizeTableValue", "InitValueUint16", "VardefValueUint16", "InitValueUint8", "VardefValueUint8", "InitValueBoolean",
|
||||
"VardefValueBoolean", "UnInitValueUint64", "UnInitValueUint32", "UnInitValueUint16", "UnInitValueUint8", "UnInitValueBoolean"]
|
||||
|
||||
DbTotal = [SkuidValue, InitValueUint64, VardefValueUint64, InitValueUint32, VardefValueUint32, VpdHeadValue, ExMapTable,
|
||||
LocalTokenNumberTable, GuidTable, StringHeadValue, PcdNameOffsetTable,VariableTable, StringTableLen, PcdTokenTable,PcdCNameTable,
|
||||
LocalTokenNumberTable, GuidTable, StringHeadValue, PcdNameOffsetTable, VariableTable, StringTableLen, PcdTokenTable, PcdCNameTable,
|
||||
SizeTableValue, InitValueUint16, VardefValueUint16, InitValueUint8, VardefValueUint8, InitValueBoolean,
|
||||
VardefValueBoolean, UnInitValueUint64, UnInitValueUint32, UnInitValueUint16, UnInitValueUint8, UnInitValueBoolean]
|
||||
DbItemTotal = [DbSkuidValue, DbInitValueUint64, DbVardefValueUint64, DbInitValueUint32, DbVardefValueUint32, DbVpdHeadValue, DbExMapTable,
|
||||
DbLocalTokenNumberTable, DbGuidTable, DbStringHeadValue, DbPcdNameOffsetTable,DbVariableTable, DbStringTableLen, DbPcdTokenTable, DbPcdCNameTable,
|
||||
DbLocalTokenNumberTable, DbGuidTable, DbStringHeadValue, DbPcdNameOffsetTable, DbVariableTable, DbStringTableLen, DbPcdTokenTable, DbPcdCNameTable,
|
||||
DbSizeTableValue, DbInitValueUint16, DbVardefValueUint16, DbInitValueUint8, DbVardefValueUint8, DbInitValueBoolean,
|
||||
DbVardefValueBoolean, DbUnInitValueUint64, DbUnInitValueUint32, DbUnInitValueUint16, DbUnInitValueUint8, DbUnInitValueBoolean]
|
||||
|
||||
|
@ -746,7 +746,7 @@ def BuildExDataBase(Dict):
|
|||
DbOffset += (8 - DbOffset % 8)
|
||||
else:
|
||||
assert(False)
|
||||
if isinstance(VariableRefTable[0],list):
|
||||
if isinstance(VariableRefTable[0], list):
|
||||
DbOffset += skuindex * 4
|
||||
skuindex += 1
|
||||
if DbIndex >= InitTableNum:
|
||||
|
@ -893,54 +893,54 @@ def CreatePcdDatabaseCode (Info, AutoGenC, AutoGenH):
|
|||
Changed = SaveFileOnChange(DbFileName, DbFile.getvalue(), True)
|
||||
def CreatePcdDataBase(PcdDBData):
|
||||
delta = {}
|
||||
for skuname,skuid in PcdDBData:
|
||||
if len(PcdDBData[(skuname,skuid)][1]) != len(PcdDBData[(TAB_DEFAULT,"0")][1]):
|
||||
for skuname, skuid in PcdDBData:
|
||||
if len(PcdDBData[(skuname, skuid)][1]) != len(PcdDBData[(TAB_DEFAULT, "0")][1]):
|
||||
EdkLogger.ERROR("The size of each sku in one pcd are not same")
|
||||
for skuname,skuid in PcdDBData:
|
||||
for skuname, skuid in PcdDBData:
|
||||
if skuname == TAB_DEFAULT:
|
||||
continue
|
||||
delta[(skuname,skuid)] = [(index,data,hex(data)) for index,data in enumerate(PcdDBData[(skuname,skuid)][1]) if PcdDBData[(skuname,skuid)][1][index] != PcdDBData[(TAB_DEFAULT,"0")][1][index]]
|
||||
databasebuff = PcdDBData[(TAB_DEFAULT,"0")][0]
|
||||
delta[(skuname, skuid)] = [(index, data, hex(data)) for index, data in enumerate(PcdDBData[(skuname, skuid)][1]) if PcdDBData[(skuname, skuid)][1][index] != PcdDBData[(TAB_DEFAULT, "0")][1][index]]
|
||||
databasebuff = PcdDBData[(TAB_DEFAULT, "0")][0]
|
||||
|
||||
for skuname,skuid in delta:
|
||||
for skuname, skuid in delta:
|
||||
# 8 byte align
|
||||
if len(databasebuff) % 8 > 0:
|
||||
for i in range(8 - (len(databasebuff) % 8)):
|
||||
databasebuff += pack("=B",0)
|
||||
databasebuff += pack("=B", 0)
|
||||
databasebuff += pack('=Q', int(skuid))
|
||||
databasebuff += pack('=Q', 0)
|
||||
databasebuff += pack('=L', 8+8+4+4*len(delta[(skuname,skuid)]))
|
||||
for item in delta[(skuname,skuid)]:
|
||||
databasebuff += pack("=L",item[0])
|
||||
databasebuff = databasebuff[:-1] + pack("=B",item[1])
|
||||
databasebuff += pack('=L', 8+8+4+4*len(delta[(skuname, skuid)]))
|
||||
for item in delta[(skuname, skuid)]:
|
||||
databasebuff += pack("=L", item[0])
|
||||
databasebuff = databasebuff[:-1] + pack("=B", item[1])
|
||||
totallen = len(databasebuff)
|
||||
totallenbuff = pack("=L",totallen)
|
||||
totallenbuff = pack("=L", totallen)
|
||||
newbuffer = databasebuff[:32]
|
||||
for i in range(4):
|
||||
newbuffer += totallenbuff[i]
|
||||
for i in range(36,totallen):
|
||||
for i in range(36, totallen):
|
||||
newbuffer += databasebuff[i]
|
||||
|
||||
return newbuffer
|
||||
|
||||
def CreateVarCheckBin(VarCheckTab):
|
||||
return VarCheckTab[(TAB_DEFAULT,"0")]
|
||||
return VarCheckTab[(TAB_DEFAULT, "0")]
|
||||
|
||||
def CreateAutoGen(PcdDriverAutoGenData):
|
||||
autogenC = TemplateString()
|
||||
for skuname,skuid in PcdDriverAutoGenData:
|
||||
for skuname, skuid in PcdDriverAutoGenData:
|
||||
autogenC.Append("//SKUID: %s" % skuname)
|
||||
autogenC.Append(PcdDriverAutoGenData[(skuname,skuid)][1].String)
|
||||
return (PcdDriverAutoGenData[(skuname,skuid)][0],autogenC)
|
||||
def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
|
||||
def prune_sku(pcd,skuname):
|
||||
autogenC.Append(PcdDriverAutoGenData[(skuname, skuid)][1].String)
|
||||
return (PcdDriverAutoGenData[(skuname, skuid)][0], autogenC)
|
||||
def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform, Phase):
|
||||
def prune_sku(pcd, skuname):
|
||||
new_pcd = copy.deepcopy(pcd)
|
||||
new_pcd.SkuInfoList = {skuname:pcd.SkuInfoList[skuname]}
|
||||
new_pcd.isinit = 'INIT'
|
||||
if new_pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:
|
||||
for skuobj in pcd.SkuInfoList.values():
|
||||
if skuobj.DefaultValue:
|
||||
defaultvalue = int(skuobj.DefaultValue,16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue,10)
|
||||
defaultvalue = int(skuobj.DefaultValue, 16) if skuobj.DefaultValue.upper().startswith("0X") else int(skuobj.DefaultValue, 10)
|
||||
if defaultvalue != 0:
|
||||
new_pcd.isinit = "INIT"
|
||||
break
|
||||
|
@ -951,32 +951,32 @@ def NewCreatePcdDatabasePhaseSpecificAutoGen(Platform,Phase):
|
|||
new_pcd.isinit = "UNINIT"
|
||||
return new_pcd
|
||||
DynamicPcds = Platform.DynamicPcdList
|
||||
DynamicPcdSet_Sku = {(SkuName,skuobj.SkuId):[] for pcd in DynamicPcds for (SkuName,skuobj) in pcd.SkuInfoList.items() }
|
||||
for skuname,skuid in DynamicPcdSet_Sku:
|
||||
DynamicPcdSet_Sku[(skuname,skuid)] = [prune_sku(pcd,skuname) for pcd in DynamicPcds]
|
||||
DynamicPcdSet_Sku = {(SkuName, skuobj.SkuId):[] for pcd in DynamicPcds for (SkuName, skuobj) in pcd.SkuInfoList.items() }
|
||||
for skuname, skuid in DynamicPcdSet_Sku:
|
||||
DynamicPcdSet_Sku[(skuname, skuid)] = [prune_sku(pcd, skuname) for pcd in DynamicPcds]
|
||||
PcdDBData = {}
|
||||
PcdDriverAutoGenData = {}
|
||||
VarCheckTableData = {}
|
||||
if DynamicPcdSet_Sku:
|
||||
for skuname,skuid in DynamicPcdSet_Sku:
|
||||
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer,VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform,DynamicPcdSet_Sku[(skuname,skuid)], Phase)
|
||||
for skuname, skuid in DynamicPcdSet_Sku:
|
||||
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdSet_Sku[(skuname, skuid)], Phase)
|
||||
final_data = ()
|
||||
for item in PcdDbBuffer:
|
||||
final_data += unpack("B",item)
|
||||
PcdDBData[(skuname,skuid)] = (PcdDbBuffer, final_data)
|
||||
PcdDriverAutoGenData[(skuname,skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)
|
||||
VarCheckTableData[(skuname,skuid)] = VarCheckTab
|
||||
final_data += unpack("B", item)
|
||||
PcdDBData[(skuname, skuid)] = (PcdDbBuffer, final_data)
|
||||
PcdDriverAutoGenData[(skuname, skuid)] = (AdditionalAutoGenH, AdditionalAutoGenC)
|
||||
VarCheckTableData[(skuname, skuid)] = VarCheckTab
|
||||
if Platform.Platform.VarCheckFlag:
|
||||
dest = os.path.join(Platform.BuildDir, TAB_FV_DIRECTORY)
|
||||
VarCheckTable = CreateVarCheckBin(VarCheckTableData)
|
||||
VarCheckTable.dump(dest, Phase)
|
||||
AdditionalAutoGenH, AdditionalAutoGenC = CreateAutoGen(PcdDriverAutoGenData)
|
||||
else:
|
||||
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer,VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform,{}, Phase)
|
||||
AdditionalAutoGenH, AdditionalAutoGenC, PcdDbBuffer, VarCheckTab = CreatePcdDatabasePhaseSpecificAutoGen (Platform, {}, Phase)
|
||||
final_data = ()
|
||||
for item in PcdDbBuffer:
|
||||
final_data += unpack("B",item)
|
||||
PcdDBData[(TAB_DEFAULT,"0")] = (PcdDbBuffer, final_data)
|
||||
final_data += unpack("B", item)
|
||||
PcdDBData[(TAB_DEFAULT, "0")] = (PcdDbBuffer, final_data)
|
||||
|
||||
return AdditionalAutoGenH, AdditionalAutoGenC, CreatePcdDataBase(PcdDBData)
|
||||
## Create PCD database in DXE or PEI phase
|
||||
|
@ -1022,14 +1022,14 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
Dict['VARDEF_SKUID_' + DatumType] = []
|
||||
Dict['VARDEF_VALUE_' + DatumType] = []
|
||||
Dict['VARDEF_DB_VALUE_' + DatumType] = []
|
||||
for Init in ['INIT','UNINIT']:
|
||||
for Init in ['INIT', 'UNINIT']:
|
||||
Dict[Init+'_CNAME_DECL_' + DatumType] = []
|
||||
Dict[Init+'_GUID_DECL_' + DatumType] = []
|
||||
Dict[Init+'_NUMSKUS_DECL_' + DatumType] = []
|
||||
Dict[Init+'_VALUE_' + DatumType] = []
|
||||
Dict[Init+'_DB_VALUE_'+DatumType] = []
|
||||
|
||||
for Type in ['STRING_HEAD','VPD_HEAD','VARIABLE_HEAD']:
|
||||
for Type in ['STRING_HEAD', 'VPD_HEAD', 'VARIABLE_HEAD']:
|
||||
Dict[Type + '_CNAME_DECL'] = []
|
||||
Dict[Type + '_GUID_DECL'] = []
|
||||
Dict[Type + '_NUMSKUS_DECL'] = []
|
||||
|
@ -1190,7 +1190,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
Dict['STRING_TABLE_INDEX'].append('')
|
||||
else:
|
||||
Dict['STRING_TABLE_INDEX'].append('_%d' % StringTableIndex)
|
||||
VarNameSize = len(VariableNameStructure.replace(',',' ').split())
|
||||
VarNameSize = len(VariableNameStructure.replace(',', ' ').split())
|
||||
Dict['STRING_TABLE_LENGTH'].append(VarNameSize )
|
||||
Dict['STRING_TABLE_VALUE'].append(VariableNameStructure)
|
||||
StringHeadOffsetList.append(str(StringTableSize) + 'U')
|
||||
|
@ -1198,7 +1198,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
VarStringDbOffsetList.append(StringTableSize)
|
||||
Dict['STRING_DB_VALUE'].append(VarStringDbOffsetList)
|
||||
StringTableIndex += 1
|
||||
StringTableSize += len(VariableNameStructure.replace(',',' ').split())
|
||||
StringTableSize += len(VariableNameStructure.replace(',', ' ').split())
|
||||
VariableHeadStringIndex = 0
|
||||
for Index in range(Dict['STRING_TABLE_VALUE'].index(VariableNameStructure)):
|
||||
VariableHeadStringIndex += Dict['STRING_TABLE_LENGTH'][Index]
|
||||
|
@ -1237,7 +1237,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
elif Pcd.DatumType in (TAB_UINT32, TAB_UINT16, TAB_UINT8):
|
||||
Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue + "U")
|
||||
elif Pcd.DatumType == "BOOLEAN":
|
||||
if eval(Sku.HiiDefaultValue) in [1,0]:
|
||||
if eval(Sku.HiiDefaultValue) in [1, 0]:
|
||||
Dict['VARDEF_VALUE_'+Pcd.DatumType].append(str(eval(Sku.HiiDefaultValue)) + "U")
|
||||
else:
|
||||
Dict['VARDEF_VALUE_'+Pcd.DatumType].append(Sku.HiiDefaultValue)
|
||||
|
@ -1287,7 +1287,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
Dict['STRING_TABLE_INDEX'].append('_%d' % StringTableIndex)
|
||||
if Sku.DefaultValue[0] == 'L':
|
||||
DefaultValueBinStructure = StringToArray(Sku.DefaultValue)
|
||||
Size = len(DefaultValueBinStructure.replace(',',' ').split())
|
||||
Size = len(DefaultValueBinStructure.replace(',', ' ').split())
|
||||
Dict['STRING_TABLE_VALUE'].append(DefaultValueBinStructure)
|
||||
elif Sku.DefaultValue[0] == '"':
|
||||
DefaultValueBinStructure = StringToArray(Sku.DefaultValue)
|
||||
|
@ -1599,7 +1599,7 @@ def CreatePcdDatabasePhaseSpecificAutoGen (Platform, DynamicPcdList, Phase):
|
|||
|
||||
# print Phase
|
||||
Buffer = BuildExDataBase(Dict)
|
||||
return AutoGenH, AutoGenC, Buffer,VarCheckTab
|
||||
return AutoGenH, AutoGenC, Buffer, VarCheckTab
|
||||
|
||||
def GetOrderedDynamicPcdList(DynamicPcdList, PcdTokenNumberList):
|
||||
ReorderedDyPcdList = [None for i in range(len(DynamicPcdList))]
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
# #
|
||||
# Import Modules
|
||||
#
|
||||
from struct import pack,unpack
|
||||
from struct import pack, unpack
|
||||
import collections
|
||||
import copy
|
||||
from Common.VariableAttributes import VariableAttributes
|
||||
|
@ -27,7 +27,7 @@ NvStorageHeaderSize = 28
|
|||
VariableHeaderSize = 32
|
||||
|
||||
class VariableMgr(object):
|
||||
def __init__(self, DefaultStoreMap,SkuIdMap):
|
||||
def __init__(self, DefaultStoreMap, SkuIdMap):
|
||||
self.VarInfo = []
|
||||
self.DefaultStoreMap = DefaultStoreMap
|
||||
self.SkuIdMap = SkuIdMap
|
||||
|
@ -37,19 +37,19 @@ class VariableMgr(object):
|
|||
self.VarDefaultBuff = None
|
||||
self.VarDeltaBuff = None
|
||||
|
||||
def append_variable(self,uefi_var):
|
||||
def append_variable(self, uefi_var):
|
||||
self.VarInfo.append(uefi_var)
|
||||
|
||||
def SetVpdRegionMaxSize(self,maxsize):
|
||||
def SetVpdRegionMaxSize(self, maxsize):
|
||||
self.VpdRegionSize = maxsize
|
||||
|
||||
def SetVpdRegionOffset(self,vpdoffset):
|
||||
def SetVpdRegionOffset(self, vpdoffset):
|
||||
self.VpdRegionOffset = vpdoffset
|
||||
|
||||
def PatchNVStoreDefaultMaxSize(self,maxsize):
|
||||
def PatchNVStoreDefaultMaxSize(self, maxsize):
|
||||
if not self.NVHeaderBuff:
|
||||
return ""
|
||||
self.NVHeaderBuff = self.NVHeaderBuff[:8] + pack("=Q",maxsize)
|
||||
self.NVHeaderBuff = self.NVHeaderBuff[:8] + pack("=Q", maxsize)
|
||||
default_var_bin = VariableMgr.format_data(self.NVHeaderBuff + self.VarDefaultBuff + self.VarDeltaBuff)
|
||||
value_str = "{"
|
||||
default_var_bin_strip = [ data.strip("""'""") for data in default_var_bin]
|
||||
|
@ -59,9 +59,9 @@ class VariableMgr(object):
|
|||
def combine_variable(self):
|
||||
indexedvarinfo = collections.OrderedDict()
|
||||
for item in self.VarInfo:
|
||||
if (item.skuname,item.defaultstoragename, item.var_name,item.var_guid) not in indexedvarinfo:
|
||||
indexedvarinfo[(item.skuname,item.defaultstoragename, item.var_name,item.var_guid) ] = []
|
||||
indexedvarinfo[(item.skuname,item.defaultstoragename, item.var_name,item.var_guid)].append(item)
|
||||
if (item.skuname, item.defaultstoragename, item.var_name, item.var_guid) not in indexedvarinfo:
|
||||
indexedvarinfo[(item.skuname, item.defaultstoragename, item.var_name, item.var_guid) ] = []
|
||||
indexedvarinfo[(item.skuname, item.defaultstoragename, item.var_name, item.var_guid)].append(item)
|
||||
for key in indexedvarinfo:
|
||||
sku_var_info_offset_list = indexedvarinfo[key]
|
||||
if len(sku_var_info_offset_list) == 1:
|
||||
|
@ -74,15 +74,15 @@ class VariableMgr(object):
|
|||
data_flag = DataType.PACK_CODE_BY_SIZE[MAX_SIZE_TYPE[data_type]]
|
||||
data = value_list[0]
|
||||
value_list = []
|
||||
for data_byte in pack(data_flag,int(data,16) if data.upper().startswith('0X') else int(data)):
|
||||
value_list.append(hex(unpack("B",data_byte)[0]))
|
||||
newvalue[int(item.var_offset,16) if item.var_offset.upper().startswith("0X") else int(item.var_offset)] = value_list
|
||||
for data_byte in pack(data_flag, int(data, 16) if data.upper().startswith('0X') else int(data)):
|
||||
value_list.append(hex(unpack("B", data_byte)[0]))
|
||||
newvalue[int(item.var_offset, 16) if item.var_offset.upper().startswith("0X") else int(item.var_offset)] = value_list
|
||||
try:
|
||||
newvaluestr = "{" + ",".join(VariableMgr.assemble_variable(newvalue)) +"}"
|
||||
except:
|
||||
EdkLogger.error("build", AUTOGEN_ERROR, "Variable offset conflict in PCDs: %s \n" % (" and ".join(item.pcdname for item in sku_var_info_offset_list)))
|
||||
n = sku_var_info_offset_list[0]
|
||||
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)]
|
||||
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)]
|
||||
self.VarInfo = [item[0] for item in indexedvarinfo.values()]
|
||||
|
||||
@staticmethod
|
||||
|
@ -105,7 +105,7 @@ class VariableMgr(object):
|
|||
for item in self.VarInfo:
|
||||
if item.pcdindex not in indexedvarinfo:
|
||||
indexedvarinfo[item.pcdindex] = dict()
|
||||
indexedvarinfo[item.pcdindex][(item.skuname,item.defaultstoragename)] = item
|
||||
indexedvarinfo[item.pcdindex][(item.skuname, item.defaultstoragename)] = item
|
||||
|
||||
for index in indexedvarinfo:
|
||||
sku_var_info = indexedvarinfo[index]
|
||||
|
@ -113,40 +113,40 @@ class VariableMgr(object):
|
|||
default_data_buffer = ""
|
||||
others_data_buffer = ""
|
||||
tail = None
|
||||
default_sku_default = indexedvarinfo[index].get((DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT))
|
||||
default_sku_default = indexedvarinfo[index].get((DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT))
|
||||
|
||||
if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:
|
||||
var_max_len = max(len(var_item.default_value.split(",")) for var_item in sku_var_info.values())
|
||||
if len(default_sku_default.default_value.split(",")) < var_max_len:
|
||||
tail = ",".join("0x00" for i in range(var_max_len-len(default_sku_default.default_value.split(","))))
|
||||
|
||||
default_data_buffer = VariableMgr.PACK_VARIABLES_DATA(default_sku_default.default_value,default_sku_default.data_type,tail)
|
||||
default_data_buffer = VariableMgr.PACK_VARIABLES_DATA(default_sku_default.default_value, default_sku_default.data_type, tail)
|
||||
|
||||
default_data_array = ()
|
||||
for item in default_data_buffer:
|
||||
default_data_array += unpack("B",item)
|
||||
default_data_array += unpack("B", item)
|
||||
|
||||
var_data[(DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT)][index] = (default_data_buffer,sku_var_info[(DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT)])
|
||||
var_data[(DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT)][index] = (default_data_buffer, sku_var_info[(DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT)])
|
||||
|
||||
for (skuid,defaultstoragename) in indexedvarinfo[index]:
|
||||
for (skuid, defaultstoragename) in indexedvarinfo[index]:
|
||||
tail = None
|
||||
if (skuid,defaultstoragename) == (DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT):
|
||||
if (skuid, defaultstoragename) == (DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT):
|
||||
continue
|
||||
other_sku_other = indexedvarinfo[index][(skuid,defaultstoragename)]
|
||||
other_sku_other = indexedvarinfo[index][(skuid, defaultstoragename)]
|
||||
|
||||
if default_sku_default.data_type not in DataType.TAB_PCD_NUMERIC_TYPES:
|
||||
if len(other_sku_other.default_value.split(",")) < var_max_len:
|
||||
tail = ",".join("0x00" for i in range(var_max_len-len(other_sku_other.default_value.split(","))))
|
||||
|
||||
others_data_buffer = VariableMgr.PACK_VARIABLES_DATA(other_sku_other.default_value,other_sku_other.data_type,tail)
|
||||
others_data_buffer = VariableMgr.PACK_VARIABLES_DATA(other_sku_other.default_value, other_sku_other.data_type, tail)
|
||||
|
||||
others_data_array = ()
|
||||
for item in others_data_buffer:
|
||||
others_data_array += unpack("B",item)
|
||||
others_data_array += unpack("B", item)
|
||||
|
||||
data_delta = VariableMgr.calculate_delta(default_data_array, others_data_array)
|
||||
|
||||
var_data[(skuid,defaultstoragename)][index] = (data_delta,sku_var_info[(skuid,defaultstoragename)])
|
||||
var_data[(skuid, defaultstoragename)][index] = (data_delta, sku_var_info[(skuid, defaultstoragename)])
|
||||
return var_data
|
||||
|
||||
def new_process_varinfo(self):
|
||||
|
@ -157,17 +157,17 @@ class VariableMgr(object):
|
|||
if not var_data:
|
||||
return []
|
||||
|
||||
pcds_default_data = var_data.get((DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT),{})
|
||||
pcds_default_data = var_data.get((DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT), {})
|
||||
NvStoreDataBuffer = ""
|
||||
var_data_offset = collections.OrderedDict()
|
||||
offset = NvStorageHeaderSize
|
||||
for default_data,default_info in pcds_default_data.values():
|
||||
for default_data, default_info in pcds_default_data.values():
|
||||
var_name_buffer = VariableMgr.PACK_VARIABLE_NAME(default_info.var_name)
|
||||
|
||||
vendorguid = default_info.var_guid.split('-')
|
||||
|
||||
if default_info.var_attribute:
|
||||
var_attr_value,_ = VariableAttributes.GetVarAttributes(default_info.var_attribute)
|
||||
var_attr_value, _ = VariableAttributes.GetVarAttributes(default_info.var_attribute)
|
||||
else:
|
||||
var_attr_value = 0x07
|
||||
|
||||
|
@ -186,22 +186,22 @@ class VariableMgr(object):
|
|||
nv_default_part = VariableMgr.AlignData(VariableMgr.PACK_DEFAULT_DATA(0, 0, VariableMgr.unpack_data(variable_storage_header_buffer+NvStoreDataBuffer)), 8)
|
||||
|
||||
data_delta_structure_buffer = ""
|
||||
for skuname,defaultstore in var_data:
|
||||
if (skuname,defaultstore) == (DataType.TAB_DEFAULT,DataType.TAB_DEFAULT_STORES_DEFAULT):
|
||||
for skuname, defaultstore in var_data:
|
||||
if (skuname, defaultstore) == (DataType.TAB_DEFAULT, DataType.TAB_DEFAULT_STORES_DEFAULT):
|
||||
continue
|
||||
pcds_sku_data = var_data[(skuname,defaultstore)]
|
||||
pcds_sku_data = var_data[(skuname, defaultstore)]
|
||||
delta_data_set = []
|
||||
for pcdindex in pcds_sku_data:
|
||||
offset = var_data_offset[pcdindex]
|
||||
delta_data,_ = pcds_sku_data[pcdindex]
|
||||
delta_data, _ = pcds_sku_data[pcdindex]
|
||||
delta_data = [(item[0] + offset, item[1]) for item in delta_data]
|
||||
delta_data_set.extend(delta_data)
|
||||
|
||||
data_delta_structure_buffer += VariableMgr.AlignData(self.PACK_DELTA_DATA(skuname,defaultstore,delta_data_set), 8)
|
||||
data_delta_structure_buffer += VariableMgr.AlignData(self.PACK_DELTA_DATA(skuname, defaultstore, delta_data_set), 8)
|
||||
|
||||
size = len(nv_default_part + data_delta_structure_buffer) + 16
|
||||
maxsize = self.VpdRegionSize if self.VpdRegionSize else size
|
||||
NV_Store_Default_Header = VariableMgr.PACK_NV_STORE_DEFAULT_HEADER(size,maxsize)
|
||||
NV_Store_Default_Header = VariableMgr.PACK_NV_STORE_DEFAULT_HEADER(size, maxsize)
|
||||
|
||||
self.NVHeaderBuff = NV_Store_Default_Header
|
||||
self.VarDefaultBuff =nv_default_part
|
||||
|
@ -217,7 +217,7 @@ class VariableMgr(object):
|
|||
def unpack_data(data):
|
||||
final_data = ()
|
||||
for item in data:
|
||||
final_data += unpack("B",item)
|
||||
final_data += unpack("B", item)
|
||||
return final_data
|
||||
|
||||
@staticmethod
|
||||
|
@ -227,7 +227,7 @@ class VariableMgr(object):
|
|||
data_delta = []
|
||||
for i in range(len(default)):
|
||||
if default[i] != theother[i]:
|
||||
data_delta.append((i,theother[i]))
|
||||
data_delta.append((i, theother[i]))
|
||||
return data_delta
|
||||
|
||||
def dump(self):
|
||||
|
@ -248,36 +248,36 @@ class VariableMgr(object):
|
|||
Guid = GuidStructureStringToGuidString(Guid)
|
||||
GuidBuffer = PackGUID(Guid.split('-'))
|
||||
|
||||
SizeBuffer = pack('=L',size)
|
||||
FormatBuffer = pack('=B',0x5A)
|
||||
StateBuffer = pack('=B',0xFE)
|
||||
reservedBuffer = pack('=H',0)
|
||||
reservedBuffer += pack('=L',0)
|
||||
SizeBuffer = pack('=L', size)
|
||||
FormatBuffer = pack('=B', 0x5A)
|
||||
StateBuffer = pack('=B', 0xFE)
|
||||
reservedBuffer = pack('=H', 0)
|
||||
reservedBuffer += pack('=L', 0)
|
||||
|
||||
return GuidBuffer + SizeBuffer + FormatBuffer + StateBuffer + reservedBuffer
|
||||
|
||||
@staticmethod
|
||||
def PACK_NV_STORE_DEFAULT_HEADER(size,maxsize):
|
||||
Signature = pack('=B',ord('N'))
|
||||
Signature += pack("=B",ord('S'))
|
||||
Signature += pack("=B",ord('D'))
|
||||
Signature += pack("=B",ord('B'))
|
||||
def PACK_NV_STORE_DEFAULT_HEADER(size, maxsize):
|
||||
Signature = pack('=B', ord('N'))
|
||||
Signature += pack("=B", ord('S'))
|
||||
Signature += pack("=B", ord('D'))
|
||||
Signature += pack("=B", ord('B'))
|
||||
|
||||
SizeBuffer = pack("=L",size)
|
||||
MaxSizeBuffer = pack("=Q",maxsize)
|
||||
SizeBuffer = pack("=L", size)
|
||||
MaxSizeBuffer = pack("=Q", maxsize)
|
||||
|
||||
return Signature + SizeBuffer + MaxSizeBuffer
|
||||
|
||||
@staticmethod
|
||||
def PACK_VARIABLE_HEADER(attribute,namesize,datasize,vendorguid):
|
||||
def PACK_VARIABLE_HEADER(attribute, namesize, datasize, vendorguid):
|
||||
|
||||
Buffer = pack('=H',0x55AA) # pack StartID
|
||||
Buffer += pack('=B',0x3F) # pack State
|
||||
Buffer += pack('=B',0) # pack reserved
|
||||
Buffer = pack('=H', 0x55AA) # pack StartID
|
||||
Buffer += pack('=B', 0x3F) # pack State
|
||||
Buffer += pack('=B', 0) # pack reserved
|
||||
|
||||
Buffer += pack('=L',attribute)
|
||||
Buffer += pack('=L',namesize)
|
||||
Buffer += pack('=L',datasize)
|
||||
Buffer += pack('=L', attribute)
|
||||
Buffer += pack('=L', namesize)
|
||||
Buffer += pack('=L', datasize)
|
||||
|
||||
Buffer += PackGUID(vendorguid)
|
||||
|
||||
|
@ -289,66 +289,66 @@ class VariableMgr(object):
|
|||
data_len = 0
|
||||
if data_type == DataType.TAB_VOID:
|
||||
for value_char in var_value.strip("{").strip("}").split(","):
|
||||
Buffer += pack("=B",int(value_char,16))
|
||||
Buffer += pack("=B", int(value_char, 16))
|
||||
data_len += len(var_value.split(","))
|
||||
if tail:
|
||||
for value_char in tail.split(","):
|
||||
Buffer += pack("=B",int(value_char,16))
|
||||
Buffer += pack("=B", int(value_char, 16))
|
||||
data_len += len(tail.split(","))
|
||||
elif data_type == "BOOLEAN":
|
||||
Buffer += pack("=B",True) if var_value.upper() == "TRUE" else pack("=B",False)
|
||||
Buffer += pack("=B", True) if var_value.upper() == "TRUE" else pack("=B", False)
|
||||
data_len += 1
|
||||
elif data_type == DataType.TAB_UINT8:
|
||||
Buffer += pack("=B",GetIntegerValue(var_value))
|
||||
Buffer += pack("=B", GetIntegerValue(var_value))
|
||||
data_len += 1
|
||||
elif data_type == DataType.TAB_UINT16:
|
||||
Buffer += pack("=H",GetIntegerValue(var_value))
|
||||
Buffer += pack("=H", GetIntegerValue(var_value))
|
||||
data_len += 2
|
||||
elif data_type == DataType.TAB_UINT32:
|
||||
Buffer += pack("=L",GetIntegerValue(var_value))
|
||||
Buffer += pack("=L", GetIntegerValue(var_value))
|
||||
data_len += 4
|
||||
elif data_type == DataType.TAB_UINT64:
|
||||
Buffer += pack("=Q",GetIntegerValue(var_value))
|
||||
Buffer += pack("=Q", GetIntegerValue(var_value))
|
||||
data_len += 8
|
||||
|
||||
return Buffer
|
||||
|
||||
@staticmethod
|
||||
def PACK_DEFAULT_DATA(defaultstoragename,skuid,var_value):
|
||||
def PACK_DEFAULT_DATA(defaultstoragename, skuid, var_value):
|
||||
Buffer = ""
|
||||
Buffer += pack("=L",4+8+8)
|
||||
Buffer += pack("=Q",int(skuid))
|
||||
Buffer += pack("=Q",int(defaultstoragename))
|
||||
Buffer += pack("=L", 4+8+8)
|
||||
Buffer += pack("=Q", int(skuid))
|
||||
Buffer += pack("=Q", int(defaultstoragename))
|
||||
|
||||
for item in var_value:
|
||||
Buffer += pack("=B",item)
|
||||
Buffer += pack("=B", item)
|
||||
|
||||
Buffer = pack("=L",len(Buffer)+4) + Buffer
|
||||
Buffer = pack("=L", len(Buffer)+4) + Buffer
|
||||
|
||||
return Buffer
|
||||
|
||||
def GetSkuId(self,skuname):
|
||||
def GetSkuId(self, skuname):
|
||||
if skuname not in self.SkuIdMap:
|
||||
return None
|
||||
return self.SkuIdMap.get(skuname)[0]
|
||||
|
||||
def GetDefaultStoreId(self,dname):
|
||||
def GetDefaultStoreId(self, dname):
|
||||
if dname not in self.DefaultStoreMap:
|
||||
return None
|
||||
return self.DefaultStoreMap.get(dname)[0]
|
||||
|
||||
def PACK_DELTA_DATA(self,skuname,defaultstoragename,delta_list):
|
||||
def PACK_DELTA_DATA(self, skuname, defaultstoragename, delta_list):
|
||||
skuid = self.GetSkuId(skuname)
|
||||
defaultstorageid = self.GetDefaultStoreId(defaultstoragename)
|
||||
Buffer = ""
|
||||
Buffer += pack("=L",4+8+8)
|
||||
Buffer += pack("=Q",int(skuid))
|
||||
Buffer += pack("=Q",int(defaultstorageid))
|
||||
for (delta_offset,value) in delta_list:
|
||||
Buffer += pack("=L",delta_offset)
|
||||
Buffer = Buffer[:-1] + pack("=B",value)
|
||||
Buffer += pack("=L", 4+8+8)
|
||||
Buffer += pack("=Q", int(skuid))
|
||||
Buffer += pack("=Q", int(defaultstorageid))
|
||||
for (delta_offset, value) in delta_list:
|
||||
Buffer += pack("=L", delta_offset)
|
||||
Buffer = Buffer[:-1] + pack("=B", value)
|
||||
|
||||
Buffer = pack("=L",len(Buffer) + 4) + Buffer
|
||||
Buffer = pack("=L", len(Buffer) + 4) + Buffer
|
||||
|
||||
return Buffer
|
||||
|
||||
|
@ -357,7 +357,7 @@ class VariableMgr(object):
|
|||
mybuffer = data
|
||||
if (len(data) % align) > 0:
|
||||
for i in range(align - (len(data) % align)):
|
||||
mybuffer += pack("=B",0)
|
||||
mybuffer += pack("=B", 0)
|
||||
|
||||
return mybuffer
|
||||
|
||||
|
@ -365,6 +365,6 @@ class VariableMgr(object):
|
|||
def PACK_VARIABLE_NAME(var_name):
|
||||
Buffer = ""
|
||||
for name_char in var_name.strip("{").strip("}").split(","):
|
||||
Buffer += pack("=B",int(name_char,16))
|
||||
Buffer += pack("=B", int(name_char, 16))
|
||||
|
||||
return Buffer
|
||||
|
|
|
@ -94,7 +94,7 @@ PRINTABLE_LANGUAGE_NAME_STRING_NAME = '$PRINTABLE_LANGUAGE_NAME'
|
|||
# @retval: The formatted hex string
|
||||
#
|
||||
def DecToHexStr(Dec, Digit = 8):
|
||||
return '0x{0:0{1}X}'.format(Dec,Digit)
|
||||
return '0x{0:0{1}X}'.format(Dec, Digit)
|
||||
|
||||
## Convert a dec number to a hex list
|
||||
#
|
||||
|
@ -109,7 +109,7 @@ def DecToHexStr(Dec, Digit = 8):
|
|||
# @retval: A list for formatted hex string
|
||||
#
|
||||
def DecToHexList(Dec, Digit = 8):
|
||||
Hex = '{0:0{1}X}'.format(Dec,Digit)
|
||||
Hex = '{0:0{1}X}'.format(Dec, Digit)
|
||||
return ["0x" + Hex[Bit:Bit + 2] for Bit in range(Digit - 2, -1, -2)]
|
||||
|
||||
## Convert a acsii string to a hex list
|
||||
|
|
|
@ -349,7 +349,7 @@ class GenVPD :
|
|||
#
|
||||
# Enhanced for support "|" character in the string.
|
||||
#
|
||||
ValueList = ['', '', '', '','']
|
||||
ValueList = ['', '', '', '', '']
|
||||
|
||||
ValueRe = re.compile(r'\s*L?\".*\|.*\"\s*$')
|
||||
PtrValue = ValueRe.findall(line)
|
||||
|
@ -399,7 +399,7 @@ class GenVPD :
|
|||
count = 0
|
||||
for line in self.FileLinesList:
|
||||
if line is not None :
|
||||
PCD = PcdEntry(line[0], line[1], line[2], line[3], line[4],line[5], self.InputFileName)
|
||||
PCD = PcdEntry(line[0], line[1], line[2], line[3], line[4], line[5], self.InputFileName)
|
||||
# Strip the space char
|
||||
PCD.PcdCName = PCD.PcdCName.strip(' ')
|
||||
PCD.SkuId = PCD.SkuId.strip(' ')
|
||||
|
@ -513,10 +513,10 @@ class GenVPD :
|
|||
index =0
|
||||
for pcd in self.PcdUnknownOffsetList:
|
||||
index += 1
|
||||
if pcd.PcdCName == ".".join(("gEfiMdeModulePkgTokenSpaceGuid","PcdNvStoreDefaultValueBuffer")):
|
||||
if pcd.PcdCName == ".".join(("gEfiMdeModulePkgTokenSpaceGuid", "PcdNvStoreDefaultValueBuffer")):
|
||||
if index != len(self.PcdUnknownOffsetList):
|
||||
for i in range(len(self.PcdUnknownOffsetList) - index):
|
||||
self.PcdUnknownOffsetList[index+i -1 ] , self.PcdUnknownOffsetList[index+i] = self.PcdUnknownOffsetList[index+i] , self.PcdUnknownOffsetList[index+i -1]
|
||||
self.PcdUnknownOffsetList[index+i -1 ], self.PcdUnknownOffsetList[index+i] = self.PcdUnknownOffsetList[index+i], self.PcdUnknownOffsetList[index+i -1]
|
||||
|
||||
#
|
||||
# Process all Offset value are "*"
|
||||
|
@ -597,7 +597,7 @@ class GenVPD :
|
|||
eachUnfixedPcd.PcdOffset = str(hex(LastOffset))
|
||||
eachUnfixedPcd.PcdBinOffset = LastOffset
|
||||
# Insert this pcd into fixed offset pcd list.
|
||||
self.PcdFixedOffsetSizeList.insert(FixOffsetSizeListCount,eachUnfixedPcd)
|
||||
self.PcdFixedOffsetSizeList.insert(FixOffsetSizeListCount, eachUnfixedPcd)
|
||||
|
||||
# Delete the item's offset that has been fixed and added into fixed offset list
|
||||
self.PcdUnknownOffsetList.pop(countOfUnfixedList)
|
||||
|
@ -685,7 +685,7 @@ class GenVPD :
|
|||
for eachPcd in self.PcdFixedOffsetSizeList :
|
||||
# write map file
|
||||
try :
|
||||
fMapFile.write("%s | %s | %s | %s | %s \n" % (eachPcd.PcdCName, eachPcd.SkuId,eachPcd.PcdOffset, eachPcd.PcdSize,eachPcd.PcdUnpackValue))
|
||||
fMapFile.write("%s | %s | %s | %s | %s \n" % (eachPcd.PcdCName, eachPcd.SkuId, eachPcd.PcdOffset, eachPcd.PcdSize, eachPcd.PcdUnpackValue))
|
||||
except:
|
||||
EdkLogger.error("BPDG", BuildToolError.FILE_WRITE_FAILURE, "Write data to file %s failed, please check whether the file been locked or using by other applications." % self.MapFileName, None)
|
||||
|
||||
|
|
|
@ -531,8 +531,8 @@ PCDS_DYNAMICEX_DEFAULT = "PcdsDynamicExDefault"
|
|||
PCDS_DYNAMICEX_VPD = "PcdsDynamicExVpd"
|
||||
PCDS_DYNAMICEX_HII = "PcdsDynamicExHii"
|
||||
|
||||
SECTIONS_HAVE_ITEM_PCD_SET = {PCDS_DYNAMIC_DEFAULT.upper(),PCDS_DYNAMIC_VPD.upper(),PCDS_DYNAMIC_HII.upper(), \
|
||||
PCDS_DYNAMICEX_DEFAULT.upper(),PCDS_DYNAMICEX_VPD.upper(),PCDS_DYNAMICEX_HII.upper()}
|
||||
SECTIONS_HAVE_ITEM_PCD_SET = {PCDS_DYNAMIC_DEFAULT.upper(), PCDS_DYNAMIC_VPD.upper(), PCDS_DYNAMIC_HII.upper(), \
|
||||
PCDS_DYNAMICEX_DEFAULT.upper(), PCDS_DYNAMICEX_VPD.upper(), PCDS_DYNAMICEX_HII.upper()}
|
||||
# Section allowed to have items after arch
|
||||
SECTIONS_HAVE_ITEM_AFTER_ARCH_SET = {TAB_LIBRARY_CLASSES.upper(), TAB_DEPEX.upper(), TAB_USER_EXTENSIONS.upper(),
|
||||
PCDS_DYNAMIC_DEFAULT.upper(),
|
||||
|
|
|
@ -569,7 +569,7 @@ class ValueExpression(BaseExpression):
|
|||
IsArray = IsGuid = False
|
||||
if len(Token.split(',')) == 11 and len(Token.split(',{')) == 2 \
|
||||
and len(Token.split('},')) == 1:
|
||||
HexLen = [11,6,6,5,4,4,4,4,4,4,6]
|
||||
HexLen = [11, 6, 6, 5, 4, 4, 4, 4, 4, 4, 6]
|
||||
HexList= Token.split(',')
|
||||
if HexList[3].startswith('{') and \
|
||||
not [Index for Index, Hex in enumerate(HexList) if len(Hex) > HexLen[Index]]:
|
||||
|
@ -765,7 +765,7 @@ class ValueExpression(BaseExpression):
|
|||
# Parse operator
|
||||
def _GetOperator(self):
|
||||
self.__SkipWS()
|
||||
LegalOpLst = ['&&', '||', '!=', '==', '>=', '<='] + self.NonLetterOpLst + ['?',':']
|
||||
LegalOpLst = ['&&', '||', '!=', '==', '>=', '<='] + self.NonLetterOpLst + ['?', ':']
|
||||
|
||||
self._Token = ''
|
||||
Expr = self._Expr[self._Idx:]
|
||||
|
@ -842,7 +842,7 @@ class ValueExpressionEx(ValueExpression):
|
|||
elif Item.startswith(TAB_UINT64):
|
||||
ItemSize = 8
|
||||
ValueType = TAB_UINT64
|
||||
elif Item[0] in {'"',"'",'L'}:
|
||||
elif Item[0] in {'"', "'", 'L'}:
|
||||
ItemSize = 0
|
||||
ValueType = TAB_VOID
|
||||
else:
|
||||
|
@ -946,7 +946,7 @@ class ValueExpressionEx(ValueExpression):
|
|||
# replace each offset, except errors
|
||||
for Offset in OffsetList:
|
||||
try:
|
||||
Item = Item.replace('OFFSET_OF({})'.format(Offset),LabelDict[Offset])
|
||||
Item = Item.replace('OFFSET_OF({})'.format(Offset), LabelDict[Offset])
|
||||
except:
|
||||
raise BadExpression('%s not defined' % Offset)
|
||||
|
||||
|
@ -999,7 +999,7 @@ class ValueExpressionEx(ValueExpression):
|
|||
Item = '0x%x' % TmpValue if type(TmpValue) != type('') else TmpValue
|
||||
if ItemSize == 0:
|
||||
ItemValue, ItemSize = ParseFieldValue(Item)
|
||||
if Item[0] not in {'"','L','{'} and ItemSize > 1:
|
||||
if Item[0] not in {'"', 'L', '{'} and ItemSize > 1:
|
||||
raise BadExpression("Byte array number %s should less than 0xFF." % Item)
|
||||
else:
|
||||
ItemValue = ParseFieldValue(Item)[0]
|
||||
|
|
|
@ -132,7 +132,7 @@ def _parseForGCC(lines, efifilepath, varnames):
|
|||
if Str:
|
||||
m = pcdPatternGcc.match(Str.strip())
|
||||
if m is not None:
|
||||
varoffset.append((varname, int(m.groups(0)[0], 16) , int(sections[-1][1], 16), sections[-1][0]))
|
||||
varoffset.append((varname, int(m.groups(0)[0], 16), int(sections[-1][1], 16), sections[-1][0]))
|
||||
|
||||
if not varoffset:
|
||||
return []
|
||||
|
@ -1469,7 +1469,7 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
|
|||
# Value, Size = ParseFieldValue(Value)
|
||||
if Size:
|
||||
try:
|
||||
int(Size,16) if Size.upper().startswith("0X") else int(Size)
|
||||
int(Size, 16) if Size.upper().startswith("0X") else int(Size)
|
||||
except:
|
||||
IsValid = False
|
||||
Size = -1
|
||||
|
@ -1490,7 +1490,7 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
|
|||
|
||||
if Size:
|
||||
try:
|
||||
int(Size,16) if Size.upper().startswith("0X") else int(Size)
|
||||
int(Size, 16) if Size.upper().startswith("0X") else int(Size)
|
||||
except:
|
||||
IsValid = False
|
||||
Size = -1
|
||||
|
@ -1512,7 +1512,7 @@ def AnalyzeDscPcd(Setting, PcdType, DataType=''):
|
|||
IsValid = (len(FieldList) <= 3)
|
||||
if Size:
|
||||
try:
|
||||
int(Size,16) if Size.upper().startswith("0X") else int(Size)
|
||||
int(Size, 16) if Size.upper().startswith("0X") else int(Size)
|
||||
except:
|
||||
IsValid = False
|
||||
Size = -1
|
||||
|
@ -1670,7 +1670,7 @@ def ConvertStringToByteArray(Value):
|
|||
|
||||
Value = eval(Value) # translate escape character
|
||||
NewValue = '{'
|
||||
for Index in range(0,len(Value)):
|
||||
for Index in range(0, len(Value)):
|
||||
if Unicode:
|
||||
NewValue = NewValue + str(ord(Value[Index]) % 0x10000) + ','
|
||||
else:
|
||||
|
@ -1914,28 +1914,28 @@ class PeImageClass():
|
|||
return Value
|
||||
|
||||
class DefaultStore():
|
||||
def __init__(self,DefaultStores ):
|
||||
def __init__(self, DefaultStores ):
|
||||
|
||||
self.DefaultStores = DefaultStores
|
||||
def DefaultStoreID(self,DefaultStoreName):
|
||||
for key,value in self.DefaultStores.items():
|
||||
def DefaultStoreID(self, DefaultStoreName):
|
||||
for key, value in self.DefaultStores.items():
|
||||
if value == DefaultStoreName:
|
||||
return key
|
||||
return None
|
||||
def GetDefaultDefault(self):
|
||||
if not self.DefaultStores or "0" in self.DefaultStores:
|
||||
return "0",TAB_DEFAULT_STORES_DEFAULT
|
||||
return "0", TAB_DEFAULT_STORES_DEFAULT
|
||||
else:
|
||||
minvalue = min(int(value_str) for value_str in self.DefaultStores)
|
||||
return (str(minvalue), self.DefaultStores[str(minvalue)])
|
||||
def GetMin(self,DefaultSIdList):
|
||||
def GetMin(self, DefaultSIdList):
|
||||
if not DefaultSIdList:
|
||||
return TAB_DEFAULT_STORES_DEFAULT
|
||||
storeidset = {storeid for storeid, storename in self.DefaultStores.values() if storename in DefaultSIdList}
|
||||
if not storeidset:
|
||||
return ""
|
||||
minid = min(storeidset )
|
||||
for sid,name in self.DefaultStores.values():
|
||||
for sid, name in self.DefaultStores.values():
|
||||
if sid == minid:
|
||||
return name
|
||||
class SkuClass():
|
||||
|
@ -1950,7 +1950,7 @@ class SkuClass():
|
|||
|
||||
for SkuName in SkuIds:
|
||||
SkuId = SkuIds[SkuName][0]
|
||||
skuid_num = int(SkuId,16) if SkuId.upper().startswith("0X") else int(SkuId)
|
||||
skuid_num = int(SkuId, 16) if SkuId.upper().startswith("0X") else int(SkuId)
|
||||
if skuid_num > 0xFFFFFFFFFFFFFFFF:
|
||||
EdkLogger.error("build", PARAMETER_INVALID,
|
||||
ExtraData = "SKU-ID [%s] value %s exceeds the max value of UINT64"
|
||||
|
@ -2003,9 +2003,9 @@ class SkuClass():
|
|||
self.__SkuInherit = {}
|
||||
for item in self.SkuData.values():
|
||||
self.__SkuInherit[item[1]]=item[2] if item[2] else "DEFAULT"
|
||||
return self.__SkuInherit.get(skuname,"DEFAULT")
|
||||
return self.__SkuInherit.get(skuname, "DEFAULT")
|
||||
|
||||
def GetSkuChain(self,sku):
|
||||
def GetSkuChain(self, sku):
|
||||
if sku == "DEFAULT":
|
||||
return ["DEFAULT"]
|
||||
skulist = [sku]
|
||||
|
|
|
@ -17,7 +17,7 @@ from Common.GlobalData import *
|
|||
from CommonDataClass.Exceptions import BadExpression
|
||||
from CommonDataClass.Exceptions import WrnExpression
|
||||
import uuid
|
||||
from Common.Expression import PcdPattern,BaseExpression
|
||||
from Common.Expression import PcdPattern, BaseExpression
|
||||
from Common.DataType import *
|
||||
|
||||
ERR_STRING_EXPR = 'This operator cannot be used in string expression: [%s].'
|
||||
|
@ -167,7 +167,7 @@ class EQOperatorObject(object):
|
|||
raise BadExpression(ERR_SNYTAX % Expr)
|
||||
rangeId1 = str(uuid.uuid1())
|
||||
rangeContainer = RangeContainer()
|
||||
rangeContainer.push(RangeObject(int(Operand) , int(Operand)))
|
||||
rangeContainer.push(RangeObject(int(Operand), int(Operand)))
|
||||
SymbolTable[rangeId1] = rangeContainer
|
||||
return rangeId1
|
||||
|
||||
|
@ -453,7 +453,7 @@ class RangeExpression(BaseExpression):
|
|||
|
||||
# [!]*A
|
||||
def _RelExpr(self):
|
||||
if self._IsOperator({"NOT" , "LE", "GE", "LT", "GT", "EQ", "XOR"}):
|
||||
if self._IsOperator({"NOT", "LE", "GE", "LT", "GT", "EQ", "XOR"}):
|
||||
Token = self._Token
|
||||
Val = self._NeExpr()
|
||||
try:
|
||||
|
|
|
@ -750,7 +750,7 @@ def SplitString(String):
|
|||
# @param StringList: A list for strings to be converted
|
||||
#
|
||||
def ConvertToSqlString(StringList):
|
||||
return map(lambda s: s.replace("'", "''") , StringList)
|
||||
return map(lambda s: s.replace("'", "''"), StringList)
|
||||
|
||||
## Convert To Sql String
|
||||
#
|
||||
|
|
|
@ -26,9 +26,9 @@ from Common.StringUtils import NormPath
|
|||
import Common.GlobalData as GlobalData
|
||||
from Common import GlobalData
|
||||
from Common.MultipleWorkspace import MultipleWorkspace as mws
|
||||
from DataType import TAB_TOD_DEFINES_TARGET,TAB_TOD_DEFINES_TOOL_CHAIN_TAG,\
|
||||
TAB_TOD_DEFINES_TARGET_ARCH,TAB_TOD_DEFINES_COMMAND_TYPE\
|
||||
,TAB_TOD_DEFINES_FAMILY,TAB_TOD_DEFINES_BUILDRULEFAMILY
|
||||
from DataType import TAB_TOD_DEFINES_TARGET, TAB_TOD_DEFINES_TOOL_CHAIN_TAG,\
|
||||
TAB_TOD_DEFINES_TARGET_ARCH, TAB_TOD_DEFINES_COMMAND_TYPE\
|
||||
, TAB_TOD_DEFINES_FAMILY, TAB_TOD_DEFINES_BUILDRULEFAMILY
|
||||
|
||||
|
||||
##
|
||||
|
|
|
@ -88,7 +88,7 @@ class VpdInfoFile:
|
|||
#
|
||||
# @param offset integer value for VPD's offset in specific SKU.
|
||||
#
|
||||
def Add(self, Vpd, skuname,Offset):
|
||||
def Add(self, Vpd, skuname, Offset):
|
||||
if (Vpd is None):
|
||||
EdkLogger.error("VpdInfoFile", BuildToolError.ATTRIBUTE_UNKNOWN_ERROR, "Invalid VPD PCD entry.")
|
||||
|
||||
|
@ -140,7 +140,7 @@ class VpdInfoFile:
|
|||
if PcdValue == "" :
|
||||
PcdValue = Pcd.DefaultValue
|
||||
|
||||
Content += "%s.%s|%s|%s|%s|%s \n" % (Pcd.TokenSpaceGuidCName, PcdTokenCName, skuname,str(self._VpdArray[Pcd][skuname]).strip(), str(Pcd.MaxDatumSize).strip(),PcdValue)
|
||||
Content += "%s.%s|%s|%s|%s|%s \n" % (Pcd.TokenSpaceGuidCName, PcdTokenCName, skuname, str(self._VpdArray[Pcd][skuname]).strip(), str(Pcd.MaxDatumSize).strip(), PcdValue)
|
||||
i += 1
|
||||
|
||||
return SaveFileOnChange(FilePath, Content, False)
|
||||
|
@ -169,8 +169,8 @@ class VpdInfoFile:
|
|||
# the line must follow output format defined in BPDG spec.
|
||||
#
|
||||
try:
|
||||
PcdName, SkuId,Offset, Size, Value = Line.split("#")[0].split("|")
|
||||
PcdName, SkuId,Offset, Size, Value = PcdName.strip(), SkuId.strip(),Offset.strip(), Size.strip(), Value.strip()
|
||||
PcdName, SkuId, Offset, Size, Value = Line.split("#")[0].split("|")
|
||||
PcdName, SkuId, Offset, Size, Value = PcdName.strip(), SkuId.strip(), Offset.strip(), Size.strip(), Value.strip()
|
||||
TokenSpaceName, PcdTokenName = PcdName.split(".")
|
||||
except:
|
||||
EdkLogger.error("BPDG", BuildToolError.PARSER_ERROR, "Fail to parse VPD information file %s" % FilePath)
|
||||
|
@ -179,7 +179,7 @@ class VpdInfoFile:
|
|||
|
||||
if (TokenSpaceName, PcdTokenName) not in self._VpdInfo:
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)] = []
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId,Offset, Value))
|
||||
self._VpdInfo[(TokenSpaceName, PcdTokenName)].append((SkuId, Offset, Value))
|
||||
for VpdObject in self._VpdArray:
|
||||
VpdObjectTokenCName = VpdObject.TokenCName
|
||||
for PcdItem in GlobalData.MixedPcd:
|
||||
|
|
|
@ -785,10 +785,10 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if d is not None:
|
||||
self.function_definition_stack[-1].ModifierText = self.input.toString(d.start,d.stop)
|
||||
self.function_definition_stack[-1].ModifierText = self.input.toString(d.start, d.stop)
|
||||
else:
|
||||
self.function_definition_stack[-1].ModifierText = ''
|
||||
self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start,declarator1.stop)
|
||||
self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start, declarator1.stop)
|
||||
self.function_definition_stack[-1].DeclLine = declarator1.start.line
|
||||
self.function_definition_stack[-1].DeclOffset = declarator1.start.charPositionInLine
|
||||
if a is not None:
|
||||
|
@ -922,9 +922,9 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if b is not None:
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start,b.stop), self.input.toString(c.start,c.stop))
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start, b.stop), self.input.toString(c.start, c.stop))
|
||||
else:
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start,c.stop))
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start, c.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -959,7 +959,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if t is not None:
|
||||
self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start,s.stop), self.input.toString(t.start,t.stop))
|
||||
self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start, s.stop), self.input.toString(t.start, t.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -1403,7 +1403,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if s.stop is not None:
|
||||
self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start,s.stop))
|
||||
self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start, s.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -1418,7 +1418,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if e.stop is not None:
|
||||
self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -5401,7 +5401,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start,p.stop)
|
||||
self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start, p.stop)
|
||||
|
||||
# C.g:407:9: ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )*
|
||||
while True: #loop65
|
||||
|
@ -5501,7 +5501,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start,c.stop))
|
||||
self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start, c.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -8277,7 +8277,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16384,7 +16384,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
self.following.append(self.FOLLOW_statement_in_selection_statement2284)
|
||||
self.statement()
|
||||
|
@ -16503,7 +16503,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16535,7 +16535,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16582,7 +16582,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -561,7 +561,7 @@ class InfParser(MetaFileParser):
|
|||
NmakeLine = ''
|
||||
|
||||
# section content
|
||||
self._ValueList = ['','','']
|
||||
self._ValueList = ['', '', '']
|
||||
# parse current line, result will be put in self._ValueList
|
||||
self._SectionParser[self._SectionType](self)
|
||||
if self._ValueList is None or self._ItemType == MODEL_META_DATA_DEFINE:
|
||||
|
@ -920,7 +920,7 @@ class DscParser(MetaFileParser):
|
|||
|
||||
## Directive statement parser
|
||||
def _DirectiveParser(self):
|
||||
self._ValueList = ['','','']
|
||||
self._ValueList = ['', '', '']
|
||||
TokenList = GetSplitValueList(self._CurrentLine, ' ', 1)
|
||||
self._ValueList[0:len(TokenList)] = TokenList
|
||||
|
||||
|
@ -1110,7 +1110,7 @@ class DscParser(MetaFileParser):
|
|||
|
||||
## Override parent's method since we'll do all macro replacements in parser
|
||||
def _GetMacros(self):
|
||||
Macros = dict( [('ARCH','IA32'), ('FAMILY','MSFT'),('TOOL_CHAIN_TAG','VS2008x86'),('TARGET','DEBUG')])
|
||||
Macros = dict( [('ARCH', 'IA32'), ('FAMILY', 'MSFT'), ('TOOL_CHAIN_TAG', 'VS2008x86'), ('TARGET', 'DEBUG')])
|
||||
Macros.update(self._FileLocalMacros)
|
||||
Macros.update(self._GetApplicableSectionMacro())
|
||||
Macros.update(GlobalData.gEdkGlobal)
|
||||
|
@ -1225,7 +1225,7 @@ class DscParser(MetaFileParser):
|
|||
self._RawTable.Drop()
|
||||
self._Table.Drop()
|
||||
for Record in RecordList:
|
||||
EccGlobalData.gDb.TblDsc.Insert(Record[1],Record[2],Record[3],Record[4],Record[5],Record[6],Record[7],Record[8],Record[9],Record[10],Record[11],Record[12],Record[13],Record[14])
|
||||
EccGlobalData.gDb.TblDsc.Insert(Record[1], Record[2], Record[3], Record[4], Record[5], Record[6], Record[7], Record[8], Record[9], Record[10], Record[11], Record[12], Record[13], Record[14])
|
||||
GlobalData.gPlatformDefines.update(self._FileLocalMacros)
|
||||
self._PostProcessed = True
|
||||
self._Content = None
|
||||
|
@ -1246,7 +1246,7 @@ class DscParser(MetaFileParser):
|
|||
|
||||
def __RetrievePcdValue(self):
|
||||
Records = self._RawTable.Query(MODEL_PCD_FEATURE_FLAG, BelongsToItem=-1.0)
|
||||
for TokenSpaceGuid,PcdName,Value,Dummy2,Dummy3,ID,Line in Records:
|
||||
for TokenSpaceGuid, PcdName, Value, Dummy2, Dummy3, ID, Line in Records:
|
||||
Value, DatumType, MaxDatumSize = AnalyzePcdData(Value)
|
||||
# Only use PCD whose value is straitforward (no macro and PCD)
|
||||
if self.SymbolPattern.findall(Value):
|
||||
|
@ -1259,7 +1259,7 @@ class DscParser(MetaFileParser):
|
|||
self._Symbols[Name] = Value
|
||||
|
||||
Records = self._RawTable.Query(MODEL_PCD_FIXED_AT_BUILD, BelongsToItem=-1.0)
|
||||
for TokenSpaceGuid,PcdName,Value,Dummy2,Dummy3,ID,Line in Records:
|
||||
for TokenSpaceGuid, PcdName, Value, Dummy2, Dummy3, ID, Line in Records:
|
||||
Value, DatumType, MaxDatumSize = AnalyzePcdData(Value)
|
||||
# Only use PCD whose value is straitforward (no macro and PCD)
|
||||
if self.SymbolPattern.findall(Value):
|
||||
|
@ -1571,7 +1571,7 @@ class DecParser(MetaFileParser):
|
|||
continue
|
||||
|
||||
# section content
|
||||
self._ValueList = ['','','']
|
||||
self._ValueList = ['', '', '']
|
||||
self._SectionParser[self._SectionType[0]](self)
|
||||
if self._ValueList is None or self._ItemType == MODEL_META_DATA_DEFINE:
|
||||
self._ItemType = -1
|
||||
|
@ -1717,7 +1717,7 @@ class DecParser(MetaFileParser):
|
|||
GuidValue = GuidValue.lstrip(' {')
|
||||
HexList.append('0x' + str(GuidValue[2:]))
|
||||
Index += 1
|
||||
self._ValueList[1] = "{ %s, %s, %s, { %s, %s, %s, %s, %s, %s, %s, %s }}" % (HexList[0], HexList[1], HexList[2],HexList[3],HexList[4],HexList[5],HexList[6],HexList[7],HexList[8],HexList[9],HexList[10])
|
||||
self._ValueList[1] = "{ %s, %s, %s, { %s, %s, %s, %s, %s, %s, %s, %s }}" % (HexList[0], HexList[1], HexList[2], HexList[3], HexList[4], HexList[5], HexList[6], HexList[7], HexList[8], HexList[9], HexList[10])
|
||||
else:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "Invalid GUID value format",
|
||||
ExtraData=self._CurrentLine + \
|
||||
|
|
|
@ -785,10 +785,10 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if d is not None:
|
||||
self.function_definition_stack[-1].ModifierText = self.input.toString(d.start,d.stop)
|
||||
self.function_definition_stack[-1].ModifierText = self.input.toString(d.start, d.stop)
|
||||
else:
|
||||
self.function_definition_stack[-1].ModifierText = ''
|
||||
self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start,declarator1.stop)
|
||||
self.function_definition_stack[-1].DeclText = self.input.toString(declarator1.start, declarator1.stop)
|
||||
self.function_definition_stack[-1].DeclLine = declarator1.start.line
|
||||
self.function_definition_stack[-1].DeclOffset = declarator1.start.charPositionInLine
|
||||
if a is not None:
|
||||
|
@ -922,9 +922,9 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if b is not None:
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start,b.stop), self.input.toString(c.start,c.stop))
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, self.input.toString(b.start, b.stop), self.input.toString(c.start, c.stop))
|
||||
else:
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start,c.stop))
|
||||
self.StoreTypedefDefinition(a.line, a.charPositionInLine, d.line, d.charPositionInLine, '', self.input.toString(c.start, c.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -959,7 +959,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if t is not None:
|
||||
self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start,s.stop), self.input.toString(t.start,t.stop))
|
||||
self.StoreVariableDeclaration(s.start.line, s.start.charPositionInLine, t.start.line, t.start.charPositionInLine, self.input.toString(s.start, s.stop), self.input.toString(t.start, t.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -1403,7 +1403,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if s.stop is not None:
|
||||
self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start,s.stop))
|
||||
self.StoreStructUnionDefinition(s.start.line, s.start.charPositionInLine, s.stop.line, s.stop.charPositionInLine, self.input.toString(s.start, s.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -1418,7 +1418,7 @@ class CParser(Parser):
|
|||
if self.backtracking == 0:
|
||||
|
||||
if e.stop is not None:
|
||||
self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StoreEnumerationDefinition(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -5401,7 +5401,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start,p.stop)
|
||||
self.postfix_expression_stack[-1].FuncCallText += self.input.toString(p.start, p.stop)
|
||||
|
||||
# C.g:407:9: ( '[' expression ']' | '(' a= ')' | '(' c= argument_expression_list b= ')' | '(' macro_parameter_list ')' | '.' x= IDENTIFIER | '*' y= IDENTIFIER | '->' z= IDENTIFIER | '++' | '--' )*
|
||||
while True: #loop65
|
||||
|
@ -5501,7 +5501,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start,c.stop))
|
||||
self.StoreFunctionCalling(p.start.line, p.start.charPositionInLine, b.line, b.charPositionInLine, self.postfix_expression_stack[-1].FuncCallText, self.input.toString(c.start, c.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -8277,7 +8277,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16384,7 +16384,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
self.following.append(self.FOLLOW_statement_in_selection_statement2284)
|
||||
self.statement()
|
||||
|
@ -16503,7 +16503,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16535,7 +16535,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
@ -16582,7 +16582,7 @@ class CParser(Parser):
|
|||
if self.failed:
|
||||
return
|
||||
if self.backtracking == 0:
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start,e.stop))
|
||||
self.StorePredicateExpression(e.start.line, e.start.charPositionInLine, e.stop.line, e.stop.charPositionInLine, self.input.toString(e.start, e.stop))
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -128,11 +128,11 @@ def GetIdentifierList():
|
|||
|
||||
for pp in FileProfile.PPDirectiveList:
|
||||
Type = GetIdType(pp.Content)
|
||||
IdPP = DataClass.IdentifierClass(-1, '', '', '', pp.Content, Type, -1, -1, pp.StartPos[0],pp.StartPos[1],pp.EndPos[0],pp.EndPos[1])
|
||||
IdPP = DataClass.IdentifierClass(-1, '', '', '', pp.Content, Type, -1, -1, pp.StartPos[0], pp.StartPos[1], pp.EndPos[0], pp.EndPos[1])
|
||||
IdList.append(IdPP)
|
||||
|
||||
for ae in FileProfile.AssignmentExpressionList:
|
||||
IdAE = DataClass.IdentifierClass(-1, ae.Operator, '', ae.Name, ae.Value, DataClass.MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION, -1, -1, ae.StartPos[0],ae.StartPos[1],ae.EndPos[0],ae.EndPos[1])
|
||||
IdAE = DataClass.IdentifierClass(-1, ae.Operator, '', ae.Name, ae.Value, DataClass.MODEL_IDENTIFIER_ASSIGNMENT_EXPRESSION, -1, -1, ae.StartPos[0], ae.StartPos[1], ae.EndPos[0], ae.EndPos[1])
|
||||
IdList.append(IdAE)
|
||||
|
||||
FuncDeclPattern = GetFuncDeclPattern()
|
||||
|
@ -154,7 +154,7 @@ def GetIdentifierList():
|
|||
var.Modifier += ' ' + FuncNamePartList[Index]
|
||||
var.Declarator = var.Declarator.lstrip().lstrip(FuncNamePartList[Index])
|
||||
Index += 1
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', var.Declarator, '', DataClass.MODEL_IDENTIFIER_FUNCTION_DECLARATION, -1, -1, var.StartPos[0],var.StartPos[1],var.EndPos[0],var.EndPos[1])
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', var.Declarator, '', DataClass.MODEL_IDENTIFIER_FUNCTION_DECLARATION, -1, -1, var.StartPos[0], var.StartPos[1], var.EndPos[0], var.EndPos[1])
|
||||
IdList.append(IdVar)
|
||||
continue
|
||||
|
||||
|
@ -167,7 +167,7 @@ def GetIdentifierList():
|
|||
var.Modifier += ' ' + Name[LSBPos:]
|
||||
Name = Name[0:LSBPos]
|
||||
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', Name, (len(DeclList) > 1 and [DeclList[1]]or [''])[0], DataClass.MODEL_IDENTIFIER_VARIABLE, -1, -1, var.StartPos[0],var.StartPos[1],var.EndPos[0],var.EndPos[1])
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', Name, (len(DeclList) > 1 and [DeclList[1]]or [''])[0], DataClass.MODEL_IDENTIFIER_VARIABLE, -1, -1, var.StartPos[0], var.StartPos[1], var.EndPos[0], var.EndPos[1])
|
||||
IdList.append(IdVar)
|
||||
else:
|
||||
DeclList = var.Declarator.split('=')
|
||||
|
@ -176,7 +176,7 @@ def GetIdentifierList():
|
|||
LSBPos = var.Declarator.find('[')
|
||||
var.Modifier += ' ' + Name[LSBPos:]
|
||||
Name = Name[0:LSBPos]
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', Name, (len(DeclList) > 1 and [DeclList[1]]or [''])[0], DataClass.MODEL_IDENTIFIER_VARIABLE, -1, -1, var.StartPos[0],var.StartPos[1],var.EndPos[0],var.EndPos[1])
|
||||
IdVar = DataClass.IdentifierClass(-1, var.Modifier, '', Name, (len(DeclList) > 1 and [DeclList[1]]or [''])[0], DataClass.MODEL_IDENTIFIER_VARIABLE, -1, -1, var.StartPos[0], var.StartPos[1], var.EndPos[0], var.EndPos[1])
|
||||
IdList.append(IdVar)
|
||||
|
||||
for enum in FileProfile.EnumerationDefinitionList:
|
||||
|
@ -184,7 +184,7 @@ def GetIdentifierList():
|
|||
RBPos = enum.Content.find('}')
|
||||
Name = enum.Content[4:LBPos].strip()
|
||||
Value = enum.Content[LBPos+1:RBPos]
|
||||
IdEnum = DataClass.IdentifierClass(-1, '', '', Name, Value, DataClass.MODEL_IDENTIFIER_ENUMERATE, -1, -1, enum.StartPos[0],enum.StartPos[1],enum.EndPos[0],enum.EndPos[1])
|
||||
IdEnum = DataClass.IdentifierClass(-1, '', '', Name, Value, DataClass.MODEL_IDENTIFIER_ENUMERATE, -1, -1, enum.StartPos[0], enum.StartPos[1], enum.EndPos[0], enum.EndPos[1])
|
||||
IdList.append(IdEnum)
|
||||
|
||||
for su in FileProfile.StructUnionDefinitionList:
|
||||
|
@ -201,7 +201,7 @@ def GetIdentifierList():
|
|||
else:
|
||||
Name = su.Content[SkipLen:LBPos].strip()
|
||||
Value = su.Content[LBPos+1:RBPos]
|
||||
IdPE = DataClass.IdentifierClass(-1, '', '', Name, Value, Type, -1, -1, su.StartPos[0],su.StartPos[1],su.EndPos[0],su.EndPos[1])
|
||||
IdPE = DataClass.IdentifierClass(-1, '', '', Name, Value, Type, -1, -1, su.StartPos[0], su.StartPos[1], su.EndPos[0], su.EndPos[1])
|
||||
IdList.append(IdPE)
|
||||
|
||||
TdFuncPointerPattern = GetTypedefFuncPointerPattern()
|
||||
|
@ -224,11 +224,11 @@ def GetIdentifierList():
|
|||
Name = TmpStr[0:RBPos]
|
||||
Value = 'FP' + TmpStr[RBPos + 1:]
|
||||
|
||||
IdTd = DataClass.IdentifierClass(-1, Modifier, '', Name, Value, DataClass.MODEL_IDENTIFIER_TYPEDEF, -1, -1, td.StartPos[0],td.StartPos[1],td.EndPos[0],td.EndPos[1])
|
||||
IdTd = DataClass.IdentifierClass(-1, Modifier, '', Name, Value, DataClass.MODEL_IDENTIFIER_TYPEDEF, -1, -1, td.StartPos[0], td.StartPos[1], td.EndPos[0], td.EndPos[1])
|
||||
IdList.append(IdTd)
|
||||
|
||||
for funcCall in FileProfile.FunctionCallingList:
|
||||
IdFC = DataClass.IdentifierClass(-1, '', '', funcCall.FuncName, funcCall.ParamList, DataClass.MODEL_IDENTIFIER_FUNCTION_CALLING, -1, -1, funcCall.StartPos[0],funcCall.StartPos[1],funcCall.EndPos[0],funcCall.EndPos[1])
|
||||
IdFC = DataClass.IdentifierClass(-1, '', '', funcCall.FuncName, funcCall.ParamList, DataClass.MODEL_IDENTIFIER_FUNCTION_CALLING, -1, -1, funcCall.StartPos[0], funcCall.StartPos[1], funcCall.EndPos[0], funcCall.EndPos[1])
|
||||
IdList.append(IdFC)
|
||||
return IdList
|
||||
|
||||
|
@ -330,7 +330,7 @@ def GetFunctionList():
|
|||
FuncDef.Modifier += ' ' + FuncNamePartList[Index]
|
||||
Index += 1
|
||||
|
||||
FuncObj = DataClass.FunctionClass(-1, FuncDef.Declarator, FuncDef.Modifier, FuncName.strip(), '', FuncDef.StartPos[0],FuncDef.StartPos[1],FuncDef.EndPos[0],FuncDef.EndPos[1], FuncDef.LeftBracePos[0], FuncDef.LeftBracePos[1], -1, ParamIdList, [])
|
||||
FuncObj = DataClass.FunctionClass(-1, FuncDef.Declarator, FuncDef.Modifier, FuncName.strip(), '', FuncDef.StartPos[0], FuncDef.StartPos[1], FuncDef.EndPos[0], FuncDef.EndPos[1], FuncDef.LeftBracePos[0], FuncDef.LeftBracePos[1], -1, ParamIdList, [])
|
||||
FuncObjList.append(FuncObj)
|
||||
|
||||
return FuncObjList
|
||||
|
|
|
@ -22,7 +22,7 @@ import FfsFileStatement
|
|||
from GenFdsGlobalVariable import GenFdsGlobalVariable
|
||||
from CommonDataClass.FdfClass import AprioriSectionClassObject
|
||||
from Common.StringUtils import *
|
||||
from Common.Misc import SaveFileOnChange,PathClass
|
||||
from Common.Misc import SaveFileOnChange, PathClass
|
||||
from Common import EdkLogger
|
||||
from Common.BuildToolError import *
|
||||
from Common.DataType import TAB_COMMON
|
||||
|
|
|
@ -207,7 +207,7 @@ class CapsulePayload(CapsuleData):
|
|||
#
|
||||
Guid = self.ImageTypeId.split('-')
|
||||
Buffer = pack('=ILHHBBBBBBBBBBBBIIQ',
|
||||
int(self.Version,16),
|
||||
int(self.Version, 16),
|
||||
int(Guid[0], 16),
|
||||
int(Guid[1], 16),
|
||||
int(Guid[2], 16),
|
||||
|
|
|
@ -133,7 +133,7 @@ class EfiSection (EfiSectionClassObject):
|
|||
elif FileList != []:
|
||||
for File in FileList:
|
||||
Index = Index + 1
|
||||
Num = '%s.%d' %(SecNum , Index)
|
||||
Num = '%s.%d' %(SecNum, Index)
|
||||
OutputFile = os.path.join(OutputPath, ModuleName + SUP_MODULE_SEC + Num + Ffs.SectionSuffix.get(SectionType))
|
||||
f = open(File, 'r')
|
||||
VerString = f.read()
|
||||
|
@ -192,7 +192,7 @@ class EfiSection (EfiSectionClassObject):
|
|||
elif FileList != []:
|
||||
for File in FileList:
|
||||
Index = Index + 1
|
||||
Num = '%s.%d' %(SecNum , Index)
|
||||
Num = '%s.%d' %(SecNum, Index)
|
||||
OutputFile = os.path.join(OutputPath, ModuleName + SUP_MODULE_SEC + Num + Ffs.SectionSuffix.get(SectionType))
|
||||
f = open(File, 'r')
|
||||
UiString = f.read()
|
||||
|
@ -237,7 +237,7 @@ class EfiSection (EfiSectionClassObject):
|
|||
for File in FileList:
|
||||
""" Copy Map file to FFS output path """
|
||||
Index = Index + 1
|
||||
Num = '%s.%d' %(SecNum , Index)
|
||||
Num = '%s.%d' %(SecNum, Index)
|
||||
OutputFile = os.path.join( OutputPath, ModuleName + SUP_MODULE_SEC + Num + Ffs.SectionSuffix.get(SectionType))
|
||||
File = GenFdsGlobalVariable.MacroExtend(File, Dict)
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ class FD(FDClassObject):
|
|||
# Call each region's AddToBuffer function
|
||||
#
|
||||
GenFdsGlobalVariable.VerboseLogger('Call each region\'s AddToBuffer function')
|
||||
RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict,Flag=Flag)
|
||||
RegionObj.AddToBuffer (FdBuffer, self.BaseAddress, self.BlockSizeList, self.ErasePolarity, GenFds.ImageBinDict, self.vtfRawDict, self.DefineVarDict, Flag=Flag)
|
||||
#
|
||||
# Write the buffer contents to Fd file
|
||||
#
|
||||
|
@ -163,7 +163,7 @@ class FD(FDClassObject):
|
|||
if len(RegionObj.RegionDataList) == 1:
|
||||
RegionData = RegionObj.RegionDataList[0]
|
||||
FvList.append(RegionData.upper())
|
||||
FvAddDict[RegionData.upper()] = (int(self.BaseAddress,16) + \
|
||||
FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
|
||||
RegionObj.Offset, RegionObj.Size)
|
||||
else:
|
||||
Offset = RegionObj.Offset
|
||||
|
@ -178,7 +178,7 @@ class FD(FDClassObject):
|
|||
Size = 0
|
||||
for blockStatement in FvObj.BlockSizeList:
|
||||
Size = Size + blockStatement[0] * blockStatement[1]
|
||||
FvAddDict[RegionData.upper()] = (int(self.BaseAddress,16) + \
|
||||
FvAddDict[RegionData.upper()] = (int(self.BaseAddress, 16) + \
|
||||
Offset, Size)
|
||||
Offset = Offset + Size
|
||||
#
|
||||
|
|
|
@ -1820,7 +1820,7 @@ class FdfParser:
|
|||
return long(
|
||||
ValueExpression(Expr,
|
||||
self.__CollectMacroPcd()
|
||||
)(True),0)
|
||||
)(True), 0)
|
||||
except Exception:
|
||||
self.SetFileBufferPos(StartPos)
|
||||
return None
|
||||
|
@ -2730,7 +2730,7 @@ class FdfParser:
|
|||
while True:
|
||||
AlignValue = None
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
#For FFS, Auto is default option same to ""
|
||||
|
@ -2789,7 +2789,7 @@ class FdfParser:
|
|||
FfsFileObj.CheckSum = True
|
||||
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
#For FFS, Auto is default option same to ""
|
||||
|
@ -2861,7 +2861,7 @@ class FdfParser:
|
|||
|
||||
AlignValue = None
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
AlignValue = self.__Token
|
||||
|
@ -3151,7 +3151,7 @@ class FdfParser:
|
|||
|
||||
AlignValue = None
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
AlignValue = self.__Token
|
||||
|
@ -3544,7 +3544,7 @@ class FdfParser:
|
|||
AfileName = self.__Token
|
||||
AfileBaseName = os.path.basename(AfileName)
|
||||
|
||||
if os.path.splitext(AfileBaseName)[1] not in [".bin",".BIN",".Bin",".dat",".DAT",".Dat",".data",".DATA",".Data"]:
|
||||
if os.path.splitext(AfileBaseName)[1] not in [".bin", ".BIN", ".Bin", ".dat", ".DAT", ".Dat", ".data", ".DATA", ".Data"]:
|
||||
raise Warning('invalid binary file type, should be one of "bin",BINARY_FILE_TYPE_BIN,"Bin","dat","DAT","Dat","data","DATA","Data"', \
|
||||
self.FileName, self.CurrentLineNumber)
|
||||
|
||||
|
@ -3741,7 +3741,7 @@ class FdfParser:
|
|||
|
||||
AlignValue = ""
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
#For FFS, Auto is default option same to ""
|
||||
|
@ -3791,7 +3791,7 @@ class FdfParser:
|
|||
|
||||
SectAlignment = ""
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
if self.__Token == 'Auto' and (not SectionName == BINARY_FILE_TYPE_PE32) and (not SectionName == BINARY_FILE_TYPE_TE):
|
||||
|
@ -3871,7 +3871,7 @@ class FdfParser:
|
|||
FvImageSectionObj.FvFileType = self.__Token
|
||||
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
FvImageSectionObj.Alignment = self.__Token
|
||||
|
@ -3939,7 +3939,7 @@ class FdfParser:
|
|||
EfiSectionObj.BuildNum = self.__Token
|
||||
|
||||
if self.__GetAlignment():
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K" ,"64K", "128K",
|
||||
if self.__Token not in ("Auto", "8", "16", "32", "64", "128", "512", "1K", "4K", "32K", "64K", "128K",
|
||||
"256K", "512K", "1M", "2M", "4M", "8M", "16M"):
|
||||
raise Warning("Incorrect alignment '%s'" % self.__Token, self.FileName, self.CurrentLineNumber)
|
||||
if self.__Token == 'Auto' and (not SectionName == BINARY_FILE_TYPE_PE32) and (not SectionName == BINARY_FILE_TYPE_TE):
|
||||
|
@ -4679,7 +4679,7 @@ class FdfParser:
|
|||
FvInFdList = self.__GetFvInFd(RefFdName)
|
||||
if FvInFdList != []:
|
||||
for FvNameInFd in FvInFdList:
|
||||
LogStr += "FD %s contains FV %s\n" % (RefFdName,FvNameInFd)
|
||||
LogStr += "FD %s contains FV %s\n" % (RefFdName, FvNameInFd)
|
||||
if FvNameInFd not in RefFvStack:
|
||||
RefFvStack.append(FvNameInFd)
|
||||
|
||||
|
@ -4735,7 +4735,7 @@ class FdfParser:
|
|||
CapInFdList = self.__GetCapInFd(RefFdName)
|
||||
if CapInFdList != []:
|
||||
for CapNameInFd in CapInFdList:
|
||||
LogStr += "FD %s contains Capsule %s\n" % (RefFdName,CapNameInFd)
|
||||
LogStr += "FD %s contains Capsule %s\n" % (RefFdName, CapNameInFd)
|
||||
if CapNameInFd not in RefCapStack:
|
||||
RefCapStack.append(CapNameInFd)
|
||||
|
||||
|
@ -4746,7 +4746,7 @@ class FdfParser:
|
|||
FvInFdList = self.__GetFvInFd(RefFdName)
|
||||
if FvInFdList != []:
|
||||
for FvNameInFd in FvInFdList:
|
||||
LogStr += "FD %s contains FV %s\n" % (RefFdName,FvNameInFd)
|
||||
LogStr += "FD %s contains FV %s\n" % (RefFdName, FvNameInFd)
|
||||
if FvNameInFd not in RefFvList:
|
||||
RefFvList.append(FvNameInFd)
|
||||
|
||||
|
|
|
@ -293,7 +293,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||
try:
|
||||
Pcd.InfDefaultValue = ValueExpressionEx(Pcd.InfDefaultValue, Pcd.DatumType, Platform._GuidDict)(True)
|
||||
except BadExpression:
|
||||
EdkLogger.error("GenFds", GENFDS_ERROR, 'PCD [%s.%s] Value "%s"' %(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DefaultValue),File=self.InfFileName)
|
||||
EdkLogger.error("GenFds", GENFDS_ERROR, 'PCD [%s.%s] Value "%s"' %(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DefaultValue), File=self.InfFileName)
|
||||
|
||||
# Check value, if value are equal, no need to patch
|
||||
if Pcd.DatumType == TAB_VOID:
|
||||
|
@ -446,7 +446,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||
|
||||
self.__InfParse__(Dict)
|
||||
Arch = self.GetCurrentArch()
|
||||
SrcFile = mws.join( GenFdsGlobalVariable.WorkSpaceDir , self.InfFileName);
|
||||
SrcFile = mws.join( GenFdsGlobalVariable.WorkSpaceDir, self.InfFileName);
|
||||
DestFile = os.path.join( self.OutputPath, self.ModuleGuid + '.ffs')
|
||||
|
||||
SrcFileDir = "."
|
||||
|
@ -694,13 +694,13 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||
Arch = self.CurrentArch
|
||||
|
||||
OutputPath = os.path.join(GenFdsGlobalVariable.OutputDirDict[Arch],
|
||||
Arch ,
|
||||
Arch,
|
||||
ModulePath,
|
||||
FileName,
|
||||
'OUTPUT'
|
||||
)
|
||||
DebugPath = os.path.join(GenFdsGlobalVariable.OutputDirDict[Arch],
|
||||
Arch ,
|
||||
Arch,
|
||||
ModulePath,
|
||||
FileName,
|
||||
'DEBUG'
|
||||
|
@ -962,9 +962,9 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||
Sect.FvParentAddr = FvParentAddr
|
||||
|
||||
if Rule.KeyStringList != []:
|
||||
SectList, Align = Sect.GenSection(self.OutputPath , self.ModuleGuid, SecIndex, Rule.KeyStringList, self, IsMakefile = IsMakefile)
|
||||
SectList, Align = Sect.GenSection(self.OutputPath, self.ModuleGuid, SecIndex, Rule.KeyStringList, self, IsMakefile = IsMakefile)
|
||||
else :
|
||||
SectList, Align = Sect.GenSection(self.OutputPath , self.ModuleGuid, SecIndex, self.KeyStringList, self, IsMakefile = IsMakefile)
|
||||
SectList, Align = Sect.GenSection(self.OutputPath, self.ModuleGuid, SecIndex, self.KeyStringList, self, IsMakefile = IsMakefile)
|
||||
|
||||
if not HasGeneratedFlag:
|
||||
UniVfrOffsetFileSection = ""
|
||||
|
@ -1121,7 +1121,7 @@ class FfsInfStatement(FfsInfStatementClassObject):
|
|||
try :
|
||||
SaveFileOnChange(UniVfrOffsetFileName, fStringIO.getvalue())
|
||||
except:
|
||||
EdkLogger.error("GenFds", FILE_WRITE_FAILURE, "Write data to file %s failed, please check whether the file been locked or using by other applications." %UniVfrOffsetFileName,None)
|
||||
EdkLogger.error("GenFds", FILE_WRITE_FAILURE, "Write data to file %s failed, please check whether the file been locked or using by other applications." %UniVfrOffsetFileName, None)
|
||||
|
||||
fStringIO.close ()
|
||||
|
||||
|
|
|
@ -379,8 +379,8 @@ class FV (FvClassObject):
|
|||
# check if the file path exists or not
|
||||
if not os.path.isfile(FileFullPath):
|
||||
GenFdsGlobalVariable.ErrorLogger("Error opening FV Extension Header Entry file %s." % (self.FvExtEntryData[Index]))
|
||||
FvExtFile = open (FileFullPath,'rb')
|
||||
FvExtFile.seek(0,2)
|
||||
FvExtFile = open (FileFullPath, 'rb')
|
||||
FvExtFile.seek(0, 2)
|
||||
Size = FvExtFile.tell()
|
||||
if Size >= 0x10000:
|
||||
GenFdsGlobalVariable.ErrorLogger("The size of FV Extension Header Entry file %s exceeds 0x10000." % (self.FvExtEntryData[Index]))
|
||||
|
|
|
@ -65,7 +65,7 @@ class FvImageSection(FvImageSectionClassObject):
|
|||
for FvFileName in FileList:
|
||||
FvAlignmentValue = 0
|
||||
if os.path.isfile(FvFileName):
|
||||
FvFileObj = open (FvFileName,'rb')
|
||||
FvFileObj = open (FvFileName, 'rb')
|
||||
FvFileObj.seek(0)
|
||||
# PI FvHeader is 0x48 byte
|
||||
FvHeaderBuffer = FvFileObj.read(0x48)
|
||||
|
@ -113,7 +113,7 @@ class FvImageSection(FvImageSectionClassObject):
|
|||
if self.FvFileName is not None:
|
||||
FvFileName = GenFdsGlobalVariable.ReplaceWorkspaceMacro(self.FvFileName)
|
||||
if os.path.isfile(FvFileName):
|
||||
FvFileObj = open (FvFileName,'rb')
|
||||
FvFileObj = open (FvFileName, 'rb')
|
||||
FvFileObj.seek(0)
|
||||
# PI FvHeader is 0x48 byte
|
||||
FvHeaderBuffer = FvFileObj.read(0x48)
|
||||
|
|
|
@ -341,7 +341,7 @@ class GenFdsGlobalVariable:
|
|||
for Arch in ArchList:
|
||||
GenFdsGlobalVariable.OutputDirDict[Arch] = os.path.normpath(
|
||||
os.path.join(GlobalData.gWorkspace,
|
||||
WorkSpace.Db.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch,GlobalData.gGlobalDefines['TARGET'],
|
||||
WorkSpace.Db.BuildObject[GenFdsGlobalVariable.ActivePlatform, Arch, GlobalData.gGlobalDefines['TARGET'],
|
||||
GlobalData.gGlobalDefines['TOOLCHAIN']].OutputDirectory,
|
||||
GlobalData.gGlobalDefines['TARGET'] +'_' + GlobalData.gGlobalDefines['TOOLCHAIN']))
|
||||
GenFdsGlobalVariable.OutputDirFromDscDict[Arch] = os.path.normpath(
|
||||
|
@ -547,7 +547,7 @@ class GenFdsGlobalVariable:
|
|||
|
||||
GenFdsGlobalVariable.DebugLogger(EdkLogger.DEBUG_5, "%s needs update because of newer %s" % (Output, Input))
|
||||
if MakefilePath:
|
||||
if (tuple(Cmd),tuple(GenFdsGlobalVariable.SecCmdList),tuple(GenFdsGlobalVariable.CopyList)) not in GenFdsGlobalVariable.FfsCmdDict:
|
||||
if (tuple(Cmd), tuple(GenFdsGlobalVariable.SecCmdList), tuple(GenFdsGlobalVariable.CopyList)) not in GenFdsGlobalVariable.FfsCmdDict:
|
||||
GenFdsGlobalVariable.FfsCmdDict[tuple(Cmd), tuple(GenFdsGlobalVariable.SecCmdList), tuple(GenFdsGlobalVariable.CopyList)] = MakefilePath
|
||||
GenFdsGlobalVariable.SecCmdList = []
|
||||
GenFdsGlobalVariable.CopyList = []
|
||||
|
|
|
@ -110,7 +110,7 @@ def _parseForGCC(lines, efifilepath):
|
|||
PcdName = m.groups(0)[0]
|
||||
m = pcdPatternGcc.match(lines[index + 1].strip())
|
||||
if m is not None:
|
||||
bpcds.append((PcdName, int(m.groups(0)[0], 16) , int(sections[-1][1], 16), sections[-1][0]))
|
||||
bpcds.append((PcdName, int(m.groups(0)[0], 16), int(sections[-1][1], 16), sections[-1][0]))
|
||||
|
||||
# get section information from efi file
|
||||
efisecs = PeImageClass(efifilepath).SectionHeaderList
|
||||
|
|
|
@ -88,7 +88,7 @@ if __name__ == '__main__':
|
|||
parser.add_argument("--signature-size", dest='SignatureSizeStr', type=str, help="specify the signature size for decode process.")
|
||||
parser.add_argument("-v", "--verbose", dest='Verbose', action="store_true", help="increase output messages")
|
||||
parser.add_argument("-q", "--quiet", dest='Quiet', action="store_true", help="reduce output messages")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0,10), default=0, help="set debug level")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0, 10), default=0, help="set debug level")
|
||||
parser.add_argument(metavar="input_file", dest='InputFile', type=argparse.FileType('rb'), help="specify the input filename")
|
||||
|
||||
#
|
||||
|
|
|
@ -51,7 +51,7 @@ if __name__ == '__main__':
|
|||
parser.add_argument("--public-key-hash-c", dest='PublicKeyHashCFile', type=argparse.FileType('wb'), help="specify the public key hash filename that is SHA 256 hash of 2048 bit RSA public key in C structure format")
|
||||
parser.add_argument("-v", "--verbose", dest='Verbose', action="store_true", help="increase output messages")
|
||||
parser.add_argument("-q", "--quiet", dest='Quiet', action="store_true", help="reduce output messages")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0,10), default=0, help="set debug level")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0, 10), default=0, help="set debug level")
|
||||
|
||||
#
|
||||
# Parse command line arguments
|
||||
|
|
|
@ -50,7 +50,7 @@ EFI_HASH_ALGORITHM_SHA256_GUID = uuid.UUID('{51aa59de-fdf2-4ea3-bc63-875fb7842ee
|
|||
# UINT8 Signature[256];
|
||||
# } EFI_CERT_BLOCK_RSA_2048_SHA256;
|
||||
#
|
||||
EFI_CERT_BLOCK_RSA_2048_SHA256 = collections.namedtuple('EFI_CERT_BLOCK_RSA_2048_SHA256', ['HashType','PublicKey','Signature'])
|
||||
EFI_CERT_BLOCK_RSA_2048_SHA256 = collections.namedtuple('EFI_CERT_BLOCK_RSA_2048_SHA256', ['HashType', 'PublicKey', 'Signature'])
|
||||
EFI_CERT_BLOCK_RSA_2048_SHA256_STRUCT = struct.Struct('16s256s256s')
|
||||
|
||||
#
|
||||
|
@ -71,7 +71,7 @@ if __name__ == '__main__':
|
|||
parser.add_argument("--private-key", dest='PrivateKeyFile', type=argparse.FileType('rb'), help="specify the private key filename. If not specified, a test signing key is used.")
|
||||
parser.add_argument("-v", "--verbose", dest='Verbose', action="store_true", help="increase output messages")
|
||||
parser.add_argument("-q", "--quiet", dest='Quiet', action="store_true", help="reduce output messages")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0,10), default=0, help="set debug level")
|
||||
parser.add_argument("--debug", dest='Debug', type=int, metavar='[0-9]', choices=range(0, 10), default=0, help="set debug level")
|
||||
parser.add_argument(metavar="input_file", dest='InputFile', type=argparse.FileType('rb'), help="specify the input filename")
|
||||
|
||||
#
|
||||
|
@ -155,7 +155,7 @@ if __name__ == '__main__':
|
|||
PublicKeyHexString = Process.communicate()[0].split('=')[1].strip()
|
||||
PublicKey = ''
|
||||
while len(PublicKeyHexString) > 0:
|
||||
PublicKey = PublicKey + chr(int(PublicKeyHexString[0:2],16))
|
||||
PublicKey = PublicKey + chr(int(PublicKeyHexString[0:2], 16))
|
||||
PublicKeyHexString=PublicKeyHexString[2:]
|
||||
if Process.returncode != 0:
|
||||
sys.exit(Process.returncode)
|
||||
|
|
|
@ -59,11 +59,11 @@ class TargetTool():
|
|||
def ConvertTextFileToDict(self, FileName, CommentCharacter, KeySplitCharacter):
|
||||
"""Convert a text file to a dictionary of (name:value) pairs."""
|
||||
try:
|
||||
f = open(FileName,'r')
|
||||
f = open(FileName, 'r')
|
||||
for Line in f:
|
||||
if Line.startswith(CommentCharacter) or Line.strip() == '':
|
||||
continue
|
||||
LineList = Line.split(KeySplitCharacter,1)
|
||||
LineList = Line.split(KeySplitCharacter, 1)
|
||||
if len(LineList) >= 2:
|
||||
Key = LineList[0].strip()
|
||||
if Key.startswith(CommentCharacter) == False and Key in self.TargetTxtDictionary:
|
||||
|
@ -103,7 +103,7 @@ class TargetTool():
|
|||
if Line.startswith(CommentCharacter) or Line.strip() == '':
|
||||
fw.write(Line)
|
||||
else:
|
||||
LineList = Line.split(KeySplitCharacter,1)
|
||||
LineList = Line.split(KeySplitCharacter, 1)
|
||||
if len(LineList) >= 2:
|
||||
Key = LineList[0].strip()
|
||||
if Key.startswith(CommentCharacter) == False and Key in self.TargetTxtDictionary:
|
||||
|
@ -202,14 +202,14 @@ def RangeCheckCallback(option, opt_str, value, parser):
|
|||
parser.error("Option %s only allows one instance in command line!" % option)
|
||||
|
||||
def MyOptionParser():
|
||||
parser = OptionParser(version=__version__,prog="TargetTool.exe",usage=__usage__,description=__copyright__)
|
||||
parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32','X64','IPF','EBC', 'ARM', 'AARCH64','0'], dest="TARGET_ARCH",
|
||||
parser = OptionParser(version=__version__, prog="TargetTool.exe", usage=__usage__, description=__copyright__)
|
||||
parser.add_option("-a", "--arch", action="append", type="choice", choices=['IA32', 'X64', 'IPF', 'EBC', 'ARM', 'AARCH64', '0'], dest="TARGET_ARCH",
|
||||
help="ARCHS is one of list: IA32, X64, IPF, ARM, AARCH64 or EBC, which replaces target.txt's TARGET_ARCH definition. To specify more archs, please repeat this option. 0 will clear this setting in target.txt and can't combine with other value.")
|
||||
parser.add_option("-p", "--platform", action="callback", type="string", dest="DSCFILE", callback=SingleCheckCallback,
|
||||
help="Specify a DSC file, which replace target.txt's ACTIVE_PLATFORM definition. 0 will clear this setting in target.txt and can't combine with other value.")
|
||||
parser.add_option("-c", "--tooldef", action="callback", type="string", dest="TOOL_DEFINITION_FILE", callback=SingleCheckCallback,
|
||||
help="Specify the WORKSPACE relative path of tool_def.txt file, which replace target.txt's TOOL_CHAIN_CONF definition. 0 will clear this setting in target.txt and can't combine with other value.")
|
||||
parser.add_option("-t", "--target", action="append", type="choice", choices=['DEBUG','RELEASE','0'], dest="TARGET",
|
||||
parser.add_option("-t", "--target", action="append", type="choice", choices=['DEBUG', 'RELEASE', '0'], dest="TARGET",
|
||||
help="TARGET is one of list: DEBUG, RELEASE, which replaces target.txt's TARGET definition. To specify more TARGET, please repeat this option. 0 will clear this setting in target.txt and can't combine with other value.")
|
||||
parser.add_option("-n", "--tagname", action="callback", type="string", dest="TOOL_CHAIN_TAG", callback=SingleCheckCallback,
|
||||
help="Specify the Tool Chain Tagname, which replaces target.txt's TOOL_CHAIN_TAG definition. 0 will clear this setting in target.txt and can't combine with other value.")
|
||||
|
|
|
@ -261,7 +261,7 @@ def TrimPreprocessedVfr(Source, Target):
|
|||
CreateDirectory(os.path.dirname(Target))
|
||||
|
||||
try:
|
||||
f = open (Source,'r')
|
||||
f = open (Source, 'r')
|
||||
except:
|
||||
EdkLogger.error("Trim", FILE_OPEN_FAILURE, ExtraData=Source)
|
||||
# read whole file
|
||||
|
@ -310,7 +310,7 @@ def TrimPreprocessedVfr(Source, Target):
|
|||
|
||||
# save all lines trimmed
|
||||
try:
|
||||
f = open (Target,'w')
|
||||
f = open (Target, 'w')
|
||||
except:
|
||||
EdkLogger.error("Trim", FILE_OPEN_FAILURE, ExtraData=Target)
|
||||
f.writelines(Lines)
|
||||
|
@ -407,7 +407,7 @@ def TrimAslFile(Source, Target, IncludePathFile):
|
|||
if IncludePathFile:
|
||||
try:
|
||||
LineNum = 0
|
||||
for Line in open(IncludePathFile,'r'):
|
||||
for Line in open(IncludePathFile, 'r'):
|
||||
LineNum += 1
|
||||
if Line.startswith("/I") or Line.startswith ("-I"):
|
||||
IncludePathList.append(Line[2:].strip())
|
||||
|
@ -425,7 +425,7 @@ def TrimAslFile(Source, Target, IncludePathFile):
|
|||
|
||||
# save all lines trimmed
|
||||
try:
|
||||
f = open (Target,'w')
|
||||
f = open (Target, 'w')
|
||||
except:
|
||||
EdkLogger.error("Trim", FILE_OPEN_FAILURE, ExtraData=Target)
|
||||
|
||||
|
@ -560,7 +560,7 @@ def TrimEdkSourceCode(Source, Target):
|
|||
CreateDirectory(os.path.dirname(Target))
|
||||
|
||||
try:
|
||||
f = open (Source,'rb')
|
||||
f = open (Source, 'rb')
|
||||
except:
|
||||
EdkLogger.error("Trim", FILE_OPEN_FAILURE, ExtraData=Source)
|
||||
# read whole file
|
||||
|
@ -568,7 +568,7 @@ def TrimEdkSourceCode(Source, Target):
|
|||
f.close()
|
||||
|
||||
NewLines = None
|
||||
for Re,Repl in gImportCodePatterns:
|
||||
for Re, Repl in gImportCodePatterns:
|
||||
if NewLines is None:
|
||||
NewLines = Re.sub(Repl, Lines)
|
||||
else:
|
||||
|
@ -579,7 +579,7 @@ def TrimEdkSourceCode(Source, Target):
|
|||
return
|
||||
|
||||
try:
|
||||
f = open (Target,'wb')
|
||||
f = open (Target, 'wb')
|
||||
except:
|
||||
EdkLogger.error("Trim", FILE_OPEN_FAILURE, ExtraData=Target)
|
||||
f.write(NewLines)
|
||||
|
|
|
@ -285,8 +285,8 @@ class DependencyRules(object):
|
|||
pass
|
||||
DecPath = dirname(DecFile)
|
||||
if DecPath.find(WorkSP) > -1:
|
||||
InstallPath = GetRelativePath(DecPath,WorkSP)
|
||||
DecFileRelaPath = GetRelativePath(DecFile,WorkSP)
|
||||
InstallPath = GetRelativePath(DecPath, WorkSP)
|
||||
DecFileRelaPath = GetRelativePath(DecFile, WorkSP)
|
||||
else:
|
||||
InstallPath = DecPath
|
||||
DecFileRelaPath = DecFile
|
||||
|
@ -348,8 +348,8 @@ class DependencyRules(object):
|
|||
pass
|
||||
DecPath = dirname(DecFile)
|
||||
if DecPath.find(WorkSP) > -1:
|
||||
InstallPath = GetRelativePath(DecPath,WorkSP)
|
||||
DecFileRelaPath = GetRelativePath(DecFile,WorkSP)
|
||||
InstallPath = GetRelativePath(DecPath, WorkSP)
|
||||
DecFileRelaPath = GetRelativePath(DecFile, WorkSP)
|
||||
else:
|
||||
InstallPath = DecPath
|
||||
DecFileRelaPath = DecFile
|
||||
|
|
|
@ -459,7 +459,7 @@ class IpiDatabase(object):
|
|||
(select InstallPath from ModInPkgInfo where
|
||||
ModInPkgInfo.PackageGuid ='%s'
|
||||
and ModInPkgInfo.PackageVersion = '%s')""" \
|
||||
% (Pkg[0], Pkg[1], Pkg[0], Pkg[1], Pkg[0], Pkg[1],Pkg[0], Pkg[1])
|
||||
% (Pkg[0], Pkg[1], Pkg[0], Pkg[1], Pkg[0], Pkg[1], Pkg[0], Pkg[1])
|
||||
|
||||
self.Cur.execute(SqlCommand)
|
||||
#
|
||||
|
@ -921,7 +921,7 @@ class IpiDatabase(object):
|
|||
def __ConvertToSqlString(self, StringList):
|
||||
if self.DpTable:
|
||||
pass
|
||||
return map(lambda s: s.replace("'", "''") , StringList)
|
||||
return map(lambda s: s.replace("'", "''"), StringList)
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -632,7 +632,7 @@ def SplitString(String):
|
|||
# @param StringList: A list for strings to be converted
|
||||
#
|
||||
def ConvertToSqlString(StringList):
|
||||
return map(lambda s: s.replace("'", "''") , StringList)
|
||||
return map(lambda s: s.replace("'", "''"), StringList)
|
||||
|
||||
## Convert To Sql String
|
||||
#
|
||||
|
|
|
@ -648,7 +648,7 @@ class DecPomAlignment(PackageObject):
|
|||
ContainerFile,
|
||||
(Item.TokenSpaceGuidCName, Item.TokenCName,
|
||||
Item.DefaultValue, Item.DatumType, Item.TokenValue,
|
||||
Type, Item.GetHeadComment(), Item.GetTailComment(),''),
|
||||
Type, Item.GetHeadComment(), Item.GetTailComment(), ''),
|
||||
Language,
|
||||
self.DecParser.GetDefineSectionMacro()
|
||||
)
|
||||
|
|
|
@ -314,7 +314,7 @@ def Main():
|
|||
GlobalData.gDB.CloseDb()
|
||||
|
||||
if pf.system() == 'Windows':
|
||||
os.system('subst %s /D' % GlobalData.gWORKSPACE.replace('\\',''))
|
||||
os.system('subst %s /D' % GlobalData.gWORKSPACE.replace('\\', ''))
|
||||
|
||||
return ReturnCode
|
||||
|
||||
|
|
|
@ -355,7 +355,7 @@ class PackageHeaderXml(object):
|
|||
def FromXml(self, Item, Key, PackageObject2):
|
||||
if not Item:
|
||||
XmlTreeLevel = ['DistributionPackage', 'PackageSurfaceArea']
|
||||
CheckDict = {'PackageHeader':None, }
|
||||
CheckDict = {'PackageHeader': None, }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
self.PackagePath = XmlElement(Item, '%s/PackagePath' % Key)
|
||||
self.Header.FromXml(Item, Key)
|
||||
|
|
|
@ -103,7 +103,7 @@ class DistributionPackageXml(object):
|
|||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
else:
|
||||
XmlTreeLevel = ['DistributionPackage', 'DistributionHeader']
|
||||
CheckDict = CheckDict = {'DistributionHeader':'', }
|
||||
CheckDict = CheckDict = {'DistributionHeader': '', }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
#
|
||||
|
@ -123,16 +123,16 @@ class DistributionPackageXml(object):
|
|||
#
|
||||
if self.DistP.Tools:
|
||||
XmlTreeLevel = ['DistributionPackage', 'Tools', 'Header']
|
||||
CheckDict = {'Name':self.DistP.Tools.GetName(), }
|
||||
CheckDict = {'Name': self.DistP.Tools.GetName(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
if not self.DistP.Tools.GetFileList():
|
||||
XmlTreeLevel = ['DistributionPackage', 'Tools']
|
||||
CheckDict = {'FileName':None, }
|
||||
CheckDict = {'FileName': None, }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
for Item in self.DistP.Tools.GetFileList():
|
||||
XmlTreeLevel = ['DistributionPackage', 'Tools']
|
||||
CheckDict = {'FileName':Item.GetURI(), }
|
||||
CheckDict = {'FileName': Item.GetURI(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
#
|
||||
|
@ -140,16 +140,16 @@ class DistributionPackageXml(object):
|
|||
#
|
||||
if self.DistP.MiscellaneousFiles:
|
||||
XmlTreeLevel = ['DistributionPackage', 'MiscellaneousFiles', 'Header']
|
||||
CheckDict = {'Name':self.DistP.MiscellaneousFiles.GetName(), }
|
||||
CheckDict = {'Name': self.DistP.MiscellaneousFiles.GetName(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
if not self.DistP.MiscellaneousFiles.GetFileList():
|
||||
XmlTreeLevel = ['DistributionPackage', 'MiscellaneousFiles']
|
||||
CheckDict = {'FileName':None, }
|
||||
CheckDict = {'FileName': None, }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
for Item in self.DistP.MiscellaneousFiles.GetFileList():
|
||||
XmlTreeLevel = ['DistributionPackage', 'MiscellaneousFiles']
|
||||
CheckDict = {'FileName':Item.GetURI(), }
|
||||
CheckDict = {'FileName': Item.GetURI(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
#
|
||||
|
@ -157,7 +157,7 @@ class DistributionPackageXml(object):
|
|||
#
|
||||
for Item in self.DistP.UserExtensions:
|
||||
XmlTreeLevel = ['DistributionPackage', 'UserExtensions']
|
||||
CheckDict = {'UserId':Item.GetUserID(), }
|
||||
CheckDict = {'UserId': Item.GetUserID(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
|
||||
|
@ -449,10 +449,10 @@ def ValidateMS1(Module, TopXmlTreeLevel):
|
|||
XmlTreeLevel = TopXmlTreeLevel + ['MiscellaneousFiles']
|
||||
for Item in Module.GetMiscFileList():
|
||||
if not Item.GetFileList():
|
||||
CheckDict = {'Filename':'', }
|
||||
CheckDict = {'Filename': '', }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
for File in Item.GetFileList():
|
||||
CheckDict = {'Filename':File.GetURI(), }
|
||||
CheckDict = {'Filename': File.GetURI(), }
|
||||
|
||||
## ValidateMS2
|
||||
#
|
||||
|
@ -915,10 +915,10 @@ def ValidatePS2(Package):
|
|||
XmlTreeLevel = ['DistributionPackage', 'PackageSurfaceArea', 'MiscellaneousFiles']
|
||||
for Item in Package.GetMiscFileList():
|
||||
if not Item.GetFileList():
|
||||
CheckDict = {'Filename':'', }
|
||||
CheckDict = {'Filename': '', }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
for File in Item.GetFileList():
|
||||
CheckDict = {'Filename':File.GetURI(), }
|
||||
CheckDict = {'Filename': File.GetURI(), }
|
||||
IsRequiredItemListNull(CheckDict, XmlTreeLevel)
|
||||
|
||||
## ValidatePackageSurfaceArea
|
||||
|
|
|
@ -70,23 +70,23 @@ class PcdClassObject(object):
|
|||
if IsDsc:
|
||||
self.DscDefaultValue = Value
|
||||
self.PcdValueFromComm = ""
|
||||
self.DefinitionPosition = ("","")
|
||||
self.DefinitionPosition = ("", "")
|
||||
|
||||
## Get the maximum number of bytes
|
||||
def GetPcdMaxSize(self):
|
||||
if self.DatumType in TAB_PCD_NUMERIC_TYPES:
|
||||
return MAX_SIZE_TYPE[self.DatumType]
|
||||
|
||||
MaxSize = int(self.MaxDatumSize,10) if self.MaxDatumSize else 0
|
||||
MaxSize = int(self.MaxDatumSize, 10) if self.MaxDatumSize else 0
|
||||
if self.PcdValueFromComm:
|
||||
if self.PcdValueFromComm.startswith("{") and self.PcdValueFromComm.endswith("}"):
|
||||
return max([len(self.PcdValueFromComm.split(",")),MaxSize])
|
||||
return max([len(self.PcdValueFromComm.split(",")), MaxSize])
|
||||
elif self.PcdValueFromComm.startswith("\"") or self.PcdValueFromComm.startswith("\'"):
|
||||
return max([len(self.PcdValueFromComm)-2+1,MaxSize])
|
||||
return max([len(self.PcdValueFromComm)-2+1, MaxSize])
|
||||
elif self.PcdValueFromComm.startswith("L\""):
|
||||
return max([2*(len(self.PcdValueFromComm)-3+1),MaxSize])
|
||||
return max([2*(len(self.PcdValueFromComm)-3+1), MaxSize])
|
||||
else:
|
||||
return max([len(self.PcdValueFromComm),MaxSize])
|
||||
return max([len(self.PcdValueFromComm), MaxSize])
|
||||
return MaxSize
|
||||
|
||||
## Get the number of bytes
|
||||
|
@ -178,7 +178,7 @@ class StructurePcd(PcdClassObject):
|
|||
self.DefaultValues[FieldName] = [Value.strip(), FileName, LineNo]
|
||||
return self.DefaultValues[FieldName]
|
||||
|
||||
def SetDecDefaultValue(self,DefaultValue):
|
||||
def SetDecDefaultValue(self, DefaultValue):
|
||||
self.DefaultValueFromDec = DefaultValue
|
||||
def AddOverrideValue (self, FieldName, Value, SkuName, DefaultStoreName, FileName="", LineNo=0):
|
||||
if SkuName not in self.SkuOverrideValues:
|
||||
|
|
|
@ -369,16 +369,16 @@ class DecBuildData(PackageBuildClassObject):
|
|||
|
||||
def ProcessStructurePcd(self, StructurePcdRawDataSet):
|
||||
s_pcd_set = OrderedDict()
|
||||
for s_pcd,LineNo in StructurePcdRawDataSet:
|
||||
for s_pcd, LineNo in StructurePcdRawDataSet:
|
||||
if s_pcd.TokenSpaceGuidCName not in s_pcd_set:
|
||||
s_pcd_set[s_pcd.TokenSpaceGuidCName] = []
|
||||
s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd,LineNo))
|
||||
s_pcd_set[s_pcd.TokenSpaceGuidCName].append((s_pcd, LineNo))
|
||||
|
||||
str_pcd_set = []
|
||||
for pcdname in s_pcd_set:
|
||||
dep_pkgs = []
|
||||
struct_pcd = StructurePcd()
|
||||
for item,LineNo in s_pcd_set[pcdname]:
|
||||
for item, LineNo in s_pcd_set[pcdname]:
|
||||
if "<HeaderFiles>" in item.TokenCName:
|
||||
struct_pcd.StructuredPcdIncludeFile.append(item.DefaultValue)
|
||||
elif "<Packages>" in item.TokenCName:
|
||||
|
@ -391,7 +391,7 @@ class DecBuildData(PackageBuildClassObject):
|
|||
struct_pcd.PkgPath = self.MetaFile.File
|
||||
struct_pcd.SetDecDefaultValue(item.DefaultValue)
|
||||
else:
|
||||
struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue,self.MetaFile.File,LineNo)
|
||||
struct_pcd.AddDefaultValue(item.TokenCName, item.DefaultValue, self.MetaFile.File, LineNo)
|
||||
|
||||
struct_pcd.PackageDecs = dep_pkgs
|
||||
str_pcd_set.append(struct_pcd)
|
||||
|
@ -412,7 +412,7 @@ class DecBuildData(PackageBuildClassObject):
|
|||
StrPcdSet = []
|
||||
RecordList = self._RawData[Type, self._Arch]
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, PrivateFlag, Dummy1, Dummy2 in RecordList:
|
||||
PcdDict[Arch, PcdCName, TokenSpaceGuid] = (Setting,Dummy2)
|
||||
PcdDict[Arch, PcdCName, TokenSpaceGuid] = (Setting, Dummy2)
|
||||
if not (PcdCName, TokenSpaceGuid) in PcdSet:
|
||||
PcdSet.append((PcdCName, TokenSpaceGuid))
|
||||
|
||||
|
@ -421,7 +421,7 @@ class DecBuildData(PackageBuildClassObject):
|
|||
# limit the ARCH to self._Arch, if no self._Arch found, tdict
|
||||
# will automatically turn to 'common' ARCH and try again
|
||||
#
|
||||
Setting,LineNo = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]
|
||||
Setting, LineNo = PcdDict[self._Arch, PcdCName, TokenSpaceGuid]
|
||||
if Setting is None:
|
||||
continue
|
||||
|
||||
|
@ -442,9 +442,9 @@ class DecBuildData(PackageBuildClassObject):
|
|||
list(validlists),
|
||||
list(expressions)
|
||||
)
|
||||
PcdObj.DefinitionPosition = (self.MetaFile.File,LineNo)
|
||||
PcdObj.DefinitionPosition = (self.MetaFile.File, LineNo)
|
||||
if "." in TokenSpaceGuid:
|
||||
StrPcdSet.append((PcdObj,LineNo))
|
||||
StrPcdSet.append((PcdObj, LineNo))
|
||||
else:
|
||||
Pcds[PcdCName, TokenSpaceGuid, self._PCD_TYPE_STRING_[Type]] = PcdObj
|
||||
|
||||
|
@ -455,10 +455,10 @@ class DecBuildData(PackageBuildClassObject):
|
|||
for pcd in Pcds.values():
|
||||
if pcd.DatumType not in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64, TAB_VOID, "BOOLEAN"]:
|
||||
if StructPattern.match(pcd.DatumType) is None:
|
||||
EdkLogger.error('build', FORMAT_INVALID, "DatumType only support BOOLEAN, UINT8, UINT16, UINT32, UINT64, VOID* or a valid struct name.", pcd.DefinitionPosition[0],pcd.DefinitionPosition[1])
|
||||
EdkLogger.error('build', FORMAT_INVALID, "DatumType only support BOOLEAN, UINT8, UINT16, UINT32, UINT64, VOID* or a valid struct name.", pcd.DefinitionPosition[0], pcd.DefinitionPosition[1])
|
||||
for struct_pcd in Pcds.values():
|
||||
if isinstance(struct_pcd,StructurePcd) and not struct_pcd.StructuredPcdIncludeFile:
|
||||
EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName,struct_pcd.DefinitionPosition[0],struct_pcd.DefinitionPosition[1] ))
|
||||
if isinstance(struct_pcd, StructurePcd) and not struct_pcd.StructuredPcdIncludeFile:
|
||||
EdkLogger.error("build", PCD_STRUCTURE_PCD_ERROR, "The structure Pcd %s.%s header file is not found in %s line %s \n" % (struct_pcd.TokenSpaceGuidCName, struct_pcd.TokenCName, struct_pcd.DefinitionPosition[0], struct_pcd.DefinitionPosition[1] ))
|
||||
|
||||
return Pcds
|
||||
@property
|
||||
|
|
|
@ -40,7 +40,7 @@ import Common.GlobalData as GlobalData
|
|||
import subprocess
|
||||
from Common.Misc import SaveFileOnChange
|
||||
from Workspace.BuildClassObject import PlatformBuildClassObject, StructurePcd, PcdClassObject, ModuleBuildClassObject
|
||||
from collections import OrderedDict,defaultdict
|
||||
from collections import OrderedDict, defaultdict
|
||||
|
||||
PcdValueInitName = 'PcdValueInit'
|
||||
|
||||
|
@ -108,7 +108,7 @@ from AutoGen.GenMake import gIncludePattern
|
|||
#
|
||||
# @retval list The list of files the given source file depends on
|
||||
#
|
||||
def GetDependencyList(FileStack,SearchPathList):
|
||||
def GetDependencyList(FileStack, SearchPathList):
|
||||
DepDb = dict()
|
||||
DependencySet = set(FileStack)
|
||||
while len(FileStack) > 0:
|
||||
|
@ -224,7 +224,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
@property
|
||||
def OutputPath(self):
|
||||
if os.getenv("WORKSPACE"):
|
||||
return os.path.join(os.getenv("WORKSPACE"), self.OutputDirectory, self._Target + "_" + self._Toolchain,PcdValueInitName)
|
||||
return os.path.join(os.getenv("WORKSPACE"), self.OutputDirectory, self._Target + "_" + self._Toolchain, PcdValueInitName)
|
||||
else:
|
||||
return os.path.dirname(self.DscFile)
|
||||
|
||||
|
@ -657,7 +657,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
|
||||
@staticmethod
|
||||
def ToInt(intstr):
|
||||
return int(intstr,16) if intstr.upper().startswith("0X") else int(intstr)
|
||||
return int(intstr, 16) if intstr.upper().startswith("0X") else int(intstr)
|
||||
|
||||
def _GetDefaultStores(self):
|
||||
if self.DefaultStores is None:
|
||||
|
@ -676,9 +676,9 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if not IsValidWord(Record[1]):
|
||||
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_-.)*'",
|
||||
File=self.MetaFile, Line=Record[-1])
|
||||
self.DefaultStores[Record[1].upper()] = (DscBuildData.ToInt(Record[0]),Record[1].upper())
|
||||
self.DefaultStores[Record[1].upper()] = (DscBuildData.ToInt(Record[0]), Record[1].upper())
|
||||
if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:
|
||||
self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)
|
||||
self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0, TAB_DEFAULT_STORES_DEFAULT)
|
||||
GlobalData.gDefaultStores = sorted(self.DefaultStores.keys())
|
||||
return self.DefaultStores
|
||||
|
||||
|
@ -736,7 +736,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
for Type in [MODEL_PCD_FIXED_AT_BUILD, MODEL_PCD_PATCHABLE_IN_MODULE, \
|
||||
MODEL_PCD_FEATURE_FLAG, MODEL_PCD_DYNAMIC, MODEL_PCD_DYNAMIC_EX]:
|
||||
RecordList = self._RawData[Type, self._Arch, None, ModuleId]
|
||||
for TokenSpaceGuid, PcdCName, Setting, Dummy1, Dummy2, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Dummy1, Dummy2, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
TokenList = GetSplitValueList(Setting)
|
||||
DefaultValue = TokenList[0]
|
||||
# the format is PcdName| Value | VOID* | MaxDatumSize
|
||||
|
@ -761,7 +761,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
|
||||
# get module private build options
|
||||
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, None, ModuleId]
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
if (ToolChainFamily, ToolChain) not in Module.BuildOptions:
|
||||
Module.BuildOptions[ToolChainFamily, ToolChain] = Option
|
||||
else:
|
||||
|
@ -801,7 +801,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
RecordList = self._RawData[MODEL_EFI_LIBRARY_CLASS, self._Arch, None, -1]
|
||||
Macros = self._Macros
|
||||
for Record in RecordList:
|
||||
LibraryClass, LibraryInstance, Dummy, Arch, ModuleType, Dummy,Dummy, LineNo = Record
|
||||
LibraryClass, LibraryInstance, Dummy, Arch, ModuleType, Dummy, Dummy, LineNo = Record
|
||||
if LibraryClass == '' or LibraryClass == 'NULL':
|
||||
self._NullLibraryNumber += 1
|
||||
LibraryClass = 'NULL%d' % self._NullLibraryNumber
|
||||
|
@ -868,7 +868,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
ModuleData = self._Bdb[ModuleFile, self._Arch, self._Target, self._Toolchain]
|
||||
PkgSet.update(ModuleData.Packages)
|
||||
|
||||
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain,PkgSet)
|
||||
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)
|
||||
self._GuidDict.update(GlobalData.gPlatformPcds)
|
||||
|
||||
if (PcdCName, TokenSpaceGuid) not in self._DecPcds:
|
||||
|
@ -913,14 +913,14 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
ExtraData="%s.%s" % (TokenSpaceGuid, PcdCName))
|
||||
if PcdType in (MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT):
|
||||
if self._DecPcds[PcdCName, TokenSpaceGuid].DatumType.strip() != ValueList[1].strip():
|
||||
EdkLogger.error('build', FORMAT_INVALID, "Pcd datumtype used in DSC file is not the same as its declaration in DEC file." , File=self.MetaFile, Line=LineNo,
|
||||
EdkLogger.error('build', FORMAT_INVALID, "Pcd datumtype used in DSC file is not the same as its declaration in DEC file.", File=self.MetaFile, Line=LineNo,
|
||||
ExtraData="%s.%s|%s" % (TokenSpaceGuid, PcdCName, Setting))
|
||||
if (TokenSpaceGuid + '.' + PcdCName) in GlobalData.gPlatformPcds:
|
||||
if GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] != ValueList[Index]:
|
||||
GlobalData.gPlatformPcds[TokenSpaceGuid + '.' + PcdCName] = ValueList[Index]
|
||||
return ValueList
|
||||
|
||||
def _FilterPcdBySkuUsage(self,Pcds):
|
||||
def _FilterPcdBySkuUsage(self, Pcds):
|
||||
available_sku = self.SkuIdMgr.AvailableSkuIdSet
|
||||
sku_usage = self.SkuIdMgr.SkuUsageType
|
||||
if sku_usage == SkuClass.SINGLE:
|
||||
|
@ -936,7 +936,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if type(pcd) is StructurePcd and pcd.SkuOverrideValues:
|
||||
Pcds[pcdname].SkuOverrideValues = {skuid:pcd.SkuOverrideValues[skuid] for skuid in pcd.SkuOverrideValues if skuid in available_sku}
|
||||
return Pcds
|
||||
def CompleteHiiPcdsDefaultStores(self,Pcds):
|
||||
def CompleteHiiPcdsDefaultStores(self, Pcds):
|
||||
HiiPcd = [Pcds[pcd] for pcd in Pcds if Pcds[pcd].Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]]
|
||||
DefaultStoreMgr = DefaultStore(self.DefaultStores)
|
||||
for pcd in HiiPcd:
|
||||
|
@ -958,7 +958,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
else:
|
||||
pcd.PcdValueFromComm = pcd.SkuInfoList.get(TAB_DEFAULT).DefaultValue
|
||||
for pcd in self._Pcds:
|
||||
if isinstance(self._Pcds[pcd],StructurePcd) and (self._Pcds[pcd].PcdValueFromComm or self._Pcds[pcd].PcdFieldValueFromComm):
|
||||
if isinstance(self._Pcds[pcd], StructurePcd) and (self._Pcds[pcd].PcdValueFromComm or self._Pcds[pcd].PcdFieldValueFromComm):
|
||||
UpdateCommandLineValue(self._Pcds[pcd])
|
||||
|
||||
def __ParsePcdFromCommandLine(self):
|
||||
|
@ -970,10 +970,10 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if not pcdvalue:
|
||||
EdkLogger.error('build', AUTOGEN_ERROR, "No Value specified for the PCD %s." % (pcdname))
|
||||
if '.' in pcdname:
|
||||
(Name1, Name2) = pcdname.split('.',1)
|
||||
(Name1, Name2) = pcdname.split('.', 1)
|
||||
if "." in Name2:
|
||||
(Name3, FieldName) = Name2.split(".",1)
|
||||
if ((Name3,Name1)) in self.DecPcds:
|
||||
(Name3, FieldName) = Name2.split(".", 1)
|
||||
if ((Name3, Name1)) in self.DecPcds:
|
||||
HasTokenSpace = True
|
||||
TokenCName = Name3
|
||||
TokenSpaceGuidCName = Name1
|
||||
|
@ -983,7 +983,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
TokenSpaceGuidCName = ''
|
||||
HasTokenSpace = False
|
||||
else:
|
||||
if ((Name2,Name1)) in self.DecPcds:
|
||||
if ((Name2, Name1)) in self.DecPcds:
|
||||
HasTokenSpace = True
|
||||
TokenCName = Name2
|
||||
TokenSpaceGuidCName = Name1
|
||||
|
@ -1037,7 +1037,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
IsValid, Cause = CheckPcdDatum(PcdDatumType, pcdvalue)
|
||||
if not IsValid:
|
||||
EdkLogger.error("build", FORMAT_INVALID, Cause, ExtraData="%s.%s" % (TokenSpaceGuidCName, TokenCName))
|
||||
GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, FieldName, pcdvalue,("build command options",1))
|
||||
GlobalData.BuildOptionPcd[i] = (TokenSpaceGuidCName, TokenCName, FieldName, pcdvalue, ("build command options", 1))
|
||||
|
||||
for BuildData in self._Bdb._CACHE_.values():
|
||||
if BuildData.MetaFile.Ext == '.dec' or BuildData.MetaFile.Ext == '.dsc':
|
||||
|
@ -1148,7 +1148,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
#
|
||||
for CodeBase in (EDKII_NAME, EDK_NAME):
|
||||
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch, CodeBase]
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
if Dummy3.upper() != TAB_COMMON:
|
||||
continue
|
||||
CurKey = (ToolChainFamily, ToolChain, CodeBase)
|
||||
|
@ -1171,7 +1171,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
DriverType = '%s.%s' % (Edk, ModuleType)
|
||||
CommonDriverType = '%s.%s' % (TAB_COMMON, ModuleType)
|
||||
RecordList = self._RawData[MODEL_META_DATA_BUILD_OPTION, self._Arch]
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for ToolChainFamily, ToolChain, Option, Dummy1, Dummy2, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
Type = Dummy2 + '.' + Dummy3
|
||||
if Type.upper() == DriverType.upper() or Type.upper() == CommonDriverType.upper():
|
||||
Key = (ToolChainFamily, ToolChain, Edk)
|
||||
|
@ -1186,7 +1186,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
def GetStructurePcdInfo(PcdSet):
|
||||
structure_pcd_data = defaultdict(list)
|
||||
for item in PcdSet:
|
||||
structure_pcd_data[(item[0],item[1])].append(item)
|
||||
structure_pcd_data[(item[0], item[1])].append(item)
|
||||
|
||||
return structure_pcd_data
|
||||
|
||||
|
@ -1194,25 +1194,25 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
def OverrideByFdfComm(StruPcds):
|
||||
StructurePcdInCom = OrderedDict()
|
||||
for item in GlobalData.BuildOptionPcd:
|
||||
if len(item) == 5 and (item[1],item[0]) in StruPcds:
|
||||
StructurePcdInCom[(item[0],item[1],item[2] )] = (item[3],item[4])
|
||||
GlobalPcds = {(item[0],item[1]) for item in StructurePcdInCom}
|
||||
if len(item) == 5 and (item[1], item[0]) in StruPcds:
|
||||
StructurePcdInCom[(item[0], item[1], item[2] )] = (item[3], item[4])
|
||||
GlobalPcds = {(item[0], item[1]) for item in StructurePcdInCom}
|
||||
for Pcd in StruPcds.values():
|
||||
if (Pcd.TokenSpaceGuidCName,Pcd.TokenCName) not in GlobalPcds:
|
||||
if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) not in GlobalPcds:
|
||||
continue
|
||||
FieldValues = OrderedDict()
|
||||
for item in StructurePcdInCom:
|
||||
if (Pcd.TokenSpaceGuidCName,Pcd.TokenCName) == (item[0],item[1]) and item[2]:
|
||||
if (Pcd.TokenSpaceGuidCName, Pcd.TokenCName) == (item[0], item[1]) and item[2]:
|
||||
FieldValues[item[2]] = StructurePcdInCom[item]
|
||||
for field in FieldValues:
|
||||
if field not in Pcd.PcdFieldValueFromComm:
|
||||
Pcd.PcdFieldValueFromComm[field] = ["","",""]
|
||||
Pcd.PcdFieldValueFromComm[field] = ["", "", ""]
|
||||
Pcd.PcdFieldValueFromComm[field][0] = FieldValues[field][0]
|
||||
Pcd.PcdFieldValueFromComm[field][1] = FieldValues[field][1][0]
|
||||
Pcd.PcdFieldValueFromComm[field][2] = FieldValues[field][1][1]
|
||||
return StruPcds
|
||||
|
||||
def OverrideByFdfCommOverAll(self,AllPcds):
|
||||
def OverrideByFdfCommOverAll(self, AllPcds):
|
||||
def CheckStructureInComm(commpcds):
|
||||
if not commpcds:
|
||||
return False
|
||||
|
@ -1221,43 +1221,43 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
return False
|
||||
|
||||
if CheckStructureInComm(GlobalData.BuildOptionPcd):
|
||||
StructurePcdInCom = {(item[0],item[1],item[2] ):(item[3],item[4]) for item in GlobalData.BuildOptionPcd } if GlobalData.BuildOptionPcd else {}
|
||||
NoFiledValues = {(item[0],item[1]):StructurePcdInCom[item] for item in StructurePcdInCom if not item[2]}
|
||||
StructurePcdInCom = {(item[0], item[1], item[2] ):(item[3], item[4]) for item in GlobalData.BuildOptionPcd } if GlobalData.BuildOptionPcd else {}
|
||||
NoFiledValues = {(item[0], item[1]):StructurePcdInCom[item] for item in StructurePcdInCom if not item[2]}
|
||||
else:
|
||||
NoFiledValues = {(item[0],item[1]):[item[2]] for item in GlobalData.BuildOptionPcd}
|
||||
for Guid,Name in NoFiledValues:
|
||||
if (Name,Guid) in AllPcds:
|
||||
Pcd = AllPcds.get((Name,Guid))
|
||||
if isinstance(self._DecPcds.get((Pcd.TokenCName,Pcd.TokenSpaceGuidCName), None),StructurePcd):
|
||||
self._DecPcds.get((Pcd.TokenCName,Pcd.TokenSpaceGuidCName)).PcdValueFromComm = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
NoFiledValues = {(item[0], item[1]):[item[2]] for item in GlobalData.BuildOptionPcd}
|
||||
for Guid, Name in NoFiledValues:
|
||||
if (Name, Guid) in AllPcds:
|
||||
Pcd = AllPcds.get((Name, Guid))
|
||||
if isinstance(self._DecPcds.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName), None), StructurePcd):
|
||||
self._DecPcds.get((Pcd.TokenCName, Pcd.TokenSpaceGuidCName)).PcdValueFromComm = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
else:
|
||||
Pcd.PcdValueFromComm = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
Pcd.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
Pcd.PcdValueFromComm = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
Pcd.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
for sku in Pcd.SkuInfoList:
|
||||
SkuInfo = Pcd.SkuInfoList[sku]
|
||||
if SkuInfo.DefaultValue:
|
||||
SkuInfo.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
SkuInfo.DefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
else:
|
||||
SkuInfo.HiiDefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
SkuInfo.HiiDefaultValue = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
for defaultstore in SkuInfo.DefaultStoreDict:
|
||||
SkuInfo.DefaultStoreDict[defaultstore] = NoFiledValues[(Pcd.TokenSpaceGuidCName,Pcd.TokenCName)][0]
|
||||
SkuInfo.DefaultStoreDict[defaultstore] = NoFiledValues[(Pcd.TokenSpaceGuidCName, Pcd.TokenCName)][0]
|
||||
if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII]]:
|
||||
if Pcd.DatumType == TAB_VOID:
|
||||
if not Pcd.MaxDatumSize:
|
||||
Pcd.MaxDatumSize = '0'
|
||||
CurrentSize = int(Pcd.MaxDatumSize,16) if Pcd.MaxDatumSize.upper().startswith("0X") else int(Pcd.MaxDatumSize)
|
||||
CurrentSize = int(Pcd.MaxDatumSize, 16) if Pcd.MaxDatumSize.upper().startswith("0X") else int(Pcd.MaxDatumSize)
|
||||
OptionSize = len((StringToArray(Pcd.PcdValueFromComm)).split(","))
|
||||
MaxSize = max(CurrentSize, OptionSize)
|
||||
Pcd.MaxDatumSize = str(MaxSize)
|
||||
else:
|
||||
PcdInDec = self.DecPcds.get((Name,Guid))
|
||||
PcdInDec = self.DecPcds.get((Name, Guid))
|
||||
if PcdInDec:
|
||||
PcdInDec.PcdValueFromComm = NoFiledValues[(Guid,Name)][0]
|
||||
PcdInDec.PcdValueFromComm = NoFiledValues[(Guid, Name)][0]
|
||||
if PcdInDec.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD],
|
||||
self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE],
|
||||
self._PCD_TYPE_STRING_[MODEL_PCD_FEATURE_FLAG]]:
|
||||
self.Pcds[Name, Guid] = copy.deepcopy(PcdInDec)
|
||||
self.Pcds[Name, Guid].DefaultValue = NoFiledValues[( Guid,Name)][0]
|
||||
self.Pcds[Name, Guid].DefaultValue = NoFiledValues[( Guid, Name)][0]
|
||||
return AllPcds
|
||||
def UpdateStructuredPcds(self, TypeList, AllPcds):
|
||||
|
||||
|
@ -1281,7 +1281,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
for Type in TypeList:
|
||||
RecordList.extend(self._RawData[Type, self._Arch])
|
||||
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, default_store, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, default_store, Dummy4, Dummy5 in RecordList:
|
||||
SkuName = SkuName.upper()
|
||||
default_store = default_store.upper()
|
||||
SkuName = TAB_DEFAULT if SkuName == TAB_COMMON else SkuName
|
||||
|
@ -1289,7 +1289,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
continue
|
||||
|
||||
if SkuName in SkuIds and "." in TokenSpaceGuid:
|
||||
S_PcdSet.append([ TokenSpaceGuid.split(".")[0],TokenSpaceGuid.split(".")[1], PcdCName,SkuName, default_store,Dummy5, AnalyzePcdExpression(Setting)[0]])
|
||||
S_PcdSet.append([ TokenSpaceGuid.split(".")[0], TokenSpaceGuid.split(".")[1], PcdCName, SkuName, default_store, Dummy5, AnalyzePcdExpression(Setting)[0]])
|
||||
|
||||
# handle pcd value override
|
||||
StrPcdSet = DscBuildData.GetStructurePcdInfo(S_PcdSet)
|
||||
|
@ -1300,7 +1300,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if not isinstance (str_pcd_dec, StructurePcd):
|
||||
EdkLogger.error('build', PARSER_ERROR,
|
||||
"Pcd (%s.%s) is not declared as Structure PCD in DEC files. Arch: ['%s']" % (str_pcd[0], str_pcd[1], self._Arch),
|
||||
File=self.MetaFile,Line = StrPcdSet[str_pcd][0][5])
|
||||
File=self.MetaFile, Line = StrPcdSet[str_pcd][0][5])
|
||||
if str_pcd_dec:
|
||||
str_pcd_obj_str = StructurePcd()
|
||||
str_pcd_obj_str.copy(str_pcd_dec)
|
||||
|
@ -1312,12 +1312,12 @@ 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}
|
||||
for str_pcd_data in StrPcdSet[str_pcd]:
|
||||
if str_pcd_data[3] in SkuIds:
|
||||
str_pcd_obj_str.AddOverrideValue(str_pcd_data[2], str(str_pcd_data[6]), TAB_DEFAULT if str_pcd_data[3] == TAB_COMMON else str_pcd_data[3],TAB_DEFAULT_STORES_DEFAULT if str_pcd_data[4] == TAB_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])
|
||||
str_pcd_obj_str.AddOverrideValue(str_pcd_data[2], str(str_pcd_data[6]), TAB_DEFAULT if str_pcd_data[3] == TAB_COMMON else str_pcd_data[3], TAB_DEFAULT_STORES_DEFAULT if str_pcd_data[4] == TAB_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])
|
||||
S_pcd_set[str_pcd[1], str_pcd[0]] = str_pcd_obj_str
|
||||
else:
|
||||
EdkLogger.error('build', PARSER_ERROR,
|
||||
"Pcd (%s.%s) defined in DSC is not declared in DEC files. Arch: ['%s']" % (str_pcd[0], str_pcd[1], self._Arch),
|
||||
File=self.MetaFile,Line = StrPcdSet[str_pcd][0][5])
|
||||
File=self.MetaFile, Line = StrPcdSet[str_pcd][0][5])
|
||||
# Add the Structure PCD that only defined in DEC, don't have override in DSC file
|
||||
for Pcd in self.DecPcds:
|
||||
if type (self._DecPcds[Pcd]) is StructurePcd:
|
||||
|
@ -1348,7 +1348,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
nextskuid = self.SkuIdMgr.GetNextSkuId(nextskuid)
|
||||
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})
|
||||
if not NoDefault:
|
||||
stru_pcd.ValueChain.add((skuid,''))
|
||||
stru_pcd.ValueChain.add((skuid, ''))
|
||||
if stru_pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_HII], self._PCD_TYPE_STRING_[MODEL_PCD_DYNAMIC_EX_HII]]:
|
||||
for skuid in SkuIds:
|
||||
nextskuid = skuid
|
||||
|
@ -1367,11 +1367,11 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
for defaultstoreid in DefaultStores:
|
||||
if defaultstoreid not in stru_pcd.SkuOverrideValues[skuid]:
|
||||
stru_pcd.SkuOverrideValues[skuid][defaultstoreid] = copy.deepcopy(stru_pcd.SkuOverrideValues[nextskuid][mindefaultstorename])
|
||||
stru_pcd.ValueChain.add((skuid,defaultstoreid))
|
||||
stru_pcd.ValueChain.add((skuid, defaultstoreid))
|
||||
S_pcd_set = DscBuildData.OverrideByFdfComm(S_pcd_set)
|
||||
Str_Pcd_Values = self.GenerateByteArrayValue(S_pcd_set)
|
||||
if Str_Pcd_Values:
|
||||
for (skuname,StoreName,PcdGuid,PcdName,PcdValue) in Str_Pcd_Values:
|
||||
for (skuname, StoreName, PcdGuid, PcdName, PcdValue) in Str_Pcd_Values:
|
||||
str_pcd_obj = S_pcd_set.get((PcdName, PcdGuid))
|
||||
if str_pcd_obj is None:
|
||||
print(PcdName, PcdGuid)
|
||||
|
@ -1423,7 +1423,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:
|
||||
del pcd.SkuInfoList[TAB_COMMON]
|
||||
|
||||
map(self.FilterSkuSettings,[Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType])
|
||||
map(self.FilterSkuSettings, [Pcds[pcdkey] for pcdkey in Pcds if Pcds[pcdkey].Type in DynamicPcdType])
|
||||
return Pcds
|
||||
|
||||
## Retrieve non-dynamic PCD settings
|
||||
|
@ -1445,7 +1445,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
# Find out all possible PCD candidates for self._Arch
|
||||
RecordList = self._RawData[Type, self._Arch]
|
||||
PcdValueDict = OrderedDict()
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
SkuName = SkuName.upper()
|
||||
SkuName = TAB_DEFAULT if SkuName == TAB_COMMON else SkuName
|
||||
if SkuName not in AvailableSkuIdSet:
|
||||
|
@ -1466,7 +1466,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
else:
|
||||
PcdValueDict[PcdCName, TokenSpaceGuid] = {SkuName:(PcdValue, DatumType, MaxDatumSize)}
|
||||
|
||||
for ((PcdCName,TokenSpaceGuid),PcdSetting) in PcdValueDict.iteritems():
|
||||
for ((PcdCName, TokenSpaceGuid), PcdSetting) in PcdValueDict.iteritems():
|
||||
PcdValue = None
|
||||
DatumType = None
|
||||
MaxDatumSize = None
|
||||
|
@ -1536,7 +1536,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
Result = Result + '"'
|
||||
return Result
|
||||
|
||||
def GenerateSizeFunction(self,Pcd):
|
||||
def GenerateSizeFunction(self, Pcd):
|
||||
CApp = "// Default Value in Dec \n"
|
||||
CApp = CApp + "void Cal_%s_%s_Size(UINT32 *Size){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)
|
||||
for FieldList in [Pcd.DefaultValues]:
|
||||
|
@ -1618,7 +1618,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
while '[' in FieldName:
|
||||
FieldName = FieldName.rsplit('[', 1)[0]
|
||||
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])
|
||||
CApp = CApp + " *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (Pcd.GetPcdMaxSize(),Pcd.GetPcdMaxSize(),Pcd.GetPcdMaxSize())
|
||||
CApp = CApp + " *Size = (%d > *Size ? %d : *Size); // The Pcd maxsize is %d \n" % (Pcd.GetPcdMaxSize(), Pcd.GetPcdMaxSize(), Pcd.GetPcdMaxSize())
|
||||
CApp = CApp + "}\n"
|
||||
return CApp
|
||||
|
||||
|
@ -1628,9 +1628,9 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
CApp = CApp + ' Cal_%s_%s_Size(&Size);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)
|
||||
return CApp
|
||||
|
||||
def GenerateDefaultValueAssignFunction(self,Pcd):
|
||||
def GenerateDefaultValueAssignFunction(self, Pcd):
|
||||
CApp = "// Default value in Dec \n"
|
||||
CApp = CApp + "void Assign_%s_%s_Default_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)
|
||||
CApp = CApp + "void Assign_%s_%s_Default_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DatumType)
|
||||
CApp = CApp + ' UINT32 FieldSize;\n'
|
||||
CApp = CApp + ' CHAR8 *Value;\n'
|
||||
DefaultValueFromDec = Pcd.DefaultValueFromDec
|
||||
|
@ -1661,12 +1661,12 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
FieldList[FieldName][0] = ValueExpressionEx(FieldList[FieldName][0], TAB_VOID, self._GuidDict)(True)
|
||||
except BadExpression:
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " %
|
||||
(".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1],FieldList[FieldName][2]))
|
||||
(".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
|
||||
try:
|
||||
Value, ValueSize = ParseFieldValue (FieldList[FieldName][0])
|
||||
except Exception:
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName,FieldName)),FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
if isinstance(Value, str):
|
||||
CApp = CApp + ' Pcd->%s = %s; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])
|
||||
elif IsArray:
|
||||
|
@ -1689,22 +1689,22 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
CApp = ' Assign_%s_%s_Default_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName)
|
||||
return CApp
|
||||
|
||||
def GenerateInitValueFunction(self,Pcd,SkuName,DefaultStoreName):
|
||||
CApp = "// Value in Dsc for Sku: %s, DefaultStore %s\n" % (SkuName,DefaultStoreName)
|
||||
CApp = CApp + "void Assign_%s_%s_%s_%s_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName,Pcd.DatumType)
|
||||
def GenerateInitValueFunction(self, Pcd, SkuName, DefaultStoreName):
|
||||
CApp = "// Value in Dsc for Sku: %s, DefaultStore %s\n" % (SkuName, DefaultStoreName)
|
||||
CApp = CApp + "void Assign_%s_%s_%s_%s_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, SkuName, DefaultStoreName, Pcd.DatumType)
|
||||
CApp = CApp + ' UINT32 FieldSize;\n'
|
||||
CApp = CApp + ' CHAR8 *Value;\n'
|
||||
|
||||
CApp = CApp + "// SkuName: %s, DefaultStoreName: %s \n" % (TAB_DEFAULT, TAB_DEFAULT_STORES_DEFAULT)
|
||||
inherit_OverrideValues = Pcd.SkuOverrideValues[SkuName]
|
||||
if (SkuName,DefaultStoreName) == (TAB_DEFAULT,TAB_DEFAULT_STORES_DEFAULT):
|
||||
pcddefaultvalue = Pcd.DefaultFromDSC.get(TAB_DEFAULT,{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue
|
||||
if (SkuName, DefaultStoreName) == (TAB_DEFAULT, TAB_DEFAULT_STORES_DEFAULT):
|
||||
pcddefaultvalue = Pcd.DefaultFromDSC.get(TAB_DEFAULT, {}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue
|
||||
else:
|
||||
if not Pcd.DscRawValue:
|
||||
# handle the case that structure pcd is not appear in DSC
|
||||
self.CopyDscRawValue(Pcd)
|
||||
pcddefaultvalue = Pcd.DscRawValue.get(SkuName,{}).get(DefaultStoreName)
|
||||
for FieldList in [pcddefaultvalue,inherit_OverrideValues.get(DefaultStoreName)]:
|
||||
pcddefaultvalue = Pcd.DscRawValue.get(SkuName, {}).get(DefaultStoreName)
|
||||
for FieldList in [pcddefaultvalue, inherit_OverrideValues.get(DefaultStoreName)]:
|
||||
if not FieldList:
|
||||
continue
|
||||
if pcddefaultvalue and FieldList == pcddefaultvalue:
|
||||
|
@ -1717,26 +1717,26 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
(Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldList))
|
||||
Value, ValueSize = ParseFieldValue (FieldList)
|
||||
|
||||
if (SkuName,DefaultStoreName) == (TAB_DEFAULT,TAB_DEFAULT_STORES_DEFAULT):
|
||||
if (SkuName, DefaultStoreName) == (TAB_DEFAULT, TAB_DEFAULT_STORES_DEFAULT):
|
||||
if isinstance(Value, str):
|
||||
CApp = CApp + ' Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DefaultFromDSC.get(TAB_DEFAULT,{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)
|
||||
CApp = CApp + ' Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DefaultFromDSC.get(TAB_DEFAULT, {}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)
|
||||
elif IsArray:
|
||||
#
|
||||
# Use memcpy() to copy value into field
|
||||
#
|
||||
CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), Pcd.DefaultFromDSC.get(TAB_DEFAULT,{}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)
|
||||
CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), Pcd.DefaultFromDSC.get(TAB_DEFAULT, {}).get(TAB_DEFAULT_STORES_DEFAULT, Pcd.DefaultValue) if Pcd.DefaultFromDSC else Pcd.DefaultValue)
|
||||
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)
|
||||
else:
|
||||
if isinstance(Value, str):
|
||||
CApp = CApp + ' Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DscRawValue.get(SkuName,{}).get(DefaultStoreName))
|
||||
CApp = CApp + ' Pcd = %s; // From DSC Default Value %s\n' % (Value, Pcd.DscRawValue.get(SkuName, {}).get(DefaultStoreName))
|
||||
elif IsArray:
|
||||
#
|
||||
# Use memcpy() to copy value into field
|
||||
#
|
||||
CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), Pcd.DscRawValue.get(SkuName,{}).get(DefaultStoreName))
|
||||
CApp = CApp + ' Value = %s; // From DSC Default Value %s\n' % (DscBuildData.IntToCString(Value, ValueSize), Pcd.DscRawValue.get(SkuName, {}).get(DefaultStoreName))
|
||||
CApp = CApp + ' memcpy (Pcd, Value, %d);\n' % (ValueSize)
|
||||
continue
|
||||
if (SkuName,DefaultStoreName) == (TAB_DEFAULT,TAB_DEFAULT_STORES_DEFAULT) or (( (SkuName,'') not in Pcd.ValueChain) and ( (SkuName,DefaultStoreName) not in Pcd.ValueChain )):
|
||||
if (SkuName, DefaultStoreName) == (TAB_DEFAULT, TAB_DEFAULT_STORES_DEFAULT) or (( (SkuName, '') not in Pcd.ValueChain) and ( (SkuName, DefaultStoreName) not in Pcd.ValueChain )):
|
||||
for FieldName in FieldList:
|
||||
IsArray = IsFieldValueAnArray(FieldList[FieldName][0])
|
||||
if IsArray:
|
||||
|
@ -1748,7 +1748,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
try:
|
||||
Value, ValueSize = ParseFieldValue (FieldList[FieldName][0])
|
||||
except Exception:
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName,FieldName)),FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
if isinstance(Value, str):
|
||||
CApp = CApp + ' Pcd->%s = %s; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])
|
||||
elif IsArray:
|
||||
|
@ -1767,18 +1767,18 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
return CApp
|
||||
|
||||
@staticmethod
|
||||
def GenerateInitValueStatement(Pcd,SkuName,DefaultStoreName):
|
||||
CApp = ' Assign_%s_%s_%s_%s_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,SkuName,DefaultStoreName)
|
||||
def GenerateInitValueStatement(Pcd, SkuName, DefaultStoreName):
|
||||
CApp = ' Assign_%s_%s_%s_%s_Value(Pcd);\n' % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, SkuName, DefaultStoreName)
|
||||
return CApp
|
||||
|
||||
def GenerateCommandLineValue(self,Pcd):
|
||||
def GenerateCommandLineValue(self, Pcd):
|
||||
CApp = "// Value in CommandLine\n"
|
||||
CApp = CApp + "void Assign_%s_%s_CommandLine_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName,Pcd.DatumType)
|
||||
CApp = CApp + "void Assign_%s_%s_CommandLine_Value(%s *Pcd){\n" % (Pcd.TokenSpaceGuidCName, Pcd.TokenCName, Pcd.DatumType)
|
||||
CApp = CApp + ' UINT32 FieldSize;\n'
|
||||
CApp = CApp + ' CHAR8 *Value;\n'
|
||||
|
||||
pcddefaultvalue = Pcd.PcdValueFromComm
|
||||
for FieldList in [pcddefaultvalue,Pcd.PcdFieldValueFromComm]:
|
||||
for FieldList in [pcddefaultvalue, Pcd.PcdFieldValueFromComm]:
|
||||
if not FieldList:
|
||||
continue
|
||||
if pcddefaultvalue and FieldList == pcddefaultvalue:
|
||||
|
@ -1813,7 +1813,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
try:
|
||||
Value, ValueSize = ParseFieldValue (FieldList[FieldName][0])
|
||||
except Exception:
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName,Pcd.TokenCName,FieldName)),FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
EdkLogger.error('Build', FORMAT_INVALID, "Invalid value format for %s. From %s Line %d " % (".".join((Pcd.TokenSpaceGuidCName, Pcd.TokenCName, FieldName)), FieldList[FieldName][1], FieldList[FieldName][2]))
|
||||
if isinstance(Value, str):
|
||||
CApp = CApp + ' Pcd->%s = %s; // From %s Line %d Value %s\n' % (FieldName, Value, FieldList[FieldName][1], FieldList[FieldName][2], FieldList[FieldName][0])
|
||||
elif IsArray:
|
||||
|
@ -1855,7 +1855,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
CApp = CApp + '\n'
|
||||
|
||||
if SkuName in Pcd.SkuInfoList:
|
||||
DefaultValue = Pcd.SkuInfoList[SkuName].DefaultStoreDict.get(DefaultStoreName,Pcd.SkuInfoList[SkuName].HiiDefaultValue if Pcd.SkuInfoList[SkuName].HiiDefaultValue else Pcd.SkuInfoList[SkuName].DefaultValue)
|
||||
DefaultValue = Pcd.SkuInfoList[SkuName].DefaultStoreDict.get(DefaultStoreName, Pcd.SkuInfoList[SkuName].HiiDefaultValue if Pcd.SkuInfoList[SkuName].HiiDefaultValue else Pcd.SkuInfoList[SkuName].DefaultValue)
|
||||
else:
|
||||
DefaultValue = Pcd.DefaultValue
|
||||
PcdDefaultValue = StringToArray(DefaultValue.strip())
|
||||
|
@ -1901,12 +1901,12 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
storeset = [DefaultStoreName] if DefaultStoreName == TAB_DEFAULT_STORES_DEFAULT else [TAB_DEFAULT_STORES_DEFAULT, DefaultStoreName]
|
||||
for defaultstorenameitem in storeset:
|
||||
CApp = CApp + "// SkuName: %s, DefaultStoreName: %s \n" % (skuname, defaultstorenameitem)
|
||||
CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd,skuname,defaultstorenameitem)
|
||||
CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd, skuname, defaultstorenameitem)
|
||||
if skuname == SkuName:
|
||||
break
|
||||
else:
|
||||
CApp = CApp + "// SkuName: %s, DefaultStoreName: STANDARD \n" % self.SkuIdMgr.SystemSkuId
|
||||
CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd,self.SkuIdMgr.SystemSkuId,TAB_DEFAULT_STORES_DEFAULT)
|
||||
CApp = CApp + DscBuildData.GenerateInitValueStatement(Pcd, self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT)
|
||||
CApp = CApp + DscBuildData.GenerateCommandLineValueStatement(Pcd)
|
||||
#
|
||||
# Set new PCD value and size
|
||||
|
@ -1946,13 +1946,13 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
CApp = CApp + self.GenerateCommandLineValue(Pcd)
|
||||
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]]:
|
||||
CApp = CApp + self.GenerateInitValueFunction(Pcd,self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT)
|
||||
CApp = CApp + self.GenerateInitValueFunction(Pcd, self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT)
|
||||
else:
|
||||
for SkuName in self.SkuIdMgr.SkuOverrideOrder():
|
||||
if SkuName not in Pcd.SkuOverrideValues:
|
||||
continue
|
||||
for DefaultStoreName in Pcd.SkuOverrideValues[SkuName]:
|
||||
CApp = CApp + self.GenerateInitValueFunction(Pcd,SkuName,DefaultStoreName)
|
||||
CApp = CApp + self.GenerateInitValueFunction(Pcd, SkuName, DefaultStoreName)
|
||||
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]]:
|
||||
InitByteValue, CApp = self.GenerateInitializeFunc(self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT, Pcd, InitByteValue, CApp)
|
||||
|
@ -1970,7 +1970,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
CApp = CApp + ' )\n'
|
||||
CApp = CApp + '{\n'
|
||||
for Pcd in StructuredPcds.values():
|
||||
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]]:
|
||||
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]]:
|
||||
CApp = CApp + ' Initialize_%s_%s_%s_%s();\n' % (self.SkuIdMgr.SystemSkuId, TAB_DEFAULT_STORES_DEFAULT, Pcd.TokenSpaceGuidCName, Pcd.TokenCName)
|
||||
else:
|
||||
for SkuName in self.SkuIdMgr.SkuOverrideOrder():
|
||||
|
@ -2072,7 +2072,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
IncludeFileFullPaths = []
|
||||
for includefile in IncludeFiles:
|
||||
for includepath in IncSearchList:
|
||||
includefullpath = os.path.join(str(includepath),includefile)
|
||||
includefullpath = os.path.join(str(includepath), includefile)
|
||||
if os.path.exists(includefullpath):
|
||||
IncludeFileFullPaths.append(os.path.normpath(includefullpath))
|
||||
break
|
||||
|
@ -2080,7 +2080,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
SearchPathList.append(os.path.normpath(mws.join(GlobalData.gWorkspace, "BaseTools/Source/C/Include")))
|
||||
SearchPathList.append(os.path.normpath(mws.join(GlobalData.gWorkspace, "BaseTools/Source/C/Common")))
|
||||
SearchPathList.extend(str(item) for item in IncSearchList)
|
||||
IncFileList = GetDependencyList(IncludeFileFullPaths,SearchPathList)
|
||||
IncFileList = GetDependencyList(IncludeFileFullPaths, SearchPathList)
|
||||
for include_file in IncFileList:
|
||||
MakeApp += "$(OBJECTS) : %s\n" % include_file
|
||||
MakeFileName = os.path.join(self.OutputPath, 'Makefile')
|
||||
|
@ -2126,7 +2126,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if FileLine.isdigit():
|
||||
error_line = FileData[int (FileLine) - 1]
|
||||
if r"//" in error_line:
|
||||
c_line,dsc_line = error_line.split(r"//")
|
||||
c_line, dsc_line = error_line.split(r"//")
|
||||
else:
|
||||
dsc_line = error_line
|
||||
message_itmes = Message.split(":")
|
||||
|
@ -2150,7 +2150,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
else:
|
||||
EdkLogger.error('Build', COMMAND_FAILURE, 'Can not execute command: %s' % MakeCommand)
|
||||
|
||||
if DscBuildData.NeedUpdateOutput(OutputValueFile, PcdValueInitExe ,InputValueFile):
|
||||
if DscBuildData.NeedUpdateOutput(OutputValueFile, PcdValueInitExe, InputValueFile):
|
||||
Command = PcdValueInitExe + ' -i %s -o %s' % (InputValueFile, OutputValueFile)
|
||||
returncode, StdOut, StdErr = DscBuildData.ExecuteCommand (Command)
|
||||
if returncode != 0:
|
||||
|
@ -2164,7 +2164,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
for Pcd in FileBuffer:
|
||||
PcdValue = Pcd.split ('|')
|
||||
PcdInfo = PcdValue[0].split ('.')
|
||||
StructurePcdSet.append((PcdInfo[0],PcdInfo[1], PcdInfo[2], PcdInfo[3], PcdValue[2].strip()))
|
||||
StructurePcdSet.append((PcdInfo[0], PcdInfo[1], PcdInfo[2], PcdInfo[3], PcdValue[2].strip()))
|
||||
return StructurePcdSet
|
||||
|
||||
@staticmethod
|
||||
|
@ -2198,7 +2198,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
AvailableSkuIdSet = copy.copy(self.SkuIds)
|
||||
|
||||
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
SkuName = SkuName.upper()
|
||||
SkuName = TAB_DEFAULT if SkuName == TAB_COMMON else SkuName
|
||||
if SkuName not in AvailableSkuIdSet:
|
||||
|
@ -2260,7 +2260,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
elif TAB_DEFAULT in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:
|
||||
del pcd.SkuInfoList[TAB_COMMON]
|
||||
|
||||
map(self.FilterSkuSettings,Pcds.values())
|
||||
map(self.FilterSkuSettings, Pcds.values())
|
||||
|
||||
return Pcds
|
||||
|
||||
|
@ -2291,7 +2291,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
else:
|
||||
return False
|
||||
|
||||
def CopyDscRawValue(self,Pcd):
|
||||
def CopyDscRawValue(self, Pcd):
|
||||
if Pcd.DscRawValue is None:
|
||||
Pcd.DscRawValue = dict()
|
||||
if Pcd.Type in [self._PCD_TYPE_STRING_[MODEL_PCD_FIXED_AT_BUILD], self._PCD_TYPE_STRING_[MODEL_PCD_PATCHABLE_IN_MODULE]]:
|
||||
|
@ -2305,10 +2305,10 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
Pcd.DscRawValue[skuname][defaultstore] = Pcd.SkuInfoList[skuname].DefaultStoreDict[defaultstore]
|
||||
else:
|
||||
Pcd.DscRawValue[skuname][TAB_DEFAULT_STORES_DEFAULT] = Pcd.SkuInfoList[skuname].DefaultValue
|
||||
def CompletePcdValues(self,PcdSet):
|
||||
def CompletePcdValues(self, PcdSet):
|
||||
Pcds = {}
|
||||
DefaultStoreObj = DefaultStore(self._GetDefaultStores())
|
||||
SkuIds = {skuname:skuid for skuname,skuid in self.SkuIdMgr.AvailableSkuIdSet.items() if skuname != TAB_COMMON}
|
||||
SkuIds = {skuname:skuid for skuname, skuid in self.SkuIdMgr.AvailableSkuIdSet.items() if skuname != TAB_COMMON}
|
||||
DefaultStores = set(storename for pcdobj in PcdSet.values() for skuobj in pcdobj.SkuInfoList.values() for storename in skuobj.DefaultStoreDict)
|
||||
for PcdCName, TokenSpaceGuid in PcdSet:
|
||||
PcdObj = PcdSet[(PcdCName, TokenSpaceGuid)]
|
||||
|
@ -2330,7 +2330,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
if defaultstorename not in skuobj.DefaultStoreDict:
|
||||
skuobj.DefaultStoreDict[defaultstorename] = copy.deepcopy(skuobj.DefaultStoreDict[mindefaultstorename])
|
||||
skuobj.HiiDefaultValue = skuobj.DefaultStoreDict[mindefaultstorename]
|
||||
for skuname,skuid in SkuIds.items():
|
||||
for skuname, skuid in SkuIds.items():
|
||||
if skuname not in PcdObj.SkuInfoList:
|
||||
nextskuid = self.SkuIdMgr.GetNextSkuId(skuname)
|
||||
while nextskuid not in PcdObj.SkuInfoList:
|
||||
|
@ -2364,7 +2364,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
AvailableSkuIdSet = copy.copy(self.SkuIds)
|
||||
DefaultStoresDefine = self._GetDefaultStores()
|
||||
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, DefaultStore, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, DefaultStore, Dummy4, Dummy5 in RecordList:
|
||||
SkuName = SkuName.upper()
|
||||
SkuName = TAB_DEFAULT if SkuName == TAB_COMMON else SkuName
|
||||
DefaultStore = DefaultStore.upper()
|
||||
|
@ -2377,14 +2377,14 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
EdkLogger.error('build', PARAMETER_INVALID, 'DefaultStores %s is not defined in [DefaultStores] section' % DefaultStore,
|
||||
File=self.MetaFile, Line=Dummy5)
|
||||
if "." not in TokenSpaceGuid:
|
||||
PcdSet.add((PcdCName, TokenSpaceGuid, SkuName,DefaultStore, Dummy5))
|
||||
PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid,DefaultStore] = Setting
|
||||
PcdSet.add((PcdCName, TokenSpaceGuid, SkuName, DefaultStore, Dummy5))
|
||||
PcdDict[Arch, SkuName, PcdCName, TokenSpaceGuid, DefaultStore] = Setting
|
||||
|
||||
|
||||
# Remove redundant PCD candidates, per the ARCH and SKU
|
||||
for PcdCName, TokenSpaceGuid, SkuName,DefaultStore, Dummy4 in PcdSet:
|
||||
for PcdCName, TokenSpaceGuid, SkuName, DefaultStore, Dummy4 in PcdSet:
|
||||
|
||||
Setting = PcdDict[self._Arch, SkuName, PcdCName, TokenSpaceGuid,DefaultStore]
|
||||
Setting = PcdDict[self._Arch, SkuName, PcdCName, TokenSpaceGuid, DefaultStore]
|
||||
if Setting is None:
|
||||
continue
|
||||
VariableName, VariableGuid, VariableOffset, DefaultValue, VarAttribute = self._ValidatePcd(PcdCName, TokenSpaceGuid, Setting, Type, Dummy4)
|
||||
|
@ -2428,10 +2428,10 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
Skuitem = pcdObject.SkuInfoList[SkuName]
|
||||
Skuitem.DefaultStoreDict.update({DefaultStore:DefaultValue})
|
||||
else:
|
||||
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], VariableName, VariableGuid, VariableOffset, DefaultValue, VariableAttribute=VarAttribute,DefaultStore={DefaultStore:DefaultValue})
|
||||
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], VariableName, VariableGuid, VariableOffset, DefaultValue, VariableAttribute=VarAttribute, DefaultStore={DefaultStore:DefaultValue})
|
||||
pcdObject.SkuInfoList[SkuName] = SkuInfo
|
||||
else:
|
||||
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], VariableName, VariableGuid, VariableOffset, DefaultValue, VariableAttribute=VarAttribute,DefaultStore={DefaultStore:DefaultValue})
|
||||
SkuInfo = SkuInfoClass(SkuName, self.SkuIds[SkuName][0], VariableName, VariableGuid, VariableOffset, DefaultValue, VariableAttribute=VarAttribute, DefaultStore={DefaultStore:DefaultValue})
|
||||
Pcds[PcdCName, TokenSpaceGuid] = PcdClassObject(
|
||||
PcdCName,
|
||||
TokenSpaceGuid,
|
||||
|
@ -2462,7 +2462,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
pcd.DefaultValue = pcdDecObject.DefaultValue
|
||||
if TAB_DEFAULT not in pcd.SkuInfoList and TAB_COMMON not in pcd.SkuInfoList:
|
||||
valuefromDec = pcdDecObject.DefaultValue
|
||||
SkuInfo = SkuInfoClass(TAB_DEFAULT, '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec,VariableAttribute=SkuInfoObj.VariableAttribute,DefaultStore={DefaultStore:valuefromDec})
|
||||
SkuInfo = SkuInfoClass(TAB_DEFAULT, '0', SkuInfoObj.VariableName, SkuInfoObj.VariableGuid, SkuInfoObj.VariableOffset, valuefromDec, VariableAttribute=SkuInfoObj.VariableAttribute, DefaultStore={DefaultStore:valuefromDec})
|
||||
pcd.SkuInfoList[TAB_DEFAULT] = SkuInfo
|
||||
elif TAB_DEFAULT not in pcd.SkuInfoList and TAB_COMMON in pcd.SkuInfoList:
|
||||
pcd.SkuInfoList[TAB_DEFAULT] = pcd.SkuInfoList[TAB_COMMON]
|
||||
|
@ -2490,7 +2490,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
invalidpcd = ",".join(invalidhii)
|
||||
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)
|
||||
|
||||
map(self.FilterSkuSettings,Pcds.values())
|
||||
map(self.FilterSkuSettings, Pcds.values())
|
||||
|
||||
return Pcds
|
||||
|
||||
|
@ -2499,11 +2499,11 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
invalidhii = []
|
||||
for pcdname in Pcds:
|
||||
pcd = Pcds[pcdname]
|
||||
varnameset = set(sku.VariableName for (skuid,sku) in pcd.SkuInfoList.items())
|
||||
varnameset = set(sku.VariableName for (skuid, sku) in pcd.SkuInfoList.items())
|
||||
if len(varnameset) > 1:
|
||||
invalidhii.append(".".join((pcdname[1],pcdname[0])))
|
||||
invalidhii.append(".".join((pcdname[1], pcdname[0])))
|
||||
if len(invalidhii):
|
||||
return False,invalidhii
|
||||
return False, invalidhii
|
||||
else:
|
||||
return True, []
|
||||
## Retrieve dynamic VPD PCD settings
|
||||
|
@ -2527,7 +2527,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
RecordList = self._RawData[Type, self._Arch]
|
||||
AvailableSkuIdSet = copy.copy(self.SkuIds)
|
||||
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4,Dummy5 in RecordList:
|
||||
for TokenSpaceGuid, PcdCName, Setting, Arch, SkuName, Dummy3, Dummy4, Dummy5 in RecordList:
|
||||
SkuName = SkuName.upper()
|
||||
SkuName = TAB_DEFAULT if SkuName == TAB_COMMON else SkuName
|
||||
if SkuName not in AvailableSkuIdSet:
|
||||
|
@ -2595,7 +2595,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
del pcd.SkuInfoList[TAB_COMMON]
|
||||
|
||||
|
||||
map(self.FilterSkuSettings,Pcds.values())
|
||||
map(self.FilterSkuSettings, Pcds.values())
|
||||
return Pcds
|
||||
|
||||
## Add external modules
|
||||
|
@ -2660,7 +2660,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||
continue
|
||||
ModuleData = self._Bdb[ModuleFile, self._Arch, self._Target, self._Toolchain]
|
||||
PkgSet.update(ModuleData.Packages)
|
||||
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain,PkgSet)
|
||||
self._DecPcds, self._GuidDict = GetDeclaredPcd(self, self._Bdb, self._Arch, self._Target, self._Toolchain, PkgSet)
|
||||
return self._DecPcds
|
||||
_Macros = property(_GetMacros)
|
||||
Arch = property(_GetArch, _SetArch)
|
||||
|
|
|
@ -302,7 +302,7 @@ class MetaFileParser(object):
|
|||
for Item in GetSplitValueList(self._CurrentLine[1:-1], TAB_COMMA_SPLIT):
|
||||
if Item == '':
|
||||
continue
|
||||
ItemList = GetSplitValueList(Item, TAB_SPLIT,3)
|
||||
ItemList = GetSplitValueList(Item, TAB_SPLIT, 3)
|
||||
# different section should not mix in one section
|
||||
if self._SectionName != '' and self._SectionName != ItemList[0].upper():
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "Different section names in the same section",
|
||||
|
@ -420,7 +420,7 @@ class MetaFileParser(object):
|
|||
|
||||
## Construct section Macro dict
|
||||
def _ConstructSectionMacroDict(self, Name, Value):
|
||||
ScopeKey = [(Scope[0], Scope[1],Scope[2]) for Scope in self._Scope]
|
||||
ScopeKey = [(Scope[0], Scope[1], Scope[2]) for Scope in self._Scope]
|
||||
ScopeKey = tuple(ScopeKey)
|
||||
#
|
||||
# DecParser SectionType is a list, will contain more than one item only in Pcd Section
|
||||
|
@ -451,15 +451,15 @@ class MetaFileParser(object):
|
|||
continue
|
||||
|
||||
for ActiveScope in self._Scope:
|
||||
Scope0, Scope1 ,Scope2= ActiveScope[0], ActiveScope[1],ActiveScope[2]
|
||||
if(Scope0, Scope1,Scope2) not in Scope:
|
||||
Scope0, Scope1, Scope2= ActiveScope[0], ActiveScope[1], ActiveScope[2]
|
||||
if(Scope0, Scope1, Scope2) not in Scope:
|
||||
break
|
||||
else:
|
||||
SpeSpeMacroDict.update(self._SectionsMacroDict[(SectionType, Scope)])
|
||||
|
||||
for ActiveScope in self._Scope:
|
||||
Scope0, Scope1,Scope2 = ActiveScope[0], ActiveScope[1],ActiveScope[2]
|
||||
if(Scope0, Scope1,Scope2) not in Scope and (Scope0, TAB_COMMON, TAB_COMMON) not in Scope and (TAB_COMMON, Scope1, TAB_COMMON) not in Scope:
|
||||
Scope0, Scope1, Scope2 = ActiveScope[0], ActiveScope[1], ActiveScope[2]
|
||||
if(Scope0, Scope1, Scope2) not in Scope and (Scope0, TAB_COMMON, TAB_COMMON) not in Scope and (TAB_COMMON, Scope1, TAB_COMMON) not in Scope:
|
||||
break
|
||||
else:
|
||||
ComSpeMacroDict.update(self._SectionsMacroDict[(SectionType, Scope)])
|
||||
|
@ -636,7 +636,7 @@ class InfParser(MetaFileParser):
|
|||
# Model, Value1, Value2, Value3, Arch, Platform, BelongsToItem=-1,
|
||||
# LineBegin=-1, ColumnBegin=-1, LineEnd=-1, ColumnEnd=-1, Enabled=-1
|
||||
#
|
||||
for Arch, Platform,_ in self._Scope:
|
||||
for Arch, Platform, _ in self._Scope:
|
||||
LastItem = self._Store(self._SectionType,
|
||||
self._ValueList[0],
|
||||
self._ValueList[1],
|
||||
|
@ -947,7 +947,7 @@ class DscParser(MetaFileParser):
|
|||
self._DirectiveParser()
|
||||
continue
|
||||
if Line[0] == TAB_OPTION_START and not self._InSubsection:
|
||||
EdkLogger.error("Parser", FILE_READ_FAILURE, "Missing the '{' before %s in Line %s" % (Line, Index+1),ExtraData=self.MetaFile)
|
||||
EdkLogger.error("Parser", FILE_READ_FAILURE, "Missing the '{' before %s in Line %s" % (Line, Index+1), ExtraData=self.MetaFile)
|
||||
|
||||
if self._InSubsection:
|
||||
SectionType = self._SubsectionType
|
||||
|
@ -1104,7 +1104,7 @@ class DscParser(MetaFileParser):
|
|||
@ParseMacro
|
||||
def _SkuIdParser(self):
|
||||
TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT)
|
||||
if len(TokenList) not in (2,3):
|
||||
if len(TokenList) not in (2, 3):
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Number>|<UiName>[|<UiName>]'",
|
||||
ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
self._ValueList[0:len(TokenList)] = TokenList
|
||||
|
@ -1164,7 +1164,7 @@ class DscParser(MetaFileParser):
|
|||
|
||||
# Validate the datum type of Dynamic Defaul PCD and DynamicEx Default PCD
|
||||
ValueList = GetSplitValueList(self._ValueList[2])
|
||||
if len(ValueList) > 1 and ValueList[1] in [TAB_UINT8 , TAB_UINT16, TAB_UINT32 , TAB_UINT64] \
|
||||
if len(ValueList) > 1 and ValueList[1] in [TAB_UINT8, TAB_UINT16, TAB_UINT32, TAB_UINT64] \
|
||||
and self._ItemType in [MODEL_PCD_DYNAMIC_DEFAULT, MODEL_PCD_DYNAMIC_EX_DEFAULT]:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "The datum type '%s' of PCD is wrong" % ValueList[1],
|
||||
ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
|
@ -1172,7 +1172,7 @@ class DscParser(MetaFileParser):
|
|||
# Validate the VariableName of DynamicHii and DynamicExHii for PCD Entry must not be an empty string
|
||||
if self._ItemType in [MODEL_PCD_DYNAMIC_HII, MODEL_PCD_DYNAMIC_EX_HII]:
|
||||
DscPcdValueList = GetSplitValueList(TokenList[1], TAB_VALUE_SPLIT, 1)
|
||||
if len(DscPcdValueList[0].replace('L','').replace('"','').strip()) == 0:
|
||||
if len(DscPcdValueList[0].replace('L', '').replace('"', '').strip()) == 0:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "The VariableName field in the HII format PCD entry must not be an empty string",
|
||||
ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
|
||||
|
@ -1309,7 +1309,7 @@ class DscParser(MetaFileParser):
|
|||
self._ContentIndex = 0
|
||||
self._InSubsection = False
|
||||
while self._ContentIndex < len(self._Content) :
|
||||
Id, self._ItemType, V1, V2, V3, S1, S2, S3,Owner, self._From, \
|
||||
Id, self._ItemType, V1, V2, V3, S1, S2, S3, Owner, self._From, \
|
||||
LineStart, ColStart, LineEnd, ColEnd, Enabled = self._Content[self._ContentIndex]
|
||||
|
||||
if self._From < 0:
|
||||
|
@ -1327,8 +1327,8 @@ class DscParser(MetaFileParser):
|
|||
break
|
||||
Record = self._Content[self._ContentIndex]
|
||||
if LineStart == Record[10] and LineEnd == Record[12]:
|
||||
if [Record[5], Record[6],Record[7]] not in self._Scope:
|
||||
self._Scope.append([Record[5], Record[6],Record[7]])
|
||||
if [Record[5], Record[6], Record[7]] not in self._Scope:
|
||||
self._Scope.append([Record[5], Record[6], Record[7]])
|
||||
self._ContentIndex += 1
|
||||
else:
|
||||
break
|
||||
|
@ -1421,7 +1421,7 @@ class DscParser(MetaFileParser):
|
|||
MODEL_PCD_DYNAMIC_VPD, MODEL_PCD_DYNAMIC_EX_DEFAULT, MODEL_PCD_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD):
|
||||
Records = self._RawTable.Query(PcdType, BelongsToItem= -1.0)
|
||||
for TokenSpaceGuid, PcdName, Value, Dummy2, Dummy3, Dummy4,ID, Line in Records:
|
||||
for TokenSpaceGuid, PcdName, Value, Dummy2, Dummy3, Dummy4, ID, Line in Records:
|
||||
Name = TokenSpaceGuid + '.' + PcdName
|
||||
if Name not in GlobalData.gPlatformOtherPcds:
|
||||
PcdLine = Line
|
||||
|
@ -1800,7 +1800,7 @@ class DecParser(MetaFileParser):
|
|||
if self._DefinesCount > 1:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, 'Multiple [Defines] section is exist.', self.MetaFile )
|
||||
if self._DefinesCount == 0:
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, 'No [Defines] section exist.',self.MetaFile)
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, 'No [Defines] section exist.', self.MetaFile)
|
||||
self._Done()
|
||||
|
||||
|
||||
|
@ -1944,7 +1944,7 @@ class DecParser(MetaFileParser):
|
|||
self._CurrentStructurePcdName = ""
|
||||
else:
|
||||
if self._CurrentStructurePcdName != TAB_SPLIT.join(PcdNames[:2]):
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "Pcd Name does not match: %s and %s " % (self._CurrentStructurePcdName , TAB_SPLIT.join(PcdNames[:2])),
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "Pcd Name does not match: %s and %s " % (self._CurrentStructurePcdName, TAB_SPLIT.join(PcdNames[:2])),
|
||||
File=self.MetaFile, Line=self._LineIndex + 1)
|
||||
self._ValueList[1] = TAB_SPLIT.join(PcdNames[2:])
|
||||
self._ValueList[2] = PcdTockens[1]
|
||||
|
|
|
@ -258,8 +258,8 @@ class PackageTable(MetaFileTable):
|
|||
ValidType = "@ValidList"
|
||||
if oricomment.startswith("@Expression"):
|
||||
ValidType = "@Expression"
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "The syntax for %s of PCD %s.%s is incorrect" % (ValidType,TokenSpaceGuid, PcdCName),
|
||||
ExtraData=oricomment,File=self.MetaFile, Line=LineNum)
|
||||
EdkLogger.error('Parser', FORMAT_INVALID, "The syntax for %s of PCD %s.%s is incorrect" % (ValidType, TokenSpaceGuid, PcdCName),
|
||||
ExtraData=oricomment, File=self.MetaFile, Line=LineNum)
|
||||
return set(), set(), set()
|
||||
return set(validateranges), set(validlists), set(expressions)
|
||||
## Python class representation of table storing platform data
|
||||
|
@ -308,7 +308,7 @@ class PlatformTable(MetaFileTable):
|
|||
#
|
||||
def Insert(self, Model, Value1, Value2, Value3, Scope1=TAB_ARCH_COMMON, Scope2=TAB_COMMON, Scope3=TAB_DEFAULT_STORES_DEFAULT,BelongsToItem=-1,
|
||||
FromItem=-1, StartLine=-1, StartColumn=-1, EndLine=-1, EndColumn=-1, Enabled=1):
|
||||
(Value1, Value2, Value3, Scope1, Scope2,Scope3) = ConvertToSqlString((Value1, Value2, Value3, Scope1, Scope2,Scope3))
|
||||
(Value1, Value2, Value3, Scope1, Scope2, Scope3) = ConvertToSqlString((Value1, Value2, Value3, Scope1, Scope2, Scope3))
|
||||
return Table.Insert(
|
||||
self,
|
||||
Model,
|
||||
|
|
|
@ -53,7 +53,7 @@ def GetPackageList(Platform, BuildDatabase, Arch, Target, Toolchain):
|
|||
# @retval: A dictionary contains instances of PcdClassObject with key (PcdCName, TokenSpaceGuid)
|
||||
# @retval: A dictionary contains real GUIDs of TokenSpaceGuid
|
||||
#
|
||||
def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain,additionalPkgs):
|
||||
def GetDeclaredPcd(Platform, BuildDatabase, Arch, Target, Toolchain, additionalPkgs):
|
||||
PkgList = GetPackageList(Platform, BuildDatabase, Arch, Target, Toolchain)
|
||||
PkgList = set(PkgList)
|
||||
PkgList |= additionalPkgs
|
||||
|
|
|
@ -1190,7 +1190,7 @@ class PcdReport(object):
|
|||
FileWrite(File, Array)
|
||||
else:
|
||||
if Pcd.DatumType in TAB_PCD_CLEAN_NUMERIC_TYPES:
|
||||
if Value.startswith(('0x','0X')):
|
||||
if Value.startswith(('0x', '0X')):
|
||||
Value = '{} ({:d})'.format(Value, int(Value, 0))
|
||||
else:
|
||||
Value = "0x{:X} ({})".format(int(Value, 0), Value)
|
||||
|
@ -1300,9 +1300,9 @@ class PcdReport(object):
|
|||
else:
|
||||
if IsByteArray:
|
||||
if self.SkuSingle:
|
||||
FileWrite(File, ' %-*s : %6s %10s = %s' % (self.MaxLen, ' ' , TypeName, '(' + Pcd.DatumType + ')', "{"))
|
||||
FileWrite(File, ' %-*s : %6s %10s = %s' % (self.MaxLen, ' ', TypeName, '(' + Pcd.DatumType + ')', "{"))
|
||||
else:
|
||||
FileWrite(File, ' %-*s : %6s %10s %10s = %s' % (self.MaxLen, ' ' , TypeName, '(' + Pcd.DatumType + ')', '(' + SkuIdName + ')', "{"))
|
||||
FileWrite(File, ' %-*s : %6s %10s %10s = %s' % (self.MaxLen, ' ', TypeName, '(' + Pcd.DatumType + ')', '(' + SkuIdName + ')', "{"))
|
||||
for Array in ArrayList:
|
||||
FileWrite(File, Array)
|
||||
else:
|
||||
|
@ -1312,9 +1312,9 @@ class PcdReport(object):
|
|||
else:
|
||||
Value = "0x{:X} ({})".format(int(Value, 0), Value)
|
||||
if self.SkuSingle:
|
||||
FileWrite(File, ' %-*s : %6s %10s = %s' % (self.MaxLen, ' ' , TypeName, '(' + Pcd.DatumType + ')', Value))
|
||||
FileWrite(File, ' %-*s : %6s %10s = %s' % (self.MaxLen, ' ', TypeName, '(' + Pcd.DatumType + ')', Value))
|
||||
else:
|
||||
FileWrite(File, ' %-*s : %6s %10s %10s = %s' % (self.MaxLen, ' ' , TypeName, '(' + Pcd.DatumType + ')', '(' + SkuIdName + ')', Value))
|
||||
FileWrite(File, ' %-*s : %6s %10s %10s = %s' % (self.MaxLen, ' ', TypeName, '(' + Pcd.DatumType + ')', '(' + SkuIdName + ')', Value))
|
||||
if TypeName in ('DYNVPD', 'DEXVPD'):
|
||||
FileWrite(File, '%*s' % (self.MaxLen + 4, SkuInfo.VpdOffset))
|
||||
if IsStructure:
|
||||
|
|
|
@ -54,7 +54,7 @@ import Common.EdkLogger
|
|||
import Common.GlobalData as GlobalData
|
||||
from GenFds.GenFds import GenFds
|
||||
|
||||
from collections import OrderedDict,defaultdict
|
||||
from collections import OrderedDict, defaultdict
|
||||
|
||||
# Version and Copyright
|
||||
VersionNumber = "0.60" + ' ' + gBUILD_VERSION
|
||||
|
@ -526,7 +526,7 @@ class BuildTask:
|
|||
BuildTask._Thread.acquire(True)
|
||||
|
||||
# start a new build thread
|
||||
Bo,Bt = BuildTask._ReadyQueue.popitem()
|
||||
Bo, Bt = BuildTask._ReadyQueue.popitem()
|
||||
|
||||
# move into running queue
|
||||
BuildTask._RunningQueueLock.acquire()
|
||||
|
@ -840,7 +840,7 @@ class Build():
|
|||
self.HashSkipModules = []
|
||||
self.Db_Flag = False
|
||||
self.LaunchPrebuildFlag = False
|
||||
self.PlatformBuildPath = os.path.join(GlobalData.gConfDirectory,'.cache', '.PlatformBuild')
|
||||
self.PlatformBuildPath = os.path.join(GlobalData.gConfDirectory, '.cache', '.PlatformBuild')
|
||||
if BuildOptions.CommandLength:
|
||||
GlobalData.gCommandMaxLength = BuildOptions.CommandLength
|
||||
|
||||
|
@ -1133,7 +1133,7 @@ class Build():
|
|||
# and preserve them for the rest of the main build step, because the child process environment will
|
||||
# evaporate as soon as it exits, we cannot get it in build step.
|
||||
#
|
||||
PrebuildEnvFile = os.path.join(GlobalData.gConfDirectory,'.cache','.PrebuildEnv')
|
||||
PrebuildEnvFile = os.path.join(GlobalData.gConfDirectory, '.cache', '.PrebuildEnv')
|
||||
if os.path.isfile(PrebuildEnvFile):
|
||||
os.remove(PrebuildEnvFile)
|
||||
if os.path.isfile(self.PlatformBuildPath):
|
||||
|
@ -1173,7 +1173,7 @@ class Build():
|
|||
f = open(PrebuildEnvFile)
|
||||
envs = f.readlines()
|
||||
f.close()
|
||||
envs = itertools.imap(lambda l: l.split('=',1), envs)
|
||||
envs = itertools.imap(lambda l: l.split('=', 1), envs)
|
||||
envs = itertools.ifilter(lambda l: len(l) == 2, envs)
|
||||
envs = itertools.imap(lambda l: [i.strip() for i in l], envs)
|
||||
os.environ.update(dict(envs))
|
||||
|
@ -2358,7 +2358,7 @@ def MyOptionParser():
|
|||
Parser.add_option("-D", "--define", action="append", type="string", dest="Macros", help="Macro: \"Name [= Value]\".")
|
||||
|
||||
Parser.add_option("-y", "--report-file", action="store", dest="ReportFile", help="Create/overwrite the report to the specified filename.")
|
||||
Parser.add_option("-Y", "--report-type", action="append", type="choice", choices=['PCD','LIBRARY','FLASH','DEPEX','BUILD_FLAGS','FIXED_ADDRESS','HASH','EXECUTION_ORDER'], dest="ReportType", default=[],
|
||||
Parser.add_option("-Y", "--report-type", action="append", type="choice", choices=['PCD', 'LIBRARY', 'FLASH', 'DEPEX', 'BUILD_FLAGS', 'FIXED_ADDRESS', 'HASH', 'EXECUTION_ORDER'], dest="ReportType", default=[],
|
||||
help="Flags that control the type of build report to generate. Must be one of: [PCD, LIBRARY, FLASH, DEPEX, BUILD_FLAGS, FIXED_ADDRESS, HASH, EXECUTION_ORDER]. "\
|
||||
"To specify more than one flag, repeat this option on the command line and the default flag set is [PCD, LIBRARY, FLASH, DEPEX, HASH, BUILD_FLAGS, FIXED_ADDRESS]")
|
||||
Parser.add_option("-F", "--flag", action="store", type="string", dest="Flag",
|
||||
|
|
|
@ -160,7 +160,7 @@ class BaseToolsTest(unittest.TestCase):
|
|||
if minlen is None: minlen = 1024
|
||||
if maxlen is None: maxlen = minlen
|
||||
return ''.join(
|
||||
[chr(random.randint(0,255))
|
||||
[chr(random.randint(0, 255))
|
||||
for x in xrange(random.randint(minlen, maxlen))
|
||||
])
|
||||
|
||||
|
|
|
@ -186,7 +186,7 @@ class Config:
|
|||
return path
|
||||
|
||||
def MakeDirs(self):
|
||||
for path in (self.src_dir, self.build_dir,self.prefix, self.symlinks):
|
||||
for path in (self.src_dir, self.build_dir, self.prefix, self.symlinks):
|
||||
if not os.path.exists(path):
|
||||
os.makedirs(path)
|
||||
|
||||
|
|
Loading…
Reference in New Issue