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