]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkCompatibilityPkg/Foundation/Efi/Protocol/SimpleNetwork/SimpleNetwork.h
EdkCompatibilityPkg: Remove EdkCompatibilityPkg
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / SimpleNetwork / SimpleNetwork.h
diff --git a/EdkCompatibilityPkg/Foundation/Efi/Protocol/SimpleNetwork/SimpleNetwork.h b/EdkCompatibilityPkg/Foundation/Efi/Protocol/SimpleNetwork/SimpleNetwork.h
deleted file mode 100644 (file)
index 4ae8361..0000000
+++ /dev/null
@@ -1,639 +0,0 @@
-/*++\r
-\r
-Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>\r
-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:\r
-\r
-  SimpleNetwork.h\r
-\r
-Abstract:\r
-\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
---*/\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
-EFI_FORWARD_DECLARATION (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
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_START) (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL  * This\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Changes the state of a network interface from "stopped" to "started".\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.\r
-\r
-  Returns:\r
-    EFI_SUCCESS - The network interface was started.\r
-    EFI_ALREADY_STARTED   - The network interface is already in the started state.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_STOP) (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL  * This\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-    Changes the state of a network interface from "started" to "stopped".\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.\r
-\r
-  Returns:\r
-    EFI_SUCCESS - The network interface was stopped.\r
-    EFI_ALREADY_STARTED   - The network interface is already in the stopped state.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\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
-  Arguments:\r
-    This - Protocol instance pointer.\r
-    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
-    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
-  Returns:\r
-    EFI_SUCCESS     - The network interface was initialized.\r
-    EFI_NOT_STARTED - The network interface has not been started\r
-    EFI_OUT_OF_RESOURCES  - There was not enough memory for the transmit and \r
-                             receive buffers.   .\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-   Resets a network adapter and re-initializes it with the parameters that were \r
-   provided in the previous call to Initialize().  \r
-\r
-  Arguments:\r
-    This                 - Protocol instance pointer.\r
-    ExtendedVerification - Indicates that the driver may perform a more \r
-                           exhaustive verification operation of the device\r
-                           during reset.\r
-                        \r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The network interface was reset.\r
-    EFI_NOT_STARTED - The network interface has not been started\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\r
-;\r
-\r
-typedef\r
-EFI_STATUS\r
-(EFIAPI *EFI_SIMPLE_NETWORK_SHUTDOWN) (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL  * This\r
-  )\r
-/*++\r
-\r
-  Routine Description:\r
-   Resets a network adapter and leaves it in a state that is safe for \r
-   another driver to initialize.\r
-\r
-  Arguments:\r
-    This                 - Protocol instance pointer.                        \r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The network interface was shutdown.\r
-    EFI_NOT_STARTED - The network interface has not been started\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Manages the multicast receive filters of a network interface.\r
-\r
-  Arguments:\r
-    This    - Protocol instance pointer.     \r
-    Enable  - A bit mask of receive filters to enable on the network interface.\r
-    Disable - A bit mask of receive filters to disable on the network interface.\r
-    ResetMCastFilter - Set to TRUE to reset the contents of the multicast receive \r
-                        filters on the network interface to their default values.\r
-    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
-    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
-  Returns:\r
-    EFI_SUCCESS     - The multicast receive filter list was updated.\r
-    EFI_NOT_STARTED - The network interface has not been started\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Modifies or resets the current station address, if supported.\r
-\r
-  Arguments:\r
-    This  - Protocol instance pointer.   \r
-    Reset - Flag used to reset the station address to the network interfaces\r
-             permanent address.\r
-    New   - New station address to be used for the network interface.\r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The network interfaces station address was updated.\r
-    EFI_NOT_STARTED - The network interface has not been started\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Resets or collects the statistics on a network interface.\r
-\r
-  Arguments:\r
-    This  - Protocol instance pointer.   \r
-    Reset - Set to TRUE to reset the statistics for the network interface.\r
-    StatisticsSize  - On input the size, in bytes, of StatisticsTable. On \r
-                       output the size, in bytes, of the resulting table of \r
-                       statistics.\r
-    StatisticsTable - A pointer to the EFI_NETWORK_STATISTICS structure that\r
-                       contains the statistics. \r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The statistics were collected from the network interface.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    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
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Converts a multicast IP address to a multicast HW MAC address.\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.   \r
-    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
-    IP   - The multicast IP address that is to be converted to a multicast\r
-            HW MAC address.\r
-    MAC  - The multicast HW MAC address that is to be generated from IP.\r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The multicast IP address was mapped to the multicast \r
-                       HW MAC address.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    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
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Performs read and write operations on the NVRAM device attached to a \r
-    network interface.\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.   \r
-    ReadWrite - TRUE for read operations, FALSE for write operations.\r
-    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
-    BufferSize - The number of bytes to read or write from the NVRAM device.\r
-                  This must also be a multiple of NvramAccessSize.\r
-    Buffer     - A pointer to the data buffer.\r
-\r
-  Returns:\r
-    EFI_SUCCESS     - The NVRAM access was performed.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Reads the current interrupt status and recycled transmit buffer status from \r
-    a network interface.\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.   \r
-    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
-    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
-  Returns:\r
-    EFI_SUCCESS     - The status of the network interface was retrieved.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Places a packet in the transmit queue of a network interface.\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.   \r
-    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
-    BufferSize - The size, in bytes, of the entire packet (media header and \r
-                  data) to be transmitted through the network interface.\r
-    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
-    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
-    DsetAddr - The destination HW MAC address. If HeaderSize is zero, then this \r
-                parameter is ignored.\r
-    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
-  Returns:\r
-    EFI_SUCCESS     - The packet was placed on the transmit queue.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    EFI_NOT_READY   - The network interface is too busy to accept this transmit\r
-                       request.\r
-    EFI_BUFFER_TOO_SMALL  - The BufferSize parameter is too small.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\r
---*/\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
-  Routine Description:\r
-    Receives a packet from a network interface.\r
-\r
-  Arguments:\r
-    This - Protocol instance pointer.   \r
-    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
-    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
-    Buffer   - A pointer to the data buffer to receive both the media header and\r
-                the data.\r
-    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
-    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
-    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
-  Returns:\r
-    EFI_SUCCESS     - The received data was stored in Buffer, and BufferSize has\r
-                       been updated to the number of bytes received.\r
-    EFI_NOT_STARTED - The network interface has not been started.\r
-    EFI_NOT_READY   - The network interface is too busy to accept this transmit\r
-                       request.\r
-    EFI_BUFFER_TOO_SMALL  - The BufferSize parameter is too small.\r
-    EFI_INVALID_PARAMETER - One or more of the parameters has an unsupported value.\r
-    EFI_DEVICE_ERROR - The command could not be sent to the network interface.\r
-    EFI_UNSUPPORTED  - This function is not supported by the network interface.\r
-\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