/** @file\r
- The EFI_SIMPLE_NETWORK_PROTOCOL provides services to initialize a network interface, \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
MCast - MultiCast\r
...\r
\r
-Copyright (c) 2006 - 2016, 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
+Copyright (c) 2006 - 2018, Intel Corporation. All rights reserved.<BR>\r
+SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
- @par Revision Reference: \r
- This Protocol is introduced in EFI Specification 1.10. \r
+ @par Revision Reference:\r
+ This Protocol is introduced in EFI Specification 1.10.\r
\r
**/\r
\r
0xA19832B9, 0xAC25, 0x11D3, {0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D } \\r
}\r
\r
-typedef struct _EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL;\r
-\r
+typedef struct _EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK_PROTOCOL;\r
\r
///\r
/// Protocol defined in EFI1.1.\r
-/// \r
-typedef EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK;\r
+///\r
+typedef EFI_SIMPLE_NETWORK_PROTOCOL EFI_SIMPLE_NETWORK;\r
\r
///\r
/// Simple Network Protocol data structures.\r
/// Total number of frames received. Includes frames with errors and\r
/// dropped frames.\r
///\r
- UINT64 RxTotalFrames;\r
+ UINT64 RxTotalFrames;\r
\r
///\r
/// Number of valid frames received and copied into receive buffers.\r
///\r
- UINT64 RxGoodFrames;\r
+ UINT64 RxGoodFrames;\r
\r
///\r
/// Number of frames below the minimum length for the media.\r
/// This would be <64 for ethernet.\r
///\r
- UINT64 RxUndersizeFrames;\r
+ UINT64 RxUndersizeFrames;\r
\r
///\r
/// Number of frames longer than the maxminum length for the\r
/// media. This would be >1500 for ethernet.\r
///\r
- UINT64 RxOversizeFrames;\r
+ UINT64 RxOversizeFrames;\r
\r
///\r
/// Valid frames that were dropped because receive buffers were full.\r
///\r
- UINT64 RxDroppedFrames;\r
+ UINT64 RxDroppedFrames;\r
\r
///\r
/// Number of valid unicast frames received and not dropped.\r
///\r
- UINT64 RxUnicastFrames;\r
+ UINT64 RxUnicastFrames;\r
\r
///\r
/// Number of valid broadcast frames received and not dropped.\r
///\r
- UINT64 RxBroadcastFrames;\r
+ UINT64 RxBroadcastFrames;\r
\r
///\r
/// Number of valid mutlicast frames received and not dropped.\r
///\r
- UINT64 RxMulticastFrames;\r
+ UINT64 RxMulticastFrames;\r
\r
///\r
/// Number of frames w/ CRC or alignment errors.\r
///\r
- UINT64 RxCrcErrorFrames;\r
+ UINT64 RxCrcErrorFrames;\r
\r
///\r
/// Total number of bytes received. Includes frames with errors\r
/// and dropped frames.\r
//\r
- UINT64 RxTotalBytes;\r
+ UINT64 RxTotalBytes;\r
\r
///\r
/// Transmit statistics.\r
///\r
- UINT64 TxTotalFrames;\r
- UINT64 TxGoodFrames;\r
- UINT64 TxUndersizeFrames;\r
- UINT64 TxOversizeFrames;\r
- UINT64 TxDroppedFrames;\r
- UINT64 TxUnicastFrames;\r
- UINT64 TxBroadcastFrames;\r
- UINT64 TxMulticastFrames;\r
- UINT64 TxCrcErrorFrames;\r
- UINT64 TxTotalBytes;\r
+ UINT64 TxTotalFrames;\r
+ UINT64 TxGoodFrames;\r
+ UINT64 TxUndersizeFrames;\r
+ UINT64 TxOversizeFrames;\r
+ UINT64 TxDroppedFrames;\r
+ UINT64 TxUnicastFrames;\r
+ UINT64 TxBroadcastFrames;\r
+ UINT64 TxMulticastFrames;\r
+ UINT64 TxCrcErrorFrames;\r
+ UINT64 TxTotalBytes;\r
\r
///\r
/// Number of collisions detection on this subnet.\r
///\r
- UINT64 Collisions;\r
+ UINT64 Collisions;\r
\r
///\r
/// Number of frames destined for unsupported protocol.\r
///\r
- UINT64 UnsupportedProtocol;\r
+ UINT64 UnsupportedProtocol;\r
\r
///\r
/// Number of valid frames received that were duplicated.\r
///\r
- UINT64 RxDuplicatedFrames;\r
+ UINT64 RxDuplicatedFrames;\r
\r
///\r
/// Number of encrypted frames received that failed to decrypt.\r
///\r
- UINT64 RxDecryptErrorFrames;\r
+ UINT64 RxDecryptErrorFrames;\r
\r
///\r
/// Number of frames that failed to transmit after exceeding the retry limit.\r
///\r
- UINT64 TxErrorFrames;\r
+ UINT64 TxErrorFrames;\r
\r
///\r
/// Number of frames transmitted successfully after more than one attempt.\r
///\r
- UINT64 TxRetryFrames;\r
+ UINT64 TxRetryFrames;\r
} EFI_NETWORK_STATISTICS;\r
\r
///\r
#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS 0x08\r
#define EFI_SIMPLE_NETWORK_RECEIVE_PROMISCUOUS_MULTICAST 0x10\r
\r
-#define EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT 0x01\r
-#define EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT 0x02\r
-#define EFI_SIMPLE_NETWORK_COMMAND_INTERRUPT 0x04\r
-#define EFI_SIMPLE_NETWORK_SOFTWARE_INTERRUPT 0x08\r
+#define EFI_SIMPLE_NETWORK_RECEIVE_INTERRUPT 0x01\r
+#define EFI_SIMPLE_NETWORK_TRANSMIT_INTERRUPT 0x02\r
+#define EFI_SIMPLE_NETWORK_COMMAND_INTERRUPT 0x04\r
+#define EFI_SIMPLE_NETWORK_SOFTWARE_INTERRUPT 0x08\r
\r
-#define MAX_MCAST_FILTER_CNT 16\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
+ UINT32 State;\r
///\r
/// The size, in bytes, of the network interface's HW address.\r
///\r
- UINT32 HwAddressSize;\r
+ UINT32 HwAddressSize;\r
///\r
/// The size, in bytes, of the network interface's media header.\r
///\r
- UINT32 MediaHeaderSize;\r
+ UINT32 MediaHeaderSize;\r
///\r
/// The maximum size, in bytes, of the packets supported by the network interface.\r
///\r
- UINT32 MaxPacketSize;\r
+ UINT32 MaxPacketSize;\r
///\r
/// The size, in bytes, of the NVRAM device attached to the network interface.\r
///\r
- UINT32 NvRamSize;\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
+ UINT32 NvRamAccessSize;\r
///\r
/// The multicast receive filter settings supported by the network interface.\r
///\r
- UINT32 ReceiveFilterMask;\r
+ UINT32 ReceiveFilterMask;\r
///\r
/// The current multicast receive filter settings.\r
///\r
- UINT32 ReceiveFilterSetting;\r
+ UINT32 ReceiveFilterSetting;\r
///\r
/// The maximum number of multicast address receive filters supported by the driver.\r
///\r
- UINT32 MaxMCastFilterCount;\r
+ UINT32 MaxMCastFilterCount;\r
///\r
/// The current number of multicast address receive filters.\r
///\r
- UINT32 MCastFilterCount;\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
+ 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
+ EFI_MAC_ADDRESS CurrentAddress;\r
///\r
/// The current HW MAC address for broadcast packets.\r
///\r
- EFI_MAC_ADDRESS BroadcastAddress;\r
+ EFI_MAC_ADDRESS BroadcastAddress;\r
///\r
/// The permanent HW MAC address for the network interface.\r
///\r
- EFI_MAC_ADDRESS PermanentAddress;\r
+ EFI_MAC_ADDRESS PermanentAddress;\r
///\r
/// The interface type of the network interface.\r
///\r
- UINT8 IfType;\r
+ UINT8 IfType;\r
///\r
/// TRUE if the HW MAC address can be changed.\r
///\r
- BOOLEAN MacAddressChangeable;\r
+ BOOLEAN MacAddressChangeable;\r
///\r
/// TRUE if the network interface can transmit more than one packet at a time.\r
///\r
- BOOLEAN MultipleTxSupported;\r
+ BOOLEAN MultipleTxSupported;\r
///\r
/// TRUE if the presence of media can be determined; otherwise FALSE.\r
///\r
- BOOLEAN MediaPresentSupported;\r
+ BOOLEAN MediaPresentSupported;\r
///\r
/// TRUE if media are connected to the network interface; otherwise FALSE.\r
///\r
- BOOLEAN MediaPresent;\r
+ BOOLEAN MediaPresent;\r
} EFI_SIMPLE_NETWORK_MODE;\r
\r
//\r
// Protocol Member Functions\r
//\r
+\r
/**\r
Changes the state of a network interface from "stopped" to "started".\r
\r
);\r
\r
/**\r
- Resets a network adapter and allocates the transmit and receive buffers \r
- required by the network interface; optionally, also requests allocation \r
+ Resets a network adapter and allocates the transmit and receive buffers\r
+ required by the network interface; optionally, also requests allocation\r
of additional transmit and receive buffers.\r
\r
@param This The protocol instance pointer.\r
);\r
\r
/**\r
- Resets a network adapter and re-initializes it with the parameters that were \r
- provided in the previous call to Initialize(). \r
+ Resets a network adapter and re-initializes it with the parameters that were\r
+ provided in the previous call to Initialize().\r
\r
@param This The protocol instance pointer.\r
@param ExtendedVerification Indicates that the driver may perform a more\r
);\r
\r
/**\r
- Resets a network adapter and leaves it in a state that is safe for \r
+ Resets a network adapter and leaves it in a state that is safe for\r
another driver to initialize.\r
\r
@param This Protocol instance pointer.\r
);\r
\r
/**\r
- Performs read and write operations on the NVRAM device attached to a \r
+ Performs read and write operations on the NVRAM device attached to a\r
network interface.\r
\r
@param This The protocol instance pointer.\r
);\r
\r
/**\r
- Reads the current interrupt status and recycled transmit buffer status from \r
+ Reads the current interrupt status and recycled transmit buffer status from\r
a network interface.\r
\r
@param This The protocol instance pointer.\r
\r
@retval EFI_SUCCESS The packet was placed on the transmit queue.\r
@retval EFI_NOT_STARTED The network interface has not been started.\r
- @retval EFI_NOT_READY The network interface is too busy to accept this transmit request. \r
+ @retval EFI_NOT_READY The network interface is too busy to accept this transmit request.\r
@retval EFI_BUFFER_TOO_SMALL The BufferSize parameter is too small.\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
\r
//\r
// Revision defined in EFI1.1\r
-// \r
-#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION EFI_SIMPLE_NETWORK_PROTOCOL_REVISION\r
+//\r
+#define EFI_SIMPLE_NETWORK_INTERFACE_REVISION EFI_SIMPLE_NETWORK_PROTOCOL_REVISION\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
+/// 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
- /// be backwards compatible. If a future version is not backwards compatible \r
+ /// Revision of the EFI_SIMPLE_NETWORK_PROTOCOL. All future revisions must\r
+ /// be backwards compatible. If a future version is not backwards compatible\r
/// it is not the same GUID.\r
///\r
- UINT64 Revision;\r
- EFI_SIMPLE_NETWORK_START Start;\r
- EFI_SIMPLE_NETWORK_STOP Stop;\r
- EFI_SIMPLE_NETWORK_INITIALIZE Initialize;\r
- EFI_SIMPLE_NETWORK_RESET Reset;\r
- EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown;\r
- EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters;\r
- EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress;\r
- EFI_SIMPLE_NETWORK_STATISTICS Statistics;\r
- EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac;\r
- EFI_SIMPLE_NETWORK_NVDATA NvData;\r
- EFI_SIMPLE_NETWORK_GET_STATUS GetStatus;\r
- EFI_SIMPLE_NETWORK_TRANSMIT Transmit;\r
- EFI_SIMPLE_NETWORK_RECEIVE Receive;\r
+ UINT64 Revision;\r
+ EFI_SIMPLE_NETWORK_START Start;\r
+ EFI_SIMPLE_NETWORK_STOP Stop;\r
+ EFI_SIMPLE_NETWORK_INITIALIZE Initialize;\r
+ EFI_SIMPLE_NETWORK_RESET Reset;\r
+ EFI_SIMPLE_NETWORK_SHUTDOWN Shutdown;\r
+ EFI_SIMPLE_NETWORK_RECEIVE_FILTERS ReceiveFilters;\r
+ EFI_SIMPLE_NETWORK_STATION_ADDRESS StationAddress;\r
+ EFI_SIMPLE_NETWORK_STATISTICS Statistics;\r
+ EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC MCastIpToMac;\r
+ EFI_SIMPLE_NETWORK_NVDATA NvData;\r
+ EFI_SIMPLE_NETWORK_GET_STATUS GetStatus;\r
+ EFI_SIMPLE_NETWORK_TRANSMIT Transmit;\r
+ EFI_SIMPLE_NETWORK_RECEIVE Receive;\r
///\r
/// Event used with WaitForEvent() to wait for a packet to be received.\r
///\r
- EFI_EVENT WaitForPacket;\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
+ EFI_SIMPLE_NETWORK_MODE *Mode;\r
};\r
\r
-extern EFI_GUID gEfiSimpleNetworkProtocolGuid;\r
+extern EFI_GUID gEfiSimpleNetworkProtocolGuid;\r
\r
#endif\r