Skip to content

Commit

Permalink
Only Check the buffer var store CheckBox question to the boolean type…
Browse files Browse the repository at this point in the history
… according to UEFI spec.

git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1321 7335b38e-4728-0410-8992-fb3ffe349368
  • Loading branch information
lgao4 committed Sep 3, 2008
1 parent d4d27a6 commit 2762e82
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 4 deletions.
2 changes: 1 addition & 1 deletion Source/C/VfrCompile/VfrCompiler.cpp
Expand Up @@ -369,7 +369,7 @@ CVfrCompiler::Usage (
UINT32 Index;
CONST CHAR8 *Help[] = {
" ",
"VfrCompile version " VFR_COMPILER_VERSION,
"VfrCompile version " VFR_COMPILER_VERSION VFR_COMPILER_UPDATE_TIME,
" ",
"Usage: VfrCompile [options] VfrFile",
" ",
Expand Down
4 changes: 2 additions & 2 deletions Source/C/VfrCompile/VfrCompiler.h
Expand Up @@ -22,8 +22,8 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#include "VfrUtilityLib.h"

#define PROGRAM_NAME "VfrCompile"
#define VFR_COMPILER_VERSION "1.95 (UEFI 2.1)"

#define VFR_COMPILER_VERSION " 1.95 (UEFI 2.1)"
#define VFR_COMPILER_UPDATE_TIME " updated on 2008/09/03"
//
// This is how we invoke the C preprocessor on the VFR source file
// to resolve #defines, #includes, etc. To make C source files
Expand Down
3 changes: 2 additions & 1 deletion Source/C/VfrCompile/VfrSyntax.g
Expand Up @@ -1339,7 +1339,8 @@ vfrStatementCheckBox :
_PCATCH (mCVfrVarDataTypeDB.GetDataTypeSize (_GET_CURRQEST_DATATYPE(), &DataTypeSize), L->getLine(), "CheckBox varid is not the valid data type");
if (DataTypeSize != 0 && DataTypeSize != _GET_CURRQEST_VARSIZE()) {
_PCATCH (VFR_RETURN_INVALID_PARAMETER, L->getLine(), "CheckBox varid doesn't support array");
} else if (_GET_CURRQEST_VARSIZE() != sizeof (BOOLEAN)) {
} else if ((mCVfrDataStorage.GetVarStoreType (_GET_CURRQEST_VARTINFO().mVarStoreId) == EFI_VFR_VARSTORE_BUFFER) &&
(_GET_CURRQEST_VARSIZE() != sizeof (BOOLEAN))) {
_PCATCH (VFR_RETURN_INVALID_PARAMETER, L->getLine(), "CheckBox varid only support BOOLEAN data type");
}
>>
Expand Down
38 changes: 38 additions & 0 deletions Source/C/VfrCompile/VfrUtilityLib.cpp
Expand Up @@ -1647,6 +1647,44 @@ CVfrDataStorage::GetVarStoreType (
return VFR_RETURN_UNDEFINED;
}

EFI_VFR_VARSTORE_TYPE
CVfrDataStorage::GetVarStoreType (
IN EFI_VARSTORE_ID VarStoreId
)
{
SVfrVarStorageNode *pNode;
EFI_VFR_VARSTORE_TYPE VarStoreType;

VarStoreType = EFI_VFR_VARSTORE_INVALID;

if (VarStoreId == EFI_VARSTORE_ID_INVALID) {
return VarStoreType;
}

for (pNode = mBufferVarStoreList; pNode != NULL; pNode = pNode->mNext) {
if (pNode->mVarStoreId == VarStoreId) {
VarStoreType = pNode->mVarStoreType;
return VarStoreType;
}
}

for (pNode = mEfiVarStoreList; pNode != NULL; pNode = pNode->mNext) {
if (pNode->mVarStoreId == VarStoreId) {
VarStoreType = pNode->mVarStoreType;
return VarStoreType;
}
}

for (pNode = mNameVarStoreList; pNode != NULL; pNode = pNode->mNext) {
if (pNode->mVarStoreId == VarStoreId) {
VarStoreType = pNode->mVarStoreType;
return VarStoreType;
}
}

return VarStoreType;
}

EFI_VFR_RETURN_CODE
CVfrDataStorage::GetVarStoreName (
IN EFI_VARSTORE_ID VarStoreId,
Expand Down
1 change: 1 addition & 0 deletions Source/C/VfrCompile/VfrUtilityLib.h
Expand Up @@ -301,6 +301,7 @@ class CVfrDataStorage {

EFI_VFR_RETURN_CODE GetVarStoreId (IN CHAR8 *, OUT EFI_VARSTORE_ID *);
EFI_VFR_RETURN_CODE GetVarStoreType (IN CHAR8 *, OUT EFI_VFR_VARSTORE_TYPE &);
EFI_VFR_VARSTORE_TYPE GetVarStoreType (IN EFI_VARSTORE_ID);
EFI_VFR_RETURN_CODE GetVarStoreName (IN EFI_VARSTORE_ID, OUT CHAR8 **);

EFI_VFR_RETURN_CODE GetBufferVarStoreDataTypeName (IN CHAR8 *, OUT CHAR8 **);
Expand Down

0 comments on commit 2762e82

Please sign in to comment.