1 /** @file 2 Internal Function and Macro defintions for IFR Expression evaluation used in Ifr Parsing. This header file should only 3 be included by UefiIfrParserExpression.c and UefiIfrParser.c 4 5 Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR> 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #ifndef _HII_THUNK_UEFI_IFR_PARSER_EXPRESSION_ 17 #define _HII_THUNK_UEFI_IFR_PARSER_EXPRESSION_ 18 19 /** 20 Reset stack pointer to begin of the stack. 21 22 **/ 23 VOID 24 ResetScopeStack ( 25 VOID 26 ); 27 28 /** 29 Push an Operand onto the Stack 30 31 @param Operand Operand to push. 32 33 @retval EFI_SUCCESS The value was pushed onto the stack. 34 @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the 35 stack. 36 37 **/ 38 EFI_STATUS 39 PushScope ( 40 IN UINT8 Operand 41 ); 42 43 44 /** 45 Pop an Operand from the Stack 46 47 @param Operand Operand to pop. 48 49 @retval EFI_SUCCESS The value was pushed onto the stack. 50 @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the 51 stack. 52 53 **/ 54 EFI_STATUS 55 PopScope ( 56 OUT UINT8 *Operand 57 ); 58 59 /** 60 Zero extend integer/boolean/date/time to UINT64 for comparing. 61 62 @param Value HII Value to be converted. 63 64 @return None. 65 66 **/ 67 VOID 68 ExtendValueToU64 ( 69 IN EFI_HII_VALUE *Value 70 ); 71 72 /** 73 Compare two Hii value. 74 75 @param Value1 Expression value to compare on left-hand 76 @param Value2 Expression value to compare on right-hand 77 @param HiiHandle Only required for string compare 78 79 @retval EFI_INVALID_PARAMETER Could not perform comparation on two values 80 @retval 0 Two operators equeal 81 @retval 0 Value1 is greater than Value2 82 @retval 0 Value1 is less than Value2 83 84 **/ 85 INTN 86 CompareHiiValue ( 87 IN EFI_HII_VALUE *Value1, 88 IN EFI_HII_VALUE *Value2, 89 IN EFI_HII_HANDLE HiiHandle OPTIONAL 90 ); 91 92 #endif 93