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:
@@ -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
|
||||
|
Reference in New Issue
Block a user