]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Include/Protocol/ManagedNetwork.h
Clarify the UEFI/EFI specification version in file header comments.
[mirror_edk2.git] / MdePkg / Include / Protocol / ManagedNetwork.h
index 040c363dc8d1a40b5f54b6b2518e2cc347321432..ca4970fca51b2b4952321bf89e51539c55965f61 100644 (file)
@@ -2,19 +2,22 @@
   EFI_MANAGED_NETWORK_SERVICE_BINDING_PROTOCOL as defined in UEFI 2.0.\r
   EFI_MANAGED_NETWORK_PROTOCOL as defined in UEFI 2.0.\r
 \r
-  Copyright (c) 2006, 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
+  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
+  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
 \r
-#ifndef _EFI_MANAGED_NETWORK_PROTOCOL_H\r
-#define _EFI_MANAGED_NETWORK_PROTOCOL_H\r
+#ifndef __EFI_MANAGED_NETWORK_PROTOCOL_H__\r
+#define __EFI_MANAGED_NETWORK_PROTOCOL_H__\r
 \r
 #include <Protocol/SimpleNetwork.h>\r
 \r
 \r
 #define EFI_MANAGED_NETWORK_PROTOCOL_GUID \\r
   { \\r
-    0x3b95aa31, 0x3793, 0x434b, {0x86, 0x67, 0xc8, 0x7, 0x8, 0x92, 0xe0, 0x5e } \\r
+    0x7ab33a91, 0xace5, 0x4326, { 0xb5, 0x72, 0xe7, 0xee, 0x33, 0xd3, 0x9f, 0x16 } \\r
   }\r
 \r
 typedef struct _EFI_MANAGED_NETWORK_PROTOCOL EFI_MANAGED_NETWORK_PROTOCOL;\r
 \r
 typedef struct {\r
+  ///\r
+  /// Timeout value for a UEFI one-shot timer event. A packet that has not been removed\r
+  /// from the MNP receive queue will be dropped if its receive timeout expires.\r
+  ///\r
   UINT32     ReceivedQueueTimeoutValue;\r
+  ///\r
+  /// Timeout value for a UEFI one-shot timer event. A packet that has not been removed\r
+  /// from the MNP transmit queue will be dropped if its receive timeout expires.\r
+  ///\r
   UINT32     TransmitQueueTimeoutValue;\r
+  ///\r
+  /// Ethernet type II 16-bit protocol type in host byte order. Valid\r
+  /// values are zero and 1,500 to 65,535.\r
+  ///\r
   UINT16     ProtocolTypeFilter;\r
+  ///\r
+  /// Set to TRUE to receive packets that are sent to the network\r
+  /// device MAC address. The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    EnableUnicastReceive;\r
+  ///\r
+  /// Set to TRUE to receive packets that are sent to any of the\r
+  /// active multicast groups. The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    EnableMulticastReceive;\r
+  ///\r
+  /// Set to TRUE to receive packets that are sent to the network\r
+  /// device broadcast address. The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    EnableBroadcastReceive;\r
+  ///\r
+  /// Set to TRUE to receive packets that are sent to any MAC address.\r
+  /// The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    EnablePromiscuousReceive;\r
+  ///\r
+  /// Set to TRUE to drop queued packets when the configuration\r
+  /// is changed. The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    FlushQueuesOnReset;\r
+  ///\r
+  /// Set to TRUE to timestamp all packets when they are received\r
+  /// by the MNP. Note that timestamps may be unsupported in some\r
+  /// MNP implementations. The startup default value is FALSE.\r
+  ///\r
   BOOLEAN    EnableReceiveTimestamps;\r
+  ///\r
+  /// Set to TRUE to disable background polling in this MNP\r
+  /// instance. Note that background polling may not be supported in\r
+  /// all MNP implementations. The startup default value is FALSE,\r
+  /// unless background polling is not supported.\r
+  ///\r
   BOOLEAN    DisableBackgroundPolling;\r
 } EFI_MANAGED_NETWORK_CONFIG_DATA;\r
 \r
