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
\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
**/\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
**/\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
**/\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
@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
**/\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
**/\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
**/\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
**/\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