]> git.proxmox.com Git - mirror_edk2.git/blobdiff - OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
edk2: Remove packages moved to edk2-platforms
[mirror_edk2.git] / OptionRomPkg / Bus / Usb / UsbNetworking / Ax88772b / Ax88772.h
diff --git a/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h b/OptionRomPkg/Bus/Usb/UsbNetworking/Ax88772b/Ax88772.h
deleted file mode 100644 (file)
index 3659294..0000000
+++ /dev/null
@@ -1,1026 +0,0 @@
-/** @file\r
-  Definitions for ASIX AX88772 Ethernet adapter.\r
-\r
-  Copyright (c) 2011 - 2015, Intel Corporation. All rights reserved.\r
-  SPDX-License-Identifier: BSD-2-Clause-Patent\r
-\r
-**/\r
-\r
-#ifndef _AX88772_H_\r
-#define _AX88772_H_\r
-\r
-#include <Uefi.h>\r
-\r
-#include <Guid/EventGroup.h>\r
-\r
-#include <IndustryStandard/Pci.h>\r
-\r
-#include <Library/BaseMemoryLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/DevicePathLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/UefiDriverEntryPoint.h>\r
-#include <Library/UefiLib.h>\r
-#include <Library/UefiRuntimeLib.h>\r
-\r
-#include <Protocol/DevicePath.h>\r
-#include <Protocol/LoadedImage.h>\r
-#include <Protocol/NetworkInterfaceIdentifier.h>\r
-#include <Protocol/SimpleNetwork.h>\r
-#include <Protocol/UsbIo.h>\r
-\r
-#define MAX_QUEUE_SIZE 50\r
-#define MAX_BULKIN_SIZE 16384\r
-#define HW_HDR_LENGTH 8\r
-\r
-\r
-#define MAX_LINKIDLE_THRESHOLD  20000\r
-\r
-\r
-\r
-//------------------------------------------------------------------------------\r
-//  Macros\r
-//------------------------------------------------------------------------------\r
-\r
-#if defined(_MSC_VER)           /* Handle Microsoft VC++ compiler specifics. */\r
-#define DBG_ENTER()             DEBUG (( 0xffffffff, "Entering " __FUNCTION__ "\n" )) ///<  Display routine entry\r
-#define DBG_EXIT()              DEBUG (( 0xffffffff, "Exiting " __FUNCTION__ "\n" ))  ///<  Display routine exit\r
-#define DBG_EXIT_DEC(Status)    DEBUG (( 0xffffffff, "Exiting " __FUNCTION__ ", Status: %d\n", Status ))      ///<  Display routine exit with decimal value\r
-#define DBG_EXIT_HEX(Status)    DEBUG (( 0xffffffff, "Exiting " __FUNCTION__ ", Status: 0x%08x\n", Status ))  ///<  Display routine exit with hex value\r
-#define DBG_EXIT_STATUS(Status) DEBUG (( 0xffffffff, "Exiting " __FUNCTION__ ", Status: %r\n", Status ))      ///<  Display routine exit with status value\r
-#define DBG_EXIT_TF(Status)     DEBUG (( 0xffffffff, "Exiting " __FUNCTION__ ", returning %s\n", (FALSE == Status) ? L"FALSE" : L"TRUE" ))  ///<  Display routine with TRUE/FALSE value\r
-#else   //  _MSC_VER\r
-#define DBG_ENTER()               ///<  Display routine entry\r
-#define DBG_EXIT()                ///<  Display routine exit\r
-#define DBG_EXIT_DEC(Status)      ///<  Display routine exit with decimal value\r
-#define DBG_EXIT_HEX(Status)      ///<  Display routine exit with hex value\r
-#define DBG_EXIT_STATUS(Status)   ///<  Display routine exit with status value\r
-#define DBG_EXIT_TF(Status)       ///<  Display routine with TRUE/FALSE value\r
-#endif  //  _MSC_VER\r
-\r
-#define USB_IS_IN_ENDPOINT(EndPointAddr)      (((EndPointAddr) & BIT7) != 0)  ///<  Return TRUE/FALSE for IN direction\r
-#define USB_IS_OUT_ENDPOINT(EndPointAddr)     (((EndPointAddr) & BIT7) == 0)  ///<  Return TRUE/FALSE for OUT direction\r
-#define USB_IS_BULK_ENDPOINT(Attribute)       (((Attribute) & (BIT0 | BIT1)) == USB_ENDPOINT_BULK)      ///<  Return TRUE/FALSE for BULK type\r
-#define USB_IS_INTERRUPT_ENDPOINT(Attribute)  (((Attribute) & (BIT0 | BIT1)) == USB_ENDPOINT_INTERRUPT) ///<  Return TRUE/FALSE for INTERRUPT type\r
-\r
-\r
-#define PRINT(_L_STR) (gST->ConOut->OutputString(gST->ConOut,(_L_STR)))\r
-//------------------------------------------------------------------------------\r
-//  Constants\r
-//------------------------------------------------------------------------------\r
-\r
-#define DEBUG_RX_BROADCAST  0x40000000  ///<  Display RX broadcast messages\r
-#define DEBUG_RX_MULTICAST  0x20000000  ///<  Display RX multicast messages\r
-#define DEBUG_RX_UNICAST    0x10000000  ///<  Display RX unicast messages\r
-#define DEBUG_MAC_ADDRESS   0x08000000  ///<  Display the MAC address\r
-#define DEBUG_LINK          0x04000000  ///<  Display the link status\r
-#define DEBUG_TX            0x02000000  ///<  Display the TX messages\r
-#define DEBUG_PHY           0x01000000  ///<  Display the PHY register values\r
-#define DEBUG_SROM          0x00800000  ///<  Display the SROM contents\r
-#define DEBUG_TIMER         0x00400000  ///<  Display the timer routine entry/exit\r
-#define DEBUG_TPL           0x00200000  ///<  Display the timer routine entry/exit\r
-\r
-#define AX88772_MAX_PKT_SIZE  2048  ///< Maximum packet size\r
-\r
-#define ETHERNET_HEADER_SIZE  sizeof ( ETHERNET_HEADER )  ///<  Size in bytes of the Ethernet header\r
-#define MIN_ETHERNET_PKT_SIZE 60    ///<  Minimum packet size including Ethernet header\r
-#define MAX_ETHERNET_PKT_SIZE 1500  ///<  Ethernet spec 3.1.1: Minimum packet size\r
-\r
-#define USB_NETWORK_CLASS   0x09    ///<  USB Network class code\r
-#define USB_BUS_TIMEOUT     1000    ///<  USB timeout in milliseconds\r
-\r
-#define TIMER_MSEC          20              ///<  Polling interval for the NIC\r
-//#define TPL_AX88772         TPL_CALLBACK    ///<  TPL for routine synchronization\r
-\r
-#define HC_DEBUG  0\r
-#define BULKIN_TIMEOUT  20\r
-#define AUTONEG_DELAY   500000\r
-#define AUTONEG_POLLCNT 20\r
-\r
-/**\r
-  Verify new TPL value\r
-\r
-  This macro which is enabled when debug is enabled verifies that\r
-  the new TPL value is >= the current TPL value.\r
-**/\r
-#ifdef VERIFY_TPL\r
-#undef VERIFY_TPL\r
-#endif  //  VERIFY_TPL\r
-\r
-#if !defined(MDEPKG_NDEBUG)\r
-\r
-#define VERIFY_TPL(tpl)                           \\r
-{                                                 \\r
-  EFI_TPL PreviousTpl;                            \\r
-                                                  \\r
-  PreviousTpl = gBS->RaiseTPL ( TPL_HIGH_LEVEL ); \\r
-  gBS->RestoreTPL ( PreviousTpl );                \\r
-  if ( PreviousTpl > tpl ) {                      \\r
-    DEBUG (( DEBUG_ERROR, "Current TPL: %d, New TPL: %d\r\n", PreviousTpl, tpl ));  \\r
-    ASSERT ( PreviousTpl <= tpl );                \\r
-  }                                               \\r
-}\r
-\r
-#else   //  MDEPKG_NDEBUG\r
-\r
-#define VERIFY_TPL(tpl)\r
-\r
-#endif  //  MDEPKG_NDEBUG\r
-\r
-//------------------------------------------------------------------------------\r
-//  Hardware Definition\r
-//------------------------------------------------------------------------------\r
-\r
-#define FreeQueueSize     10\r
-\r
-#define DEV_SIGNATURE     SIGNATURE_32 ('A','X','8','8')  ///<  Signature of data structures in memory\r
-\r
-#define RESET_MSEC        1000    ///<  Reset duration\r
-#define PHY_RESET_MSEC     500    ///<  PHY reset duration\r
-\r
-//\r
-//  RX Control register\r
-//\r
-\r
-#define RXC_PRO           0x0001  ///<  Receive all packets\r
-#define RXC_AMALL         0x0002  ///<  Receive all multicast packets\r
-#define RXC_SEP           0x0004  ///<  Save error packets\r
-#define RXC_AB            0x0008  ///<  Receive broadcast packets\r
-#define RXC_AM            0x0010  ///<  Use multicast destination address hash table\r
-#define RXC_AP            0x0020  ///<  Accept physical address from Multicast Filter\r
-#define RXC_SO            0x0080  ///<  Start operation\r
-#define RXC_MFB           0x0300  ///<  Maximum frame burst\r
-#define RXC_MFB_2048      0       ///<  Maximum frame size:  2048 bytes\r
-#define RXC_MFB_4096      0x0100  ///<  Maximum frame size:  4096 bytes\r
-#define RXC_MFB_8192      0x0200  ///<  Maximum frame size:  8192 bytes\r
-#define RXC_MFB_16384     0x0300  ///<  Maximum frame size: 16384 bytes\r
-\r
-/*Freddy*/\r
-#define RXC_RH1M          0x0100  ///<  Rx header 1\r
-#define RXC_RH2M          0x0200  ///<  Rx header 2\r
-#define RXC_RH3M          0x0400  ///<  Rx header 3\r
-/*Freddy*/\r
-\r
-//\r
-//  Medium Status register\r
-//\r
-\r
-#define MS_FD             0x0002  ///<  Full duplex\r
-#define MS_ONE            0x0004  ///<  Must be one\r
-#define MS_RFC            0x0010  ///<  RX flow control enable\r
-#define MS_TFC            0x0020  ///<  TX flow control enable\r
-#define MS_PF             0x0080  ///<  Pause frame enable\r
-#define MS_RE             0x0100  ///<  Receive enable\r
-#define MS_PS             0x0200  ///<  Port speed 1=100, 0=10 Mbps\r
-#define MS_SBP            0x0800  ///<  Stop back pressure\r
-#define MS_SM             0x1000  ///<  Super MAC support\r
-\r
-//\r
-//  Software PHY Select register\r
-//\r
-\r
-#define SPHY_PSEL         (1 << 0)    ///<  Select internal PHY\r
-#define SPHY_SSMII        (1 << 2)\r
-#define SPHY_SSEN         (1 << 4)\r
-#define SPHY_ASEL         0x02    ///<  1=Auto select, 0=Manual select\r
-\r
-//\r
-//  Software Reset register\r
-//\r
-\r
-#define SRR_RR            0x01    ///<  Clear receive frame length error\r
-#define SRR_RT            0x02    ///<  Clear transmit frame length error\r
-#define SRR_BZTYPE        0x04    ///<  External PHY reset pin tri-state enable\r
-#define SRR_PRL           0x08    ///<  External PHY reset pin level\r
-#define SRR_BZ            0x10    ///<  Force Bulk to return zero length packet\r
-#define SRR_IPRL          0x20    ///<  Internal PHY reset control\r
-#define SRR_IPPD          0x40    ///<  Internal PHY power down\r
-\r
-//\r
-//  PHY ID values\r
-//\r
-\r
-#define PHY_ID_INTERNAL   0x0010  ///<  Internal PHY\r
-\r
-//\r
-//  USB Commands\r
-//\r
-\r
-#define CMD_PHY_ACCESS_SOFTWARE   0x06  ///<  Software in control of PHY\r
-#define CMD_PHY_REG_READ          0x07  ///<  Read PHY register, Value: PHY, Index: Register, Data: Register value\r
-#define CMD_PHY_REG_WRITE         0x08  ///<  Write PHY register, Value: PHY, Index: Register, Data: New 16-bit value\r
-#define CMD_PHY_ACCESS_HARDWARE   0x0a  ///<  Hardware in control of PHY\r
-#define CMD_SROM_READ             0x0b  ///<  Read SROM register: Value: Address, Data: Value\r
-#define CMD_RX_CONTROL_WRITE      0x10  ///<  Set the RX control register, Value: New value\r
-#define CMD_GAPS_WRITE            0x12  ///<  Write the gaps register, Value: New value\r
-#define CMD_MAC_ADDRESS_READ      0x13  ///<  Read the MAC address, Data: 6 byte MAC address\r
-#define CMD_MAC_ADDRESS_WRITE     0x14  ///<  Set the MAC address, Data: New 6 byte MAC address\r
-#define CMD_MULTICAST_HASH_WRITE  0x16  ///<  Write the multicast hash table, Data: New 8 byte value\r
-#define CMD_MULTICAST_HASH_READ  0x16  ///<  Read the multicast hash table\r
-#define CMD_MEDIUM_STATUS_READ    0x1a  ///<  Read medium status register, Data: Register value\r
-#define CMD_MEDIUM_STATUS_WRITE   0x1b  ///<  Write medium status register, Value: New value\r
-#define CMD_WRITE_GPIOS           0x1f\r
-#define CMD_RESET                 0x20  ///<  Reset register, Value: New value\r
-#define CMD_PHY_SELECT            0x22  ///<  PHY select register, Value: New value\r
-\r
-/*Freddy*/\r
-#define CMD_RXQTC                 0x2a  ///<  RX Queue Cascade Threshold Control Register\r
-/*Freddy*/\r
-\r
-//------------------------------\r
-//  USB Endpoints\r
-//------------------------------\r
-\r
-#define CONTROL_ENDPOINT                0       ///<  Control endpoint\r
-#define INTERRUPT_ENDPOINT              1       ///<  Interrupt endpoint\r
-#define BULK_IN_ENDPOINT                2       ///<  Receive endpoint\r
-#define BULK_OUT_ENDPOINT               3       ///<  Transmit endpoint\r
-\r
-//------------------------------\r
-//  PHY Registers\r
-//------------------------------\r
-\r
-#define PHY_BMCR                        0       ///<  Control register\r
-#define PHY_BMSR                        1       ///<  Status register\r
-#define PHY_ANAR                        4       ///<  Autonegotiation advertisement register\r
-#define PHY_ANLPAR                      5       ///<  Autonegotiation link parter ability register\r
-#define PHY_ANER                        6       ///<  Autonegotiation expansion register\r
-\r
-//  BMCR - Register 0\r
-\r
-#define BMCR_RESET                      0x8000  ///<  1 = Reset the PHY, bit clears after reset\r
-#define BMCR_LOOPBACK                   0x4000  ///<  1 = Loopback enabled\r
-#define BMCR_100MBPS                    0x2000  ///<  100 Mbits/Sec\r
-#define BMCR_10MBPS                     0       ///<  10 Mbits/Sec\r
-#define BMCR_AUTONEGOTIATION_ENABLE     0x1000  ///<  1 = Enable autonegotiation\r
-#define BMCR_POWER_DOWN                 0x0800  ///<  1 = Power down\r
-#define BMCR_ISOLATE                    0x0400  ///<  0 = Isolate PHY\r
-#define BMCR_RESTART_AUTONEGOTIATION    0x0200  ///<  1 = Restart autonegotiation\r
-#define BMCR_FULL_DUPLEX                0x0100  ///<  Full duplex operation\r
-#define BMCR_HALF_DUPLEX                0       ///<  Half duplex operation\r
-#define BMCR_COLLISION_TEST             0x0080  ///<  1 = Collision test enabled\r
-\r
-//  BSMR - Register 1\r
-\r
-#define BMSR_100BASET4                  0x8000  ///<  1 = 100BASE-T4 mode\r
-#define BMSR_100BASETX_FDX              0x4000  ///<  1 = 100BASE-TX full duplex\r
-#define BMSR_100BASETX_HDX              0x2000  ///<  1 = 100BASE-TX half duplex\r
-#define BMSR_10BASET_FDX                0x1000  ///<  1 = 10BASE-T full duplex\r
-#define BMSR_10BASET_HDX                0x0800  ///<  1 = 10BASE-T half duplex\r
-#define BMSR_MF                         0x0040  ///<  1 = PHY accepts frames with preamble suppressed\r
-#define BMSR_AUTONEG_CMPLT              0x0020  ///<  1 = Autonegotiation complete\r
-#define BMSR_RF                         0x0010  ///<  1 = Remote fault\r
-#define BMSR_AUTONEG                    0x0008  ///<  1 = Able to perform autonegotiation\r
-#define BMSR_LINKST                     0x0004  ///<  1 = Link up\r
-#define BMSR_JABBER_DETECT              0x0002  ///<  1 = jabber condition detected\r
-#define BMSR_EXTENDED_CAPABILITY        0x0001  ///<  1 = Extended register capable\r
-\r
-//  ANAR and ANLPAR Registers 4, 5\r
-\r
-#define AN_NP                           0x8000  ///<  1 = Next page available\r
-#define AN_ACK                          0x4000  ///<  1 = Link partner acknowledged\r
-#define AN_RF                           0x2000  ///<  1 = Remote fault indicated by link partner\r
-#define AN_FCS                          0x0400  ///<  1 = Flow control ability\r
-#define AN_T4                           0x0200  ///<  1 = 100BASE-T4 support\r
-#define AN_TX_FDX                       0x0100  ///<  1 = 100BASE-TX Full duplex\r
-#define AN_TX_HDX                       0x0080  ///<  1 = 100BASE-TX support\r
-#define AN_10_FDX                       0x0040  ///<  1 = 10BASE-T Full duplex\r
-#define AN_10_HDX                       0x0020  ///<  1 = 10BASE-T support\r
-#define AN_CSMA_CD                      0x0001  ///<  1 = IEEE 802.3 CSMA/CD support\r
-\r
-// asix_flags defines\r
-#define FLAG_NONE               0\r
-#define FLAG_TYPE_AX88172       BIT0\r
-#define FLAG_TYPE_AX88772       BIT1\r
-#define FLAG_TYPE_AX88772B      BIT2\r
-#define FLAG_EEPROM_MAC         BIT3  // initial mac address in eeprom\r
-\r
-//------------------------------------------------------------------------------\r
-//  Data Types\r
-//------------------------------------------------------------------------------\r
-\r
-typedef struct {\r
-   UINT16  VendorId;\r
-   UINT16  ProductId;\r
-   INT32   Flags;\r
-}ASIX_DONGLE;\r
-\r
-/**\r
-  Ethernet header layout\r
-\r
-  IEEE 802.3-2002 Part 3 specification, section 3.1.1.\r
-**/\r
-#pragma pack(1)\r
-typedef struct {\r
-  UINT8 dest_addr[PXE_HWADDR_LEN_ETHER];  ///<  Destination LAN address\r
-  UINT8 src_addr[PXE_HWADDR_LEN_ETHER];   ///<  Source LAN address\r
-  UINT16 type;                            ///<  Protocol or length\r
-} ETHERNET_HEADER;\r
-#pragma pack()\r
-\r
-/**\r
-  Receive and Transmit packet structure\r
-**/\r
-#pragma pack(1)\r
-typedef struct _RX_TX_PACKET {\r
-  struct _RX_TX_PACKET * pNext;       ///<  Next receive packet\r
-  UINT16 Length;                      ///<  Packet length\r
-  UINT16 LengthBar;                   ///<  Complement of the length\r
-  UINT8 Data[ AX88772_MAX_PKT_SIZE ]; ///<  Received packet data\r
-} RX_TX_PACKET;\r
-#pragma pack()\r
-\r
-\r
-#pragma pack(1)\r
-typedef struct _RX_PKT {\r
-  struct _RX_PKT *pNext;\r
-  BOOLEAN f_Used;\r
-  UINT16 Length;\r
-  UINT8 Data [AX88772_MAX_PKT_SIZE] ;\r
-} RX_PKT;\r
-#pragma pack()\r
-\r
-/**\r
-  AX88772 control structure\r
-\r
-  The driver uses this structure to manage the Asix AX88772 10/100\r
-  Ethernet controller.\r
-**/\r
-typedef struct {\r
-  UINTN Signature;          ///<  Structure identification\r
-\r
-  //\r
-  //  USB data\r
-  //\r
-  EFI_HANDLE Controller;        ///<  Controller handle\r
-  EFI_USB_IO_PROTOCOL * pUsbIo;  ///<  USB driver interface\r
-\r
-  //\r
-  //  Simple network protocol data\r
-  //\r
-  EFI_SIMPLE_NETWORK_PROTOCOL SimpleNetwork;  ///<  Driver's network stack interface\r
-  EFI_SIMPLE_NETWORK_PROTOCOL SimpleNetwork_Backup;\r
-  EFI_SIMPLE_NETWORK_MODE SimpleNetworkData;  ///<  Data for simple network\r
-\r
-  //\r
-  // Ethernet controller data\r
-  //\r
-  BOOLEAN bInitialized;     ///<  Controller initialized\r
-  VOID * pTxBuffer;         ///<  Last transmit buffer\r
-  UINT16 PhyId;             ///<  PHY ID\r
-\r
-  //\r
-  //  Link state\r
-  //\r
-  BOOLEAN b100Mbps;         ///<  Current link speed, FALSE = 10 Mbps\r
-  BOOLEAN bComplete;        ///<  Current state of auto-negotiation\r
-  BOOLEAN bFullDuplex;      ///<  Current duplex\r
-  BOOLEAN bLinkUp;          ///<  Current link state\r
-  UINTN  LinkIdleCnt;\r
-  UINTN PollCount;          ///<  Number of times the autonegotiation status was polled\r
-  UINT16 CurRxControl;\r
-  //\r
-  //  Receive buffer list\r
-  //\r
-  RX_TX_PACKET * pRxTest;\r
-  RX_TX_PACKET * pTxTest;\r
-\r
-  INT8 MulticastHash[8];\r
-  EFI_MAC_ADDRESS MAC;\r
-  BOOLEAN bHavePkt;\r
\r
-  EFI_DEVICE_PATH_PROTOCOL                  *MyDevPath;\r
-  \r
-  EFI_DRIVER_BINDING_PROTOCOL * DrvBind;\r
-  \r
-  RX_PKT * QueueHead;\r
-  RX_PKT * pNextFill;\r
-  RX_PKT * pFirstFill;\r
-  UINTN   PktCntInQueue;\r
-  UINT8 * pBulkInBuff;\r
-\r
-  INT32 Flags;\r
-\r
-} NIC_DEVICE;\r
-\r
-#define DEV_FROM_SIMPLE_NETWORK(a)  CR (a, NIC_DEVICE, SimpleNetwork, DEV_SIGNATURE)  ///< Locate NIC_DEVICE from Simple Network Protocol\r
-\r
-//------------------------------------------------------------------------------\r
-// Simple Network Protocol\r
-//------------------------------------------------------------------------------\r
-\r
-/**\r
-  Reset the network adapter.\r
-\r
-  Resets a network adapter and reinitializes it with the parameters that\r
-  were provided in the previous call to Initialize ().  The transmit and\r
-  receive queues are cleared.  Receive filters, the station address, the\r
-  statistics, and the multicast-IP-to-HW MAC addresses are not reset by\r
-  this call.\r
-\r
-  This routine calls ::Ax88772Reset to perform the adapter specific\r
-  reset operation.  This routine also starts the link negotiation\r
-  by calling ::Ax88772NegotiateLinkStart.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-  @param [in] bExtendedVerification  Indicates that the driver may perform a more\r
-                                exhaustive verification operation of the device\r
-                                during reset.\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not started.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Reset (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork,\r
-  IN BOOLEAN bExtendedVerification\r
-  );\r
-\r
-/**\r
-  Initialize the simple network protocol.\r
-\r
-  This routine calls ::Ax88772MacAddressGet to obtain the\r
-  MAC address.\r
-\r
-  @param [in] pNicDevice       NIC_DEVICE_INSTANCE pointer\r
-\r
-  @retval EFI_SUCCESS     Setup was successful\r
-\r
-**/\r
-EFI_STATUS\r
-SN_Setup (\r
-  IN NIC_DEVICE * pNicDevice\r
-  );\r
-\r
-/**\r
-  This routine starts the network interface.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_ALREADY_STARTED   The network interface was already started.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Start (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork\r
-  );\r
-\r
-/**\r
-  Set the MAC address.\r
-  \r
-  This function modifies or resets the current station address of a\r
-  network interface.  If Reset is TRUE, then the current station address\r
-  is set ot the network interface's permanent address.  If Reset if FALSE\r
-  then the current station address is changed to the address specified by\r
-  pNew.\r
-\r
-  This routine calls ::Ax88772MacAddressSet to update the MAC address\r
-  in the network adapter.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-  @param [in] bReset            Flag used to reset the station address to the\r
-                                network interface's permanent address.\r
-  @param [in] pNew              New station address to be used for the network\r
-                                interface.\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not started.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_StationAddress (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork,\r
-  IN BOOLEAN bReset,\r
-  IN EFI_MAC_ADDRESS * pNew\r
-  );\r
-\r
-/**\r
-  This function resets or collects the statistics on a network interface.\r
-  If the size of the statistics table specified by StatisticsSize is not\r
-  big enough for all of the statistics that are collected by the network\r
-  interface, then a partial buffer of statistics is returned in\r
-  StatisticsTable.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-  @param [in] bReset            Set to TRUE to reset the statistics for the network interface.\r
-  @param [in, out] pStatisticsSize  On input the size, in bytes, of StatisticsTable.  On output\r
-                                the size, in bytes, of the resulting table of statistics.\r
-  @param [out] pStatisticsTable A pointer to the EFI_NETWORK_STATISTICS structure that\r
-                                conains the statistics.\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not started.\r
-  @retval EFI_BUFFER_TOO_SMALL  The pStatisticsTable is NULL or the buffer is too small.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Statistics (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork,\r
-  IN BOOLEAN bReset,\r
-  IN OUT UINTN * pStatisticsSize,\r
-  OUT EFI_NETWORK_STATISTICS * pStatisticsTable\r
-  );\r
-\r
-/**\r
-  This function stops a network interface.  This call is only valid\r
-  if the network interface is in the started state.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not started.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Stop (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork\r
-  );\r
-\r
-/**\r
-  This function releases the memory buffers assigned in the Initialize() call.\r
-  Pending transmits and receives are lost, and interrupts are cleared and disabled.\r
-  After this call, only Initialize() and Stop() calls may be used.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not started.\r
-  @retval EFI_INVALID_PARAMETER pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-  @retval EFI_UNSUPPORTED       The increased buffer size feature is not supported.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Shutdown (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork\r
-  );\r
-\r
-/**\r
-  Send a packet over the network.\r
-\r
-  This function places the packet specified by Header and Buffer on\r
-  the transmit queue.  This function performs a non-blocking transmit\r
-  operation.  When the transmit is complete, the buffer is returned\r
-  via the GetStatus() call.\r
-\r
-  This routine calls ::Ax88772Rx to empty the network adapter of\r
-  receive packets.  The routine then passes the transmit packet\r
-  to the network adapter.\r
-\r
-  @param [in] pSimpleNetwork    Protocol instance pointer\r
-  @param [in] HeaderSize        The size, in bytes, of the media header to be filled in by\r
-                                the Transmit() function.  If HeaderSize is non-zero, then\r
-                                it must be equal to SimpleNetwork->Mode->MediaHeaderSize\r
-                                and DestAddr and Protocol parameters must not be NULL.\r
-  @param [in] BufferSize        The size, in bytes, of the entire packet (media header and\r
-                                data) to be transmitted through the network interface.\r
-  @param [in] pBuffer           A pointer to the packet (media header followed by data) to\r
-                                to be transmitted.  This parameter can not be NULL.  If\r
-                                HeaderSize is zero, then the media header is Buffer must\r
-                                already be filled in by the caller.  If HeaderSize is nonzero,\r
-                                then the media header will be filled in by the Transmit()\r
-                                function.\r
-  @param [in] pSrcAddr          The source HW MAC address.  If HeaderSize is zero, then\r
-                                this parameter is ignored.  If HeaderSize is nonzero and\r
-                                SrcAddr is NULL, then SimpleNetwork->Mode->CurrentAddress\r
-                                is used for the source HW MAC address.\r
-  @param [in] pDestAddr         The destination HW MAC address.  If HeaderSize is zero, then\r
-                                this parameter is ignored.\r
-  @param [in] pProtocol         The type of header to build.  If HeaderSize is zero, then\r
-                                this parameter is ignored.\r
-\r
-  @retval EFI_SUCCESS           This operation was successful.\r
-  @retval EFI_NOT_STARTED       The network interface was not 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 pSimpleNetwork parameter was NULL or did not point to a valid\r
-                                EFI_SIMPLE_NETWORK_PROTOCOL structure.\r
-  @retval EFI_DEVICE_ERROR      The command could not be sent to the network interface.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-SN_Transmit (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork,\r
-  IN UINTN HeaderSize,\r
-  IN UINTN BufferSize,\r
-  IN VOID * pBuffer,\r
-  IN EFI_MAC_ADDRESS * pSrcAddr,\r
-  IN EFI_MAC_ADDRESS * pDestAddr,\r
-  IN UINT16 * pProtocol\r
-  );\r
-\r
-//------------------------------------------------------------------------------\r
-// Support Routines\r
-//------------------------------------------------------------------------------\r
-\r
-/**\r
-  Get the MAC address\r
-\r
-  This routine calls ::Ax88772UsbCommand to request the MAC\r
-  address from the network adapter.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [out] pMacAddress      Address of a six byte buffer to receive the MAC address.\r
-\r
-  @retval EFI_SUCCESS          The MAC address is available.\r
-  @retval other                The MAC address is not valid.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772MacAddressGet (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  OUT UINT8 * pMacAddress\r
-  );\r
-\r
-/**\r
-  Set the MAC address\r
-\r
-  This routine calls ::Ax88772UsbCommand to set the MAC address\r
-  in the network adapter.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] pMacAddress      Address of a six byte buffer to containing the new MAC address.\r
-\r
-  @retval EFI_SUCCESS          The MAC address was set.\r
-  @retval other                The MAC address was not set.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772MacAddressSet (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT8 * pMacAddress\r
-  );\r
-\r
-/**\r
-  Clear the multicast hash table\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-\r
-**/\r
-VOID\r
-Ax88772MulticastClear (\r
-  IN NIC_DEVICE * pNicDevice\r
-  );\r
-\r
-/**\r
-  Enable a multicast address in the multicast hash table\r
-\r
-  This routine calls ::Ax88772Crc to compute the hash bit for\r
-  this MAC address.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] pMacAddress      Address of a six byte buffer to containing the MAC address.\r
-\r
-**/\r
-VOID\r
-Ax88772MulticastSet (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT8 * pMacAddress\r
-  );\r
-\r
-/**\r
-  Start the link negotiation\r
-\r
-  This routine calls ::Ax88772PhyWrite to start the PHY's link\r
-  negotiation.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-\r
-  @retval EFI_SUCCESS          The link negotiation was started.\r
-  @retval other                Failed to start the link negotiation.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772NegotiateLinkStart (\r
-  IN NIC_DEVICE * pNicDevice\r
-  );\r
-\r
-/**\r
-  Complete the negotiation of the PHY link\r
-\r
-  This routine calls ::Ax88772PhyRead to determine if the\r
-  link negotiation is complete.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in, out] pPollCount  Address of number of times this routine was polled\r
-  @param [out] pbComplete      Address of boolean to receive complate status.\r
-  @param [out] pbLinkUp        Address of boolean to receive link status, TRUE=up.\r
-  @param [out] pbHiSpeed       Address of boolean to receive link speed, TRUE=100Mbps.\r
-  @param [out] pbFullDuplex    Address of boolean to receive link duplex, TRUE=full.\r
-\r
-  @retval EFI_SUCCESS          The MAC address is available.\r
-  @retval other                The MAC address is not valid.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772NegotiateLinkComplete (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN OUT UINTN * pPollCount,\r
-  OUT BOOLEAN * pbComplete,\r
-  OUT BOOLEAN * pbLinkUp,\r
-  OUT BOOLEAN * pbHiSpeed,\r
-  OUT BOOLEAN * pbFullDuplex\r
-  );\r
-\r
-/**\r
-  Read a register from the PHY\r
-\r
-  This routine calls ::Ax88772UsbCommand to read a PHY register.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] RegisterAddress  Number of the register to read.\r
-  @param [in, out] pPhyData    Address of a buffer to receive the PHY register value\r
-\r
-  @retval EFI_SUCCESS          The PHY data is available.\r
-  @retval other                The PHY data is not valid.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772PhyRead (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT8 RegisterAddress,\r
-  IN OUT UINT16 * pPhyData\r
-  );\r
-\r
-/**\r
-  Write to a PHY register\r
-\r
-  This routine calls ::Ax88772UsbCommand to write a PHY register.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] RegisterAddress  Number of the register to read.\r
-  @param [in] PhyData          Address of a buffer to receive the PHY register value\r
-\r
-  @retval EFI_SUCCESS          The PHY data was written.\r
-  @retval other                Failed to wwrite the PHY register.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772PhyWrite (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT8 RegisterAddress,\r
-  IN UINT16 PhyData\r
-  );\r
-\r
-/**\r
-  Reset the AX88772\r
-\r
-  This routine uses ::Ax88772UsbCommand to reset the network\r
-  adapter.  This routine also uses ::Ax88772PhyWrite to reset\r
-  the PHY.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-\r
-  @retval EFI_SUCCESS          The MAC address is available.\r
-  @retval other                The MAC address is not valid.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772Reset (\r
-  IN NIC_DEVICE * pNicDevice\r
-  );\r
-\r
-VOID\r
-Ax88772ChkLink (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN BOOLEAN bUpdateLink\r
-  );\r
-\r
-/**\r
-  Receive a frame from the network.\r
-\r
-  This routine polls the USB receive interface for a packet.  If a packet\r
-  is available, this routine adds the receive packet to the list of\r
-  pending receive packets.\r
-\r
-  This routine calls ::Ax88772NegotiateLinkComplete to verify\r
-  that the link is up.  This routine also calls ::SN_Reset to\r
-  reset the network adapter when necessary.  Finally this\r
-  routine attempts to receive one or more packets from the\r
-  network adapter.\r
-\r
-  @param [in] pNicDevice  Pointer to the NIC_DEVICE structure\r
-  @param [in] bUpdateLink TRUE = Update link status\r
-\r
-**/\r
-VOID\r
-Ax88772Rx (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN BOOLEAN bUpdateLink\r
-  );\r
-\r
-/**\r
-  Enable or disable the receiver\r
-\r
-  This routine calls ::Ax88772UsbCommand to update the\r
-  receiver state.  This routine also calls ::Ax88772MacAddressSet\r
-  to establish the MAC address for the network adapter.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] RxFilter         Simple network RX filter mask value\r
-\r
-  @retval EFI_SUCCESS          The MAC address was set.\r
-  @retval other                The MAC address was not set.\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772RxControl (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT32 RxFilter\r
-  );\r
-\r
-/**\r
-  Read an SROM location\r
-\r
-  This routine calls ::Ax88772UsbCommand to read data from the\r
-  SROM.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] Address          SROM address\r
-  @param [out] pData           Buffer to receive the data\r
-\r
-  @retval EFI_SUCCESS          The read was successful\r
-  @retval other                The read failed\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772SromRead (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN UINT32 Address,\r
-  OUT UINT16 * pData\r
-  );\r
-\r
-/**\r
-  Send a command to the USB device.\r
-\r
-  @param [in] pNicDevice       Pointer to the NIC_DEVICE structure\r
-  @param [in] pRequest         Pointer to the request structure\r
-  @param [in, out] pBuffer     Data buffer address\r
-\r
-  @retval EFI_SUCCESS          The USB transfer was successful\r
-  @retval other                The USB transfer failed\r
-\r
-**/\r
-EFI_STATUS\r
-Ax88772UsbCommand (\r
-  IN NIC_DEVICE * pNicDevice,\r
-  IN USB_DEVICE_REQUEST * pRequest,\r
-  IN OUT VOID * pBuffer\r
-  );\r
-\r
-//------------------------------------------------------------------------------\r
-// EFI Component Name Protocol Support\r
-//------------------------------------------------------------------------------\r
-\r
-extern EFI_COMPONENT_NAME_PROTOCOL   gComponentName;  ///<  Component name protocol declaration\r
-extern EFI_COMPONENT_NAME2_PROTOCOL  gComponentName2; ///<  Component name 2 protocol declaration\r
-\r
-/**\r
-  Retrieves a Unicode string that is the user readable name of the driver.\r
-\r
-  This function retrieves the user readable name of a driver in the form of a\r
-  Unicode string. If the driver specified by This has a user readable name in\r
-  the language specified by Language, then a pointer to the driver name is\r
-  returned in DriverName, and EFI_SUCCESS is returned. If the driver specified\r
-  by This does not support the language specified by Language,\r
-  then EFI_UNSUPPORTED is returned.\r
-\r
-  @param [in] pThis             A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
-                                EFI_COMPONENT_NAME_PROTOCOL instance.\r
-  @param [in] pLanguage         A pointer to a Null-terminated ASCII string\r
-                                array indicating the language. This is the\r
-                                language of the driver name that the caller is\r
-                                requesting, and it must match one of the\r
-                                languages specified in SupportedLanguages. The\r
-                                number of languages supported by a driver is up\r
-                                to the driver writer. Language is specified\r
-                                in RFC 3066 or ISO 639-2 language code format.\r
-  @param [out] ppDriverName     A pointer to the Unicode string to return.\r
-                                This Unicode string is the name of the\r
-                                driver specified by This in the language\r
-                                specified by Language.\r
-\r
-  @retval EFI_SUCCESS           The Unicode string for the Driver specified by\r
-                                This and the language specified by Language was\r
-                                returned in DriverName.\r
-  @retval EFI_INVALID_PARAMETER Language is NULL.\r
-  @retval EFI_INVALID_PARAMETER DriverName is NULL.\r
-  @retval EFI_UNSUPPORTED       The driver specified by This does not support\r
-                                the language specified by Language.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-GetDriverName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL * pThis,\r
-  IN  CHAR8 * pLanguage,\r
-  OUT CHAR16 ** ppDriverName\r
-  );\r
-\r
-\r
-/**\r
-  Retrieves a Unicode string that is the user readable name of the controller\r
-  that is being managed by a driver.\r
-\r
-  This function retrieves the user readable name of the controller specified by\r
-  ControllerHandle and ChildHandle in the form of a Unicode string. If the\r
-  driver specified by This has a user readable name in the language specified by\r
-  Language, then a pointer to the controller name is returned in ControllerName,\r
-  and EFI_SUCCESS is returned.  If the driver specified by This is not currently\r
-  managing the controller specified by ControllerHandle and ChildHandle,\r
-  then EFI_UNSUPPORTED is returned.  If the driver specified by This does not\r
-  support the language specified by Language, then EFI_UNSUPPORTED is returned.\r
-\r
-  @param [in] pThis             A pointer to the EFI_COMPONENT_NAME2_PROTOCOL or\r
-                                EFI_COMPONENT_NAME_PROTOCOL instance.\r
-  @param [in] ControllerHandle  The handle of a controller that the driver\r
-                                specified by This is managing.  This handle\r
-                                specifies the controller whose name is to be\r
-                                returned.\r
-  @param [in] ChildHandle       The handle of the child controller to retrieve\r
-                                the name of.  This is an optional parameter that\r
-                                may be NULL.  It will be NULL for device\r
-                                drivers.  It will also be NULL for a bus drivers\r
-                                that wish to retrieve the name of the bus\r
-                                controller.  It will not be NULL for a bus\r
-                                driver that wishes to retrieve the name of a\r
-                                child controller.\r
-  @param [in] pLanguage         A pointer to a Null-terminated ASCII string\r
-                                array indicating the language.  This is the\r
-                                language of the driver name that the caller is\r
-                                requesting, and it must match one of the\r
-                                languages specified in SupportedLanguages. The\r
-                                number of languages supported by a driver is up\r
-                                to the driver writer. Language is specified in\r
-                                RFC 3066 or ISO 639-2 language code format.\r
-  @param [out] ppControllerName A pointer to the Unicode string to return.\r
-                                This Unicode string is the name of the\r
-                                controller specified by ControllerHandle and\r
-                                ChildHandle in the language specified by\r
-                                Language from the point of view of the driver\r
-                                specified by This.\r
-\r
-  @retval EFI_SUCCESS           The Unicode string for the user readable name in\r
-                                the language specified by Language for the\r
-                                driver specified by This was returned in\r
-                                DriverName.\r
-  @retval EFI_INVALID_PARAMETER ControllerHandle is not a valid EFI_HANDLE.\r
-  @retval EFI_INVALID_PARAMETER ChildHandle is not NULL and it is not a valid\r
-                                EFI_HANDLE.\r
-  @retval EFI_INVALID_PARAMETER Language is NULL.\r
-  @retval EFI_INVALID_PARAMETER ControllerName is NULL.\r
-  @retval EFI_UNSUPPORTED       The driver specified by This is not currently\r
-                                managing the controller specified by\r
-                                ControllerHandle and ChildHandle.\r
-  @retval EFI_UNSUPPORTED       The driver specified by This does not support\r
-                                the language specified by Language.\r
-\r
-**/\r
-EFI_STATUS\r
-EFIAPI\r
-GetControllerName (\r
-  IN  EFI_COMPONENT_NAME_PROTOCOL * pThis,\r
-  IN  EFI_HANDLE ControllerHandle,\r
-  IN OPTIONAL EFI_HANDLE ChildHandle,\r
-  IN  CHAR8 * pLanguage,\r
-  OUT CHAR16 ** ppControllerName\r
-  );\r
-  \r
-VOID \r
-FillPkt2Queue (\r
-  IN EFI_SIMPLE_NETWORK_PROTOCOL * pSimpleNetwork,\r
-  IN UINTN BufLength);\r
-\r
-//------------------------------------------------------------------------------\r
-\r
-#endif  //  _AX88772_H_\r