+++ /dev/null
-/** @file\r
- FormDiplay protocol to show Form\r
-\r
-Copyright (c) 2013, 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 __DISPLAY_PROTOCOL_H__\r
-#define __DISPLAY_PROTOCOL_H__\r
-\r
-#define FORM_DISPLAY_ENGINE_PROTOCOL_GUID \\r
- { 0x9bbe29e9, 0xfda1, 0x41ec, { 0xad, 0x52, 0x45, 0x22, 0x13, 0x74, 0x2d, 0x2e } }\r
-\r
-#define FORM_DISPLAY_ENGINE_STATEMENT_VERSION 0x10000\r
-#define FORM_DISPLAY_ENGINE_VERSION 0x10000\r
-\r
-typedef struct _FORM_DISPLAY_ENGINE_PROTOCOL FORM_DISPLAY_ENGINE_PROTOCOL;\r
-\r
-typedef struct {\r
- UINT8 Type; // HII Data Type\r
- UINT8 *Buffer; // Buffer Data and Length if Type is EFI_IFR_TYPE_BUFFER or EFI_IFR_TYPE_STRING\r
- UINT16 BufferLen;\r
- EFI_IFR_TYPE_VALUE Value;\r
-} EFI_HII_VALUE;\r
-\r
-#define DISPLAY_QUESTION_OPTION_SIGNATURE SIGNATURE_32 ('Q', 'O', 'P', 'T')\r
-\r
-typedef struct {\r
- UINTN Signature;\r
- LIST_ENTRY Link;\r
- EFI_IFR_ONE_OF_OPTION OptionOpCode; // OneOfOption Data\r
- EFI_IMAGE_ID ImageId; // Option ImageId and AnimationId\r
- EFI_ANIMATION_ID AnimationId;\r
-} DISPLAY_QUESTION_OPTION;\r
-\r
-#define DISPLAY_QUESTION_OPTION_FROM_LINK(a) CR (a, DISPLAY_QUESTION_OPTION, Link, DISPLAY_QUESTION_OPTION_SIGNATURE)\r
-\r
-\r
-typedef struct _FORM_DISPLAY_ENGINE_STATEMENT FORM_DISPLAY_ENGINE_STATEMENT;\r
-\r
-//\r
-// Attribute for Statement and Form\r
-//\r
-#define HII_DISPLAY_GRAYOUT BIT0\r
-#define HII_DISPLAY_LOCK BIT1\r
-#define HII_DISPLAY_READONLY BIT2\r
-#define HII_DISPLAY_MODAL BIT3\r
-\r
-#define FORM_DISPLAY_ENGINE_FORM_SIGNATURE SIGNATURE_32 ('F', 'F', 'R', 'M')\r
-\r
-typedef struct {\r
- UINTN Signature;\r
- UINTN Version; // Version for future structure extension\r
- LIST_ENTRY StatementListHead; // Statement List inside of Form\r
- EFI_GUID FormSetGuid; // FormSet information\r
- EFI_HII_HANDLE HiiHandle; // HiiHandle can be used to get String, Image or Animation\r
- UINT16 FormId; // Form ID and Title.\r
- EFI_STRING_ID FormTitle;\r
- UINT32 Attribute; // Form Attributes: Lock, Modal.\r
- BOOLEAN SettingChangedFlag; // Flag to describe whether setting is changed or not.\r
- FORM_DISPLAY_ENGINE_STATEMENT *HighLightedStatement; // Statement to be HighLighted\r
- EFI_GUID *FormRefreshEventGuid; // EventGuid to notify Displayer that FormData is updated to be refreshed.\r
- LIST_ENTRY HotKeyListHead; // Additional Hotkey registered by BrowserEx protocol.\r
- EFI_IMAGE_ID ImageId; // Form ImageId and AnimationId\r
- EFI_ANIMATION_ID AnimationId;\r
-} FORM_DISPLAY_ENGINE_FORM;\r
-\r
-#define FORM_DISPLAY_ENGINE_FORM_FROM_LINK(a) CR (a, FORM_DISPLAY_ENGINE_FORM, Link, FORM_DISPLAY_ENGINE_FORM_SIGNATURE)\r
-\r
-/**\r
- Perform value check for a question.\r
- \r
- @param Form Form where Statement is in.\r
- @param Statement Value will check for it.\r
- @param Value New value will be checked.\r
- \r
- @retval TRUE Input Value is valid.\r
- @retval FALSE Input Value is invalid.\r
-**/\r
-typedef\r
-BOOLEAN\r
-(EFIAPI *VALIDATE_QUESTION) (\r
- IN FORM_DISPLAY_ENGINE_FORM *Form,\r
- IN FORM_DISPLAY_ENGINE_STATEMENT *Statement,\r
- IN EFI_HII_VALUE *Value\r
- );\r
-\r
-/**\r
- Perform Password check. \r
- Passwork may be encrypted by driver that requires the specific check.\r
- \r
- @param Form Form where Password Statement is in.\r
- @param Statement Password statement\r
- @param PasswordString Password string to be checked. It may be NULL.\r
- \r
- @return Status Status of Password check.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *PASSWORD_CHECK) (\r
- IN FORM_DISPLAY_ENGINE_FORM *Form,\r
- IN FORM_DISPLAY_ENGINE_STATEMENT *Statement, \r
- IN EFI_STRING *PasswordString OPTIONAL\r
- );\r
-\r
-#define FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE SIGNATURE_32 ('F', 'S', 'T', 'A')\r
-\r
-struct _FORM_DISPLAY_ENGINE_STATEMENT{\r
- UINTN Signature;\r
- UINTN Version; // Version for future structure extension\r
- LIST_ENTRY DisplayLink; // link to all the statement which will show in the display form.\r
- EFI_IFR_OP_HEADER *OpCode; // Pointer to statement opcode.\r
- // for Guided Opcode. All buffers will be here if GUIDED opcode scope is set.\r
- EFI_HII_VALUE CurrentValue; // Question CurrentValue\r
- BOOLEAN SettingChangedFlag; // Flag to describe whether setting is changed or not.\r
- // Displayer may depend on it to show it with the different color.\r
- LIST_ENTRY NestStatementList; // nested Statement list inside of EFI_IFR_SUBTITLE\r
- LIST_ENTRY OptionListHead; // nested EFI_IFR_ONE_OF_OPTION list (QUESTION_OPTION)\r
- UINT32 Attribute; // Statement attributes: GRAYOUT, LOCK and READONLY\r
- VALIDATE_QUESTION ValidateQuestion; // ValidateQuestion to do InconsistIf check\r
- EFI_STRING_ID InConsistentStringId; // InConsistentString popup will be used when ValidateQuestion returns FASLE.\r
- // If this ID is zero, then Display can customize error message for the invalid value.\r
- PASSWORD_CHECK PasswordCheck; // Password additional check. It may be NULL when the additional check is not required.\r
- EFI_IMAGE_ID ImageId; // Statement ImageId and AnimationId\r
- EFI_ANIMATION_ID AnimationId;\r
-};\r
-\r
-#define FORM_DISPLAY_ENGINE_STATEMENT_FROM_LINK(a) CR (a, FORM_DISPLAY_ENGINE_STATEMENT, DisplayLink, FORM_DISPLAY_ENGINE_STATEMENT_SIGNATURE)\r
-\r
-typedef struct {\r
- UINTN Signature;\r
- LIST_ENTRY Link;\r
- EFI_INPUT_KEY KeyData;\r
- UINT32 Action; // Action is Discard, Default, Submit, Reset and Exit.\r
- UINT16 DefaultId;\r
- EFI_STRING HelpString; // HotKey Help String\r
-} HOTKEY_INFO;\r
-\r
-typedef struct {\r
- FORM_DISPLAY_ENGINE_STATEMENT *SelectedStatement; // Selected Statement and InputValue\r
- EFI_HII_VALUE InputValue;\r
- UINT32 Action; // If SelectedStatement is NULL, Action will be used.\r
- // Trig Action (Discard, Default, Submit, Reset and Exit)\r
- UINT16 DefaultId;\r
-} USER_INPUT;\r
-\r
-/**\r
- Display one form, and return user input.\r
- \r
- @param FormData Form Data to be shown.\r
- @param UserInputData User input data.\r
- \r
- @retval EFI_SUCCESS Form Data is shown, and user input is got.\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *FORM_DISPLAY) (\r
- IN FORM_DISPLAY_ENGINE_FORM *FormData,\r
- OUT USER_INPUT *UserInputData\r
-);\r
-\r
-/**\r
- Exit Display and Clear Screen to the original state.\r
-\r
-**/\r
-typedef\r
-VOID\r
-(EFIAPI *EXIT_DISPLAY) (\r
- VOID\r
-);\r
-\r
-/**\r
- Confirm how to handle the changed data. \r
- \r
- @return Action of Submit, Discard and None\r
-**/\r
-typedef\r
-UINTN\r
-(EFIAPI *CONFIRM_DATA_CHANGE) (\r
- VOID\r
-);\r
-\r
-struct _FORM_DISPLAY_ENGINE_PROTOCOL {\r
- FORM_DISPLAY FormDisplay;\r
- EXIT_DISPLAY ExitDisplay;\r
- CONFIRM_DATA_CHANGE ConfirmDataChange;\r
-};\r
-\r
-extern EFI_GUID gEfiFormDisplayEngineProtocolGuid;\r
-#endif\r