+++ /dev/null
-/** @file\r
-*\r
-* Copyright (c) 2012-2014, ARM Limited. All rights reserved.\r
-*\r
-* SPDX-License-Identifier: BSD-2-Clause-Patent\r
-*\r
-**/\r
-\r
-#ifndef __LAN9118_DXE_H__\r
-#define __LAN9118_DXE_H__\r
-\r
-#include <Uefi.h>\r
-#include <Uefi/UefiSpec.h>\r
-#include <Base.h>\r
-\r
-// Protocols used by this driver\r
-#include <Protocol/SimpleNetwork.h>\r
-#include <Protocol/ComponentName2.h>\r
-#include <Protocol/PxeBaseCode.h>\r
-#include <Protocol/DevicePath.h>\r
-\r
-// Libraries used by this driver\r
-#include <Library/UefiLib.h>\r
-#include <Library/DebugLib.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
-#include <Library/MemoryAllocationLib.h>\r
-#include <Library/IoLib.h>\r
-#include <Library/PcdLib.h>\r
-#include <Library/NetLib.h>\r
-#include <Library/DevicePathLib.h>\r
-\r
-#include "Lan9118DxeUtil.h"\r
-#include "Lan9118DxeHw.h"\r
-\r
-#define LAN9118_STALL 2\r
-\r
-#define LAN9118_DEFAULT_MAC_ADDRL 0x00F70200\r
-#define LAN9118_DEFAULT_MAC_ADDRH 0x00009040\r
-\r
-#define LAN9118_TX_DATA_SIZE 4608\r
-#define LAN9118_TX_STATUS_SIZE 512\r
-#define LAN9118_RX_DATA_SIZE 10560\r
-#define LAN9118_RX_STATUS_SIZE 704\r
-\r
-#define LAN9118_TX_RING_NUM_ENTRIES 32\r
-\r
-/*------------------------------------------------------------------------------\r
- LAN9118 Information Structure\r
-------------------------------------------------------------------------------*/\r
-\r
-typedef struct {\r
- // Driver signature\r
- UINT32 Signature;\r
- EFI_HANDLE ControllerHandle;\r
-\r
- // EFI SNP protocol instances\r
- EFI_SIMPLE_NETWORK_PROTOCOL Snp;\r
- EFI_SIMPLE_NETWORK_MODE SnpMode;\r
-\r
- // EFI Snp statistics instance\r
- EFI_NETWORK_STATISTICS Stats;\r
-\r
- // Saved transmitted buffers so we can notify consumers when packets have been sent.\r
- UINT16 NextPacketTag;\r
- VOID *TxRing[LAN9118_TX_RING_NUM_ENTRIES];\r
-} LAN9118_DRIVER;\r
-\r
-#define LAN9118_SIGNATURE SIGNATURE_32('l', 'a', 'n', '9')\r
-#define INSTANCE_FROM_SNP_THIS(a) CR(a, LAN9118_DRIVER, Snp, LAN9118_SIGNATURE)\r
-\r
-\r
-/*---------------------------------------------------------------------------------------------------------------------\r
-\r
- UEFI-Compliant functions for EFI_SIMPLE_NETWORK_PROTOCOL\r
-\r
- Refer to the Simple Network Protocol section (21.1) in the UEFI 2.3.1 Specification for related definitions\r
-\r
----------------------------------------------------------------------------------------------------------------------*/\r
-\r
-\r
-/*\r
- * UEFI Start() function\r
- *\r
- * Parameters:\r
- *\r
- * @param pobj: A pointer to the EFI_SIMPLE_NETWORK_PROTOCOL instance.\r
- *\r
- * Description:\r
- *\r
- * This function starts a network interface. If the network interface successfully starts, then\r
- * EFI_SUCCESS will be returned.\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpStart (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp\r
- );\r
-\r
-/*\r
- * UEFI Stop() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpStop (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp\r
- );\r
-\r
-/*\r
- * UEFI Initialize() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpInitialize (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN UINTN rx_buff_size,\r
- IN UINTN tx_buff_size\r
- );\r
-\r
-/*\r
- * UEFI Reset() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpReset (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN BOOLEAN ext_ver\r
- );\r
-\r
-/*\r
- * UEFI Shutdown() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpShutdown (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp\r
- );\r
-\r
-/*\r
- * UEFI ReceiveFilters() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpReceiveFilters (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN UINT32 enable,\r
- IN UINT32 disable,\r
- IN BOOLEAN reset_mfilter,\r
- IN UINTN num_mfilter,\r
- IN EFI_MAC_ADDRESS *mfilter\r
- );\r
-\r
-/*\r
- * UEFI StationAddress() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpStationAddress (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN BOOLEAN reset,\r
- IN EFI_MAC_ADDRESS *new_maddr\r
- );\r
-\r
-/*\r
- * UEFI Statistics() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpStatistics (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN BOOLEAN reset,\r
- IN OUT UINTN *stat_size,\r
- OUT EFI_NETWORK_STATISTICS *stat_table\r
- );\r
-\r
-/*\r
- * UEFI MCastIPtoMAC() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpMcastIptoMac (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN BOOLEAN use_ipv6,\r
- IN EFI_IP_ADDRESS *ip_addr,\r
- OUT EFI_MAC_ADDRESS *mac_addr\r
- );\r
-\r
-/*\r
- * UEFI NvData() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpNvData (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN BOOLEAN read_write,\r
- IN UINTN offset,\r
- IN UINTN buff_size,\r
- IN OUT VOID *data\r
- );\r
-\r
-/*\r
- * UEFI GetStatus() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpGetStatus (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- OUT UINT32 *irq_stat OPTIONAL,\r
- OUT VOID **tx_buff OPTIONAL\r
- );\r
-\r
-/*\r
- * UEFI Transmit() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpTransmit (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- IN UINTN hdr_size,\r
- IN UINTN buff_size,\r
- IN VOID *data,\r
- IN EFI_MAC_ADDRESS *src_addr OPTIONAL,\r
- IN EFI_MAC_ADDRESS *dest_addr OPTIONAL,\r
- IN UINT16 *protocol OPTIONAL\r
- );\r
-\r
-/*\r
- * UEFI Receive() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpReceive (\r
- IN EFI_SIMPLE_NETWORK_PROTOCOL* Snp,\r
- OUT UINTN *hdr_size OPTIONAL,\r
- IN OUT UINTN *buff_size,\r
- OUT VOID *data,\r
- OUT EFI_MAC_ADDRESS *src_addr OPTIONAL,\r
- OUT EFI_MAC_ADDRESS *dest_addr OPTIONAL,\r
- OUT UINT16 *protocol OPTIONAL\r
- );\r
-\r
-\r
-/*---------------------------------------------------------------------------------------------------------------------\r
-\r
- UEFI-Compliant functions for EFI_COMPONENT_NAME2_PROTOCOL\r
-\r
- Refer to the Component Name Protocol section (10.5) in the UEFI 2.3.1 Specification for related definitions\r
-\r
----------------------------------------------------------------------------------------------------------------------*/\r
-\r
-/*\r
- * UEFI GetDriverName() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpGetDriverName (\r
- IN EFI_COMPONENT_NAME2_PROTOCOL *Snp,\r
- IN CHAR8 *Lang,\r
- OUT CHAR16 **DriverName\r
- );\r
-\r
-/*\r
- * UEFI GetControllerName() function\r
- *\r
- */\r
-EFI_STATUS\r
-EFIAPI\r
-SnpGetControllerName (\r
- IN EFI_COMPONENT_NAME2_PROTOCOL *Cnp,\r
- IN EFI_HANDLE ControllerHandle,\r
- IN EFI_HANDLE ChildHandle OPTIONAL,\r
- IN CHAR8 *Lang,\r
- OUT CHAR16 **ControllerName\r
- );\r
-\r
-/*------------------------------------------------------------------------------\r
- Utility functions\r
-------------------------------------------------------------------------------*/\r
-\r
-EFI_MAC_ADDRESS\r
-GetCurrentMacAddress (\r
- VOID\r
- );\r
-\r
-#endif // __LAN9118_DXE_H__\r