X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=Tools%2FSource%2FMigrationTools%2Forg%2Ftianocore%2Fmigration%2FMsaWriter.java;h=72fa0679762073618e0b37ba02f9cc30a875abaa;hp=fa9e0074eefe795b164661acf6f74e21bb30e442;hb=fd16b4dddd7eadf267c0caac61ba934edb5b8e66;hpb=27e0221a8578226815bf0d7f3606dc6136c90de4 diff --git a/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java b/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java index fa9e0074ee..72fa067976 100644 --- a/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java +++ b/Tools/Source/MigrationTools/org/tianocore/migration/MsaWriter.java @@ -20,12 +20,11 @@ import org.tianocore.SupportedArchitectures.Enum; import org.apache.xmlbeans.*; public class MsaWriter { - MsaWriter(ModuleInfo moduleinfo) { - mi = moduleinfo; - } - + MsaWriter(ModuleInfo moduleinfo) { + mi = moduleinfo; + } + private ModuleInfo mi; - private ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.newInstance(); private ModuleSurfaceAreaDocument.ModuleSurfaceArea msa = msadoc.addNewModuleSurfaceArea(); @@ -88,13 +87,6 @@ public class MsaWriter { msaheader.setGuidValue(mi.guidvalue); if (mi.moduletype != null) { msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.getModuleType())); - /* - if (mi.moduletype.contains("PEI")) { - msaheader.setModuleType(ModuleTypeDef.Enum.forString("PEIM")); - } else { - msaheader.setModuleType(ModuleTypeDef.Enum.forString("DXE_DRIVER")); - } - */ } else { msaheader.setModuleType(ModuleTypeDef.Enum.forString(mi.moduletype = Query("Guid Value Not Found! Please Input Guid Value"))); } @@ -123,10 +115,19 @@ public class MsaWriter { md.setOutputFileBasename(mi.modulename); pd.addNewPackage().setPackageGuid("5e0e9358-46b6-4ae2-8218-4ab8b9bbdcec"); + pd.addNewPackage().setPackageGuid("68169ab0-d41b-4009-9060-292c253ac43d"); externs.addNewSpecification().setStringValue("EFI_SPECIFICATION_VERSION 0x00020000"); externs.addNewSpecification().setStringValue("EDK_RELEASE_VERSION 0x00020000"); - externs.addNewExtern().setModuleEntryPoint(mi.entrypoint); - + if (mi.entrypoint != null) { + externs.addNewExtern().setModuleEntryPoint(mi.entrypoint); + org.tianocore.ModuleTypeDef.Enum moduleType = msaheader.getModuleType(); + if (moduleType == ModuleTypeDef.PEIM) { + mi.hashrequiredr9libs.add("PeimEntryPoint"); + } else { + mi.hashrequiredr9libs.add("UefiDriverEntryPoint"); + } + } + it = mi.localmodulesources.iterator(); while (it.hasNext()) { addSourceFiles(it.next()); @@ -166,7 +167,7 @@ public class MsaWriter { } it = mi.hashrequiredr9libs.iterator(); while (it.hasNext()) { - if ((temp = it.next()) != null && !temp.matches("%")) { + if ((temp = it.next()) != null && !temp.matches("%") && !temp.matches("n/a")) { LibraryClassDocument.LibraryClass lc = libclassdefs.addNewLibraryClass(); lc.setKeyword(temp); lc.setUsage(UsageTypes.ALWAYS_CONSUMED); @@ -204,7 +205,7 @@ public class MsaWriter { bw.flush(); bw.close(); } - + public static final void parse(String msafile) throws Exception { ModuleSurfaceAreaDocument msadoc = ModuleSurfaceAreaDocument.Factory.parse(msafile); flush("c:\\temp.msa", msadoc);