Only Check the buffer var store CheckBox question to the boolean type according to... master origin/HEAD origin/master
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 3 Sep 2008 01:49:49 +0000 (01:49 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 3 Sep 2008 01:49:49 +0000 (01:49 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1321 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/VfrCompile/VfrCompiler.cpp
Source/C/VfrCompile/VfrCompiler.h
Source/C/VfrCompile/VfrSyntax.g
Source/C/VfrCompile/VfrUtilityLib.cpp
Source/C/VfrCompile/VfrUtilityLib.h

index 30b9071..52a8217 100644 (file)
@@ -369,7 +369,7 @@ CVfrCompiler::Usage (
   UINT32 Index;\r
   CONST  CHAR8 *Help[] = {\r
     " ", \r
-    "VfrCompile version " VFR_COMPILER_VERSION,\r
+    "VfrCompile version " VFR_COMPILER_VERSION VFR_COMPILER_UPDATE_TIME,\r
     " ",\r
     "Usage: VfrCompile [options] VfrFile",\r
     " ",\r
index 32d2e54..fd7a2bd 100644 (file)
@@ -22,8 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include "VfrUtilityLib.h"\r
 \r
 #define PROGRAM_NAME                       "VfrCompile"\r
-#define VFR_COMPILER_VERSION               "1.95 (UEFI 2.1)"\r
-\r
+#define VFR_COMPILER_VERSION               " 1.95 (UEFI 2.1)"\r
+#define VFR_COMPILER_UPDATE_TIME           " updated on 2008/09/03"\r
 //\r
 // This is how we invoke the C preprocessor on the VFR source file\r
 // to resolve #defines, #includes, etc. To make C source files\r
index fdb4626..4a114c5 100644 (file)
@@ -1339,7 +1339,8 @@ vfrStatementCheckBox :
                                                           _PCATCH (mCVfrVarDataTypeDB.GetDataTypeSize (_GET_CURRQEST_DATATYPE(), &DataTypeSize), L->getLine(), "CheckBox varid is not the valid data type");\r
                                                           if (DataTypeSize != 0 && DataTypeSize != _GET_CURRQEST_VARSIZE()) {\r
                                                             _PCATCH (VFR_RETURN_INVALID_PARAMETER, L->getLine(), "CheckBox varid doesn't support array");\r
-                                                          } else if (_GET_CURRQEST_VARSIZE() != sizeof (BOOLEAN)) {\r
+                                                          } else if ((mCVfrDataStorage.GetVarStoreType (_GET_CURRQEST_VARTINFO().mVarStoreId) == EFI_VFR_VARSTORE_BUFFER) &&\r
+                                                                    (_GET_CURRQEST_VARSIZE() != sizeof (BOOLEAN))) {\r
                                                             _PCATCH (VFR_RETURN_INVALID_PARAMETER, L->getLine(), "CheckBox varid only support BOOLEAN data type");\r
                                                           }\r
                                                        >>\r
index 7388950..7423ea3 100644 (file)
@@ -1647,6 +1647,44 @@ CVfrDataStorage::GetVarStoreType (
   return VFR_RETURN_UNDEFINED;\r
 }\r
 \r
+EFI_VFR_VARSTORE_TYPE\r
+CVfrDataStorage::GetVarStoreType (\r
+  IN  EFI_VARSTORE_ID        VarStoreId\r
+  )\r
+{\r
+  SVfrVarStorageNode    *pNode;\r
+  EFI_VFR_VARSTORE_TYPE VarStoreType;\r
+\r
+  VarStoreType = EFI_VFR_VARSTORE_INVALID;\r
+\r
+  if (VarStoreId == EFI_VARSTORE_ID_INVALID) {\r
+    return VarStoreType;\r
+  }\r
+\r
+  for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {\r
+    if (pNode->mVarStoreId == VarStoreId) {\r
+      VarStoreType = pNode->mVarStoreType;\r
+      return VarStoreType;\r
+    }\r
+  }\r
+\r
+  for (pNode = mEfiVarStoreList; pNode != NULL; pNode = pNode->mNext) {\r
+    if (pNode->mVarStoreId == VarStoreId) {\r
+      VarStoreType = pNode->mVarStoreType;\r
+      return VarStoreType;\r
+    }\r
+  }\r
+\r
+  for (pNode = mNameVarStoreList; pNode != NULL; pNode = pNode->mNext) {\r
+    if (pNode->mVarStoreId == VarStoreId) {\r
+      VarStoreType = pNode->mVarStoreType;\r
+      return VarStoreType;\r
+    }\r
+  }\r
+\r
+  return VarStoreType;\r
+}\r
+\r
 EFI_VFR_RETURN_CODE\r
 CVfrDataStorage::GetVarStoreName (\r
   IN  EFI_VARSTORE_ID VarStoreId, \r
index d169e2d..f178f1f 100644 (file)
@@ -301,6 +301,7 @@ public:
 \r
   EFI_VFR_RETURN_CODE GetVarStoreId (IN CHAR8 *, OUT EFI_VARSTORE_ID *);\r
   EFI_VFR_RETURN_CODE GetVarStoreType (IN CHAR8 *, OUT EFI_VFR_VARSTORE_TYPE &);\r
+  EFI_VFR_VARSTORE_TYPE GetVarStoreType (IN EFI_VARSTORE_ID);\r
   EFI_VFR_RETURN_CODE GetVarStoreName (IN EFI_VARSTORE_ID, OUT CHAR8 **);\r
 \r
   EFI_VFR_RETURN_CODE GetBufferVarStoreDataTypeName (IN CHAR8 *, OUT CHAR8 **);\r