@@ -77,10 +123,26 @@ typedef struct {
 \r
 \r
 typedef struct {\r
+  ///\r
+  /// This Event will be signaled after the Status field is updated\r
+  /// by the MNP. The type of Event must be\r
+  /// EFI_NOTIFY_SIGNAL. The Task Priority Level (TPL) of\r
+  /// Event must be lower than or equal to TPL_CALLBACK.\r
+  ///\r
   EFI_EVENT                             Event;\r
+  ///\r
+  /// The status that is returned to the caller at the end of the operation\r
+  /// to indicate whether this operation completed successfully.\r
+  ///\r
   EFI_STATUS                            Status;\r
   union {\r
+    ///\r
+    /// When this token is used for receiving, RxData is a pointer to the EFI_MANAGED_NETWORK_RECEIVE_DATA.\r
+    ///\r
     EFI_MANAGED_NETWORK_RECEIVE_DATA    *RxData;\r
+    ///\r
+    /// When this token is used for transmitting, TxData is a pointer to the EFI_MANAGED_NETWORK_TRANSMIT_DATA.\r
+    ///\r
     EFI_MANAGED_NETWORK_TRANSMIT_DATA   *TxData;\r
   } Packet;\r
 } EFI_MANAGED_NETWORK_COMPLETION_TOKEN;\r
@@ -102,12 +164,11 @@ typedef struct {
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_GET_MODE_DATA) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_GET_MODE_DATA)(\r
   IN  EFI_MANAGED_NETWORK_PROTOCOL     *This,\r
   OUT EFI_MANAGED_NETWORK_CONFIG_DATA  *MnpConfigData  OPTIONAL,\r
-  OUT EFI_SIMPLE_NETWORK_MODE          *SnpModeData    OPTIONAL \r
-  )\r
-;  \r
+  OUT EFI_SIMPLE_NETWORK_MODE          *SnpModeData    OPTIONAL\r
+  );\r
 \r
 /**\r
   Sets or clears the operational parameters for the MNP child driver.\r
@@ -130,12 +191,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_CONFIGURE) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_CONFIGURE)(\r
   IN EFI_MANAGED_NETWORK_PROTOCOL     *This,\r
-  IN EFI_MANAGED_NETWORK_CONFIG_DATA  *MnpConfigData  OPTIONAL \r
-  )\r
-;    \r
-    \r
+  IN EFI_MANAGED_NETWORK_CONFIG_DATA  *MnpConfigData  OPTIONAL\r
+  );\r
+\r
 /**\r
   Translates an IP multicast address to a hardware (MAC) multicast address.\r
 \r
@@ -159,13 +219,12 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_MCAST_IP_TO_MAC) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_MCAST_IP_TO_MAC)(\r
   IN  EFI_MANAGED_NETWORK_PROTOCOL  *This,\r
   IN  BOOLEAN                       Ipv6Flag,\r
   IN  EFI_IP_ADDRESS                *IpAddress,\r
-  OUT EFI_MAC_ADDRESS               *MacAddress \r
-  )\r
-;      \r
+  OUT EFI_MAC_ADDRESS               *MacAddress\r
+  );\r
 \r
 /**\r
   Enables and disables receive filters for multicast address.\r
@@ -183,20 +242,19 @@ EFI_STATUS
   @retval EFI_NOT_STARTED       This MNP child driver instance has not been configured.\r
   @retval EFI_ALREADY_STARTED   The supplied multicast group is already joined.\r
   @retval EFI_NOT_FOUND         The supplied multicast group is not joined.\r
-  @retval EFI_DEVICE_ERROR      An unexpected network or system error occurred.  \r
+  @retval EFI_DEVICE_ERROR      An unexpected network or system error occurred.\r
   @retval EFI_UNSUPPORTED       The requested feature is unsupported in this MNP implementation.\r
   @retval Other                 The requested operation could not be completed.\r
 \r
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_GROUPS) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_GROUPS)(\r
   IN EFI_MANAGED_NETWORK_PROTOCOL  *This,\r
   IN BOOLEAN                       JoinFlag,\r
-  IN EFI_MAC_ADDRESS               *MacAddress  OPTIONAL \r
-  )\r
-;      \r
-  \r
+  IN EFI_MAC_ADDRESS               *MacAddress  OPTIONAL\r
+  );\r
+\r
 /**\r
   Places asynchronous outgoing data packets into the transmit queue.\r
 \r
@@ -215,12 +273,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_TRANSMIT) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_TRANSMIT)(\r
   IN EFI_MANAGED_NETWORK_PROTOCOL          *This,\r
-  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token \r
-  )\r
-;      \r
-    \r
+  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token\r
+  );\r
+\r
 /**\r
   Places an asynchronous receiving request into the receiving queue.\r
 \r
@@ -242,12 +299,11 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_RECEIVE) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_RECEIVE)(\r
   IN EFI_MANAGED_NETWORK_PROTOCOL          *This,\r
-  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token \r
-  )\r
-;      \r
-   \r
+  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token\r
+  );\r
+\r
 \r
 /**\r
   Aborts an asynchronous transmit or receive request.\r
@@ -270,11 +326,10 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_CANCEL) (\r
+(EFIAPI *EFI_MANAGED_NETWORK_CANCEL)(\r
   IN EFI_MANAGED_NETWORK_PROTOCOL          *This,\r
-  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token  OPTIONAL \r
-  )\r
-;   \r
+  IN EFI_MANAGED_NETWORK_COMPLETION_TOKEN  *Token  OPTIONAL\r
+  );\r
 \r
 /**\r
   Polls for incoming data packets and processes outgoing data packets.\r
@@ -292,11 +347,14 @@ EFI_STATUS
 **/\r
 typedef\r
 EFI_STATUS\r
-(EFIAPI *EFI_MANAGED_NETWORK_POLL) (\r
-  IN EFI_MANAGED_NETWORK_PROTOCOL    *This \r
-  )\r
-;     \r
-\r
+(EFIAPI *EFI_MANAGED_NETWORK_POLL)(\r
+  IN EFI_MANAGED_NETWORK_PROTOCOL    *This\r
+  );\r
+\r
+///\r
+/// The MNP is used by network applications (and drivers) to \r
+/// perform raw (unformatted) asynchronous network packet I/O.\r
+///\r
 struct _EFI_MANAGED_NETWORK_PROTOCOL {\r
   EFI_MANAGED_NETWORK_GET_MODE_DATA       GetModeData;\r
   EFI_MANAGED_NETWORK_CONFIGURE           Configure;\r