a. Fixed the incorrect generated array in c code for default store values.
authorjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 21 May 2008 08:03:31 +0000 (08:03 +0000)
committerjwang36 <jwang36@7335b38e-4728-0410-8992-fb3ffe349368>
Wed, 21 May 2008 08:03:31 +0000 (08:03 +0000)
b. Fixed the version string.

git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@1239 7335b38e-4728-0410-8992-fb3ffe349368

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

index 081ed4d..c40e5d6 100644 (file)
@@ -1,15 +1,15 @@
 /** @file\r
-  \r
+\r
   VfrCompiler internal defintions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2004 - 2008, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -22,7 +22,7 @@ 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               "UEFI 2.1"\r
+#define VFR_COMPILER_VERSION               "1.90 (UEFI 2.1)"\r
 \r
 //\r
 // This is how we invoke the C preprocessor on the VFR source file\r
index 8241b13..6021de3 100644 (file)
@@ -42,6 +42,7 @@ static SVFR_ERROR_HANDLE VFR_ERROR_HANDLE_TABLE [] = {
   { VFR_RETURN_FLAGS_UNSUPPORTED, "flags unsupported" },\r
   { VFR_RETURN_ERROR_ARRARY_NUM, "array number error" },\r
   { VFR_RETURN_DATA_STRING_ERROR, "data field string error or not support"},\r
+  { VFR_RETURN_DEFAULT_VALUE_REDEFINED, "Default value re-defined with different value"},\r
   { VFR_RETURN_CODEUNDEFINED, "Undefined Error Code" }\r
 };\r
 \r
index 971dc3b..a2aa3fa 100644 (file)
@@ -1,15 +1,15 @@
 /** @file\r
-  \r
+\r
   VfrCompiler Error definition\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2004 - 2008, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -40,6 +40,7 @@ typedef enum {
   VFR_RETURN_FLAGS_UNSUPPORTED,\r
   VFR_RETURN_ERROR_ARRARY_NUM,\r
   VFR_RETURN_DATA_STRING_ERROR,\r
+  VFR_RETURN_DEFAULT_VALUE_REDEFINED,\r
   VFR_RETURN_CODEUNDEFINED\r
 } EFI_VFR_RETURN_CODE;\r
 \r
index e2b3237..cbc7f29 100644 (file)
@@ -915,7 +915,7 @@ vfrStatementDefault :
                                                                                                                                                                         _GET_CURRQEST_VARTINFO(),\r
                                                                                                                                                                         VarStoreName,\r
                                                                                                                                                                         _GET_CURRQEST_DATATYPE (),\r
-                                                                                                                                                                        Val), D->getLine());\r
+                                                                                                                                                                        Val), D);\r
                                                                                                           }\r
                                                                                                        >>\r
   )\r
index a07927d..8be70e8 100644 (file)
@@ -1,15 +1,15 @@
 /** @file\r
-  \r
+\r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2004 - 2008, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -70,12 +70,13 @@ CVfrBinaryOutput::WriteEnd (
 }\r
 \r
 SConfigInfo::SConfigInfo (\r
-  IN UINT8              Type, \r
-  IN UINT16             Offset, \r
-  IN UINT32             Width, \r
+  IN UINT8              Type,\r
+  IN UINT16             Offset,\r
+  IN UINT32             Width,\r
   IN EFI_IFR_TYPE_VALUE Value\r
   )\r
 {\r
+  mNext   = NULL;\r
   mOffset = Offset;\r
   mWidth  = (UINT16)Width;\r
   mValue  = new UINT8[mWidth];\r
@@ -121,51 +122,51 @@ SConfigInfo::~SConfigInfo (
 }\r
 \r
 SConfigItem::SConfigItem (\r
-  IN CHAR8               *Id, \r
-  IN CHAR8               *Info\r
+  IN CHAR8               *Name,\r
+  IN CHAR8               *Id\r
   )\r
 {\r
-  mId          = NULL;\r
-  mInfo        = NULL;\r
+  mName          = NULL;\r
+  mId            = 0;\r
   mInfoStrList = NULL;\r
   mNext        = NULL;\r
 \r
-  if (Id != NULL) {\r
-    if ((mId = new CHAR8[strlen (Id) + 1]) != NULL) {\r
-      strcpy (mId, Id);\r
+  if (Name != NULL) {\r
+    if ((mName = new CHAR8[strlen (Name) + 1]) != NULL) {\r
+      strcpy (mName, Name);\r
     }\r
   }\r
 \r
-  if (Info != NULL) {\r
-    if ((mInfo = new CHAR8[strlen (Info) + 1]) != NULL) {\r
-      strcpy (mInfo, Info);\r
+  if (Id != NULL) {\r
+    if ((mId = new CHAR8[strlen (Id) + 1]) != NULL) {\r
+      strcpy (mId, Id);\r
     }\r
   }\r
 }\r
 \r
 SConfigItem::SConfigItem (\r
-  IN CHAR8               *Id, \r
-  IN CHAR8               *Info,\r
+  IN CHAR8               *Name,\r
+  IN CHAR8               *Id,\r
   IN UINT8               Type,\r
   IN UINT16              Offset,\r
   IN UINT16              Width,\r
   IN EFI_IFR_TYPE_VALUE  Value\r
   )\r
 {\r
+  mName        = NULL;\r
   mId          = NULL;\r
-  mInfo        = NULL;\r
   mInfoStrList = NULL;\r
   mNext        = NULL;\r
 \r
-  if (Id != NULL) {\r
-    if ((mId = new CHAR8[strlen (Id) + 1]) != NULL) {\r
-      strcpy (mId, Id);\r
+  if (Name != NULL) {\r
+    if ((mName = new CHAR8[strlen (Name) + 1]) != NULL) {\r
+      strcpy (mName, Name);\r
     }\r
   }\r
 \r
-  if (Info != NULL) {\r
-    if ((mInfo = new CHAR8[strlen (Info) + 1]) != NULL) {\r
-      strcpy (mInfo, Info);\r
+  if (Id != NULL) {\r
+    if ((mId = new CHAR8[strlen (Id) + 1]) != NULL) {\r
+      strcpy (mId, Id);\r
     }\r
   }\r
 \r
@@ -178,8 +179,8 @@ SConfigItem::~SConfigItem (
 {\r
   SConfigInfo  *Info;\r
 \r
+  BUFFER_SAFE_FREE (mName);\r
   BUFFER_SAFE_FREE (mId);\r
-  BUFFER_SAFE_FREE (mInfo);\r
   while (mInfoStrList != NULL) {\r
     Info = mInfoStrList;\r
     mInfoStrList = mInfoStrList->mNext;\r
@@ -190,17 +191,17 @@ SConfigItem::~SConfigItem (
 \r
 UINT8\r
 CVfrBufferConfig::Register (\r
-  IN CHAR8               *Id, \r
-  IN CHAR8               *Info\r
+  IN CHAR8               *Name,\r
+  IN CHAR8               *Id\r
   )\r
 {\r
   SConfigItem *pNew;\r
 \r
-  if (Select (Id) == 0) {\r
+  if (Select (Name) == 0) {\r
     return 1;\r
   }\r
 \r
-  if ((pNew = new SConfigItem (Id, Info)) == NULL) {\r
+  if ((pNew = new SConfigItem (Name, Id)) == NULL) {\r
     return 2;\r
   }\r
   if (mItemListHead == NULL) {\r
@@ -233,23 +234,23 @@ CVfrBufferConfig::Eof(
 \r
 UINT8\r
 CVfrBufferConfig::Select (\r
-  IN CHAR8 *Id,\r
-  IN CHAR8 *Info\r
+  IN CHAR8 *Name,\r
+  IN CHAR8 *Id\r
   )\r
 {\r
   SConfigItem *p;\r
 \r
-  if (Id == NULL) {\r
+  if (Name == NULL) {\r
     mItemListPos = mItemListHead;\r
     return 0;\r
   } else {\r
     for (p = mItemListHead; p != NULL; p = p->mNext) {\r
-      if (strcmp (p->mId, Id) != 0) {\r
+      if (strcmp (p->mName, Name) != 0) {\r
         continue;\r
       }\r
 \r
-      if ((p->mInfo != NULL) && (Info != NULL)) {\r
-        if (strcmp (p->mInfo, Info) != 0) {\r
+      if (Id != NULL) {\r
+        if (p->mId == NULL || strcmp (p->mId, Id) != 0) {\r
           continue;\r
         }\r
       }\r
@@ -265,8 +266,8 @@ CVfrBufferConfig::Select (
 UINT8\r
 CVfrBufferConfig::Write (\r
   IN CONST CHAR8         Mode,\r
-  IN CHAR8               *Id, \r
-  IN CHAR8               *Info,\r
+  IN CHAR8               *Name,\r
+  IN CHAR8               *Id,\r
   IN UINT8               Type,\r
   IN UINT16              Offset,\r
   IN UINT32              Width,\r
@@ -277,16 +278,14 @@ CVfrBufferConfig::Write (
   SConfigItem   *pItem;\r
   SConfigInfo   *pInfo;\r
 \r
+  if ((Ret = Select (Name)) != 0) {\r
+    return Ret;\r
+  }\r
+\r
   switch (Mode) {\r
   case 'a' : // add\r
-    if (Select (Id) == 0) {\r
-      if((pInfo = new SConfigInfo (Type, Offset, Width, Value)) == NULL) {\r
-        return 2;\r
-      }\r
-      pInfo->mNext = mItemListPos->mInfoStrList;\r
-      mItemListPos->mInfoStrList = pInfo;\r
-    } else {\r
-      if ((pItem = new SConfigItem (Id, Info, Type, Offset, Width, Value)) == NULL) {\r
+    if (Select (Name, Id) != 0) {\r
+      if ((pItem = new SConfigItem (Name, Id, Type, Offset, Width, Value)) == NULL) {\r
         return 2;\r
       }\r
       if (mItemListHead == NULL) {\r
@@ -297,14 +296,26 @@ CVfrBufferConfig::Write (
         mItemListTail = pItem;\r
       }\r
       mItemListPos = pItem;\r
+    } else {\r
+      // tranverse the list to find out if there's already the value for the same offset\r
+      for (pInfo = mItemListPos->mInfoStrList; pInfo != NULL; pInfo = pInfo->mNext) {\r
+        if (pInfo->mOffset == Offset) {\r
+          // check if the value and width are the same; return error if not\r
+          if (pInfo->mWidth != Width || memcmp(pInfo->mValue, &Value, Width) != 0) {\r
+            return VFR_RETURN_DEFAULT_VALUE_REDEFINED;\r
+          }\r
+          return 0;\r
+        }\r
+      }\r
+      if((pInfo = new SConfigInfo (Type, Offset, Width, Value)) == NULL) {\r
+        return 2;\r
+      }\r
+      pInfo->mNext = mItemListPos->mInfoStrList;\r
+      mItemListPos->mInfoStrList = pInfo;\r
     }\r
     break;\r
 \r
   case 'd' : // delete\r
-    if ((Ret = Select (Id)) != 0) {\r
-      return Ret;\r
-    }\r
-\r
     if (mItemListHead == mItemListPos) {\r
       mItemListHead = mItemListPos->mNext;\r
       delete mItemListPos;\r
@@ -323,18 +334,15 @@ CVfrBufferConfig::Write (
     break;\r
 \r
   case 'i' : // set info\r
-    if ((Ret = Select (Id)) != 0) {\r
-      return Ret;\r
-    }\r
-    if (mItemListPos->mInfo != NULL) {\r
-      delete mItemListPos->mInfo;\r
+    if (mItemListPos->mId != NULL) {\r
+      delete mItemListPos->mId;\r
     }\r
-    mItemListPos->mInfo = NULL;\r
-    if (Info != NULL) {\r
-      if ((mItemListPos->mInfo = new CHAR8[strlen (Info) + 1]) == NULL) {\r
+    mItemListPos->mId = NULL;\r
+    if (Id != NULL) {\r
+      if ((mItemListPos->mId = new CHAR8[strlen (Id) + 1]) == NULL) {\r
         return 2;\r
       }\r
-      strcpy (mItemListPos->mInfo, Info);\r
+      strcpy (mItemListPos->mId, Id);\r
     }\r
     break;\r
 \r
@@ -348,29 +356,29 @@ CVfrBufferConfig::Write (
 #if 0\r
 UINT8\r
 CVfrBufferConfig::ReadId (\r
-  OUT CHAR8  **Id, \r
-  OUT CHAR8  **Info\r
+  OUT CHAR8  **Name,\r
+  OUT CHAR8  **Id\r
   )\r
 {\r
   if (mInfoStrItemListPos == NULL) {\r
     return 1; // end read or some error occur\r
   }\r
 \r
+  if (Name != NULL) {\r
+    *Name = new CHAR8 (strlen (mInfoStrItemListPos->mName + 1));\r
+    strcpy (*Name, mInfoStrItemListPos->mName);\r
+  }\r
   if (Id != NULL) {\r
     *Id = new CHAR8 (strlen (mInfoStrItemListPos->mId + 1));\r
     strcpy (*Id, mInfoStrItemListPos->mId);\r
   }\r
-  if (Info != NULL) {\r
-    *Info = new CHAR8 (strlen (mInfoStrItemListPos->mInfo + 1));\r
-    strcpy (*Info, mInfoStrItemListPos->mInfo);\r
-  }\r
 \r
   return 0;\r
 }\r
 \r
 UINT8\r
 CVfrBufferConfig::ReadInfo (\r
-  IN  CHAR8     *Id, \r
+  IN  CHAR8     *Name,\r
   IN  UINT32    Index,\r
   IN OUT UINT32 &Number,\r
   OUT CHAR8     *Offset,\r
@@ -383,8 +391,8 @@ CVfrBufferConfig::ReadInfo (
   UINT32        idx;\r
   UINT32        num;\r
 \r
-  if (Id != NULL) {\r
-    if ((ret = Select (Id)) != 0) {\r
+  if (Name != NULL) {\r
+    if ((ret = Select (Name)) != 0) {\r
       return ret;\r
     }\r
   }\r
@@ -469,8 +477,8 @@ CVfrBufferConfig::OutputCFile (
   }\r
 \r
   for (Item = mItemListHead; Item != NULL; Item = Item->mNext) {\r
-    if (Item->mInfoStrList != NULL) {\r
-      fprintf (pFile, "\nunsigned char %s%sDefault%04x[] = {", BaseName, Item->mId, Item->mInfo);\r
+    if (Item->mId != NULL && Item->mInfoStrList != NULL) {\r
+      fprintf (pFile, "\nunsigned char %s%sDefault%s[] = {", BaseName, Item->mName, Item->mId);\r
 \r
       TotalLen = sizeof (UINT32);\r
       for (Info = Item->mInfoStrList; Info != NULL; Info = Info->mNext) {\r
@@ -486,9 +494,9 @@ CVfrBufferConfig::OutputCFile (
         } else {\r
           Output.WriteLine (pFile, BYTES_PRE_LINE, "  ", (CHAR8 *)Info->mValue, Info->mWidth);\r
         }\r
-        fprintf (pFile, "\n"); \r
+        fprintf (pFile, "\n");\r
       }\r
-      fprintf (pFile, "};\n"); \r
+      fprintf (pFile, "};\n");\r
     }\r
   }\r
 }\r
@@ -606,7 +614,7 @@ _STR2U32 (
     }\r
     if (c >= '0' && c <= '9') {\r
       Value += (c - '0');\r
-    } \r
+    }\r
   }\r
 \r
   return Value;\r
@@ -623,7 +631,7 @@ CVfrVarDataTypeDB::RegisterNewType (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::ExtractStructTypeName (\r
-  IN  CHAR8 *&VarStr, \r
+  IN  CHAR8 *&VarStr,\r
   OUT CHAR8 *TName\r
   )\r
 {\r
@@ -646,7 +654,7 @@ CVfrVarDataTypeDB::ExtractStructTypeName (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::ExtractFieldNameAndArrary (\r
-  IN  CHAR8   *&VarStr, \r
+  IN  CHAR8   *&VarStr,\r
   IN  CHAR8   *FName,\r
   OUT UINT32 &ArrayIdx\r
   )\r
@@ -654,15 +662,15 @@ CVfrVarDataTypeDB::ExtractFieldNameAndArrary (
   UINT32 Idx;\r
   CHAR8   ArrayStr[MAX_NAME_LEN + 1];\r
 \r
-  ArrayIdx = INVALID_ARRAY_INDEX; \r
+  ArrayIdx = INVALID_ARRAY_INDEX;\r
 \r
   if (FName == NULL) {\r
     return VFR_RETURN_FATAL_ERROR;\r
   }\r
 \r
   while((*VarStr != '\0') &&\r
-        (*VarStr != '.') && \r
-        (*VarStr != '[') && \r
+        (*VarStr != '.') &&\r
+        (*VarStr != '[') &&\r
         (*VarStr != ']')) {\r
     *FName = *VarStr;\r
     VarStr++;\r
@@ -699,8 +707,8 @@ CVfrVarDataTypeDB::ExtractFieldNameAndArrary (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::GetTypeField (\r
-  IN  CHAR8          *FName, \r
-  IN  SVfrDataType  *Type, \r
+  IN  CHAR8          *FName,\r
+  IN  SVfrDataType  *Type,\r
   OUT SVfrDataField *&Field\r
   )\r
 {\r
@@ -722,7 +730,7 @@ CVfrVarDataTypeDB::GetTypeField (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::GetFieldOffset (\r
-  IN  SVfrDataField *Field, \r
+  IN  SVfrDataField *Field,\r
   IN  UINT32        ArrayIdx,\r
   OUT UINT32        &Offset\r
   )\r
@@ -830,7 +838,7 @@ CVfrVarDataTypeDB::InternalTypesListInit (
         pSecondsField->mNext     = NULL;\r
         pSecondsField->mArrayNum = 0;\r
 \r
-        New->mMembers            = pHoursField;      \r
+        New->mMembers            = pHoursField;\r
       } else {\r
         New->mMembers            = NULL;\r
       }\r
@@ -887,8 +895,8 @@ CVfrVarDataTypeDB::~CVfrVarDataTypeDB (
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::Pack (\r
   IN UINT32         LineNum,\r
-  IN UINT8          Action, \r
-  IN CHAR8          *Identifier, \r
+  IN UINT8          Action,\r
+  IN CHAR8          *Identifier,\r
   IN UINT32         Number\r
   )\r
 {\r
@@ -984,8 +992,8 @@ CVfrVarDataTypeDB::SetNewTypeName (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::DataTypeAddField (\r
-  IN CHAR8   *FieldName, \r
-  IN CHAR8   *TypeName, \r
+  IN CHAR8   *FieldName,\r
+  IN CHAR8   *TypeName,\r
   IN UINT32 ArrayNum\r
   )\r
 {\r
@@ -1023,7 +1031,7 @@ CVfrVarDataTypeDB::DataTypeAddField (
     mNewDataType->mMembers = pNewField;\r
     pNewField->mNext       = NULL;\r
   } else {\r
-    for (pTmp = mNewDataType->mMembers; pTmp->mNext != NULL; pTmp = pTmp->mNext) \r
+    for (pTmp = mNewDataType->mMembers; pTmp->mNext != NULL; pTmp = pTmp->mNext)\r
       ;\r
     pTmp->mNext            = pNewField;\r
     pNewField->mNext       = NULL;\r
@@ -1107,9 +1115,9 @@ CVfrVarDataTypeDB::GetDataTypeSize (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::GetDataFieldInfo (\r
-  IN  CHAR8     *VarStr, \r
-  OUT UINT16   &Offset, \r
-  OUT UINT8    &Type, \r
+  IN  CHAR8     *VarStr,\r
+  OUT UINT16   &Offset,\r
+  OUT UINT8    &Type,\r
   OUT UINT32   &Size\r
   )\r
 {\r
@@ -1145,7 +1153,7 @@ CVfrVarDataTypeDB::GetDataFieldInfo (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrVarDataTypeDB::GetUserDefinedTypeNameList  (\r
-  OUT CHAR8     ***NameList, \r
+  OUT CHAR8     ***NameList,\r
   OUT UINT32    *ListSize\r
   )\r
 {\r
@@ -1476,10 +1484,10 @@ CVfrDataStorage::DeclareNameVarStoreEnd (
   return VFR_RETURN_SUCCESS;\r
 }\r
 \r
-EFI_VFR_RETURN_CODE \r
+EFI_VFR_RETURN_CODE\r
 CVfrDataStorage::DeclareEfiVarStore (\r
-  IN CHAR8          *StoreName, \r
-  IN EFI_GUID       *Guid, \r
+  IN CHAR8          *StoreName,\r
+  IN EFI_GUID       *Guid,\r
   IN EFI_STRING_ID  NameStrId,\r
   IN UINT32         VarSize\r
   )\r
@@ -1512,10 +1520,10 @@ CVfrDataStorage::DeclareEfiVarStore (
   return VFR_RETURN_SUCCESS;\r
 }\r
 \r
-EFI_VFR_RETURN_CODE \r
+EFI_VFR_RETURN_CODE\r
 CVfrDataStorage::DeclareBufferVarStore (\r
-  IN CHAR8             *StoreName, \r
-  IN EFI_GUID          *Guid, \r
+  IN CHAR8             *StoreName,\r
+  IN EFI_GUID          *Guid,\r
   IN CVfrVarDataTypeDB *DataTypeDB,\r
   IN CHAR8             *TypeName,\r
   IN EFI_VARSTORE_ID   VarStoreId\r
@@ -1553,7 +1561,7 @@ CVfrDataStorage::DeclareBufferVarStore (
   return VFR_RETURN_SUCCESS;\r
 }\r
 \r
-EFI_VFR_RETURN_CODE \r
+EFI_VFR_RETURN_CODE\r
 CVfrDataStorage::GetVarStoreId (\r
   IN  CHAR8           *StoreName,\r
   OUT EFI_VARSTORE_ID *VarStoreId\r
@@ -1659,7 +1667,7 @@ CVfrDataStorage::GetVarStoreType (
 \r
 EFI_VFR_RETURN_CODE\r
 CVfrDataStorage::GetVarStoreName (\r
-  IN  EFI_VARSTORE_ID VarStoreId, \r
+  IN  EFI_VARSTORE_ID VarStoreId,\r
   OUT CHAR8           **VarStoreName\r
   )\r
 {\r
@@ -1781,8 +1789,8 @@ CVfrDataStorage::BufferVarStoreRequestElementAdd (
 \r
 SVfrDefaultStoreNode::SVfrDefaultStoreNode (\r
   IN EFI_IFR_DEFAULTSTORE *ObjBinAddr,\r
-  IN CHAR8                *RefName, \r
-  IN EFI_STRING_ID        DefaultStoreNameId, \r
+  IN CHAR8                *RefName,\r
+  IN EFI_STRING_ID        DefaultStoreNameId,\r
   IN UINT16               DefaultId\r
   )\r
 {\r
@@ -1860,7 +1868,7 @@ CVfrDefaultStore::RegisterDefaultStore (
 }\r
 \r
 /*\r
- * assign new reference name or new default store name id only if \r
+ * assign new reference name or new default store name id only if\r
  * the original is invalid\r
  */\r
 EFI_VFR_RETURN_CODE\r
