def GenAsBuiltPacthPcdSections(ModuleObject): PatchPcdDict = {} for BinaryFile in ModuleObject.GetBinaryFileList(): if not BinaryFile.AsBuiltList: continue for PatchPcd in BinaryFile.AsBuiltList[0].PatchPcdList: TokenSpaceName = '' PcdCName = PatchPcd.CName PcdValue = PatchPcd.DefaultValue PcdOffset = PatchPcd.Offset TokenSpaceGuidValue = PatchPcd.TokenSpaceGuidValue Token = PatchPcd.Token HelpTextList = PatchPcd.HelpTextList HelpString = '' for HelpStringItem in HelpTextList: for HelpLine in GetSplitValueList(HelpStringItem.String, '\n'): HelpString += '## ' + HelpLine + '\n' TokenSpaceName, PcdCName = GenMetaFileMisc.ObtainPcdName( ModuleObject.PackageDependencyList, TokenSpaceGuidValue, Token) if TokenSpaceName == '' or PcdCName == '': Logger.Error("Upt", ToolError.RESOURCE_NOT_AVAILABLE, ST.ERR_INSTALL_FILE_DEC_FILE_ERROR % (TokenSpaceGuidValue, Token), File=ModuleObject.GetFullPath()) Statement = HelpString + TokenSpaceName + '.' + PcdCName + ' | ' + PcdValue + ' | ' + \ PcdOffset + DT.TAB_SPACE_SPLIT # # Use binary file's Arch to be Pcd's Arch # ArchList = [] FileNameObjList = BinaryFile.GetFileNameList() if FileNameObjList: ArchList = FileNameObjList[0].GetSupArchList() if len(ArchList) == 0: if PatchPcdDict.has_key(DT.TAB_ARCH_COMMON): if Statement not in PatchPcdDict[DT.TAB_ARCH_COMMON]: PatchPcdDict[DT.TAB_ARCH_COMMON].append(Statement) else: PatchPcdDict[DT.TAB_ARCH_COMMON] = [Statement] else: for Arch in ArchList: if PatchPcdDict.has_key(Arch): if Statement not in PatchPcdDict[Arch]: PatchPcdDict[Arch].append(Statement) else: PatchPcdDict[Arch] = [Statement] return GenSection(DT.TAB_INF_PATCH_PCD, PatchPcdDict)
def GenAsBuiltPcdExSections(ModuleObject): PcdExDict = {} for BinaryFile in ModuleObject.GetBinaryFileList(): if not BinaryFile.AsBuiltList: continue for PcdExItem in BinaryFile.AsBuiltList[0].PcdExValueList: TokenSpaceName = '' PcdCName = PcdExItem.CName TokenSpaceGuidValue = PcdExItem.TokenSpaceGuidValue Token = PcdExItem.Token HelpTextList = PcdExItem.HelpTextList HelpString = '' for HelpStringItem in HelpTextList: for HelpLine in GetSplitValueList(HelpStringItem.String, '\n'): HelpString += '## ' + HelpLine + '\n' TokenSpaceName, PcdCName = GenMetaFileMisc.ObtainPcdName( ModuleObject.PackageDependencyList, TokenSpaceGuidValue, Token) if TokenSpaceName == '' or PcdCName == '': Logger.Error("Upt", ToolError.RESOURCE_NOT_AVAILABLE, ST.ERR_INSTALL_FILE_DEC_FILE_ERROR % (TokenSpaceGuidValue, Token), File=ModuleObject.GetFullPath()) Statement = HelpString + TokenSpaceName + DT.TAB_SPLIT + PcdCName + DT.TAB_SPACE_SPLIT # # Use binary file's Arch to be Pcd's Arch # ArchList = [] FileNameObjList = BinaryFile.GetFileNameList() if FileNameObjList: ArchList = FileNameObjList[0].GetSupArchList() if len(ArchList) == 0: if 'COMMON' in PcdExDict: PcdExDict['COMMON'].append(Statement) else: PcdExDict['COMMON'] = [Statement] else: for Arch in ArchList: if Arch in PcdExDict: if Statement not in PcdExDict[Arch]: PcdExDict[Arch].append(Statement) else: PcdExDict[Arch] = [Statement] return GenSection('PcdEx', PcdExDict)
def GenAsBuiltPcdExSections(ModuleObject): PcdExDict = {} for BinaryFile in ModuleObject.GetBinaryFileList(): if not BinaryFile.AsBuiltList: continue for PcdExItem in BinaryFile.AsBuiltList[0].PcdExValueList: TokenSpaceName = '' PcdCName = PcdExItem.CName PcdValue = PcdExItem.DefaultValue TokenSpaceGuidValue = PcdExItem.TokenSpaceGuidValue Token = PcdExItem.Token HelpTextList = PcdExItem.HelpTextList HelpString = '' for HelpStringItem in HelpTextList: for HelpLine in GetSplitValueList(HelpStringItem.String, '\n'): HelpString += '# ' + HelpLine + '\n' TokenSpaceName, PcdCName = GenMetaFileMisc.ObtainPcdName( ModuleObject.PackageDependencyList, TokenSpaceGuidValue, Token) if TokenSpaceName == '' or PcdCName == '': Logger.Error("Upt", ToolError.RESOURCE_NOT_AVAILABLE, ST.ERR_INSTALL_FILE_DEC_FILE_ERROR % (TokenSpaceGuidValue, Token), File=ModuleObject.GetFullPath()) Statement = HelpString[: -3] + TokenSpaceName + '.' + PcdCName + ' | ' + PcdValue if len(BinaryFile.SupArchList) == 0: if PcdExDict.has_key('COMMON'): PcdExDict['COMMON'].append(Statement) else: PcdExDict['COMMON'] = [Statement] else: for Arch in BinaryFile.SupArchList: if PcdExDict.has_key(Arch): PcdExDict[Arch].append(Statement) else: PcdExDict[Arch] = [Statement] return GenSection('PcdEx', PcdExDict)