]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC compile...
authoryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 11 Jan 2008 03:16:46 +0000 (03:16 +0000)
committeryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>
Fri, 11 Jan 2008 03:16:46 +0000 (03:16 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4552 6f19259b-4bc3-4df7-8a09-765794883524

IntelFrameworkModulePkg/Universal/VariablePei/Variable.c
IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
MdeModulePkg/Universal/Variable/Pei/Variable.c
MdeModulePkg/Universal/Variable/Pei/Variable.h
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c
MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h

index e050fbcf9d3f3edea3a43744ee5a813e370f0082..3751845fbf998851a8083574cc4eb6d1595e08ea 100644 (file)
@@ -80,59 +80,6 @@ Returns:
 \r
 }\r
 \r
 \r
 }\r
 \r
-\r
-UINT32\r
-NameSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->NameSize;\r
-}\r
-\r
-UINT32\r
-DataSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->DataSize;\r
-}\r
-\r
-UINT32\r
-AttributesOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->Attributes;\r
-}\r
-\r
 STATIC\r
 VARIABLE_HEADER *\r
 GetNextVariablePtr (\r
 STATIC\r
 VARIABLE_HEADER *\r
 GetNextVariablePtr (\r
@@ -153,7 +100,7 @@ Returns:
 \r
 --*/\r
 {\r
 \r
 --*/\r
 {\r
-  return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable)));\r
+  return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable)));\r
 }\r
 \r
 STATIC\r
 }\r
 \r
 STATIC\r
