import org.tianocore.MsaHeaderDocument.MsaHeader;\r
import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
+import org.tianocore.PcdDriverTypes;\r
\r
import org.tianocore.common.logger.EdkLog;\r
import org.tianocore.build.id.FpdModuleIdentification;\r
import org.tianocore.build.id.PackageIdentification;\r
import org.tianocore.build.id.PlatformIdentification;\r
import org.tianocore.build.toolchain.ToolChainInfo;\r
+import org.tianocore.build.autogen.CommonDefinition;\r
\r
/**\r
* SurfaceAreaQuery class is used to query Surface Area information from msa,\r
libraryClassName.add(libraryClassList[i].getKeyword());\r
}\r
}\r
- String[] libraryArray = new String[libraryClassName.size()];\r
- for (int i = 0; i < libraryClassName.size(); i++) {\r
- libraryArray[i] = libraryClassName.get(i);\r
- }\r
+\r
+ String[] libraryArray = new String[libraryClassName.size()];\r
+ libraryClassName.toArray(libraryArray);\r
return libraryArray;\r
}\r
\r
return getCNames("Externs", xPath);\r
}\r
\r
+ /**\r
+ Judge whether current driver is PEI_PCD_DRIVER or DXE_PCD_DRIVER or\r
+ NOT_PCD_DRIVER.\r
+ \r
+ @return CommonDefinition.PCD_DRIVER_TYPE the type of current driver\r
+ **/\r
+ public static CommonDefinition.PCD_DRIVER_TYPE getPcdDriverType() {\r
+ String[] xPath = new String[] {"/PcdIsDriver"};\r
+ Object[] results = get ("Externs", xPath);\r
+\r
+ if (results != null && results.length != 0) {\r
+ PcdDriverTypes type = (PcdDriverTypes) results[0];\r
+ String typeStr = type.enumValue().toString();\r
+ if (typeStr.equals(CommonDefinition.PCD_DRIVER_TYPE.PEI_PCD_DRIVER.toString())) {\r
+ return CommonDefinition.PCD_DRIVER_TYPE.PEI_PCD_DRIVER;\r
+ } else if (typeStr.equals(CommonDefinition.PCD_DRIVER_TYPE.DXE_PCD_DRIVER.toString())) {\r
+ return CommonDefinition.PCD_DRIVER_TYPE.DXE_PCD_DRIVER;\r
+ }\r
+ return CommonDefinition.PCD_DRIVER_TYPE.UNKNOWN_PCD_DRIVER;\r
+ }\r
+\r
+ return CommonDefinition.PCD_DRIVER_TYPE.NOT_PCD_DRIVER;\r
+ }\r
+\r
/**\r
* Retrieve module surface area file information\r
*\r