summaryrefslogtreecommitdiff
path: root/IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
diff options
context:
space:
mode:
authoryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-11 03:16:46 +0000
committeryshang1 <yshang1@6f19259b-4bc3-4df7-8a09-765794883524>2008-01-11 03:16:46 +0000
commitab5f0d6d1271a293979af569a269792c491d0893 (patch)
treee8ebb9e8dcb8f48b0279aead40e6ccd428da65a4 /IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
parent9cad030bc14e706d8986ed33f0fa8b28f0828c48 (diff)
downloadedk2-platforms-ab5f0d6d1271a293979af569a269792c491d0893.tar.xz
Change C functions, xxxSizeOfVariable(), to MACRO, which can avoid the ICC compile error "Unspecific evaluated order".
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4552 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'IntelFrameworkModulePkg/Universal/VariablePei/Variable.h')
-rw-r--r--IntelFrameworkModulePkg/Universal/VariablePei/Variable.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/IntelFrameworkModulePkg/Universal/VariablePei/Variable.h b/IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
index aeb49bca80..2f586c6f4a 100644
--- a/IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
+++ b/IntelFrameworkModulePkg/Universal/VariablePei/Variable.h
@@ -44,10 +44,26 @@ Abstract:
#define HEADER_ALIGN(Header) (((UINTN) (Header) + HEADER_ALIGNMENT - 1) & (~(HEADER_ALIGNMENT - 1)))
+#define NAMESIZE_OF_VARIABLE(Variable) \
+ ((((Variable)->DataSize == (UINT32) -1) || \
+ ((Variable)->Attributes == (UINT32) -1) || \
+ ((Variable)->NameSize == (UINT32) -1)) ? \
+ 0 : \
+ (Variable)->NameSize \
+ )
+
+#define DATASIZE_OF_VARIABLE(Variable) \
+ ((((Variable)->DataSize == (UINT32) -1) || \
+ ((Variable)->Attributes == (UINT32) -1) || \
+ ((Variable)->NameSize == (UINT32) -1)) ? \
+ 0 : \
+ (Variable)->DataSize \
+ )
+
#define GET_VARIABLE_NAME_PTR(a) (CHAR16 *) ((UINTN) (a) + sizeof (VARIABLE_HEADER))
#define GET_VARIABLE_DATA_PTR(a) \
- (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NameSizeOfVariable(a) + GET_PAD_SIZE (NameSizeOfVariable(a) ))
+ (UINT8 *) ((UINTN) GET_VARIABLE_NAME_PTR (a) + NAMESIZE_OF_VARIABLE(a) + GET_PAD_SIZE (NAMESIZE_OF_VARIABLE(a)))
typedef struct {
VARIABLE_HEADER *CurrPtr;