4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrivate MACRO, structure and function definitions for Setup Browser module.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCopyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncThis program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncare licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncwhich accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynchttp://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncTHE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncWITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#ifndef _SETUP_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define _SETUP_H_
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <PiDxe.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/SimpleTextOut.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/SimpleTextIn.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/FormBrowser2.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/FormBrowserEx.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/DevicePath.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/UnicodeCollation.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/HiiConfigAccess.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/HiiConfigRouting.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/HiiDatabase.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/HiiString.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Protocol/UserManager.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Guid/MdeModuleHii.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Guid/HiiPlatformSetupFormset.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Guid/HiiFormMapMethodGuid.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/PrintLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/DebugLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/BaseMemoryLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/UefiRuntimeServicesTableLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/UefiDriverEntryPoint.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/UefiBootServicesTableLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/BaseLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/MemoryAllocationLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/HiiLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/PcdLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include <Library/DevicePathLib.h>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "Colors.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// This is the generated header file which includes whatever needs to be exported (strings + IFR)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern UINT8 SetupBrowserStrings[];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Screen definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BANNER_HEIGHT 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BANNER_COLUMNS 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BANNER_LEFT_COLUMN_INDENT 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FRONT_PAGE_HEADER_HEIGHT 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NONE_FRONT_PAGE_HEADER_HEIGHT 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define LEFT_SKIPPED_COLUMNS 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FOOTER_HEIGHT 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define STATUS_BAR_HEIGHT 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define SCROLL_ARROW_HEIGHT 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define POPUP_PAD_SPACE_COUNT 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define POPUP_FRAME_WIDTH 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Definition for function key setting
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NONE_FUNCTION_KEY_SETTING 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ENABLE_FUNCTION_KEY_SETTING 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID FormSetGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN KeySetting;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FUNCTIION_KEY_SETTING;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Character definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define CHAR_SPACE 0x0020
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define UPPER_LOWER_CASE_OFFSET 0x20
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Time definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define ONE_SECOND 10000000
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Display definitions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define LEFT_HYPER_DELIMITER L'<'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RIGHT_HYPER_DELIMITER L'>'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define LEFT_ONEOF_DELIMITER L'<'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RIGHT_ONEOF_DELIMITER L'>'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define LEFT_NUMERIC_DELIMITER L'['
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RIGHT_NUMERIC_DELIMITER L']'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define LEFT_CHECKBOX_DELIMITER L'['
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define RIGHT_CHECKBOX_DELIMITER L']'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define CHECK_ON L'X'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define CHECK_OFF L' '
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define TIME_SEPARATOR L':'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define DATE_SEPARATOR L'/'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define YES_ANSWER L'Y'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NO_ANSWER L'N'
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// This is the Input Error Message
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define INPUT_ERROR 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// This is the NV RAM update required Message
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NV_UPDATE_REQUIRED 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Refresh the Status Bar with flags
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define REFRESH_STATUS_BAR 0xff
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Incremental string lenght of ConfigRequest
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define CONFIG_REQUEST_STRING_INCREMENTAL 1024
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// HII value compare result
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define HII_VALUE_UNDEFINED 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define HII_VALUE_EQUAL 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define HII_VALUE_LESS_THAN 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define HII_VALUE_GREATER_THAN 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Incremental size of stack for expression
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EXPRESSION_STACK_SIZE_INCREMENT 0x100
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_IFR_SPECIFICATION_VERSION (UINT16) (((EFI_SYSTEM_TABLE_REVISION >> 16) << 8) | (((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) / 10) << 4) | ((EFI_SYSTEM_TABLE_REVISION & 0xFFFF) % 10))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HANDLE Handle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Produced protocol
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_FORM_BROWSER2_PROTOCOL FormBrowser2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_FORM_BROWSER_EXTENSION_PROTOCOL FormBrowserEx;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} SETUP_DRIVER_PRIVATE_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Banner[BANNER_HEIGHT][BANNER_COLUMNS];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} BANNER_DATA;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// IFR relative definition
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_INCONSISTENT_IF 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_NO_SUBMIT_IF 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_GRAY_OUT_IF 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_SUPPRESS_IF 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_DISABLE_IF 4
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_VALUE 5
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_RULE 6
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_READ 7
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_EXPRESSION_WRITE 8
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_VARSTORE_BUFFER 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_VARSTORE_NAME_VALUE 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_VARSTORE_EFI_VARIABLE 2
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EFI_HII_VARSTORE_EFI_VARIABLE_BUFFER 3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_INCONSISTENT_VALIDATION 0
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_NO_SUBMIT_VALIDATION 1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_CLASS_PLATFORM_SETUP 0x0001
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_CLASS_FRONT_PAGE 0x0002
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *Buffer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 BufferLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IFR_TYPE_VALUE Value;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EFI_HII_VALUE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NAME_VALUE_NODE_SIGNATURE SIGNATURE_32 ('N', 'V', 'S', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *Name;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *Value;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EditValue;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} NAME_VALUE_NODE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define NAME_VALUE_NODE_FROM_LINK(a) CR (a, NAME_VALUE_NODE, Link, NAME_VALUE_NODE_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_STORAGE_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'G')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type; // Storage type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 VarStoreId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID Guid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *Name; // For EFI_IFR_VARSTORE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Size;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *Buffer;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *EditBuffer; // Edit copy for Buffer Storage
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY NameValueListHead; // List of NAME_VALUE_NODE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Attributes; // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ConfigHdr; // <ConfigHdr>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN SpareStrLen; // Spare length of ConfigRequest string buffer
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORMSET_STORAGE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_STORAGE_FROM_LINK(a) CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef union {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID VarName;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 VarOffset;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} VAR_STORE_INFO;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EXPRESSION_OPCODE_SIGNATURE SIGNATURE_32 ('E', 'X', 'O', 'P')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Operand;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Format; // For EFI_IFR_TO_STRING, EFI_IFR_FIND
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Flags; // For EFI_IFR_SPAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RuleId; // For EFI_IFR_RULE_REF
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_VALUE Value; // For EFI_IFR_EQ_ID_VAL, EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_QUESTION_ID QuestionId; // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_VAL_LIST, EFI_IFR_QUESTION_REF1
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_QUESTION_ID QuestionId2;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 ListLength; // For EFI_IFR_EQ_ID_VAL_LIST
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 *ValueList;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID DevicePath; // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID Guid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORMSET_STORAGE *VarStorage; // For EFI_IFR_SET, EFI_IFR_GET
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VAR_STORE_INFO VarStoreInfo;// For EFI_IFR_SET, EFI_IFR_GET
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ValueType; // For EFI_IFR_SET, EFI_IFR_GET
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ValueWidth; // For EFI_IFR_SET, EFI_IFR_GET
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ValueName; // For EFI_IFR_SET, EFI_IFR_GET
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY MapExpressionList; // nested expressions inside of Map opcode.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EXPRESSION_OPCODE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define EXPRESSION_OPCODE_FROM_LINK(a) CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_EXPRESSION_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'P')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Type; // Type for this expression
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RuleId; // For EFI_IFR_RULE only
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Error; // For EFI_IFR_NO_SUBMIT_IF, EFI_IFR_INCONSISTENT_IF only
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_VALUE Result; // Expression evaluation result
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY OpCodeListHead; // OpCodes consist of this expression (EXPRESSION_OPCODE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_EXPRESSION;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_EXPRESSION_FROM_LINK(a) CR (a, FORM_EXPRESSION, Link, FORM_EXPRESSION_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_EXPRESSION_LIST_SIGNATURE SIGNATURE_32 ('F', 'E', 'X', 'R')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Count;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION *Expression[1]; // Array[Count] of expressions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_EXPRESSION_LIST;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define QUESTION_DEFAULT_SIGNATURE SIGNATURE_32 ('Q', 'D', 'F', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 DefaultId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_VALUE Value; // Default value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION *ValueExpression; // Not-NULL indicates default value is provided by EFI_IFR_VALUE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} QUESTION_DEFAULT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define QUESTION_DEFAULT_FROM_LINK(a) CR (a, QUESTION_DEFAULT, Link, QUESTION_DEFAULT_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Text;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Flags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_VALUE Value;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IMAGE_ID ImageId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION_LIST *SuppressExpression; // Non-NULL indicates nested inside of SuppressIf
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} QUESTION_OPTION;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define QUESTION_OPTION_FROM_LINK(a) CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressFalse = 0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressGrayOut,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressSuppress,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressDisable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EXPRESS_RESULT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef enum {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressNone = 0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressForm,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressStatement,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ExpressOption
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} EXPRESS_LEVEL;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_STATEMENT_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'A')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Operand; // The operand (first byte) of this Statement or Question
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Statement Header
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Prompt;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Help;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID TextTwo; // For EFI_IFR_TEXT
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Question Header
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_QUESTION_ID QuestionId; // The value of zero is reserved
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_VARSTORE_ID VarStoreId; // A value of zero indicates no variable storage
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORMSET_STORAGE *Storage;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VAR_STORE_INFO VarStoreInfo;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 StorageWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 QuestionFlags;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *VariableName; // Name/Value or EFI Variable name
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *BlockName; // Buffer storage block name: "OFFSET=...WIDTH=..."
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_VALUE HiiValue; // Edit copy for checkbox, numberic, oneof
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *BufferValue; // Edit copy for string, password, orderedlist
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 ValueType; // Data type for orderedlist value array
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // OpCode specific members
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 Flags; // for EFI_IFR_CHECKBOX, EFI_IFR_DATE, EFI_IFR_NUMERIC, EFI_IFR_ONE_OF,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // EFI_IFR_ORDERED_LIST, EFI_IFR_STRING,EFI_IFR_SUBTITLE,EFI_IFR_TIME, EFI_IFR_BANNER
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 MaxContainers; // for EFI_IFR_ORDERED_LIST
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 BannerLineNumber; // for EFI_IFR_BANNER, 1-based line number
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID QuestionConfig; // for EFI_IFR_ACTION, if 0 then no configuration string will be processed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Minimum; // for EFI_IFR_ONE_OF/EFI_IFR_NUMERIC, it's Min/Max value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Maximum; // for EFI_IFR_STRING/EFI_IFR_PASSWORD, it's Min/Max length
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT64 Step;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_DEFAULT_ID DefaultId; // for EFI_IFR_RESET_BUTTON
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID RefreshGuid; // for EFI_IFR_REFRESH_ID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN Locked; // Whether this statement is locked.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Get from IFR parsing
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION *ValueExpression; // nested EFI_IFR_VALUE, provide Question value and indicate Question is ReadOnly
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY DefaultListHead; // nested EFI_IFR_DEFAULT list (QUESTION_DEFAULT), provide default values
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IMAGE_ID ImageId; // nested EFI_IFR_IMAGE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 RefreshInterval; // nested EFI_IFR_REFRESH, refresh interval(in seconds) for Question value, 0 means no refresh
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN InSubtitle; // nesting inside of EFI_IFR_SUBTITLE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY InconsistentListHead;// nested inconsistent expression list (FORM_EXPRESSION)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY NoSubmitListHead; // nested nosubmit expression list (FORM_EXPRESSION)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION_LIST *Expression; // nesting inside of GrayOutIf/DisableIf/SuppressIf
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION *ReadExpression; // nested EFI_IFR_READ, provide this question value by read expression.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION *WriteExpression; // nested EFI_IFR_WRITE, evaluate write expression after this question value is set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_BROWSER_STATEMENT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_STATEMENT_FROM_LINK(a) CR (a, FORM_BROWSER_STATEMENT, Link, FORM_BROWSER_STATEMENT_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_CONFIG_REQUEST_SIGNATURE SIGNATURE_32 ('F', 'C', 'R', 'S')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN ElementCount; // Number of <RequestElement> in the <ConfigRequest>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN SpareStrLen;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORMSET_STORAGE *Storage;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_BROWSER_CONFIG_REQUEST;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_CONFIG_REQUEST_FROM_LINK(a) CR (a, FORM_BROWSER_CONFIG_REQUEST, Link, FORM_BROWSER_CONFIG_REQUEST_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define STANDARD_MAP_FORM_TYPE 0x01
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 FormId; // FormId of normal form or formmap form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID FormTitle; // FormTile of normal form, or FormMapMethod title of formmap form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 FormType; // Specific form type for the different form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IMAGE_ID ImageId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN ModalForm; // Whether this is a modal form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN Locked; // Whether this form is locked.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN NvUpdateRequired; // Whether this form has NV update request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY StatementListHead; // List of Statements and Questions (FORM_BROWSER_STATEMENT)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY ConfigRequestHead; // List of configreques for all storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_EXPRESSION_LIST *SuppressExpression; // nesting inside of SuppressIf
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_BROWSER_FORM;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_FORM_FROM_LINK(a) CR (a, FORM_BROWSER_FORM, Link, FORM_BROWSER_FORM_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_DEFAULTSTORE_SIGNATURE SIGNATURE_32 ('F', 'D', 'F', 'S')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 DefaultId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID DefaultName;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORMSET_DEFAULTSTORE;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORMSET_DEFAULTSTORE_FROM_LINK(a) CR (a, FORMSET_DEFAULTSTORE, Link, FORMSET_DEFAULTSTORE_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_FORMSET_SIGNATURE SIGNATURE_32 ('F', 'B', 'F', 'S')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_HANDLE HiiHandle; // unique id for formset.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HANDLE DriverHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_DEVICE_PATH_PROTOCOL *DevicePath;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN IfrBinaryLength;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 *IfrBinaryData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID Guid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID FormSetTitle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_STRING_ID Help;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT8 NumberOfClassGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_GUID ClassGuid[3]; // Up to three ClassGuid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Class; // Tiano extended Class code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 SubClass; // Tiano extended Subclass code
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_IMAGE_ID ImageId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_BROWSER_STATEMENT *StatementBuffer; // Buffer for all Statements and Questions
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EXPRESSION_OPCODE *ExpressionBuffer; // Buffer for all Expression OpCode
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY StorageListHead; // Storage list (FORMSET_STORAGE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY DefaultStoreListHead; // DefaultStore list (FORMSET_DEFAULTSTORE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY FormListHead; // Form list (FORM_BROWSER_FORM)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY ExpressionListHead; // List of Expressions (FORM_EXPRESSION)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} FORM_BROWSER_FORMSET;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define FORM_BROWSER_FORMSET_FROM_LINK(a) CR (a, FORM_BROWSER_FORMSET, Link, FORM_BROWSER_FORMSET_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BROWSER_CONTEXT_SIGNATURE SIGNATURE_32 ('B', 'C', 'T', 'X')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Globals defined in Setup.c
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BANNER_DATA *BannerData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN ClassOfVfr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN FunctionKeySetting;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BOOLEAN ResetRequired;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT16 Direction;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_SCREEN_DESCRIPTOR ScreenDimensions;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EnterString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EnterCommitString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EnterEscapeString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EscapeString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *MoveHighlight;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *MakeSelection;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *DecNumericInput;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *HexNumericInput;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ToggleCheckBox;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PromptForData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PromptForPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PromptForNewPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ConfirmPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *ConfirmError;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PassowordInvalid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PressEnter;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *EmptyString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *AreYouSure;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *YesResponse;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *NoResponse;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *MiniString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *PlusString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *MinusString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *AdjustNumber;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *SaveChanges;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *OptionMismatch;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 *FormSuppress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 PromptBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 OptionBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 HelpBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync FORM_BROWSER_FORMSET *OldFormSet;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Globals defined in Ui.c
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY MenuOption;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID *MenuRefreshHead;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} BROWSER_CONTEXT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BROWSER_CONTEXT_FROM_LINK(a) CR (a, BROWSER_CONTEXT, Link, BROWSER_CONTEXT_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BROWSER_HOT_KEY_SIGNATURE SIGNATURE_32 ('B', 'H', 'K', 'S')
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsynctypedef struct {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINTN Signature;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync LIST_ENTRY Link;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_INPUT_KEY *KeyData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT32 Action;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DefaultId;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING HelpString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync} BROWSER_HOT_KEY;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define BROWSER_HOT_KEY_FROM_LINK(a) CR (a, BROWSER_HOT_KEY, Link, BROWSER_HOT_KEY_SIGNATURE)
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_HII_DATABASE_PROTOCOL *mHiiDatabase;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_HII_STRING_PROTOCOL *mHiiString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_HII_CONFIG_ROUTING_PROTOCOL *mHiiConfigRouting;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern BANNER_DATA *gBannerData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_HII_HANDLE gFrontPageHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern UINTN gClassOfVfr;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern UINTN gFunctionKeySetting;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern BOOLEAN gResetRequired;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_HII_HANDLE gHiiHandle;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern UINT16 gDirection;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_SCREEN_DESCRIPTOR gScreenDimensions;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern FORM_BROWSER_FORMSET *gOldFormSet;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern LIST_ENTRY gBrowserFormSetList;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern LIST_ENTRY gBrowserHotKeyList;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern BROWSER_SETTING_SCOPE gBrowserSettingScope;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EXIT_HANDLER ExitHandlerFunction;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern UINTN gFooterHeight;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Browser Global Strings
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gDiscardFailed;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gDefaultFailed;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gEnterString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gEnterCommitString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gEnterEscapeString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gEscapeString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gSaveFailed;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gMoveHighlight;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gMakeSelection;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gDecNumericInput;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gHexNumericInput;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gToggleCheckBox;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPromptForData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPromptForPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPromptForNewPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gConfirmPassword;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gConfirmError;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPassowordInvalid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPressEnter;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gEmptyString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gAreYouSure;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gYesResponse;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gNoResponse;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gMiniString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gPlusString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gMinusString;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gAdjustNumber;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gSaveChanges;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gOptionMismatch;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 *gFormSuppress;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 gPromptBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 gOptionBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern CHAR16 gHelpBlockWidth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gZeroGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncextern EFI_GUID gTianoHiiIfrGuid;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "Ui.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// Global Procedure Defines
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize the HII String Token to the correct values.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncInitializeBrowserStrings (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prints a unicode string to the default console,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync using L"%s" format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String String pointer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Length of string printed to the console
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrintString (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *String
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prints a chracter to the default console,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync using L"%c" format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Character Character to print.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Length of string printed to the console.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrintChar (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 Character
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prints a formatted unicode string to the default console, at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the supplied cursor position.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Column The cursor position to print the string at.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Row The cursor position to print the string at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Fmt Format string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ... Variable argument list for formating string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Length of string printed to the console
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrintAt (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Column,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Row,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *Fmt,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ...
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prints a unicode string to the default console, at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the supplied cursor position, using L"%s" format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Column The cursor position to print the string at.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Row The cursor position to print the string at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String String pointer.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Length of string printed to the console
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrintStringAt (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Column,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Row,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *String
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Prints a chracter to the default console, at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the supplied cursor position, using L"%c" format.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Column The cursor position to print the string at.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Row The cursor position to print the string at.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Character Character to print.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Length of string printed to the console.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINTN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncPrintCharAt (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Column,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Row,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync CHAR16 Character
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Parse opcodes in the formset IFR binary.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet Pointer of the FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Opcode parse success.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval Other Opcode parse fail.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncParseOpCodes (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Free resources allocated for a FormSet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet Pointer of the FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDestroyFormSet (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT FORM_BROWSER_FORMSET *FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function displays the page frame.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Selection Selection contains the information about
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the Selection, form and formset to be displayed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selection action may be updated in retrieve callback.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDisplayPageFrame (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UI_MENU_SELECTION *Selection
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Create a new string in HII Package List.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param String The String to be added
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HiiHandle The package list in the HII database to insert the
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync specified string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The output string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STRING_ID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncNewString (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *String,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE HiiHandle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Delete a string from HII Package List.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringId Id of the string in HII database.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HiiHandle The HII package list handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The string was deleted successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDeleteString (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING_ID StringId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE HiiHandle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get the string based on the StringId and HII Package List Handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Token The String's ID.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HiiHandle The package list in the HII database to search for
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the specified string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The output string.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCHAR16 *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetToken (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING_ID Token,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE HiiHandle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Draw a pop up windows based on the dimension, number of lines and
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync strings specified.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param RequestedWidth The width of the pop-up.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NumberOfLines The number of lines.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Marker The variable argument list for the list of string to be printed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCreateSharedPopUp (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN RequestedWidth,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN NumberOfLines,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VA_LIST Marker
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Routine used to abstract a generic dialog interface and return the selected key or string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NumberOfLines The number of lines for the dialog box
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HotKey Defines whether a single character is parsed
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (TRUE) and returned in KeyValue or a string is
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync returned in StringBuffer. Two special characters
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are considered when entering a string, a SCAN_ESC
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync and an CHAR_CARRIAGE_RETURN. SCAN_ESC terminates
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync string input and returns
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param MaximumStringSize The maximum size in bytes of a typed in string
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (each character is a CHAR16) and the minimum
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync string returned is two bytes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param StringBuffer The passed in pointer to the buffer which will
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync hold the typed in string if HotKey is FALSE
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param KeyValue The EFI_KEY value returned if HotKey is TRUE..
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ... A series of (quantity == NumberOfLines) text
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync strings which will be used to construct the dialog
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync box
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Displayed dialog and received user interaction
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One of the parameters was invalid (e.g.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (StringBuffer == NULL) && (HotKey == FALSE))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_DEVICE_ERROR User typed in an ESC character to exit the routine
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncCreateDialog (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN NumberOfLines,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN HotKey,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN MaximumStringSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT CHAR16 *StringBuffer,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_INPUT_KEY *KeyValue,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ...
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get Value for given Name from a NameValue Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Storage The NameValue Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Name The Name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The retured Value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Value found for given Name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND No such Name found in NameValue storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetValueByName (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORMSET_STORAGE *Storage,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *Name,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT CHAR16 **Value
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Set Value of given Name in a NameValue Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Storage The NameValue Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Name The Name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Value The Value to set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Edit Whether update editValue or Value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Value found for given Name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND No such Name found in NameValue storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetValueByName (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORMSET_STORAGE *Storage,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *Name,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *Value,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN Edit
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get Question's current Value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Question Question to be initialized.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Cached TRUE: get from Edit copy FALSE: get from original
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Storage
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetQuestionValue (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT FORM_BROWSER_STATEMENT *Question,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN Cached
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Save Question Value to edit copy(cached) or Storage(uncached).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Question Pointer to the Question.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Cached TRUE: set to Edit copy FALSE: set to original
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Storage
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetQuestionValue (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT FORM_BROWSER_STATEMENT *Question,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN Cached
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Perform inconsistent check for a Form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Question The Question to be validated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Type Validation type: InConsistent or NoSubmit
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Form validation pass.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval other Form validation failed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncValidateQuestion (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_STATEMENT *Question,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN Type
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Discard data based on the input setting scope (Form, FormSet or System).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SettingScope Setting Scope for Discard action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED Unsupport SettingScope.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncDiscardForm (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BROWSER_SETTING_SCOPE SettingScope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Submit data based on the input Setting level (Form, FormSet or System).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SettingScope Setting Scope for Submit action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED Unsupport SettingScope.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSubmitForm (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BROWSER_SETTING_SCOPE SettingScope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Reset Question to its default value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet The form set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form The form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Question The question.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DefaultId The Class of the default.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Question is reset to default value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetQuestionDefault (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_STATEMENT *Question,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DefaultId
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Get current setting of Questions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncInitializeCurrentSetting (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT FORM_BROWSER_FORMSET *FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize the internal data structure of a FormSet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Handle PackageList Handle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSetGuid GUID of a formset. If not specified (NULL or zero
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GUID), take the first FormSet found in package
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param UpdateGlobalVar Whether need to update the global variable.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND The specified FormSet could not be found.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncInitializeFormSet (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE Handle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_GUID *FormSetGuid,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN UpdateGlobalVar
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Reset Questions to their default value in a Form, Formset or System.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param DefaultId The Class of the default.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SettingScope Setting Scope for Default action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED Unsupport SettingScope.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncExtractDefault (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DefaultId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BROWSER_SETTING_SCOPE SettingScope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize Question's Edit copy from Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Selection Selection contains the information about
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the Selection, form and formset to be displayed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selection action may be updated in retrieve callback.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Selection is NULL, only initialize Question value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Form Form data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncLoadFormConfig (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UI_MENU_SELECTION *Selection,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORM *Form
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Initialize Question's Edit copy from Storage for the whole Formset.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Selection Selection contains the information about
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the Selection, form and formset to be displayed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Selection action may be updated in retrieve callback.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If Selection is NULL, only initialize Question value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncLoadFormSetConfig (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UI_MENU_SELECTION *Selection,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert setting of Buffer Storage or NameValue Storage to <ConfigResp>.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Buffer The Storage to be conveted.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ConfigResp The returned <ConfigResp>.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SingleForm Whether update data for single form or formset level.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Convert success.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Incorrect storage type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncStorageToConfigResp (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN VOID *Buffer,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 **ConfigResp,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN SingleForm
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Convert <ConfigResp> to settings in Buffer Storage or NameValue Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Storage The Storage to receive the settings.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ConfigResp The <ConfigResp> to be converted.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Convert success.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Incorrect storage type.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncConfigRespToStorage (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORMSET_STORAGE *Storage,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CHAR16 *ConfigResp
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fill storage's edit copy with settings requested from Configuration Driver.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Storage Buffer Storage.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncLoadStorage (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORMSET_STORAGE *Storage
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Fetch the Ifr binary data of a FormSet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Handle PackageList Handle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSetGuid GUID of a formset. If not specified (NULL or zero
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GUID), take the first FormSet found in package
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync list.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param BinaryLength The length of the FormSet IFR binary.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param BinaryData The buffer designed to receive the FormSet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Buffer filled with the requested FormSet.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync BufferLength was updated.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER The handle is unknown.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND A form or FormSet on the requested handle cannot
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be found with the requested FormId.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetIfrBinaryData (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE Handle,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_GUID *FormSetGuid,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINTN *BinaryLength,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT UINT8 **BinaryData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Save globals used by previous call to SendForm(). SendForm() may be called from
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync HiiConfigAccess.Callback(), this will cause SendForm() be reentried.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync So, save globals of previous call to SendForm() and restore them upon exit.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSaveBrowserContext (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Restore globals used by previous call to SendForm().
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncRestoreBrowserContext (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This is the routine which an external caller uses to direct the browser
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync where to obtain it's information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This The Form Browser protocol instanse.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Handles A pointer to an array of Handles. If HandleCount > 1 we
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync display a list of the formsets for the handles specified.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param HandleCount The number of Handles specified in Handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSetGuid This field points to the EFI_GUID which must match the Guid
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync field in the EFI_IFR_FORM_SET op-code for the specified
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync forms-based package. If FormSetGuid is NULL, then this
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync function will display the first found forms package.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormId This field specifies which EFI_IFR_FORM to render as the first
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync displayable page. If this field has a value of 0x0000, then
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync the forms browser will render the specified forms in their encoded order.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ScreenDimenions - This allows the browser to be called so that it occupies a
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync portion of the physical screen instead of dynamically determining the screen dimensions.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ActionRequest - Points to the action recommended by the form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ScreenDimensions Points to recommended form dimensions, including any non-content area, in
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync characters.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ActionRequest Points to the action recommended by the form.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The function completed successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND No valid forms could be found to display.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSendForm (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_HII_HANDLE *Handles,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINTN HandleCount,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_GUID *FormSetGuid, OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 FormId, OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This function is called by a callback handler to retrieve uncommitted state
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync data from the browser.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync instance.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ResultsDataSize A pointer to the size of the buffer associated
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync with ResultsData.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param ResultsData A string returned from an IFR browser or
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync equivalent. The results string will have no
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync routing information in them.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param RetrieveData A BOOLEAN field which allows an agent to retrieve
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (if RetrieveData = TRUE) data from the uncommitted
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync browser state information or set (if RetrieveData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync = FALSE) data in the uncommitted browser state
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param VariableGuid An optional field to indicate the target variable
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync GUID name to use.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param VariableName An optional field to indicate the target
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync human-readable variable name.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The results have been distributed or are awaiting
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync distribution.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_BUFFER_TOO_SMALL The ResultsDataSize specified was too small to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync contain the results data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBrowserCallback (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UINTN *ResultsDataSize,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT EFI_STRING ResultsData,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN RetrieveData,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST EFI_GUID *VariableGuid, OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN CONST CHAR16 *VariableName OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find menu which will show next time.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Selection On input, Selection tell setup browser the information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync about the Selection, form and formset to be displayed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync On output, Selection return the screen item that is selected
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by user.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Repaint Whether need to repaint the menu.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param NewLine Whether need to show at new line.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE Need return.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE No need to return.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncFindNextMenu (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UI_MENU_SELECTION *Selection,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN *Repaint,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN *NewLine
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync check whether the formset need to update the NV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SetValue Whether set new value or clear old value.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUpdateNvInfoInForm (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN SetValue
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync check whether the formset need to update the NV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param FormSet FormSet data structure.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE Need to update the NV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE No need to update the NV.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsNvUpdateRequired (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_FORMSET *FormSet
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Call the call back function for the question and process the return action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Selection On input, Selection tell setup browser the information
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync about the Selection, form and formset to be displayed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync On output, Selection return the screen item that is selected
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync by user.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Statement The Question which need to call.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Action The action request.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param SkipSaveOrDiscard Whether skip save or discard action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS The call back function excutes successfully.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return Other value if the call back function failed to excute.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncProcessCallBackFunction (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN OUT UI_MENU_SELECTION *Selection,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN FORM_BROWSER_STATEMENT *Question,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_BROWSER_ACTION Action,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BOOLEAN SkipSaveOrDiscard
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find the matched FormSet context in the backup maintain list based on HiiHandle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Handle The Hii Handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return the found FormSet context. If no found, NULL will return.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncFORM_BROWSER_FORMSET *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetFormSetFromHiiHandle (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_HANDLE Handle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Check whether the input HII handle is the FormSet that is being used.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param Handle The Hii Handle.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval TRUE HII handle is being used.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval FALSE HII handle is not being used.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBOOLEAN
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncIsHiiHandleInBrowserContext (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync EFI_HII_HANDLE Handle
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Configure what scope the hot key will impact.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync All hot keys have the same scope. The mixed hot keys with the different level are not supported.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If no scope is set, the default scope will be FormSet level.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync After all registered hot keys are removed, previous Scope can reset to another level.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Scope Scope level to be set.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Scope is set correctly.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER Scope is not the valid value specified in BROWSER_SETTING_SCOPE.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSPPORTED Scope level is different from current one that the registered hot keys have.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSetScope (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN BROWSER_SETTING_SCOPE Scope
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Register the hot key with its browser action, or unregistered the hot key.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Only support hot key that is not printable character (control key, function key, etc.).
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the action value is zero, the hot key will be unregistered if it has been registered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync If the same hot key has been registered, the new action and help string will override the previous ones.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] KeyData A pointer to a buffer that describes the keystroke
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information for the hot key. Its type is EFI_INPUT_KEY to
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync be supported by all ConsoleIn devices.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Action Action value that describes what action will be trigged when the hot key is pressed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] DefaultId Specifies the type of defaults to retrieve, which is only for DEFAULT action.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] HelpString Help string that describes the hot key information.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Its value may be NULL for the unregistered hot key.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_SUCCESS Hot key is registered or unregistered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_INVALID_PARAMETER KeyData is NULL.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_NOT_FOUND KeyData is not found to be unregistered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval EFI_UNSUPPORTED Key represents a printable character. It is conflicted with Browser.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncRegisterHotKey (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_INPUT_KEY *KeyData,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT32 Action,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN UINT16 DefaultId,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_STRING HelpString OPTIONAL
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Register Exit handler function.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync When more than one handler function is registered, the latter one will override the previous one.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync When NULL handler is specified, the previous Exit handler will be unregistered.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] Handler Pointer to handler function.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncVOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncRegiserExitHandler (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EXIT_HANDLER Handler
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Create reminder to let user to choose save or discard the changed browser data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Caller can use it to actively check the changed browser data.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval BROWSER_NO_CHANGES No browser data is changed.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval BROWSER_SAVE_CHANGES The changed browser data is saved.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @retval BROWSER_DISCARD_CHANGES The changed browser data is discard.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFIAPI
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncSaveReminder (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VOID
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Find the registered HotKey based on KeyData.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @param[in] KeyData A pointer to a buffer that describes the keystroke
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync information for the hot key.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync @return The registered HotKey context. If no found, NULL will return.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncBROWSER_HOT_KEY *
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncGetHotKeyFromRegisterList (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync IN EFI_INPUT_KEY *KeyData
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#endif