]> git.proxmox.com Git - mirror_edk2.git/blobdiff - IntelFrameworkPkg/Include/Protocol/FrameworkFormCallback.h
Add comments for the inconsistent definition with framework specification.
[mirror_edk2.git] / IntelFrameworkPkg / Include / Protocol / FrameworkFormCallback.h
index e42459dd902f7953aeb581abb139359696a942e5..575d0f61832e640090e44ccbdf5c046b5ba411f7 100644 (file)
@@ -14,8 +14,6 @@
   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
 \r
-  Module Name:  FrameworkFormCallback.h\r
-\r
   @par Revision Reference:\r
   This protocol is defined in HII spec 0.92.\r
 \r
 //\r
 typedef struct _EFI_FORM_CALLBACK_PROTOCOL  EFI_FORM_CALLBACK_PROTOCOL;\r
 \r
+///\r
+///  Inconsistent with specification here: \r
+///  EFI_IFR_DATA_ENTRY RESET_REQUIRED, EXIT_REQUIRED, SAVE_REQUIRED, NV_CHANGED \r
+//// and NV_NOT_CHANGED are not defined in HII specification. These Flags of EFI_IFR_DATA_ENTRY \r
+///  should be defined to describe the standard behavior of the browser after the callback.\r
+///\r
+\r
+///\r
+/// If this flag is set, the browser will exit and reset after processing callback results\r
+///\r
+#define RESET_REQUIRED  1 \r
+///\r
+/// If this flag is set, the browser will exit after processing callback results\r
+///\r
+#define EXIT_REQUIRED   2\r
+///\r
+/// If this flag is set, the browser will save the NV data after processing callback results\r
+///\r
+#define SAVE_REQUIRED   4\r
+///\r
+/// If this flag is set, the browser will turn the NV flag on after processing callback results\r
+///\r
+#define NV_CHANGED      8\r
+///\r
+/// If this flag is set, the browser will turn the NV flag off after processing callback results\r
+///\r
+#define NV_NOT_CHANGED  16\r
 \r
-#define RESET_REQUIRED  1 // Flags setting to signify that the callback operation resulted in an eventual\r
-// reset to be done upon exit of the browser\r
-//\r
-#define EXIT_REQUIRED   2   // Flags setting to signify that after the processing of the callback results - exit the browser\r
-#define SAVE_REQUIRED   4   // Flags setting to signify that after the processing of the callback results - save the NV data\r
-#define NV_CHANGED      8   // Flags setting to signify that after the processing of the callback results - turn the NV flag on\r
-#define NV_NOT_CHANGED  16  // Flags setting to signify that after the processing of the callback results - turn the NV flag off\r
 #pragma pack(1)\r
 typedef struct {\r
-  UINT8   OpCode;           // Likely a string, numeric, or one-of\r
-  UINT8   Length;           // Length of the FRAMEWORK_EFI_IFR_DATA_ENTRY packet\r
-  UINT16  Flags;            // Flags settings to determine what behavior is desired from the browser after the callback\r
-  VOID    *Data;            // The data in the form based on the op-code type - this is not a pointer to the data, the data follows immediately\r
-  // If the OpCode is a OneOf or Numeric type - Data is a UINT16 value\r
-  // If the OpCode is a String type - Data is a CHAR16[x] type\r
-  // If the OpCode is a Checkbox type - Data is a UINT8 value\r
-  // If the OpCode is a NV Access type - Data is a FRAMEWORK_EFI_IFR_NV_DATA structure\r
-  //\r
+  UINT8   OpCode;           ///< Likely a string, numeric, or one-of\r
+  UINT8   Length;           ///< Length of the FRAMEWORK_EFI_IFR_DATA_ENTRY packet\r
+  UINT16  Flags;            ///< Flags settings to determine what behavior is desired from the browser after the callback\r
+  VOID    *Data;            ///< The data in the form based on the op-code type - this is not a pointer to the data, the data follows immediately\r
+  ///\r
+  /// If the OpCode is a OneOf or Numeric type - Data is a UINT16 value\r
+  /// If the OpCode is a String type - Data is a CHAR16[x] type\r
+  /// If the OpCode is a Checkbox type - Data is a UINT8 value\r
+  /// If the OpCode is a NV Access type - Data is a FRAMEWORK_EFI_IFR_NV_DATA structure\r
+  ///\r
 } FRAMEWORK_EFI_IFR_DATA_ENTRY;\r
 \r
 typedef struct {\r
-  VOID                *NvRamMap;  // If the flag of the op-code specified retrieval of a copy of the NVRAM map,\r
+  VOID                *NvRamMap;  ///< If the flag of the op-code specified retrieval of a copy of the NVRAM map,\r
+  //\r
   // this is a pointer to a buffer copy\r
   //\r
-  UINT32              EntryCount; // How many FRAMEWORK_EFI_IFR_DATA_ENTRY entries\r
+  UINT32              EntryCount; ///< How many FRAMEWORK_EFI_IFR_DATA_ENTRY entries\r
   //\r
   // FRAMEWORK_EFI_IFR_DATA_ENTRY  Data[1];    // The in-line Data entries.\r
   //\r
@@ -72,15 +92,15 @@ typedef struct {
 \r
 \r
 typedef union {\r
-  FRAMEWORK_EFI_IFR_DATA_ARRAY  DataArray;  // Primarily used by those who call back to their drivers and use HII as a repository\r
-  FRAMEWORK_EFI_IFR_PACKET      DataPacket; // Primarily used by those which do not use HII as a repository\r
-  CHAR16                        String[1];  // If returning an error - fill the string with null-terminated contents\r
+  FRAMEWORK_EFI_IFR_DATA_ARRAY  DataArray;  ///< Primarily used by those who call back to their drivers and use HII as a repository\r
+  FRAMEWORK_EFI_IFR_PACKET      DataPacket; ///< Primarily used by those which do not use HII as a repository\r
+  CHAR16                        String[1];  ///< If returning an error - fill the string with null-terminated contents\r
 } EFI_HII_CALLBACK_PACKET;\r
 \r
 typedef struct {\r
   FRAMEWORK_EFI_IFR_OP_HEADER Header;\r
-  UINT16            QuestionId;   // Offset into the map\r
-  UINT8             StorageWidth; // Width of the value\r
+  UINT16            QuestionId;   ///< Offset into the map\r
+  UINT8             StorageWidth; ///< Width of the value\r
   //\r
   // CHAR8             Data[1];      // The Data itself\r
   //\r
@@ -130,6 +150,9 @@ EFI_STATUS
                                 name of the vendor's variable. Each VariableName is unique for each VendorGuid.\r
   @param  VendorGuid            A unique identifier for the vendor.\r
   @param  Attributes            Attributes bit-mask to set for the variable.\r
+                                Inconsistent with specification here: \r
+                                Attributes data type has been changed from UINT32 * to UINT32,\r
+                                because the input paramter is not necessary to use pointer date type.\r
   @param  DataSize              The size in bytes of the Buffer. A size of zero causes\r
                                 the variable to be deleted.\r
   @param  Buffer                The buffer containing the contents of the variable.\r
@@ -185,7 +208,7 @@ EFI_STATUS
 /**\r
   The EFI_FORM_CALLBACK_PROTOCOL is the defined interface for access to\r
   custom NVS devices as well as communication of user selections in a more\r
-  interactive environment. This protocol should be published by hardware-specific\r
+  interactive environment. This protocol should be published by platform-specific\r
   drivers that want to export access to custom hardware storage or publish IFR\r
   that has a requirement to call back the original driver.\r
 **/\r