/** @file Definitions of Hii Expression. Copyright (c) 2019, Intel Corporation. All rights reserved.
(C) Copyright 2021 Hewlett Packard Enterprise Development LP
Copyright (c) 2022-2023, NVIDIA CORPORATION & AFFILIATES. All rights reserved. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef HII_EXPRESSION_H_ #define HII_EXPRESSION_H_ #include /** Get the expression list count. @param[in] Level Which type this expression belong to. Form, statement or option? @retval >=0 The expression count @retval -1 Input parameter error. **/ INTN GetConditionalExpressionCount ( IN EXPRESS_LEVEL Level ); /** Get the expression Buffer pointer. @param[in] Level Which type this expression belong to. Form, statement or option? @retval The start pointer of the expression buffer or NULL. **/ HII_EXPRESSION ** GetConditionalExpressionList ( IN EXPRESS_LEVEL Level ); /** Push the expression options onto the Stack. @param[in] Pointer Pointer to the current expression. @param[in] Level Which type this expression belong to. Form, statement or option? @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 PushConditionalExpression ( IN HII_EXPRESSION *Pointer, IN EXPRESS_LEVEL Level ); /** Pop the expression options from the Stack @param[in] Level Which type this expression belong to. Form, statement or option? @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 PopConditionalExpression ( IN EXPRESS_LEVEL Level ); /** Reset stack pointer to begin of the stack. **/ VOID ResetCurrentExpressionStack ( VOID ); /** Push current expression onto the Stack @param[in] Pointer Pointer to current expression. @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 PushCurrentExpression ( IN VOID *Pointer ); /** Pop current expression from the Stack @param[in] Pointer Pointer to current expression to be 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 PopCurrentExpression ( OUT VOID **Pointer ); /** Reset stack pointer to begin of the stack. **/ VOID ResetMapExpressionListStack ( VOID ); /** Push the list of map expression onto the Stack @param[in] Pointer Pointer to the list of map expression to be pushed. @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 PushMapExpressionList ( IN VOID *Pointer ); /** Pop the list of map expression from the Stack @param[in] Pointer Pointer to the list of map expression to be 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 PopMapExpressionList ( OUT VOID **Pointer ); /** Reset stack pointer to begin of the stack. **/ VOID ResetScopeStack ( VOID ); /** Push an Operand onto the Stack @param[in] 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 ); /** Pop an Operand from the Stack @param[out] 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 ); #endif