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