]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/SimpleNetwork.h
Sync EDKII BaseTools to BaseTools project r1928
[mirror_edk2.git] / MdePkg / Include / Protocol / SimpleNetwork.h
index 4e6873389a219b0ed87e3781d698b3ace2defeea..92ac869aa4d98a8ee7a56ad30fba58b2d8bd6f01 100644 (file)
@@ -1,5 +1,6 @@
 /** @file\r
-  Simple Network protocol as defined in the UEFI 2.0 specification.\r
+  The EFI_SIMPLE_NETWORK_PROTOCOL provides services to initialize a network interface, \r
+  transmit packets, receive packets, and close a network interface.\r
 \r
   Basic network device abstraction.\r
 \r
@@ -8,14 +9,17 @@
   MCast - MultiCast\r
   ...\r
 \r
-  Copyright (c) 2006 - 2008, 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
   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
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.   \r
+\r
+  @par Revision Reference:          \r
+  This Protocol is introduced in EFI Specification 1.10          \r
 \r
 **/\r
 \r
@@ -119,6 +123,11 @@ typedef struct {
 \r
 } EFI_NETWORK_STATISTICS;\r
 \r
+///\r
+/// State of the network interface\r
+/// When an EFI_SIMPLE_NETWORK_PROTOCOL driver initializes a\r
+/// network interface, the network interface is left in the EfiSimpleNetworkStopped state.\r
+///\r
 typedef enum {\r
   EfiSimpleNetworkStopped,\r
   EfiSimpleNetworkStarted,\r
@@ -139,24 +148,84 @@ typedef enum {
 \r
 #define MAX_MCAST_FILTER_CNT                              16\r
 typedef struct {\r
+  ///\r
+  /// Reports the current state of the network interface.\r
+  ///\r
   UINT32          State;\r
+  ///\r
+  /// The size, in bytes, of the network interface's HW address.\r
+  ///\r
   UINT32          HwAddressSize;\r
+  ///\r
+  /// The size, in bytes, of the network interface's media header.\r
+  ///\r
   UINT32          MediaHeaderSize;\r
+  ///\r
+  /// The maximum size, in bytes, of the packets supported by the network interface.\r
+  ///\r
   UINT32          MaxPacketSize;\r
+  ///\r
+  /// The size, in bytes, of the NVRAM device attached to the network interface.\r
+  ///\r
   UINT32          NvRamSize;\r
+  ///\r
+  /// The size that must be used for all NVRAM reads and writes. The\r
+  /// start address for NVRAM read and write operations and the total\r
+  /// length of those operations, must be a multiple of this value. The\r
+  /// legal values for this field are 0, 1, 2, 4, and 8.\r
+  ///\r
   UINT32          NvRamAccessSize;\r
+  ///\r
+  /// The multicast receive filter settings supported by the network interface.\r
+  ///\r
   UINT32          ReceiveFilterMask;\r
+  ///\r
+  /// The current multicast receive filter settings.\r
+  ///\r
   UINT32          ReceiveFilterSetting;\r
+  ///\r
+  /// The maximum number of multicast address receive filters supported by the driver.\r
+  ///\r
   UINT32          MaxMCastFilterCount;\r
+  ///\r
+  /// The current number of multicast address receive filters.\r
+  ///\r
   UINT32          MCastFilterCount;\r
+  ///\r
+  /// Array containing the addresses of the current multicast address receive filters.\r
+  ///\r
   EFI_MAC_ADDRESS MCastFilter[MAX_MCAST_FILTER_CNT];\r
+  ///\r
+  /// The current HW MAC address for the network interface.\r
+  ///\r
   EFI_MAC_ADDRESS CurrentAddress;\r
+  ///\r
+  /// The current HW MAC address for broadcast packets.\r
+  ///\r
   EFI_MAC_ADDRESS BroadcastAddress;\r
+  ///\r
+  /// The permanent HW MAC address for the network interface.\r
+  ///\r
   EFI_MAC_ADDRESS PermanentAddress;\r
+  ///\r
+  /// The interface type of the network interface.\r
+  ///\r
   UINT8           IfType;\r
+  ///\r
+  /// TRUE if the HW MAC address can be changed.\r
+  ///\r
   BOOLEAN         MacAddressChangeable;\r
+  ///\r
+  /// TRUE if the network interface can transmit more than one packet at a time.\r
+  ///\r
   BOOLEAN         MultipleTxSupported;\r
+  ///\r
+  /// TRUE if the presence of media can be determined; otherwise FALSE.\r
+  ///\r
   BOOLEAN         MediaPresentSupported;\r
+  ///\r
+  /// TRUE if media are connected to the network interface; otherwise FALSE.\r
+  ///\r
   BOOLEAN         MediaPresent;\r
 } EFI_SIMPLE_NETWORK_MODE;\r
 \r
@@ -219,7 +288,7 @@ EFI_STATUS
   @retval EFI_SUCCESS           The network interface was initialized.\r
   @retval EFI_NOT_STARTED       The network interface has not been started\r
   @retval EFI_OUT_OF_RESOURCES  There was not enough memory for the transmit and\r
-                                receive buffers.   .\r
+                                receive buffers.\r
   @retval EFI_INVALID_PARAMETER One or more of the parameters has an unsupported value.\r
   @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
   @retval EFI_UNSUPPORTED       This function is not supported by the network interface.\r
@@ -552,13 +621,12 @@ EFI_STATUS
 // \r
 #define EFI_SIMPLE_NETWORK_INTERFACE_REVISION   EFI_SIMPLE_NETWORK_PROTOCOL_REVISION\r
 \r
-/**  \r
-  @par Protocol Description:\r
-  The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access \r
-  to a network adapter. Once the network adapter initializes, \r
-  the EFI_SIMPLE_NETWORK_PROTOCOL protocol provides services that \r
-  allow packets to be transmitted and received.\r
-**/\r
+///\r
+/// The EFI_SIMPLE_NETWORK_PROTOCOL protocol is used to initialize access \r
+/// to a network adapter. Once the network adapter initializes, \r
+/// the EFI_SIMPLE_NETWORK_PROTOCOL protocol provides services that \r
+/// allow packets to be transmitted and received.\r
+///\r
 struct _EFI_SIMPLE_NETWORK_PROTOCOL {\r
   ///\r
   /// Revision of the EFI_SIMPLE_NETWORK_PROTOCOL. All future revisions must \r
@@ -583,6 +651,9 @@ struct _EFI_SIMPLE_NETWORK_PROTOCOL {
   /// Event used with WaitForEvent() to wait for a packet to be received.\r
   ///\r
   EFI_EVENT                           WaitForPacket;\r
+  ///\r
+  /// Pointer to the EFI_SIMPLE_NETWORK_MODE data for the device.\r
+  ///\r
   EFI_SIMPLE_NETWORK_MODE             *Mode;\r
 };\r
 \r