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
#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
_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
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
\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