]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/FormBrowser2.h
MdePkg: Add definition for new warning code EFI_WARN_FILE_SYSTEM.
[mirror_edk2.git] / MdePkg / Include / Protocol / FormBrowser2.h
index 34fd9b71a7b796f4d4177b68a549ccac65c09353..867b1e0ed0ac18f231f2cc726294d38c76af4582 100644 (file)
@@ -1,21 +1,24 @@
 /** @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
@@ -27,20 +30,21 @@ typedef struct _EFI_FORM_BROWSER2_PROTOCOL   EFI_FORM_BROWSER2_PROTOCOL;
 \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
@@ -55,69 +59,52 @@ typedef UINTN EFI_BROWSER_ACTION_REQUEST;
 #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
@@ -129,20 +116,22 @@ EFI_STATUS
 \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
@@ -157,9 +146,8 @@ EFI_STATUS
   @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
@@ -168,7 +156,7 @@ EFI_STATUS
 **/\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
@@ -177,35 +165,15 @@ EFI_STATUS
   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