Home | History | Annotate | Download | only in FrameworkHiiOnUefiHiiThunk
      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