.append("GLOBAL_REMOVE_IF_UNREFERENCED const UINT8 _gDriverEntryPointCount = ");\r
fileBuffer.append(Integer.toString(entryPointCount));\r
fileBuffer.append(";\r\n");\r
- fileBuffer\r
- .append("static BASE_LIBRARY_JUMP_BUFFER mJumpContext;\r\n");\r
- fileBuffer\r
- .append("static EFI_STATUS mDriverEntryPointStatus = EFI_LOAD_ERROR;\r\n\r\n");\r
- \r
- fileBuffer.append("EFI_STATUS\r\n");\r
+ fileBuffer.append("EFI_STATUS\r\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleEntryPointList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");\r
- fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");\r
+ fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");\r
fileBuffer.append(" )\r\n\r\n");\r
fileBuffer.append("{\r\n");\r
fileBuffer.append(" return EFI_SUCCESS;\r\n");\r
fileBuffer.append("EFI_STATUS\r\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleEntryPointList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");\r
- fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");\r
+ fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");\r
fileBuffer.append(" )\r\n\r\n");\r
fileBuffer.append("{\r\n");\r
\r
fileBuffer.append("EFI_STATUS\r\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleUnloadList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle\r\n");\r
fileBuffer.append(" )\r\n");\r
fileBuffer.append("{\r\n");\r
\r
fileBuffer.append("EFI_STATUS\r\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleEntryPointList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");\r
- fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");\r
+ fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");\r
fileBuffer.append(" )\r\n\r\n");\r
fileBuffer.append("{\r\n");\r
fileBuffer.append(" return EFI_SUCCESS;\r\n");\r
fileBuffer.append("EFI_STATUS\r\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleEntryPointList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle,\r\n");\r
- fileBuffer.append(" EFI_SYSTEM_TABLE *SystemTable\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle,\r\n");\r
+ fileBuffer.append(" IN EFI_SYSTEM_TABLE *SystemTable\r\n");\r
fileBuffer.append(" )\r\n\r\n");\r
fileBuffer.append("{\r\n");\r
\r
fileBuffer.append("EFI_STATUS\n");\r
fileBuffer.append("EFIAPI\r\n");\r
fileBuffer.append("ProcessModuleUnloadList (\r\n");\r
- fileBuffer.append(" EFI_HANDLE ImageHandle\r\n");\r
+ fileBuffer.append(" IN EFI_HANDLE ImageHandle\r\n");\r
fileBuffer.append(" )\r\n");\r
fileBuffer.append("{\r\n");\r
\r
fileBuffer.append(" EFI_STATUS Status;\r\n\r\n");\r
fileBuffer.append(" Status = EFI_SUCCESS;\r\n\r\n");\r
for (int i = 0; i < entryPointList.length; i++) {\r
- if (!entryPointList[i].equals("")) {\r
- fileBuffer.append(" if (EFI_ERROR (Status)) {\r\n");\r
+ if (i == 0) {\r
+ fileBuffer.append(" Status = ");\r
+ fileBuffer.append(entryPointList[i]);\r
+ fileBuffer.append("(ImageHandle);\r\n");\r
+ }else{\r
+ fileBuffer.append(" if (EFI_ERROR (Status)) {\r\n");\r
fileBuffer.append(" ");\r
fileBuffer.append(entryPointList[i]);\r
fileBuffer.append("(ImageHandle);\r\n");\r
fileBuffer.append(entryPointList[i]);\r
fileBuffer.append("(ImageHandle);\r\n");\r
fileBuffer.append(" }\r\n");\r
- } else {\r
- break;\r
- }\r
+ }\r
}\r
fileBuffer.append(" return Status;\r\n");\r
}\r
import org.apache.xmlbeans.XmlNormalizedString;\r
import org.apache.xmlbeans.XmlObject;\r
import org.apache.xmlbeans.XmlString;\r
-import org.tianocore.BuildOptionsDocument;\r
-import org.tianocore.CNameType;\r
-import org.tianocore.DataIdDocument;\r
-import org.tianocore.ExternsDocument;\r
-import org.tianocore.FileNameConvention;\r
-import org.tianocore.FvAttributeDocument;\r
-import org.tianocore.FvImagesDocument;\r
-import org.tianocore.FvOptionDocument;\r
-import org.tianocore.GuidDeclarationsDocument;\r
-import org.tianocore.GuidsDocument;\r
-import org.tianocore.LibrariesDocument;\r
-import org.tianocore.LibraryClassDeclarationsDocument;\r
-import org.tianocore.LibraryClassDocument;\r
-import org.tianocore.ModuleDefinitionsDocument;\r
-import org.tianocore.ModuleSADocument;\r
-import org.tianocore.ModuleSaBuildOptionsDocument;\r
-import org.tianocore.ModuleTypeDef;\r
-import org.tianocore.MsaFilesDocument;\r
-import org.tianocore.MsaHeaderDocument;\r
-import org.tianocore.OptionDocument;\r
-import org.tianocore.PPIsDocument;\r
-import org.tianocore.PackageDependenciesDocument;\r
-import org.tianocore.PackageHeadersDocument;\r
-import org.tianocore.PcdCodedDocument;\r
-import org.tianocore.PlatformDefinitionsDocument;\r
-import org.tianocore.PpiDeclarationsDocument;\r
-import org.tianocore.ProtocolDeclarationsDocument;\r
-import org.tianocore.Sentence;\r
-import org.tianocore.SpdHeaderDocument;\r
-import org.tianocore.SupportedArchitectures;\r
+import org.tianocore.*;\r
import org.tianocore.FilenameDocument.Filename;\r
import org.tianocore.MsaHeaderDocument.MsaHeader;\r
import org.tianocore.ProtocolsDocument.Protocols.Protocol;\r
import org.tianocore.ProtocolsDocument.Protocols.ProtocolNotify;\r
-import org.tianocore.PlatformHeaderDocument;\r
+import org.tianocore.SupportedArchitectures.Enum;\r
import org.tianocore.build.id.FpdModuleIdentification;\r
import org.tianocore.build.id.ModuleIdentification;\r
import org.tianocore.build.id.PackageIdentification;\r
String[] xPath;\r
Object[] returns;\r
\r
- if (arch == null || arch.equals("")) {\r
- xPath = new String[] { "/Filename" };\r
- } else {\r
- xPath = new String[] { "/Filename[not(@SupArchList) or @SupArchList='"\r
- + arch + "']" };\r
- }\r
+ xPath = new String[] { "/Filename" };\r
\r
returns = get("SourceFiles", xPath);\r
\r
}\r
\r
Filename[] sourceFileNames = (Filename[]) returns;\r
- String[][] outputString = new String[sourceFileNames.length][2];\r
+ List<String[]> outputList = new ArrayList<String[]>();\r
for (int i = 0; i < sourceFileNames.length; i++) {\r
- outputString[i][0] = sourceFileNames[i].getToolCode();\r
- outputString[i][1] = sourceFileNames[i].getStringValue();\r
+ List<String> archList = sourceFileNames[i].getSupArchList();\r
+ if (arch == null || arch.equalsIgnoreCase("") || archList == null || archList.contains(arch)) {\r
+ outputList.add(new String[] {sourceFileNames[i].getToolCode(),sourceFileNames[i].getStringValue()});\r
+ }\r
+ }\r
+ \r
+ String[][] outputString = new String[outputList.size()][2];\r
+ for (int index = 0; index < outputList.size(); index++) {\r
+ outputString[index][0] = outputList.get(index)[0];\r
+ outputString[index][1] = outputList.get(index)[1];\r
}\r
return outputString;\r
}\r
String packageGuid = null;\r
String packageVersion = null;\r
\r
- if (arch == null || arch.equals("")) {\r
- xPath = new String[] { "/Package" };\r
- } else {\r
- xPath = new String[] { "/Package[not(@SupArchList) or @SupArchList='"\r
- + arch + "']" };\r
- }\r
-\r
+ \r
+ xPath = new String[] { "/Package" };\r
+ \r
Object[] returns = get("PackageDependencies", xPath);\r
if (returns == null) {\r
return new PackageIdentification[0];\r
PackageIdentification[] packageIdList = new PackageIdentification[returns.length];\r
for (int i = 0; i < returns.length; i++) {\r
PackageDependenciesDocument.PackageDependencies.Package item = (PackageDependenciesDocument.PackageDependencies.Package) returns[i];\r
- packageGuid = item.getPackageGuid();\r
- packageVersion = item.getPackageVersion();\r
- packageIdList[i] = (new PackageIdentification(null, packageGuid,\r
+ List<String> archList = item.getSupArchList();\r
+ if (arch == null || archList == null || archList.contains(arch)) {\r
+ packageGuid = item.getPackageGuid();\r
+ packageVersion = item.getPackageVersion();\r
+ packageIdList[i] = (new PackageIdentification(null, packageGuid,\r
packageVersion));\r
+ }\r
}\r
return packageIdList;\r
}\r
if (arch == null || arch.equals("")) {\r
return new String[0];\r
} else {\r
- archXpath = "/Protocol[@SupArchList='" + arch + "']";\r
+ archXpath = "/Protocol";\r
if (usage != null && !usage.equals("")) {\r
usageXpath = "/Protocol[@Usage='" + usage + "']";\r
xPath = new String[] { usageXpath, archXpath };\r
if (returns == null) {\r
return new String[0];\r
}\r
- Protocol[] protocolList = (Protocol[]) returns;\r
+ Protocol[] returnlList = (Protocol[]) returns;\r
\r
- String[] protocolArray = new String[returns.length];\r
+ List<String> protocolList = new ArrayList<String>();\r
+ \r
for (int i = 0; i < returns.length; i++) {\r
- List<String> archList = protocolList[i].getSupArchList();\r
+ List<String> archList = returnlList[i].getSupArchList();\r
if (archList == null || archList.contains(arch)){\r
- protocolArray[i] = protocolList[i].getProtocolCName(); \r
+ protocolList.add(returnlList[i].getProtocolCName());\r
}\r
}\r
+ String[] protocolArray = new String[protocolList.size()];\r
+ for (int i = 0; i < protocolList.size(); i++) {\r
+ protocolArray[i] = protocolList.get(i);\r
+ }\r
return protocolArray;\r
}\r
\r
return new String[0];\r
}\r
\r
- String[] protocolNotifyList = new String[returns.length];\r
+ List<String> protocolNotifyList = new ArrayList<String>();\r
+ \r
for (int i = 0; i < returns.length; i++) {\r
List<String> archList = ((ProtocolNotify) returns[i]).getSupArchList();\r
if (archList == null || archList.contains(arch)){\r
- protocolNotifyList[i] = ((ProtocolNotify) returns[i]).getProtocolNotifyCName();\r
+ protocolNotifyList.add(((ProtocolNotify) returns[i]).getProtocolNotifyCName());\r
}\r
\r
}\r
-\r
- return protocolNotifyList;\r
+ String[] protocolNotifyArray = new String[protocolNotifyList.size()];\r
+ for (int i = 0; i < protocolNotifyList.size(); i++) {\r
+ protocolNotifyArray[i] = protocolNotifyList.get(i);\r
+ }\r
+ return protocolNotifyArray;\r
}\r
\r
/**\r
if (arch == null || arch.equals("")) {\r
return new String[0];\r
} else {\r
- archXpath = "/ProtocolNotify[@SupArchList='" + arch + "']";\r
+ archXpath = "/ProtocolNotify";\r
if (usage != null && !usage.equals("")) {\r
usageXpath = "/ProtocolNotify[@Usage='" + arch + "']";\r
xPath = new String[] { archXpath, usageXpath };\r
return new String[0];\r
}\r
\r
- String[] ppiNotifyList = new String[returns.length];\r
+ \r
+ List<String> ppiNotifyList = new ArrayList<String>();\r
for (int i = 0; i < returns.length; i++) {\r
List<String> archList = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getSupArchList();\r
if (archList == null || archList.contains(arch)){\r
- ppiNotifyList[i] = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getPpiNotifyCName(); \r
+ ppiNotifyList.add(((PPIsDocument.PPIs.PpiNotify) returns[i]).getPpiNotifyCName()); \r
}\r
\r
}\r
+ String[] ppiNotifyArray = new String[ppiNotifyList.size()];\r
+ for (int i = 0; i < ppiNotifyList.size(); i++) {\r
+ ppiNotifyArray[i] = ppiNotifyList.get(i);\r
+ }\r
\r
- return ppiNotifyList;\r
+ return ppiNotifyArray;\r
}\r
\r
/**\r
return new String[0];\r
}\r
\r
- String[] ppiList = new String[returns.length];\r
+ List<String> ppiList = new ArrayList<String>();\r
for (int i = 0; i < returns.length; i++) {\r
List<String> archList = ((PPIsDocument.PPIs.Ppi) returns[i]).getSupArchList();\r
if (archList == null || archList.contains(arch)){\r
- ppiList[i] = ((PPIsDocument.PPIs.Ppi) returns[i]).getPpiCName(); \r
+ ppiList.add(((PPIsDocument.PPIs.Ppi) returns[i]).getPpiCName()); \r
}\r
\r
}\r
- return ppiList;\r
+ String[] ppiArray = new String[ppiList.size()];\r
+ for (int i = 0; i < ppiList.size(); i++) {\r
+ ppiArray[i] = ppiList.get(i);\r
+ }\r
+ return ppiArray;\r
}\r
\r
/**\r
if (returns == null) {\r
return new String[0];\r
}\r
- String[] guidList = new String[returns.length];\r
+\r
+ List<String> guidList = new ArrayList<String>();\r
for (int i = 0; i < returns.length; i++) {\r
List<String> archList = ((GuidsDocument.Guids.GuidCNames) returns[i]).getSupArchList();\r
if (archList == null || archList.contains(arch)){\r
- guidList[i] = ((GuidsDocument.Guids.GuidCNames) returns[i]).getGuidCName(); \r
+ guidList.add(((GuidsDocument.Guids.GuidCNames) returns[i]).getGuidCName()); \r
}\r
\r
}\r
- return guidList;\r
+ String[] guidArray = new String[guidList.size()];\r
+ for (int i = 0; i < guidList.size(); i++) {\r
+ guidArray[i] = guidList.get(i);\r
+ }\r
+ return guidArray;\r
\r
}\r
\r
if (arch == null || arch.equalsIgnoreCase("")) {\r
xPath = new String[] { "/Instance" };\r
} else {\r
+ //\r
+ // Since Schema don't have SupArchList now, so the follow Xpath is \r
+ // equal to "/Instance" and [not(@SupArchList) or @SupArchList= arch]\r
+ // don't have effect.\r
+ //\r
xPath = new String[] { "/Instance[not(@SupArchList) or @SupArchList='"\r
+ arch + "']" };\r
}\r