+++ /dev/null
-/** @file\r
- The EFI_FORM_BROWSER_PROTOCOL is the interface to the EFI\r
- Configuration Driver. This interface enables the caller to direct the\r
- configuration driver to use either the HII database or the passed-in\r
- packet of data. This will also allow the caller to post messages\r
- into the configuration drivers internal mailbox.\r
-\r
-Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
-SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
- Module Name: FrameworkFormBrowser.h\r
-\r
- @par Revision Reference:\r
- This protocol is defined in HII spec 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_FORM_BROWSER_H__\r
-#define __FRAMEWORK_FORM_BROWSER_H__\r
-\r
-#include <Protocol/FrameworkHii.h>\r
-\r
-\r
-#define EFI_FORM_BROWSER_PROTOCOL_GUID \\r
- { \\r
- 0xe5a1333e, 0xe1b4, 0x4d55, {0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43 } \\r
- }\r
-\r
-#define EFI_FORM_BROWSER_COMPATIBILITY_PROTOCOL_GUID \\r
- { \\r
- 0xfb7c852, 0xadca, 0x4853, { 0x8d, 0xf, 0xfb, 0xa7, 0x1b, 0x1c, 0xe1, 0x1a } \\r
- }\r
-\r
-typedef struct _EFI_FORM_BROWSER_PROTOCOL EFI_FORM_BROWSER_PROTOCOL;\r
-\r
-typedef struct {\r
- UINT32 Length;\r
- UINT16 Type;\r
- UINT8 Data[1];\r
-} EFI_HII_PACKET;\r
-\r
-typedef struct {\r
- EFI_HII_IFR_PACK *IfrData;\r
- EFI_HII_STRING_PACK *StringData;\r
-} EFI_IFR_PACKET;\r
-\r
-typedef struct {\r
- UINTN LeftColumn;\r
- UINTN RightColumn;\r
- UINTN TopRow;\r
- UINTN BottomRow;\r
-} FRAMEWORK_EFI_SCREEN_DESCRIPTOR;\r
-\r
-/**\r
- Provides direction to the configuration driver whether to use the HII\r
- database or a passed-in set of data. This function also establishes a\r
- pointer to the calling driver's callback interface.\r
-\r
- @param This A pointer to the EFI_FORM_BROWSER_PROTOCOL instance.\r
- @param UseDatabase Determines whether the HII database is to be\r
- used to gather information. If the value is FALSE,\r
- the configuration driver will get the information\r
- provided in the passed-in Packet parameters.\r
- @param Handle A pointer to an array of HII handles to display.\r
- This value should correspond to the value of the\r
- HII form package that is required to be displayed.\r
- @param HandleCount The number of handles in the array specified by Handle.\r
- @param Packet A pointer to a set of data containing pointers to IFR\r
- and/or string data.\r
- @param CallbackHandle The handle to the driver's callback interface.\r
- This parameter is used only when the UseDatabase\r
- parameter is FALSE and an application wants to\r
- register a callback with the browser.\r
- @param NvMapOverride This buffer is used only when there is no NV variable\r
- to define the current settings and the caller needs\r
- to provide to the browser the current settings for\r
- the "fake" NV variable.\r
- @param ScreenDimensions Allows the browser to be called so that it occupies\r
- a portion of the physical screen instead of dynamically\r
- determining the screen dimensions.\r
- @param ResetRequired This BOOLEAN value denotes whether a reset is required\r
- based on the data that might have been changed.\r
- The ResetRequired parameter is primarily applicable\r
- for configuration applications, and is an\r
- optional parameter.\r
-\r
- @retval EFI_SUCCESS The function completed successfully.\r
- @retval EFI_NOT_FOUND The variable was not found.\r
- @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for the result.\r
- DataSize has been updated with the size needed to\r
- complete the request.\r
- @retval EFI_INVALID_PARAMETER One of the parameters has an invalid value.\r
- @retval EFI_DEVICE_ERROR The variable could not be saved due to a hardware failure.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SEND_FORM)(\r
- IN EFI_FORM_BROWSER_PROTOCOL *This,\r
- IN BOOLEAN UseDatabase,\r
- IN FRAMEWORK_EFI_HII_HANDLE *Handle,\r
- IN UINTN HandleCount,\r
- IN EFI_IFR_PACKET *Packet, OPTIONAL\r
- IN EFI_HANDLE CallbackHandle, OPTIONAL\r
- IN UINT8 *NvMapOverride, OPTIONAL\r
- IN FRAMEWORK_EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL\r
- OUT BOOLEAN *ResetRequired OPTIONAL\r
- );\r
-\r
-/**\r
- Routine used to abstract a generic dialog interface and return the selected\r
- key or string.\r
-\r
- @param NumberOfLines The number of lines for the dialog box.\r
- @param HotKey Defines whether a single character is parsed (TRUE)\r
- and returned in KeyValue, or if a string is returned\r
- in StringBuffer.\r
- @param MaximumStringSize The maximum size in bytes of a typed-in string.\r
- Because each character is a CHAR16, the minimum\r
- string returned is two bytes.\r
- @param StringBuffer The passed-in pointer to the buffer that will hold\r
- the typed in string if HotKey is FALSE.\r
- @param KeyValue The EFI_INPUT_KEY value returned if HotKey is TRUE.\r
- @param String The pointer to the first string in the list of strings\r
- that comprise the dialog box.\r
- @param ... A series of NumberOfLines text strings that will be used\r
- to construct the dialog box.\r
-\r
- @retval EFI_SUCCESS The dialog was displayed and user interaction was received.\r
- @retval EFI_DEVICE_ERROR The user typed in an ESC character to exit the routine.\r
- @retval EFI_INVALID_PARAMETER One of the parameters was invalid\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_CREATE_POP_UP)(\r
- IN UINTN NumberOfLines,\r
- IN BOOLEAN HotKey,\r
- IN UINTN MaximumStringSize,\r
- OUT CHAR16 *StringBuffer,\r
- OUT EFI_INPUT_KEY *KeyValue,\r
- IN CHAR16 *String,\r
- ...\r
- );\r
-\r
-/**\r
- The EFI_FORM_BROWSER_PROTOCOL is the interface to call for drivers to\r
- leverage the EFI configuration driver interface.\r
-**/\r
-struct _EFI_FORM_BROWSER_PROTOCOL {\r
- ///\r
- /// Provides direction to the configuration driver whether to use the HII\r
- /// database or to use a passed-in set of data. This function also establishes\r
- /// a pointer to the calling driver's callback interface.\r
- ///\r
- EFI_SEND_FORM SendForm;\r
-\r
- ///\r
- /// Routine used to abstract a generic dialog interface and return the\r
- /// selected key or string.\r
- ///\r
- EFI_CREATE_POP_UP CreatePopUp;\r
-};\r
-\r
-extern EFI_GUID gEfiFormBrowserProtocolGuid;\r
-extern EFI_GUID gEfiFormBrowserCompatibilityProtocolGuid;\r
-\r
-\r
-#endif\r