@@ -271,8 +218,8 @@ Returns:
         (((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
         (((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
         ) {\r
         (((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
         (((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
         ) {\r
-      ASSERT (NameSizeOfVariable (Variable) != 0);\r
-      if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {\r
+      ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);\r
+      if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {\r
         PtrTrack->CurrPtr = Variable;\r
         return EFI_SUCCESS;\r
       }\r
         PtrTrack->CurrPtr = Variable;\r
         return EFI_SUCCESS;\r
       }\r
@@ -479,7 +426,7 @@ Returns:
   //\r
   // Get data size\r
   //\r
   //\r
   // Get data size\r
   //\r
-  VarDataSize = DataSizeOfVariable (Variable.CurrPtr);\r
+  VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);\r
   if (*DataSize >= VarDataSize) {\r
     (*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);\r
 \r
   if (*DataSize >= VarDataSize) {\r
     (*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);\r
 \r
@@ -605,9 +552,9 @@ Returns:
   while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {\r
     if (IsValidVariableHeader (Variable.CurrPtr)) {\r
       if (Variable.CurrPtr->State == VAR_ADDED) {\r
   while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {\r
     if (IsValidVariableHeader (Variable.CurrPtr)) {\r
       if (Variable.CurrPtr->State == VAR_ADDED) {\r
-        ASSERT (NameSizeOfVariable (Variable.CurrPtr) != 0);\r
+        ASSERT (NAMESIZE_OF_VARIABLE (Variable.CurrPtr) != 0);\r
 \r
 \r
-        VarNameSize = (UINTN) NameSizeOfVariable (Variable.CurrPtr);\r
+        VarNameSize = (UINTN) NAMESIZE_OF_VARIABLE (Variable.CurrPtr);\r
         if (VarNameSize <= *VariableNameSize) {\r
           (*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);\r
 \r
         if (VarNameSize <= *VariableNameSize) {\r
           (*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);\r
 \r
index aeb49bca80f4f4c9729de4d3c54d07bff1cbee2c..2f586c6f4ac99da333e57bb65d8293c4490927ca 100644 (file)
@@ -44,10 +44,26 @@ Abstract:
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
+#define NAMESIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->NameSize \\r
+          )\r
+\r
+#define DATASIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->DataSize \\r
+          )\r
+\r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 #define GET_VARIABLE_DATA_PTR(a) \\r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 #define GET_VARIABLE_DATA_PTR(a) \\r
-  (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NameSizeOfVariable(a) + GET_PAD_SIZE (NameSizeOfVariable(a) ))\r
+          (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NAMESIZE_OF_VARIABLE(a) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE(a)))\r
 \r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
 \r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
index ce79499746799fde4de1e4d740f369b0b1b3674e..d1165e1fe599af6407e76e8e14a9d1e08dd46b92 100644 (file)
@@ -120,59 +120,6 @@ Returns:
   return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);\r
 }\r
 \r
   return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) VarStoreHeader + VarStoreHeader->Size);\r
 }\r
 \r
-UINT32\r
-NameSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->NameSize;\r
-}\r
-\r
-UINT32\r
-DataSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->DataSize;\r
-}\r
-\r
-UINT32\r
-AttributesOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->Attributes;\r
-}\r
-\r
-\r
 STATIC\r
 VARIABLE_HEADER *\r
 GetNextVariablePtr (\r
 STATIC\r
 VARIABLE_HEADER *\r
 GetNextVariablePtr (\r
@@ -193,7 +140,7 @@ Returns:
 \r
 --*/\r
 {\r
 \r
 --*/\r
 {\r
-  return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable)));\r
+  return (VARIABLE_HEADER *) HEADER_ALIGN ((UINTN) GET_VARIABLE_DATA_PTR (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable)));\r
 }\r
 \r
 STATIC\r
 }\r
 \r
 STATIC\r
@@ -311,8 +258,8 @@ Returns:
         (((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
         (((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
         ) {\r
         (((INT32 *) VendorGuid)[2] == ((INT32 *) &Variable->VendorGuid)[2]) &&\r
         (((INT32 *) VendorGuid)[3] == ((INT32 *) &Variable->VendorGuid)[3])\r
         ) {\r
-      ASSERT (NameSizeOfVariable (Variable) != 0);\r
-      if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NameSizeOfVariable (Variable))) {\r
+      ASSERT (NAMESIZE_OF_VARIABLE (Variable) != 0);\r
+      if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable), NAMESIZE_OF_VARIABLE (Variable))) {\r
         PtrTrack->CurrPtr = Variable;\r
         return EFI_SUCCESS;\r
       }\r
         PtrTrack->CurrPtr = Variable;\r
         return EFI_SUCCESS;\r
       }\r
@@ -521,7 +468,7 @@ Returns:
   //\r
   // Get data size\r
   //\r
   //\r
   // Get data size\r
   //\r
-  VarDataSize = DataSizeOfVariable (Variable.CurrPtr);\r
+  VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);\r
   if (*DataSize >= VarDataSize) {\r
     (*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);\r
 \r
   if (*DataSize >= VarDataSize) {\r
     (*PeiServices)->CopyMem (Data, GET_VARIABLE_DATA_PTR (Variable.CurrPtr), VarDataSize);\r
 \r
@@ -597,9 +544,9 @@ Returns:
   while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {\r
     if (IsValidVariableHeader (Variable.CurrPtr)) {\r
       if (Variable.CurrPtr->State == VAR_ADDED) {\r
   while (!(Variable.CurrPtr >= Variable.EndPtr || Variable.CurrPtr == NULL)) {\r
     if (IsValidVariableHeader (Variable.CurrPtr)) {\r
       if (Variable.CurrPtr->State == VAR_ADDED) {\r
-        ASSERT (NameSizeOfVariable (Variable.CurrPtr) != 0);\r
+        ASSERT (NAMESIZE_OF_VARIABLE (Variable.CurrPtr) != 0);\r
 \r
 \r
-        VarNameSize = (UINTN) NameSizeOfVariable (Variable.CurrPtr);\r
+        VarNameSize = (UINTN) NAMESIZE_OF_VARIABLE (Variable.CurrPtr);\r
         if (VarNameSize <= *VariableNameSize) {\r
           (*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);\r
 \r
         if (VarNameSize <= *VariableNameSize) {\r
           (*PeiServices)->CopyMem (VariableName, GET_VARIABLE_NAME_PTR (Variable.CurrPtr), VarNameSize);\r
 \r
index 751f8bf84366f1d60c75b9bac94372dd958ac392..73e1b7afdb4fc00c36a8f3338047f6663f17b473 100644 (file)
@@ -43,10 +43,26 @@ Abstract:
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
+#define NAMESIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->NameSize \\r
+          )\r
+\r
+#define DATASIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->DataSize \\r
+          )\r
+\r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 #define GET_VARIABLE_DATA_PTR(a) \\r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 #define GET_VARIABLE_DATA_PTR(a) \\r
-  (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NameSizeOfVariable(a) + GET_PAD_SIZE (NameSizeOfVariable(a)))\r
+          (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NAMESIZE_OF_VARIABLE(a) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE(a)))\r
 \r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
 \r
 typedef struct {\r
   VARIABLE_HEADER *CurrPtr;\r
index e1fec9d62c6e31a3828ddc9bd68ca29e99dcfa8f..d7cb0cd71c1908c79f726b3732c4918a0b98c9cd 100644 (file)
@@ -367,60 +367,6 @@ Returns:
   }\r
 }\r
 \r
   }\r
 }\r
 \r
-\r
-UINT32\r
-NameSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->NameSize;\r
-}\r
-\r
-UINT32\r
-DataSizeOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->DataSize;\r
-}\r
-\r
-UINT32\r
-AttributesOfVariable (\r
-  IN  VARIABLE_HEADER   *Variable\r
-  )\r
-{\r
-\r
-  //\r
-  // Check whether the header is valid fully;\r
-  // Tricky: The unprogramed data in FLASH equals 0xff.\r
-  // \r
-  if (Variable->DataSize == (UINT32) -1 || \r
-      Variable->Attributes == (UINT32) -1 || \r
-      Variable->NameSize == (UINT32) -1) {\r
-    return 0;\r
-  }\r
-  return Variable->Attributes;\r
-}\r
-\r
-\r
 UINT8 *\r
 GetVariableDataPtr (\r
   IN  VARIABLE_HEADER   *Variable\r
 UINT8 *\r
 GetVariableDataPtr (\r
   IN  VARIABLE_HEADER   *Variable\r
@@ -444,7 +390,7 @@ Returns:
   //\r
   // Be careful about pad size for alignment\r
   //\r
   //\r
   // Be careful about pad size for alignment\r
   //\r
-  return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + NameSizeOfVariable (Variable) + GET_PAD_SIZE (NameSizeOfVariable (Variable)));\r
+  return (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (Variable) + NAMESIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE (Variable)));\r
 }\r
 \r
 \r
 }\r
 \r
 \r
@@ -474,7 +420,7 @@ Returns:
   //\r
   // Be careful about pad size for alignment\r
   //\r
   //\r
   // Be careful about pad size for alignment\r
   //\r
-  return (VARIABLE_HEADER *) HEADER_ALIGN (((UINTN) GetVariableDataPtr (Variable) + DataSizeOfVariable (Variable) + GET_PAD_SIZE (DataSizeOfVariable (Variable))));\r
+  return (VARIABLE_HEADER *) HEADER_ALIGN (((UINTN) GetVariableDataPtr (Variable) + DATASIZE_OF_VARIABLE (Variable) + GET_PAD_SIZE (DATASIZE_OF_VARIABLE (Variable))));\r
 }\r
 \r
 VARIABLE_HEADER *\r
 }\r
 \r
 VARIABLE_HEADER *\r
@@ -836,8 +782,8 @@ Returns:
             return EFI_SUCCESS;\r
           } else {\r
             if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
             return EFI_SUCCESS;\r
           } else {\r
             if (CompareGuid (VendorGuid, &Variable[Index]->VendorGuid)) {\r
-              ASSERT (NameSizeOfVariable (Variable[Index]) != 0);\r
-              if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NameSizeOfVariable (Variable[Index]))) {\r
+              ASSERT (NAMESIZE_OF_VARIABLE (Variable[Index]) != 0);\r
+              if (!CompareMem (VariableName, GET_VARIABLE_NAME_PTR (Variable[Index]), NAMESIZE_OF_VARIABLE (Variable[Index]))) {\r
                 PtrTrack->CurrPtr   = Variable[Index];\r
                 PtrTrack->Volatile  = (BOOLEAN)(Index == 0);\r
                 return EFI_SUCCESS;\r
                 PtrTrack->CurrPtr   = Variable[Index];\r
                 PtrTrack->Volatile  = (BOOLEAN)(Index == 0);\r
                 return EFI_SUCCESS;\r
@@ -920,7 +866,7 @@ RuntimeServiceGetVariable (
   //\r
   // Get data size\r
   //\r
   //\r
   // Get data size\r
   //\r
-  VarDataSize = DataSizeOfVariable (Variable.CurrPtr);\r
+  VarDataSize = DATASIZE_OF_VARIABLE (Variable.CurrPtr);\r
   ASSERT (VarDataSize != 0);\r
 \r
   if (*DataSize >= VarDataSize) {\r
   ASSERT (VarDataSize != 0);\r
 \r
   if (*DataSize >= VarDataSize) {\r
@@ -1027,7 +973,7 @@ RuntimeServiceGetNextVariableName (
     //\r
     if (IsValidVariableHeader (Variable.CurrPtr) && Variable.CurrPtr->State == VAR_ADDED) {\r
       if (!(EfiAtRuntime () && !(Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS))) {\r
     //\r
     if (IsValidVariableHeader (Variable.CurrPtr) && Variable.CurrPtr->State == VAR_ADDED) {\r
       if (!(EfiAtRuntime () && !(Variable.CurrPtr->Attributes & EFI_VARIABLE_RUNTIME_ACCESS))) {\r
-        VarNameSize = NameSizeOfVariable (Variable.CurrPtr);\r
+        VarNameSize = NAMESIZE_OF_VARIABLE (Variable.CurrPtr);\r
         ASSERT (VarNameSize != 0);\r
 \r
         if (VarNameSize <= *VariableNameSize) {\r
         ASSERT (VarNameSize != 0);\r
 \r
         if (VarNameSize <= *VariableNameSize) {\r
@@ -1228,7 +1174,7 @@ RuntimeServiceSetVariable (
     // If the variable is marked valid and the same data has been passed in\r
     // then return to the caller immediately.\r
     //\r
     // If the variable is marked valid and the same data has been passed in\r
     // then return to the caller immediately.\r
     //\r
-    if (DataSizeOfVariable (Variable.CurrPtr) == DataSize &&\r
+    if (DATASIZE_OF_VARIABLE (Variable.CurrPtr) == DataSize &&\r
         (CompareMem (Data, GetVariableDataPtr (Variable.CurrPtr), DataSize) == 0)) {\r
       \r
       UpdateVariableInfo (VariableName, VendorGuid, Volatile, FALSE, TRUE, FALSE, FALSE);\r
         (CompareMem (Data, GetVariableDataPtr (Variable.CurrPtr), DataSize) == 0)) {\r
       \r
       UpdateVariableInfo (VariableName, VendorGuid, Volatile, FALSE, TRUE, FALSE, FALSE);\r
index b756fc6454bfa6d4628246764e3760b6f3610c1c..09a184d478cc2fff61ba7327043db8e3281537b8 100644 (file)
@@ -59,6 +59,22 @@ Abstract:
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
 \r
 #define HEADER_ALIGN(Header)  (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))\r
 \r
+#define NAMESIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->NameSize \\r
+          )\r
+\r
+#define DATASIZE_OF_VARIABLE(Variable)  \\r
+          ((((Variable)->DataSize == (UINT32) -1) || \\r
+          ((Variable)->Attributes == (UINT32) -1) || \\r
+          ((Variable)->NameSize == (UINT32) -1)) ? \\r
+          0 : \\r
+          (Variable)->DataSize \\r
+          )\r
+\r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 \r
 #define GET_VARIABLE_NAME_PTR(a)  (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))\r
 \r
 \r