]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/Ip4Config.h
MdePkg: Add definition for new warning code EFI_WARN_FILE_SYSTEM.
[mirror_edk2.git] / MdePkg / Include / Protocol / Ip4Config.h
index 4dfe98b4c8699d5b17841c2c55955629a02c55da..1c91d2f702cefee755b9df2fd81faf68ca0a9e26 100644 (file)
@@ -1,16 +1,18 @@
 /** @file\r
-\r
   This file provides a definition of the EFI IPv4 Configuration\r
   Protocol.\r
 \r
-  Copyright (c) 2006 - 2008, 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 - 2014, Intel Corporation. All rights reserved.<BR>\r
+This program and the accompanying materials are licensed and made available under \r
+the terms and conditions of the BSD License that accompanies this distribution.  \r
+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
+  \r
+  @par Revision Reference:          \r
+  This Protocol is introduced in UEFI Specification 2.0.\r
 \r
 **/\r
 #ifndef __EFI_IP4CONFIG_PROTOCOL_H__\r
 typedef struct _EFI_IP4_CONFIG_PROTOCOL EFI_IP4_CONFIG_PROTOCOL;\r
 \r
 #define IP4_CONFIG_VARIABLE_ATTRIBUTES \\r
-        (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS | \\r
-         EFI_VARIABLE_RUNTIME_ACCESS)\r
-\r
+        (EFI_VARIABLE_NON_VOLATILE | EFI_VARIABLE_BOOTSERVICE_ACCESS)\r
+\r
+///\r
+/// EFI_IP4_IPCONFIG_DATA contains the minimum IPv4 configuration data \r
+/// that is needed to start basic network communication. The StationAddress \r
+/// and SubnetMask must be a valid unicast IP address and subnet mask.\r
+/// If RouteTableSize is not zero, then RouteTable contains a properly \r
+/// formatted routing table for the StationAddress/SubnetMask, with the \r
+/// last entry in the table being the default route.\r
+///\r
 typedef struct {\r
+  ///\r
+  /// Default station IP address, stored in network byte order.\r
+  ///\r
   EFI_IPv4_ADDRESS             StationAddress;\r
+  ///\r
+  /// Default subnet mask, stored in network byte order.\r
+  ///\r
   EFI_IPv4_ADDRESS             SubnetMask;\r
+  ///\r
+  /// Number of entries in the following RouteTable. May be zero.\r
+  ///\r
   UINT32                       RouteTableSize;\r
-  EFI_IP4_ROUTE_TABLE          *RouteTable;    //OPTIONAL\r
+  ///\r
+  /// Default routing table data (stored in network byte order).\r
+  /// Ignored if RouteTableSize is zero.\r
+  ///\r
+  EFI_IP4_ROUTE_TABLE          *RouteTable;\r
 } EFI_IP4_IPCONFIG_DATA;\r
 \r
 \r
 /**\r
   Starts running the configuration policy for the EFI IPv4 Protocol driver.\r
-\r
-  @param  This          Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
-  @param  DoneEvent     Event that will be signaled when the EFI IPv4 Protocol driver\r
-                        configuration policy completes execution. This event must be of\r
-                        type EVT_NOTIFY_SIGNAL.\r
-  @param  ReconfigEvent Event that will be signaled when the EFI IPv4 Protocol driver\r
-                        configuration needs to be updated. This event must be of type\r
-                        EVT_NOTIFY_SIGNAL.\r
-\r
-  @retval EFI_SUCCESS           The configuration policy for the EFI IPv4 Protocol driver is now\r
-                                running.\r
-  @retval EFI_INVALID_PARAMETER This, DoneEvent, or ReconfigEvent is NULL.\r
-  @retval EFI_OUT_OF_RESOURCES  Required system resources could not be allocated.\r
-  @retval EFI_ALREADY_STARTED   The configuration policy for the EFI IPv4 Protocol driver was\r
-                                already started.\r
-  @retval EFI_DEVICE_ERROR      An unexpected system error or network error occurred.\r
-  @retval EFI_UNSUPPORTED       This interface does not support the EFI IPv4 Protocol driver\r
-                                 configuration.\r
+  \r
+  The Start() function is called to determine and to begin the platform \r
+  configuration policy by the EFI IPv4 Protocol driver. This determination may \r
+  be as simple as returning EFI_UNSUPPORTED if there is no EFI IPv4 Protocol \r
+  driver configuration policy. It may be as involved as loading some defaults \r
+  from nonvolatile storage, downloading dynamic data from a DHCP server, and \r
+  checking permissions with a site policy server.\r
+  Starting the configuration policy is just the beginning. It may finish almost \r
+  instantly or it may take several minutes before it fails to retrieve configuration \r
+  information from one or more servers. Once the policy is started, drivers \r
+  should use the DoneEvent parameter to determine when the configuration policy \r
+  has completed. EFI_IP4_CONFIG_PROTOCOL.GetData() must then be called to \r
+  determine if the configuration succeeded or failed.\r
+  Until the configuration completes successfully, EFI IPv4 Protocol driver instances \r
+  that are attempting to use default configurations must return EFI_NO_MAPPING.\r
+  Once the configuration is complete, the EFI IPv4 Configuration Protocol driver \r
+  signals DoneEvent. The configuration may need to be updated in the future. \r
+  Note that in this case the EFI IPv4 Configuration Protocol driver must signal \r
+  ReconfigEvent, and all EFI IPv4 Protocol driver instances that are using default \r
+  configurations must return EFI_NO_MAPPING until the configuration policy has \r
+  been rerun.\r
+\r
+  @param  This                   The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
+  @param  DoneEvent              Event that will be signaled when the EFI IPv4 \r
+                                 Protocol driver configuration policy completes \r
+                                 execution. This event must be of type EVT_NOTIFY_SIGNAL.\r
+  @param  ReconfigEvent          Event that will be signaled when the EFI IPv4 \r
+                                 Protocol driver configuration needs to be updated. \r
+                                 This event must be of type EVT_NOTIFY_SIGNAL.\r
+  \r
+  @retval EFI_SUCCESS            The configuration policy for the EFI IPv4 Protocol \r
+                                 driver is now running.\r
+  @retval EFI_INVALID_PARAMETER  One or more of the following parameters is NULL:\r
+                                  This\r
+                                  DoneEvent\r
+                                  ReconfigEvent\r
+  @retval EFI_OUT_OF_RESOURCES   Required system resources could not be allocated.\r
+  @retval EFI_ALREADY_STARTED    The configuration policy for the EFI IPv4 Protocol \r
+                                 driver was already started.\r
+  @retval EFI_DEVICE_ERROR       An unexpected system error or network error occurred.\r
+  @retval EFI_UNSUPPORTED        This interface does not support the EFI IPv4 Protocol \r
+                                 driver configuration.\r
 \r
 **/\r
 typedef\r
