]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/FormBrowser2.h
Sync HII and Setupbrowser related header files with UEFI 2.1 spec.
[mirror_edk2.git] / MdePkg / Include / Protocol / FormBrowser2.h
diff --git a/MdePkg/Include/Protocol/FormBrowser2.h b/MdePkg/Include/Protocol/FormBrowser2.h
new file mode 100644 (file)
index 0000000..36e47e1
--- /dev/null
@@ -0,0 +1,216 @@
+/** @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