X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FFrameworkTasks%2Forg%2Ftianocore%2Fframework%2Ftasks%2FGenFfsFileTask.java;h=3c7ebed362e0419d1a2dad10cf40a2aaf331c944;hp=8aff2e86bf70fdcd50043dff9e3e0c5ef8ad6869;hb=219e2247478e46f81b744252b13cd1df01a76756;hpb=164803cb048c1d8f47e6981d5e7c7d3ad863cec9 diff --git a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFfsFileTask.java b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFfsFileTask.java index 8aff2e86bf..3c7ebed362 100644 --- a/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFfsFileTask.java +++ b/Tools/Source/FrameworkTasks/org/tianocore/framework/tasks/GenFfsFileTask.java @@ -58,6 +58,10 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { /// String baseName = ""; /// + /// + /// + String moduleType; + /// /// module Guid /// String ffsFileGuid = ""; @@ -153,7 +157,7 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { // Create ffs file. File name = FfsFileGuid + BaseName + ffsSuffix. // If outputDir's value was set, file will output to the outputDir. // - ffsSuffix = TypeToSuffix (this.ffsFileType); + ffsSuffix = TypeToSuffix (this.moduleType); if (!this.outputDir.equals("")) { String temp; outputPath = this.outputDir; @@ -165,17 +169,16 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { } - ffsFile = new File (outputPath + this.ffsFileGuid + '-' + this.baseName + ffsSuffix); - System.out.print("General Ffs file: file name is:\n"); - System.out.print(outputPath + this.ffsFileGuid + '-' + this.baseName + ffsSuffix); - System.out.print("\n"); - + String ffsFilePath = outputPath + this.ffsFileGuid + '-' + this.baseName + ffsSuffix; + ffsFile = new File (ffsFilePath); // // Create ffs ORG file. fileName = FfsFileGuid + BaseName + ffsSuffix + // ".org". // - ffsOrgFile = new File(outputPath + this.ffsFileGuid + '-' + this.baseName + ffsSuffix + ".org"); + ffsOrgFile = new File(ffsFilePath + ".org"); + log(ffsFile.getName()); + log(ffsOrgFile.getName()); try { // // Create file output stream -- dataBuffer. @@ -366,7 +369,7 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { ffsHeader.ffsState = EFI_FILE_HEADER_CONSTRUCTION | EFI_FILE_HEADER_VALID | EFI_FILE_DATA_VALID; - orgFfsHeader.integrityCheck.file = ffsHeader.ffsState; + orgFfsHeader.ffsState = ffsHeader.ffsState; // // create output stream to first write header data in file, then write sect data in file. @@ -424,8 +427,8 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { // ffsBuffer.close(); orgFfsBuffer.close(); - System.out.print ("Successful create ffs file!\n"); } catch (Exception e) { + log("genffsfile failed!"); throw new BuildException (e.getMessage()); } } @@ -698,43 +701,21 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { @return The suffix of ffs file **/ private String TypeToSuffix (String ffsFileType){ - if (ffsFileType.equals("EFI_FV_FILETYPE_ALL")) { - return ""; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_RAW")) { - return EFI_FV_FFS_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_FREEFORM")) { - return EFI_FV_FFS_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_SECURITY_CORE")) { - return EFI_FV_SEC_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_PEI_CORE")) { - return EFI_FV_PEI_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_DXE_CORE")) { - return EFI_FV_DXE_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_PEIM")) { - return EFI_FV_PEI_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_DRIVER")) { - return EFI_FV_DXE_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_COMBINED_PEIM_DRIVER")) { - return EFI_FV_PEI_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_APPLICATION")) { - return EFI_FV_APP_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_FIRMWARE_VOLUME_IMAGE")) { - return EFI_FV_FVI_FILETYPE_STR; - } - if (ffsFileType.equals("EFI_FV_FILETYPE_FFS_PAD")) { - return EFI_FV_FFS_FILETYPE_STR; + String[][] suffix = { { "BASE", ".FFS"}, + { "SEC", ".SEC" }, { "PEI_CORE", ".PEI" }, + { "PEIM", ".PEI" }, { "DXE_CORE", ".DXE" }, + { "DXE_DRIVER", ".DXE" }, { "DXE_RUNTIME_DRIVER", ".DXE" }, + { "DXE_SAL_DRIVER", ".DXE" }, { "DXE_SMM_DRIVER", ".DXE" }, + { "TOOL", ".FFS" }, { "UEFI_DRIVER", ".DXE" }, + { "UEFI_APPLICATION", ".APP" }, { "USER_DEFINED", ".FFS" } }; + + for (int i = 0; i < suffix.length; i++) { + if (suffix[i][0].equalsIgnoreCase(moduleType)) { + return suffix[i][1]; + } } - return ""; + + return ".FFS"; } @@ -959,4 +940,12 @@ public class GenFfsFileTask extends Task implements EfiDefine, FfsTypes { public void setOutputDir(String outputDir) { this.outputDir = outputDir; } + + public String getModuleType() { + return this.moduleType; + } + + public void setModuleType(String moduleType) { + this.moduleType = moduleType; + } }