@@ -1943,8 +1951,8 @@ CVfrDefaultStore::GetDefaultId (
 STATIC\r
 EFI_VFR_RETURN_CODE\r
 AltCfgItemPrintToBuffer (\r
-  IN CHAR8              *NewAltCfg, \r
-  IN EFI_VARSTORE_INFO  Info, \r
+  IN CHAR8              *NewAltCfg,\r
+  IN EFI_VARSTORE_INFO  Info,\r
   IN UINT8              Type,\r
   IN EFI_IFR_TYPE_VALUE Value\r
   )\r
@@ -1955,9 +1963,9 @@ AltCfgItemPrintToBuffer (
 \r
   if (NewAltCfg != NULL) {\r
     Count = sprintf (\r
-              NewAltCfg, \r
-              "&OFFSET=%x&WIDTH=%x&VALUE=", \r
-              Info.mInfo.mVarOffset, \r
+              NewAltCfg,\r
+              "&OFFSET=%x&WIDTH=%x&VALUE=",\r
+              Info.mInfo.mVarOffset,\r
               Info.mVarTotalSize\r
               );\r
     NewAltCfg += Count;\r
@@ -2016,7 +2024,7 @@ AltCfgItemPrintToBuffer (
        }\r
   }\r
 \r
-  return VFR_RETURN_FATAL_ERROR;    \r
+  return VFR_RETURN_FATAL_ERROR;\r
 }\r
 \r
 EFI_VFR_RETURN_CODE\r
@@ -2030,6 +2038,7 @@ CVfrDefaultStore::BufferVarStoreAltConfigAdd (
 {\r
   SVfrDefaultStoreNode  *pNode = NULL;\r
   CHAR8                 NewAltCfg[2 * 2 * sizeof (UINT16) + 1] = {0,};\r
+  INTN                  Returnvalue = 0;\r
 \r
   if (VarStoreName == NULL) {\r
     return VFR_RETURN_FATAL_ERROR;\r
@@ -2048,28 +2057,23 @@ CVfrDefaultStore::BufferVarStoreAltConfigAdd (
   gCVfrBufferConfig.Open ();\r
 \r
   sprintf (NewAltCfg, "%04x", pNode->mDefaultId);\r
-  if ((gCVfrBufferConfig.Select(VarStoreName) == 0) && \r
-      (gCVfrBufferConfig.Select(VarStoreName, NewAltCfg) != 0)) {\r
-    if (gCVfrBufferConfig.Write ('i', VarStoreName, NewAltCfg, Type, Info.mInfo.mVarOffset, Info.mVarTotalSize, Value) != 0) {\r
+  if ((Returnvalue = gCVfrBufferConfig.Select(VarStoreName)) == 0) {\r
+    if ((Returnvalue = gCVfrBufferConfig.Write ('a', VarStoreName, NewAltCfg, Type, Info.mInfo.mVarOffset, Info.mVarTotalSize, Value)) != 0) {\r
       goto WriteError;\r
     }\r
   }\r
 \r
-  if (gCVfrBufferConfig.Write ('a', VarStoreName, NULL, Type, Info.mInfo.mVarOffset, Info.mVarTotalSize, Value) != 0) {\r
-    goto WriteError;\r
-  }\r
-\r
   gCVfrBufferConfig.Close ();\r
 \r
   return VFR_RETURN_SUCCESS;\r
 \r
 WriteError:\r
   gCVfrBufferConfig.Close ();\r
-  return VFR_RETURN_FATAL_ERROR;\r
+  return (EFI_VFR_RETURN_CODE)Returnvalue;\r
 }\r
 \r
 SVfrRuleNode::SVfrRuleNode (\r
-  IN CHAR8       *RuleName, \r
+  IN CHAR8       *RuleName,\r
   IN UINT8       RuleId\r
   )\r
 {\r
@@ -2175,7 +2179,7 @@ EFI_VARSTORE_INFO::EFI_VARSTORE_INFO (
   mVarTotalSize    = Info.mVarTotalSize;\r
 }\r
 \r
-BOOLEAN \r
+BOOLEAN\r
 EFI_VARSTORE_INFO::operator == (\r
   IN EFI_VARSTORE_INFO  *Info\r
   )\r
@@ -2227,7 +2231,7 @@ CVfrQuestionDB::ChekQuestionIdFree (
   return (mFreeQIdBitMap[Index] & (0x80000000 >> Offset)) == 0;\r
 }\r
 \r
-VOID \r
+VOID\r
 CVfrQuestionDB::MarkQuestionIdUsed (\r
   IN EFI_QUESTION_ID QId\r
   )\r
@@ -2238,7 +2242,7 @@ CVfrQuestionDB::MarkQuestionIdUsed (
   mFreeQIdBitMap[Index] |= (0x80000000 >> Offset);\r
 }\r
 \r
-VOID \r
+VOID\r
 CVfrQuestionDB::MarkQuestionIdUnused (\r
   IN EFI_QUESTION_ID QId\r
   )\r
@@ -2353,9 +2357,9 @@ CVfrQuestionDB::RegisterQuestion (
 \r
 VOID\r
 CVfrQuestionDB::RegisterOldDateQuestion (\r
-  IN     CHAR8           *YearVarId, \r
-  IN     CHAR8           *MonthVarId, \r
-  IN     CHAR8           *DayVarId, \r
+  IN     CHAR8           *YearVarId,\r
+  IN     CHAR8           *MonthVarId,\r
+  IN     CHAR8           *DayVarId,\r
   IN OUT EFI_QUESTION_ID &QuestionId\r
   )\r
 {\r
@@ -2411,7 +2415,7 @@ Err:
 VOID\r
 CVfrQuestionDB::RegisterNewDateQuestion (\r
   IN     CHAR8           *Name,\r
-  IN     CHAR8           *BaseVarId, \r
+  IN     CHAR8           *BaseVarId,\r
   IN OUT EFI_QUESTION_ID &QuestionId\r
   )\r
 {\r
@@ -2495,9 +2499,9 @@ Err:
 \r
 VOID\r
 CVfrQuestionDB::RegisterOldTimeQuestion (\r
-  IN     CHAR8           *HourVarId, \r
-  IN     CHAR8           *MinuteVarId, \r
-  IN     CHAR8           *SecondVarId, \r
+  IN     CHAR8           *HourVarId,\r
+  IN     CHAR8           *MinuteVarId,\r
+  IN     CHAR8           *SecondVarId,\r
   IN OUT EFI_QUESTION_ID &QuestionId\r
   )\r
 {\r
@@ -2666,7 +2670,7 @@ CVfrQuestionDB::UpdateQuestionId (
   return VFR_RETURN_SUCCESS;\r
 }\r
 \r
-VOID \r
+VOID\r
 CVfrQuestionDB::GetQuestionId (\r
   IN  CHAR8             *Name,\r
   IN  CHAR8             *VarIdStr,\r
@@ -2704,7 +2708,7 @@ CVfrQuestionDB::GetQuestionId (
   return ;\r
 }\r
 \r
-EFI_VFR_RETURN_CODE \r
+EFI_VFR_RETURN_CODE\r
 CVfrQuestionDB::FindQuestion (\r
   IN EFI_QUESTION_ID QuestionId\r
   )\r
@@ -2724,7 +2728,7 @@ CVfrQuestionDB::FindQuestion (
   return VFR_RETURN_UNDEFINED;\r
 }\r
 \r
-EFI_VFR_RETURN_CODE \r
+EFI_VFR_RETURN_CODE\r
 CVfrQuestionDB::FindQuestion (\r
   IN CHAR8 *Name\r
   )\r
index 0f6d133..a639ff6 100644 (file)
@@ -1,15 +1,15 @@
 /** @file\r
-  \r
+\r
   Vfr common library functions.\r
 \r
-Copyright (c) 2004 - 2008, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
-are licensed and made available under the terms and conditions of the BSD License         \r
-which accompanies this distribution.  The full text of the license may be found at        \r
-http://opensource.org/licenses/bsd-license.php                                            \r
-                                                                                          \r
-THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,                     \r
-WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.             \r
+Copyright (c) 2004 - 2008, Intel Corporation\r
+All rights reserved. This program and the accompanying materials\r
+are licensed and made available under the terms and conditions of the BSD License\r
+which accompanies this distribution.  The full text of the license may be found at\r
+http://opensource.org/licenses/bsd-license.php\r
+\r
+THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
 **/\r
 \r
@@ -53,9 +53,9 @@ struct SConfigInfo {
 };\r
 \r
 struct SConfigItem {\r
-  CHAR8         *mId;\r
-  CHAR8         *mInfo;\r
-  SConfigInfo   *mInfoStrList;\r
+  CHAR8         *mName;         // varstore name\r
+  CHAR8         *mId;           // varstore ID\r
+  SConfigInfo   *mInfoStrList;  // list of Offset/Value in the varstore\r
   SConfigItem   *mNext;\r
 \r
 public:\r