mirror of https://github.com/acidanthera/audk.git
(Customized Compression)If setting the EncapsulationType="Compress", Tool will transfer it to sectiontype="EFI_SECTION_COMPRESS" in <gensection>element of <genffsFile> task.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1529 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d965d1f63f
commit
5c4eec41d7
|
@ -17,12 +17,6 @@
|
||||||
package org.tianocore.framework.tasks;
|
package org.tianocore.framework.tasks;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import org.apache.tools.ant.Task;
|
import org.apache.tools.ant.Task;
|
||||||
import org.apache.tools.ant.Project;
|
import org.apache.tools.ant.Project;
|
||||||
import org.apache.tools.ant.BuildException;
|
import org.apache.tools.ant.BuildException;
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
**/
|
**/
|
||||||
package org.tianocore.framework.tasks;
|
package org.tianocore.framework.tasks;
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
|
|
||||||
import org.apache.tools.ant.BuildException;
|
import org.apache.tools.ant.BuildException;
|
||||||
import org.apache.tools.ant.Project;
|
import org.apache.tools.ant.Project;
|
||||||
import org.apache.tools.ant.Task;
|
import org.apache.tools.ant.Task;
|
||||||
|
|
|
@ -23,9 +23,6 @@ import org.apache.tools.ant.taskdefs.LogStreamHandler;
|
||||||
import org.apache.tools.ant.types.Commandline;
|
import org.apache.tools.ant.types.Commandline;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.lang.ProcessBuilder;
|
|
||||||
import java.util.LinkedList;
|
|
||||||
|
|
||||||
import org.tianocore.common.logger.EdkLog;
|
import org.tianocore.common.logger.EdkLog;
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,12 @@
|
||||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|
||||||
package org.tianocore.framework.tasks;
|
package org.tianocore.framework.tasks;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.File;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -31,40 +30,51 @@ import org.apache.tools.ant.taskdefs.LogStreamHandler;
|
||||||
import org.apache.tools.ant.types.Commandline;
|
import org.apache.tools.ant.types.Commandline;
|
||||||
import org.tianocore.common.logger.EdkLog;
|
import org.tianocore.common.logger.EdkLog;
|
||||||
|
|
||||||
public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes {
|
public class GenSectionTask extends Task implements EfiDefine, Section,
|
||||||
|
FfsTypes {
|
||||||
//
|
//
|
||||||
// inputfile name
|
// inputfile name
|
||||||
//
|
//
|
||||||
private FileArg inputFile = new FileArg();
|
private FileArg inputFile = new FileArg();
|
||||||
|
|
||||||
//
|
//
|
||||||
// outputfile name
|
// outputfile name
|
||||||
//
|
//
|
||||||
private FileArg outputFile = new FileArg();
|
private FileArg outputFile = new FileArg();
|
||||||
|
|
||||||
//
|
//
|
||||||
// section type
|
// section type
|
||||||
//
|
//
|
||||||
private ToolArg sectionType = new ToolArg();
|
private ToolArg sectionType = new ToolArg();
|
||||||
|
|
||||||
//
|
//
|
||||||
// version number
|
// version number
|
||||||
//
|
//
|
||||||
private ToolArg versionNum = new ToolArg();
|
private ToolArg versionNum = new ToolArg();
|
||||||
|
|
||||||
//
|
//
|
||||||
// interface string
|
// interface string
|
||||||
//
|
//
|
||||||
private ToolArg interfaceString = new ToolArg();
|
private ToolArg interfaceString = new ToolArg();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Section file list
|
// Section file list
|
||||||
//
|
//
|
||||||
private List<Section> sectFileList = new ArrayList<Section>();
|
private List<Section> sectFileList = new ArrayList<Section>();
|
||||||
|
|
||||||
|
//
|
||||||
|
// flag indicated the <tool> element
|
||||||
|
//
|
||||||
|
private boolean haveTool = false;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
execute
|
* execute
|
||||||
|
*
|
||||||
GenSectionTaks execute is to assemble tool command line & execute tool
|
* GenSectionTaks execute is to assemble tool command line & execute tool
|
||||||
command line.
|
* command line.
|
||||||
|
*
|
||||||
@throws BuildException
|
* @throws BuildException
|
||||||
**/
|
*/
|
||||||
public void execute() throws BuildException {
|
public void execute() throws BuildException {
|
||||||
String command;
|
String command;
|
||||||
Project project = this.getOwningTarget().getProject();
|
Project project = this.getOwningTarget().getProject();
|
||||||
|
@ -80,7 +90,8 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
//
|
//
|
||||||
// argument of tools
|
// argument of tools
|
||||||
//
|
//
|
||||||
String argument = "" + inputFile + outputFile + sectionType + versionNum + interfaceString;
|
String argument = "" + inputFile + outputFile + sectionType
|
||||||
|
+ versionNum + interfaceString;
|
||||||
//
|
//
|
||||||
// return value of gensection execution
|
// return value of gensection execution
|
||||||
//
|
//
|
||||||
|
@ -98,8 +109,10 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
runner.setAntRun(project);
|
runner.setAntRun(project);
|
||||||
runner.setCommandline(cmdline.getCommandline());
|
runner.setCommandline(cmdline.getCommandline());
|
||||||
|
|
||||||
EdkLog.log(this, inputFile.toFileList() + " => " + outputFile.toFileList());
|
EdkLog.log(this, inputFile.toFileList() + " => "
|
||||||
EdkLog.log(this, EdkLog.EDK_VERBOSE, Commandline.toString(cmdline.getCommandline()));
|
+ outputFile.toFileList());
|
||||||
|
EdkLog.log(this, EdkLog.EDK_VERBOSE, Commandline.toString(cmdline
|
||||||
|
.getCommandline()));
|
||||||
|
|
||||||
revl = runner.execute();
|
revl = runner.execute();
|
||||||
if (EFI_SUCCESS == revl) {
|
if (EFI_SUCCESS == revl) {
|
||||||
|
@ -108,7 +121,8 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
//
|
//
|
||||||
// command execution fail
|
// command execution fail
|
||||||
//
|
//
|
||||||
EdkLog.log(this, EdkLog.EDK_INFO, "ERROR = " + Integer.toHexString(revl));
|
EdkLog.log(this, EdkLog.EDK_INFO, "ERROR = "
|
||||||
|
+ Integer.toHexString(revl));
|
||||||
throw new BuildException("GenSection failed!");
|
throw new BuildException("GenSection failed!");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
@ -117,174 +131,190 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getInputFile
|
* getInputFile
|
||||||
|
*
|
||||||
This function is to get class member "inputFile".
|
* This function is to get class member "inputFile".
|
||||||
|
*
|
||||||
@return name of input file
|
* @return name of input file
|
||||||
**/
|
*/
|
||||||
public String getInputFile() {
|
public String getInputFile() {
|
||||||
return this.inputFile.getValue();
|
return this.inputFile.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setInputFile
|
* setInputFile
|
||||||
|
*
|
||||||
This function is to set class member "inputFile".
|
* This function is to set class member "inputFile".
|
||||||
|
*
|
||||||
@param inputFile name of input file
|
* @param inputFile
|
||||||
**/
|
* name of input file
|
||||||
|
*/
|
||||||
public void setInputFile(String inputFile) {
|
public void setInputFile(String inputFile) {
|
||||||
this.inputFile.setArg(" -i ", inputFile);
|
this.inputFile.setArg(" -i ", inputFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getOutputFile
|
* getOutputFile
|
||||||
|
*
|
||||||
This function is to get class member "outputFile".
|
* This function is to get class member "outputFile".
|
||||||
|
*
|
||||||
@return name of output file
|
* @return name of output file
|
||||||
**/
|
*/
|
||||||
public String getOutputFile() {
|
public String getOutputFile() {
|
||||||
return this.outputFile.getValue();
|
return this.outputFile.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setOutputfile
|
* setOutputfile
|
||||||
|
*
|
||||||
This function is to set class member "outputFile".
|
* This function is to set class member "outputFile".
|
||||||
@param outputFile name of output file
|
*
|
||||||
**/
|
* @param outputFile
|
||||||
|
* name of output file
|
||||||
|
*/
|
||||||
public void setOutputfile(String outputFile) {
|
public void setOutputfile(String outputFile) {
|
||||||
this.outputFile.setArg(" -o ", outputFile);
|
this.outputFile.setArg(" -o ", outputFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getSectionType
|
* getSectionType
|
||||||
|
*
|
||||||
This function is to get class member "sectionType".
|
* This function is to get class member "sectionType".
|
||||||
|
*
|
||||||
@return sectoin type
|
* @return sectoin type
|
||||||
**/
|
*/
|
||||||
public String getSectionType() {
|
public String getSectionType() {
|
||||||
return this.sectionType.getValue();
|
return this.sectionType.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setSectionType
|
* setSectionType
|
||||||
|
*
|
||||||
This function is to set class member "sectionType".
|
* This function is to set class member "sectionType".
|
||||||
|
*
|
||||||
@param sectionType section type
|
* @param sectionType
|
||||||
**/
|
* section type
|
||||||
|
*/
|
||||||
public void setSectionType(String sectionType) {
|
public void setSectionType(String sectionType) {
|
||||||
this.sectionType.setArg(" -s ", sectionType);
|
this.sectionType.setArg(" -s ", sectionType);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getVersionNum
|
* getVersionNum
|
||||||
|
*
|
||||||
This function is to get class member "versionNum".
|
* This function is to get class member "versionNum".
|
||||||
@return version number
|
*
|
||||||
**/
|
* @return version number
|
||||||
|
*/
|
||||||
public String getVersionNum() {
|
public String getVersionNum() {
|
||||||
return this.versionNum.getValue();
|
return this.versionNum.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setVersionNume
|
* setVersionNume
|
||||||
|
*
|
||||||
This function is to set class member "versionNum".
|
* This function is to set class member "versionNum".
|
||||||
@param versionNum version number
|
*
|
||||||
**/
|
* @param versionNum
|
||||||
|
* version number
|
||||||
|
*/
|
||||||
public void setVersionNum(String versionNum) {
|
public void setVersionNum(String versionNum) {
|
||||||
this.versionNum.setArg(" -v ", versionNum);
|
this.versionNum.setArg(" -v ", versionNum);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
getInterfaceString
|
* getInterfaceString
|
||||||
|
*
|
||||||
This function is to get class member "interfaceString".
|
* This function is to get class member "interfaceString".
|
||||||
@return interface string
|
*
|
||||||
**/
|
* @return interface string
|
||||||
|
*/
|
||||||
public String getInterfaceString() {
|
public String getInterfaceString() {
|
||||||
return this.interfaceString.getValue();
|
return this.interfaceString.getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setInterfaceString
|
* setInterfaceString
|
||||||
|
*
|
||||||
This funcion is to set class member "interfaceString".
|
* This funcion is to set class member "interfaceString".
|
||||||
@param interfaceString interface string
|
*
|
||||||
**/
|
* @param interfaceString
|
||||||
|
* interface string
|
||||||
|
*/
|
||||||
public void setInterfaceString(String interfaceString) {
|
public void setInterfaceString(String interfaceString) {
|
||||||
this.interfaceString.setArg(" -a ", "\"" + interfaceString + "\"");
|
this.interfaceString.setArg(" -a ", "\"" + interfaceString + "\"");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
addSectFile
|
* addSectFile
|
||||||
|
*
|
||||||
This function is to add sectFile to list.
|
* This function is to add sectFile to list.
|
||||||
|
*
|
||||||
@param sectFile instance of sectFile.
|
* @param sectFile
|
||||||
**/
|
* instance of sectFile.
|
||||||
public void addSectFile(SectFile sectFile){
|
*/
|
||||||
|
public void addSectFile(SectFile sectFile) {
|
||||||
this.sectFileList.add(sectFile);
|
this.sectFileList.add(sectFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
setTool
|
* setTool
|
||||||
|
*
|
||||||
This function is to set the class member "Tool";
|
* This function is to set the class member "Tool";
|
||||||
|
*
|
||||||
@param tool
|
* @param tool
|
||||||
**/
|
*/
|
||||||
public void addTool(Tool tool) {
|
public void addTool(Tool tool) {
|
||||||
this.sectFileList.add(tool);
|
this.sectFileList.add(tool);
|
||||||
|
this.haveTool = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
addGenSection
|
* addGenSection
|
||||||
|
*
|
||||||
This function is to add GenSectin element to list
|
* This function is to add GenSectin element to list
|
||||||
@param task Instance of genSection
|
*
|
||||||
**/
|
* @param task
|
||||||
public void addGenSection(GenSectionTask task){
|
* Instance of genSection
|
||||||
|
*/
|
||||||
|
public void addGenSection(GenSectionTask task) {
|
||||||
this.sectFileList.add(task);
|
this.sectFileList.add(task);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void toBuffer(DataOutputStream buffer){
|
public void toBuffer(DataOutputStream buffer) {
|
||||||
//
|
//
|
||||||
// Search SectionList find earch section and call it's
|
// Search SectionList find earch section and call it's
|
||||||
// ToBuffer function.
|
// ToBuffer function.
|
||||||
//
|
//
|
||||||
if (this.sectionType.getValue().equalsIgnoreCase("EFI_SECTION_COMPRESSION")){
|
if (this.sectionType.getValue().equalsIgnoreCase(
|
||||||
|
"EFI_SECTION_COMPRESSION")
|
||||||
|
&& !this.haveTool) {
|
||||||
Section sect;
|
Section sect;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get section file in compress node.
|
// Get section file in compress node.
|
||||||
//
|
//
|
||||||
try{
|
try {
|
||||||
ByteArrayOutputStream bo = new ByteArrayOutputStream ();
|
ByteArrayOutputStream bo = new ByteArrayOutputStream();
|
||||||
DataOutputStream Do = new DataOutputStream (bo);
|
DataOutputStream Do = new DataOutputStream(bo);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Get each section which under the compress {};
|
// Get each section which under the compress {};
|
||||||
// And add it is contains to File;
|
// And add it is contains to File;
|
||||||
//
|
//
|
||||||
Iterator SectionIter = this.sectFileList.iterator();
|
Iterator SectionIter = this.sectFileList.iterator();
|
||||||
while (SectionIter.hasNext()){
|
while (SectionIter.hasNext()) {
|
||||||
sect = (Section)SectionIter.next();
|
sect = (Section) SectionIter.next();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Call each section class's toBuffer function.
|
// Call each section class's toBuffer function.
|
||||||
//
|
//
|
||||||
try {
|
try {
|
||||||
sect.toBuffer(Do);
|
sect.toBuffer(Do);
|
||||||
}
|
} catch (BuildException e) {
|
||||||
catch (BuildException e) {
|
|
||||||
System.out.print(e.getMessage());
|
System.out.print(e.getMessage());
|
||||||
throw new BuildException ("Compress.toBuffer failed at section");
|
throw new BuildException(
|
||||||
|
"Compress.toBuffer failed at section");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -296,30 +326,26 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
byte[] fileBuffer = bo.toByteArray();
|
byte[] fileBuffer = bo.toByteArray();
|
||||||
|
|
||||||
synchronized (CompressSection.semaphore) {
|
synchronized (CompressSection.semaphore) {
|
||||||
Compress myCompress = new Compress(fileBuffer, fileBuffer.length);
|
Compress myCompress = new Compress(fileBuffer,
|
||||||
|
fileBuffer.length);
|
||||||
|
|
||||||
//
|
//
|
||||||
// Add Compress header
|
// Add Compress header
|
||||||
//
|
//
|
||||||
CompressHeader Ch = new CompressHeader();
|
CompressHeader Ch = new CompressHeader();
|
||||||
Ch.SectionHeader.Size[0] = (byte)((myCompress.outputBuffer.length +
|
Ch.SectionHeader.Size[0] = (byte) ((myCompress.outputBuffer.length + Ch
|
||||||
Ch.GetSize()) &
|
.GetSize()) & 0xff);
|
||||||
0xff
|
Ch.SectionHeader.Size[1] = (byte) (((myCompress.outputBuffer.length + Ch
|
||||||
);
|
.GetSize()) & 0xff00) >> 8);
|
||||||
Ch.SectionHeader.Size[1] = (byte)(((myCompress.outputBuffer.length +
|
Ch.SectionHeader.Size[2] = (byte) (((myCompress.outputBuffer.length + Ch
|
||||||
Ch.GetSize())&
|
.GetSize()) & 0xff0000) >> 16);
|
||||||
0xff00) >> 8
|
|
||||||
);
|
|
||||||
Ch.SectionHeader.Size[2] = (byte)(((myCompress.outputBuffer.length +
|
|
||||||
Ch.GetSize()) &
|
|
||||||
0xff0000) >> 16
|
|
||||||
);
|
|
||||||
Ch.SectionHeader.type = (byte) EFI_SECTION_COMPRESSION;
|
Ch.SectionHeader.type = (byte) EFI_SECTION_COMPRESSION;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Note: The compressName was not efsfective now. Using the
|
// Note: The compressName was not efsfective now. Using the
|
||||||
// EFI_STANDARD_COMPRSSION for compressType .
|
// EFI_STANDARD_COMPRSSION for compressType .
|
||||||
// That is follow old Genffsfile tools. Some code will be added for
|
// That is follow old Genffsfile tools. Some code will be
|
||||||
|
// added for
|
||||||
// the different compressName;
|
// the different compressName;
|
||||||
//
|
//
|
||||||
Ch.UncompressLen = fileBuffer.length;
|
Ch.UncompressLen = fileBuffer.length;
|
||||||
|
@ -328,13 +354,14 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
//
|
//
|
||||||
// Change header struct to byte buffer
|
// Change header struct to byte buffer
|
||||||
//
|
//
|
||||||
byte [] headerBuffer = new byte[Ch.GetSize()];
|
byte[] headerBuffer = new byte[Ch.GetSize()];
|
||||||
Ch.StructToBuffer(headerBuffer);
|
Ch.StructToBuffer(headerBuffer);
|
||||||
|
|
||||||
//
|
//
|
||||||
// First add CompressHeader to Buffer, then add Compress data.
|
// First add CompressHeader to Buffer, then add Compress
|
||||||
|
// data.
|
||||||
//
|
//
|
||||||
buffer.write (headerBuffer);
|
buffer.write(headerBuffer);
|
||||||
buffer.write(myCompress.outputBuffer);
|
buffer.write(myCompress.outputBuffer);
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -342,27 +369,26 @@ public class GenSectionTask extends Task implements EfiDefine, Section, FfsTypes
|
||||||
//
|
//
|
||||||
int size = Ch.GetSize() + myCompress.outputBuffer.length;
|
int size = Ch.GetSize() + myCompress.outputBuffer.length;
|
||||||
|
|
||||||
while ((size & 0x03) != 0){
|
while ((size & 0x03) != 0) {
|
||||||
size ++;
|
size++;
|
||||||
buffer.writeByte(0);
|
buffer.writeByte(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
} catch (Exception e) {
|
||||||
catch (Exception e){
|
|
||||||
throw new BuildException("compress.toBuffer failed!\n");
|
throw new BuildException("compress.toBuffer failed!\n");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Section sect;
|
Section sect;
|
||||||
Iterator sectionIter = this.sectFileList.iterator();
|
Iterator sectionIter = this.sectFileList.iterator();
|
||||||
while (sectionIter.hasNext()) {
|
while (sectionIter.hasNext()) {
|
||||||
sect = (Section)sectionIter.next();
|
sect = (Section) sectionIter.next();
|
||||||
try {
|
try {
|
||||||
//
|
//
|
||||||
// The last section don't need 4 byte ffsAligment.
|
// The last section don't need 4 byte ffsAligment.
|
||||||
//
|
//
|
||||||
sect.toBuffer(buffer);
|
sect.toBuffer(buffer);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new BuildException (e.getMessage());
|
throw new BuildException(e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
package org.tianocore.framework.tasks;
|
package org.tianocore.framework.tasks;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
import org.apache.tools.ant.BuildException;
|
import org.apache.tools.ant.BuildException;
|
||||||
import org.apache.tools.ant.Project;
|
import org.apache.tools.ant.Project;
|
||||||
import org.apache.tools.ant.Task;
|
import org.apache.tools.ant.Task;
|
||||||
|
|
|
@ -13,7 +13,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||||
**/
|
**/
|
||||||
package org.tianocore.framework.tasks;
|
package org.tianocore.framework.tasks;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
|
||||||
import java.io.DataInputStream;
|
import java.io.DataInputStream;
|
||||||
import java.io.DataOutputStream;
|
import java.io.DataOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
|
@ -273,7 +273,12 @@ public class FfsProcess {
|
||||||
//
|
//
|
||||||
ele = doc.createElement("gensection");
|
ele = doc.createElement("gensection");
|
||||||
if (type != null) {
|
if (type != null) {
|
||||||
|
if (type.equalsIgnoreCase("COMPRESS")) {
|
||||||
|
ele.setAttribute("sectionType", "EFI_SECTION_COMPRESSION");
|
||||||
|
}else {
|
||||||
ele.setAttribute("sectiontype", "EFI_SECTION_GUID_DEFINED");
|
ele.setAttribute("sectiontype", "EFI_SECTION_GUID_DEFINED");
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
ele.setAttribute("sectiontype", sectType);
|
ele.setAttribute("sectiontype", sectType);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue