--- /dev/null
+/** @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: FrameworkFormBrowser.h\r
+\r
+ @par Revision Reference:\r
+ This protocol is defined in HII spec 0.92.\r
+\r
+**/\r
+\r
+#ifndef __FRAMEWORK_FORM_BROWSER_H__\r
+#define __FRAMEWORK_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
+++ /dev/null
-/** @file\r
- The EFI_FORM_CALLBACK_PROTOCOL is the defined interface for access to custom\r
- NV storage devices as well as communication of user selections in a more\r
- interactive environment. This protocol should be published by hardware\r
- specific drivers which want to export access to custom hardware storage or\r
- publish IFR which has a requirement to call back the original driver.\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: FormCallback.h\r
-\r
- @par Revision Reference:\r
- This protocol is defined in HII spec 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FORM_CALLBACK_H__\r
-#define __FORM_CALLBACK_H__\r
-\r
-#include <PiDxe.h>\r
-\r
-#include <Protocol/HiiFramework.h>\r
-#include <Protocol/FrameworkFormBrowser.h>\r
-\r
-#define EFI_FORM_CALLBACK_PROTOCOL_GUID \\r
- { \\r
- 0xf3e4543d, 0xcf35, 0x6cef, {0x35, 0xc4, 0x4f, 0xe6, 0x34, 0x4d, 0xfc, 0x54 } \\r
- }\r
-\r
-//\r
-// Forward reference for pure ANSI compatability\r
-//\r
-typedef struct _EFI_FORM_CALLBACK_PROTOCOL EFI_FORM_CALLBACK_PROTOCOL;\r
-\r
-\r
-#define RESET_REQUIRED 1 // Flags setting to signify that the callback operation resulted in an eventual\r
-// reset to be done upon exit of the browser\r
-//\r
-#define EXIT_REQUIRED 2 // Flags setting to signify that after the processing of the callback results - exit the browser\r
-#define SAVE_REQUIRED 4 // Flags setting to signify that after the processing of the callback results - save the NV data\r
-#define NV_CHANGED 8 // Flags setting to signify that after the processing of the callback results - turn the NV flag on\r
-#define NV_NOT_CHANGED 16 // Flags setting to signify that after the processing of the callback results - turn the NV flag off\r
-#pragma pack(1)\r
-typedef struct {\r
- UINT8 OpCode; // Likely a string, numeric, or one-of\r
- UINT8 Length; // Length of the EFI_IFR_DATA_ENTRY packet\r
- UINT16 Flags; // Flags settings to determine what behavior is desired from the browser after the callback\r
- VOID *Data; // The data in the form based on the op-code type - this is not a pointer to the data, the data follows immediately\r
- // If the OpCode is a OneOf or Numeric type - Data is a UINT16 value\r
- // If the OpCode is a String type - Data is a CHAR16[x] type\r
- // If the OpCode is a Checkbox type - Data is a UINT8 value\r
- // If the OpCode is a NV Access type - Data is a EFI_IFR_NV_DATA structure\r
- //\r
-} EFI_IFR_DATA_ENTRY;\r
-\r
-typedef struct {\r
- VOID *NvRamMap; // If the flag of the op-code specified retrieval of a copy of the NVRAM map,\r
- // this is a pointer to a buffer copy\r
- //\r
- UINT32 EntryCount; // How many EFI_IFR_DATA_ENTRY entries\r
- //\r
- // EFI_IFR_DATA_ENTRY Data[1]; // The in-line Data entries.\r
- //\r
-} EFI_IFR_DATA_ARRAY;\r
-\r
-\r
-typedef union {\r
- EFI_IFR_DATA_ARRAY DataArray; // Primarily used by those who call back to their drivers and use HII as a repository\r
- EFI_IFR_PACKET DataPacket; // Primarily used by those which do not use HII as a repository\r
- CHAR16 *String; // If returning an error - fill the string with null-terminated contents\r
-} EFI_HII_CALLBACK_PACKET;\r
-\r
-typedef struct {\r
- EFI_IFR_OP_HEADER Header;\r
- UINT16 QuestionId; // Offset into the map\r
- UINT8 StorageWidth; // Width of the value\r
- //\r
- // CHAR8 Data[1]; // The Data itself\r
- //\r
-} EFI_IFR_NV_DATA;\r
-\r
-#pragma pack()\r
-//\r
-// The following types are currently defined:\r
-//\r
-/**\r
- Returns the value of a variable.\r
-\r
- @param This A pointer to the EFI_FORM_CALLBACK_PROTOCOL instance.\r
- @param VariableName A NULL-terminated Unicode string that is the\r
- name of the vendor's variable.\r
- @param VendorGuid A unique identifier for the vendor.\r
- @param Attributes If not NULL, a pointer to the memory location to\r
- return the attribute's bit-mask for the variable.\r
- @param DataSize The size in bytes of the Buffer. A size of zero causes\r
- the variable to be deleted.\r
- @param Buffer The buffer to return the contents of the variable.\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_NV_READ) (\r
- IN EFI_FORM_CALLBACK_PROTOCOL *This,\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- OUT UINT32 *Attributes OPTIONAL,\r
- IN OUT UINTN *DataSize,\r
- OUT VOID *Buffer\r
- );\r
-\r
-/**\r
- Sets the value of a variable.\r
-\r
- @param This A pointer to the EFI_FORM_CALLBACK_PROTOCOL instance.\r
- @param VariableName A NULL-terminated Unicode string that is the\r
- name of the vendor's variable. Each VariableName is unique for each VendorGuid.\r
- @param VendorGuid A unique identifier for the vendor.\r
- @param Attributes Attributes bit-mask to set for the variable.\r
- @param DataSize The size in bytes of the Buffer. A size of zero causes\r
- the variable to be deleted.\r
- @param Buffer The buffer containing the contents of the variable.\r
- @param ResetRequired Returns a value from the driver that abstracts\r
- this information and will enable a system to know if a system reset\r
- is required to achieve the configuration changes being enabled through\r
- this function.\r
-\r
- @retval EFI_SUCCESS The firmware has successfully stored the variable and\r
- its data as defined by the Attributes.\r
- @retval EFI_OUT_OF_RESOURCES Not enough storage is available to hold\r
- the variable and its data.\r
- @retval EFI_INVALID_PARAMETER An invalid combination of Attributes bits\r
- was supplied, or the DataSize exceeds the maximum allowed.\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_NV_WRITE) (\r
- IN EFI_FORM_CALLBACK_PROTOCOL *This,\r
- IN CHAR16 *VariableName,\r
- IN EFI_GUID *VendorGuid,\r
- IN UINT32 Attributes,\r
- IN UINTN DataSize,\r
- IN VOID *Buffer,\r
- OUT BOOLEAN *ResetRequired\r
- );\r
-\r
-/**\r
- This function is called to provide results data to the driver.\r
-\r
- @param This A pointer to the EFI_FORM_CALLBACK_PROTOCOL instance.\r
- @param KeyValue A unique value which is sent to the original exporting\r
- driver so that it can identify the type of data to expect. The format of\r
- the data tends to vary based on the opcode that generated the callback.\r
- @param Data A pointer to the data being sent to the original exporting driver.\r
- @param Packet A pointer to a packet of information which a driver passes\r
- back to the browser.\r
-\r
- @return Status Code\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_FORM_CALLBACK) (\r
- IN EFI_FORM_CALLBACK_PROTOCOL *This,\r
- IN UINT16 KeyValue,\r
- IN EFI_IFR_DATA_ARRAY *Data,\r
- OUT EFI_HII_CALLBACK_PACKET **Packet\r
- );\r
-\r
-/**\r
- @par Protocol Description:\r
- The EFI_FORM_CALLBACK_PROTOCOL is the defined interface for access to\r
- custom NVS devices as well as communication of user selections in a more\r
- interactive environment. This protocol should be published by hardware-specific\r
- drivers that want to export access to custom hardware storage or publish IFR\r
- that has a requirement to call back the original driver.\r
-\r
- @param NvRead\r
- The read operation to access the NV data serviced by a hardware-specific driver.\r
-\r
- @param NvWrite\r
- The write operation to access the NV data serviced by a hardware-specific driver.\r
-\r
- @param Callback\r
- The function that is called from the configuration browser to communicate key value pairs.\r
-\r
-**/\r
-struct _EFI_FORM_CALLBACK_PROTOCOL {\r
- EFI_NV_READ NvRead;\r
- EFI_NV_WRITE NvWrite;\r
- EFI_FORM_CALLBACK Callback;\r
-};\r
-\r
-extern EFI_GUID gEfiFormCallbackProtocolGuid;\r
-\r
-#endif\r
+++ /dev/null
-/** @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: FrameworkFormBrowser.h\r
-\r
- @par Revision Reference:\r
- This protocol is defined in HII spec 0.92.\r
-\r
-**/\r
-\r
-#ifndef __FRAMEWORK_FORM_BROWSER_H__\r
-#define __FRAMEWORK_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