New tool.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@692 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qouyang
2006-06-30 19:56:10 +00:00
parent 1ea046d4c4
commit 136adffc5c
23 changed files with 2526 additions and 2096 deletions

View File

@@ -70,6 +70,7 @@
<IncludePkgHeader ModuleType="DXE_SMM_DRIVER">Include/WinNtDxe.h</IncludePkgHeader> <IncludePkgHeader ModuleType="DXE_SMM_DRIVER">Include/WinNtDxe.h</IncludePkgHeader>
<IncludePkgHeader ModuleType="DXE_SAL_DRIVER">Include/WinNtDxe.h</IncludePkgHeader> <IncludePkgHeader ModuleType="DXE_SAL_DRIVER">Include/WinNtDxe.h</IncludePkgHeader>
<IncludePkgHeader ModuleType="UEFI_DRIVER">Include/WinNtDxe.h</IncludePkgHeader> <IncludePkgHeader ModuleType="UEFI_DRIVER">Include/WinNtDxe.h</IncludePkgHeader>
<IncludePkgHeader ModuleType="USER_DEFINED">Include/WinNtPeim.h</IncludePkgHeader>
</PackageHeaders> </PackageHeaders>
<GuidDeclarations> <GuidDeclarations>
<Entry Name="WinNtVirtualDisks"> <Entry Name="WinNtVirtualDisks">

View File

@@ -35,9 +35,9 @@
<Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/> <Package PackageGuid="0fb2aa2d-10d5-40a5-a9dc-060c12a4a3f3"/>
</PackageDependencies> </PackageDependencies>
<PPIs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <PPIs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Ppi Usage="ALWAYS_CONSUMED"> <!--<Ppi Usage="ALWAYS_CONSUMED">
<PpiCName>PeCoffLoader</PpiCName> <PpiCName>PeCoffLoader</PpiCName>
</Ppi> </Ppi>-->
</PPIs> </PPIs>
<Externs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <Externs xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification> <Specification>EFI_SPECIFICATION_VERSION 0x00020000</Specification>

View File

@@ -5733,14 +5733,6 @@
<MaxDatumSize>4</MaxDatumSize> <MaxDatumSize>4</MaxDatumSize>
<Value>0x5678</Value> <Value>0x5678</Value>
</PcdData> </PcdData>
<PcdData ItemType="DYNAMIC">
<C_Name>PcdWinNtDynamicUINT32</C_Name>
<Token>0x0001000e</Token>
<TokenSpaceGuidCName>Fix_Me</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<Value>0x0</Value>
</PcdData>
</PcdBuildDefinition> </PcdBuildDefinition>
<ModuleSaBuildOptions> <ModuleSaBuildOptions>
<FvBinding>FV_RECOVERY</FvBinding> <FvBinding>FV_RECOVERY</FvBinding>
@@ -6575,17 +6567,6 @@
<Value>L"3000"</Value> <Value>L"3000"</Value>
</SkuInfo> </SkuInfo>
</PcdBuildData> </PcdBuildData>
<PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdWinNtDynamicUINT32</C_Name>
<Token>0x0001000e</Token>
<TokenSpaceGuidCName>Fix_Me</TokenSpaceGuidCName>
<DatumType>UINT32</DatumType>
<MaxDatumSize>4</MaxDatumSize>
<SkuInfo>
<SkuId>0</SkuId>
<Value>0x0</Value>
</SkuInfo>
</PcdBuildData>
<PcdBuildData ItemType="DYNAMIC"> <PcdBuildData ItemType="DYNAMIC">
<C_Name>PcdKentTestDynamicUINT32</C_Name> <C_Name>PcdKentTestDynamicUINT32</C_Name>
<Token>0x0001000e</Token> <Token>0x0001000e</Token>
@@ -6594,10 +6575,7 @@
<MaxDatumSize>4</MaxDatumSize> <MaxDatumSize>4</MaxDatumSize>
<SkuInfo> <SkuInfo>
<SkuId>0</SkuId> <SkuId>0</SkuId>
<VariableName>0x0062 0x006F 0x006F 0x0074 0x006D 0x006F 0x0064 0x0065</VariableName> <Value>0x2</Value>
<VariableGuid>WinNPassThrough</VariableGuid>
<VariableOffset>0x123</VariableOffset>
<HiiDefaultValue>0x123</HiiDefaultValue>
</SkuInfo> </SkuInfo>
</PcdBuildData> </PcdBuildData>
</DynamicPcdBuildDefinitions> </DynamicPcdBuildDefinitions>

View File

@@ -493,7 +493,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
</targetfiles> </targetfiles>
<sequential> <sequential>
<vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}"> <vfrcompile createIfrBinFile="on" createListFile="on" outPutDir="${DEST_DIR_DEBUG}/@{FILEPATH}" vfrFile="${MODULE_DIR}/@{FILEPATH}/@{FILENAME}.@{FILEEXT}">
<EXTRA.INC/> <EXTRA.INC/>
</vfrcompile> </vfrcompile>

View File

@@ -1,11 +1,11 @@
FPDParser = org.tianocore.build.fpd.FpdParserTask FPDParser = org.tianocore.build.fpd.FpdParserTask
bl = org.tianocore.build.global.VariableTask bl = org.tianocore.build.global.VariableTask
bf = org.tianocore.build.global.LibBuildFileGenerator
GenBuild = org.tianocore.build.GenBuildTask GenBuild = org.tianocore.build.GenBuildTask
ToolChainSetup = org.tianocore.build.toolchain.ToolChainTask FrameworkBuild = org.tianocore.build.FrameworkBuildTask
Expand = org.tianocore.build.ExpandTask
OutputDirSetup = org.tianocore.build.OutputDirSetupTask
OnDependency = org.tianocore.build.global.OnDependency OnDependency = org.tianocore.build.global.OnDependency
ToolChainSetup = org.tianocore.build.toolchain.ToolChainTask
OutputDirSetup = org.tianocore.build.OutputDirSetup
sourcefiles = org.tianocore.build.global.DpFileList sourcefiles = org.tianocore.build.global.DpFileList
targetfiles = org.tianocore.build.global.DpFileList targetfiles = org.tianocore.build.global.DpFileList
file = org.tianocore.build.global.DpFile file = org.tianocore.build.global.DpFile
DefaultBuildFileGenerator = org.tianocore.build.tools.DefaultBuildFileGenerator

View File