@@ -69,13 +115,18 @@ EFI_STATUS
 \r
 /**\r
   Stops running the configuration policy for the EFI IPv4 Protocol driver.\r
-\r
-  @param  This Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
-\r
-  @retval EFI_SUCCESS           The configuration policy for the EFI IPv4 Protocol driver has been stopped.\r
-  @retval EFI_INVALID_PARAMETER This is NULL.\r
-  @retval EFI_NOT_STARTED       The configuration policy for the EFI IPv4 Protocol driver was not started.\r
-\r
+  \r
+  The Stop() function stops the configuration policy for the EFI IPv4 Protocol driver. \r
+  All configuration data will be lost after calling Stop().\r
+\r
+  @param  This                   The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
+\r
+  @retval EFI_SUCCESS            The configuration policy for the EFI IPv4 Protocol \r
+                                 driver has been stopped.\r
+  @retval EFI_INVALID_PARAMETER  This is NULL.\r
+  @retval EFI_NOT_STARTED        The configuration policy for the EFI IPv4 Protocol \r
+                                 driver was not started.\r
+  \r
 **/\r
 typedef\r
 EFI_STATUS\r
@@ -86,20 +137,26 @@ EFI_STATUS
 /**\r
   Returns the default configuration data (if any) for the EFI IPv4 Protocol driver.\r
 \r
-  @param  This             Pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
-  @param  IpConfigDataSize On input, the size of the IpConfigData buffer.\r
-                           On output, the count of bytes that were written into the IpConfigData buffer.\r
-  @param  IpConfigData     Pointer to the EFI IPv4 Configuration Protocol driver\r
-                           configuration data structure.\r
-\r
-  @retval EFI_SUCCESS           The EFI IPv4 Protocol driver configuration has been returned.\r
-  @retval EFI_INVALID_PARAMETER This is NULL.\r
-  @retval EFI_NOT_STARTED       The configuration policy for the EFI IPv4 Protocol driver is not\r
-                                running.\r
-  @retval EFI_NOT_READY         EFI IPv4 Protocol driver configuration is still running.\r
-  @retval EFI_ABORTED           EFI IPv4 Protocol driver configuration could not complete.\r
-  @retval EFI_BUFFER_TOO_SMALL  *IpConfigDataSize is smaller than the configuration data\r
-                                buffer or IpConfigData is NULL.\r
+  The GetData() function returns the current configuration data for the EFI IPv4 \r
+  Protocol driver after the configuration policy has completed.\r
+  \r
+  @param  This                   The pointer to the EFI_IP4_CONFIG_PROTOCOL instance.\r
+  @param  IpConfigDataSize       On input, the size of the IpConfigData buffer. \r
+                                 On output, the count of bytes that were written \r
+                                 into the IpConfigData buffer.\r
+  @param  IpConfigData           The pointer to the EFI IPv4 Configuration Protocol \r
+                                 driver configuration data structure. \r
+                                 Type EFI_IP4_IPCONFIG_DATA is defined in \r
+                                 "Related Definitions" below.\r
+\r
+  @retval EFI_SUCCESS            The EFI IPv4 Protocol driver configuration has been returned.\r
+  @retval EFI_INVALID_PARAMETER  This is NULL.\r
+  @retval EFI_NOT_STARTED        The configuration policy for the EFI IPv4 Protocol \r
+                                 driver is not running.\r
+  @retval EFI_NOT_READY EFI      IPv4 Protocol driver configuration is still running.\r
+  @retval EFI_ABORTED EFI        IPv4 Protocol driver configuration could not complete.\r
+  @retval EFI_BUFFER_TOO_SMALL   *IpConfigDataSize is smaller than the configuration \r
+                                 data buffer or IpConfigData is NULL.\r
 \r
 **/\r
 typedef\r
@@ -110,11 +167,10 @@ EFI_STATUS
   OUT EFI_IP4_IPCONFIG_DATA    *IpConfigData    OPTIONAL\r
   );\r
 \r
-/**  \r
-  @par Protocol Description:\r
-  The EFI_IP4_CONFIG_PROTOCOL driver performs platform- and policy-dependent \r
-  configuration for the EFI IPv4 Protocol driver. \r
-**/\r
+///\r
+/// The EFI_IP4_CONFIG_PROTOCOL driver performs platform-dependent and policy-dependent \r
+/// configurations for the EFI IPv4 Protocol driver. \r
+///\r
 struct _EFI_IP4_CONFIG_PROTOCOL {\r
   EFI_IP4_CONFIG_START         Start;\r
   EFI_IP4_CONFIG_STOP          Stop;\r