]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
Update the copyright notice format
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.h
index 310d3e6599904e86da6f69db791911a397cc99d8..51d6b882b75902aef89837243e7758bda8396735 100644 (file)
@@ -1,8 +1,8 @@
 /** @file\r
 Private MACRO, structure and function definitions for Setup Browser module.\r
 \r
-Copyright (c) 2007 - 2009, Intel Corporation\r
-All rights reserved. This program and the accompanying materials\r
+Copyright (c) 2007 - 2010, 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
 http://opensource.org/licenses/bsd-license.php\r
@@ -28,9 +28,11 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/HiiConfigRouting.h>\r
 #include <Protocol/HiiDatabase.h>\r
 #include <Protocol/HiiString.h>\r
+#include <Protocol/UserManager.h>\r
 \r
 #include <Guid/MdeModuleHii.h>\r
 #include <Guid/HiiPlatformSetupFormset.h>\r
+#include <Guid/HiiFormMapMethodGuid.h>\r
 \r
 #include <Library/PrintLib.h>\r
 #include <Library/DebugLib.h>\r
@@ -149,13 +151,11 @@ typedef struct {
 //\r
 #define EXPRESSION_STACK_SIZE_INCREMENT    0x100\r
 \r
+#define EFI_SPECIFICATION_MAJOR_VERSION    0x2\r
+#define EFI_SPECIFICATION_MINOR_VERSION    0x1\r
+#define EFI_SPECIFICATION_ERRATA_VERSION   0x0\r
+#define EFI_IFR_SPECIFICATION_VERSION  (UINT16)((EFI_SPECIFICATION_MAJOR_VERSION << 8) | (EFI_SPECIFICATION_MINOR_VERSION << 4) | EFI_SPECIFICATION_ERRATA_VERSION)\r
 \r
-#define EFI_SPECIFICATION_ERRATA_VERSION   0\r
-\r
-#define EFI_IFR_SPECIFICATION_VERSION  \\r
-        ((((EFI_SPECIFICATION_VERSION) >> 8) & 0xff00) | \\r
-         (((EFI_SPECIFICATION_VERSION) & 0xf) << 4) | \\r
-         ((EFI_SPECIFICATION_ERRATA_VERSION) & 0xf))\r
 \r
 #define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')\r
 typedef struct {\r
@@ -184,6 +184,8 @@ typedef struct {
 #define EFI_HII_EXPRESSION_DISABLE_IF        4\r
 #define EFI_HII_EXPRESSION_VALUE             5\r
 #define EFI_HII_EXPRESSION_RULE              6\r
+#define EFI_HII_EXPRESSION_READ              7\r
+#define EFI_HII_EXPRESSION_WRITE             8\r
 \r
 #define EFI_HII_VARSTORE_BUFFER              0\r
 #define EFI_HII_VARSTORE_NAME_VALUE          1\r
@@ -192,8 +194,8 @@ typedef struct {
 #define FORM_INCONSISTENT_VALIDATION         0\r
 #define FORM_NO_SUBMIT_VALIDATION            1\r
 \r
-#define FORMSET_CLASS_PLATFORM_SETUP         0\r
-#define FORMSET_CLASS_FRONT_PAGE             1\r
+#define FORMSET_CLASS_PLATFORM_SETUP         0x0001\r
+#define FORMSET_CLASS_FRONT_PAGE             0x0002\r
 \r
 typedef struct {\r
   UINT8               Type;\r
@@ -240,6 +242,11 @@ typedef struct {
 \r
 #define FORMSET_STORAGE_FROM_LINK(a)  CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)\r
 \r
+typedef union {\r
+  EFI_STRING_ID         VarName;\r
+  UINT16                VarOffset;\r
+} VAR_STORE_INFO;\r
+\r
 #define EXPRESSION_OPCODE_SIGNATURE  SIGNATURE_32 ('E', 'X', 'O', 'P')\r
 \r
 typedef struct {\r
@@ -262,6 +269,13 @@ typedef struct {
 \r
   EFI_STRING_ID     DevicePath;  // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3\r
   EFI_GUID          Guid;\r
+\r
+  FORMSET_STORAGE   *VarStorage; // For EFI_IFR_SET, EFI_IFR_GET\r
+  VAR_STORE_INFO    VarStoreInfo;// For EFI_IFR_SET, EFI_IFR_GET\r
+  UINT8             ValueType;   // For EFI_IFR_SET, EFI_IFR_GET\r
+  UINT8             ValueWidth;  // For EFI_IFR_SET, EFI_IFR_GET\r
+  CHAR16            *ValueName;  // For EFI_IFR_SET, EFI_IFR_GET\r
+  LIST_ENTRY        MapExpressionList;   // nested expressions inside of Map opcode.\r
 } EXPRESSION_OPCODE;\r
 \r
 #define EXPRESSION_OPCODE_FROM_LINK(a)  CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)\r
@@ -315,6 +329,7 @@ typedef struct {
 #define QUESTION_OPTION_FROM_LINK(a)  CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)\r
 \r
 #define FORM_BROWSER_STATEMENT_SIGNATURE  SIGNATURE_32 ('F', 'S', 'T', 'A')\r
+\r
 typedef struct {\r
   UINTN                 Signature;\r
   LIST_ENTRY            Link;\r
@@ -334,10 +349,7 @@ typedef struct {
   EFI_QUESTION_ID       QuestionId;       // The value of zero is reserved\r
   EFI_VARSTORE_ID       VarStoreId;       // A value of zero indicates no variable storage\r
   FORMSET_STORAGE       *Storage;\r
-  union {\r
-    EFI_STRING_ID       VarName;\r
-    UINT16              VarOffset;\r
-  }  VarStoreInfo;\r
+  VAR_STORE_INFO        VarStoreInfo;\r
   UINT16                StorageWidth;\r
   UINT8                 QuestionFlags;\r
   CHAR16                *VariableName;    // Name/Value or EFI Variable name\r
@@ -384,18 +396,22 @@ typedef struct {
   FORM_EXPRESSION       *SuppressExpression; // nesting inside of SuppressIf\r
   FORM_EXPRESSION       *DisableExpression;  // nesting inside of DisableIf\r
 \r
+  FORM_EXPRESSION       *ReadExpression;     // nested EFI_IFR_READ, provide this question value by read expression.\r
+  FORM_EXPRESSION       *WriteExpression;    // nested EFI_IFR_WRITE, evaluate write expression after this question value is set.\r
 } FORM_BROWSER_STATEMENT;\r
 \r
 #define FORM_BROWSER_STATEMENT_FROM_LINK(a)  CR (a, FORM_BROWSER_STATEMENT, Link, FORM_BROWSER_STATEMENT_SIGNATURE)\r
 \r
 #define FORM_BROWSER_FORM_SIGNATURE  SIGNATURE_32 ('F', 'F', 'R', 'M')\r
+#define STANDARD_MAP_FORM_TYPE 0x01\r
 \r
 typedef struct {\r
   UINTN             Signature;\r
   LIST_ENTRY        Link;\r
 \r
-  UINT16            FormId;\r
-  EFI_STRING_ID     FormTitle;\r
+  UINT16            FormId;               // FormId of normal form or formmap form.\r
+  EFI_STRING_ID     FormTitle;            // FormTile of normal form, or FormMapMethod title of formmap form.\r
+  UINT16            FormType;             // Specific form type for the different form.\r
 \r
   EFI_IMAGE_ID      ImageId;\r
 \r
@@ -490,6 +506,7 @@ typedef struct {
   CHAR16                *AdjustNumber;\r
   CHAR16                *SaveChanges;\r
   CHAR16                *OptionMismatch;\r
+  CHAR16                *FormSuppress;\r
   CHAR16                PromptBlockWidth;\r
   CHAR16                OptionBlockWidth;\r
   CHAR16                HelpBlockWidth;\r
@@ -561,6 +578,7 @@ extern CHAR16            gHelpBlockWidth;
 extern EFI_GUID          gZeroGuid;\r
 extern EFI_GUID          gTianoHiiIfrGuid;\r
 \r
+#include "Ui.h"\r
 //\r
 // Global Procedure Defines\r
 //\r
@@ -791,6 +809,42 @@ CreateDialog (
   ...\r
   );\r
 \r
+/**\r
+  Get Value for given Name from a NameValue Storage.\r
+\r
+  @param  Storage                The NameValue Storage.\r
+  @param  Name                   The Name.\r
+  @param  Value                  The retured Value.\r
+\r
+  @retval EFI_SUCCESS            Value found for given Name.\r
+  @retval EFI_NOT_FOUND          No such Name found in NameValue storage.\r
+\r
+**/\r
+EFI_STATUS\r
+GetValueByName (\r
+  IN FORMSET_STORAGE         *Storage,\r
+  IN CHAR16                  *Name,\r
+  IN OUT CHAR16              **Value\r
+  );\r
+\r
+/**\r
+  Set Value of given Name in a NameValue Storage.\r
+\r
+  @param  Storage                The NameValue Storage.\r
+  @param  Name                   The Name.\r
+  @param  Value                  The Value to set.\r
+\r
+  @retval EFI_SUCCESS            Value found for given Name.\r
+  @retval EFI_NOT_FOUND          No such Name found in NameValue storage.\r
+\r
+**/\r
+EFI_STATUS\r
+SetValueByName (\r
+  IN FORMSET_STORAGE         *Storage,\r
+  IN CHAR16                  *Name,\r
+  IN CHAR16                  *Value\r
+  );\r
+\r
 /**\r
   Get Question's current Value.\r
 \r
@@ -938,6 +992,9 @@ ExtractFormDefault (
 /**\r
   Initialize Question's Edit copy from Storage.\r
 \r
+  @param  Selection              Selection contains the information about \r
+                                 the Selection, form and formset to be displayed.\r
+                                 Selection action may be updated in retrieve callback.\r
   @param  FormSet                FormSet data structure.\r
   @param  Form                   Form data structure.\r
 \r
@@ -946,13 +1003,17 @@ ExtractFormDefault (
 **/\r
 EFI_STATUS\r
 LoadFormConfig (\r
-  IN FORM_BROWSER_FORMSET             *FormSet,\r
-  IN FORM_BROWSER_FORM                *Form\r
+  IN OUT UI_MENU_SELECTION    *Selection,\r
+  IN FORM_BROWSER_FORMSET     *FormSet,\r
+  IN FORM_BROWSER_FORM        *Form\r
   );\r
 \r
 /**\r
   Initialize Question's Edit copy from Storage for the whole Formset.\r
 \r
+  @param  Selection              Selection contains the information about \r
+                                 the Selection, form and formset to be displayed.\r
+                                 Selection action may be updated in retrieve callback.\r
   @param  FormSet                FormSet data structure.\r
 \r
   @retval EFI_SUCCESS            The function completed successfully.\r
@@ -960,7 +1021,8 @@ LoadFormConfig (
 **/\r
 EFI_STATUS\r
 LoadFormSetConfig (\r
-  IN FORM_BROWSER_FORMSET             *FormSet\r
+  IN OUT UI_MENU_SELECTION    *Selection,\r
+  IN     FORM_BROWSER_FORMSET *FormSet\r
   );\r
 \r
 /**\r