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
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
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
}\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
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