+++ /dev/null
-/** @file\r
- Simple Network protocol as defined in the EFI 1.0 specification.\r
-\r
- Basic network device abstraction.\r
-\r
- Rx - Received\r
- Tx - Transmit\r
- MCast - MultiCast\r
- ...\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
-\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
- Module Name: SimpleNetwork.h\r
-\r
-**/\r
-\r
-#ifndef __SIMPLE_NETWORK_H__\r
-#define __SIMPLE_NETWORK_H__\r
-\r
-#define EFI_SIMPLE_NETWORK_PROTOCOL_GUID \\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
-//\r
-// Simple Network Protocol data structures\r
-//\r
-typedef struct {\r
- //\r
- // Total number of frames received. Includes frames with errors and\r
- // dropped frames.\r
- //\r
- UINT64 RxTotalFrames;\r
-\r
- //\r
- // Number of valid frames received and copied into receive buffers.\r
- //\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
-\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
-\r
- //\r
- // Valid frames that were dropped because receive buffers were full.\r
- //\r
- UINT64 RxDroppedFrames;\r
-\r
- //\r
- // Number of valid unicast frames received and not dropped.\r
- //\r
- UINT64 RxUnicastFrames;\r
-\r
- //\r
- // Number of valid broadcast frames received and not dropped.\r
- //\r
- UINT64 RxBroadcastFrames;\r
-\r
- //\r
- // Number of valid mutlicast frames received and not dropped.\r
- //\r
- UINT64 RxMulticastFrames;\r
-\r
- //\r
- // Number of frames w/ CRC or alignment errors.\r
- //\r
- UINT64 RxCrcErrorFrames;\r
-\r
- //\r
- // Total number of bytes received. Includes frames with errors\r
- // and dropped frames.\r
- //\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
-\r
- //\r
- // Number of collisions detection on this subnet.\r
- //\r
- UINT64 Collisions;\r
-\r
- //\r
- // Number of frames destined for unsupported protocol.\r
- //\r
- UINT64 UnsupportedProtocol;\r
-\r
-} EFI_NETWORK_STATISTICS;\r
-\r
-typedef enum {\r
- EfiSimpleNetworkStopped,\r
- EfiSimpleNetworkStarted,\r
- EfiSimpleNetworkInitialized,\r
- EfiSimpleNetworkMaxState\r
-} EFI_SIMPLE_NETWORK_STATE;\r
-\r
-#define EFI_SIMPLE_NETWORK_RECEIVE_UNICAST 0x01\r
-#define EFI_SIMPLE_NETWORK_RECEIVE_MULTICAST 0x02\r
-#define EFI_SIMPLE_NETWORK_RECEIVE_BROADCAST 0x04\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
-\r
-#define MAX_MCAST_FILTER_CNT 16\r
-typedef struct {\r
- UINT32 State;\r
- UINT32 HwAddressSize;\r
- UINT32 MediaHeaderSize;\r
- UINT32 MaxPacketSize;\r
- UINT32 NvRamSize;\r
- UINT32 NvRamAccessSize;\r
- UINT32 ReceiveFilterMask;\r
- UINT32 ReceiveFilterSetting;\r
- UINT32 MaxMCastFilterCount;\r
- UINT32 MCastFilterCount;\r
- EFI_MAC_ADDRESS MCastFilter[MAX_MCAST_FILTER_CNT];\r
- EFI_MAC_ADDRESS CurrentAddress;\r
- EFI_MAC_ADDRESS BroadcastAddress;\r
- EFI_MAC_ADDRESS PermanentAddress;\r
- UINT8 IfType;\r
- BOOLEAN MacAddressChangeable;\r
- BOOLEAN MultipleTxSupported;\r
- BOOLEAN MediaPresentSupported;\r
- BOOLEAN MediaPresent;\r
-} EFI_SIMPLE_NETWORK_MODE;\r
-\r
-//\r
-// Protocol Member Functions\r
-//\r
-/**\r
- Changes the state of a network interface from "stopped" to "started".\r
-\r
- @param This Protocol instance pointer.\r
-\r
- @retval EFI_SUCCESS The network interface was started.\r
- @retval EFI_ALREADY_STARTED The network interface is already in the started state.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_START) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This\r
- )\r
-;\r
-\r
-/**\r
- Changes the state of a network interface from "started" to "stopped".\r
-\r
- @param This Protocol instance pointer.\r
-\r
- @retval EFI_SUCCESS The network interface was stopped.\r
- @retval EFI_ALREADY_STARTED The network interface is already in the stopped state.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_STOP) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This\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
- of additional transmit and receive buffers.\r
-\r
- @param This Protocol instance pointer.\r
- @param ExtraRxBufferSize The size, in bytes, of the extra receive buffer space\r
- that the driver should allocate for the network interface.\r
- Some network interfaces will not be able to use the extra\r
- buffer, and the caller will not know if it is actually\r
- being used.\r
- @param ExtraTxBufferSize The size, in bytes, of the extra transmit buffer space\r
- that the driver should allocate for the network interface.\r
- Some network interfaces will not be able to use the extra\r
- buffer, and the caller will not know if it is actually\r
- being used.\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
- @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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_INITIALIZE) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN UINTN ExtraRxBufferSize OPTIONAL,\r
- IN UINTN ExtraTxBufferSize OPTIONAL\r
- )\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
-\r
- @param This Protocol instance pointer.\r
- @param ExtendedVerification Indicates that the driver may perform a more\r
- exhaustive verification operation of the device\r
- during reset.\r
-\r
- @retval EFI_SUCCESS The network interface was reset.\r
- @retval EFI_NOT_STARTED The network interface has not been started\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_RESET) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN BOOLEAN ExtendedVerification\r
- )\r
-;\r
-\r
-/**\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
- @retval EFI_SUCCESS The network interface was shutdown.\r
- @retval EFI_NOT_STARTED The network interface has not been started\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_SHUTDOWN) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This\r
- )\r
-;\r
-\r
-/**\r
- Manages the multicast receive filters of a network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param Enable A bit mask of receive filters to enable on the network interface.\r
- @param Disable A bit mask of receive filters to disable on the network interface.\r
- @param ResetMCastFilter Set to TRUE to reset the contents of the multicast receive\r
- filters on the network interface to their default values.\r
- @param McastFilterCnt Number of multicast HW MAC addresses in the new\r
- MCastFilter list. This value must be less than or equal to\r
- the MCastFilterCnt field of EFI_SIMPLE_NETWORK_MODE. This\r
- field is optional if ResetMCastFilter is TRUE.\r
- @param MCastFilter A pointer to a list of new multicast receive filter HW MAC\r
- addresses. This list will replace any existing multicast\r
- HW MAC address list. This field is optional if\r
- ResetMCastFilter is TRUE.\r
-\r
- @retval EFI_SUCCESS The multicast receive filter list was updated.\r
- @retval EFI_NOT_STARTED The network interface has not been started\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE_FILTERS) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN UINT32 Enable,\r
- IN UINT32 Disable,\r
- IN BOOLEAN ResetMCastFilter,\r
- IN UINTN MCastFilterCnt OPTIONAL,\r
- IN EFI_MAC_ADDRESS *MCastFilter OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- Modifies or resets the current station address, if supported.\r
-\r
- @param This Protocol instance pointer.\r
- @param Reset Flag used to reset the station address to the network interfaces\r
- permanent address.\r
- @param New New station address to be used for the network interface.\r
-\r
- @retval EFI_SUCCESS The network interfaces station address was updated.\r
- @retval EFI_NOT_STARTED The network interface has not been started\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_STATION_ADDRESS) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN BOOLEAN Reset,\r
- IN EFI_MAC_ADDRESS *New OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- Resets or collects the statistics on a network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param Reset Set to TRUE to reset the statistics for the network interface.\r
- @param StatisticsSize On input the size, in bytes, of StatisticsTable. On\r
- output the size, in bytes, of the resulting table of\r
- statistics.\r
- @param StatisticsTable A pointer to the EFI_NETWORK_STATISTICS structure that\r
- contains the statistics.\r
-\r
- @retval EFI_SUCCESS The statistics were collected from the network interface.\r
- @retval EFI_NOT_STARTED The network interface has not been started.\r
- @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer\r
- size needed to hold the statistics is returned in\r
- StatisticsSize.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_STATISTICS) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN BOOLEAN Reset,\r
- IN OUT UINTN *StatisticsSize OPTIONAL,\r
- OUT EFI_NETWORK_STATISTICS *StatisticsTable OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- Converts a multicast IP address to a multicast HW MAC address.\r
-\r
- @param This Protocol instance pointer.\r
- @param IPv6 Set to TRUE if the multicast IP address is IPv6 [RFC 2460]. Set\r
- to FALSE if the multicast IP address is IPv4 [RFC 791].\r
- @param IP The multicast IP address that is to be converted to a multicast\r
- HW MAC address.\r
- @param MAC The multicast HW MAC address that is to be generated from IP.\r
-\r
- @retval EFI_SUCCESS The multicast IP address was mapped to the multicast\r
- HW MAC address.\r
- @retval EFI_NOT_STARTED The network interface has not been started.\r
- @retval EFI_BUFFER_TOO_SMALL The Statistics buffer was too small. The current buffer\r
- size needed to hold the statistics is returned in\r
- StatisticsSize.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_MCAST_IP_TO_MAC) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN BOOLEAN IPv6,\r
- IN EFI_IP_ADDRESS *IP,\r
- OUT EFI_MAC_ADDRESS *MAC\r
- )\r
-;\r
-\r
-/**\r
- Performs read and write operations on the NVRAM device attached to a \r
- network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param ReadWrite TRUE for read operations, FALSE for write operations.\r
- @param Offset Byte offset in the NVRAM device at which to start the read or\r
- write operation. This must be a multiple of NvRamAccessSize and\r
- less than NvRamSize.\r
- @param BufferSize The number of bytes to read or write from the NVRAM device.\r
- This must also be a multiple of NvramAccessSize.\r
- @param Buffer A pointer to the data buffer.\r
-\r
- @retval EFI_SUCCESS The NVRAM access was performed.\r
- @retval EFI_NOT_STARTED The network interface has not been started.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_NVDATA) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN BOOLEAN ReadWrite,\r
- IN UINTN Offset,\r
- IN UINTN BufferSize,\r
- IN OUT VOID *Buffer\r
- )\r
-;\r
-\r
-/**\r
- Reads the current interrupt status and recycled transmit buffer status from \r
- a network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param InterruptStatus A pointer to the bit mask of the currently active interrupts\r
- If this is NULL, the interrupt status will not be read from\r
- the device. If this is not NULL, the interrupt status will\r
- be read from the device. When the interrupt status is read,\r
- it will also be cleared. Clearing the transmit interrupt\r
- does not empty the recycled transmit buffer array.\r
- @param TxBuf Recycled transmit buffer address. The network interface will\r
- not transmit if its internal recycled transmit buffer array\r
- is full. Reading the transmit buffer does not clear the\r
- transmit interrupt. If this is NULL, then the transmit buffer\r
- status will not be read. If there are no transmit buffers to\r
- recycle and TxBuf is not NULL, * TxBuf will be set to NULL.\r
-\r
- @retval EFI_SUCCESS The status of the network interface was retrieved.\r
- @retval EFI_NOT_STARTED The network interface has not been started.\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
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_GET_STATUS) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- OUT UINT32 *InterruptStatus OPTIONAL,\r
- OUT VOID **TxBuf OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- Places a packet in the transmit queue of a network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param HeaderSize The size, in bytes, of the media header to be filled in by\r
- the Transmit() function. If HeaderSize is non-zero, then it\r
- must be equal to This->Mode->MediaHeaderSize and the DestAddr\r
- and Protocol parameters must not be NULL.\r
- @param BufferSize The size, in bytes, of the entire packet (media header and\r
- data) to be transmitted through the network interface.\r
- @param Buffer A pointer to the packet (media header followed by data) to be\r
- transmitted. This parameter cannot be NULL. If HeaderSize is zero,\r
- then the media header in Buffer must already be filled in by the\r
- caller. If HeaderSize is non-zero, then the media header will be\r
- filled in by the Transmit() function.\r
- @param SrcAddr The source HW MAC address. If HeaderSize is zero, then this parameter\r
- is ignored. If HeaderSize is non-zero and SrcAddr is NULL, then\r
- This->Mode->CurrentAddress is used for the source HW MAC address.\r
- @param DsetAddr The destination HW MAC address. If HeaderSize is zero, then this\r
- parameter is ignored.\r
- @param Protocol The type of header to build. If HeaderSize is zero, then this\r
- parameter is ignored. See RFC 1700, section "Ether Types", for\r
- examples.\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_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
- @retval EFI_UNSUPPORTED This function is not supported by the network interface.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_TRANSMIT) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- IN UINTN HeaderSize,\r
- IN UINTN BufferSize,\r
- IN VOID *Buffer,\r
- IN EFI_MAC_ADDRESS *SrcAddr OPTIONAL,\r
- IN EFI_MAC_ADDRESS *DestAddr OPTIONAL,\r
- IN UINT16 *Protocol OPTIONAL\r
- )\r
-;\r
-\r
-/**\r
- Receives a packet from a network interface.\r
-\r
- @param This Protocol instance pointer.\r
- @param HeaderSize The size, in bytes, of the media header received on the network\r
- interface. If this parameter is NULL, then the media header size\r
- will not be returned.\r
- @param BufferSize On entry, the size, in bytes, of Buffer. On exit, the size, in\r
- bytes, of the packet that was received on the network interface.\r
- @param Buffer A pointer to the data buffer to receive both the media header and\r
- the data.\r
- @param SrcAddr The source HW MAC address. If this parameter is NULL, the\r
- HW MAC source address will not be extracted from the media\r
- header.\r
- @param DsetAddr The destination HW MAC address. If this parameter is NULL,\r
- the HW MAC destination address will not be extracted from the\r
- media header.\r
- @param Protocol The media header type. If this parameter is NULL, then the\r
- protocol will not be extracted from the media header. See\r
- RFC 1700 section "Ether Types" for examples.\r
-\r
- @retval EFI_SUCCESS The received data was stored in Buffer, and BufferSize has\r
- been updated to the number of bytes received.\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\r
- 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
- @retval EFI_UNSUPPORTED This function is not supported by the network interface.\r
-\r
-**/\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_RECEIVE) (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL *This,\r
- OUT UINTN *HeaderSize OPTIONAL,\r
- IN OUT UINTN *BufferSize,\r
- OUT VOID *Buffer,\r
- OUT EFI_MAC_ADDRESS *SrcAddr OPTIONAL,\r
- OUT EFI_MAC_ADDRESS *DestAddr OPTIONAL,\r
- OUT UINT16 *Protocol OPTIONAL\r
- )\r
-;\r
-\r
-#define EFI_SIMPLE_NETWORK_PROTOCOL_REVISION 0x00010000\r
-\r
-struct _EFI_SIMPLE_NETWORK_PROTOCOL {\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
- EFI_EVENT WaitForPacket;\r
- EFI_SIMPLE_NETWORK_MODE *Mode;\r
-};\r
-\r
-extern EFI_GUID gEfiSimpleNetworkProtocolGuid;\r
-\r
-#endif\r