summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-22 05:39:54 +0000
committerklu2 <klu2@6f19259b-4bc3-4df7-8a09-765794883524>2006-06-22 05:39:54 +0000
commitcd0170f5b01ecc3c5ae94a3ae9d357319c29887a (patch)
tree6903818ea99054bbf2088e72b29f5612555775e3
parent61d66c136c9f538729650fe1758f4b9e180bc34a (diff)
downloadedk2-platforms-cd0170f5b01ecc3c5ae94a3ae9d357319c29887a.tar.xz
1) Change the schema type for <VariableGuid> used in PCD HiiEnable group in FPD file.
2) Modify PCD tools to support that. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@591 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java36
-rw-r--r--Tools/XMLSchema/FrameworkDataElements.xsd2
2 files changed, 28 insertions, 10 deletions
diff --git a/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java b/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java
index f9de63fc0d..dc60cc6eb7 100644
--- a/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java
+++ b/Tools/Source/GenBuild/org/tianocore/build/pcd/action/CollectPCDAction.java
@@ -2133,6 +2133,7 @@ public class CollectPCDAction {
Token.PCD_TYPE pcdType = Token.PCD_TYPE.UNKNOWN;
int tokenNumber = 0;
String hiiDefaultValue = null;
+ String[] variableGuidString = null;
List<DynamicPcdBuildDefinitions.PcdBuildData.SkuInfo> skuInfoList = null;
DynamicPcdBuildDefinitions.PcdBuildData dynamicInfo = null;
@@ -2240,7 +2241,9 @@ public class CollectPCDAction {
"file, who use HII, but there is no <VariableGuid> defined for Sku %d data!",
token.cName,
index);
-
+ if (exceptionString != null) {
+ throw new EntityException(exceptionString);
+ }
}
if (skuInfoList.get(index).getVariableOffset() == null) {
@@ -2248,6 +2251,9 @@ public class CollectPCDAction {
"file, who use HII, but there is no <VariableOffset> defined for Sku %d data!",
token.cName,
index);
+ if (exceptionString != null) {
+ throw new EntityException(exceptionString);
+ }
}
if (skuInfoList.get(index).getHiiDefaultValue() == null) {
@@ -2255,12 +2261,11 @@ public class CollectPCDAction {
"file, who use HII, but there is no <HiiDefaultValue> defined for Sku %d data!",
token.cName,
index);
+ if (exceptionString != null) {
+ throw new EntityException(exceptionString);
+ }
}
- if (exceptionString != null) {
- throw new EntityException(exceptionString);
- }
-
if (skuInfoList.get(index).getHiiDefaultValue() != null) {
hiiDefaultValue = skuInfoList.get(index).getHiiDefaultValue().toString();
} else {
@@ -2283,8 +2288,18 @@ public class CollectPCDAction {
index));
}
+ //
+ // 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());
+ 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!",
+ token.cName,
+ skuInfoList.get(index).getVariableGuid().toString()));
+ }
+
skuInstance.value.setHiiData(skuInfoList.get(index).getVariableName(),
- translateSchemaStringToUUID(skuInfoList.get(index).getVariableGuid().toString()),
+ translateSchemaStringToUUID(variableGuidString[1]),
skuInfoList.get(index).getVariableOffset(),
skuInfoList.get(index).getHiiDefaultValue().toString());
token.skuData.add(skuInstance);
@@ -2350,6 +2365,9 @@ public class CollectPCDAction {
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.
@@ -2434,11 +2452,11 @@ public class CollectPCDAction {
**/
public static void main(String argv[]) throws EntityException {
CollectPCDAction ca = new CollectPCDAction();
- ca.setWorkspacePath("m:/tianocore_latest/edk2");
- ca.setFPDFilePath("m:/tianocore_latest/edk2/EdkNt32Pkg/Nt32.fpd");
+ ca.setWorkspacePath("m:/tianocore/edk2");
+ ca.setFPDFilePath("m:/tianocore/edk2/EdkNt32Pkg/Nt32.fpd");
ca.setActionMessageLevel(ActionMessage.MAX_MESSAGE_LEVEL);
GlobalData.initInfo("Tools" + File.separator + "Conf" + File.separator + "FrameworkDatabase.db",
- "m:/tianocore_latest/edk2");
+ "m:/tianocore/edk2");
ca.execute();
}
}
diff --git a/Tools/XMLSchema/FrameworkDataElements.xsd b/Tools/XMLSchema/FrameworkDataElements.xsd
index 5d9966d740..d07712a663 100644
--- a/Tools/XMLSchema/FrameworkDataElements.xsd
+++ b/Tools/XMLSchema/FrameworkDataElements.xsd
@@ -1245,7 +1245,7 @@
</xs:annotation>
<xs:sequence>
<xs:element minOccurs="1" maxOccurs="1" name="VariableName" type="VariableNameDataType"/>
- <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="VariableGuidType"/>
+ <xs:element minOccurs="0" maxOccurs="1" name="VariableGuid" type="C_NameType"/>
<xs:element minOccurs="1" maxOccurs="1" name="VariableOffset" type="Hex64BitDataType"/>
<xs:element minOccurs="1" maxOccurs="1" name="HiiDefaultValue" type="DefaultValueType"/>
</xs:sequence>