- #\r
- # when no call or first call failed, ReturnValue are not 1.\r
- # Call the guided tool with CmdOption\r
- #\r
- if ReturnValue[0] != 0:\r
- FirstCall = False\r
- ReturnValue[0] = 0\r
- GenFdsGlobalVariable.GuidTool(TempFile, [DummyFile], ExternalTool, CmdOption)\r
- #\r
- # There is external tool which does not follow standard rule which return nonzero if tool fails\r
- # The output file has to be checked\r
- #\r
- if not os.path.exists(TempFile):\r
- EdkLogger.error("GenFds", COMMAND_FAILURE, 'Fail to call %s, no output file was generated' % ExternalTool)\r
-\r
- FileHandleIn = open(DummyFile, 'rb')\r
- FileHandleIn.seek(0, 2)\r
- InputFileSize = FileHandleIn.tell()\r
-\r
- FileHandleOut = open(TempFile, 'rb')\r
- FileHandleOut.seek(0, 2)\r
- TempFileSize = FileHandleOut.tell()\r
-\r
- Attribute = []\r
- HeaderLength = None\r
- if self.ExtraHeaderSize != -1:\r
- HeaderLength = str(self.ExtraHeaderSize)\r
-\r
- if self.ProcessRequired == "NONE" and HeaderLength == None:\r
- if TempFileSize > InputFileSize:\r
- FileHandleIn.seek(0)\r
- BufferIn = FileHandleIn.read()\r
- FileHandleOut.seek(0)\r
- BufferOut = FileHandleOut.read()\r
- if BufferIn == BufferOut[TempFileSize - InputFileSize:]:\r
- HeaderLength = str(TempFileSize - InputFileSize)\r
- #auto sec guided attribute with process required\r
- if HeaderLength == None:\r
- Attribute.append('PROCESSING_REQUIRED')\r
-\r
- FileHandleIn.close()\r
- FileHandleOut.close()\r
-\r
- if FirstCall and 'PROCESSING_REQUIRED' in Attribute:\r
- # Guided data by -z option on first call is the process required data. Call the guided tool with the real option.\r
- GenFdsGlobalVariable.GuidTool(TempFile, [DummyFile], ExternalTool, CmdOption)\r
+ #\r
+ # when no call or first call failed, ReturnValue are not 1.\r
+ # Call the guided tool with CmdOption\r
+ #\r
+ if ReturnValue[0] != 0:\r
+ FirstCall = False\r
+ ReturnValue[0] = 0\r
+ GenFdsGlobalVariable.GuidTool(TempFile, [DummyFile], ExternalTool, CmdOption)\r
+ #\r
+ # There is external tool which does not follow standard rule which return nonzero if tool fails\r
+ # The output file has to be checked\r
+ #\r
+\r
+ if not os.path.exists(TempFile) :\r
+ EdkLogger.error("GenFds", COMMAND_FAILURE, 'Fail to call %s, no output file was generated' % ExternalTool)\r
+\r
+ FileHandleIn = open(DummyFile, 'rb')\r
+ FileHandleIn.seek(0, 2)\r
+ InputFileSize = FileHandleIn.tell()\r
+\r
+ FileHandleOut = open(TempFile, 'rb')\r
+ FileHandleOut.seek(0, 2)\r
+ TempFileSize = FileHandleOut.tell()\r
+\r
+ Attribute = []\r
+ HeaderLength = None\r
+ if self.ExtraHeaderSize != -1:\r
+ HeaderLength = str(self.ExtraHeaderSize)\r
+\r
+ if self.ProcessRequired == "NONE" and HeaderLength == None:\r
+ if TempFileSize > InputFileSize:\r
+ FileHandleIn.seek(0)\r
+ BufferIn = FileHandleIn.read()\r
+ FileHandleOut.seek(0)\r
+ BufferOut = FileHandleOut.read()\r
+ if BufferIn == BufferOut[TempFileSize - InputFileSize:]:\r
+ HeaderLength = str(TempFileSize - InputFileSize)\r
+ #auto sec guided attribute with process required\r
+ if HeaderLength == None:\r
+ Attribute.append('PROCESSING_REQUIRED')\r
+\r
+ FileHandleIn.close()\r
+ FileHandleOut.close()\r
+\r
+ if FirstCall and 'PROCESSING_REQUIRED' in Attribute:\r
+ # Guided data by -z option on first call is the process required data. Call the guided tool with the real option.\r
+ GenFdsGlobalVariable.GuidTool(TempFile, [DummyFile], ExternalTool, CmdOption)\r
+\r
+ #\r
+ # Call Gensection Add Section Header\r
+ #\r
+ if self.ProcessRequired in ("TRUE", "1"):\r
+ if 'PROCESSING_REQUIRED' not in Attribute:\r
+ Attribute.append('PROCESSING_REQUIRED')\r
+\r
+ if self.AuthStatusValid in ("TRUE", "1"):\r
+ Attribute.append('AUTH_STATUS_VALID')\r
+ GenFdsGlobalVariable.GenerateSection(OutputFile, [TempFile], Section.Section.SectionType['GUIDED'],\r
+ Guid=self.NameGuid, GuidAttr=Attribute, GuidHdrLen=HeaderLength)\r
+\r
+ else:\r
+ #add input file for GenSec get PROCESSING_REQUIRED\r
+ GenFdsGlobalVariable.GuidTool(TempFile, [DummyFile], ExternalTool, CmdOption, IsMakefile=IsMakefile)\r
+ Attribute = []\r
+ HeaderLength = None\r
+ if self.ExtraHeaderSize != -1:\r
+ HeaderLength = str(self.ExtraHeaderSize)\r
+ if self.AuthStatusValid in ("TRUE", "1"):\r
+ Attribute.append('AUTH_STATUS_VALID')\r
+ if self.ProcessRequired == "NONE" and HeaderLength == None:\r
+ GenFdsGlobalVariable.GenerateSection(OutputFile, [TempFile], Section.Section.SectionType['GUIDED'],\r
+ Guid=self.NameGuid, GuidAttr=Attribute,\r
+ GuidHdrLen=HeaderLength, DummyFile=DummyFile, IsMakefile=IsMakefile)\r
+ else:\r
+ if self.ProcessRequired in ("TRUE", "1"):\r
+ if 'PROCESSING_REQUIRED' not in Attribute:\r
+ Attribute.append('PROCESSING_REQUIRED')\r
+ GenFdsGlobalVariable.GenerateSection(OutputFile, [TempFile], Section.Section.SectionType['GUIDED'],\r
+ Guid=self.NameGuid, GuidAttr=Attribute,\r
+ GuidHdrLen=HeaderLength, IsMakefile=IsMakefile)\r