- fileBuffer.append("\r\n");\r
- isFirst = false;\r
- }\r
- switch (CommonDefinition.getModuleType(moduleType)) {\r
- case CommonDefinition.ModuleTypeBase:\r
- fileBuffer.append(" Status = ");\r
- fileBuffer.append(libInstanceList.get(i));\r
- fileBuffer.append("();\r\n");\r
- fileBuffer.append(" VOID\r\n");\r
- break;\r
- case CommonDefinition.ModuleTypePeiCore:\r
- case CommonDefinition.ModuleTypePeim:\r
- fileBuffer.append(" Status = ");\r
- fileBuffer.append(libInstanceList.get(i));\r
- fileBuffer.append(" (FfsHeader, PeiServices);\r\n");\r
- break;\r
- case CommonDefinition.ModuleTypeDxeCore:\r
- case CommonDefinition.ModuleTypeDxeDriver:\r
- case CommonDefinition.ModuleTypeDxeRuntimeDriver:\r
- case CommonDefinition.ModuleTypeDxeSmmDriver:\r
- case CommonDefinition.ModuleTypeDxeSalDriver:\r
- case CommonDefinition.ModuleTypeUefiDriver:\r
- case CommonDefinition.ModuleTypeUefiApplication:\r
- fileBuffer.append(" Status = ");\r
- fileBuffer.append(libInstanceList.get(i));\r
- fileBuffer.append(" (ImageHandle, SystemTable);\r\n");\r
- break;\r
- default:\r
- EdkLog.log(EdkLog.EDK_INFO,"Autogen don't know how to deal with module type -"+ moduleType + " !");\r
- }\r
- fileBuffer.append(" ASSERT_EFI_ERROR (Status);\r\n");\r
- }\r
- fileBuffer.append("}\r\n");\r
- }\r
-\r
- /**\r
- * LibDestructorToAutogenc\r
- * \r
- * This function writes library destructor list to AutoGen.c. The library\r
- * destructor's parameter and return value depend on module type.\r
- * \r
- * @param libInstanceList\r
- * List of library destructor name.\r
- * @param moduleType\r
- * Module type.\r
- * @param fileBuffer\r
- * String buffer for AutoGen.c\r
- * @throws Exception\r
- */\r
- void LibDestructorToAutogenC(List<String> libInstanceList,\r
- String moduleType, StringBuffer fileBuffer) throws Exception {\r
- boolean isFirst = true;\r
- for (int i = 0; i < libInstanceList.size(); i++) {\r
- switch (CommonDefinition.getModuleType(moduleType)) {\r
- case CommonDefinition.ModuleTypeBase:\r
- fileBuffer.append("RETURN_STATUS\n");\r
- fileBuffer.append(libInstanceList.get(i));\r
- fileBuffer.append(" (\r\n");\r
- fileBuffer.append(" VOID\r\n");\r
- fileBuffer.append(" );\r\n");\r
- break;\r
- case CommonDefinition.ModuleTypePeiCore:\r
- case CommonDefinition.ModuleTypePeim:\r
- fileBuffer.append("EFI_STATUS\r\n");\r
- fileBuffer.append(libInstanceList.get(i));\r
- fileBuffer.append(" (\r\n");\r
- fileBuffer\r
+ fileBuffer.append("\r\n");\r
+ isFirst = false;\r
+ }\r
+ if (libInstanceList.get(i)[1].equalsIgnoreCase(EdkDefinitions.MODULE_TYPE_BASE)) {\r
+ fileBuffer.append(" Status = ");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append("();\r\n");\r
+ fileBuffer.append(" VOID\r\n");\r
+ } else {\r
+ switch (CommonDefinition.getModuleType(moduleType)) {\r
+ case CommonDefinition.ModuleTypeBase:\r
+ fileBuffer.append(" Status = ");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append("();\r\n");\r
+ fileBuffer.append(" VOID\r\n");\r
+ break;\r
+ case CommonDefinition.ModuleTypePeiCore:\r
+ case CommonDefinition.ModuleTypePeim:\r
+ fileBuffer.append(" Status = ");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append(" (FfsHeader, PeiServices);\r\n");\r
+ break;\r
+ case CommonDefinition.ModuleTypeDxeCore:\r
+ case CommonDefinition.ModuleTypeDxeDriver:\r
+ case CommonDefinition.ModuleTypeDxeRuntimeDriver:\r
+ case CommonDefinition.ModuleTypeDxeSmmDriver:\r
+ case CommonDefinition.ModuleTypeDxeSalDriver:\r
+ case CommonDefinition.ModuleTypeUefiDriver:\r
+ case CommonDefinition.ModuleTypeUefiApplication:\r
+ fileBuffer.append(" Status = ");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append(" (ImageHandle, SystemTable);\r\n");\r
+ break;\r
+ default:\r
+ EdkLog.log(EdkLog.EDK_INFO,"Autogen doesn't know how to deal with module type - " + moduleType + "!");\r
+ }\r
+ \r
+ }\r
+ fileBuffer.append(" ASSERT_EFI_ERROR (Status);\r\n");\r
+ }\r
+ fileBuffer.append("}\r\n");\r
+ }\r
+\r
+ /**\r
+ LibDestructorToAutogenc\r
+ \r
+ This function writes library destructor list to AutoGen.c. The library\r
+ destructor's parameter and return value depend on module type.\r
+ \r
+ @param libInstanceList\r
+ List of library destructor name.\r
+ @param moduleType\r
+ Module type.\r
+ @param fileBuffer\r
+ String buffer for AutoGen.c\r
+ @throws Exception\r
+ **/\r
+ void LibDestructorToAutogenC(List<String[]> libInstanceList,\r
+ String moduleType, StringBuffer fileBuffer) throws EdkException {\r
+ boolean isFirst = true;\r
+ for (int i = 0; i < libInstanceList.size(); i++) {\r
+ if (libInstanceList.get(i)[1].equalsIgnoreCase(EdkDefinitions.MODULE_TYPE_BASE)) {\r
+ fileBuffer.append("RETURN_STATUS\r\n");\r
+ fileBuffer.append("EFIAPI\r\n");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append(" (\r\n");\r
+ fileBuffer.append(" VOID\r\n");\r
+ fileBuffer.append(" );\r\n");\r
+ } else {\r
+ switch (CommonDefinition.getModuleType(moduleType)) {\r
+ case CommonDefinition.ModuleTypeBase:\r
+ fileBuffer.append("RETURN_STATUS\r\n");\r
+ fileBuffer.append("EFIAPI\r\n");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append(" (\r\n");\r
+ fileBuffer.append(" VOID\r\n");\r
+ fileBuffer.append(" );\r\n");\r
+ break;\r
+ case CommonDefinition.ModuleTypePeiCore:\r
+ case CommonDefinition.ModuleTypePeim:\r
+ fileBuffer.append("EFI_STATUS\r\n");\r
+ fileBuffer.append("EFIAPI\r\n");\r
+ fileBuffer.append(libInstanceList.get(i)[0]);\r
+ fileBuffer.append(" (\r\n");\r
+ fileBuffer\r