/** @file\r
-\r
- The file provides services to call for drivers to leverage the\r
- EFI configuration driver interface.\r
+ This protocol is defined in UEFI spec.\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
+ The EFI_FORM_BROWSER2_PROTOCOL is the interface to call for drivers to \r
+ leverage the EFI configuration driver interface.\r
+ \r
+Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution. \r
+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
+#ifndef __EFI_FORM_BROWSER2_H__\r
+#define __EFI_FORM_BROWSER2_H__\r
+\r
+#include <Guid/HiiPlatformSetupFormset.h>\r
\r
#define EFI_FORM_BROWSER2_PROTOCOL_GUID \\r
{0xb9d4c360, 0xbcfb, 0x4f9b, {0x92, 0x98, 0x53, 0xc1, 0x36, 0x98, 0x22, 0x58 }}\r
\r
/**\r
\r
- @param LeftColumn Value that designates the text column\r
+ @param LeftColumn The 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
+ \r
+ @param RightColumn The 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
+ @param TopRow The 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
+ @param BottomRow The 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
#define EFI_BROWSER_ACTION_REQUEST_RESET 1\r
#define EFI_BROWSER_ACTION_REQUEST_SUBMIT 2\r
#define EFI_BROWSER_ACTION_REQUEST_EXIT 3\r
+#define EFI_BROWSER_ACTION_REQUEST_FORM_SUBMIT_EXIT 4\r
+#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD_EXIT 5\r
+#define EFI_BROWSER_ACTION_REQUEST_FORM_APPLY 6\r
+#define EFI_BROWSER_ACTION_REQUEST_FORM_DISCARD 7\r
+#define EFI_BROWSER_ACTION_REQUEST_RECONNECT 8\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_BROWSER2_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
+ Initialize the browser to display the specified configuration forms.\r
+\r
+ This function is the primary interface to the internal forms-based browser. \r
+ The forms browser will display forms associated with the specified Handles. \r
+ The browser will select all forms in packages which have the specified Type \r
+ and (for EFI_HII_PACKAGE_TYPE_GUID) the specified PackageGuid.\r
+\r
+ @param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance\r
+\r
+ @param Handles A pointer to an array of Handles. This value should correspond \r
+ to the value of the HII form package that is required to be displayed.\r
+\r
+ @param HandleCount The number of Handles specified in Handle.\r
+\r
+ @param FormSetGuid This field points to the EFI_GUID which must match the Guid field or one of the\r
+ elements of the ClassId field in the EFI_IFR_FORM_SET op-code. If\r
+ FormsetGuid is NULL, then this function will display the form set class\r
+ EFI_HII_PLATFORM_SETUP_FORMSET_GUID.\r
+\r
+ @param FormId This field specifies the identifier of the form within the form set to render as the first\r
+ displayable page. If this field has a value of 0x0000, then the Forms Browser will\r
+ render the first enabled form in the form set.\r
+\r
+ @param ScreenDimensions Points to recommended form dimensions, including any non-content area, in \r
+ characters.\r
+\r
+ @param ActionRequest Points to the action recommended by the form.\r
+\r
+ @retval EFI_SUCCESS The function completed successfully\r
\r
- @retval EFI_DEVICE_ERROR The variable could not be saved due\r
- to a hardware failure.\r
+ @retval EFI_NOT_FOUND The variable was not found.\r
\r
+ @retval EFI_INVALID_PARAMETER One of the parameters has an\r
+ invalid value. \r
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_SEND_FORM2) (\r
+(EFIAPI *EFI_SEND_FORM2)(\r
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,\r
IN EFI_HII_HANDLE *Handle,\r
IN UINTN HandleCount,\r
\r
\r
/**\r
- \r
+ This function is called by a callback handler to retrieve uncommitted state data from the browser.\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_BROWSER2_PROTOCOL\r
- instance.\r
+ @param This A pointer to the EFI_FORM_BROWSER2_PROTOCOL instance.\r
\r
@param ResultsDataSize A pointer to the size of the buffer\r
- associated with ResultsData. \r
+ associated with ResultsData. On input, the size in\r
+ bytes of ResultsData. On output, the size of data \r
+ returned in 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
+ @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
@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
+ @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
**/\r
typedef\r
EFI_STATUS\r
-(EFIAPI *EFI_BROWSER_CALLBACK2 ) (\r
+(EFIAPI *EFI_BROWSER_CALLBACK2)(\r
IN CONST EFI_FORM_BROWSER2_PROTOCOL *This,\r
IN OUT UINTN *ResultsDataSize,\r
IN OUT EFI_STRING ResultsData,\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
+///\r
+/// This interface will allow the caller to direct the configuration \r
+/// driver to use either the HII database or use the passed-in packet of data.\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