@@ -64,6 +64,7 @@ public class FileProcess {
{".s", "", "ASM" }, {".s", "", "ASM" },
{".uni", "", "UNI" }, {".uni", "", "UNI" },
{".vfr", "", "VFR" }, {".vfr", "", "VFR" },
{".Vfr", "", "VFR" },
{".dxs", "", "DPX"}, {".dxs", "", "DPX"},
{".fv", "", "FV" }, {".fv", "", "FV" },
{".efi", "", "EFI" }, {".efi", "", "EFI" },

View File

@@ -32,8 +32,9 @@ import org.apache.tools.ant.taskdefs.Ant;
import org.apache.tools.ant.taskdefs.Property; import org.apache.tools.ant.taskdefs.Property;
import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlObject;
import org.tianocore.build.exception.EdkException; import org.tianocore.build.autogen.AutoGen;
import org.tianocore.build.fpd.FpdParserTask; import org.tianocore.build.fpd.FpdParserTask;
import org.tianocore.build.global.GenBuildLogger;
import org.tianocore.build.global.GlobalData; import org.tianocore.build.global.GlobalData;
import org.tianocore.build.global.OutputManager; import org.tianocore.build.global.OutputManager;
import org.tianocore.build.global.SurfaceAreaQuery; import org.tianocore.build.global.SurfaceAreaQuery;
@@ -42,6 +43,8 @@ import org.tianocore.build.id.ModuleIdentification;
import org.tianocore.build.id.PackageIdentification; import org.tianocore.build.id.PackageIdentification;
import org.tianocore.build.id.PlatformIdentification; import org.tianocore.build.id.PlatformIdentification;
import org.tianocore.build.tools.ModuleItem; import org.tianocore.build.tools.ModuleItem;
import org.tianocore.exception.EdkException;
import org.tianocore.logger.EdkLog;
/** /**
<p> <p>
@@ -115,7 +118,14 @@ public class GenBuildTask extends Ant {
From module build, exception from module surface area invalid. From module build, exception from module surface area invalid.
**/ **/
public void execute() throws BuildException { public void execute() throws BuildException {
try{ //
// set Logger
//
GenBuildLogger logger = new GenBuildLogger(getProject());
EdkLog.setLogLevel(getProject().getProperty("env.LOGLEVEL"));
EdkLog.setLogger(logger);
// remove !!
try {
pushProperties(); pushProperties();
// //
// Enable all specified properties // Enable all specified properties
@@ -524,8 +534,9 @@ public class GenBuildTask extends Ant {
// //
// AutoGen // AutoGen
// //
// AutoGen autogen = new AutoGen(getProject().getProperty("DEST_DIR_DEBUG"), fpdModuleId);
// autogen.genAutogen(); AutoGen autogen = new AutoGen(getProject().getProperty("DEST_DIR_DEBUG"), fpdModuleId.getModule(),fpdModuleId.getArch());
autogen.genAutogen();
// //

File diff suppressed because it is too large Load Diff

View File

@@ -15,6 +15,10 @@
**/ **/
package org.tianocore.build.autogen; package org.tianocore.build.autogen;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
/** /**
CommonDefinition CommonDefinition
@@ -149,7 +153,7 @@ public class CommonDefinition {
new MyEnum("PEI_CORE", ModuleTypePeiCore), new MyEnum("PEI_CORE", ModuleTypePeiCore),
new MyEnum("PEIM", ModuleTypePeim), new MyEnum("PEIM", ModuleTypePeim),
new MyEnum("DXE_CORE", ModuleTypeDxeCore), new MyEnum("DXE_CORE", ModuleTypeDxeCore),
new MyEnum("DXE_DRIVER", ModuleTypeDxeRuntimeDriver), new MyEnum("DXE_DRIVER", ModuleTypeDxeDriver),
new MyEnum("DXE_RUNTIME_DRIVER", ModuleTypeDxeRuntimeDriver), new MyEnum("DXE_RUNTIME_DRIVER", ModuleTypeDxeRuntimeDriver),
new MyEnum("DXE_SAL_DRIVER", ModuleTypeDxeSalDriver), new MyEnum("DXE_SAL_DRIVER", ModuleTypeDxeSalDriver),
new MyEnum("DXE_SMM_DRIVER", ModuleTypeDxeSmmDriver), new MyEnum("DXE_SMM_DRIVER", ModuleTypeDxeSmmDriver),
@@ -315,4 +319,32 @@ public class CommonDefinition {
} }
} }
/**
* Remove deuplicat string in list
*
* This function is to duplicat string in list
*
* @param String[]
* String list.
* @return String[] String list which remove the duplicate string.
*/
public static String[] remDupString (String[] orgList){
Set<String> strList = new HashSet<String>();
String[] desList ;
if (orgList == null){
return new String[0];
}
for (int i = 0; i < orgList.length; i++){
strList.add(orgList[i]);
}
desList = new String[strList.size()];
Iterator item = strList.iterator();
int index = 0;
while (item.hasNext()){
desList[index] = (String)item.next();
index++;
}
return desList;
}
} }

View File

@@ -15,7 +15,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/ **/
package org.tianocore.build.exception; package org.tianocore.build.exception;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
/** /**
The class handle the exception throwed by entity class. The class handle the exception throwed by entity class.
@@ -35,6 +35,6 @@ public class GenBuildException extends EdkException {
super(); super();
} }
public GenBuildException(Exception e, String message){ public GenBuildException(Exception e, String message){
// super(e, message); super(e, message);
} }
} }

View File

@@ -15,7 +15,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/ **/
package org.tianocore.build.exception; package org.tianocore.build.exception;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
/** /**
The class handle the exception throwed by entity class. The class handle the exception throwed by entity class.
@@ -36,6 +36,6 @@ public class TianoToolsException extends EdkException {
} }
public TianoToolsException (Exception e, String message){ public TianoToolsException (Exception e, String message){
// super(e, message); super(e, message);
} }
} }

View File

@@ -33,16 +33,19 @@ import org.apache.tools.ant.taskdefs.Ant;
import org.apache.tools.ant.taskdefs.Property; import org.apache.tools.ant.taskdefs.Property;
import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlObject;
import org.tianocore.build.exception.EdkException;
import org.tianocore.build.global.GlobalData; import org.tianocore.build.global.GlobalData;
import org.tianocore.build.global.OutputManager; import org.tianocore.build.global.OutputManager;
import org.tianocore.build.global.SurfaceAreaQuery; import org.tianocore.build.global.SurfaceAreaQuery;
import org.tianocore.build.id.FpdModuleIdentification; import org.tianocore.build.id.FpdModuleIdentification;
import org.tianocore.build.id.ModuleIdentification; import org.tianocore.build.id.ModuleIdentification;
import org.tianocore.build.id.PlatformIdentification; import org.tianocore.build.id.PlatformIdentification;
import org.tianocore.build.pcd.action.ActionMessage;
import org.tianocore.build.pcd.action.CollectPCDAction;
import org.tianocore.build.pcd.exception.EntityException;
import org.tianocore.build.toolchain.ToolChainAttribute; import org.tianocore.build.toolchain.ToolChainAttribute;
import org.tianocore.build.toolchain.ToolChainElement; import org.tianocore.build.toolchain.ToolChainElement;
import org.tianocore.build.toolchain.ToolChainMap; import org.tianocore.build.toolchain.ToolChainMap;
import org.tianocore.exception.EdkException;
/** /**
<code>FpdParserTask</code> is an ANT task. The main function is parsing Framework <code>FpdParserTask</code> is an ANT task. The main function is parsing Framework
@@ -145,6 +148,18 @@ public class FpdParserTask extends Task {
// //
parseFpdFile(); parseFpdFile();
//
// Pcd Collection. Call CollectPCDAction to collect pcd info.
//
try {
System.out.println("Begin PCD collecttion!");
CollectPCDAction ca = new CollectPCDAction();
ca.perform(GlobalData.getWorkspacePath(),platformId.getFpdFile().getPath(),ActionMessage.NULL_MESSAGE_LEVEL);
System.out.println("End PCD collection!");
} catch (Exception e){
throw new BuildException(e.getMessage());
}
// //
// Prepare BUILD_DIR // Prepare BUILD_DIR
// //
@@ -187,6 +202,7 @@ public class FpdParserTask extends Task {
// //
// Ant call ${PLATFORM}_build.xml // Ant call ${PLATFORM}_build.xml
// //
Ant ant = new Ant(); Ant ant = new Ant();
ant.setProject(getProject()); ant.setProject(getProject());
ant.setAntfile(platformId.getFpdFile().getParent() + File.separatorChar + platformId.getName() + "_build.xml"); ant.setAntfile(platformId.getFpdFile().getParent() + File.separatorChar + platformId.getName() + "_build.xml");
@@ -391,7 +407,7 @@ public class FpdParserTask extends Task {
**/ **/
private void parseModuleSAFiles() throws EdkException{ private void parseModuleSAFiles() throws EdkException{
Map<FpdModuleIdentification, Map<String, XmlObject>> moduleSAs = SurfaceAreaQuery.getFpdModules(); Map<FpdModuleIdentification, Map<String, XmlObject>> moduleSAs = SurfaceAreaQuery.getFpdModules();
System.out.println("Nubmer: ##" + moduleSAs.size());
// //
// For every Module lists in FPD file. // For every Module lists in FPD file.
// //

View File

@@ -21,20 +21,21 @@ import org.apache.xmlbeans.XmlObject;
import org.tianocore.DbPathAndFilename; import org.tianocore.DbPathAndFilename;
import org.tianocore.FrameworkDatabaseDocument; import org.tianocore.FrameworkDatabaseDocument;
import org.tianocore.ModuleSurfaceAreaDocument; import org.tianocore.ModuleSurfaceAreaDocument;
import org.tianocore.PcdBuildDefinitionDocument;
import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea; import org.tianocore.ModuleSurfaceAreaDocument.ModuleSurfaceArea;
import org.tianocore.build.exception.EdkException;
import org.tianocore.build.id.FpdModuleIdentification; import org.tianocore.build.id.FpdModuleIdentification;
import org.tianocore.build.id.ModuleIdentification; import org.tianocore.build.id.ModuleIdentification;
import org.tianocore.build.id.PackageIdentification; import org.tianocore.build.id.PackageIdentification;
import org.tianocore.build.id.PlatformIdentification; import org.tianocore.build.id.PlatformIdentification;
import org.tianocore.build.pcd.entity.MemoryDatabaseManager;
import org.tianocore.build.toolchain.ToolChainAttribute; import org.tianocore.build.toolchain.ToolChainAttribute;
import org.tianocore.build.toolchain.ToolChainConfig; import org.tianocore.build.toolchain.ToolChainConfig;
import org.tianocore.build.toolchain.ToolChainElement; import org.tianocore.build.toolchain.ToolChainElement;
import org.tianocore.build.toolchain.ToolChainInfo; import org.tianocore.build.toolchain.ToolChainInfo;
import org.tianocore.build.toolchain.ToolChainKey; import org.tianocore.build.toolchain.ToolChainKey;
import org.tianocore.build.toolchain.ToolChainMap; import org.tianocore.build.toolchain.ToolChainMap;
//import org.tianocore.build.pcd.entity.MemoryDatabaseManager; import org.tianocore.exception.EdkException;
//import org.tianocore.logger.EdkLog; import org.tianocore.logger.EdkLog;
import java.io.File; import java.io.File;
import java.util.HashMap; import java.util.HashMap;
@@ -130,7 +131,7 @@ public class GlobalData {
private static Map<FpdModuleIdentification, ToolChainMap> moduleToolChainOption = new HashMap<FpdModuleIdentification, ToolChainMap>(); private static Map<FpdModuleIdentification, ToolChainMap> moduleToolChainOption = new HashMap<FpdModuleIdentification, ToolChainMap>();
private static Map<FpdModuleIdentification, ToolChainMap> moduleToolChainFamilyOption = new HashMap<FpdModuleIdentification, ToolChainMap>(); private static Map<FpdModuleIdentification, ToolChainMap> moduleToolChainFamilyOption = new HashMap<FpdModuleIdentification, ToolChainMap>();
// private static final MemoryDatabasseManager pcdDbManager = new MemoryDatabaseManager(); private static final MemoryDatabaseManager pcdDbManager = new MemoryDatabaseManager();
@@ -341,7 +342,7 @@ public class GlobalData {
// //
// First part: get the MSA files info // First part: get the MSA files info
// //
doc = getNativeMsa(moduleId); doc.putAll(getNativeMsa(moduleId));
// //
// Second part: put build options // Second part: put build options
@@ -413,6 +414,7 @@ public class GlobalData {
msaMap.put("PPIs", cloneXmlObject(msa.getPPIs(), true)); msaMap.put("PPIs", cloneXmlObject(msa.getPPIs(), true));
msaMap.put("Guids", cloneXmlObject(msa.getGuids(), true)); msaMap.put("Guids", cloneXmlObject(msa.getGuids(), true));
msaMap.put("Externs", cloneXmlObject(msa.getExterns(), true)); msaMap.put("Externs", cloneXmlObject(msa.getExterns(), true));
msaMap.put("PcdCoded", cloneXmlObject(msa.getPcdCoded(), true));
return msaMap; return msaMap;
} }
catch (Exception ex){ catch (Exception ex){
@@ -507,15 +509,16 @@ public class GlobalData {
/** /**
* return two values: {cName, GuidValue} * return two values: {cName, GuidValue}
*/ */
public static String[] getGuid(PackageIdentification[] packages, String name) public static String[] getGuid(List<PackageIdentification> packages, String name)
throws BuildException { throws BuildException {
if (packages == null) { if (packages == null) {
// throw Exception or not???? // throw Exception or not????
return new String[0]; return new String[0];
} }
String[] result = null; String[] result = null;
for (int i = 0; i < packages.length; i++) { Iterator item = packages.iterator();
Spd spd = spdTable.get(packages[i]); while (item.hasNext()){
Spd spd = spdTable.get(item.next());
// //
// If find one package defined the GUID // If find one package defined the GUID
// //
@@ -523,20 +526,22 @@ public class GlobalData {
return result; return result;
} }
} }
return null; return null;
} }
/** /**
* return two values: {cName, GuidValue} * return two values: {cName, GuidValue}
*/ */
public static String[] getPpiGuid(PackageIdentification[] packages, public static String[] getPpiGuid(List<PackageIdentification> packages,
String name) throws BuildException { String name) throws BuildException {
if (packages == null) { if (packages == null) {
return new String[0]; return new String[0];
} }
String[] result = null; String[] result = null;
for (int i = 0; i < packages.length; i++) { Iterator item = packages.iterator();
Spd spd = spdTable.get(packages[i]); while (item.hasNext()){
Spd spd = spdTable.get(item.next());
// //
// If find one package defined the Ppi GUID // If find one package defined the Ppi GUID
// //
@@ -551,18 +556,19 @@ public class GlobalData {
/** /**
* return two values: {cName, GuidValue} * return two values: {cName, GuidValue}
*/ */
public static String[] getProtocolGuid(PackageIdentification[] packages, public static String[] getProtocolGuid(List<PackageIdentification> packages,
String name) throws BuildException { String name) throws BuildException {
if (packages == null) { if (packages == null) {
return new String[0]; return new String[0];
} }
String[] result = null; String[] result = null;
for (int i = 0; i < packages.length; i++) { Iterator item = packages.iterator();
Spd spd = spdTable.get(packages[i]); while (item.hasNext()){
Spd spd = spdTable.get(item.next());
// //
// If find one package defined the protocol GUID // If find one package defined the protocol GUID
// //
if ((result = spd.getProtocol(name)) != null) { if ((result = spd.getProtocol(name))!= null){
return result; return result;
} }
} }
@@ -750,52 +756,61 @@ public class GlobalData {
// //
// for PCD // for PCD
// //
// public synchronized static MemoryDatabaseManager getPCDMemoryDBManager() { public synchronized static MemoryDatabaseManager getPCDMemoryDBManager() {
// return pcdDbManager; return pcdDbManager;
// } }
//
// For PCD get tokenSpaceGUid
//
public synchronized static String[] getGuidInfoFromCname(String cName){
String cNameGuid[] = null;
String guid = null;
Set set = spdTable.keySet();
Iterator iter = set.iterator();
while (iter.hasNext()){
Spd spd = (Spd) spdTable.get(iter.next());
guid = spd.getGuidFromCname(cName);
if (guid != null){
cNameGuid[0] = new String(cName);
cNameGuid[1] = new String(guid);
break;
}
}
return cNameGuid;
}
// //
// For PCD // For PCD
// //
/** public synchronized static Map<FpdModuleIdentification, XmlObject> getFpdModuleSaXmlObject(
* String xmlObjectName) {
* @param guidName Set<FpdModuleIdentification> fpdModuleSASet = fpdModuleSA.keySet();
* @return Iterator item = fpdModuleSASet.iterator();
*/
// public synchronized static String[] getGuidInfoGuid(String guidName) {
// String[] cNameGuid = null;
// Set set = spdTable.keySet();
// Iterator iter = set.iterator();
//
// while (iter.hasNext()) {
// Spd spd = (Spd) spdTable.get(iter.next());
// cNameGuid = spd.getGuidNameArray(guidName);
// if (cNameGuid != null) {
// break;
// }
// }
// return cNameGuid;
// }
//
// For PCD Map<FpdModuleIdentification, XmlObject> SAPcdBuildDef = new HashMap<FpdModuleIdentification, XmlObject>();
// Map<String, XmlObject> SANode = new HashMap<String, XmlObject>();
// public synchronized static Map<FpdModuleIdentification, XmlObject> getFpdModuleSaXmlObject( FpdModuleIdentification moduleId;
// String xmlObjectName) { while (item.hasNext()) {
// Set<FpdModuleIdentification> fpdModuleSASet = fpdModuleSA.keySet();
// Iterator item = fpdModuleSASet.iterator(); moduleId = (FpdModuleIdentification) item.next();
// SANode = fpdModuleSA.get(moduleId);
// Map<FpdModuleIdentification, XmlObject> SAPcdBuildDef = new HashMap<FpdModuleIdentification, XmlObject>(); try{
// Map<String, XmlObject> SANode = new HashMap<String, XmlObject>(); if (SANode.get(xmlObjectName)!= null){
// FpdModuleIdentification moduleId; SAPcdBuildDef.put(moduleId,
// while (item.hasNext()) { (XmlObject) SANode
// moduleId = (FpdModuleIdentification) item.next(); .get(xmlObjectName));
// SANode = fpdModuleSA.get(item.next());
// SAPcdBuildDef.put(moduleId, }
// (PcdBuildDefinitionDocument.PcdBuildDefinition) SANode
// .get(xmlObjectName));
// } } catch (Exception e){
// return SAPcdBuildDef; EdkLog.log(EdkLog.EDK_INFO, e.getMessage());
// } }
}
return SAPcdBuildDef;
}
} }

View File

@@ -66,6 +66,12 @@ public class Spd {
Map<String, String[]> guidInfo = new HashMap<String, String[]>(); Map<String, String[]> guidInfo = new HashMap<String, String[]>();
/// ///
/// Map of Guid info
/// Key: GuidCName
/// value: String Guid's GUID
///
Map<String, String> guidCnameInfo = new HashMap<String, String>();
/// Map of library class and its exposed header file. /// Map of library class and its exposed header file.
/// Key : library class name /// Key : library class name
/// value : library class corresponding header file /// value : library class corresponding header file
@@ -140,7 +146,7 @@ public class Spd {
// Change path seperator to system-dependent path separator // Change path seperator to system-dependent path separator
// //
File file = new File (header); File file = new File (header);
header = file.getParent(); header = file.getPath();
packageHeaderInfo.put(moduleType, header); packageHeaderInfo.put(moduleType, header);
} }
@@ -149,6 +155,17 @@ public class Spd {
// //
guidInfo.putAll(SurfaceAreaQuery.getSpdGuid()); guidInfo.putAll(SurfaceAreaQuery.getSpdGuid());
//
// For Pcd get TokenSpaceGuid
//
Set<String> key = guidInfo.keySet();
Iterator item = key.iterator();
String [] nameValue = new String[2];
while(item.hasNext()){
nameValue = guidInfo.get(item.next());
guidCnameInfo.put(nameValue[0], nameValue[1]);
}
// //
// initialize PPI info // initialize PPI info
// //
@@ -220,6 +237,13 @@ public class Spd {
return guidInfo.get(guidName); return guidInfo.get(guidName);
} }
/**
* return Guid Value.
*/
public String getGuidFromCname(String cName){
return guidCnameInfo.get(cName);
}
/** /**
getLibClassInclude getLibClassInclude
@@ -246,17 +270,5 @@ public class Spd {
return packageHeaderInfo.get(moduleType); return packageHeaderInfo.get(moduleType);
} }
/**
getGuidNameArray
This function is to get the GUID's CName and it's GUID according to
GUID's name
@param guidName Name of GUID
@return CName and GUID.
**/
public String[] getGuidNameArray(String guidName) {
return this.guidInfo.get(guidName);
}
} }

View File

@@ -27,6 +27,7 @@ import org.apache.xmlbeans.XmlNormalizedString;
import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.XmlString; import org.apache.xmlbeans.XmlString;
import org.tianocore.BuildOptionsDocument; import org.tianocore.BuildOptionsDocument;
import org.tianocore.CNameType;
import org.tianocore.DataIdDocument; import org.tianocore.DataIdDocument;
import org.tianocore.ExternsDocument; import org.tianocore.ExternsDocument;
import org.tianocore.FileNameConvention; import org.tianocore.FileNameConvention;
@@ -48,9 +49,11 @@ import org.tianocore.OptionDocument;
import org.tianocore.PPIsDocument; import org.tianocore.PPIsDocument;
import org.tianocore.PackageDependenciesDocument; import org.tianocore.PackageDependenciesDocument;
import org.tianocore.PackageHeadersDocument; import org.tianocore.PackageHeadersDocument;
import org.tianocore.PcdCodedDocument;
import org.tianocore.PlatformDefinitionsDocument; import org.tianocore.PlatformDefinitionsDocument;
import org.tianocore.PpiDeclarationsDocument; import org.tianocore.PpiDeclarationsDocument;
import org.tianocore.ProtocolDeclarationsDocument; import org.tianocore.ProtocolDeclarationsDocument;
import org.tianocore.Sentence;
import org.tianocore.SpdHeaderDocument; import org.tianocore.SpdHeaderDocument;
import org.tianocore.SupportedArchitectures; import org.tianocore.SupportedArchitectures;
import org.tianocore.FilenameDocument.Filename; import org.tianocore.FilenameDocument.Filename;
@@ -63,6 +66,7 @@ import org.tianocore.build.id.ModuleIdentification;
import org.tianocore.build.id.PackageIdentification; import org.tianocore.build.id.PackageIdentification;
import org.tianocore.build.id.PlatformIdentification; import org.tianocore.build.id.PlatformIdentification;
import org.tianocore.build.toolchain.ToolChainInfo; import org.tianocore.build.toolchain.ToolChainInfo;
import org.tianocore.logger.EdkLog;
/** /**
* SurfaceAreaQuery class is used to query Surface Area information from msa, * SurfaceAreaQuery class is used to query Surface Area information from msa,
@@ -624,8 +628,7 @@ public class SurfaceAreaQuery {
String[] entryPoints = new String[returns.length]; String[] entryPoints = new String[returns.length];
for (int i = 0; i < returns.length; ++i) { for (int i = 0; i < returns.length; ++i) {
entryPoints[i] = ((XmlNormalizedString) returns[i]) entryPoints[i] = ((CNameType) returns[i]).getStringValue();
.getStringValue();
} }
return entryPoints; return entryPoints;
@@ -689,7 +692,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
xPath = new String[] { "/Protocol[@SupArchList='" + arch + "']" }; xPath = new String[] { "/Protocol" };
} }
Object[] returns = get("Protocols", xPath); Object[] returns = get("Protocols", xPath);
@@ -700,7 +703,10 @@ public class SurfaceAreaQuery {
String[] protocolArray = new String[returns.length]; String[] protocolArray = new String[returns.length];
for (int i = 0; i < returns.length; i++) { for (int i = 0; i < returns.length; i++) {
protocolArray[i] = protocolList[i].getProtocolCName(); List<String> archList = protocolList[i].getSupArchList();
if (archList == null || archList.contains(arch)){
protocolArray[i] = protocolList[i].getProtocolCName();
}
} }
return protocolArray; return protocolArray;
} }
@@ -720,8 +726,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
xPath = new String[] { "/ProtocolNotify[@SupArchList='" + arch xPath = new String[] { "/ProtocolNotify" };
+ "']" };
} }
Object[] returns = get("Protocols", xPath); Object[] returns = get("Protocols", xPath);
@@ -731,7 +736,11 @@ public class SurfaceAreaQuery {
String[] protocolNotifyList = new String[returns.length]; String[] protocolNotifyList = new String[returns.length];
for (int i = 0; i < returns.length; i++) { for (int i = 0; i < returns.length; i++) {
protocolNotifyList[i] = ((ProtocolNotify) returns[i]).getProtocolNotifyCName(); List<String> archList = ((ProtocolNotify) returns[i]).getSupArchList();
if (archList == null || archList.contains(arch)){
protocolNotifyList[i] = ((ProtocolNotify) returns[i]).getProtocolNotifyCName();
}
} }
return protocolNotifyList; return protocolNotifyList;
@@ -790,7 +799,7 @@ public class SurfaceAreaQuery {
Object[] returns = get("Externs", xPath); Object[] returns = get("Externs", xPath);
if (returns != null && returns.length > 0) { if (returns != null && returns.length > 0) {
String[] stringArray = new String[returns.length]; String[] stringArray = new String[returns.length];
XmlNormalizedString[] doc = (XmlNormalizedString[]) returns; CNameType[] doc = (CNameType[]) returns;
for (int i = 0; i < returns.length; ++i) { for (int i = 0; i < returns.length; ++i) {
stringArray[i] = doc[i].getStringValue(); stringArray[i] = doc[i].getStringValue();
@@ -834,7 +843,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
xPath = new String[] { "/PpiNotify[@SupArchList='" + arch + "']" }; xPath = new String[] { "/PpiNotify" };
} }
Object[] returns = get("PPIs", xPath); Object[] returns = get("PPIs", xPath);
@@ -844,7 +853,11 @@ public class SurfaceAreaQuery {
String[] ppiNotifyList = new String[returns.length]; String[] ppiNotifyList = new String[returns.length];
for (int i = 0; i < returns.length; i++) { for (int i = 0; i < returns.length; i++) {
ppiNotifyList[i] = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getPpiNotifyCName(); List<String> archList = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getSupArchList();
if (archList == null || archList.contains(arch)){
ppiNotifyList[i] = ((PPIsDocument.PPIs.PpiNotify) returns[i]).getPpiNotifyCName();
}
} }
return ppiNotifyList; return ppiNotifyList;
@@ -869,7 +882,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
archXpath = "/PpiNotify[@SupArchList='" + arch + "']"; archXpath = "/PpiNotify";
if (usage != null && !usage.equals("")) { if (usage != null && !usage.equals("")) {
usageXpath = "/PpiNotify[@Usage='" + arch + "']"; usageXpath = "/PpiNotify[@Usage='" + arch + "']";
xPath = new String[] { archXpath, usageXpath }; xPath = new String[] { archXpath, usageXpath };
@@ -906,7 +919,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
xPath = new String[] { "/Ppi[@SupArchList='" + arch + "']" }; xPath = new String[] { "/Ppi" };
} }
Object[] returns = get("PPIs", xPath); Object[] returns = get("PPIs", xPath);
@@ -916,7 +929,11 @@ public class SurfaceAreaQuery {
String[] ppiList = new String[returns.length]; String[] ppiList = new String[returns.length];
for (int i = 0; i < returns.length; i++) { for (int i = 0; i < returns.length; i++) {
ppiList[i] = ((PPIsDocument.PPIs.Ppi) returns[i]).getPpiCName(); List<String> archList = ((PPIsDocument.PPIs.Ppi) returns[i]).getSupArchList();
if (archList == null || archList.contains(arch)){
ppiList[i] = ((PPIsDocument.PPIs.Ppi) returns[i]).getPpiCName();
}
} }
return ppiList; return ppiList;
} }
@@ -940,7 +957,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
archXpath = "/Ppi[@SupArchList='" + arch + "']"; archXpath = "/Ppi";
if (usage != null && !usage.equals("")) { if (usage != null && !usage.equals("")) {
usageXpath = "/Ppi[@Usage='" + arch + "']"; usageXpath = "/Ppi[@Usage='" + arch + "']";
xPath = new String[] { archXpath, usageXpath }; xPath = new String[] { archXpath, usageXpath };
@@ -975,9 +992,9 @@ public class SurfaceAreaQuery {
String[] xPath; String[] xPath;
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
xPath = new String[] { "/GuidName" }; xPath = new String[] { "/GuidCNames" };
} else { } else {
xPath = new String[] { "/GuidName[@SupArchList='" + arch + "']" }; xPath = new String[] { "/GuidCNames" };
} }
Object[] returns = get("Guids", xPath); Object[] returns = get("Guids", xPath);
@@ -986,7 +1003,11 @@ public class SurfaceAreaQuery {
} }
String[] guidList = new String[returns.length]; String[] guidList = new String[returns.length];
for (int i = 0; i < returns.length; i++) { for (int i = 0; i < returns.length; i++) {
guidList[i] = ((GuidsDocument.Guids.GuidCNames) returns[i]).getGuidCName(); List<String> archList = ((GuidsDocument.Guids.GuidCNames) returns[i]).getSupArchList();
if (archList == null || archList.contains(arch)){
guidList[i] = ((GuidsDocument.Guids.GuidCNames) returns[i]).getGuidCName();
}
} }
return guidList; return guidList;
@@ -1009,7 +1030,7 @@ public class SurfaceAreaQuery {
if (arch == null || arch.equals("")) { if (arch == null || arch.equals("")) {
return new String[0]; return new String[0];
} else { } else {
archXpath = "/GuidEntry[@SupArchList='" + arch + "']"; archXpath = "/GuidEntry";
if (usage != null && !usage.equals("")) { if (usage != null && !usage.equals("")) {
usageXpath = "/GuidEntry[@Usage='" + arch + "']"; usageXpath = "/GuidEntry[@Usage='" + arch + "']";
xPath = new String[] { archXpath, usageXpath }; xPath = new String[] { archXpath, usageXpath };
@@ -1096,7 +1117,7 @@ public class SurfaceAreaQuery {
String[] strings = new String[returns.length]; String[] strings = new String[returns.length];
for (int i = 0; i < returns.length; ++i) { for (int i = 0; i < returns.length; ++i) {
// TBD // TBD
// strings[i] = ((CName) returns[i]).getStringValue(); strings[i] = ((CNameType) returns[i]).getStringValue();
} }
return strings; return strings;
@@ -1113,8 +1134,8 @@ public class SurfaceAreaQuery {
Object[] returns = get("Externs", xPath); Object[] returns = get("Externs", xPath);
if (returns != null && returns.length > 0) { if (returns != null && returns.length > 0) {
// CName constructor = (CName) returns[0]; CNameType constructor = ((CNameType) returns[0]);
// return constructor.getStringValue(); return constructor.getStringValue();
} }
return null; return null;
@@ -1131,8 +1152,11 @@ public class SurfaceAreaQuery {
Object[] returns = get("Externs", xPath); Object[] returns = get("Externs", xPath);
if (returns != null && returns.length > 0) { if (returns != null && returns.length > 0) {
// CName destructor = (CName) returns[0]; //
// return destructor.getStringValue(); // Only support one Destructor function.
//
CNameType destructor = (CNameType) returns[0];
return destructor.getStringValue();
} }
return null; return null;
@@ -1646,9 +1670,8 @@ public class SurfaceAreaQuery {
String[] specificationList = new String[queryResult.length]; String[] specificationList = new String[queryResult.length];
for (int i = 0; i < queryResult.length; i++) { for (int i = 0; i < queryResult.length; i++) {
// specificationList[i] = ((SpecificationDocument.Specification) specificationList[i] = ((Sentence)queryResult[i])
// queryResult[i]) .getStringValue();
// .getStringValue();
} }
return specificationList; return specificationList;
} }
@@ -1765,6 +1788,9 @@ public class SurfaceAreaQuery {
guidPair[0] = entry.getCName(); guidPair[0] = entry.getCName();
guidPair[1] = entry.getGuidValue(); guidPair[1] = entry.getGuidValue();
guidDeclMap.put(entry.getName(), guidPair); guidDeclMap.put(entry.getName(), guidPair);
EdkLog.log(EdkLog.EDK_VERBOSE, entry.getName());
EdkLog.log(EdkLog.EDK_VERBOSE, guidPair[0]);
EdkLog.log(EdkLog.EDK_VERBOSE, guidPair[1]);
} }
return guidDeclMap; return guidDeclMap;
} }
@@ -1793,6 +1819,9 @@ public class SurfaceAreaQuery {
protocolPair[0] = entry.getCName(); protocolPair[0] = entry.getCName();
protocolPair[1] = entry.getGuidValue(); protocolPair[1] = entry.getGuidValue();
protoclMap.put(entry.getName(), protocolPair); protoclMap.put(entry.getName(), protocolPair);
EdkLog.log(EdkLog.EDK_VERBOSE, entry.getName());
EdkLog.log(EdkLog.EDK_VERBOSE, protocolPair[0]);
EdkLog.log(EdkLog.EDK_VERBOSE, protocolPair[1]);
} }
return protoclMap; return protoclMap;
} }
@@ -1885,4 +1914,29 @@ public class SurfaceAreaQuery {
return new ModuleSADocument.ModuleSA[0]; return new ModuleSADocument.ModuleSA[0];
} }
/**
Get name array of PCD in a module. In one module, token space
is same, and token name should not be conflicted.
@return String[]
**/
public static String[] getModulePcdEntryNameArray() {
PcdCodedDocument.PcdCoded.PcdEntry[] pcdEntries = null;
String[] results;
int index;
String[] xPath = new String[] {"/PcdEntry"};
Object[] returns = get ("PcdCoded", xPath);
if (returns == null) {
return new String[0];
}
pcdEntries = (PcdCodedDocument.PcdCoded.PcdEntry[])returns;
results = new String[pcdEntries.length];
for (index = 0; index < pcdEntries.length; index ++) {
results[index] = pcdEntries[index].getCName();
}
return results;
}
} }

View File

@@ -23,20 +23,36 @@ import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger; import java.math.BigInteger;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator; import java.util.Comparator;
import java.util.HashMap; import java.util.HashMap;
import java.util.Iterator;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.xmlbeans.XmlException; import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject; import org.apache.xmlbeans.XmlObject;
import org.tianocore.DynamicPcdBuildDefinitionsDocument;
import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions; import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions;
import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData;
import org.tianocore.DynamicPcdBuildDefinitionsDocument.DynamicPcdBuildDefinitions.PcdBuildData.SkuInfo;
import org.tianocore.FrameworkModulesDocument; import org.tianocore.FrameworkModulesDocument;
import org.tianocore.FrameworkPlatformDescriptionDocument; import org.tianocore.PcdDeclarationsDocument;
import org.tianocore.PlatformSurfaceAreaDocument;
import org.tianocore.PcdBuildDefinitionDocument;
import org.tianocore.PlatformSurfaceAreaDocument.PlatformSurfaceArea;
import org.tianocore.ModuleSADocument; import org.tianocore.ModuleSADocument;
import org.tianocore.ModuleSADocument.ModuleSA;
import org.tianocore.PackageSurfaceAreaDocument;
import org.tianocore.PcdBuildDefinitionDocument.PcdBuildDefinition; import org.tianocore.PcdBuildDefinitionDocument.PcdBuildDefinition;
import org.tianocore.build.autogen.CommonDefinition;
import org.tianocore.build.global.GlobalData; import org.tianocore.build.global.GlobalData;
import org.tianocore.build.global.SurfaceAreaQuery; import org.tianocore.build.global.SurfaceAreaQuery;
import org.tianocore.build.id.FpdModuleIdentification;
import org.tianocore.build.pcd.action.ActionMessage; import org.tianocore.build.pcd.action.ActionMessage;
import org.tianocore.build.pcd.entity.DynamicTokenValue; import org.tianocore.build.pcd.entity.DynamicTokenValue;
import org.tianocore.build.pcd.entity.MemoryDatabaseManager; import org.tianocore.build.pcd.entity.MemoryDatabaseManager;
@@ -44,6 +60,7 @@ import org.tianocore.build.pcd.entity.SkuInstance;
import org.tianocore.build.pcd.entity.Token; import org.tianocore.build.pcd.entity.Token;
import org.tianocore.build.pcd.entity.UsageInstance; import org.tianocore.build.pcd.entity.UsageInstance;
import org.tianocore.build.pcd.exception.EntityException; import org.tianocore.build.pcd.exception.EntityException;
import org.tianocore.logger.EdkLog;
import org.tianocore.ModuleTypeDef; import org.tianocore.ModuleTypeDef;
class CStructTypeDeclaration { class CStructTypeDeclaration {
@@ -407,6 +424,7 @@ class GuidTable {
Output.add("/* GuidTable */"); Output.add("/* GuidTable */");
Output.add("{"); Output.add("{");
if (al.size() == 0) { if (al.size() == 0) {
Output.add("\t" + getUuidCString(new UUID(0, 0))); Output.add("\t" + getUuidCString(new UUID(0, 0)));
} }
@@ -1824,12 +1842,25 @@ class PcdDatabase {
} }
class ModuleInfo { class ModuleInfo {
public ModuleSADocument.ModuleSA module; private String type;
public ModuleTypeDef.Enum type; private FpdModuleIdentification moduleId;
private PcdBuildDefinitionDocument.PcdBuildDefinition pcdBuildDef;
public ModuleInfo (ModuleSADocument.ModuleSA module, ModuleTypeDef.Enum type) {
this.module = module;
public ModuleInfo (FpdModuleIdentification moduleId, String type, XmlObject pcdDef) {
this.moduleId = moduleId;
this.type = type; this.type = type;
this.pcdBuildDef = ((PcdBuildDefinitionDocument)pcdDef).getPcdBuildDefinition();
}
public String getModuleType (){
return this.type;
}
public FpdModuleIdentification getModuleId (){
return this.moduleId;
}
public PcdBuildDefinitionDocument.PcdBuildDefinition getPcdBuildDef(){
return this.pcdBuildDef;
} }
} }
@@ -1851,7 +1882,10 @@ public class CollectPCDAction {
private int originalMessageLevel; private int originalMessageLevel;
/// Cache the fpd docment instance for private usage. /// Cache the fpd docment instance for private usage.
private FrameworkPlatformDescriptionDocument fpdDocInstance; private PlatformSurfaceAreaDocument fpdDocInstance;
/// xmlObject name
private static String xmlObjectName = "PcdBuildDefinition";
/** /**
Set WorkspacePath parameter for this action class. Set WorkspacePath parameter for this action class.
@@ -1919,7 +1953,7 @@ public class CollectPCDAction {
@throws EntityException Exception indicate failed to execute this action. @throws EntityException Exception indicate failed to execute this action.
**/ **/
private void execute() throws EntityException { public void execute() throws EntityException {
// //
// Get memoryDatabaseManager instance from GlobalData. // Get memoryDatabaseManager instance from GlobalData.
// The memoryDatabaseManager should be initialized for whatever build // The memoryDatabaseManager should be initialized for whatever build
@@ -1988,14 +2022,13 @@ public class CollectPCDAction {
List<ModuleInfo> allModules = new ArrayList<ModuleInfo>(); List<ModuleInfo> allModules = new ArrayList<ModuleInfo>();
ModuleInfo current = null; ModuleInfo current = null;
int index = 0; int index = 0;
org.tianocore.Components components = null;
FrameworkModulesDocument.FrameworkModules fModules = null; FrameworkModulesDocument.FrameworkModules fModules = null;
ModuleSADocument.ModuleSA[] modules = null; ModuleSADocument.ModuleSA[] modules = null;
HashMap<String, XmlObject> map = new HashMap<String, XmlObject>(); HashMap<String, XmlObject> map = new HashMap<String, XmlObject>();
if (fpdDocInstance == null) { if (fpdDocInstance == null) {
try { try {
fpdDocInstance = (FrameworkPlatformDescriptionDocument)XmlObject.Factory.parse(new File(fpdFilePath)); fpdDocInstance = (PlatformSurfaceAreaDocument)XmlObject.Factory.parse(new File(fpdFilePath));
} catch(IOException ioE) { } catch(IOException ioE) {
throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage()); throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());
} catch(XmlException xmlE) { } catch(XmlException xmlE) {
@@ -2004,14 +2037,28 @@ public class CollectPCDAction {
} }
map.put("FrameworkPlatformDescription", fpdDocInstance); //map.put("FrameworkPlatformDescription", fpdDocInstance);
SurfaceAreaQuery.setDoc(map); //SurfaceAreaQuery.setDoc(map);
modules = SurfaceAreaQuery.getFpdModuleSAs(); Map<FpdModuleIdentification,XmlObject>pcdBuildDef = GlobalData.getFpdModuleSaXmlObject(CollectPCDAction.xmlObjectName);
for (index = 0; index < modules.length; index ++) { Set<FpdModuleIdentification> pcdBuildKeySet = pcdBuildDef.keySet();
SurfaceAreaQuery.setDoc(GlobalData.getDoc(modules[index].getModuleName())); Iterator item = pcdBuildKeySet.iterator();
allModules.add(new ModuleInfo(modules[index], while (item.hasNext()){
ModuleTypeDef.Enum.forString(SurfaceAreaQuery.getModuleType()))); FpdModuleIdentification id = (FpdModuleIdentification)item.next();
try {
allModules.add(new ModuleInfo(id, id.getModule().getModuleType(),pcdBuildDef.get(id)));
} catch (Exception e){
System.out.println(e.getMessage());
//EdkLog.log(EdkLog.EDK_INFO,e.getMessage());
}
} }
// //modules = SurfaceAreaQuery.getFpdModuleSAs();
// for (index = 0; index < modules.length; index ++) {
// //SurfaceAreaQuery.setDoc(GlobalData.getDoc(modules[index].getModuleName()));
// allModules.add(new ModuleInfo(modules[index],
// ModuleTypeDef.Enum.forString(SurfaceAreaQuery.getModuleType())));
// }
return allModules; return allModules;
} }
@@ -2049,6 +2096,7 @@ public class CollectPCDAction {
String moduleName = null; String moduleName = null;
String datum = null; String datum = null;
int maxDatumSize = 0; int maxDatumSize = 0;
String tokenSpaceGuidString = null;
// //
// ---------------------------------------------- // ----------------------------------------------
@@ -2073,17 +2121,17 @@ public class CollectPCDAction {
// BUGBUG: For transition schema, we can *not* get module's version from // BUGBUG: For transition schema, we can *not* get module's version from
// <ModuleSAs>, It is work around code. // <ModuleSAs>, It is work around code.
// //
primaryKey1 = UsageInstance.getPrimaryKey(modules.get(index).module.getModuleName(), primaryKey1 = UsageInstance.getPrimaryKey(modules.get(index).getModuleId().getModule().getName(),
null, null,
null, null,
null, null,
modules.get(index).module.getArch().toString(), modules.get(index).getModuleId().getArch(),
null); null);
primaryKey2 = UsageInstance.getPrimaryKey(modules.get(index2).module.getModuleName(), primaryKey2 = UsageInstance.getPrimaryKey(modules.get(index2).getModuleId().getModule().getName(),
null, null,
null, null,
null, null,
modules.get(index2).module.getArch().toString(), modules.get(index2).getModuleId().getArch(),
null); null);
if (primaryKey1.equalsIgnoreCase(primaryKey2)) { if (primaryKey1.equalsIgnoreCase(primaryKey2)) {
isDuplicate = true; isDuplicate = true;
@@ -2098,13 +2146,13 @@ public class CollectPCDAction {
// //
// It is legal for a module does not contains ANY pcd build definitions. // It is legal for a module does not contains ANY pcd build definitions.
// //
if (modules.get(index).module.getPcdBuildDefinition() == null) { if (modules.get(index).getPcdBuildDef() == null) {
continue; continue;
} }
pcdBuildDataArray = modules.get(index).module.getPcdBuildDefinition().getPcdDataList(); pcdBuildDataArray = modules.get(index).getPcdBuildDef().getPcdDataList();
moduleName = modules.get(index).module.getModuleName(); moduleName = modules.get(index).getModuleId().getModule().getName();
// //
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
@@ -2112,13 +2160,14 @@ public class CollectPCDAction {
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// //
for (pcdIndex = 0; pcdIndex < pcdBuildDataArray.size(); pcdIndex ++) { for (pcdIndex = 0; pcdIndex < pcdBuildDataArray.size(); pcdIndex ++) {
//tokenSpaceGuidString = GlobalData.getGuidInfoFromCname(pcdBuildData.getTokenSpaceGuidCName())[1];
tokenSpaceGuidString = null;
pcdBuildData = pcdBuildDataArray.get(pcdIndex); pcdBuildData = pcdBuildDataArray.get(pcdIndex);
primaryKey = Token.getPrimaryKeyString(pcdBuildData.getCName(), primaryKey = Token.getPrimaryKeyString(pcdBuildData.getCName(),
translateSchemaStringToUUID(pcdBuildData.getTokenSpaceGuid())); translateSchemaStringToUUID(tokenSpaceGuidString));
pcdType = Token.getpcdTypeFromString(pcdBuildData.getItemType().toString()); pcdType = Token.getpcdTypeFromString(pcdBuildData.getItemType().toString());
datumType = Token.getdatumTypeFromString(pcdBuildData.getDatumType().toString()); datumType = Token.getdatumTypeFromString(pcdBuildData.getDatumType().toString());
tokenNumber = Long.decode(pcdBuildData.getToken().toString()); tokenNumber = Long.decode(pcdBuildData.getToken().toString());
if (pcdBuildData.getValue() != null) { if (pcdBuildData.getValue() != null) {
datum = pcdBuildData.getValue().toString(); datum = pcdBuildData.getValue().toString();
} else { } else {
@@ -2135,17 +2184,6 @@ public class CollectPCDAction {
throw new EntityException(exceptionString); throw new EntityException(exceptionString);
} }
//
// Check <TokenSpaceGuid> is exist? In future, because all schema verification will tools
// will check that, following checking code could be removed.
//
if (pcdBuildData.getTokenSpaceGuid() == null) {
exceptionString = String.format("[FPD file error] There is no <TokenSpaceGuid> for PCD %s in module %s! This is required!",
pcdBuildData.getCName(),
moduleName);
throw new EntityException(exceptionString);
}
// //
// ------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------
// 2.1.1), Do some necessary checking work for FixedAtBuild, FeatureFlag and PatchableInModule // 2.1.1), Do some necessary checking work for FixedAtBuild, FeatureFlag and PatchableInModule
@@ -2255,8 +2293,10 @@ public class CollectPCDAction {
// If the token is not in database, create a new token instance and add // If the token is not in database, create a new token instance and add
// a usage instance into this token in database. // a usage instance into this token in database.
// //
//String tokenSpaceString = GlobalData.getGuidInfoFromCname(pcdBuildData.getTokenSpaceGuidCName())[1];
String tokenSpaceString = null;
token = new Token(pcdBuildData.getCName(), token = new Token(pcdBuildData.getCName(),
translateSchemaStringToUUID(pcdBuildData.getTokenSpaceGuid())); translateSchemaStringToUUID(tokenSpaceString));
token.datumType = datumType; token.datumType = datumType;
token.tokenNumber = tokenNumber; token.tokenNumber = tokenNumber;
@@ -2294,9 +2334,9 @@ public class CollectPCDAction {
null, null,
null, null,
null, null,
modules.get(index).type, CommonDefinition.getModuleType(modules.get(index).getModuleType()),
pcdType, pcdType,
modules.get(index).module.getArch().toString(), modules.get(index).getModuleId().getArch(),
null, null,
datum, datum,
maxDatumSize); maxDatumSize);
@@ -2655,7 +2695,7 @@ public class CollectPCDAction {
// //
if (fpdDocInstance == null) { if (fpdDocInstance == null) {
try { try {
fpdDocInstance = (FrameworkPlatformDescriptionDocument)XmlObject.Factory.parse(new File(fpdFilePath)); fpdDocInstance = (PlatformSurfaceAreaDocument)XmlObject.Factory.parse(new File(fpdFilePath));
} catch(IOException ioE) { } catch(IOException ioE) {
throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage()); throw new EntityException("File IO error for xml file:" + fpdFilePath + "\n" + ioE.getMessage());
} catch(XmlException xmlE) { } catch(XmlException xmlE) {
@@ -2663,7 +2703,7 @@ public class CollectPCDAction {
} }
} }
dynamicPcdBuildDefinitions = fpdDocInstance.getFrameworkPlatformDescription().getDynamicPcdBuildDefinitions(); dynamicPcdBuildDefinitions = fpdDocInstance.getPlatformSurfaceArea().getDynamicPcdBuildDefinitions();
if (dynamicPcdBuildDefinitions == null) { if (dynamicPcdBuildDefinitions == null) {
exceptionString = String.format("[FPD file error] There are no <PcdDynamicBuildDescriptions> in FPD file but contains Dynamic type "+ exceptionString = String.format("[FPD file error] There are no <PcdDynamicBuildDescriptions> in FPD file but contains Dynamic type "+
"PCD entry %s in module %s!", "PCD entry %s in module %s!",
@@ -2674,18 +2714,10 @@ public class CollectPCDAction {
dynamicPcdBuildDataArray = dynamicPcdBuildDefinitions.getPcdBuildDataList(); dynamicPcdBuildDataArray = dynamicPcdBuildDefinitions.getPcdBuildDataList();
for (index = 0; index < dynamicPcdBuildDataArray.size(); index ++) { for (index = 0; index < dynamicPcdBuildDataArray.size(); index ++) {
// //String tokenSpaceGuidString = GlobalData.getGuidInfoFromCname(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuidCName())[1];
// Check <TokenSpaceGuid> is exist? In future, because all schema verification will tools String tokenSpaceGuidString = null;
// will check that, following checking code could be removed.
//
if (dynamicPcdBuildDataArray.get(index).getTokenSpaceGuid() == null) {
exceptionString = String.format("[FPD file error] There is no <TokenSpaceGuid> for PCD %s in <DynamicPcdBuildDefinitions>! This is required!",
dynamicPcdBuildDataArray.get(index).getCName());
throw new EntityException(exceptionString);
}
dynamicPrimaryKey = Token.getPrimaryKeyString(dynamicPcdBuildDataArray.get(index).getCName(), dynamicPrimaryKey = Token.getPrimaryKeyString(dynamicPcdBuildDataArray.get(index).getCName(),
translateSchemaStringToUUID(dynamicPcdBuildDataArray.get(index).getTokenSpaceGuid())); translateSchemaStringToUUID(tokenSpaceGuidString));
if (dynamicPrimaryKey.equalsIgnoreCase(token.getPrimaryKeyString())) { if (dynamicPrimaryKey.equalsIgnoreCase(token.getPrimaryKeyString())) {
return dynamicPcdBuildDataArray.get(index); return dynamicPcdBuildDataArray.get(index);
} }
@@ -2880,14 +2912,22 @@ public class CollectPCDAction {
// //
// Get variable guid string according to the name of guid which will be mapped into a GUID in SPD file. // Get variable guid string according to the name of guid which will be mapped into a GUID in SPD file.
// //
variableGuidString = GlobalData.getGuidInfoGuid(skuInfoList.get(index).getVariableGuid().toString()); variableGuidString = GlobalData.getGuidInfoFromCname(skuInfoList.get(index).getVariableGuid().toString());
if (variableGuidString == null) { if (variableGuidString == null) {
throw new EntityException(String.format("[GUID Error] For dynamic PCD %s, the variable guid %s can be found in all SPD file!", throw new EntityException(String.format("[GUID Error] For dynamic PCD %s, the variable guid %s can be found in all SPD file!",
token.cName, token.cName,
skuInfoList.get(index).getVariableGuid().toString())); skuInfoList.get(index).getVariableGuid().toString()));
} }
String variableStr = skuInfoList.get(index).getVariableName();
Pattern pattern = Pattern.compile("0x([a-fA-F0-9]){4}");
Matcher matcher = pattern.matcher(variableStr);
List<String> varNameList = new ArrayList<String>();
while (matcher.find()){
String str = variableStr.substring(matcher.start(),matcher.end());
varNameList.add(str);
}
skuInstance.value.setHiiData(skuInfoList.get(index).getVariableName(), skuInstance.value.setHiiData(varNameList,
translateSchemaStringToUUID(variableGuidString[1]), translateSchemaStringToUUID(variableGuidString[1]),
skuInfoList.get(index).getVariableOffset(), skuInfoList.get(index).getVariableOffset(),
skuInfoList.get(index).getHiiDefaultValue().toString()); skuInfoList.get(index).getHiiDefaultValue().toString());
@@ -3044,8 +3084,8 @@ public class CollectPCDAction {
ca.setWorkspacePath("m:/tianocore/edk2"); ca.setWorkspacePath("m:/tianocore/edk2");
ca.setFPDFilePath("m:/tianocore/edk2/EdkNt32Pkg/Nt32.fpd"); ca.setFPDFilePath("m:/tianocore/edk2/EdkNt32Pkg/Nt32.fpd");
ca.setActionMessageLevel(ActionMessage.MAX_MESSAGE_LEVEL); ca.setActionMessageLevel(ActionMessage.MAX_MESSAGE_LEVEL);
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", // GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
"m:/tianocore/edk2"); // "m:/tianocore/edk2");
ca.execute(); // ca.execute();
} }
} }

View File

@@ -19,11 +19,15 @@ package org.tianocore.build.pcd.action;
import java.io.File; import java.io.File;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID; import java.util.UUID;
import java.util.regex.Matcher; import java.util.regex.Matcher;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import org.apache.xmlbeans.XmlObject;
import org.tianocore.build.global.GlobalData; import org.tianocore.build.global.GlobalData;
import org.tianocore.build.global.SurfaceAreaQuery;
import org.tianocore.build.pcd.entity.MemoryDatabaseManager; import org.tianocore.build.pcd.entity.MemoryDatabaseManager;
import org.tianocore.build.pcd.entity.Token; import org.tianocore.build.pcd.entity.Token;
import org.tianocore.build.pcd.entity.UsageInstance; import org.tianocore.build.pcd.entity.UsageInstance;
@@ -167,35 +171,166 @@ public class PCDAutoGenAction extends BuildAction {
return cAutoGenString; return cAutoGenString;
} }
// /**
// Construct function
//
// This function mainly initialize some member variable.
//
// @param moduleName Parameter of this action class.
// @param isEmulatedPCDDriver Parameter of this action class.
// **/
// public PCDAutoGenAction(String moduleName,
// UUID moduleGuid,
// String packageName,
// UUID packageGuid,
// String arch,
// String version,
// boolean isBuildUsedLibrary,
// String[] pcdNameArray) {
// dbManager = null;
// hAutoGenString = "";
// cAutoGenString = "";
//
// setModuleName(moduleName);
// setModuleGuid(moduleGuid);
// setPackageName(packageName);
// setPackageGuid(packageGuid);
// setPcdNameArray(pcdNameArray);
// setArch(arch);
// setVersion(version);
// setIsBuildUsedLibrary(isBuildUsedLibrary);
// }
/** /**
Construct function Construct function
This function mainly initialize some member variable. This function mainly initialize some member variable.
@param moduleName Parameter of this action class. @param moduleName Parameter of this action class.
@param isEmulatedPCDDriver Parameter of this action class. @param isEmulatedPCDDriver Parameter of this action class.
**/ **/
public PCDAutoGenAction(String moduleName, public PCDAutoGenAction(String moduleName,
UUID moduleGuid, String moduleGuidString,
String packageName, String packageName,
UUID packageGuid, String packageGuidString,
String arch, String arch,
String version, String version,
boolean isBuildUsedLibrary, boolean isBuildUsedLibrary,
String[] pcdNameArray) { String[] pcdNameArray)
dbManager = null; throws BuildActionException {
hAutoGenString = ""; dbManager = null;
cAutoGenString = ""; hAutoGenString = "";
cAutoGenString = "";
try {
setModuleName(moduleName);
setModuleGuid(translateSchemaStringToUUID(moduleGuidString));
setPackageName(packageName);
setPackageGuid(translateSchemaStringToUUID(packageGuidString));
setPcdNameArray(pcdNameArray);
setArch(arch);
setVersion(version);
setIsBuildUsedLibrary(isBuildUsedLibrary);
setModuleName(moduleName); if (isBuildUsedLibrary) {
setModuleGuid(moduleGuid); System.out.println("Build for library");
setPackageName(packageName); for (int index = 0; index < pcdNameArray.length; index ++) {
setPackageGuid(packageGuid); System.out.println(pcdNameArray[index]);
setPcdNameArray(pcdNameArray); }
setArch(arch); }
setVersion(version); } catch (EntityException e){
setIsBuildUsedLibrary(isBuildUsedLibrary); throw new BuildActionException(e.getMessage());
} }
}
/**
Translate the schema string to UUID instance.
In schema, the string of UUID is defined as following two types string:
1) GuidArrayType: pattern = 0x[a-fA-F0-9]{1,8},( )*0x[a-fA-F0-9]{1,4},(
)*0x[a-fA-F0-9]{1,4}(,( )*\{)?(,?( )*0x[a-fA-F0-9]{1,2}){8}( )*(\})?
2) GuidNamingConvention: pattern =
[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}
This function will convert string and create uuid instance.
@param uuidString UUID string in XML file
@return UUID UUID instance
**/
private UUID translateSchemaStringToUUID(String uuidString)
throws EntityException {
String temp;
String[] splitStringArray;
int index;
int chIndex;
int chLen;
if (uuidString == null) {
return null;
}
if (uuidString.length() == 0) {
return null;
}
if (uuidString.equals("0") ||
uuidString.equalsIgnoreCase("0x0")) {
return new UUID(0, 0);
}
uuidString = uuidString.replaceAll("\\{", "");
uuidString = uuidString.replaceAll("\\}", "");
//
// If the UUID schema string is GuidArrayType type then need translate
// to GuidNamingConvention type at first.
//
if ((uuidString.charAt(0) == '0') && ((uuidString.charAt(1) == 'x') || (uuidString.charAt(1) == 'X'))) {
splitStringArray = uuidString.split("," );
if (splitStringArray.length != 11) {
throw new EntityException ("[FPD file error] Wrong format for UUID string: " + uuidString);
}
//
// Remove blank space from these string and remove header string "0x"
//
for (index = 0; index < 11; index ++) {
splitStringArray[index] = splitStringArray[index].trim();
splitStringArray[index] = splitStringArray[index].substring(2, splitStringArray[index].length());
}
//
// Add heading '0' to normalize the string length
//
for (index = 3; index < 11; index ++) {
chLen = splitStringArray[index].length();
for (chIndex = 0; chIndex < 2 - chLen; chIndex ++) {
splitStringArray[index] = "0" + splitStringArray[index];
}
}
//
// construct the final GuidNamingConvention string
//
temp = String.format("%s-%s-%s-%s%s-%s%s%s%s%s%s",
splitStringArray[0],
splitStringArray[1],
splitStringArray[2],
splitStringArray[3],
splitStringArray[4],
splitStringArray[5],
splitStringArray[6],
splitStringArray[7],
splitStringArray[8],
splitStringArray[9],
splitStringArray[10]);
uuidString = temp;
}
return UUID.fromString(uuidString);
}
/** /**
check the parameter for action class. check the parameter for action class.
@@ -265,12 +400,14 @@ public class PCDAutoGenAction extends BuildAction {
dbManager.UsageInstanceContext = usageInstanceArray; dbManager.UsageInstanceContext = usageInstanceArray;
dbManager.CurrentModuleName = moduleName; dbManager.CurrentModuleName = moduleName;
} else { } else {
System.out.println(String.format("Generate %s 's library", dbManager.CurrentModuleName));
usageContext = dbManager.UsageInstanceContext; usageContext = dbManager.UsageInstanceContext;
// //
// For building MDE package, although all module are library, but PCD entries of // For building MDE package, although all module are library, but PCD entries of
// these library should be used to autogen. // these library should be used to autogen.
// //
if (usageContext == null) { if (usageContext == null) {
System.out.println("context is null");
usageInstanceArray = dbManager.getUsageInstanceArrayByModuleName(moduleName, usageInstanceArray = dbManager.getUsageInstanceArrayByModuleName(moduleName,
moduleGuid, moduleGuid,
packageName, packageName,
@@ -279,6 +416,7 @@ public class PCDAutoGenAction extends BuildAction {
version); version);
} else { } else {
usageInstanceArray = new ArrayList<UsageInstance>(); usageInstanceArray = new ArrayList<UsageInstance>();
System.out.println("context is not null!");
// //
// Remove PCD entries which are not belong to this library. // Remove PCD entries which are not belong to this library.
// //
@@ -289,6 +427,7 @@ public class PCDAutoGenAction extends BuildAction {
for (index2 = 0; index2 < pcdNameArray.length; index2 ++) { for (index2 = 0; index2 < pcdNameArray.length; index2 ++) {
if (pcdNameArray[index2].equalsIgnoreCase(usageContext.get(index).parentToken.cName)) { if (pcdNameArray[index2].equalsIgnoreCase(usageContext.get(index).parentToken.cName)) {
System.out.println("Found! for PCD entry " + pcdNameArray[index2]);
usageInstanceArray.add(usageContext.get(index)); usageInstanceArray.add(usageContext.get(index));
break; break;
} }
@@ -404,7 +543,7 @@ public class PCDAutoGenAction extends BuildAction {
// //
CollectPCDAction collectionAction = new CollectPCDAction(); CollectPCDAction collectionAction = new CollectPCDAction();
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
WorkSpace); WorkSpace,null);
try { try {
collectionAction.perform(WorkSpace, collectionAction.perform(WorkSpace,
@@ -417,18 +556,18 @@ public class PCDAutoGenAction extends BuildAction {
// //
// Then execute the PCDAuotoGenAction to get generated Autogen.h and Autogen.c // Then execute the PCDAuotoGenAction to get generated Autogen.h and Autogen.c
// //
PCDAutoGenAction autogenAction = new PCDAutoGenAction("PcdPeim", // PCDAutoGenAction autogenAction = new PCDAutoGenAction("MonoStatusCode",
null, // null,
null, // null,
null, // null,
"IA32", // "IA32",
null, // null,
true, // false,
nameArray); // nameArray);
autogenAction.execute(); // autogenAction.execute();
//
System.out.println(autogenAction.OutputH()); // System.out.println(autogenAction.OutputH());
System.out.println("WQWQWQWQWQ"); // System.out.println("WQWQWQWQWQ");
System.out.println(autogenAction.OutputC()); // System.out.println(autogenAction.OutputC());
} }
} }

View File

@@ -92,7 +92,7 @@ public class ShowPCDDatabaseAction extends UIAction {
// Initialize global data. // Initialize global data.
// //
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db", GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
workspacePath); workspacePath,null);
// //
// Collect PCD information. // Collect PCD information.

View File

@@ -20,6 +20,7 @@ package org.tianocore.build.pcd.entity;
import java.util.UUID; import java.util.UUID;
import org.tianocore.ModuleTypeDef; import org.tianocore.ModuleTypeDef;
import org.tianocore.build.autogen.CommonDefinition;
import org.tianocore.build.pcd.exception.EntityException; import org.tianocore.build.pcd.exception.EntityException;
/** /**
@@ -71,7 +72,7 @@ public class UsageInstance {
/// ///
/// The module type for this usage instance. /// The module type for this usage instance.
/// ///
public ModuleTypeDef.Enum moduleType; public int moduleType;
/// ///
/// The value of the PCD in this usage instance. /// The value of the PCD in this usage instance.
@@ -115,7 +116,7 @@ public class UsageInstance {
UUID moduleGUID, UUID moduleGUID,
String packageName, String packageName,
UUID packageGUID, UUID packageGUID,
ModuleTypeDef.Enum moduleType, int moduleType,
Token.PCD_TYPE modulePcdType, Token.PCD_TYPE modulePcdType,
String arch, String arch,
String version, String version,
@@ -178,8 +179,8 @@ public class UsageInstance {
@return boolean @return boolean
*/ */
public boolean isPeiPhaseComponent() { public boolean isPeiPhaseComponent() {
if ((moduleType == ModuleTypeDef.PEI_CORE) || if ((moduleType == CommonDefinition.ModuleTypePeiCore) ||
(moduleType == ModuleTypeDef.PEIM)) { (moduleType == CommonDefinition.ModuleTypePeim)) {
return true; return true;
} }
return false; return false;
@@ -190,12 +191,12 @@ public class UsageInstance {
// BugBug: May need confirmation on which type of module can // BugBug: May need confirmation on which type of module can
// make use of Dynamic(EX) PCD entry. // make use of Dynamic(EX) PCD entry.
// //
if ((moduleType == ModuleTypeDef.DXE_DRIVER) || if ((moduleType == CommonDefinition.ModuleTypeDxeDriver) ||
(moduleType == ModuleTypeDef.DXE_RUNTIME_DRIVER) || (moduleType == CommonDefinition.ModuleTypeDxeRuntimeDriver) ||
(moduleType == ModuleTypeDef.DXE_SAL_DRIVER) || (moduleType == CommonDefinition.ModuleTypeDxeSalDriver) ||
(moduleType == ModuleTypeDef.DXE_SMM_DRIVER) || (moduleType == CommonDefinition.ModuleTypeDxeSmmDriver) ||
(moduleType == ModuleTypeDef.UEFI_DRIVER) || (moduleType == CommonDefinition.ModuleTypeUefiDriver) ||
(moduleType == ModuleTypeDef.UEFI_APPLICATION) (moduleType == CommonDefinition.ModuleTypeUefiApplication)
) { ) {
return true; return true;
} }

View File

@@ -14,7 +14,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/ **/
package org.tianocore.build.toolchain; package org.tianocore.build.toolchain;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File; import java.io.File;

View File

@@ -17,7 +17,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
package org.tianocore.build.toolchain; package org.tianocore.build.toolchain;
import org.apache.tools.ant.BuildException; import org.apache.tools.ant.BuildException;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
import org.tianocore.build.toolchain.ToolChainKey; import org.tianocore.build.toolchain.ToolChainKey;
import org.tianocore.build.toolchain.ToolChainMap; import org.tianocore.build.toolchain.ToolChainMap;

View File

@@ -24,7 +24,7 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
public class ToolChainKey implements java.io.Serializable, Comparable<ToolChainKey> { public class ToolChainKey implements java.io.Serializable, Comparable<ToolChainKey> {

View File

@@ -22,7 +22,7 @@ import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.tianocore.build.exception.EdkException; import org.tianocore.exception.EdkException;
public class ToolChainMap { public class ToolChainMap {