]> 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 db625f1df82cc74c4dd3b982c776ee37a8d39eaf..575d0f61832e640090e44ccbdf5c046b5ba411f7 100644 (file)
@@ -5,7 +5,7 @@
   specific drivers which want to export access to custom hardware storage or\r
   publish IFR which has a requirement to call back the original driver.\r
 \r
-  Copyright (c) 2006, Intel Corporation\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
@@ -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
@@ -178,32 +201,21 @@ EFI_STATUS
 (EFIAPI *EFI_FORM_CALLBACK)(\r
   IN     EFI_FORM_CALLBACK_PROTOCOL    *This,\r
   IN     UINT16                        KeyValue,\r
-  IN     FRAMEWORK_EFI_IFR_DATA_ARRAY            *Data,\r
+  IN     FRAMEWORK_EFI_IFR_DATA_ARRAY  *Data,\r
   OUT    EFI_HII_CALLBACK_PACKET       **Packet\r
   );\r
 \r
 /**\r
-  @par Protocol Description:\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
-  @param NvRead\r
-  The read operation to access the NV data serviced by a hardware-specific driver.\r
-\r
-  @param NvWrite\r
-  The write operation to access the NV data serviced by a hardware-specific driver.\r
-\r
-  @param Callback\r
-  The function that is called from the configuration browser to communicate key value pairs.\r
-\r
 **/\r
 struct _EFI_FORM_CALLBACK_PROTOCOL {\r
-  EFI_NV_READ       NvRead;\r
-  EFI_NV_WRITE      NvWrite;\r
-  EFI_FORM_CALLBACK Callback;\r
+  EFI_NV_READ       NvRead;     ///< The read operation to access the NV data serviced by a hardware-specific driver.\r
+  EFI_NV_WRITE      NvWrite;    ///< The write operation to access the NV data serviced by a hardware-specific driver.\r
+  EFI_FORM_CALLBACK Callback;   ///< The function that is called from the configuration browser to communicate key value pairs.\r
 };\r
 \r
 extern EFI_GUID gEfiFormCallbackProtocolGuid;\r