]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Framework/FrameworkInternalFormRepresentation.h
Remove unnecessary FRAMEWORK_ prefix in IntelFrameworkPkg definitions for those defin...
[mirror_edk2.git] / IntelFrameworkPkg / Include / Framework / FrameworkInternalFormRepresentation.h
index 828011774504ccee315281a617f5a1adce40cade..7b76d981f392a5bd5d35fed11028663d3f99264b 100644 (file)
@@ -1,10 +1,9 @@
-\r
 /** @file\r
   This file defines the encoding for the VFR (Visual Form Representation) language.\r
   Framework IFR is primarily consumed by the EFI presentation engine, and produced by EFI\r
   internal application and drivers as well as all add-in card option-ROM drivers\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
@@ -21,7 +20,7 @@
 #ifndef __FRAMEWORK_INTERNAL_FORMREPRESENTATION_H__\r
 #define __FRAMEWORK_INTERNAL_FORMREPRESENTATION_H__\r
 \r
-\r
+typedef UINT16  STRING_REF;\r
 \r
 //\r
 // IFR Op codes\r
 #define FRAMEWORK_EFI_IFR_FORM_OP                 0x01\r
 #define FRAMEWORK_EFI_IFR_SUBTITLE_OP             0x02\r
 #define FRAMEWORK_EFI_IFR_TEXT_OP                 0x03\r
-#define FRAMEWORK_EFI_IFR_GRAPHIC_OP              0x04\r
+#define EFI_IFR_GRAPHIC_OP              0x04\r
 #define FRAMEWORK_EFI_IFR_ONE_OF_OP               0x05\r
 #define FRAMEWORK_EFI_IFR_CHECKBOX_OP             0x06\r
 #define FRAMEWORK_EFI_IFR_NUMERIC_OP              0x07\r
 #define FRAMEWORK_EFI_IFR_PASSWORD_OP             0x08\r
-#define FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP        0x09  // ONEOF OPTION field\r
+#define FRAMEWORK_EFI_IFR_ONE_OF_OPTION_OP        0x09  ///< ONEOF OPTION field\r
 #define FRAMEWORK_EFI_IFR_SUPPRESS_IF_OP          0x0A\r
-#define FRAMEWORK_EFI_IFR_END_FORM_OP             0x0B\r
-#define FRAMEWORK_EFI_IFR_HIDDEN_OP               0x0C\r
-#define FRAMEWORK_EFI_IFR_END_FORM_SET_OP         0x0D\r
+#define EFI_IFR_END_FORM_OP             0x0B\r
+#define EFI_IFR_HIDDEN_OP               0x0C\r
+#define EFI_IFR_END_FORM_SET_OP         0x0D\r
 #define FRAMEWORK_EFI_IFR_FORM_SET_OP             0x0E\r
 #define FRAMEWORK_EFI_IFR_REF_OP                  0x0F\r
-#define FRAMEWORK_EFI_IFR_END_ONE_OF_OP           0x10\r
-#define FRAMEWORK_EFI_IFR_END_OP                  FRAMEWORK_EFI_IFR_END_ONE_OF_OP\r
+#define EFI_IFR_END_ONE_OF_OP           0x10\r
+#define FRAMEWORK_EFI_IFR_END_OP                  EFI_IFR_END_ONE_OF_OP\r
 #define FRAMEWORK_EFI_IFR_INCONSISTENT_IF_OP      0x11\r
 #define FRAMEWORK_EFI_IFR_EQ_ID_VAL_OP            0x12\r
 #define FRAMEWORK_EFI_IFR_EQ_ID_ID_OP             0x13\r
 #define FRAMEWORK_EFI_IFR_AND_OP                  0x15\r
 #define FRAMEWORK_EFI_IFR_OR_OP                   0x16\r
 #define FRAMEWORK_EFI_IFR_NOT_OP                  0x17\r
-#define FRAMEWORK_EFI_IFR_END_IF_OP               0x18  // for endif of inconsistentif, suppressif, grayoutif\r
-#define FRAMEWORK_EFI_IFR_GRAYOUT_IF_OP           0x19\r
+#define EFI_IFR_END_IF_OP               0x18  ///< for endif of inconsistentif, suppressif, grayoutif\r
+#define EFI_IFR_GRAYOUT_IF_OP           0x19\r
 #define FRAMEWORK_EFI_IFR_DATE_OP                 0x1A\r
 #define FRAMEWORK_EFI_IFR_TIME_OP                 0x1B\r
 #define FRAMEWORK_EFI_IFR_STRING_OP               0x1C\r
-#define FRAMEWORK_EFI_IFR_LABEL_OP                0x1D\r
-#define FRAMEWORK_EFI_IFR_SAVE_DEFAULTS_OP        0x1E\r
-#define FRAMEWORK_EFI_IFR_RESTORE_DEFAULTS_OP     0x1F\r
-#define FRAMEWORK_EFI_IFR_BANNER_OP               0x20\r
-#define FRAMEWORK_EFI_IFR_INVENTORY_OP            0x21\r
-#define FRAMEWORK_EFI_IFR_EQ_VAR_VAL_OP           0x22\r
+#define EFI_IFR_LABEL_OP                0x1D\r
+#define EFI_IFR_SAVE_DEFAULTS_OP        0x1E\r
+#define EFI_IFR_RESTORE_DEFAULTS_OP     0x1F\r
+#define EFI_IFR_BANNER_OP               0x20\r
+#define EFI_IFR_INVENTORY_OP            0x21\r
+#define EFI_IFR_EQ_VAR_VAL_OP           0x22\r
 #define FRAMEWORK_EFI_IFR_ORDERED_LIST_OP         0x23\r
 #define FRAMEWORK_EFI_IFR_VARSTORE_OP             0x24\r
-#define FRAMEWORK_EFI_IFR_VARSTORE_SELECT_OP      0x25\r
-#define FRAMEWORK_EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26\r
-#define FRAMEWORK_EFI_IFR_TRUE_OP                 0x27\r
-#define FRAMEWORK_EFI_IFR_FALSE_OP                0x28\r
-#define FRAMEWORK_EFI_IFR_GT_OP                   0x29\r
-#define FRAMEWORK_EFI_IFR_GE_OP                   0x2A\r
-#define FRAMEWORK_EFI_IFR_OEM_DEFINED_OP          0x2B\r
-#define FRAMEWORK_EFI_IFR_LAST_OPCODE             FRAMEWORK_EFI_IFR_OEM_DEFINED_OP\r
-#define FRAMEWORK_EFI_IFR_OEM_OP                  0xFE\r
-#define FRAMEWORK_EFI_IFR_NV_ACCESS_COMMAND       0xFF\r
+#define EFI_IFR_VARSTORE_SELECT_OP      0x25\r
+#define EFI_IFR_VARSTORE_SELECT_PAIR_OP 0x26\r
+#define EFI_IFR_LAST_OPCODE             EFI_IFR_VARSTORE_SELECT_PAIR_OP\r
+#define EFI_IFR_OEM_OP                  0xFE\r
+#define EFI_IFR_NV_ACCESS_COMMAND       0xFF\r
 \r
 //\r
 // Define values for the flags fields in some VFR opcodes. These are\r
 // bitmasks.\r
 //\r
-#define FRAMEWORK_EFI_IFR_FLAG_DEFAULT              0x01\r
-#define FRAMEWORK_EFI_IFR_FLAG_MANUFACTURING        0x02\r
-#define FRAMEWORK_EFI_IFR_FLAG_INTERACTIVE          0x04\r
-#define FRAMEWORK_EFI_IFR_FLAG_NV_ACCESS            0x08\r
-#define FRAMEWORK_EFI_IFR_FLAG_RESET_REQUIRED       0x10\r
-#define FRAMEWORK_EFI_IFR_FLAG_LATE_CHECK           0x20\r
-\r
-#define EFI_NON_DEVICE_CLASS              0x00  // Useful when you do not want something in the Device Manager\r
+#define EFI_IFR_FLAG_DEFAULT            0x01\r
+#define EFI_IFR_FLAG_MANUFACTURING      0x02\r
+#define EFI_IFR_FLAG_INTERACTIVE        0x04\r
+#define EFI_IFR_FLAG_NV_ACCESS          0x08\r
+#define EFI_IFR_FLAG_RESET_REQUIRED     0x10\r
+#define EFI_IFR_FLAG_LATE_CHECK         0x20\r
+\r
+#define EFI_NON_DEVICE_CLASS              0x00  ///< Useful when you do not want something in the Device Manager\r
 #define EFI_DISK_DEVICE_CLASS             0x01\r
 #define EFI_VIDEO_DEVICE_CLASS            0x02\r
 #define EFI_NETWORK_DEVICE_CLASS          0x04\r
 #define EFI_SETUP_APPLICATION_SUBCLASS    0x00\r
 #define EFI_GENERAL_APPLICATION_SUBCLASS  0x01\r
 #define EFI_FRONT_PAGE_SUBCLASS           0x02\r
-#define EFI_SINGLE_USE_SUBCLASS           0x03  // Used to display a single entity and then exit\r
+#define EFI_SINGLE_USE_SUBCLASS           0x03  ///< Used to display a single entity and then exit\r
 \r
-//\r
-// Used to flag dynamically created op-codes. This is meaningful to the IFR Library set\r
-// and the browser since we need to distinguish between compiled NV map data and created data.\r
-// We do not allow new entries to be created in the NV map dynamically however we still need\r
-// to display this information correctly.  To dynamically create op-codes and assume that their\r
-// data will be saved, ensure that the NV starting location they refer to is pre-defined in the\r
-// NV map.\r
-//\r
-#define FRAMEWORK_EFI_IFR_FLAG_CREATED  128\r
+///\r
+/// Used to flag dynamically created op-codes. This is meaningful to the IFR Library set\r
+/// and the browser since we need to distinguish between compiled NV map data and created data.\r
+/// We do not allow new entries to be created in the NV map dynamically however we still need\r
+/// to display this information correctly.  To dynamically create op-codes and assume that their\r
+/// data will be saved, ensure that the NV starting location they refer to is pre-defined in the\r
+/// NV map.\r
+///\r
+#define EFI_IFR_FLAG_CREATED  128\r
 \r
 \r
 #pragma pack(1)\r
 // IFR Structure definitions\r
 //\r
 typedef struct {\r
-  UINT8 OpCode;\r
-  UINT8 Length;\r
+  UINT8                             OpCode;\r
+  UINT8                             Length;\r
 } FRAMEWORK_EFI_IFR_OP_HEADER;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER     Header;\r
-  EFI_GUID              Guid;\r
-  STRING_REF            FormSetTitle;\r
-  STRING_REF            Help;\r
-  EFI_PHYSICAL_ADDRESS  CallbackHandle;\r
-  UINT16                Class;\r
-  UINT16                SubClass;\r
-  UINT16                NvDataSize; // set once, size of the NV data as defined in the script\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  EFI_GUID                          Guid;\r
+  STRING_REF                        FormSetTitle;\r
+  STRING_REF                        Help;\r
+  EFI_PHYSICAL_ADDRESS              CallbackHandle;\r
+  UINT16                            Class;\r
+  UINT16                            SubClass;\r
+  UINT16                            NvDataSize; ///< set once, size of the NV data as defined in the script\r
 } FRAMEWORK_EFI_IFR_FORM_SET;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            FormId;\r
-  STRING_REF        FormTitle;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            FormId;\r
+  STRING_REF                        FormTitle;\r
 } FRAMEWORK_EFI_IFR_FORM;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            LabelId;\r
-} FRAMEWORK_EFI_IFR_LABEL;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            LabelId;\r
+} EFI_IFR_LABEL;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        SubTitle;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        SubTitle;\r
 } FRAMEWORK_EFI_IFR_SUBTITLE;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        Help;\r
-  STRING_REF        Text;\r
-  STRING_REF        TextTwo;\r
-  UINT8             Flags;          // This is included solely for purposes of interactive/dynamic support.\r
-  UINT16            Key;            // Value to be passed to caller to identify this particular op-code\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        Help;\r
+  STRING_REF                        Text;\r
+  STRING_REF                        TextTwo;\r
+  UINT8                             Flags;  ///< This is included solely for purposes of interactive/dynamic support.\r
+  UINT16                            Key;    ///< Value to be passed to caller to identify this particular op-code\r
 } FRAMEWORK_EFI_IFR_TEXT;\r
 \r
 //\r
 // goto\r
 //\r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            FormId;\r
-  STRING_REF        Prompt;\r
-  STRING_REF        Help;   // The string Token for the context-help\r
-  UINT8             Flags;  // This is included solely for purposes of interactive/dynamic support.\r
-  UINT16            Key;    // Value to be passed to caller to identify this particular op-code\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            FormId;\r
+  STRING_REF                        Prompt;\r
+  STRING_REF                        Help;   ///< The string Token for the context-help\r
+  UINT8                             Flags;  ///< This is included solely for purposes of interactive/dynamic support.\r
+  UINT16                            Key;    ///< Value to be passed to caller to identify this particular op-code\r
 } FRAMEWORK_EFI_IFR_REF;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_END_FORM;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+} EFI_IFR_END_FORM;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_END_FORM_SET;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+} EFI_IFR_END_FORM_SET;\r
 \r
 //\r
-// Also notice that the IFR_ONE_OF and IFR_CHECK_BOX are identical in structure......code assumes this to be true, if this ever\r
-// changes we need to revisit the InitializeTagStructures code\r
+// Also notice that the IFR_ONE_OF and IFR_CHECK_BOX are identical in structure......\r
+// code assumes this to be true, if this ever changes we need to revisit the InitializeTagStructures code\r
 //\r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name\r
-  UINT8             Width;      // The Size of the Data being saved\r
-  STRING_REF        Prompt;     // The String Token for the Prompt\r
-  STRING_REF        Help;       // The string Token for the context-help\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId; ///< The ID designating what the question is about...\r
+  UINT8                             Width;      ///< The Size of the Data being saved\r
+  STRING_REF                        Prompt;     ///< The String Token for the Prompt\r
+  STRING_REF                        Help;       ///< The string Token for the context-help\r
 } FRAMEWORK_EFI_IFR_ONE_OF;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId; // The offset in NV for storage of the data\r
-  UINT8             MaxEntries; // The maximum number of options in the ordered list (=size of NVStore)\r
-  STRING_REF        Prompt;     // The string token for the prompt\r
-  STRING_REF        Help;       // The string token for the context-help\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId; ///< The offset in NV for storage of the data\r
+  UINT8                             MaxEntries; ///< The maximum number of options in the ordered list (=size of NVStore)\r
+  STRING_REF                        Prompt;     ///< The string token for the prompt\r
+  STRING_REF                        Help;       ///< The string token for the context-help\r
 } FRAMEWORK_EFI_IFR_ORDERED_LIST;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name\r
-  UINT8             Width;      // The Size of the Data being saved\r
-  STRING_REF        Prompt;     // The String Token for the Prompt\r
-  STRING_REF        Help;       // The string Token for the context-help\r
-  UINT8             Flags;      // For now, if non-zero, means that it is the default option, - further definition likely\r
-  UINT16            Key;        // Value to be passed to caller to identify this particular op-code\r
-} FRAMEWORK_EFI_IFR_CHECKBOX, FRAMEWORK_EFI_IFR_CHECK_BOX;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId; ///< The ID designating what the question is about...\r
+  UINT8                             Width;      ///< The Size of the Data being saved\r
+  STRING_REF                        Prompt;     ///< The String Token for the Prompt\r
+  STRING_REF                        Help;       ///< The string Token for the context-help\r
+  UINT8                             Flags;      ///< If non-zero, means that it is the default option\r
+  UINT16                            Key;        ///< Value to be passed to caller to identify this particular op-code\r
+} FRAMEWORK_EFI_IFR_CHECKBOX, EFI_IFR_CHECK_BOX;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        Option;     // The string token describing the option\r
-  UINT16            Value;      // The value associated with this option that is stored in the NVRAM if chosen\r
-  UINT8             Flags;      // For now, if non-zero, means that it is the default option, - further definition likely above\r
-  UINT16            Key;        // Value to be passed to caller to identify this particular op-code\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        Option;     ///< The string token describing the option\r
+  UINT16                            Value;      ///< The value associated with this option that is stored in the NVRAM\r
+  UINT8                             Flags;      ///< If non-zero, means that it is the default option\r
+  UINT16                            Key;        ///< Value to be passed to caller to identify this particular op-code\r
 } FRAMEWORK_EFI_IFR_ONE_OF_OPTION;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId; // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name\r
-  UINT8             Width;      // The Size of the Data being saved\r
-  STRING_REF        Prompt;     // The String Token for the Prompt\r
-  STRING_REF        Help;       // The string Token for the context-help\r
-  UINT8             Flags;      // This is included solely for purposes of interactive/dynamic support.\r
-  UINT16            Key;        // Value to be passed to caller to identify this particular op-code\r
-  UINT16            Minimum;\r
-  UINT16            Maximum;\r
-  UINT16            Step;       // If step is 0, then manual input is specified, otherwise, left/right arrow selection is called for\r
-  UINT16            Default;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId; ///< The ID designating what the question is about...\r
+  UINT8                             Width;      ///< The Size of the Data being saved\r
+  STRING_REF                        Prompt;     ///< The String Token for the Prompt\r
+  STRING_REF                        Help;       ///< The string Token for the context-help\r
+  UINT8                             Flags;      ///< This is included solely for purposes of interactive/dynamic support.\r
+  UINT16                            Key;        ///< Value to be passed to caller to identify this particular op-code\r
+  UINT16                            Minimum;\r
+  UINT16                            Maximum;\r
+  UINT16                            Step;       ///< Zero means manual input, otherwise, arrow selection is called for\r
+  UINT16                            Default;\r
 } FRAMEWORK_EFI_IFR_NUMERIC;\r
 \r
 //\r
-// There is an interesting twist with regards to Time and Date.  This is one of the few items which can accept input from\r
-// a user, however may or may not need to use storage in the NVRAM space.  The decided method for determining if NVRAM space\r
-// will be used (only for a TimeOp or DateOp) is:  If .QuestionId == 0 && .Width == 0 (normally an impossibility) then use system\r
-// resources to store the data away and not NV resources.  In other words, the setup engine will call gRT->SetTime, and gRT->SetDate\r
-// for the saving of data, and the values displayed will be from the gRT->GetXXXX series of calls.\r
+// There is an interesting twist with regards to Time and Date.  This is one of the few items which can accept input\r
+// from a user, however may or may not need to use storage in the NVRAM space.  The decided method for determining \r
+// if NVRAM space will be used (only for a TimeOp or DateOp) is:  If .QuestionId == 0 && .Width == 0 (normally an \r
+// impossibility) then use system resources to store the data away and not NV resources.  In other words, the setup\r
+// engine will call gRT->SetTime, and gRT->SetDate for the saving of data, and the values displayed will be from the\r
+// gRT->GetXXXX series of calls.\r
 //\r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_NUMERIC Hour;\r
-  FRAMEWORK_EFI_IFR_NUMERIC Minute;\r
-  FRAMEWORK_EFI_IFR_NUMERIC Second;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Hour;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Minute;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Second;\r
 } FRAMEWORK_EFI_IFR_TIME;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_NUMERIC Year;\r
-  FRAMEWORK_EFI_IFR_NUMERIC Month;\r
-  FRAMEWORK_EFI_IFR_NUMERIC Day;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Year;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Month;\r
+  FRAMEWORK_EFI_IFR_NUMERIC         Day;\r
 } FRAMEWORK_EFI_IFR_DATE;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId;   // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name\r
-  UINT8             Width;        // The Size of the Data being saved -- BUGBUG -- remove someday\r
-  STRING_REF        Prompt;       // The String Token for the Prompt\r
-  STRING_REF        Help;         // The string Token for the context-help\r
-  UINT8             Flags;        // This is included solely for purposes of interactive/dynamic support.\r
-  UINT16            Key;          // Value to be passed to caller to identify this particular op-code\r
-  UINT8             MinSize;      // Minimum allowable sized password\r
-  UINT8             MaxSize;      // Maximum allowable sized password\r
-  UINT16            Encoding;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId;///< The ID designating what the question is about...\r
+  UINT8                             Width;     ///< The Size of the Data being saved\r
+  STRING_REF                        Prompt;    ///< The String Token for the Prompt\r
+  STRING_REF                        Help;      ///< The string Token for the context-help\r
+  UINT8                             Flags;     ///< This is included solely for purposes of interactive/dynamic support.\r
+  UINT16                            Key;       ///< Value to be passed to caller to identify this particular op-code\r
+  UINT8                             MinSize;   ///< Minimum allowable sized password\r
+  UINT8                             MaxSize;   ///< Maximum allowable sized password\r
+  UINT16                            Encoding;\r
 } FRAMEWORK_EFI_IFR_PASSWORD;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId;   // The ID designating what the question is about...sucked in from a #define, likely in the form of a variable name\r
-  UINT8             Width;        // The Size of the Data being saved -- BUGBUG -- remove someday\r
-  STRING_REF        Prompt;       // The String Token for the Prompt\r
-  STRING_REF        Help;         // The string Token for the context-help\r
-  UINT8             Flags;        // This is included solely for purposes of interactive/dynamic support.\r
-  UINT16            Key;          // Value to be passed to caller to identify this particular op-code\r
-  UINT8             MinSize;      // Minimum allowable sized password\r
-  UINT8             MaxSize;      // Maximum allowable sized password\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId; ///< The ID designating what the question is about...\r
+  UINT8                             Width;      ///< The Size of the Data being saved \r
+  STRING_REF                        Prompt;     ///< The String Token for the Prompt\r
+  STRING_REF                        Help;       ///< The string Token for the context-help\r
+  UINT8                             Flags;      ///< This is included solely for purposes of interactive/dynamic support.\r
+  UINT16                            Key;        ///< Value to be passed to caller to identify this particular op-code\r
+  UINT8                             MinSize;    ///< Minimum allowable sized password\r
+  UINT8                             MaxSize;    ///< Maximum allowable sized password\r
 } FRAMEWORK_EFI_IFR_STRING;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_END_ONE_OF;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+} EFI_IFR_END_ONE_OF;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            Value;\r
-  UINT16            Key;\r
-} FRAMEWORK_EFI_IFR_HIDDEN;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            Value;\r
+  UINT16                            Key;\r
+} EFI_IFR_HIDDEN;\r
 \r
+///\r
+/// Inconsistent with specification here:\r
+/// Following defintion may not comply with Framework Specification HII 0.92. To \r
+/// keep the inconsistant is for implementation needed.\r
+///\r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT8             Flags;\r
-} FRAMEWORK_EFI_IFR_SUPPRESS;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT8                             Flags;\r
+} EFI_IFR_SUPPRESS;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT8             Flags;\r
-} FRAMEWORK_EFI_IFR_GRAY_OUT;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT8                             Flags;\r
+} EFI_IFR_GRAY_OUT;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        Popup;\r
-  UINT8             Flags;\r
-} FRAMEWORK_EFI_IFR_INCONSISTENT;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        Popup;\r
+  UINT8                             Flags;\r
+} EFI_IFR_INCONSISTENT;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId;   // offset into variable storage\r
-  UINT8             Width;        // size of variable storage\r
-  UINT16            Value;        // value to compare against\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId;   ///< offset into variable storage\r
+  UINT8                             Width;        ///< size of variable storage\r
+  UINT16                            Value;        ///< value to compare against\r
 } FRAMEWORK_EFI_IFR_EQ_ID_VAL;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId;   // offset into variable storage\r
-  UINT8             Width;        // size of variable storage\r
-  UINT16            ListLength;\r
-  UINT16            ValueList[1];\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId;   ///< offset into variable storage\r
+  UINT8                             Width;        ///< size of variable storage\r
+  UINT16                            ListLength;\r
+  UINT16                            ValueList[1];\r
 } FRAMEWORK_EFI_IFR_EQ_ID_LIST;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId1;  // offset into variable storage for first value to compare\r
-  UINT8             Width;        // size of variable storage (must be same for both)\r
-  UINT16            QuestionId2;  // offset into variable storage for second value to compare\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            QuestionId1;  ///< offset into variable storage for first value to compare\r
+  UINT8                             Width;        ///< size of variable storage (must be same for both)\r
+  UINT16                            QuestionId2;  ///< offset into variable storage for second value to compare\r
 } FRAMEWORK_EFI_IFR_EQ_ID_ID;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            VariableId;   // offset into variable storage\r
-  UINT16            Value;        // value to compare against\r
-} FRAMEWORK_EFI_IFR_EQ_VAR_VAL;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            VariableId;   ///< offset into variable storage\r
+  UINT16                            Value;        ///< value to compare against\r
+} EFI_IFR_EQ_VAR_VAL;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
 } FRAMEWORK_EFI_IFR_AND;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
 } FRAMEWORK_EFI_IFR_OR;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
 } FRAMEWORK_EFI_IFR_NOT;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_END_EXPR, FRAMEWORK_EFI_IFR_END_IF;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+} EFI_IFR_END_EXPR, EFI_IFR_END_IF;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            FormId;\r
-  STRING_REF        Prompt;\r
-  STRING_REF        Help;\r
-  UINT8             Flags;\r
-  UINT16            Key;\r
-} FRAMEWORK_EFI_IFR_SAVE_DEFAULTS;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            FormId;\r
+  STRING_REF                        Prompt;\r
+  STRING_REF                        Help;\r
+  UINT8                             Flags;\r
+  UINT16                            Key;\r
+} EFI_IFR_SAVE_DEFAULTS;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        Help;\r
-  STRING_REF        Text;\r
-  STRING_REF        TextTwo;      // optional text\r
-} FRAMEWORK_EFI_IFR_INVENTORY;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        Help;\r
+  STRING_REF                        Text;\r
+  STRING_REF                        TextTwo;    ///< optional text\r
+} EFI_IFR_INVENTORY;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  EFI_GUID          Guid;         // GUID for the variable\r
-  UINT16            VarId;        // variable store ID, as referenced elsewhere in the form\r
-  UINT16            Size;         // size of the variable storage\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  EFI_GUID                          Guid;       ///< GUID for the variable\r
+  UINT16                            VarId;      ///< variable store ID, as referenced elsewhere in the form\r
+  UINT16                            Size;       ///< size of the variable storage\r
 } FRAMEWORK_EFI_IFR_VARSTORE;\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            VarId;        // variable store ID, as referenced elsewhere in the form\r
-} FRAMEWORK_EFI_IFR_VARSTORE_SELECT;\r
-\r
-//\r
-// Used for the ideqid VFR statement where two variable stores may be referenced in the\r
-// same VFR statement.\r
-// A browser should treat this as an FRAMEWORK_EFI_IFR_VARSTORE_SELECT statement and assume that all following\r
-// IFR opcodes use the VarId as defined here.\r
-//\r
-typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            VarId;          // variable store ID, as referenced elsewhere in the form\r
-  UINT16            SecondaryVarId; // variable store ID, as referenced elsewhere in the form\r
-} FRAMEWORK_EFI_IFR_VARSTORE_SELECT_PAIR;\r
-\r
-typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_TRUE;\r
-\r
-typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_FALSE;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            VarId;      ///< variable store ID, as referenced elsewhere in the form\r
+} EFI_IFR_VARSTORE_SELECT;\r
 \r
+///\r
+/// Used for the ideqid VFR statement where two variable stores may be referenced in the\r
+/// same VFR statement.\r
+/// A browser should treat this as an FRAMEWORK_EFI_IFR_VARSTORE_SELECT statement and assume that all following\r
+/// IFR opcodes use the VarId as defined here.\r
+///\r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_GT;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  UINT16                            VarId;          ///< variable store ID, as referenced elsewhere in the form\r
+  UINT16                            SecondaryVarId; ///< variable store ID, as referenced elsewhere in the form\r
+} EFI_IFR_VARSTORE_SELECT_PAIR;\r
 \r
-typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-} FRAMEWORK_EFI_IFR_GE;\r
-\r
-//\r
-// Save defaults and restore defaults have same structure\r
-//\r
-#define FRAMEWORK_EFI_IFR_RESTORE_DEFAULTS  FRAMEWORK_EFI_IFR_SAVE_DEFAULTS\r
+///\r
+/// Save defaults and restore defaults have same structure\r
+///\r
+#define EFI_IFR_RESTORE_DEFAULTS  EFI_IFR_SAVE_DEFAULTS\r
 \r
 typedef struct {\r
-  FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  STRING_REF        Title;        // The string token for the banner title\r
-  UINT16            LineNumber;   // 1-based line number\r
-  UINT8             Alignment;    // left, center, or right-aligned\r
-} FRAMEWORK_EFI_IFR_BANNER;\r
+  FRAMEWORK_EFI_IFR_OP_HEADER       Header;\r
+  STRING_REF                        Title;        ///< The string token for the banner title\r
+  UINT16                            LineNumber;   ///< 1-based line number\r
+  UINT8                             Alignment;    ///< left, center, or right-aligned\r
+} EFI_IFR_BANNER;\r
 \r
-#define FRAMEWORK_EFI_IFR_BANNER_ALIGN_LEFT   0\r
-#define FRAMEWORK_EFI_IFR_BANNER_ALIGN_CENTER 1\r
-#define FRAMEWORK_EFI_IFR_BANNER_ALIGN_RIGHT  2\r
-#define FRAMEWORK_EFI_IFR_BANNER_TIMEOUT      0xFF\r
+#define EFI_IFR_BANNER_ALIGN_LEFT   0\r
+#define EFI_IFR_BANNER_ALIGN_CENTER 1\r
+#define EFI_IFR_BANNER_ALIGN_RIGHT  2\r
+#define EFI_IFR_BANNER_TIMEOUT      0xFF\r
 \r
 #pragma pack()\r
 \r