2008-04-24 09:08:46 +02:00
|
|
|
/** @file
|
|
|
|
Internal Function and Macro defintions for IFR Expression evaluation used in Ifr Parsing. This header file should only
|
|
|
|
be included by UefiIfrParserExpression.c and UefiIfrParser.c
|
|
|
|
|
2010-04-24 11:48:54 +02:00
|
|
|
Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
|
|
|
|
This program and the accompanying materials
|
2008-04-24 09:08:46 +02:00
|
|
|
are licensed and made available under the terms and conditions of the BSD License
|
|
|
|
which accompanies this distribution. The full text of the license may be found at
|
|
|
|
http://opensource.org/licenses/bsd-license.php
|
|
|
|
|
|
|
|
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
|
|
|
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
|
|
|
|
|
|
|
**/
|
|
|
|
|
|
|
|
#ifndef _HII_THUNK_UEFI_IFR_PARSER_EXPRESSION_
|
|
|
|
#define _HII_THUNK_UEFI_IFR_PARSER_EXPRESSION_
|
|
|
|
|
|
|
|
/**
|
|
|
|
Reset stack pointer to begin of the stack.
|
|
|
|
|
|
|
|
**/
|
|
|
|
VOID
|
|
|
|
ResetScopeStack (
|
|
|
|
VOID
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2008-04-24 09:08:46 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
Push an Operand onto the Stack
|
|
|
|
|
|
|
|
@param Operand Operand to push.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS The value was pushed onto the stack.
|
|
|
|
@retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the
|
|
|
|
stack.
|
|
|
|
|
|
|
|
**/
|
|
|
|
EFI_STATUS
|
|
|
|
PushScope (
|
|
|
|
IN UINT8 Operand
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2008-04-24 09:08:46 +02:00
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
Pop an Operand from the Stack
|
|
|
|
|
|
|
|
@param Operand Operand to pop.
|
|
|
|
|
|
|
|
@retval EFI_SUCCESS The value was pushed onto the stack.
|
|
|
|
@retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the
|
|
|
|
stack.
|
|
|
|
|
|
|
|
**/
|
|
|
|
EFI_STATUS
|
|
|
|
PopScope (
|
|
|
|
OUT UINT8 *Operand
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2008-04-24 09:08:46 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
Zero extend integer/boolean/date/time to UINT64 for comparing.
|
|
|
|
|
|
|
|
@param Value HII Value to be converted.
|
|
|
|
|
|
|
|
@return None.
|
|
|
|
|
|
|
|
**/
|
|
|
|
VOID
|
|
|
|
ExtendValueToU64 (
|
|
|
|
IN EFI_HII_VALUE *Value
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2008-04-24 09:08:46 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
Compare two Hii value.
|
|
|
|
|
|
|
|
@param Value1 Expression value to compare on left-hand
|
|
|
|
@param Value2 Expression value to compare on right-hand
|
|
|
|
@param HiiHandle Only required for string compare
|
|
|
|
|
|
|
|
@retval EFI_INVALID_PARAMETER Could not perform comparation on two values
|
|
|
|
@retval 0 Two operators equeal
|
|
|
|
@retval 0 Value1 is greater than Value2
|
|
|
|
@retval 0 Value1 is less than Value2
|
|
|
|
|
|
|
|
**/
|
|
|
|
INTN
|
|
|
|
CompareHiiValue (
|
|
|
|
IN EFI_HII_VALUE *Value1,
|
|
|
|
IN EFI_HII_VALUE *Value2,
|
|
|
|
IN EFI_HII_HANDLE HiiHandle OPTIONAL
|
2008-09-04 11:44:58 +02:00
|
|
|
);
|
2008-04-24 09:08:46 +02:00
|
|
|
|
|
|
|
#endif
|