]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
1. Code clean up: add IN/OUT modifier for parameters.
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.h
index 73669735c0bb7fca77bbf97c12af3d86a001228f..3fc7ed2816b8c765d6548e208548b242161341a4 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
-Private MACRO, structure and function definitions for Setup Browser module. \r
+Private MACRO, structure and function definitions for Setup Browser module.\r
 \r
-Copyright (c) 2007, Intel Corporation\r
+Copyright (c) 2007 - 2009, 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
@@ -19,8 +19,6 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 \r
 #include <PiDxe.h>\r
 \r
-#include <Protocol/Print.h>\r
-#include <Protocol/Print2.h>\r
 #include <Protocol/SimpleTextOut.h>\r
 #include <Protocol/SimpleTextIn.h>\r
 #include <Protocol/FormBrowser2.h>\r
@@ -31,9 +29,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/HiiDatabase.h>\r
 #include <Protocol/HiiString.h>\r
 \r
-#include <MdeModuleHii.h>\r
+#include <Guid/MdeModuleHii.h>\r
+#include <Guid/HiiPlatformSetupFormset.h>\r
 \r
-#include <Library/GraphicsLib.h>\r
 #include <Library/PrintLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Library/BaseMemoryLib.h>\r
@@ -42,11 +40,9 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Library/UefiBootServicesTableLib.h>\r
 #include <Library/BaseLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
-#include <Library/IfrSupportLib.h>\r
-#include <Library/ExtendedIfrSupportLib.h>\r
 #include <Library/HiiLib.h>\r
-#include <Library/ExtendedHiiLib.h>\r
 #include <Library/PcdLib.h>\r
+#include <Library/DevicePathLib.h>\r
 \r
 #include "Colors.h"\r
 \r
@@ -75,10 +71,8 @@ extern UINT8  SetupBrowserStrings[];
 // Definition for function key setting\r
 //\r
 #define NONE_FUNCTION_KEY_SETTING     0\r
-#define DEFAULT_FUNCTION_KEY_SETTING  (FUNCTION_ONE | FUNCTION_TWO | FUNCTION_NINE | FUNCTION_TEN)\r
+#define DEFAULT_FUNCTION_KEY_SETTING  (FUNCTION_NINE | FUNCTION_TEN)\r
 \r
-#define FUNCTION_ONE                  (1 << 0)\r
-#define FUNCTION_TWO                  (1 << 1)\r
 #define FUNCTION_NINE                 (1 << 2)\r
 #define FUNCTION_TEN                  (1 << 3)\r
 \r
@@ -163,7 +157,7 @@ typedef struct {
          (((EFI_SPECIFICATION_VERSION) & 0xf) << 4) | \\r
          ((EFI_SPECIFICATION_ERRATA_VERSION) & 0xf))\r
 \r
