]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
MdeModulePkg/Universal: Fix typos in comments
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.h
index b2c3c2010e3ea3c19afa1920b2c4fd5281329413..f1accdf841daf1f0108c3a4155c984068e6ec8b8 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
 Private MACRO, structure and function definitions for Setup Browser module.\r
 \r
-Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>\r
+Copyright (c) 2007 - 2016, Intel Corporation. All rights reserved.<BR>\r
 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
@@ -32,10 +32,12 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/HiiString.h>\r
 #include <Protocol/UserManager.h>\r
 #include <Protocol/DevicePathFromText.h>\r
+#include <Protocol/RegularExpressionProtocol.h>\r
 \r
 #include <Guid/MdeModuleHii.h>\r
 #include <Guid/HiiPlatformSetupFormset.h>\r
 #include <Guid/HiiFormMapMethodGuid.h>\r
+#include <Guid/ZeroGuid.h>\r
 \r
 #include <Library/PrintLib.h>\r
 #include <Library/DebugLib.h>\r
@@ -88,7 +90,7 @@ typedef struct {
   // Produced protocol\r
   //\r
   EFI_FORM_BROWSER2_PROTOCOL            FormBrowser2;\r
-  EFI_FORM_BROWSER_EXTENSION_PROTOCOL   FormBrowserEx;\r
+  EDKII_FORM_BROWSER_EXTENSION_PROTOCOL FormBrowserEx;\r
 \r
   EDKII_FORM_BROWSER_EXTENSION2_PROTOCOL FormBrowserEx2;\r
 \r
@@ -150,7 +152,6 @@ typedef struct {
 \r
   UINT32           Attributes;     // For EFI_IFR_VARSTORE_EFI: EFI Variable attribute\r
 \r
-  CHAR16           *ConfigHdr;     // <ConfigHdr>\r
   CHAR16           *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>\r
                                    // <RequestElement> includes all fields which is used by current form sets.\r
   UINTN            SpareStrLen;    // Spare length of ConfigRequest string buffer\r
@@ -170,10 +171,15 @@ typedef struct {
 \r
   BROWSER_STORAGE  *BrowserStorage;\r
 \r
+  CHAR16           *ConfigHdr;     // <ConfigHdr>\r
+\r
   CHAR16           *ConfigRequest; // <ConfigRequest> = <ConfigHdr> + <RequestElement>\r
   CHAR16           *ConfigAltResp; // Alt config response string for this ConfigRequest.\r
+  BOOLEAN          HasCallAltCfg;  // Flag to show whether browser has call ExtractConfig to get Altcfg string.\r
   UINTN            ElementCount;   // Number of <RequestElement> in the <ConfigRequest>\r
   UINTN            SpareStrLen;    // Spare length of ConfigRequest string buffer\r
+  CHAR16           *RestoreConfigRequest; // When submit formset fail, the element need to be restored\r
+  CHAR16           *SyncConfigRequest;    // When submit formset fail, the element need to be synced\r
 } FORMSET_STORAGE;\r
 \r
 #define FORMSET_STORAGE_FROM_LINK(a)  CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)\r
@@ -383,6 +389,8 @@ typedef struct {
   CHAR16                *ConfigAltResp; // Alt config response string for this ConfigRequest.\r
   UINTN                 ElementCount;   // Number of <RequestElement> in the <ConfigRequest>  \r
   UINTN                 SpareStrLen;\r
+  CHAR16                *RestoreConfigRequest; // When submit form fail, the element need to be restored\r
+  CHAR16                *SyncConfigRequest;    // When submit form fail, the element need to be synced\r
 \r
   BROWSER_STORAGE       *Storage;\r
 } FORM_BROWSER_CONFIG_REQUEST;\r
@@ -404,6 +412,7 @@ typedef struct {
 \r
   BOOLEAN              ModalForm;            // Whether this is a modal form.\r
   BOOLEAN              Locked;               // Whether this form is locked.\r
+  EFI_GUID             RefreshGuid;          // Form refresh event guid.\r
 \r
   LIST_ENTRY           FormViewListHead;     // List of type FORMID_INFO is Browser View Form History List.\r
   LIST_ENTRY           ExpressionListHead;   // List of Expressions (FORM_EXPRESSION)\r
@@ -450,6 +459,7 @@ typedef struct {
   UINT16                          Class;                // Tiano extended Class code\r
   UINT16                          SubClass;             // Tiano extended Subclass code\r
   EFI_IMAGE_ID                    ImageId;\r
+  EFI_IFR_OP_HEADER               *OpCode;              //mainly for formset op to get ClassGuid\r
 \r
   FORM_BROWSER_STATEMENT          *StatementBuffer;     // Buffer for all Statements and Questions\r
   EXPRESSION_OPCODE               *ExpressionBuffer;    // Buffer for all Expression OpCode\r
@@ -524,14 +534,20 @@ typedef struct {
   //\r
   // Globals defined in Setup.c\r
   //\r
+  BOOLEAN                  FlagReconnect;\r
+  BOOLEAN                  CallbackReconnect;\r
   BOOLEAN                  ResetRequired;\r
   BOOLEAN                  ExitRequired;\r
   EFI_HII_HANDLE           HiiHandle;\r
   EFI_GUID                 FormSetGuid;\r
   EFI_FORM_ID              FormId;\r
   UI_MENU_SELECTION        *Selection;\r
-\r
-  LIST_ENTRY           FormHistoryList;\r
+  FORM_BROWSER_FORMSET     *SystemLevelFormSet;\r
+  EFI_QUESTION_ID          CurFakeQestId;\r
+  BOOLEAN                  HiiPackageListUpdated;\r
+  BOOLEAN                  FinishRetrieveCall;\r
+  LIST_ENTRY               FormHistoryList;\r
+  LIST_ENTRY               FormSetList;\r
 } BROWSER_CONTEXT;\r
 \r
 #define BROWSER_CONTEXT_FROM_LINK(a)  CR (a, BROWSER_CONTEXT, Link, BROWSER_CONTEXT_SIGNATURE)\r
@@ -562,6 +578,8 @@ extern EFI_HII_CONFIG_ROUTING_PROTOCOL   *mHiiConfigRouting;
 extern EFI_DEVICE_PATH_FROM_TEXT_PROTOCOL *mPathFromText;\r
 extern EDKII_FORM_DISPLAY_ENGINE_PROTOCOL *mFormDisplay;\r
 \r
+extern BOOLEAN               gCallbackReconnect;\r
+extern BOOLEAN               gFlagReconnect;\r
 extern BOOLEAN               gResetRequired;\r
 extern BOOLEAN               gExitRequired;\r
 extern LIST_ENTRY            gBrowserFormSetList;\r
@@ -575,9 +593,10 @@ extern SETUP_DRIVER_PRIVATE_DATA mPrivateData;
 //\r
 extern CHAR16            *gEmptyString;\r
 \r
-extern EFI_GUID          gZeroGuid;\r
-\r
 extern UI_MENU_SELECTION  *gCurrentSelection;\r
+extern BOOLEAN            mHiiPackageListUpdated;\r
+extern UINT16             mCurFakeQestId;\r
+extern BOOLEAN            mFinishRetrieveCall;\r
 \r
 //\r
 // Global Procedure Defines\r
@@ -917,6 +936,7 @@ InitializeFormSet (
   @param  RetrieveValueFirst     Whether call the retrieve call back to\r
                                  get the initial value before get default\r
                                  value.\r
+  @param  SkipGetAltCfg          Whether skip the get altcfg string process.\r
 \r
   @retval EFI_SUCCESS            The function completed successfully.\r
   @retval EFI_UNSUPPORTED        Unsupport SettingScope.\r
@@ -930,7 +950,8 @@ ExtractDefault (
   IN BROWSER_SETTING_SCOPE            SettingScope,\r
   IN BROWSER_GET_DEFAULT_VALUE        GetDefaultValueScope,\r
   IN BROWSER_STORAGE                  *Storage,\r
-  IN BOOLEAN                          RetrieveValueFirst\r
+  IN BOOLEAN                          RetrieveValueFirst,\r
+  IN BOOLEAN                          SkipGetAltCfg\r
   );\r
 \r
 /**\r
@@ -1201,8 +1222,8 @@ IsNvUpdateRequiredForFormSet (
   @param Action                The action request.\r
   @param SkipSaveOrDiscard     Whether skip save or discard action.\r
 \r
-  @retval EFI_SUCCESS          The call back function excutes successfully.\r
-  @return Other value if the call back function failed to excute.  \r
+  @retval EFI_SUCCESS          The call back function executes successfully.\r
+  @return Other value if the call back function failed to execute.\r
 **/\r
 EFI_STATUS \r
 ProcessCallBackFunction (\r
@@ -1224,8 +1245,8 @@ ProcessCallBackFunction (
   @param Statement             The Question which need to call.\r
   @param FormSet               The formset this question belong to.\r
 \r
-  @retval EFI_SUCCESS          The call back function excutes successfully.\r
-  @return Other value if the call back function failed to excute.  \r
+  @retval EFI_SUCCESS          The call back function executes successfully.\r
+  @return Other value if the call back function failed to execute.\r
 **/\r
 EFI_STATUS \r
 ProcessRetrieveForQuestion (\r
@@ -1298,6 +1319,7 @@ SetScope (
   @retval EFI_INVALID_PARAMETER  KeyData is NULL.\r
   @retval EFI_NOT_FOUND          KeyData is not found to be unregistered.\r
   @retval EFI_UNSUPPORTED        Key represents a printable character. It is conflicted with Browser.\r
+  @retval EFI_ALREADY_STARTED    Key already been registered for one hot key.\r
 **/\r
 EFI_STATUS\r
 EFIAPI\r
@@ -1792,4 +1814,64 @@ IsTrue (
   IN EFI_HII_VALUE     *Result\r
   );\r
 \r
+/**\r
+  Get Formset_storage base on the input varstoreid info.\r
+\r
+  @param  FormSet                Pointer of the current FormSet.\r
+  @param  VarStoreId             Varstore ID info.\r
+\r
+  @return Pointer to a FORMSET_STORAGE data structure.\r
+\r
+**/\r
+FORMSET_STORAGE *\r
+GetFstStgFromVarId (\r
+  IN FORM_BROWSER_FORMSET  *FormSet,\r
+  IN EFI_VARSTORE_ID       VarStoreId\r
+  );\r
+\r
+/**\r
+  Get Formset_storage base on the input browser storage.\r
+\r
+  More than one formsets may share the same browser storage,\r
+  this function just get the first formset storage which\r
+  share the browser storage.\r
+\r
+  @param  Storage              browser storage info.\r
+\r
+  @return Pointer to a FORMSET_STORAGE data structure.\r
+  \r
+\r
+**/\r
+FORMSET_STORAGE *\r
+GetFstStgFromBrsStg (\r
+  IN BROWSER_STORAGE       *Storage\r
+  );\r
+\r
+/**\r
+  Reconnect the controller.\r
+\r
+  @param DriverHandle          The controller handle which need to be reconnect.\r
+\r
+  @retval   TRUE     do the reconnect behavior success.\r
+  @retval   FALSE    do the reconnect behavior failed.\r
+  \r
+**/\r
+BOOLEAN\r
+ReconnectController (\r
+  IN EFI_HANDLE   DriverHandle\r
+  );\r
+\r
+/**\r
+  Converts the unicode character of the string from uppercase to lowercase.\r
+  This is a internal function.\r
+\r
+  @param ConfigString  String to be converted\r
+\r
+**/\r
+VOID\r
+EFIAPI\r
+HiiToLower (\r
+  IN EFI_STRING  ConfigString\r
+  );\r
+\r
 #endif\r