]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OldMdePkg/Include/Protocol/FormBrowser.h
Moved the MdePkg to OldMdePkg so that new code in MdePkg does not break existing...
[mirror_edk2.git] / OldMdePkg / Include / Protocol / FormBrowser.h
diff --git a/OldMdePkg/Include/Protocol/FormBrowser.h b/OldMdePkg/Include/Protocol/FormBrowser.h
new file mode 100644 (file)
index 0000000..a16331b
--- /dev/null
@@ -0,0 +1,160 @@
+/** @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