-#define SETUP_DRIVER_SIGNATURE EFI_SIGNATURE_32 ('F', 'B', 'D', 'V')\r
+#define SETUP_DRIVER_SIGNATURE SIGNATURE_32 ('F', 'B', 'D', 'V')\r
 typedef struct {\r
   UINT32                             Signature;\r
 \r
@@ -173,7 +167,6 @@ typedef struct {
   // Produced protocol\r
   //\r
   EFI_FORM_BROWSER2_PROTOCOL         FormBrowser2;\r
-  EFI_PRINT2_PROTOCOL                Print;\r
 \r
 } SETUP_DRIVER_PRIVATE_DATA;\r
 \r
@@ -199,12 +192,15 @@ 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
+\r
 typedef struct {\r
   UINT8               Type;\r
   EFI_IFR_TYPE_VALUE  Value;\r
 } EFI_HII_VALUE;\r
 \r
-#define NAME_VALUE_NODE_SIGNATURE  EFI_SIGNATURE_32 ('N', 'V', 'S', 'T')\r
+#define NAME_VALUE_NODE_SIGNATURE  SIGNATURE_32 ('N', 'V', 'S', 'T')\r
 \r
 typedef struct {\r
   UINTN            Signature;\r
@@ -216,7 +212,7 @@ typedef struct {
 \r
 #define NAME_VALUE_NODE_FROM_LINK(a)  CR (a, NAME_VALUE_NODE, Link, NAME_VALUE_NODE_SIGNATURE)\r
 \r
-#define FORMSET_STORAGE_SIGNATURE  EFI_SIGNATURE_32 ('F', 'S', 'T', 'G')\r
+#define FORMSET_STORAGE_SIGNATURE  SIGNATURE_32 ('F', 'S', 'T', 'G')\r
 \r
 typedef struct {\r
   UINTN            Signature;\r
@@ -244,7 +240,7 @@ typedef struct {
 \r
 #define FORMSET_STORAGE_FROM_LINK(a)  CR (a, FORMSET_STORAGE, Link, FORMSET_STORAGE_SIGNATURE)\r
 \r
-#define EXPRESSION_OPCODE_SIGNATURE  EFI_SIGNATURE_32 ('E', 'X', 'O', 'P')\r
+#define EXPRESSION_OPCODE_SIGNATURE  SIGNATURE_32 ('E', 'X', 'O', 'P')\r
 \r
 typedef struct {\r
   UINTN             Signature;\r
@@ -258,10 +254,10 @@ typedef struct {
 \r
   EFI_HII_VALUE     Value;       // For EFI_IFR_EQ_ID_VAL, EFI_IFR_UINT64, EFI_IFR_UINT32, EFI_IFR_UINT16, EFI_IFR_UINT8, EFI_IFR_STRING_REF1\r
 \r
-  EFI_QUESTION_ID   QuestionId;  // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_LIST, EFI_IFR_QUESTION_REF1\r
+  EFI_QUESTION_ID   QuestionId;  // For EFI_IFR_EQ_ID_ID, EFI_IFR_EQ_ID_VAL_LIST, EFI_IFR_QUESTION_REF1\r
   EFI_QUESTION_ID   QuestionId2;\r
 \r
-  UINT16            ListLength;  // For EFI_IFR_EQ_ID_LIST\r
+  UINT16            ListLength;  // For EFI_IFR_EQ_ID_VAL_LIST\r
   UINT16            *ValueList;\r
 \r
   EFI_STRING_ID     DevicePath;  // For EFI_IFR_QUESTION_REF3_2, EFI_IFR_QUESTION_REF3_3\r
@@ -270,7 +266,7 @@ typedef struct {
 \r
 #define EXPRESSION_OPCODE_FROM_LINK(a)  CR (a, EXPRESSION_OPCODE, Link, EXPRESSION_OPCODE_SIGNATURE)\r
 \r
-#define FORM_EXPRESSION_SIGNATURE  EFI_SIGNATURE_32 ('F', 'E', 'X', 'P')\r
+#define FORM_EXPRESSION_SIGNATURE  SIGNATURE_32 ('F', 'E', 'X', 'P')\r
 \r
 typedef struct {\r
   UINTN             Signature;\r
@@ -288,7 +284,7 @@ typedef struct {
 \r
 #define FORM_EXPRESSION_FROM_LINK(a)  CR (a, FORM_EXPRESSION, Link, FORM_EXPRESSION_SIGNATURE)\r
 \r
-#define QUESTION_DEFAULT_SIGNATURE  EFI_SIGNATURE_32 ('Q', 'D', 'F', 'T')\r
+#define QUESTION_DEFAULT_SIGNATURE  SIGNATURE_32 ('Q', 'D', 'F', 'T')\r
 \r
 typedef struct {\r
   UINTN               Signature;\r
@@ -302,7 +298,7 @@ typedef struct {
 \r
 #define QUESTION_DEFAULT_FROM_LINK(a)  CR (a, QUESTION_DEFAULT, Link, QUESTION_DEFAULT_SIGNATURE)\r
 \r
-#define QUESTION_OPTION_SIGNATURE  EFI_SIGNATURE_32 ('Q', 'O', 'P', 'T')\r
+#define QUESTION_OPTION_SIGNATURE  SIGNATURE_32 ('Q', 'O', 'P', 'T')\r
 \r
 typedef struct {\r
   UINTN               Signature;\r
@@ -318,7 +314,7 @@ typedef struct {
 \r
 #define QUESTION_OPTION_FROM_LINK(a)  CR (a, QUESTION_OPTION, Link, QUESTION_OPTION_SIGNATURE)\r
 \r
-#define FORM_BROWSER_STATEMENT_SIGNATURE  EFI_SIGNATURE_32 ('F', 'S', 'T', 'A')\r
+#define FORM_BROWSER_STATEMENT_SIGNATURE  SIGNATURE_32 ('F', 'S', 'T', 'A')\r
 typedef struct {\r
   UINTN                 Signature;\r
   LIST_ENTRY            Link;\r
@@ -349,6 +345,7 @@ typedef struct {
 \r
   EFI_HII_VALUE         HiiValue;         // Edit copy for checkbox, numberic, oneof\r
   UINT8                 *BufferValue;     // Edit copy for string, password, orderedlist\r
+  UINT8                 ValueType;        // Data type for orderedlist value array\r
 \r
   //\r
   // OpCode specific members\r
@@ -385,12 +382,13 @@ typedef struct {
   LIST_ENTRY            NoSubmitListHead;    // nested nosubmit expression list (FORM_EXPRESSION)\r
   FORM_EXPRESSION       *GrayOutExpression;  // nesting inside of GrayOutIf\r
   FORM_EXPRESSION       *SuppressExpression; // nesting inside of SuppressIf\r
+  FORM_EXPRESSION       *DisableExpression;  // nesting inside of DisableIf\r
 \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  EFI_SIGNATURE_32 ('F', 'F', 'R', 'M')\r
+#define FORM_BROWSER_FORM_SIGNATURE  SIGNATURE_32 ('F', 'F', 'R', 'M')\r
 \r
 typedef struct {\r
   UINTN             Signature;\r
@@ -407,7 +405,7 @@ typedef struct {
 \r
 #define FORM_BROWSER_FORM_FROM_LINK(a)  CR (a, FORM_BROWSER_FORM, Link, FORM_BROWSER_FORM_SIGNATURE)\r
 \r
-#define FORMSET_DEFAULTSTORE_SIGNATURE  EFI_SIGNATURE_32 ('F', 'D', 'F', 'S')\r
+#define FORMSET_DEFAULTSTORE_SIGNATURE  SIGNATURE_32 ('F', 'D', 'F', 'S')\r
 \r
 typedef struct {\r
   UINTN            Signature;\r
@@ -431,8 +429,10 @@ typedef struct {
   EFI_GUID                        Guid;\r
   EFI_STRING_ID                   FormSetTitle;\r
   EFI_STRING_ID                   Help;\r
-  UINT16                          Class;\r
-  UINT16                          SubClass;\r
+  UINT8                           NumberOfClassGuid;\r
+  EFI_GUID                        ClassGuid[3];         // Up to three ClassGuid\r
+  UINT16                          Class;                // Tiano extended Class code\r
+  UINT16                          SubClass;             // Tiano extended Subclass code\r
   EFI_IMAGE_ID                    ImageId;\r
 \r
   FORM_BROWSER_STATEMENT          *StatementBuffer;     // Buffer for all Statements and Questions\r
@@ -448,8 +448,8 @@ extern EFI_HII_DATABASE_PROTOCOL         *mHiiDatabase;
 extern EFI_HII_STRING_PROTOCOL           *mHiiString;\r
 extern EFI_HII_CONFIG_ROUTING_PROTOCOL   *mHiiConfigRouting;\r
 \r
-extern BANNER_DATA           *BannerData;\r
-extern EFI_HII_HANDLE        FrontPageHandle;\r
+extern BANNER_DATA           *gBannerData;\r
+extern EFI_HII_HANDLE        gFrontPageHandle;\r
 extern UINTN                 gClassOfVfr;\r
 extern UINTN                 gFunctionKeySetting;\r
 extern BOOLEAN               gResetRequired;\r
@@ -460,11 +460,11 @@ extern EFI_SCREEN_DESCRIPTOR gScreenDimensions;
 extern BOOLEAN               gUpArrow;\r
 extern BOOLEAN               gDownArrow;\r
 \r
+extern FORM_BROWSER_FORMSET  *gOldFormSet;\r
+\r
 //\r
 // Browser Global Strings\r
 //\r
-extern CHAR16            *gFunctionOneString;\r
-extern CHAR16            *gFunctionTwoString;\r
 extern CHAR16            *gFunctionNineString;\r
 extern CHAR16            *gFunctionTenString;\r
 extern CHAR16            *gEnterString;\r
@@ -891,6 +891,19 @@ LoadFormConfig (
   IN FORM_BROWSER_FORM                *Form\r
   );\r
 \r
+/**\r
+  Initialize Question's Edit copy from Storage for the whole Formset.\r
+\r
+  @param  FormSet                FormSet data structure.\r
+\r
+  @retval EFI_SUCCESS            The function completed successfully.\r
+\r
+**/\r
+EFI_STATUS\r
+LoadFormSetConfig (\r
+  IN FORM_BROWSER_FORMSET             *FormSet\r
+  );\r
+\r
 /**\r
   Convert setting of Buffer Storage or NameValue Storage to <ConfigResp>.\r
 \r
@@ -982,7 +995,7 @@ GetIfrBinaryData (
                          ScreenDimenions - This allows the browser to be called so that it occupies a\r
                          portion of the physical screen instead of dynamically determining the screen dimensions.\r
                          ActionRequest   - Points to the action recommended by the form.\r
-  @param ScreenDimensions Points to recommended form dimensions, including any non-content area, in \r
+  @param ScreenDimensions Points to recommended form dimensions, including any non-content area, in\r
                           characters.\r
   @param ActionRequest       Points to the action recommended by the form.\r
 \r