]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC compile...
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / VariablePei / Variable.h
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
+#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
-  (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