+++ /dev/null
-/** @file\r
- The EFI_FORM_BROWSER_PROTOCOL is the interface to the EFI \r
- Configuration Driver. This will allow the caller to direct the \r
- configuration driver to use either the HII database or use the passed \r
- in packet of data. This will also allow the caller to post messages \r
- into the configuration drivers internal mailbox.\r
-\r
- Copyright (c) 2006, Intel Corporation \r
- All rights reserved. This program and the accompanying materials \r
- are licensed and made available under the terms and conditions of the BSD License \r
- which accompanies this distribution. The full text of the license may be found at \r
- http://opensource.org/licenses/bsd-license.php \r
-\r
- THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, \r
- WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. \r
-\r
- Module Name: FormBrowser.h\r
-\r
- @par Revision Reference:\r
- This protocol is defined in HII spec 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FORM_BROWSER_H__\r
-#define __FORM_BROWSER_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
-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
-} 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, the configuration\r
- driver will get the information provided in the passed-in Packet parameters.\r
- @param Handle A pointer to an array of HII handles to display. This value\r
- should correspond to the value of the HII form package that is required to\r
- 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 parameter is FALSE\r
- and an application wants to 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 to provide to the browser\r
- the current settings for 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 determining the\r
- screen dimensions.\r
- @param ResetRequired This BOOLEAN value will tell the caller if a reset\r
- is required based on the data that might have been changed. The ResetRequired\r
- parameter is primarily applicable 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 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 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 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 in StringBuffer.\r
- @param MaximumStringSize The maximum size in bytes of a typed-in string.\r
- Because each character is a CHAR16, the minimum 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
- @par Protocol Description:\r
- The EFI_FORM_BROWSER_PROTOCOL is the interface to call for drivers to \r
- leverage the EFI configuration driver interface. \r
-\r
- @param SendForm\r
- Provides direction to the configuration driver whether to use the HII \r
- database or to use a passed-in set of data. This functions also establishes \r
- a pointer to the calling driver's callback interface. \r
-\r
- @param CreatePopUp\r
- Routine used to abstract a generic dialog interface and return the \r
- selected key or string.\r
-\r
-**/\r
-struct _EFI_FORM_BROWSER_PROTOCOL {\r
- EFI_SEND_FORM SendForm;\r
- EFI_CREATE_POP_UP CreatePopUp;\r
-};\r
-\r
-extern EFI_GUID gEfiFormBrowserProtocolGuid;\r
-\r
-#endif\r