--- /dev/null
+/** @file\r
+\r
+ The file provides services to call for drivers to leverage the\r
+ EFI configuration driver interface.\r
+ \r
+ Copyright (c) 2006 - 2007, 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
+**/\r
+\r
+#ifndef __EFI_FORM_BROWSER_H__\r
+#define __EFI_FORM_BROWSER_H__\r
+\r
+#error "UEFI 2.1 HII is not fully implemented for now, Please don't include this file now."\r
+\r
+\r
+#define EFI_FORM_BROWSER2_PROTOCOL_GUID \\r
+ { 0xe5a1333e, 0xe1b4, 0x4e55, { 0xce, 0xeb, 0x35, 0xc3, 0xef, 0x13, 0x34, 0x43 } }\r
+\r
+\r
+typedef struct _EFI_FORM_BROWSER2_PROTOCOL EFI_FORM_BROWSER2_PROTOCOL;\r
+\r
+\r
+\r
+/**\r
+ \r
+ @param LeftColumn Value that designates the text column\r
+ where the browser window will begin from\r
+ the left-hand side of the screen\r
+ RightColumn Value that designates the text\r
+ column where the browser window will end\r
+ on the right-hand side of the screen.\r
+\r
+ @param TopRow Value that designates the text row from the\r
+ top of the screen where the browser window\r
+ will start.\r
+\r
+ @param BottomRow Value that designates the text row from the\r
+ bottom of the screen where the browser\r
+ window will end. \r
+**/\r
+typedef struct {\r
+ UINTN LeftColumn;\r
+ UINTN RightColumn;\r
+ UINTN TopRow;\r
+ UINTN BottomRow;\r
+} EFI_SCREEN_DESCRIPTOR;\r
+\r
+typedef UINTN EFI_BROWSER_ACTION_REQUEST;\r
+\r
+#define EFI_BROWSER_ACTION_NONE 0\r
+#define EFI_BROWSER_ACTION_RESET 1\r
+#define EFI_BROWSER_ACTION_SUMBIT 2\r
+#define EFI_BROWSER_ACTION_EXIT 3\r
+\r
+\r
+/**\r
+ \r
+ This function is the primary interface to the internal\r
+ forms-based browser. By calling this routine, one is directing\r
+ the browser to use a variety of passed-in information or\r
+ primarily use the HII database as the source of information.\r
+\r
+ @param This A pointer to the EFI_FORM_BROWSER_PROTOCOL\r
+ instance.\r
+\r
+ @param Handle A pointer to an array of HII handles to\r
+ display. This value should correspond to the\r
+ value of the HII form package that is required\r
+ to be displayed.\r
+\r
+ @param HandleCount The number of handles in the array\r
+ specified by Handle.\r
+\r
+ @param SingleUse If FALSE, the browser operates as a standard\r
+ forms processor and exits only when\r
+ explicitly requested by the user. If TRUE,\r
+ the browser will return immediately after\r
+ processing the first user-generated\r
+ selection.\r
+\r
+ @param ScreenDimensions Allows the browser to be called so\r
+ that it occupies a portion of the\r
+ physical screen instead of\r
+ dynamically determining the screen\r
+ dimensions. If the input values\r
+ violate the platform policy then the\r
+ dimensions will be dynamically\r
+ adjusted to comply.\r
+\r
+ @param ResetRequired This BOOLEAN value will tell the caller\r
+ if a reset is required based on the data\r
+ that might have been changed. The\r
+ ResetRequired parameter is primarily\r
+ applicable for configuration\r
+ applications, and is an optional\r
+ parameter.\r
+\r
+ @retval EFI_SUCCESS The function completed successfully\r
+ \r
+ @retval EFI_NOT_FOUND The variable was not found.\r
+ \r
+ @retval EFI_BUFFER_TOO_SMALL The DataSize is too small for\r
+ the result. DataSize has been\r
+ updated with the size needed to\r
+ complete the request.\r
+ \r
+ @retval EFI_INVALID_PARAMETER One of the parameters has an\r
+ invalid value.\r
+ \r
+ @retval EFI_DEVICE_ERROR The variable could not be saved due\r
+ to a hardware failure.\r
+ \r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_SEND_FORM2) (\r
+ IN CONST EFI_FORM_BROWSER_PROTOCOL *This,\r
+ IN CONST EFI_HII_HANDLE *Handle,\r
+ IN CONST UINTN HandleCount,\r
+ IN CONST BOOLEAN SingleUse,\r
+ IN CONST EFI_SCREEN_DESCRIPTOR *ScreenDimensions, OPTIONAL\r
+ OUT BOOLEAN *ResetRequired OPTIONAL\r
+ OUT EFI_BROWSER_ACTION_REQUEST *ActionRequest OPTIONAL\r
+);\r
+\r
+\r
+/**\r
+ \r
+ This routine is called by a routine which was called by the\r
+ browser. This routine called this service in the browser to\r
+ retrieve or set certain uncommitted state information.\r
+\r
+ @param This A pointer to the EFI_FORM_BROWSER_PROTOCOL\r
+ instance.\r
+\r
+ @param ResultsDataSize A pointer to the size of the buffer\r
+ associated with ResultsData. \r
+\r
+ @param ResultsData A string returned from an IFR browser or\r
+ equivalent. The results string will have\r
+ no routing information in them.\r
+\r
+ @param RetrieveData A BOOLEAN field which allows an agent to\r
+ retrieve (if RetrieveData = TRUE) data\r
+ from the uncommitted browser state\r
+ information or set (if RetrieveData =\r
+ FALSE) data in the uncommitted browser\r
+ state information.\r
+\r
+ @param VariableGuid An optional field to indicate the target\r
+ variable GUID name to use.\r
+\r
+ @param VariableName An optional field to indicate the target\r
+ human-readable variable name.\r
+\r
+\r
+ @retval EFI_SUCCESS The results have been distributed or are\r
+ awaiting distribution.\r
+ \r
+ @retval EFI_OUT_OF_RESOURCES The ResultsDataSize specified\r
+ was too small to contain the\r
+ results data.\r
+\r
+**/\r
+typedef\r
+EFI_STATUS\r
+(EFIAPI *EFI_BROWSER_CALLBACK2 ) (\r
+ IN CONST EFI_FORM_BROWSER_PROTOCOL *This,\r
+ IN OUT UINTN *ResultsDataSize,\r
+ IN OUT EFI_STRING ResultsData,\r
+ IN CONST BOOLEAN RetrieveData,\r
+ IN CONST EFI_GUID *VariableGuid, OPTIONAL\r
+ IN CONST CHAR16 *VariableName OPTIONAL\r
+);\r
+\r
+/**\r
+ \r
+ This protocol is the interface to call for drivers to leverage\r
+ the EFI configuration driver interface.\r
+\r
+ @param SendForm Provides direction to the configuration\r
+ driver whether to use the HII database or to\r
+ use a passed-in set of data. This functions\r
+ also establishes a pointer to the calling\r
+ driver's callback interface. See the\r
+ SendForm() function description.\r
+\r
+ @param BrowserCallback Routine used to expose internal\r
+ configuration state of the browser.\r
+ This is primarily used by callback\r
+ handler routines which were called by\r
+ the browser and in-turn need to get\r
+ additional information from the\r
+ browser itself. See the\r
+ BrowserCallback() function\r
+ description.\r
+\r
+**/\r
+struct _EFI_FORM_BROWSER2_PROTOCOL {\r
+ EFI_SEND_FORM2 SendForm;\r
+ EFI_BROWSER_CALLBACK2 BrowserCallback;\r
+} ;\r
+\r
+\r
+extern EFI_GUID gEfiFormBrowser2ProtocolGuid;\r
+\r
+#endif\r
+\r
+\r