diff options
Diffstat (limited to 'sys/contrib/dev/nve/adapter.h')
-rw-r--r-- | sys/contrib/dev/nve/adapter.h | 583 |
1 files changed, 0 insertions, 583 deletions
diff --git a/sys/contrib/dev/nve/adapter.h b/sys/contrib/dev/nve/adapter.h deleted file mode 100644 index 40520e9..0000000 --- a/sys/contrib/dev/nve/adapter.h +++ /dev/null @@ -1,583 +0,0 @@ -/***************************************************************************\ -|* *| -|* Copyright 2001-2004 NVIDIA Corporation. All Rights Reserved. *| -|* *| -|* THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL *| -|* TO NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY *| -|* THIRD PARTY IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORP. *| -|* *| -|* THE INFORMATION CONTAINED HEREIN IS PROVIDED "AS IS" WITHOUT *| -|* EXPRESS OR IMPLIED WARRANTY OF ANY KIND, INCLUDING ALL IMPLIED *| -|* WARRANTIES OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A *| -|* PARTICULAR PURPOSE. *| -|* *| -\***************************************************************************/ - -/* - FILE: adapter.h - DATE: 2/7/00 - - This file contains the hardware interface to the ethernet adapter. -*/ - -#ifndef _ADAPTER_H_ -#define _ADAPTER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#define HDA_VERSION_STRING "HDR A: $Revision: #46 $" - -#ifdef MODS_NETWORK_BUILD -#ifndef _DRVAPP_H_ -#include "drvapp.h" -#endif -#endif - -////////////////////////////////////////////////////////////////// -// For the set and get configuration calls. -typedef struct _ADAPTER_CONFIG -{ - NV_UINT32 ulFlags; -} ADAPTER_CONFIG, *PADAPTER_CONFIG; -////////////////////////////////////////////////////////////////// - -typedef struct _ADAPTER_WRITE_OFFLOAD -{ - NV_UINT32 usBitmask; - NV_UINT32 ulMss; - -} ADAPTER_WRITE_OFFLOAD; - -////////////////////////////////////////////////////////////////// -// For the ADAPTER_Write1 call. -/* This scatter gather list should be same as defined in ndis.h by MS. - For ULONG_PTR MS header file says that it will be of same size as - pointer. It has been defined to take care of casting between differenet - sizes. -*/ -typedef struct _NVSCATTER_GATHER_ELEMENT { - NV_UINT32 PhysLow; - NV_UINT32 PhysHigh; - NV_UINT32 Length; - NV_VOID *Reserved; -} NVSCATTER_GATHER_ELEMENT, *PNVSCATTER_GATHER_ELEMENT; - -#ifndef linux -#pragma warning(disable:4200) -#endif -typedef struct _NVSCATTER_GATHER_LIST { - NV_UINT32 NumberOfElements; - NV_VOID *Reserved; - NVSCATTER_GATHER_ELEMENT Elements[0]; // Made 0 sized element to remove MODS compilation error - // Elements[0] and Elements[] have the same effect. - // sizeof(NVSCATTER_GATHER_LIST) is the same (value of 8) in both cases - // And both lead to Warning 4200 in MSVC -} NVSCATTER_GATHER_LIST, *PNVSCATTER_GATHER_LIST; -#ifndef linux -#pragma warning(default:4200) -#endif - -typedef struct _ADAPTER_WRITE_DATA1 -{ - NV_UINT32 ulTotalLength; - PNV_VOID pvID; - NV_UINT8 uc8021pPriority; - ADAPTER_WRITE_OFFLOAD *psOffload; - PNVSCATTER_GATHER_LIST pNVSGL; -} ADAPTER_WRITE_DATA1, *PADAPTER_WRITE_DATA1; - - -////////////////////////////////////////////////////////////////// -// For the ADAPTER_Write call. -typedef struct _ADAPTER_WRITE_ELEMENT -{ - PNV_VOID pPhysical; - NV_UINT32 ulLength; -} ADAPTER_WRITE_ELEMENT, *PADAPTER_WRITE_ELEMENT; - - -#define ADAPTER_WRITE_OFFLOAD_BP_SEGOFFLOAD 0 -#define ADAPTER_WRITE_OFFLOAD_BP_IPV4CHECKSUM 1 -#define ADAPTER_WRITE_OFFLOAD_BP_IPV6CHECKSUM 2 -#define ADAPTER_WRITE_OFFLOAD_BP_TCPCHECKSUM 3 -#define ADAPTER_WRITE_OFFLOAD_BP_UDPCHECKSUM 4 -#define ADAPTER_WRITE_OFFLOAD_BP_IPCHECKSUM 5 - - -// pvID is a value that will be passed back into OSAPI.pfnPacketWasSent -// when the transmission completes. if pvID is NULL, the ADAPTER code -// assumes the caller does not want the pfnPacketWasSent callback. -typedef struct _ADAPTER_WRITE_DATA -{ - NV_UINT32 ulNumberOfElements; - NV_UINT32 ulTotalLength; - PNV_VOID pvID; - NV_UINT8 uc8021pPriority; - ADAPTER_WRITE_OFFLOAD *psOffload; -#ifdef linux - ADAPTER_WRITE_ELEMENT sElement[32]; -#else - ADAPTER_WRITE_ELEMENT sElement[100]; -#endif -} ADAPTER_WRITE_DATA, *PADAPTER_WRITE_DATA; -////////////////////////////////////////////////////////////////// - - - -////////////////////////////////////////////////////////////////// -// For the ADAPTER_Read call. -typedef struct _ADAPTER_READ_ELEMENT -{ - PNV_VOID pPhysical; - NV_UINT32 ulLength; -} ADAPTER_READ_ELEMENT, *PADAPTER_READ_ELEMENT; - -typedef struct _ADAPTER_READ_OFFLOAD -{ - NV_UINT8 ucChecksumStatus; - -} ADAPTER_READ_OFFLOAD; - -typedef struct _ADAPTER_READ_DATA -{ - NV_UINT32 ulNumberOfElements; - NV_UINT32 ulTotalLength; - PNV_VOID pvID; - NV_UINT32 ulFilterMatch; - ADAPTER_READ_OFFLOAD sOffload; - ADAPTER_READ_ELEMENT sElement[10]; -} ADAPTER_READ_DATA, *PADAPTER_READ_DATA; - - -#define RDFLAG_CHK_NOCHECKSUM 0 -#define RDFLAG_CHK_IPPASSTCPFAIL 1 -#define RDFLAG_CHK_IPPASSUDPFAIL 2 -#define RDFLAG_CHK_IPFAIL 3 -#define RDFLAG_CHK_IPPASSNOTCPUDP 4 -#define RDFLAG_CHK_IPPASSTCPPASS 5 -#define RDFLAG_CHK_IPPASSUDPPASS 6 -#define RDFLAG_CHK_RESERVED 7 - - -// The ulFilterMatch flag can be a logical OR of the following -#define ADREADFL_UNICAST_MATCH 0x00000001 -#define ADREADFL_MULTICAST_MATCH 0x00000002 -#define ADREADFL_BROADCAST_MATCH 0x00000004 -////////////////////////////////////////////////////////////////// - - - -////////////////////////////////////////////////////////////////// -// For the ADAPTER_GetPowerCapabilities call. -typedef struct _ADAPTER_POWERCAPS -{ - NV_UINT32 ulPowerFlags; - NV_UINT32 ulMagicPacketWakeUpFlags; - NV_UINT32 ulPatternWakeUpFlags; - NV_UINT32 ulLinkChangeWakeUpFlags; - NV_SINT32 iMaxWakeUpPatterns; -} ADAPTER_POWERCAPS, *PADAPTER_POWERCAPS; - -// For the ADAPTER_GetPowerState and ADAPTER_SetPowerState call. -typedef struct _ADAPTER_POWERSTATE -{ - NV_UINT32 ulPowerFlags; - NV_UINT32 ulMagicPacketWakeUpFlags; - NV_UINT32 ulPatternWakeUpFlags; - NV_UINT32 ulLinkChangeWakeUpFlags; -} ADAPTER_POWERSTATE, *PADAPTER_POWERSTATE; - -// Each of the flag fields in the POWERCAPS structure above can have -// any of the following bitflags set giving the capabilites of the -// adapter. In the case of the wake up fields, these flags mean that -// wake up can happen from the specified power state. - -// For the POWERSTATE structure, the ulPowerFlags field should just -// have one of these bits set to go to that particular power state. -// The WakeUp fields can have one or more of these bits set to indicate -// what states should be woken up from. -#define POWER_STATE_D0 0x00000001 -#define POWER_STATE_D1 0x00000002 -#define POWER_STATE_D2 0x00000004 -#define POWER_STATE_D3 0x00000008 - -#define POWER_STATE_ALL (POWER_STATE_D0 | \ - POWER_STATE_D1 | \ - POWER_STATE_D2 | \ - POWER_STATE_D3) -////////////////////////////////////////////////////////////////// - - - -////////////////////////////////////////////////////////////////// -// The ADAPTER_GetPacketFilterCaps call returns a NV_UINT32 that can -// have the following capability bits set. -#define ACCEPT_UNICAST_PACKETS 0x00000001 -#define ACCEPT_MULTICAST_PACKETS 0x00000002 -#define ACCEPT_BROADCAST_PACKETS 0x00000004 -#define ACCEPT_ALL_PACKETS 0x00000008 - -#define ETH_LENGTH_OF_ADDRESS 6 - -// The ADAPTER_SetPacketFilter call uses this structure to know what -// packet filter to set. The ulPacketFilter field can contain some -// union of the bit flags above. The acMulticastMask array holds a -// 48 bit MAC address mask with a 0 in every bit position that should -// be ignored on compare and a 1 in every bit position that should -// be taken into account when comparing to see if the destination -// address of a packet should be accepted for multicast. -typedef struct _PACKET_FILTER -{ - NV_UINT32 ulFilterFlags; - NV_UINT8 acMulticastAddress[ETH_LENGTH_OF_ADDRESS]; - NV_UINT8 acMulticastMask[ETH_LENGTH_OF_ADDRESS]; -} PACKET_FILTER, *PPACKET_FILTER; -////////////////////////////////////////////////////////////////// - - -////////////////////////////////////////////////////////////////// -// A WAKE_UP_PATTERN is a 128-byte pattern that the adapter can -// look for in incoming packets to decide when to wake up. Higher- -// level protocols can use this to, for example, wake up the -// adapter whenever it sees an IP packet that is addressed to it. -// A pattern consists of 128 bits of byte masks that indicate -// which bytes in the packet are relevant to the pattern, plus -// values for each byte. -#define WAKE_UP_PATTERN_SIZE 128 - -typedef struct _WAKE_UP_PATTERN -{ - NV_UINT32 aulByteMask[WAKE_UP_PATTERN_SIZE/32]; - NV_UINT8 acData[WAKE_UP_PATTERN_SIZE]; -} WAKE_UP_PATTERN, *PWAKE_UP_PATTERN; - - - -// -// -// Adapter offload -// -typedef struct _ADAPTER_OFFLOAD { - - NV_UINT32 Type; - NV_UINT32 Value0; - -} ADAPTER_OFFLOAD, *PADAPTER_OFFLOAD; - -#define ADAPTER_OFFLOAD_VLAN 0x00000001 -#define ADAPTER_OFFLOAD_IEEE802_1P 0x00000002 -#define ADAPTER_OFFLOAD_IEEE802_1PQ_PAD 0x00000004 - -////////////////////////////////////////////////////////////////// - -// CMNDATA_OS_ADAPTER -// Structure common to OS and Adapter layers -// Used for moving data from the OS layer to the adapter layer through SetCommonData -// function call from OS layer to Adapter layer -// - -typedef struct _CMNDATA_OS_ADAPTER -{ -#ifndef linux - ASF_SEC0_BASE sRegSec0Base; -#endif - NV_UINT32 bFPGA; - NV_UINT32 ulFPGAEepromSize; - NV_UINT32 bChecksumOffloadEnable; - NV_UINT32 ulChecksumOffloadBM; - NV_UINT32 ulChecksumOffloadOS; - NV_UINT32 ulMediaIF; - NV_UINT32 bOemCustomEventRead; - - // Debug only right now - //!!! Beware mods is relying on the fields blow. - NV_UINT32 ulWatermarkTFBW; - NV_UINT32 ulBackoffRseed; - NV_UINT32 ulBackoffSlotTime; - NV_UINT32 ulModeRegTxReadCompleteEnable; - NV_UINT32 ulFatalErrorRegister; - -} CMNDATA_OS_ADAPTER; - - -////////////////////////////////////////////////////////////////// -// The functional typedefs for the ADAPTER Api -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLOSE) (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_INIT) (PNV_VOID pvContext, NV_UINT16 usForcedSpeed, NV_UINT8 ucForceDpx, NV_UINT8 ucForceMode, NV_UINT8 ucAsyncMode, NV_UINT32 *puiLinkState); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_DEINIT) (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_START) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_STOP) (PNV_VOID pvContext, NV_UINT8 ucIsPowerDown); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_QUERY_WRITE_SLOTS) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE) (PNV_VOID pvContext, ADAPTER_WRITE_DATA *pADWriteData); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE1) (PNV_VOID pvContext, ADAPTER_WRITE_DATA1 *pADWriteData1); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_QUERY_INTERRUPT) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_HANDLE_INTERRUPT) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_DISABLE_INTERRUPTS) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_ENABLE_INTERRUPTS) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLEAR_INTERRUPTS) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_CLEAR_TX_DESC) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_SPEED) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_MODE) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_LINK_STATE) (PNV_VOID pvContext, NV_UINT32 *pulLinkState); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_IS_LINK_INITIALIZING) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_RESET_PHY_INIT_STATE) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_TRANSMIT_QUEUE_SIZE) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_RECEIVE_QUEUE_SIZE) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_STATISTICS) (PNV_VOID pvContext, PADAPTER_STATS pADStats); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_POWER_CAPS) (PNV_VOID pvContext, PADAPTER_POWERCAPS pADPowerCaps); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_POWER_STATE) (PNV_VOID pvContext, PADAPTER_POWERSTATE pADPowerState); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_POWER_STATE) (PNV_VOID pvContext, PADAPTER_POWERSTATE pADPowerState); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_LOW_SPEED_FOR_PM) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_GET_PACKET_FILTER_CAPS) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_PACKET_FILTER) (PNV_VOID pvContext, PPACKET_FILTER pPacketFilter); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_SET_WAKE_UP_PATTERN) (PNV_VOID pvContext, NV_SINT32 iPattern, PWAKE_UP_PATTERN pPattern); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_ENABLE_WAKE_UP_PATTERN) (PNV_VOID pvContext, NV_SINT32 iPattern, NV_SINT32 iEnable); -typedef NV_API_CALL NV_SINT32 (* PFN_SET_NODE_ADDRESS) (PNV_VOID pvContext, NV_UINT8 *pNodeAddress); -typedef NV_API_CALL NV_SINT32 (* PFN_GET_NODE_ADDRESS) (PNV_VOID pvContext, NV_UINT8 *pNodeAddress); -typedef NV_API_CALL NV_SINT32 (* PFN_GET_ADAPTER_INFO) (PNV_VOID pvContext, PNV_VOID pVoidPtr, NV_SINT32 iType, NV_SINT32 *piLength); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_READ_PHY) (PNV_VOID pvContext, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 *pulValue); -typedef NV_API_CALL NV_SINT32 (* PFN_ADAPTER_WRITE_PHY) (PNV_VOID pvContext, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 ulValue); -typedef NV_API_CALL NV_VOID(* PFN_ADAPTER_SET_SPPED_DUPLEX) (PNV_VOID pvContext); -typedef NV_API_CALL NV_SINT32 (*PFN_REGISTER_OFFLOAD) (PNV_VOID pvContext, PADAPTER_OFFLOAD pOffload); -typedef NV_API_CALL NV_SINT32 (*PFN_DEREGISTER_OFFLOAD) (PNV_VOID pvContext, PADAPTER_OFFLOAD pOffload); -typedef NV_API_CALL NV_SINT32 (*PFN_RX_BUFF_READY) (PNV_VOID pvContext, PMEMORY_BLOCK pMemBlock, PNV_VOID pvID); - -#ifndef linux -typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETUPREGISTERS) (PNV_VOID pvContext, NV_SINT32 bInitTime); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETSEC0BASEADDRESS) (PNV_VOID pvContext, ASF_SEC0_BASE **ppsSec0Base); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETSOURCEIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucSrcIPAddress); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETDESTIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestIPAddress); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETDESTIPADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestIPAddress); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_WRITEEEPROMANDSETUPREGISTERS) (PNV_VOID pvContext, NV_BOOLEAN bCompare, PNV_VOID pucValue, PNV_VOID pszSec0BaseMember, - NV_UINT16 usCount, NV_UINT32 ulAddressOffset); - -typedef NV_SINT32 (*PFN_ADAPTER_ASF_ISASFREADY) (PNV_VOID pvContext, ASF_ASFREADY *psASFReady); - -typedef NV_SINT32 (*PFN_ADAPTER_ASF_SETDESTMACADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucDestMACAddress); -typedef NV_SINT32 (*PFN_ADAPTER_ASF_GETSOURCEMACADDRESS) (PNV_VOID pvContext, NV_UINT8 *pucSrcMACAddress); - -typedef NV_SINT32 (*PFN_ADAPTER_ASF_CHECK_FOR_EEPROM_PRESENCE) (PNV_VOID pvContext); -#endif - -typedef NV_API_CALL NV_VOID (*PFN_ADAPTER_SET_COMMONDATA) (PNV_VOID pvContext, CMNDATA_OS_ADAPTER *psOSAdpater); -typedef NV_API_CALL NV_VOID (*PFN_ADAPTER_SET_CHECKSUMOFFLOAD) (PNV_VOID pvContext, NV_UINT32 bSet); - - - -typedef struct _ADAPTER_API -{ - // The adapter context - PNV_VOID pADCX; - - // The adapter interface - PFN_ADAPTER_CLOSE pfnClose; - PFN_ADAPTER_INIT pfnInit; - PFN_ADAPTER_DEINIT pfnDeinit; - PFN_ADAPTER_START pfnStart; - PFN_ADAPTER_STOP pfnStop; - PFN_ADAPTER_QUERY_WRITE_SLOTS pfnQueryWriteSlots; - PFN_ADAPTER_WRITE pfnWrite; - PFN_ADAPTER_WRITE1 pfnWrite1; - PFN_ADAPTER_QUERY_INTERRUPT pfnQueryInterrupt; - PFN_ADAPTER_HANDLE_INTERRUPT pfnHandleInterrupt; - PFN_ADAPTER_DISABLE_INTERRUPTS pfnDisableInterrupts; - PFN_ADAPTER_ENABLE_INTERRUPTS pfnEnableInterrupts; - PFN_ADAPTER_CLEAR_INTERRUPTS pfnClearInterrupts; - PFN_ADAPTER_CLEAR_TX_DESC pfnClearTxDesc; - PFN_ADAPTER_GET_LINK_SPEED pfnGetLinkSpeed; - PFN_ADAPTER_GET_LINK_MODE pfnGetLinkMode; - PFN_ADAPTER_GET_LINK_STATE pfnGetLinkState; - PFN_ADAPTER_IS_LINK_INITIALIZING pfnIsLinkInitializing; - PFN_ADAPTER_RESET_PHY_INIT_STATE pfnResetPhyInitState; - PFN_ADAPTER_GET_TRANSMIT_QUEUE_SIZE pfnGetTransmitQueueSize; - PFN_ADAPTER_GET_RECEIVE_QUEUE_SIZE pfnGetReceiveQueueSize; - PFN_ADAPTER_GET_STATISTICS pfnGetStatistics; - PFN_ADAPTER_GET_POWER_CAPS pfnGetPowerCaps; - PFN_ADAPTER_GET_POWER_STATE pfnGetPowerState; - PFN_ADAPTER_SET_POWER_STATE pfnSetPowerState; - PFN_ADAPTER_SET_LOW_SPEED_FOR_PM pfnSetLowSpeedForPM; - PFN_ADAPTER_GET_PACKET_FILTER_CAPS pfnGetPacketFilterCaps; - PFN_ADAPTER_SET_PACKET_FILTER pfnSetPacketFilter; - PFN_ADAPTER_SET_WAKE_UP_PATTERN pfnSetWakeUpPattern; - PFN_ADAPTER_ENABLE_WAKE_UP_PATTERN pfnEnableWakeUpPattern; - PFN_SET_NODE_ADDRESS pfnSetNodeAddress; - PFN_GET_NODE_ADDRESS pfnGetNodeAddress; - PFN_GET_ADAPTER_INFO pfnGetAdapterInfo; - PFN_ADAPTER_SET_SPPED_DUPLEX pfnSetSpeedDuplex; - PFN_ADAPTER_READ_PHY pfnReadPhy; - PFN_ADAPTER_WRITE_PHY pfnWritePhy; - PFN_REGISTER_OFFLOAD pfnRegisterOffload; - PFN_DEREGISTER_OFFLOAD pfnDeRegisterOffload; - PFN_RX_BUFF_READY pfnRxBuffReady; -#ifndef linux - PFN_ADAPTER_ASF_SETUPREGISTERS pfnASFSetupRegisters; - PFN_ADAPTER_ASF_GETSEC0BASEADDRESS pfnASFGetSec0BaseAddress; - PFN_ADAPTER_ASF_SETSOURCEIPADDRESS pfnASFSetSourceIPAddress; - PFN_ADAPTER_ASF_GETDESTIPADDRESS pfnASFGetDestIPAddress; - PFN_ADAPTER_ASF_SETDESTIPADDRESS pfnASFSetDestIPAddress; - PFN_ADAPTER_ASF_WRITEEEPROMANDSETUPREGISTERS pfnASFWriteEEPROMAndSetupRegisters; - PFN_ADAPTER_ASF_SETDESTMACADDRESS pfnASFSetDestMACAddress; - PFN_ADAPTER_ASF_GETSOURCEMACADDRESS pfnASFGetSourceMACAddress; - PFN_ADAPTER_ASF_ISASFREADY pfnASFIsASFReady; - PFN_ADAPTER_ASF_CHECK_FOR_EEPROM_PRESENCE pfnASFCheckForEepromPresence; -#endif - PFN_ADAPTER_SET_COMMONDATA pfnSetCommonData; - - PFN_ADAPTER_SET_CHECKSUMOFFLOAD pfnSetChecksumOffload; - -} ADAPTER_API, *PADAPTER_API; -////////////////////////////////////////////////////////////////// - -#define MAX_PACKET_TO_ACCUMULATE 16 - -typedef struct _ADAPTER_OPEN_PARAMS -{ - PNV_VOID pOSApi; //pointer to OSAPI structure passed from higher layer - PNV_VOID pvHardwareBaseAddress; //memory mapped address passed from higher layer - NV_UINT32 ulPollInterval; //poll interval in micro seconds. Used in polling mode - NV_UINT32 MaxDpcLoop; //Maximum number of times we loop to in function ADAPTER_HandleInterrupt - NV_UINT32 MaxRxPkt; //Maximum number of packet we process each time in function UpdateReceiveDescRingData - NV_UINT32 MaxTxPkt; //Maximum number of packet we process each time in function UpdateTransmitDescRingData - NV_UINT32 MaxRxPktToAccumulate; //maximum number of rx packet we accumulate in UpdateReceiveDescRingData before - //indicating packets to OS. - NV_UINT32 SentPacketStatusSuccess; //Status returned from adapter layer to higher layer when packet was sent successfully - NV_UINT32 SentPacketStatusFailure; ////Status returned from adapter layer to higher layer when packet send was unsuccessful - NV_UINT32 SetForcedModeEveryNthRxPacket; //NOT USED: For experiment with descriptor based interrupt - NV_UINT32 SetForcedModeEveryNthTxPacket; //NOT USED: For experiment with descriptor based interrupt - NV_UINT32 RxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt - NV_UINT32 TxForcedInterrupt; //NOT USED: For experiment with descriptor based interrupt - NV_UINT32 DeviceId; //Of MAC - NV_UINT32 DeviceType; - NV_UINT32 PollIntervalInusForThroughputMode; //Of MAC - NV_UINT32 bASFEnabled; - NV_UINT32 ulDescriptorVersion; - NV_UINT32 ulMaxPacketSize; - - -#define MEDIA_IF_AUTO 0 -#define MEDIA_IF_RGMII 1 -#define MEDIA_IF_MII 2 - NV_UINT32 ulMediaIF; - - NV_UINT32 PhyPowerIsolationTimeoutInms; - NV_UINT32 PhyResetTimeoutInms; - NV_UINT32 PhyAutonegotiateTimeoutInms; - NV_UINT32 PhyLinkupTimeoutInms; - NV_UINT32 PhyRdWrTimeoutInus; - NV_UINT32 PhyPowerdownOnClose; - - // Added for Bug 100715 - NV_UINT32 bDisableMIIInterruptAndReadPhyStatus; - -}ADAPTER_OPEN_PARAMS, *PADAPTER_OPEN_PARAMS; - -////////////////////////////////////////////////////////////////// -// This is the one function in the adapter interface that is publicly -// available. The rest of the interface is returned in the pAdapterApi. -// The first argument needs to be cast to a OSAPI structure pointer. -// The second argument should be cast to a ADPATER_API structure pointer. -NV_API_CALL NV_SINT32 ADAPTER_Open (PADAPTER_OPEN_PARAMS pAdapterOpenParams, PNV_VOID *pvpAdapterApi, NV_UINT32 *pulPhyAddr); - -////////////////////////////////////////////////////////////////// - - - -////////////////////////////////////////////////////////////////// -// Here are the error codes the adapter function calls return. -#define ADAPTERERR_NONE 0x0000 -#define ADAPTERERR_COULD_NOT_ALLOC_CONTEXT 0x0001 -#define ADAPTERERR_COULD_NOT_CREATE_CONTEXT 0x0002 -#define ADAPTERERR_COULD_NOT_OPEN_PHY 0x0003 -#define ADAPTERERR_TRANSMIT_QUEUE_FULL 0x0004 -#define ADAPTERERR_COULD_NOT_INIT_PHY 0x0005 -#define ADAPTERERR_PHYS_SIZE_SMALL 0x0006 -#define ADAPTERERR_ERROR 0x0007 // Generic error -////////////////////////////////////////////////////////////////// - -// This block moved from myadap.h -// nFlag for Stop/Start ReceiverAndOrTransmitter can be an OR of -// the following two flags -#define AFFECT_RECEIVER 0x01 -#define AFFECT_TRANSMITTER 0x02 - -#define REDUCE_LENGTH_BY 48 - -#define EXTRA_WRITE_SLOT_TO_REDUCE_PER_SEND 4 -#define MAX_TX_DESCS 256 -#define MAX_TX_DESCS_VER2 (256 * 4) - -typedef struct _TX_INFO_ADAP -{ - NV_UINT32 NoOfDesc; - PNV_VOID pvVar2; -}TX_INFO_ADAP, *PTX_INFO_ADAP; - -#define WORKAROUND_FOR_MCP3_TX_STALL - -#ifdef WORKAROUND_FOR_MCP3_TX_STALL -NV_SINT32 ADAPTER_WorkaroundTXHang(PNV_VOID pvContext); -#endif - -//#define TRACK_INIT_TIME - -#ifdef TRACK_INIT_TIME -//This routine is defined in entry.c adapter doesn't link int64.lib -//We defined here so that its easy to use it in phy as well as mswin - -#define MAX_PRINT_INDEX 32 -extern NV_VOID PrintTime(NV_UINT32 ulIndex); -#define PRINT_INIT_TIME(_a) PrintTime((_a)) -#else -#define PRINT_INIT_TIME(_a) -#endif - -// Segmentation offload info -#define DEVCAPS_SEGOL_BP_ENABLE 0 -#define DEVCAPS_SEGOL_BP_IPOPTIONS 1 -#define DEVCAPS_SEGOL_BP_TCPOPTIONS 2 -#define DEVCAPS_SEGOL_BP_SEGSIZE_LO 8 -#define DEVCAPS_SEGOL_BP_SEGSIZE_HI 31 - - -// Checksum offload info -// Byte 0 : V4 TX -#define DEVCAPS_V4_TX_BP_IPOPTIONS 0 -#define DEVCAPS_V4_TX_BP_TCPOPTIONS 1 -#define DEVCAPS_V4_TX_BP_TCPCHECKSUM 2 -#define DEVCAPS_V4_TX_BP_UDPCHECKSUM 3 -#define DEVCAPS_V4_TX_BP_IPCHECKSUM 4 - -// Byte 0 : V4 RX -#define DEVCAPS_V4_RX_BP_IPOPTIONS 8 -#define DEVCAPS_V4_RX_BP_TCPOPTIONS 9 -#define DEVCAPS_V4_RX_BP_TCPCHECKSUM 10 -#define DEVCAPS_V4_RX_BP_UDPCHECKSUM 11 -#define DEVCAPS_V4_RX_BP_IPCHECKSUM 12 - -// Byte 1 : V6 TX -#define DEVCAPS_V6_TX_BP_IPOPTIONS 16 -#define DEVCAPS_V6_TX_BP_TCPOPTIONS 17 -#define DEVCAPS_V6_TX_BP_TCPCHECKSUM 18 -#define DEVCAPS_V6_TX_BP_UDPCHECKSUM 19 - -// Byte 2 : V6 RX -#define DEVCAPS_V6_RX_BP_IPOPTIONS 24 -#define DEVCAPS_V6_RX_BP_TCPOPTIONS 25 -#define DEVCAPS_V6_RX_BP_TCPCHECKSUM 26 -#define DEVCAPS_V6_RX_BP_UDPCHECKSUM 27 - - -#define DESCR_VER_1 1 // MCP1, MCP2 and CK8 descriptor version -#define DESCR_VER_2 2 // The decsriptor structure for CK8G - -// Get device and vendor IDs from 32 bit DeviceVendorID -#define GET_DEVICEID(x) (((x) >> 16) & 0xFFFF) -#define GET_VENDORID(x) ((x) & 0xFFFF) - -#ifdef __cplusplus -} // extern "C" -#endif - -#endif // _ADAPTER_H_ |