From cd0170f5b01ecc3c5ae94a3ae9d357319c29887a Mon Sep 17 00:00:00 2001 From: klu2 Date: Thu, 22 Jun 2006 05:39:54 +0000 Subject: [PATCH] 1) Change the schema type for 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 --- .../build/pcd/action/CollectPCDAction.java | 36 ++++++++++++++----- Tools/XMLSchema/FrameworkDataElements.xsd | 2 +- 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 skuInfoList = null; DynamicPcdBuildDefinitions.PcdBuildData dynamicInfo = null; @@ -2240,7 +2241,9 @@ public class CollectPCDAction { "file, who use HII, but there is no 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 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 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 @@ - +