##\r
# Import Modules\r
#\r
+from __future__ import absolute_import\r
from . import Rule\r
import Common.LongFilePathOs as os\r
from io import BytesIO\r
from struct import *\r
from .GenFdsGlobalVariable import GenFdsGlobalVariable\r
-from . import Ffs\r
+from .Ffs import SectionSuffix,FdfFvFileTypeToFileType\r
import subprocess\r
import sys\r
from . import Section\r
\r
SecNum = '%d' %Index\r
GenSecOutputFile= self.__ExtendMacro__(Rule.NameGuid) + \\r
- Ffs.Ffs.SectionSuffix[SectionType] + SUP_MODULE_SEC + SecNum\r
+ SectionSuffix[SectionType] + SUP_MODULE_SEC + SecNum\r
Index = Index + 1\r
OutputFile = os.path.join(self.OutputPath, GenSecOutputFile)\r
File = GenFdsGlobalVariable.MacroExtend(File, Dict, self.CurrentArch)\r
else:\r
SecNum = '%d' %Index\r
GenSecOutputFile= self.__ExtendMacro__(Rule.NameGuid) + \\r
- Ffs.Ffs.SectionSuffix[SectionType] + SUP_MODULE_SEC + SecNum\r
+ SectionSuffix[SectionType] + SUP_MODULE_SEC + SecNum\r
OutputFile = os.path.join(self.OutputPath, GenSecOutputFile)\r
GenSecInputFile = GenFdsGlobalVariable.MacroExtend(GenSecInputFile, Dict, self.CurrentArch)\r
\r
self.ModuleGuid = RegistryGuidStr\r
\r
GenFdsGlobalVariable.GenerateFfs(FfsOutput, InputSection,\r
- Ffs.Ffs.FdfFvFileTypeToFileType[Rule.FvFileType],\r
+ FdfFvFileTypeToFileType[Rule.FvFileType],\r
self.ModuleGuid, Fixed=Rule.Fixed,\r
CheckSum=Rule.CheckSum, Align=Rule.Alignment,\r
SectionAlign=SectionAlignments,\r
# @retval string File name of the generated section file\r
#\r
def __GenComplexFileSection__(self, Rule, FvChildAddr, FvParentAddr, IsMakefile = False):\r
- if self.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM):\r
+ if self.ModuleType in (SUP_MODULE_SEC, SUP_MODULE_PEI_CORE, SUP_MODULE_PEIM, SUP_MODULE_MM_CORE_STANDALONE):\r
if Rule.KeepReloc is not None:\r
self.KeepRelocFromRule = Rule.KeepReloc\r
SectFiles = []\r
\r
FfsOutput = os.path.join( self.OutputPath, self.ModuleGuid + '.ffs')\r
GenFdsGlobalVariable.GenerateFfs(FfsOutput, InputFile,\r
- Ffs.Ffs.FdfFvFileTypeToFileType[Rule.FvFileType],\r
+ FdfFvFileTypeToFileType[Rule.FvFileType],\r
self.ModuleGuid, Fixed=Rule.Fixed,\r
CheckSum=Rule.CheckSum, Align=Rule.Alignment,\r
SectionAlign=Alignments,\r
def __GetBuildOutputMapFileVfrUniInfo(self, VfrUniBaseName):\r
MapFileName = os.path.join(self.EfiOutputPath, self.BaseName + ".map")\r
EfiFileName = os.path.join(self.EfiOutputPath, self.BaseName + ".efi")\r
- return GetVariableOffset(MapFileName, EfiFileName, list(VfrUniBaseName.values()))\r
+ return GetVariableOffset(MapFileName, EfiFileName, VfrUniBaseName.values())\r
\r
## __GenUniVfrOffsetFile() method\r
#\r
def __GenUniVfrOffsetFile(VfrUniOffsetList, UniVfrOffsetFileName):\r
\r
# Use a instance of StringIO to cache data\r
- fStringIO = BytesIO()\r
+ fStringIO = BytesIO('')\r
\r
for Item in VfrUniOffsetList:\r
if (Item[0].find("Strings") != -1):\r
# { 0x8913c5e0, 0x33f6, 0x4d86, { 0x9b, 0xf1, 0x43, 0xef, 0x89, 0xfc, 0x6, 0x66 } }\r
#\r
UniGuid = [0xe0, 0xc5, 0x13, 0x89, 0xf6, 0x33, 0x86, 0x4d, 0x9b, 0xf1, 0x43, 0xef, 0x89, 0xfc, 0x6, 0x66]\r
- fStringIO.write(bytes(UniGuid))\r
+ UniGuid = [chr(ItemGuid) for ItemGuid in UniGuid]\r
+ fStringIO.write(''.join(UniGuid))\r
UniValue = pack ('Q', int (Item[1], 16))\r
fStringIO.write (UniValue)\r
else:\r
# { 0xd0bc7cb4, 0x6a47, 0x495f, { 0xaa, 0x11, 0x71, 0x7, 0x46, 0xda, 0x6, 0xa2 } };\r
#\r
VfrGuid = [0xb4, 0x7c, 0xbc, 0xd0, 0x47, 0x6a, 0x5f, 0x49, 0xaa, 0x11, 0x71, 0x7, 0x46, 0xda, 0x6, 0xa2]\r
- fStringIO.write(bytes(VfrGuid))\r
+ VfrGuid = [chr(ItemGuid) for ItemGuid in VfrGuid]\r
+ fStringIO.write(''.join(VfrGuid))\r
type (Item[1])\r
VfrValue = pack ('Q', int (Item[1], 16))\r
fStringIO.write (VfrValue)\r