]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Uefi/UefiInternalFormRepresentation.h
MdePkg: Replace BSD License with BSD+Patent License
[mirror_edk2.git] / MdePkg / Include / Uefi / UefiInternalFormRepresentation.h
index 80ae3f749021aebad865a7cc0bea93840ac6d911..4a1346a599d0c9c27938bbdf49926b6869f52cd2 100644 (file)
@@ -3,14 +3,9 @@
   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) 2006 - 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
-  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
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
 \r
   @par Revision Reference:\r
   These definitions are from UEFI 2.1 and 2.2.\r
@@ -66,7 +61,7 @@ typedef struct {
 \r
 //\r
 // Value of HII package type\r
-// \r
+//\r
 #define EFI_HII_PACKAGE_TYPE_ALL             0x00\r
 #define EFI_HII_PACKAGE_TYPE_GUID            0x01\r
 #define EFI_HII_PACKAGE_FORMS                0x02\r
@@ -86,7 +81,7 @@ typedef struct {
 //\r
 \r
 ///\r
-/// Contents of EFI_NARROW_GLYPH.Attributes\r
+/// Contents of EFI_NARROW_GLYPH.Attributes.\r
 ///@{\r
 #define EFI_GLYPH_NON_SPACING                0x01\r
 #define EFI_GLYPH_WIDE                       0x02\r
@@ -99,7 +94,7 @@ typedef struct {
 ///\r
 typedef struct {\r
   ///\r
-  /// The Unicode representation of the glyph. The term weight is the \r
+  /// The Unicode representation of the glyph. The term weight is the\r
   /// technical term for a character code.\r
   ///\r
   CHAR16                 UnicodeWeight;\r
@@ -108,7 +103,7 @@ typedef struct {
   ///\r
   UINT8                  Attributes;\r
   ///\r
-  /// The column major glyph representation of the character. Bits \r
+  /// The column major glyph representation of the character. Bits\r
   /// with values of one indicate that the corresponding pixel is to be\r
   /// on when normally displayed; those with zero are off.\r
   ///\r
@@ -116,12 +111,12 @@ typedef struct {
 } EFI_NARROW_GLYPH;\r
 \r
 ///\r
-/// The EFI_WIDE_GLYPH has a preferred dimension (w x h) of 16 x 19 pixels, which is large enough \r
+/// The EFI_WIDE_GLYPH has a preferred dimension (w x h) of 16 x 19 pixels, which is large enough\r
 /// to accommodate logographic characters.\r
 ///\r
 typedef struct {\r
   ///\r
-  /// The Unicode representation of the glyph. The term weight is the \r
+  /// The Unicode representation of the glyph. The term weight is the\r
   /// technical term for a character code.\r
   ///\r
   CHAR16                 UnicodeWeight;\r
@@ -130,20 +125,20 @@ typedef struct {
   ///\r
   UINT8                  Attributes;\r
   ///\r
-  /// The column major glyph representation of the character. Bits \r
-  /// with values of one indicate that the corresponding pixel is to be \r
+  /// The column major glyph representation of the character. Bits\r
+  /// with values of one indicate that the corresponding pixel is to be\r
   /// on when normally displayed; those with zero are off.\r
   ///\r
   UINT8                  GlyphCol1[EFI_GLYPH_HEIGHT];\r
   ///\r
-  /// The column major glyph representation of the character. Bits \r
-  /// with values of one indicate that the corresponding pixel is to be \r
+  /// The column major glyph representation of the character. Bits\r
+  /// with values of one indicate that the corresponding pixel is to be\r
   /// on when normally displayed; those with zero are off.\r
   ///\r
   UINT8                  GlyphCol2[EFI_GLYPH_HEIGHT];\r
   ///\r
-  /// Ensures that sizeof (EFI_WIDE_GLYPH) is twice the \r
-  /// sizeof (EFI_NARROW_GLYPH). The contents of Pad must \r
+  /// Ensures that sizeof (EFI_WIDE_GLYPH) is twice the\r
+  /// sizeof (EFI_NARROW_GLYPH). The contents of Pad must\r
   /// be zero.\r
   ///\r
   UINT8                  Pad[3];\r
@@ -187,7 +182,7 @@ typedef struct _EFI_HII_GLYPH_INFO {
 } EFI_HII_GLYPH_INFO;\r
 \r
 ///\r
-/// The fixed header consists of a standard record header and\r
+/// The fixed header consists of a standard record header,\r
 /// then the character values in this section, the flags\r
 /// (including the encoding method) and the offsets of the glyph\r
 /// information, the glyph bitmaps and the character map.\r
@@ -209,6 +204,7 @@ typedef struct _EFI_HII_FONT_PACKAGE_HDR {
 #define EFI_HII_GIBT_GLYPHS               0x11\r
 #define EFI_HII_GIBT_GLYPH_DEFAULT        0x12\r
 #define EFI_HII_GIBT_GLYPHS_DEFAULT       0x13\r
+#define EFI_HII_GIBT_GLYPH_VARIABILITY    0x14\r
 #define EFI_HII_GIBT_DUPLICATE            0x20\r
 #define EFI_HII_GIBT_SKIP2                0x21\r
 #define EFI_HII_GIBT_SKIP1                0x22\r
@@ -266,7 +262,7 @@ typedef struct _EFI_HII_GIBT_GLYPH_BLOCK {
 typedef struct _EFI_HII_GIBT_GLYPHS_BLOCK {\r
   EFI_HII_GLYPH_BLOCK    Header;\r
   EFI_HII_GLYPH_INFO     Cell;\r
-  UINT16                 Count;  \r
+  UINT16                 Count;\r
   UINT8                  BitmapData[1];\r
 } EFI_HII_GIBT_GLYPHS_BLOCK;\r
 \r
@@ -281,6 +277,13 @@ typedef struct _EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK {
   UINT8                  BitmapData[1];\r
 } EFI_HII_GIBT_GLYPHS_DEFAULT_BLOCK;\r
 \r
+typedef struct _EFI_HII_GIBT_VARIABILITY_BLOCK {\r
+  EFI_HII_GLYPH_BLOCK    Header;\r
+  EFI_HII_GLYPH_INFO     Cell;\r
+  UINT8                  GlyphPackInBits;\r
+  UINT8                  BitmapData [1];\r
+} EFI_HII_GIBT_VARIABILITY_BLOCK;\r
+\r
 typedef struct _EFI_HII_GIBT_SKIP1_BLOCK {\r
   EFI_HII_GLYPH_BLOCK    Header;\r
   UINT8                  SkipCount;\r
@@ -324,8 +327,8 @@ typedef struct _EFI_HII_GUID_PACKAGE_HDR {
 // Section 27.3.6\r
 //\r
 \r
-#define UEFI_CONFIG_LANG  "x-UEFI"\r
-#define UEFI_CONFIG_LANG2 "x-i-UEFI"\r
+#define UEFI_CONFIG_LANG   "x-UEFI"\r
+#define UEFI_CONFIG_LANG_2 "x-i-UEFI"\r
 \r
 ///\r
 /// The fixed header consists of a standard record header and then the string identifiers\r
@@ -489,6 +492,7 @@ typedef struct _EFI_HII_IMAGE_BLOCK {
 #define EFI_HII_IIBT_IMAGE_24BIT       0x16\r
 #define EFI_HII_IIBT_IMAGE_24BIT_TRANS 0x17\r
 #define EFI_HII_IIBT_IMAGE_JPEG        0x18\r
+#define EFI_HII_IIBT_IMAGE_PNG         0x19\r
 #define EFI_HII_IIBT_DUPLICATE         0x20\r
 #define EFI_HII_IIBT_SKIP2             0x21\r
 #define EFI_HII_IIBT_SKIP1             0x22\r
@@ -609,6 +613,12 @@ typedef struct _EFI_HII_IIBT_JPEG_BLOCK {
   UINT8                        Data[1];\r
 } EFI_HII_IIBT_JPEG_BLOCK;\r
 \r
+typedef struct _EFI_HII_IIBT_PNG_BLOCK {\r
+  EFI_HII_IMAGE_BLOCK          Header;\r
+  UINT32                       Size;\r
+  UINT8                        Data[1];\r
+} EFI_HII_IIBT_PNG_BLOCK;\r
+\r
 typedef struct _EFI_HII_IIBT_SKIP1_BLOCK {\r
   EFI_HII_IMAGE_BLOCK          Header;\r
   UINT8                        SkipCount;\r
@@ -658,6 +668,13 @@ typedef struct {
   UINT8  Day;\r
 } EFI_HII_DATE;\r
 \r
+typedef struct {\r
+  EFI_QUESTION_ID QuestionId;\r
+  EFI_FORM_ID     FormId;\r
+  EFI_GUID        FormSetGuid;\r
+  EFI_STRING_ID   DevicePath;\r
+} EFI_HII_REF;\r
+\r
 typedef union {\r
   UINT8           u8;\r
   UINT16          u16;\r
@@ -667,7 +684,8 @@ typedef union {
   EFI_HII_TIME    time;\r
   EFI_HII_DATE    date;\r
   EFI_STRING_ID   string; ///< EFI_IFR_TYPE_STRING, EFI_IFR_TYPE_ACTION\r
-  // UINT8 buffer[];      ///< EFI_IFR_TYPE_ORDERED_LIST\r
+  EFI_HII_REF     ref;    ///< EFI_IFR_TYPE_REF\r
+  // UINT8 buffer[];      ///< EFI_IFR_TYPE_BUFFER\r
 } EFI_IFR_TYPE_VALUE;\r
 \r
 //\r
@@ -692,7 +710,7 @@ typedef union {
 #define EFI_IFR_INCONSISTENT_IF_OP     0x11\r
 #define EFI_IFR_EQ_ID_VAL_OP           0x12\r
 #define EFI_IFR_EQ_ID_ID_OP            0x13\r
-#define EFI_IFR_EQ_ID_LIST_OP          0x14\r
+#define EFI_IFR_EQ_ID_VAL_LIST_OP      0x14\r
 #define EFI_IFR_AND_OP                 0x15\r
 #define EFI_IFR_OR_OP                  0x16\r
 #define EFI_IFR_NOT_OP                 0x17\r
@@ -715,8 +733,8 @@ typedef union {
 #define EFI_IFR_VERSION_OP             0x28\r
 #define EFI_IFR_END_OP                 0x29\r
 #define EFI_IFR_MATCH_OP               0x2A\r
-#define EFI_IFR_SET_OP                 0x2C\r
 #define EFI_IFR_GET_OP                 0x2B\r
+#define EFI_IFR_SET_OP                 0x2C\r
 #define EFI_IFR_READ_OP                0x2D\r
 #define EFI_IFR_WRITE_OP               0x2E\r
 #define EFI_IFR_EQUAL_OP               0x2F\r
@@ -769,6 +787,10 @@ typedef union {
 #define EFI_IFR_CATENATE_OP            0x5E\r
 #define EFI_IFR_GUID_OP                0x5F\r
 #define EFI_IFR_SECURITY_OP            0x60\r
+#define EFI_IFR_MODAL_TAG_OP           0x61\r
+#define EFI_IFR_REFRESH_ID_OP          0x62\r
+#define EFI_IFR_WARNING_IF_OP          0x63\r
+#define EFI_IFR_MATCH2_OP              0x64\r
 \r
 //\r
 // Definitions of IFR Standard Headers\r
@@ -800,10 +822,11 @@ typedef struct _EFI_IFR_QUESTION_HEADER {
 //\r
 // Flag values of EFI_IFR_QUESTION_HEADER\r
 //\r
-#define EFI_IFR_FLAG_READ_ONLY         0x01\r
-#define EFI_IFR_FLAG_CALLBACK          0x04\r
-#define EFI_IFR_FLAG_RESET_REQUIRED    0x10\r
-#define EFI_IFR_FLAG_OPTIONS_ONLY      0x80\r
+#define EFI_IFR_FLAG_READ_ONLY          0x01\r
+#define EFI_IFR_FLAG_CALLBACK           0x04\r
+#define EFI_IFR_FLAG_RESET_REQUIRED     0x10\r
+#define EFI_IFR_FLAG_RECONNECT_REQUIRED 0x40\r
+#define EFI_IFR_FLAG_OPTIONS_ONLY       0x80\r
 \r
 //\r
 // Definition for Opcode Reference\r
@@ -816,7 +839,7 @@ typedef struct _EFI_IFR_DEFAULTSTORE {
 } EFI_IFR_DEFAULTSTORE;\r
 \r
 //\r
-// Default Identifier of default store \r
+// Default Identifier of default store\r
 //\r
 #define EFI_HII_DEFAULT_CLASS_STANDARD       0x0000\r
 #define EFI_HII_DEFAULT_CLASS_MANUFACTURING  0x0001\r
@@ -841,6 +864,8 @@ typedef struct _EFI_IFR_VARSTORE_EFI {
   EFI_VARSTORE_ID          VarStoreId;\r
   EFI_GUID                 Guid;\r
   UINT32                   Attributes;\r
+  UINT16                   Size;\r
+  UINT8                    Name[1];\r
 } EFI_IFR_VARSTORE_EFI;\r
 \r
 typedef struct _EFI_IFR_VARSTORE_NAME_VALUE {\r
@@ -873,6 +898,10 @@ typedef struct _EFI_IFR_IMAGE {
   EFI_IMAGE_ID             Id;\r
 } EFI_IFR_IMAGE;\r
 \r
+typedef struct _EFI_IFR_MODAL_TAG {\r
+  EFI_IFR_OP_HEADER        Header;\r
+} EFI_IFR_MODAL_TAG;\r
+\r
 typedef struct _EFI_IFR_LOCKED {\r
   EFI_IFR_OP_HEADER        Header;\r
 } EFI_IFR_LOCKED;\r
@@ -889,6 +918,12 @@ typedef struct _EFI_IFR_DEFAULT {
   EFI_IFR_TYPE_VALUE       Value;\r
 } EFI_IFR_DEFAULT;\r
 \r
+typedef struct _EFI_IFR_DEFAULT_2 {\r
+  EFI_IFR_OP_HEADER        Header;\r
+  UINT16                   DefaultId;\r
+  UINT8                    Type;\r
+} EFI_IFR_DEFAULT_2;\r
+\r
 typedef struct _EFI_IFR_VALUE {\r
   EFI_IFR_OP_HEADER        Header;\r
 } EFI_IFR_VALUE;\r
@@ -946,6 +981,11 @@ typedef struct _EFI_IFR_REF4 {
   EFI_STRING_ID            DevicePath;\r
 } EFI_IFR_REF4;\r
 \r
+typedef struct _EFI_IFR_REF5 {\r
+  EFI_IFR_OP_HEADER Header;\r
+  EFI_IFR_QUESTION_HEADER Question;\r
+} EFI_IFR_REF5;\r
+\r
 typedef struct _EFI_IFR_RESET_BUTTON {\r
   EFI_IFR_OP_HEADER        Header;\r
   EFI_IFR_STATEMENT_HEADER Statement;\r
@@ -1099,6 +1139,12 @@ typedef struct _EFI_IFR_NO_SUBMIT_IF {
   EFI_STRING_ID            Error;\r
 } EFI_IFR_NO_SUBMIT_IF;\r
 \r
+typedef struct _EFI_IFR_WARNING_IF {\r
+  EFI_IFR_OP_HEADER        Header;\r
+  EFI_STRING_ID            Warning;\r
+  UINT8                    TimeOut;\r
+} EFI_IFR_WARNING_IF;\r
+\r
 typedef struct _EFI_IFR_REFRESH {\r
   EFI_IFR_OP_HEADER        Header;\r
   UINT8                    RefreshInterval;\r
@@ -1132,6 +1178,7 @@ typedef struct _EFI_IFR_ONE_OF_OPTION {
 #define EFI_IFR_TYPE_UNDEFINED         0x09\r
 #define EFI_IFR_TYPE_ACTION            0x0A\r
 #define EFI_IFR_TYPE_BUFFER            0x0B\r
+#define EFI_IFR_TYPE_REF               0x0C\r
 \r
 #define EFI_IFR_OPTION_DEFAULT         0x10\r
 #define EFI_IFR_OPTION_DEFAULT_MFG     0x20\r
@@ -1142,6 +1189,11 @@ typedef struct _EFI_IFR_GUID {
   //Optional Data Follows\r
 } EFI_IFR_GUID;\r
 \r
+typedef struct _EFI_IFR_REFRESH_ID {\r
+  EFI_IFR_OP_HEADER Header;\r
+  EFI_GUID          RefreshEventGroupId;\r
+} EFI_IFR_REFRESH_ID;\r
+\r
 typedef struct _EFI_IFR_DUP {\r
   EFI_IFR_OP_HEADER        Header;\r
 } EFI_IFR_DUP;\r
@@ -1274,10 +1326,10 @@ typedef struct _EFI_IFR_TO_BOOLEAN {
 ///\r
 /// For EFI_IFR_TO_STRING, when converting from\r
 /// unsigned integers, these flags control the format:\r
-/// 0 = unsigned decimal\r
-/// 1 = signed decimal\r
-/// 2 = hexadecimal (lower-case alpha)\r
-/// 3 = hexadecimal (upper-case alpha)\r
+/// 0 = unsigned decimal.\r
+/// 1 = signed decimal.\r
+/// 2 = hexadecimal (lower-case alpha).\r
+/// 3 = hexadecimal (upper-case alpha).\r
 ///@{\r
 #define EFI_IFR_STRING_UNSIGNED_DEC      0\r
 #define EFI_IFR_STRING_SIGNED_DEC        1\r
@@ -1287,8 +1339,8 @@ typedef struct _EFI_IFR_TO_BOOLEAN {
 \r
 ///\r
 /// When converting from a buffer, these flags control the format:\r
-/// 0 = ASCII\r
-/// 8 = Unicode\r
+/// 0 = ASCII.\r
+/// 8 = Unicode.\r
 ///@{\r
 #define EFI_IFR_STRING_ASCII             0\r
 #define EFI_IFR_STRING_UNICODE           8\r
@@ -1359,6 +1411,11 @@ typedef struct _EFI_IFR_MATCH {
   EFI_IFR_OP_HEADER        Header;\r
 } EFI_IFR_MATCH;\r
 \r
+typedef struct _EFI_IFR_MATCH2 {\r
+  EFI_IFR_OP_HEADER        Header;\r
+  EFI_GUID                 SyntaxType;\r
+} EFI_IFR_MATCH2;\r
+\r
 typedef struct _EFI_IFR_MULTIPLY {\r
   EFI_IFR_OP_HEADER        Header;\r
 } EFI_IFR_MULTIPLY;\r
@@ -1435,12 +1492,12 @@ typedef struct _EFI_IFR_SECURITY {
 \r
 typedef struct _EFI_IFR_FORM_MAP_METHOD {\r
   ///\r
-  /// The string identifier which provides the human-readable name of \r
+  /// The string identifier which provides the human-readable name of\r
   /// the configuration method for this standards map form.\r
   ///\r
   EFI_STRING_ID            MethodTitle;\r
   ///\r
-  /// Identifier which uniquely specifies the configuration methods \r
+  /// Identifier which uniquely specifies the configuration methods\r
   /// associated with this standards map form.\r
   ///\r
   EFI_GUID                 MethodIdentifier;\r
@@ -1448,8 +1505,8 @@ typedef struct _EFI_IFR_FORM_MAP_METHOD {
 \r
 typedef struct _EFI_IFR_FORM_MAP {\r
   ///\r
-  /// The sequence that defines the type of opcode as well as the length \r
-  /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP. \r
+  /// The sequence that defines the type of opcode as well as the length\r
+  /// of the opcode being defined. Header.OpCode = EFI_IFR_FORM_MAP_OP.\r
   ///\r
   EFI_IFR_OP_HEADER        Header;\r
   ///\r
@@ -1459,18 +1516,18 @@ typedef struct _EFI_IFR_FORM_MAP {
   ///\r
   /// One or more configuration method's name and unique identifier.\r
   ///\r
-  EFI_IFR_FORM_MAP_METHOD  Methods[1];\r
+  // EFI_IFR_FORM_MAP_METHOD  Methods[];\r
 } EFI_IFR_FORM_MAP;\r
 \r
 typedef struct _EFI_IFR_SET {\r
   ///\r
-  /// The sequence that defines the type of opcode as well as the length \r
-  /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP. \r
+  /// The sequence that defines the type of opcode as well as the length\r
+  /// of the opcode being defined. Header.OpCode = EFI_IFR_SET_OP.\r
   ///\r
   EFI_IFR_OP_HEADER  Header;\r
   ///\r
-  /// Specifies the identifier of a previously declared variable store to \r
-  /// use when storing the question's value. \r
+  /// Specifies the identifier of a previously declared variable store to\r
+  /// use when storing the question's value.\r
   ///\r
   EFI_VARSTORE_ID    VarStoreId;\r
   union {\r
@@ -1483,17 +1540,21 @@ typedef struct _EFI_IFR_SET {
     ///\r
     UINT16           VarOffset;\r
   }                  VarStoreInfo;\r
+  ///\r
+  /// Specifies the type used for storage.\r
+  ///\r
+  UINT8              VarStoreType;\r
 } EFI_IFR_SET;\r
 \r
 typedef struct _EFI_IFR_GET {\r
   ///\r
-  /// The sequence that defines the type of opcode as well as the length \r
-  /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP. \r
+  /// The sequence that defines the type of opcode as well as the length\r
+  /// of the opcode being defined. Header.OpCode = EFI_IFR_GET_OP.\r
   ///\r
   EFI_IFR_OP_HEADER  Header;\r
   ///\r
-  /// Specifies the identifier of a previously declared variable store to \r
-  /// use when retrieving the value. \r
+  /// Specifies the identifier of a previously declared variable store to\r
+  /// use when retrieving the value.\r
   ///\r
   EFI_VARSTORE_ID    VarStoreId;\r
   union {\r
@@ -1507,7 +1568,7 @@ typedef struct _EFI_IFR_GET {
     UINT16           VarOffset;\r
   }                  VarStoreInfo;\r
   ///\r
-  /// Specifies the type used for storage. \r
+  /// Specifies the type used for storage.\r
   ///\r
   UINT8              VarStoreType;\r
 } EFI_IFR_GET;\r
@@ -1531,9 +1592,9 @@ typedef struct _EFI_IFR_MAP {
 ///\r
 /// Each enumeration values maps a physical key on a keyboard.\r
 ///\r
-typedef enum {    \r
+typedef enum {\r
   EfiKeyLCtrl,\r
-  EfiKeyA0, \r
+  EfiKeyA0,\r
   EfiKeyLAlt,\r
   EfiKeySpaceBar,\r
   EfiKeyA2,\r
@@ -1661,8 +1722,8 @@ typedef struct {
   ///\r
   CHAR16                  ShiftedAltGrUnicode;\r
   ///\r
-  /// Modifier keys are defined to allow for special functionality that is not necessarily \r
-  /// accomplished by a printable character. Many of these modifier keys are flags to toggle \r
+  /// Modifier keys are defined to allow for special functionality that is not necessarily\r
+  /// accomplished by a printable character. Many of these modifier keys are flags to toggle\r
   /// certain state bits on and off inside of a keyboard driver.\r
   ///\r
   UINT16                  Modifier;\r
@@ -1670,7 +1731,7 @@ typedef struct {
 } EFI_KEY_DESCRIPTOR;\r
 \r
 ///\r
-/// A key which is affected by all the standard shift modifiers.  \r
+/// A key which is affected by all the standard shift modifiers.\r
 /// Most keys would be expected to have this bit active.\r
 ///\r
 #define EFI_AFFECTED_BY_STANDARD_SHIFT       0x0001\r
@@ -1763,7 +1824,7 @@ typedef struct {
 ///\r
 typedef struct _EFI_IFR_ANIMATION {\r
   ///\r
-  /// Standard opcode header, where Header.OpCode is \r
+  /// Standard opcode header, where Header.OpCode is\r
   /// EFI_IFR_ANIMATION_OP.\r
   ///\r
   EFI_IFR_OP_HEADER        Header;\r
@@ -1774,7 +1835,7 @@ typedef struct _EFI_IFR_ANIMATION {
 } EFI_IFR_ANIMATION;\r
 \r
 ///\r
-/// HII animation package header\r
+/// HII animation package header.\r
 ///\r
 typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {\r
   ///\r
@@ -1782,7 +1843,7 @@ typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {
   ///\r
   EFI_HII_PACKAGE_HEADER  Header;\r
   ///\r
-  /// Offset, relative to this header, of the animation information. If \r
+  /// Offset, relative to this header, of the animation information. If\r
   /// this is zero, then there are no animation sequences in the package.\r
   ///\r
   UINT32                  AnimationInfoOffset;\r
@@ -1790,7 +1851,7 @@ typedef struct _EFI_HII_ANIMATION_PACKAGE_HDR {
 \r
 ///\r
 /// Animation information is encoded as a series of blocks,\r
-/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK\r
+/// with each block prefixed by a single byte header EFI_HII_ANIMATION_BLOCK.\r
 ///\r
 typedef struct _EFI_HII_ANIMATION_BLOCK {\r
   UINT8  BlockType;\r
@@ -1798,7 +1859,7 @@ typedef struct _EFI_HII_ANIMATION_BLOCK {
 } EFI_HII_ANIMATION_BLOCK;\r
 \r
 ///\r
-/// Animation block types\r
+/// Animation block types.\r
 ///\r
 #define EFI_HII_AIBT_END                 0x00\r
 #define EFI_HII_AIBT_OVERLAY_IMAGES      0x10\r
@@ -1821,11 +1882,11 @@ typedef struct _EFI_HII_ANIMATION_BLOCK {
 \r
 typedef struct _EFI_HII_AIBT_EXT1_BLOCK  {\r
   ///\r
-  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT1.\r
   ///\r
   EFI_HII_ANIMATION_BLOCK  Header;\r
   ///\r
-  /// The block type\r
+  /// The block type.\r
   ///\r
   UINT8                    BlockType2;\r
   ///\r
@@ -1836,7 +1897,7 @@ typedef struct _EFI_HII_AIBT_EXT1_BLOCK  {
 \r
 typedef struct _EFI_HII_AIBT_EXT2_BLOCK {\r
   ///\r
-  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT2.\r
   ///\r
   EFI_HII_ANIMATION_BLOCK  Header;\r
   ///\r
@@ -1851,7 +1912,7 @@ typedef struct _EFI_HII_AIBT_EXT2_BLOCK {
 \r
 typedef struct _EFI_HII_AIBT_EXT4_BLOCK {\r
   ///\r
-  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4\r
+  /// Standard animation header, where Header.BlockType = EFI_HII_AIBT_EXT4.\r
   ///\r
   EFI_HII_ANIMATION_BLOCK  Header;\r
   ///\r
@@ -1866,23 +1927,23 @@ typedef struct _EFI_HII_AIBT_EXT4_BLOCK {
 \r
 typedef struct _EFI_HII_ANIMATION_CELL {\r
   ///\r
-  /// The X offset from the upper left hand corner of the logical \r
+  /// The X offset from the upper left hand corner of the logical\r
   /// window to position the indexed image.\r
   ///\r
   UINT16                    OffsetX;\r
   ///\r
-  /// The Y offset from the upper left hand corner of the logical \r
+  /// The Y offset from the upper left hand corner of the logical\r
   /// window to position the indexed image.\r
   ///\r
   UINT16                    OffsetY;\r
   ///\r
-  /// The image to display at the specified offset from the upper left \r
+  /// The image to display at the specified offset from the upper left\r
   /// hand corner of the logical window.\r
   ///\r
   EFI_IMAGE_ID              ImageId;\r
   ///\r
-  /// The number of milliseconds to delay after displaying the indexed \r
-  /// image and before continuing on to the next linked image.  If value \r
+  /// The number of milliseconds to delay after displaying the indexed\r
+  /// image and before continuing on to the next linked image.  If value\r
   /// is zero, no delay.\r
   ///\r
   UINT16                    Delay;\r
@@ -1892,13 +1953,13 @@ typedef struct _EFI_HII_ANIMATION_CELL {
 /// An animation block to describe an animation sequence that does not cycle, and\r
 /// where one image is simply displayed over the previous image.\r
 ///\r
-typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES {\r
+typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK {\r
   ///\r
-  /// This is image that is to be reference by the image protocols, if the \r
-  /// animation function is not supported or disabled. This image can \r
-  /// be one particular image from the animation sequence (if any one \r
-  /// of the animation frames has a complete image) or an alternate \r
-  /// image that can be displayed alone. If the value is zero, no image \r
+  /// This is image that is to be reference by the image protocols, if the\r
+  /// animation function is not supported or disabled. This image can\r
+  /// be one particular image from the animation sequence (if any one\r
+  /// of the animation frames has a complete image) or an alternate\r
+  /// image that can be displayed alone. If the value is zero, no image\r
   /// is displayed.\r
   ///\r
   EFI_IMAGE_ID            DftImageId;\r
@@ -1911,7 +1972,7 @@ typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES {
   ///\r
   UINT16                  Height;\r
   ///\r
-  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the\r
   /// animation sequence.\r
   ///\r
   UINT16                  CellCount;\r
@@ -1923,16 +1984,16 @@ typedef struct _EFI_HII_AIBT_OVERLAY_IMAGES {
 \r
 ///\r
 /// An animation block to describe an animation sequence that does not cycle,\r
-/// and where the logical window is cleared to the specified color before \r
+/// and where the logical window is cleared to the specified color before\r
 /// the next image is displayed.\r
 ///\r
 typedef struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK {\r
   ///\r
-  /// This is image that is to be reference by the image protocols, if the \r
-  /// animation function is not supported or disabled. This image can \r
-  /// be one particular image from the animation sequence (if any one \r
-  /// of the animation frames has a complete image) or an alternate \r
-  /// image that can be displayed alone. If the value is zero, no image \r
+  /// This is image that is to be reference by the image protocols, if the\r
+  /// animation function is not supported or disabled. This image can\r
+  /// be one particular image from the animation sequence (if any one\r
+  /// of the animation frames has a complete image) or an alternate\r
+  /// image that can be displayed alone. If the value is zero, no image\r
   /// is displayed.\r
   ///\r
   EFI_IMAGE_ID       DftImageId;\r
@@ -1945,12 +2006,12 @@ typedef struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK {
   ///\r
   UINT16             Height;\r
   ///\r
-  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the\r
   /// animation sequence.\r
   ///\r
   UINT16             CellCount;\r
   ///\r
-  /// The color to clear the logical window to before displaying the \r
+  /// The color to clear the logical window to before displaying the\r
   /// indexed image.\r
   ///\r
   EFI_HII_RGB_PIXEL  BackgndColor;\r
@@ -1962,16 +2023,16 @@ typedef struct _EFI_HII_AIBT_CLEAR_IMAGES_BLOCK {
 \r
 ///\r
 /// An animation block to describe an animation sequence that does not cycle,\r
-/// and where the screen is restored to the original state before the next \r
+/// and where the screen is restored to the original state before the next\r
 /// image is displayed.\r
 ///\r
 typedef struct _EFI_HII_AIBT_RESTORE_SCRN_BLOCK {\r
   ///\r
-  /// This is image that is to be reference by the image protocols, if the \r
-  /// animation function is not supported or disabled. This image can \r
-  /// be one particular image from the animation sequence (if any one \r
-  /// of the animation frames has a complete image) or an alternate \r
-  /// image that can be displayed alone. If the value is zero, no image \r
+  /// This is image that is to be reference by the image protocols, if the\r
+  /// animation function is not supported or disabled. This image can\r
+  /// be one particular image from the animation sequence (if any one\r
+  /// of the animation frames has a complete image) or an alternate\r
+  /// image that can be displayed alone. If the value is zero, no image\r
   /// is displayed.\r
   ///\r
   EFI_IMAGE_ID            DftImageId;\r
@@ -1984,7 +2045,7 @@ typedef struct _EFI_HII_AIBT_RESTORE_SCRN_BLOCK {
   ///\r
   UINT16                  Height;\r
   ///\r
-  /// The number of EFI_HII_ANIMATION_CELL contained in the \r
+  /// The number of EFI_HII_ANIMATION_CELL contained in the\r
   /// animation sequence.\r
   ///\r
   UINT16                  CellCount;\r
@@ -2002,14 +2063,14 @@ typedef EFI_HII_AIBT_OVERLAY_IMAGES_BLOCK  EFI_HII_AIBT_OVERLAY_IMAGES_LOOP_BLOC
 \r
 ///\r
 /// An animation block to describe an animation sequence that continuously cycles,\r
-/// and where the logical window is cleared to the specified color before \r
+/// and where the logical window is cleared to the specified color before\r
 /// the next image is displayed.\r
 ///\r
 typedef EFI_HII_AIBT_CLEAR_IMAGES_BLOCK    EFI_HII_AIBT_CLEAR_IMAGES_LOOP_BLOCK;\r
 \r
 ///\r
 /// An animation block to describe an animation sequence that continuously cycles,\r
-/// and where the screen is restored to the original state before \r
+/// and where the screen is restored to the original state before\r
 /// the next image is displayed.\r
 ///\r
 typedef EFI_HII_AIBT_RESTORE_SCRN_BLOCK    EFI_HII_AIBT_RESTORE_SCRN_LOOP_BLOCK;\r
@@ -2019,7 +2080,7 @@ typedef EFI_HII_AIBT_RESTORE_SCRN_BLOCK    EFI_HII_AIBT_RESTORE_SCRN_LOOP_BLOCK;
 ///\r
 typedef struct _EFI_HII_AIBT_DUPLICATE_BLOCK {\r
   ///\r
-  /// The previously defined animation ID with the exact same \r
+  /// The previously defined animation ID with the exact same\r
   /// animation information.\r
   ///\r
   EFI_ANIMATION_ID  AnimationId;\r
@@ -2054,9 +2115,15 @@ typedef struct _EFI_HII_AIBT_SKIP2_BLOCK {
 /// token usages.\r
 ///\r
 ///\r
-/// STRING_TOKEN is not defined in UEFI specification. But it is placed \r
+/// STRING_TOKEN is not defined in UEFI specification. But it is placed\r
 /// here for the easy access by C files and VFR source files.\r
 ///\r
 #define STRING_TOKEN(t) t\r
 \r
+///\r
+/// IMAGE_TOKEN is not defined in UEFI specification. But it is placed\r
+/// here for the easy access by C files and VFR source files.\r
+///\r
+#define IMAGE_TOKEN(t) t\r
+\r
 #endif\r