/** @file\r
Private structure, MACRO and function definitions for User Interface related functionalities.\r
\r
-Copyright (c) 2004 - 2009, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
http://opensource.org/licenses/bsd-license.php\r
#ifndef _UI_H_\r
#define _UI_H_\r
\r
-#include "Setup.h"\r
-\r
//\r
// Globals\r
//\r
\r
#define UI_MENU_LIST_FROM_LINK(a) CR (a, UI_MENU_LIST, Link, UI_MENU_LIST_SIGNATURE)\r
\r
-typedef struct _MENU_REFRESH_ENTRY {\r
- struct _MENU_REFRESH_ENTRY *Next;\r
+typedef struct _MENU_REFRESH_ENTRY MENU_REFRESH_ENTRY;\r
+struct _MENU_REFRESH_ENTRY {\r
+ MENU_REFRESH_ENTRY *Next;\r
UI_MENU_OPTION *MenuOption; // Describes the entry needing an update\r
UI_MENU_SELECTION *Selection;\r
UINTN CurrentColumn;\r
UINTN CurrentRow;\r
UINTN CurrentAttribute;\r
-} MENU_REFRESH_ENTRY;\r
+};\r
\r
typedef struct {\r
UINT16 ScanCode;\r
} SCREEN_OPERATION_T0_CONTROL_FLAG;\r
\r
\r
+extern LIST_ENTRY gMenuOption;\r
extern MENU_REFRESH_ENTRY *gMenuRefreshHead;\r
extern UI_MENU_SELECTION *gCurrentSelection;\r
extern BOOLEAN mHiiPackageListUpdated;\r
IN OUT UI_MENU_SELECTION *Selection\r
);\r
\r
-/**\r
- VSPrint worker function that prints a Value as a decimal number in Buffer.\r
-\r
- @param Buffer Location to place ascii decimal number string of Value.\r
- @param Flags Flags to use in printing decimal string, see file header for\r
- details.\r
- @param Value Decimal value to convert to a string in Buffer.\r
-\r
- @return Number of characters printed.\r
-\r
-**/\r
-VOID\r
-ValueToString (\r
- IN CHAR16 *Buffer,\r
- IN BOOLEAN Flags,\r
- IN INT64 Value\r
- );\r
-\r
/**\r
Set Buffer to Value for Size bytes.\r
\r
hit, then 2 Unicode character will consume an output storage\r
space with size of CHAR16 till a NARROW_CHAR is hit.\r
\r
+ If String is NULL, then ASSERT ().\r
+\r
@param String The input string to be counted.\r
\r
@return Storage space for the input string.\r
OUT UINT8 *Operand\r
);\r
\r
+/**\r
+ Reset stack pointer to begin of the stack.\r
+\r
+**/\r
+VOID\r
+ResetCurrentExpressionStack (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ Push current expression onto the Stack\r
+\r
+ @param Pointer Pointer to current expression.\r
+\r
+ @retval EFI_SUCCESS The value was pushed onto the stack.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the stack.\r
+\r
+**/\r
+EFI_STATUS\r
+PushCurrentExpression (\r
+ IN VOID *Pointer\r
+ );\r
+\r
+/**\r
+ Pop current expression from the Stack\r
+\r
+ @param Pointer Pointer to current expression to be pop.\r
+\r
+ @retval EFI_SUCCESS The value was pushed onto the stack.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the stack.\r
+\r
+**/\r
+EFI_STATUS\r
+PopCurrentExpression (\r
+ OUT VOID **Pointer\r
+ );\r
+\r
+/**\r
+ Reset stack pointer to begin of the stack.\r
+\r
+**/\r
+VOID\r
+ResetMapExpressionListStack (\r
+ VOID\r
+ );\r
+\r
+/**\r
+ Push the list of map expression onto the Stack\r
+\r
+ @param Pointer Pointer to the list of map expression to be pushed.\r
+\r
+ @retval EFI_SUCCESS The value was pushed onto the stack.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the stack.\r
+\r
+**/\r
+EFI_STATUS\r
+PushMapExpressionList (\r
+ IN VOID *Pointer\r
+ );\r
+\r
+/**\r
+ Pop the list of map expression from the Stack\r
+\r
+ @param Pointer Pointer to the list of map expression to be pop.\r
+\r
+ @retval EFI_SUCCESS The value was pushed onto the stack.\r
+ @retval EFI_OUT_OF_RESOURCES There is not enough system memory to grow the stack.\r
+\r
+**/\r
+EFI_STATUS\r
+PopMapExpressionList (\r
+ OUT VOID **Pointer\r
+ );\r
+\r
/**\r
Get Form given its FormId.\r
\r