Import the nForce MCP NIC bits. This is version 1.0-0301.
Demanded by: DES Encouraged by: scottl
This commit is contained in:
commit
1e5fec6b15
579
sys/contrib/dev/nve/adapter.h
Normal file
579
sys/contrib/dev/nve/adapter.h
Normal file
@ -0,0 +1,579 @@
|
||||
/***************************************************************************\
|
||||
|* *|
|
||||
|* 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;
|
||||
ADAPTER_WRITE_ELEMENT sElement[100];
|
||||
} 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_
|
317
sys/contrib/dev/nve/amd64/nvenetlib.o.bz2.uu
Normal file
317
sys/contrib/dev/nve/amd64/nvenetlib.o.bz2.uu
Normal file
@ -0,0 +1,317 @@
|
||||
begin-base64 644 nvenetlib.o.bz2
|
||||
QlpoOTFBWSZTWUBpjdcAPKd/////////////////////////////////////////////4EQ9vr29
|
||||
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
|
||||
Z4dtCOzGhtGMgBf/xdyRThQkEBpjdcA=
|
||||
====
|
281
sys/contrib/dev/nve/basetype.h
Normal file
281
sys/contrib/dev/nve/basetype.h
Normal file
@ -0,0 +1,281 @@
|
||||
/***************************************************************************\
|
||||
|* *|
|
||||
|* 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:
|
||||
|
||||
basetype.h
|
||||
|
||||
|
||||
Abstract:
|
||||
|
||||
This file contains the base type definitions used by the networking driver.
|
||||
|
||||
|
||||
Revision History:
|
||||
|
||||
SNo. Date Author Description
|
||||
1. 2/7/2000 AJha Created
|
||||
|
||||
*/
|
||||
|
||||
#ifndef _BASETYPE_H_
|
||||
#define _BASETYPE_H_
|
||||
|
||||
#ifndef IN
|
||||
#define IN
|
||||
#endif
|
||||
|
||||
#ifndef OUT
|
||||
#define OUT
|
||||
#endif
|
||||
|
||||
//
|
||||
// Useful "types"
|
||||
|
||||
#ifndef NULL
|
||||
#define NULL 0
|
||||
#endif
|
||||
|
||||
#ifndef TRUE
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
#ifndef FALSE
|
||||
#define FALSE 0
|
||||
#endif
|
||||
|
||||
#if 1
|
||||
//
|
||||
// Don't use as these are going to be deleted soon. Use NV_ instead
|
||||
//
|
||||
#define VOID void
|
||||
typedef VOID *PVOID;
|
||||
|
||||
typedef unsigned char UCHAR;
|
||||
typedef UCHAR * PUCHAR;
|
||||
typedef unsigned short USHORT;
|
||||
typedef USHORT * PUSHORT;
|
||||
#ifdef linux
|
||||
typedef unsigned int ULONG;
|
||||
#else
|
||||
typedef unsigned long ULONG;
|
||||
#endif
|
||||
typedef ULONG * PULONG;
|
||||
|
||||
typedef char CHAR;
|
||||
typedef short SHORT;
|
||||
typedef long LONG;
|
||||
|
||||
typedef unsigned int UINT;
|
||||
typedef unsigned int *PUINT;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define NV_VOID void
|
||||
typedef NV_VOID *PNV_VOID;
|
||||
|
||||
typedef unsigned long NV_BOOLEAN, *PNV_BOOLEAN;
|
||||
|
||||
typedef unsigned char NV_UINT8, *PNV_UINT8;
|
||||
typedef unsigned short NV_UINT16, *PNV_UINT16;
|
||||
#ifdef linux
|
||||
typedef unsigned int NV_UINT32, *PNV_UINT32;
|
||||
#else
|
||||
typedef unsigned long NV_UINT32, *PNV_UINT32;
|
||||
#endif
|
||||
|
||||
typedef signed char NV_SINT8, *PNV_SINT8;
|
||||
typedef signed short NV_SINT16, *PNV_SINT16;
|
||||
typedef signed long NV_SINT32, *PNV_SINT32;
|
||||
|
||||
|
||||
#if defined(linux)
|
||||
|
||||
typedef unsigned long long NV_UINT64, *PNV_UINT64;
|
||||
typedef signed long long NV_SINT64, *PNV_SINT64;
|
||||
|
||||
#else
|
||||
#if _MSC_VER >= 1200 // MSVC 6.0 onwards
|
||||
typedef unsigned __int64 NV_UINT64, *PNV_UINT64;
|
||||
typedef signed __int64 NV_SINT64, *PNV_SINT64;
|
||||
#else
|
||||
typedef unsigned long NV_UINT64, *PNV_UINT64;
|
||||
typedef signed long NV_SINT64, *PNV_SINT64;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef _AMD64_
|
||||
typedef unsigned int NV_UINT;
|
||||
typedef signed int NV_INT;
|
||||
#else
|
||||
|
||||
#if defined(linux)
|
||||
|
||||
typedef unsigned long long NV_UINT;
|
||||
typedef signed long long NV_INT;
|
||||
|
||||
#else
|
||||
|
||||
typedef unsigned __int64 NV_UINT;
|
||||
typedef signed __int64 NV_INT;
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// Floating point definitions
|
||||
//
|
||||
typedef float NV_REAL32; // 4-byte floating point
|
||||
typedef double NV_REAL64; // 8-byte floating point
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Bit defintions
|
||||
//
|
||||
#define NV_BIT(bitpos) (1 << (bitpos))
|
||||
|
||||
// NV_BIT_SET
|
||||
// Sets the specified bit position (0..31).
|
||||
// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
|
||||
// x = 0xA0
|
||||
// NV_BIT_SET(x, 1)
|
||||
// Result: x = 0xA2
|
||||
#define NV_BIT_SET(bits, bitpos) ((bits) |= (NV_BIT(bitpos)))
|
||||
|
||||
// NV_BIT_CLEAR
|
||||
// Clears the specified bit position (0..31)
|
||||
// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
|
||||
// x = 0xAA
|
||||
// NV_BIT_CLEAR(x, 1)
|
||||
// Result: x = 0xA8
|
||||
#define NV_BIT_CLEAR(bits, bitpos) ((bits) &= (~NV_BIT(bitpos)))
|
||||
|
||||
// NV_BIT_GET
|
||||
// Gets the bit at the specified bit position (0..31)
|
||||
// Parameter bits can be 1 byte to 4 bytes, but the caller needs to make sure bitpos fits into it.
|
||||
// Result is either 1 or 0.
|
||||
// x = 0xAA
|
||||
// NV_BIT_GET(x, 1)
|
||||
// Result: x = 1
|
||||
#define NV_BIT_GET(bits, bitpos) (((bits) >> (bitpos)) & 0x0001)
|
||||
|
||||
|
||||
// NV_BIT_GETVALUE
|
||||
// Gets the value from a 32 bit ULONG at specified bit position.
|
||||
// Parameter bits needs to be 4 bytes long.
|
||||
// Ex. ul32 = 0xFEDCBA98
|
||||
// ulVal = NV_BIT_GETVALUE(ul32, 3, 0) : Gets value from Bit position 3 to 0
|
||||
// Result : ulVal = 8
|
||||
#define NV_BIT_GETVALUE(ulOrigValue, bitposHi, bitposLow) (((ulOrigValue) >> (bitposLow)) & (~(0xFFFFFFFF << ((bitposHi) - (bitposLow) +1))))
|
||||
|
||||
// NV_BIT_SETVALUE
|
||||
// Set a value in a 32 bit ULONG at a specific bit position.
|
||||
// Parameter bits needs to be 4 bytes long.
|
||||
// Ex. ul32 = 0xFEDCBA98
|
||||
// NV_BIT_SETVALUE(ul32, 0xF, 3, 0) : Sets value at Bit position 3 to 0
|
||||
// Result : ul32 becomes 0xFEDCBA9F
|
||||
#define NV_BIT_SETVALUE(ulOrigValue, ulWindowValue, bitposHi, bitposLow) \
|
||||
((ulOrigValue) = ((((ulOrigValue) & (~ ((0xFFFFFFFF >> (31 - (bitposHi))) & (0xFFFFFFFF << (bitposLow))))) | ((ulWindowValue) << (bitposLow)))))
|
||||
|
||||
|
||||
#define NV_BYTE(ulus, bytepos) ((ulus >> (8 * (bytepos))) & 0xFF)
|
||||
|
||||
|
||||
#define SWAP_U16(us) ((((us) & 0x00FF) << 8) | \
|
||||
(((us) & 0xFF00) >> 8))
|
||||
|
||||
#define SWAP_U32(ul) ((((ul) & 0x000000FF) << 24) | \
|
||||
(((ul) & 0x0000FF00) << 8) | \
|
||||
(((ul) & 0x00FF0000) >> 8) | \
|
||||
(((ul) & 0xFF000000) >> 24))
|
||||
|
||||
#define NV_FIELD_OFFSET(TYPE, FIELD) ((NV_UINT32)((NV_UINT64)&((TYPE *)0)->FIELD))
|
||||
|
||||
#define ADDRESS_OFFSET(structure, member) ((NV_UINT32) ((NV_UINT8 *) &(structure).member \
|
||||
- (NV_UINT8 *) &(structure)))
|
||||
|
||||
|
||||
#define NV_MIN(a, b) ((a < b) ? a : b)
|
||||
#define NV_MAX(a, b) ((a > b) ? a : b)
|
||||
|
||||
#ifdef AMD64
|
||||
#define PNV_VOID_TO_NV_UINT64(x) ((NV_UINT64)(x))
|
||||
#define PNV_VOID_TO_NV_UINT32(x) ((NV_UINT32)(NV_UINT64)(x))
|
||||
#define NV_UINT64_TO_PNV_VOID(x) ((PNV_VOID)(x))
|
||||
#define NV_UINT32_TO_PNV_VOID(x) ((PNV_VOID)(NV_UINT64)(x))
|
||||
#else
|
||||
#define PNV_VOID_TO_NV_UINT64(x) ((NV_UINT64)(NV_UINT32)(x))
|
||||
#define PNV_VOID_TO_NV_UINT32(x) ((NV_UINT32)(x))
|
||||
#define NV_UINT64_TO_PNV_VOID(x) ((PNV_VOID)(NV_UINT32)(x))
|
||||
#define NV_UINT32_TO_PNV_VOID(x) ((PNV_VOID)(x))
|
||||
#endif
|
||||
|
||||
#define NV_MAKE_TAG32(s) (((NV_UINT32)((s)[3]) << 24) | ((NV_UINT32)((s)[2]) << 16) | \
|
||||
((NV_UINT32)((s)[1]) << 8) | ((NV_UINT32)((s)[0])))
|
||||
|
||||
#define NV_MAKE_TAG64(s) (((NV_UINT64)((s)[7]) << 56) | ((NV_UINT64)((s)[6]) << 48) | \
|
||||
((NV_UINT64)((s)[5]) << 40) | ((NV_UINT64)((s)[4]) << 32) | \
|
||||
((NV_UINT64)((s)[3]) << 24) | ((NV_UINT64)((s)[2]) << 16) | \
|
||||
((NV_UINT64)((s)[1]) << 8) | ((NV_UINT64)((s)[0])))
|
||||
|
||||
typedef union _NVLARGE_INTEGER {
|
||||
|
||||
#if 0
|
||||
// NO UNNAMED UNIONS ALLOWED !@
|
||||
struct {
|
||||
NV_UINT32 LowPart;
|
||||
NV_SINT32 HighPart;
|
||||
};
|
||||
#endif
|
||||
|
||||
struct {
|
||||
NV_UINT32 LowPart;
|
||||
NV_SINT32 HighPart;
|
||||
} u;
|
||||
|
||||
NV_SINT64 QuadPart;
|
||||
|
||||
} NVLARGE_INTEGER, *PNVLARGE_INTEGER;
|
||||
|
||||
|
||||
#ifndef LINUX
|
||||
typedef unsigned short NV_WCHAR;
|
||||
#else
|
||||
typedef unsigned long NV_WCHAR;
|
||||
#endif
|
||||
|
||||
typedef NV_WCHAR *PNV_WSTR;
|
||||
|
||||
#if defined(linux)
|
||||
#if !defined(NV_API_CALL)
|
||||
#if defined (__i386__)
|
||||
#define NV_API_CALL __attribute__ ((regparm(0)))
|
||||
#else
|
||||
#define NV_API_CALL
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
#define NV_API_CALL
|
||||
#endif
|
||||
|
||||
#endif // _BASETYPE_H_
|
190
sys/contrib/dev/nve/drvinfo.h
Normal file
190
sys/contrib/dev/nve/drvinfo.h
Normal file
@ -0,0 +1,190 @@
|
||||
/***************************************************************************\
|
||||
|* *|
|
||||
|* Copyright 2001-2003 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. *|
|
||||
|* *|
|
||||
\***************************************************************************/
|
||||
|
||||
/*
|
||||
* This file contains the header info common to the network drivers and applications.
|
||||
* Currently, these applications include ASF, co-installers, and qstats.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef _DRVINFO_H_
|
||||
#define _DRVINFO_H_
|
||||
|
||||
// Switch to byte packing, regardless of global packing specified by the compiler switch
|
||||
#pragma pack(1)
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// For the ADAPTER_GetStatistics call used by qstats. This
|
||||
// is the template used by the legacy driver.
|
||||
#define MAX_TRANSMIT_COLISION_STATS 16
|
||||
|
||||
#define ADAPTER_STATS_LEGACY_VERSION 1
|
||||
#define ADAPTER_STATS_RM_VERSION 2
|
||||
|
||||
typedef struct _ADAPTER_STATS_V1
|
||||
{
|
||||
NV_UINT32 ulVersion;
|
||||
|
||||
NV_UINT32 ulSuccessfulTransmissions;
|
||||
NV_UINT32 ulFailedTransmissions;
|
||||
NV_UINT32 ulRetryErrors;
|
||||
NV_UINT32 ulUnderflowErrors;
|
||||
NV_UINT32 ulLossOfCarrierErrors;
|
||||
NV_UINT32 ulLateCollisionErrors;
|
||||
NV_UINT32 ulDeferredTransmissions;
|
||||
NV_UINT32 ulExcessDeferredTransmissions;
|
||||
NV_UINT32 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
|
||||
|
||||
NV_UINT32 ulMissedFrames;
|
||||
NV_UINT32 ulSuccessfulReceptions;
|
||||
NV_UINT32 ulFailedReceptions;
|
||||
NV_UINT32 ulCRCErrors;
|
||||
NV_UINT32 ulFramingErrors;
|
||||
NV_UINT32 ulOverFlowErrors;
|
||||
NV_UINT32 ulFrameErrorsPrivate; //Not for public.
|
||||
NV_UINT32 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
|
||||
|
||||
//interrupt related statistics
|
||||
NV_UINT32 ulRxInterrupt;
|
||||
NV_UINT32 ulRxInterruptUnsuccessful;
|
||||
NV_UINT32 ulTxInterrupt;
|
||||
NV_UINT32 ulTxInterruptUnsuccessful;
|
||||
NV_UINT32 ulPhyInterrupt;
|
||||
|
||||
} ADAPTER_STATS_V1, *PADAPTER_STATS_V1;
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
//////////////////////////////////////////////////////////////////
|
||||
// For the ADAPTER_GetStatistics call used by qstats. This
|
||||
// is the template used by the FD.
|
||||
typedef struct _ADAPTER_STATS
|
||||
{
|
||||
NV_UINT32 ulVersion;
|
||||
NV_UINT8 ulMacAddress[6];
|
||||
|
||||
//
|
||||
// Tx counters.
|
||||
//
|
||||
NV_UINT64 ulSuccessfulTransmissions;
|
||||
NV_UINT64 ulFailedTransmissions;
|
||||
NV_UINT64 ulRetryErrors;
|
||||
NV_UINT64 ulUnderflowErrors;
|
||||
NV_UINT64 ulLossOfCarrierErrors;
|
||||
NV_UINT64 ulLateCollisionErrors;
|
||||
NV_UINT64 ulDeferredTransmissions;
|
||||
NV_UINT64 ulExcessDeferredTransmissions;
|
||||
NV_UINT64 aulSuccessfulTransmitsAfterCollisions[MAX_TRANSMIT_COLISION_STATS];
|
||||
|
||||
//
|
||||
// New Tx counters for GigE.
|
||||
//
|
||||
NV_UINT64 ulTxByteCount;
|
||||
|
||||
//
|
||||
// Rx counters.
|
||||
//
|
||||
NV_UINT64 ulMissedFrames;
|
||||
NV_UINT64 ulSuccessfulReceptions;
|
||||
NV_UINT64 ulFailedReceptions;
|
||||
NV_UINT64 ulCRCErrors;
|
||||
NV_UINT64 ulLengthErrors;
|
||||
NV_UINT64 ulFramingErrors;
|
||||
NV_UINT64 ulOverFlowErrors;
|
||||
NV_UINT64 ulRxNoBuffer;
|
||||
NV_UINT64 ulFrameErrorsPrivate; //Not for public.
|
||||
NV_UINT64 ulNullBufferReceivePrivate; //Not for public, These are the packets which we didn't indicate to OS
|
||||
|
||||
//
|
||||
// New Rx counters for GigE.
|
||||
//
|
||||
NV_UINT64 ulRxExtraByteCount;
|
||||
NV_UINT64 ulRxFrameTooLongCount;
|
||||
NV_UINT64 ulRxFrameAlignmentErrorCount;
|
||||
NV_UINT64 ulRxLateCollisionErrors;
|
||||
NV_UINT64 ulRxRuntPacketErrors;
|
||||
|
||||
NV_UINT64 ulRxUnicastFrameCount;
|
||||
NV_UINT64 ulRxMulticastFrameCount;
|
||||
NV_UINT64 ulRxBroadcastFrameCount;
|
||||
NV_UINT64 ulRxPromiscuousModeFrameCount;
|
||||
|
||||
//Interrupt related statistics
|
||||
NV_UINT64 ulRxInterrupt;
|
||||
NV_UINT64 ulRxInterruptUnsuccessful;
|
||||
NV_UINT64 ulTxInterrupt;
|
||||
NV_UINT64 ulTxInterruptUnsuccessful;
|
||||
NV_UINT64 ulPhyInterrupt;
|
||||
|
||||
|
||||
//
|
||||
// Handy things to know
|
||||
//
|
||||
NV_UINT64 ulDescriptorVersion;
|
||||
NV_UINT64 ulPollingCfg; // configured for cpu or throughput
|
||||
NV_UINT64 ulPollingState; // current optimizefor state.
|
||||
|
||||
NV_UINT64 ulNumTxDesc;
|
||||
NV_UINT64 ulNumRxDesc;
|
||||
|
||||
//
|
||||
// Useful to determine if TX is stuck.
|
||||
//
|
||||
NV_UINT64 ulNumTxPktsQueued;
|
||||
NV_UINT64 ulNumTxPktsInProgress;
|
||||
|
||||
//
|
||||
// Rx Xsum Cntrs
|
||||
//
|
||||
NV_UINT64 ulNoRxPktsNoXsum;
|
||||
NV_UINT64 ulNoRxPktsXsumIpPassTcpFail;
|
||||
NV_UINT64 ulNoRxPktsXsumIpPassUdpFail;
|
||||
NV_UINT64 ulNoRxPktsXsumIpFail;
|
||||
NV_UINT64 ulNoRxPktsXsumIpPassNoTcpUdp;
|
||||
NV_UINT64 ulNoRxPktsXsumIpPassTcpPass;
|
||||
NV_UINT64 ulNoRxPktsXsumIpPassUdpPass;
|
||||
NV_UINT64 ulNoRxPktsXsumReserved;
|
||||
|
||||
#ifdef _PERF_LOOP_CNTRS
|
||||
NV_UINT64 ulNumTxCmplsToProcess;
|
||||
NV_UINT64 ulNumRxCmplsToProcess;
|
||||
NV_UINT64 ulNumIntsToProcess;
|
||||
|
||||
NV_UINT64 IntLoop0Cnt;
|
||||
NV_UINT64 IntLoop1Cnt;
|
||||
NV_UINT64 IntLoop2Cnt;
|
||||
NV_UINT64 IntLoop3Cnt;
|
||||
NV_UINT64 IntLoop4Cnt;
|
||||
NV_UINT64 IntLoop5Cnt;
|
||||
NV_UINT64 IntLoop6To10Cnt;
|
||||
NV_UINT64 IntLoop11Cnt;
|
||||
NV_UINT64 IntMaxLoopCnt;
|
||||
|
||||
NV_UINT64 IntRxCnt0;
|
||||
NV_UINT64 IntTxCnt0;
|
||||
|
||||
NV_UINT64 MaxRxLoopCnt;
|
||||
NV_UINT64 MaxTxLoopCnt;
|
||||
|
||||
#endif
|
||||
} ADAPTER_STATS, *PADAPTER_STATS;
|
||||
//////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma pack()
|
||||
|
||||
|
||||
#endif // #define _DRVINFO_H_
|
||||
|
||||
|
316
sys/contrib/dev/nve/i386/nvenetlib.o.bz2.uu
Normal file
316
sys/contrib/dev/nve/i386/nvenetlib.o.bz2.uu
Normal file
@ -0,0 +1,316 @@
|
||||
begin-base64 640 nvenetlib.o.bz2
|
||||
QlpoOTFBWSZTWa2/tOcAMlF/////////////////////////////////////////////4EOTW9s1
|
||||
vHvub2a719HuPZ9m9711ToA09l3r3vfeHq+3uz6wACeAS+Wj77u6pd73vLXs67326l9sRLuPnjwd
|
||||
afed99vu83XD0AqVU3l3s57vXPLl1LtXe7rHVaVHW2Hrcdzi7ZXSnde7r3ttgzvPe92Sedlu7uvD
|
||||
3kcz08XnuDe7vbplss7p7Lt7bZpWgGu93ep1r3nhV5Lset2bzzr3uo93e7vDre1t51vQ9d2vfad5
|
||||
TyDvODQiBABMmgaJphMAACMaAE0aT00GRoaamp5HoymU9TxNJmEyNU9kYmSNiGk2KaeptGiemhPU
|
||||
zQp4psT1NMGgU2nqelPITwnqaJtGiZNBoQmgBAAJowTTSNJ6ZGmSegjTAmBMjQZNTaGSjzKaPQKe
|
||||
yFPNCnppMh6ngp7VB6no9NU9Q8k8psTCEzU9NCNoJ5GoeoPU8o9JoZpPU0ZMmglNCEgJoammmTVT
|
||||
8pvVMZM0p6pvJinkpv0lPFPU9qmyT0nshT9DVPU2p+knlDY1PSR6n6o0Gmj1MmjQ/SnqGnqZDNTT
|
||||
yhtQ9INHkEHojT01B6mI9TJ6EAepoGgaASaSJCQ0RPTQCaaTNNFPxNKeaKPKP1Q9Tw1T01GQGxIP
|
||||
KPKB6h6g2o0/Umh4oAANBp6gAAAaBoANAANAaAAAA00APUDRJNTSeo9NTBPSDT0IGgNNGg0eo0aB
|
||||
oNGmJiABoAGgA00ANBo0ADR6g0NANA0GmQepkxGm1GQGmjQYg9QGgYg0EiRCaACATCZNJ6mmGgAm
|
||||
Rpk00aaaNGgDSYUeTTTE0YT0qfphNENT9KeFPKe0ZU3o1T009KfqnonknlPTKek8mFHhJvUTyaj1
|
||||
Mwo/KTQ9QYyjTygaO+aWNfxnh4iJ87nlDyU0CpjuSpB5qaUJcgAqHnezTFl+28oqByxKIESqCAk8
|
||||
Lz1kPQBn89Su4qvQRTlRnCwyUoUDLRT1Bglq3Jx4ND2povNwjEgSCAiz6MTmk7LSebPnZuLOzTeh
|
||||
4SUg2dS2Gz2+65+PeWel4PU/B4nX8XtOPBWw7AFEHZZWptw51l4XbZnAPUnDGmh7xiozxwYcKlXV
|
||||
1ZwlObytVju7iItx1YIpD/0anDd2JALNNcggQBE62C+qnxvAwikMZWQNn8GfxUk1gwp9hoSbbysC
|
||||
gAqssZg2DtPYVxCH5HEAA6fbwhTnP+6N3vpkxpDastKtjNUhQlIWltItbX3TC8vRqRX7fiWL7pcl
|
||||
3gmCjgDqfmbHf+pTQpej92aShP3gtn2Of6UK6X7uf8T2+tyd5k8CcY9mowvr2k9NsbZOhQWPL7vV
|
||||
0HVYffYW442sd32/+RpvdZGswnrWxxEtrp3a53zYa6fqHj03S5FAhm9Z9U8tHOhBBfv0plOm2t6p
|
||||
UYWzztO1BKDuzt9WIcNa9PpM3d+i512agvdrSyX9WxoRpE6jD94xLrahppk+lS5P0bVQWUSBpiwg
|
||||
gAip1FgweK1zgkGKeGGPooL3/fDUN3+p0HWUNw99Tg+l99zDV7vh5zvp97t/+PK7zx14mWy2lalW
|
||||
PqmFXEqrbdJ895+uen/jeed7x70Q6qVH4nz3ytfN6c7KpfwmLUrzDwKSmk50Cyet+SYq6dd/bpL1
|
||||
Vb2H4HH9lNlVIXQIxxmcJwdzBYrSFodn8IXfJUtEQ71tKBXbt29XQVDddidvGonk1IxaWNJX2pk8
|
||||
eRWVhYba63yWeXhCq1chiEwXLvp4ONT4fGfa+7rLVQZThXzdNrCi0X3f+OJ0el2HvVbNKSMTL4y1
|
||||
e5rrz2lZmB54YpgLMAxAMS8rsDWFuOIaVp9K3Pajs0+kR9rI8r4PdvmbQ/ohuB6jnabvMA3G+u/x
|
||||
zLQ46finFCghD+H8f7f6zfaa/D/rVOw7us6n0nx5dGRlvelOlo0lGhQmKQxlhLyyg8e1xMPJd6KN
|
||||
oh296VY12FJ8fFpOAAc9qA6olltfWlrV83Mq5dGC9VQWA5BBUcrzUdsbvX2l7LES7+PXZWmtm4X3
|
||||
jYDBAbEwQG63PX7qTVTNsUG530uv9hexXzer7vxDqMokkVMvn87W2OSPy6i2E3TZcuMyOkW1h1HL
|
||||
7wtMTvMtm7fimpEg5bLgVEDcUPTyuuHtjJZMkGnaufGgMjWQLJYbXete49ueSN6BId5dorDHCC+L
|
||||
WNsDGAs9WeMFhP2En1hNbnNBNyTxgRASYIYpk3W1gpmKnudDyvlfTXjnn2sH0vo4r2ZbGmMt/p2r
|
||||
bGS6iShCSXjkesuXVlckkkkcNHGmmZufZDpMdtLkO6JjvTMbMw6aEA5FFofhO27fVfb998zWN9/E
|
||||
M2K2pthpQLz7nNyyWLburcqQ3EQkOJCXvPH3uz+ft7FRY27IX13rmsvfQJeKz3z4rFyGblh5r/gx
|
||||
1wOVPnT4sFeI728iuQ3FEByuy2exdAUtJN5LZXaoKbzUpPGlyXYonHfSUV6yl0loZwqngTuklVFK
|
||||
I+VTwvVzyYYbfZs7LDmyI6vTJUVQy5cFF12bsXd2mbsrBQmmvi2zEndeGaV00RP0d+r304lFtpBO
|
||||
vs/Wfpurs9rxB87woAx/V6qOXY6mop3n4/VftZ/nOix7CUPIhVbmWKexn/V5K3YLMFUiUIaXhQJo
|
||||
3Zs9KCWEJql3Nnx/Qa+rn0xbvuOHw8RX6C9cb3I1DAWRBAoKKR2VCj0TkiQmBZZatCkEOz+hp7oa
|
||||
u94337N1lHA8emvAde2yRLMgZmZMA2cTUefAprC+mMKkkPiEJ1QDcvbOYAutntwSJPcxnfNjcjAW
|
||||
ZUVGPspd5HEh1Mj16sjBM8PBT5Myj9alG/9dzTfa0zSo2/oZvxGdN/JgfNcb3qR0Z9NrTRigs9bv
|
||||
2MlCmdLOiIilGQXJJXIdkb5KG1KxyP3/TfB8fz2pdhymt4kzT4/LwLqwxoKRkMb+ljyyYuZUVZcZ
|
||||
NECc4K7MEwbQrHdDm3dmotaPkM8TsXlnToa4QOSVB67A7+fAQGMCDXu4ug6OrjxI9a1l/bjQ4gKN
|
||||
/6pX2DBLYWSgoGOFPSZMR71LWatEM3lfGaWtQZmWGPZ6kFLnq1h3LnTO4hbbVr1dijbVNykzEJIY
|
||||
pTWc8MrDMiKPTdwJpvVYb4hvIOt0K5KmrjiqUqUd4VT8+m3um47fo57tNhTGFDM14LDTvmBoHoDA
|
||||
UmgZ/9pvD1XE7fLUA4NUCHyRzCkha9HfF1qldbkh3DjLTQx42cN1IRFRBSwJyJQqWE3j/K7fKmSK
|
||||
yuWxrgK1ZiPHHYeN8Xs2YHJMy21TWpBs0hycZtnZ9x19NKbLeJXoIIVTnTSvoU+NwSccjQw4MmSM
|
||||
tNZVXSW61ovLeDtCsBTlaqiqqmKnGD6mn12qp2uOmaLkva59viepd6pRKKWlTqyZgSqxWJXmWvNO
|
||||
5ve5TnnV668+A4LQVS2o8y5z0Q116Md2sVTsJyZq8XDY206E5jJTaa2tlYbHHG5ZrNZvJxvimw4d
|
||||
tbbLu60ctl4TTtBH1nLDhmlMsrBFWKAsVBKaw0tKQ6Im0lqxFaFqQxKdoqSQkxQlqCgiZbVctbba
|
||||
W1BBZthmze8zC87uau3aFtmNc5el7753Ac2cmBzaM+wpcukMuZASPIB6fw346/O50DeA+Jc6Evnx
|
||||
gN5niRvPY0nWabUxS0CqK7E88y6Rd5uMcdvTeRzM/fW2XOeP9DivDGTO0YZBn86tRQ1aJNCU1rWt
|
||||
KiGSaEw9E1EQCodNWxb6auTJeDpJtDdZ2UbSdooTafM7Ra5iIx6R9TylKNwKc0CtjxuB0mfSdEBi
|
||||
BE2H1bTFsMCDmXpE2C0WAt4YWOeCaN37yEps/xdRfkWrkKltoRkzCiDDGgwvfpMnMT9DH691VPUI
|
||||
aA403eK1+Dotnt+422gyew9mi99679+PsY/kbnHyMrZDF1rUDDU1I5ps2ewJBDkwbMESc5om8Ntx
|
||||
L5CVFTlxceLZxplOWribch9r9L1nwNdXUONv3wY8FiWVnw1HlEXREO0mOYHTOnHNz+He39XV53Ve
|
||||
x9rewa2OUuembjt/h8Wa1+IwSn3lWzIOQ2c5O3a49PufCp6Hi0A0kTisQZkHnVYWDUgDTolDJgZI
|
||||
885KpJqqiAcnrUBIyIiB7iAAgYk2NIBGJhfatWbfq3iL0vOp/21ep7vBZ763nMAAuxAfcP2MkmHK
|
||||
oQkX8yyYTE53Kctw0VjE2XLMBDSbBexaP27RZM6593g1GxY2hFtrguGdfW4OW0kB4TED3ThsPxNV
|
||||
MO8aAL99WVjbHDsqgJ0ZNxCBKiySJ4FDeUBSTnOfB3fDw08Jis0QAjaDA81pWnQwPT/8TXkHEb9t
|
||||
5ZU6I7doqsIHhMA84Hw0LBgs8FDYqQhtIoixRKLIieDHN9vUNR7HJS/YCiuloZjEa+Hbq+I2Yymu
|
||||
i9TivJHGoixVRfF6mDsMFnBTmGwgMF2OccqYN7mwq4gQNioqQe0tBcShPEsE8KpMXQX11FkbhtqG
|
||||
h1YyaYnmxUyRcVWRxNG2RYKiPt7eVKz3rJCfY2B4aaQRULOl4OPXjSjFVYaBbDYR81oRljOm2ZP6
|
||||
sxeDy9pt93Ql4zkWtTyZ57RjjE7kANpDeFlhi1o20Lrux2FM0iidcJMD8HR0eDQoLedN8MuIF0S6
|
||||
SatYTGAFwkw7JL9ctN9RwBCdmxSlYYY7RJhqE8ISBAfbYi+kgVkDw2SRQIewYc2BUBZFUUJPdoQO
|
||||
iD06YQuWEAxkIG+dUUkCjBQIsJ4iHNhA2kyISUVFfJaCKyfDZ5W6fATbESKIiM8hkKe6shUFJFId
|
||||
GpICwWIyCPuBCTsAz1rvrsAWEmmTrYT1zAsRiQ5sDuJO6wD5jPxTCT+YySe9YdhkhDkiwqQFAOYk
|
||||
xgoAHYYGk0IfUpAmO4lRViM7QkVEFVEh7u18eyVh6DUDhhUFgjIqyE8T5VgYhDqQgoXZTuMhoZpB
|
||||
YvqGYogIydIgGkA79rFADsoR67BEgx+OwUoyAshp+d7h/WhkNMU7TCrEUgsXw2s3wcC5oQUknWyK
|
||||
ST2TJJUCBiKs+JaeRbI2hDdbUDPsX4DAJiV0OQqfkd/Qtk+M1++HmdTK7uKjX7en+o82s3W7Zz4k
|
||||
WVDR/LOX3Znrq8w9WZ2PHGcD2W8qu0NhhgMCH3phTgfdT3fx+jFkenb/48/j0HtZXsSGxTK66Jgr
|
||||
+AuJ6nfvOG5ysjtb+92R+fnbau/dOHuq3W10bj7md2X9Iomo+UKYmwOVzUZJd9Pv4IcaUcT/5AOS
|
||||
Ysv2eTOQQAwISOu2jrgerc7luJYnIMEkmP+8hkpSUBdKV3vayQCgyK6tc8RxAeYMXXGWLKHLsx4v
|
||||
Gk4LPhusz4/K+1yfk82WHkSOdtu47r9tf0+n8Mx0/199KRpanXlebFqtt9HrUtLnKstsujcdqRgX
|
||||
7f08Gs8Dzug26eD9/ffKxdrtfE+xzUr/H2u8/EL3Gyfvbm1Giijk0XL4nu95Wb7p/9T9DFmQ+68V
|
||||
g1OTPC/qXdhgO2qdnmLcD0tBns9nuumqLAmcCazke5mZnOUt1evhg4KFOeNms3Kz1FZ0fbT+UPtU
|
||||
e7iinl1tcmjc6lDA/OYiGQIgT7LWagC0ZlvqVB65kh7EGAAWrowIX0xhRECpqjo59e/1dlY89Va4
|
||||
qISQrg+Ae3vy9LzC52HjfeJk++XqIhqVh37kSxh3PY+N0IUqjATMBn/EJY7exa+A1ukG7HcgUHhT
|
||||
nl7PXzDY7PfjcFmshup2hFkhwBOBt/GM2nUGDBW1tbY1KwvcVgUYA0Lum0dO7TinIcd9j2+K+fpc
|
||||
3ik3NboP2/3u8f6Ep4eOjZ6v3/S0Fe3lBv1q90DIS4mAyHiHUDENIoqGTfnP2PKtfb3B6n3KFTGn
|
||||
MIGDFvZd8iKCjVfJu3dR4GFHvI8xBmrz64Yfju/VUqH0Imj23xUH2tX4kuGyKXAMafo56z+qr/r8
|
||||
HuMRf8vspxPGXCi8X2MZEKbd+J9Wm3M9vPoTUrFCGIy2gHxh19v2mZU6S2tra4lbjLW1tb29pcWt
|
||||
rcW1tbW0LR1mUsLe2ztrPTvAKhMCrmK9Rz6CkMK8q8rUNmjLXvaR9pGS9BUVtahWIMbskeMcxsVL
|
||||
11Ci2jYFxM5u8k7y/vaMQ3VbHn8wTAE0BDMCGozXE3sdC3oKnhcu9W8bWKlfVrklXbOetDmtTmmM
|
||||
UeebgabGABY4ERU8M5sdz9eTE9Zs5nrUlmJJnX2Pqx+M9P4iRiUx/qhmY3zQl4jBf8aq5Cga+r+L
|
||||
8E14mnj2xglFqcVslj0XaFzthYQRiNcgyDbzzHRFW52pq6ytqa5ssHYQxRi8D1hp69evXuddujkw
|
||||
XqSbZg2I2WcKw2Q0A54c2OeEHcuTKk6nP3F7b8a/1FfH4or4BhA9eLWeJAWfD+nmU2uwML8F3Sz0
|
||||
9OzuLi4nz/NC32cw+DLkUp4Gj4PWaNiPlDRtJoTYFT0Rl5fOOEppB4y09y0+2EcnQu0GM52F4goZ
|
||||
pvwODpXkZEpSpwNingvmXj+ulGaeEK6vhV9xYUlhWWFtY2MLLycWRO2hy8QhL5Sg2Om07Y0jaGJ4
|
||||
4fiZLCxZPEoIN1Cs7li0tLS7EiRIkSJEiRZ1wkpMU86BpbTzemvvfnf2R6vAH+OpRDjoEijF87/M
|
||||
6OdyzQ9EL5q+IAoF0+qHtzlL9GlfhmtHaFh53Agbr+YOBncejnaEBS1jDkKcqRVvtyEBpCagvUL4
|
||||
mQjDEArR2lJFsQD2Uvxtbsznz/Sp9760qy9AVgCtEjgh3VAdaMi1Em+oDZB3QdHqmTs99WpPrOp8
|
||||
TF2WT2vU70uBmaq5QWBzdLYBbL8K2H/kXADG+N2BHjOKASIdLiPgzGVL4OmIb+dGErl0AEJa1kyv
|
||||
Z4va393g4WPHFTei6NVUZt27Tr1+Ib79n8ONj1sFq1wcXf3xkUQlyZ7/ge9hUKpE16/4sDawaeHo
|
||||
MU4DA+wktIIWqQcwY5/Z+X8PJ+VzN924QU5uuR7ApV/IyjAW0QUG0APmj6lFOZ1oYEk7pMxdV6Mk
|
||||
uIXaf9foW0hKgQwQWKjy3buZZ5fCKADBVwX2Cv8w3TfbNhx771kYUTu9B6cHmWdQKwNMc6RDAExH
|
||||
YgkA1iwBw5ubstJuEhKxdhwMaGCbjLhYJWuJyB2+F53y4bpLffvoHmMeu2CMdtn6hit18i3Yv+b+
|
||||
EmHblou3YyVQeKH1oC0zuxhzu/hUsrskBkWIDIvGaaMpqcoPX7yAEZw8saMHP4hkF7fosZt7In4f
|
||||
pPIBNCCCfGFhdZ9CApV2jhB3MB0iQVEBJ67ZpUS8yEgR/L1i/Nnfr92d480M0jMdjxf8ngf1u952
|
||||
XI+DwbL/Gv3fqnJvXlH1hed4tuPHGeDDJhZ3rdQDjmZEClqlAhmY6FsgrS5fDr0ix2m7o8BxONku
|
||||
BSy8Yto7yrJeDUVcffRJUyWJbLcmSGwF8/fl+5N+5C/Wp5bPgw6vgqqqxzgi64+vTzMmwGBJQ7gG
|
||||
VDQmZAAy2Ghndp3H/HS69iDzeNgMciVgGAPyHFipn0Ce/pv7pKZ1bSWsVjWtSCXflNIkGdzluJJc
|
||||
PgUi+D8Chc/peB8PsM1+DjZZ5vLSLgYv6d3lGwGjwuuTgGOHQ+TGWYIhHOz2qDfaxBlbPp/xLdcQ
|
||||
K/6iji/aJRRRURnWKr9tIqLkDaS9b7WAw9n4L8Ga3I/dtL8TQjsBob5Qz+wM7WX3Zm735I8U5Awk
|
||||
GPwiyFj3gDDtZQJJueWh7pOItnLr6/t+xcJ5tzuTUC3aIQohdMqajB1HI6p7Huuu+z4e8riFf13H
|
||||
8AfFg2xEI5xhMjI4PEDQ5aj3DRybUBlGgGpLxvG1L8w+K0iwihI6f6mjL8u29iFSPhjjAINiD+5b
|
||||
ieBg+XRMdI4hPhS/oGuFszWjZFzhvT9R/NhJkNvifWUtoZq8aMJeorG8V87odQrLisShrGRNgWqO
|
||||
GGWzMz0PCih+USJqnjrLv/O8rgQJWC9VUoDU26VCWDRAECGpCK6MZgw1qtUIWP9X/n6essB9DJ9F
|
||||
hAWwu8vl7vx32PNo2D7I0IJDIfCdqltlrgxzjzh/EeJnETjQ48g/wS67jzKCujazR1RsSAOmBgT8
|
||||
4uGpM5JTC86JyUNjbEvUYfCrPOK0TSQb1mLAQAiKui1MEbTrViQZA77u1eQAfjmB9hxNuY87KIV3
|
||||
ZOKRWlEPTgMPailgL6IaIfQeV3ST5jNnPKE+dvSttzObN7NRALn5jTM6WT1+VTBbOnFjff190s+q
|
||||
zi+/ne6yAIvwEMC+/suTLPvOs0ZhyZe37DB9du5S2t7doaR+HTrTXvqV/l+bTohPsr3fzK9Em85Q
|
||||
Ykbx3hLk/FdjHipBVYsL+NSigfHiibPS55IQPjTNSc3pZrfd1gVRZyEoRKwKioiYfnVss9yiqmjA
|
||||
LG9JzHvWmERsHqmk+AeC/4PivTS4vBhvA5tBk48ZPCVktPKZe2c9FCf9dWWuxbwfnHJxHcPE6nES
|
||||
lxPsff1slRk6aUJsQWWRqqhnnRB1/4qk9Y1iUokQxBjqfvMC9h9BayItX9OfP2cqyXLeCafevoGa
|
||||
Yx4zUkqWMceiQRf0TeCHBWZ6ACVRnihK6lthUTtfVjOKIg7BjEMp6SLruRrZVjis05kBKnfmQDoD
|
||||
f7/Upql8IY/KH9GApNEeQovf1vW+kjzXPuC7cTUu3TozvlMj/KQiWckPcQVxzgMvXnfBB8DTfsvR
|
||||
mFli4rjpPYRWTR+GUMu+GRIXsmlqsD6I+lusUbdoD3/GnI8LGjGtxfHbHlZUCWQw3Xs4L3Msnvbx
|
||||
FIUtMUmWBq96+AXJoFCP5mfuSP80jtvL3q3t1fTOr5fTddyuRyOappp7Cmms0EjCMM0by7qUHEIV
|
||||
9ggUOTo1rSNY58wqpKz7cUrazNJpW3FCSIr5lnWLUGFPTH2GbyPcfinYuvb97JczUPinuBJJHxhD
|
||||
pXIdVLiSsydRMaigo8SuCrLsVlks3leawuOFxW+FHScTk/xf+2/jxxnQoJgZO7TI2u4g/jnUEMxP
|
||||
qBggLeR2jG3vd4ag4GkIWO4zPRNa39XxNzQdLEHTeHALfNabAMTbDzcEJFTFOFBvBlbm0YnS6aY0
|
||||
TIgMdNU7yF9DyjVloNvHGXudHD5yvem02pARIMyBmRmHuBM9HdwN/3U01egBsLXC2uAauSW6dUBB
|
||||
voZOGhbP9Cm7YpT6ENCWE+ilkqbjiTZ892AT+aqsD79rJZ08fdd8M4M07NEXesaoBeLgLDHZ+DJm
|
||||
REUTXgijCA0MuE+N0s3OR5T+5rMaPC10FVmsuDWuCx/hGteNEx/H6MHYP3mw0EGuOWPJlUE6HEI7
|
||||
udS4mrkM1hlxtpPePCbrTbArPSZxlnKPadMN8ew6a9fdzqlkgdN7O7qCC68knwwh8CCmFwv470XT
|
||||
GM8zgel63b3mW3pmIZwTC6NGlco5fXiqVqHWA5fvEDzjPX4DoGsHHFaGKKe2GHXvsaw0ULJYhMaQ
|
||||
EaF/XfuzwFDh66FotDYl6xNoc90NIj4Xh0MVkhxHEne8APT+R4L7Hs84YMbR0SB4AfIMuZfD7Ns+
|
||||
mNBSXANzC+HXruhUN1a20F4x3a0Qc8JE8eFwVOP6vczNHKQDhg8WsOhzcDjjfJUos2P3fxGs7yeu
|
||||
1ypsaZ0vwOdHzPEemfm/32PgvbNC2w0Wy3HCZymlQ02MdZ55oINrqqbau5s2SojRO5xgKIXDoMsL
|
||||
AaonLDdtO4lbiwGG9O6UPJZlWSpXDXFFNc/3OPtd4dsNIgaR+iNCO8YB3LR14JwLNfcdmuNOHGXi
|
||||
2YJEEt2YQJijtOB0Zcam0kGb1gZkKAIyKEJ8tJITllCSjLoLyBJa2GSiZlNapmmYFcwCsrIcJd2Q
|
||||
NXMm0NDB1kk2VZoq1VBKpSIVURUrQJd5SZyUyVQpub1g6iKIkTUJVYSDx7YvtPk/fzpyAnLpywEQ
|
||||
YaKF6tmLkvVrDQPC3hgFa5xo1heCw2sNnBW8aXTApxcDNUhUlE3msIicNBVHOKYRAucZmrZrApuz
|
||||
RnDON01rcrF++TgwPH+gaYRkOnHLCnTC4PRlA1k0OCJrTM0aZvWsdYyL4HILMtKspd4ZmMMTDeKZ
|
||||
lJldGghczRoYh6jnTTdVYFzmOi61xSpyx4jnAmzrnCE1bWgYRYJQKZFEO8zCqhqouQxVmqUSXjjX
|
||||
LLpm9bXaZt2zssqR5DS1SzE0REEjxSZEKhKmJhTMEuWkdOJ5RFZUVKTWlKompLxVNEIhpiCs0KId
|
||||
36nqchnDzUTlgmcpl005utQr0Ga1hiac7Ro0CakqIaqA2O9tt5tUzB02ejNRjfeuxMjPPZkHnULr
|
||||
waU+2c+RrZhYbpbDjbICiwRiJgoxCHaJkkmIZpQ1zsBSalQK0U3nojIjC3n57zkxhp4eiTptpNiA
|
||||
fTHXxOIcCyu+zqGkXTKwHstDZqnTCHSRIApo67z92Wddst4ZAQ00uOz/c1xV3YyFQDhNX5kLK+Dq
|
||||
B9aynBDePRO6OB2fhrd71tNQaxC7YypU0sAgYo7eUiA530RQ4D7BaMu1BAPvddovKBRVo4HQoa45
|
||||
i8xRnLunugNf9L4QbbqWasuuOpt//qqBaTDcsOhGg27GONxm7CYN2xjYkgq70ZN2qEut7zLGjTL4
|
||||
2HiCbEf0nZPXSTBtxfM+2cwqv2cC6Cw9KTPHUGIcmFYZwFhYDSFHI2B7FJnd7Iz17tn/quxF4hdU
|
||||
Hs+q8Eccza7TaKgqaM4KDLolOdZ7CqbbHLozL3qQDOs6zCG1U4Nc0upYLbttDbYRpQKlhwug1lZl
|
||||
ZkDt3hinn7EO6yq78kcAwneHdMiM39DrrUUMoa4xuQKBs5k3fspKV8zpi/bF6qnIJV0y5AXiqdm6
|
||||
CbNkTxEQHQNxQMxQ5i9f5xjhxQqT36FZOjVZEQD6DxbiLnj+i/F9T/r8j1XflbluIAoGlkoP9Eb4
|
||||
zwjHgwMTRJfvk56dFsIHQMpNxPQ/WhD2GnSZIayfp38VHh9TXy9FzkbBFoR/xRz86VuIblW9RFlH
|
||||
LRhuY0DA0UrsVMojjKDkXjvNai9V1co6eB0Nb1cPI1tVOaWYPHWy6YMNGBJbOMsFfksc3NJAWIcM
|
||||
+JT3Qjy1ZmIMjeLEZgvtm3az1YsF6T/NgzDg494gq5YG0sAAdT7Opp69Dvc4IHRr9PKetffr3ta5
|
||||
l7xE1w45uLOf051DS6g7WJShGOScDjqRwdoTJMobiEZycNZV9IAntnK/Cyuahdo20lj+/O1JHVsk
|
||||
XLJjZ0alxbfdH7jbPf76o6H8mbh/S6nEpNkO20BhK0Cb2idk2bwsTeu711HQGXjSv0rFQtF1ZVZH
|
||||
d/YyOj71A+F1tTlbYJjzjcuaafYP5qbzLx4e4sUY1o8glCdJNSHCaOvidD675/m0z9re5z1Pdd7k
|
||||
U8Sk/T2gUoezR3I23tCn2zQs/E1bo3/B7VTtPQ76zRr5g/Bdm3alMW0ib8Q3ej1D6ZgYzn71Jbl9
|
||||
0zNYWKPQs6AGRblAqXQBnPDGu3TkmPXnUqjsZtJDIke16ovSQIlcS1cDgOcm3iwPgNYycV0oOV03
|
||||
cfH1PwfXjTk1CMA6KdB3VdcHQDMsgD5hPDBClyCIrXaz8wyDFDAgmZjCFQFW6Gcc6vP4YU+wcq04
|
||||
ctr9Jn6H99xUinivTYlRr9XXMeniVnfzIwIBfd6Wjxve5zuPbpl55lfx8nX3cinbmdN6/4vM5UYF
|
||||
cWH9BAs8bupR8LiBLoJx+TCuMw091oqz9rqJTZTvlzT7NrvPShTeehTXdCq/DrvCw4zvHd3EGO7I
|
||||
PXyXxgL9kWonQZRcbhXU8wITpfJT567I3PAquhD0QyMjodFkA5STkSD6xy8zj0MGceMfEgFMkX0A
|
||||
LuGhBGbkDi+EvWMymR9TR6LaQJZUmSyhGIxgIRRVksy6JhZomOJur+nsz6ku4fK19x4WQNj0fxul
|
||||
M8x5bO2JEiQ8ERDusoerSiX7FQqRTck/tet9+a0zd7n2fWEkjpmQrM4YSBNlocE4/AGvOcl99eS4
|
||||
6/Irl9IItTkz924gywypRNozwxpbI/cuBlxsmx34iTUtMkO0GPc0wPMmSIZ83WflWt1cfl2OOh0k
|
||||
SHrPSoKHbYofSbhRpr1xrRJaKBoQ+pBSM/eiWIyEEQkJkIEowoySIz25knnpNaghOnPAhp9gFm3x
|
||||
BK/IBskk3CHuAwPozr1kcu2chYT3lz5rCuzybOTDK8UB8ypjlsaMCQYHsymtzWISV7GTYRZ1DpBK
|
||||
Luys4zbk2G2lhCucb3pOXECwJKWqycKJqMUdpboKXWCjNUQWZM6Ra1rcocTo1OcYGM5umS2nczli
|
||||
8cswMYfg/jez7nooBahC8jzA264O36QbKZn3yOMk7y42ijaK9w4JGA8yZs2VFAo2IFPyu8mdfie0
|
||||
7odnjpysohXwBxFHKDVtSq1tKCwTq8Tly6XwjR4uie4I3C/6sqQlUxEwaKnI8P4aAWWTzNHGuJJZ
|
||||
b+k8zrPL9l8vvidwDtJZLRRUWKLB7HY0BrShELYcOmbNc9IwlZT8juJHxvce0l7HOyM8uSPVye9p
|
||||
w16EQ0fx5CUOTE4Qj9tyRttxkFLSWeF96nsLwb0Kt+Q+BFyZ5e0roUwPWCRcD3Mg5XbejvMDNy8w
|
||||
wm1ZXLqPz6P4dhfXANUDrCCzWD4uRpg9D4X/7IEqUcwViJlX7PM5ETGy3D9/iCifQRwLWSG3v8Ec
|
||||
nr7xBFUnOrYxX/E7XWhOztTLURMkHJLqKG1uEtojb8DDFtEYCkyMDH7f9t6u++fv5f8EakoDGcqU
|
||||
3r6T9f+foazyO/lsQ7QVXx1wiCU3GO34WhYZqE0eYEYWgZGeoNtrl6v/rha5jayBnXnyqaj432+0
|
||||
L+6KLm3RDA9ex7re77LCOHAGouSzfVxQk2HGtCRklSAV48cysl0kyUW5E59eSWWRL1szHViPkkjn
|
||||
e5hQzT7PJOzrPM2Oc/gYuEjOFww8nNBpsMkxsrp+Bf2N7ix4HU21cHfYCy+KgF0Rfyfqx8HCt1jF
|
||||
zz3GdvdUTi+hYAufSEX2/AqWV0SAwiAwiUdlEWRmPlmIQtgXl4BwzDJMeUUUzo2hEGPGrl1VPaPY
|
||||
IR4LSWp3EIGo0oaOkH39rzvn03Ms9DfzbqHZIDLQPlVQ9CRI7rYsttoQPb7bLvBtz9f877V2pnnC
|
||||
LGAxmUK/DaIkhb6IwmAfTUyAwQNsuosL9p43m0UN4mKGBlwyMcypWGtFHBrMshM+J8GATwvN8DzT
|
||||
zP5Xs8oL0ZVcfXRzJRru13Xce1exWgVAQHbZWWJuYgCjB++4ogaudURF2IYTKjIM1HBdzyuWVXsc
|
||||
hQwiIIMlyY4StThMGAQ1bj3zvWqS7V0f/nf/C7vB0WfftIcRDEXLvugnMIRKskIEhgkNVvAjIQus
|
||||
six52aan4HAqgJgYlbPbRGLC0EUimjC3mhHYzdOsSVpI1s1Jzz68jdVRNsAfZBEK3P9x8qavlu44
|
||||
dutVt3trjXbj9tbgSZTsh4P4mApNnkq5nbqUZRDAu4a2rBJNmRFbUHZ2Ri7di/0m5lRb0tTZZS1Q
|
||||
zyR6GqbbyiecF8TaGJpN62DnMojGJIlZSLBVFFkUigpAI/y47ph+S5TUQQ4KexBACSptF8Xctlk5
|
||||
iUfCAOmARB3v/Cb2vk8b53sruH8MfavT3segqxjbZ0sEDbbGhtJjfL970+b9QppTQ22DYNrxLEpC
|
||||
/IIDsf7YeO2/Icw1mp8g53IApQMqKoZKrjelKC2HLNIrLeuX591bbOfjrqYmdMruIGQUJ4gKgzsL
|
||||
g707pBr0W+uVP9J1aOkRfO++NWePfvlulc8iSUKlkA7U1ijMCDHEeLDSGQScuD6HwIWAfRZu8Olj
|
||||
QsEI/hMWXq/+xP4LtIXSQZSWgESJe6s3IVRY3Hkc6YuGfg/hxXS6xN4ajn3tQzdt9f8A/88sfz8O
|
||||
6PMbTXX41RtwseliEa0xkxvLztB7hBRKA4oecAxMgntKKt79OGyTe0GQLxgKRO9n28iZE4EdCawD
|
||||
3Aoj3o4ba3WNsSVAM3hVG5RBTCW9zybQY6RNZidospWDahN0lyLQEHhxJqE0iRF021lKwjodSzPB
|
||||
Dun4UXvyyUUcGtGqj33c7B06tSPgsebLCop7lJQdWOA38xEHwUQBmOvH6muYfhGPMw9zqBDYfGGX
|
||||
8XFVEfktVY/QpRDwECwmrfxthX3/1BxyYbwO4mL9Q67IuX26xYcPATkizVanFkrPtvt4sw3dF525
|
||||
nRdNvLd7SEa818BtxkLeJbXfbLihg2XT8omzvgiXcWDHgsNuTzDIB+1o9ZSTpY1IWaD4MELAyrhf
|
||||
ey7ECyzLcIIdmAtcwOwEW1S3QdIcTi5ipNIOyOkIwxBWky5IuBU10RM4HIj1tMO4NoouiNXDSMgJ
|
||||
JRdJW9eK5iFxW3yuSmZmOdUigZYCz6Xzc7lfznx9fVndCHn/S2222xQUrRixR5eQbMzQ2SxzddYB
|
||||
oaRLJLBZ1UHMKzXzqJbl4AzzP8F7rEDgvmZ4INEQlJqw28tOrXQxoyEQ2NJ3ADf58xnGQ5AZJ0YD
|
||||
4wbnNP0Xd0zGKTESJDIa2GgN94B77uern5lJvFvzEgvo7w7ctEs3WmdrW8cM5t1KRZGQHPgd7YKB
|
||||
m/UWgqCvnilGwo2vHyrGXrLOqtE3BAbh7Uze4R3I2ElKvVLUtfqk0ShI7Uu1JUtDzSF0p3ugtDGM
|
||||
nI+X5MK9scLbuu3v+TbmFTCplUQMZhJdTsEaGpUFdjSw+uNcrFJjmolXWqwsU4VdhuhBDdJIlWAy
|
||||
+g6z6w+RbpXDxp8AM5sClcvZx18tqBKUkiBp5YuB3VJERUAd7LCAO1XSbT1pCDUap4irxB0gwLN+
|
||||
xwUpiMYNTZuS/1dp8d0bES4Z0a0OMsJWhs6/c39QIQucHSNkHLthCA6bCGBjbJsLIMm7AetKRL2j
|
||||
2k9h2nwLDVEj6pOJ0OLG9Yf9pDibf0x3y6g1QSCENRH1rv+iUfKYoi7FDeIjOmkC8h4nhxsks/WH
|
||||
Pq1h33pHtpOoLRPslKIiIKIJFKwNDG2QwhjaC4U42LFdrrSCmlr0qb+OrNEn8nUrWskxBp0U04+f
|
||||
H3rgSWY7kvJWfYbovMQA4gtDRQNV/u3MtasEISDoBMPZ7XO0CoLMofLjFexLcYPRDZqK+efIQpXW
|
||||
hlqCBpsfQ38Y3ISwzJm2oA3phwVnAVgi0LocN3DX2NOMsJgPOrtk78BQrvRl++WitkoZsWULb7Dt
|
||||
KyyS3Kdeh2zwmbsHNemtHdV0S85rc+91qRVaatLvTuLTFX3KHM1+dTUYyJ7c0t7ycKzEFod0/BhQ
|
||||
9ZjoXOWBwa4/WCDJozlVodp2c0dHsppMDPNcdsr1wnahtNHW5mukLrfna0qPpWaZDfTdZz6y2kHa
|
||||
ToC9zNoltAymQzAR0y0AOw41HC8aAVzLGPWbpdk7jS7t6tVq+B1sQGYKSgFn240QhfASowAlaRCO
|
||||
ZHkiiTIYQdvw02GoeMm+lpRQs7PyOtd3B6XUmJ4WIlAZXCFlQVs25ug4WWfkj15125sd9XJ/sNIA
|
||||
xrTn+pkeH/XW7LHMhFWbSzg2/NcL5WPtVU4MgjoI5/fovO/E92bmdDHEyJUAmoGmMYxNjdLTghMY
|
||||
x2S9zWL8/zv49zu7/1/sZvW7u9eFqB44NqqO0xqYdHmOHW6b3/dvcgQcxhAJQ3MVjvej7ypj8d/e
|
||||
GRYr19XCecLRq6fx751Tm96CdNaeAlQHxAox8Y/IaVVujNa6RxwRzEo6Xjg7Y7G+OgkLJX8yIDk/
|
||||
zu1BCXXi/NWsct9569eTT3NJXgrtRoLwu34v4zcY0hYCrvyCEM+oc7JCW4XSUeVkmtpmluyMyMHO
|
||||
Fb8jCGX2TLkL3dD8M976mZvhWiYHhKYMwYfLUGPrUe57NIWRejECkIHk0KpI1v1qEXyhG/K8bbDm
|
||||
w+4uaYjUmp7tYctgy/lYGcYte2QMwRlr+4Gbn9baFsfAFm9+9FQmeDJmUjGLbGjQSyy6tEMp7q4Z
|
||||
aP1Bnv9aZh5NLxSqJ072Gd/mdE8bZcWOI0o5Tllx+5jUNWxgpqhZEEEFgqOgrLTTWfNvWZYgynuj
|
||||
MGDBGE/VYXOGXwYFCpoSoMiJTqzDCnUkxWXTSTEzEQokdAswo5MkQRbddHeo2gogpG3YBlvzaPG+
|
||||
5wW29sRE8rNiggjjsLNv/k8MjDi3ty5WQQ2223bbKkVoarZv91dkUUYgkbIEmSylPAzCc0XmB5TY
|
||||
f+ohl+sUCE0WeG0t1gvcwfFDLvSIS07sd95PI8Fyi3C2iyWH1zvX3Woe9CxfL3yi6/OO/h3W0whP
|
||||
Sa+UpZlQEvKFq8JqU4Wv93n3UjfNY4hkba23bUEmstjyBD4u4uYVeEiq0JqgXUxRlrDB0+QgFilD
|
||||
ZsoSJgUpVuSPLP2DUfrpm/zDvFM6BLm2p08loIbwHtjpOstVtnXW2jTporvkC6Fmg0NHDI9cs0o+
|
||||
57bTLtzhr0+TGkNwnDcQwTXwok0NsZKIB3JQShp/GkSyPu/e1dAwAfN2GZfwOL39zO+fu+TTSfv6
|
||||
VMO69rrFuxSy+pAhWUQfubJgxxYFXzlP6A94GmhKyqi4H194zc3zoxvo9Z3p1vpOTbi3P1P0eozy
|
||||
Dw+6nIrJIkKGJBYYJsS5bbSRp573dJMbDJYJXO4gj3tiQdzSzx5ZROBpSo0+YddgsyCHyulH72aD
|
||||
uanl6uMAdSnKB4YieklWH8G2jPhPvk0mxD6RzhbUTdittW+hbkQfOvsc8APor6KHI7F+iGc5+1st
|
||||
0aRs/c13t1VEnZqczA69rBVcjC7A7Dm65QLmUQdA4Qq2jsUE9ddLTnKhYR2qIvuSqzsEloI6FX+N
|
||||
j9NN+L8MaYktiguz6wSt1TYY53qC+K96lzApZJs2urarb6QU4oYm7mK0L+RCFAoJXCFpSfNAMa/8
|
||||
E9vk23IBRSUNT5Myx5Bs37vu+oflM98zJ2rWMFBBEDhlEPame0wwYpqMoo7pmRESjViextMLYUti
|
||||
lLRYRT8Ybww5hSiMYkYiiCk+IMKzo9NmjJ7PRhjKXk46sqBt3lQHdKhu71maURG2xqFueRmkVRKB
|
||||
0ITIWo7w47LgLgej6I77+PW+5z2oipaZ93QdAjI4okBPh8PypN/BZiLh5wIJzK4cbwbXr6tyxXpd
|
||||
sLgw8D9A+54hg85k/1uFKugbbhtf5uPThQ+EmrVT6jgurHWGHgoiygaUnyDCmtpvnqeimAo+gMF8
|
||||
QZ2eRKCLOksUFUPVZrPZjj17OjwRoa3T0rd2mbGvaRA02p0nTyDt+t76WwMCCVPzzwn3MLbdixmz
|
||||
HJmVV7Zm5WbTnW5KLHj/I+halYCUaNFQqPssqBgH1f946nYphmsRvDPy+PG+yuUN2bvOTKtJMBPT
|
||||
RB/U2+i84Rqyp0QaVndpdxbyg8oxdVWlRf0jHuqh2ezRi9x3ilGDwr6u/agomEMOGEMdtoeJvMu0
|
||||
46L9Adsrw8X171aB+V2pYWFQjfrHNBB0DbbyNCx+kR4j0rSV7noBS3sajSQZvRODwa8dLpZlOslB
|
||||
zrCiLVK7u033hJCVLOhpxqZiu5RCCGJZeGFPLYogPMMQE7J2XbiHJoejym5wgRH5HVu0WA4BqHDM
|
||||
BkJteabamUIzZBqNDccB+7w86xLYcW/6lJDLz31kqqO7z9EoiIRTQDKODvDYRs+nxrXA2tC5TcQV
|
||||
HVtL6hmLriQWWvkeIQtnrtLPmLwTKjjalOzEDU2Zf8EiQM944L23ty0qCM8rkH+PU838fut7rep2
|
||||
81IhP3tHObODJCojtGDmxWZgnRogs44aCwcvXnT1NOlZS3IvPAzEr82IApRK3ZSSPyapvLY406uM
|
||||
0SKhSMGixPoA1HJ6tGM+bsy0aBwiiqMzGGcMkdCkt9VdMQDEJCI4RCrutY3DWSBOw9AWR9t2daNc
|
||||
cqPmeW4Q6D2k9TyukWPnYkkjHeN7aKwqIxmRYZC8PN6OxTQWmubGoYqXmO9itSDuPtwVzL3vAh6X
|
||||
idPqeDzWHD0VhwMOtj3NXJJ/jTEU2M10veS9qWSHTkvqO1rMS+O1eVg8+nIIc2XAdKRcN8UYCvhd
|
||||
j+TbWttkGJGJM1EY9d6ZZcsDMRegsZHGkGIZ9UrtSDPZedfzN0SSRpObQrjG+ad2/XlTCp8KcSyI
|
||||
KNsQWWk33b2TV9rpmlZa9TKM1Bmzt5liOSsi0E1qhM9t9lX/JSficmN0yQHkvsuA+qPF2ufA4NLY
|
||||
abETTL+bi8aQvZ63Qk9BUxK4njPlrxj25zDo0B/q/i2XBXw9PN8y9TRvYTpxFHPHoFJj8G2SFZ43
|
||||
ddxvIJZkLJZIcM/0mFKTHMgijJFVCvDYDG8NZqIdRB5hxZSXEEOz2B9WH3ZWHe7+5tIq9dfNC4wY
|
||||
+skpIEGVkb8YsG+ctg+UDLeQrw+uYDjQgsGMNm37B0YqaxmGo+OWZr03Sw7F3fyRMdLBXWgyHZIJ
|
||||
JRHq0pwYGKTFlDv2QkIu2bAzJwaLWbpbR3PaoIh2J/HFSVnnJyiJMljRvdSypf1kC4IHn4rAHdoO
|
||||
Whkw4TjWoQJDkuNgbFu2oUIpiBRflMPkZTJqd2cQ63reBEJQ4AFJG8yCdWZSJhy91teG/1GyvUl1
|
||||
Fxlp5SIIQQNJBRF67FGb4/lfP0+FsGXvuS6kxZAlc9zv3tjOA/Wu5b3GwPA1TKh0z7latLsnOHYc
|
||||
DtlMI2TAd5Xxu9k4ELIJiY3HhFad4/X9pAVHDgVf/QX1TBCyDR9+1yaDG5dJblVjh6U9ZLPv5pQV
|
||||
4NzLVddy5ycJYlPwqslqhs3V+S2Lg1QcHuen6OQsebGgw1/KV5ygOXrl/aNVSAYyqgBYuFJYXRcl
|
||||
tKIiXWMmv9m/61wNjBMgKAwA5Iz0CmGExQXq7QT1Qo6HF7TZMfMer+t6PWqpkRGhOOCu7hmvK2b6
|
||||
l/Mzr3ovgRmROaTEQgL47iaHBtIhpDaK4ycIaXJ7tzh9BkxEFxkMhPFPTmsspIzryay627MpmEqo
|
||||
pZUZnyrox4Y3HGqx/F5SPOueV6OKzA/LZQCIU7vwVwmU+bsndj7KCKv9y7qNQ5cnCN3On41UMJv/
|
||||
02l3DEUZ0bx6Ya1zjNgdSSuuYHnXDOMPzQEG2Ou/gchDwOFeW1gXGgEtwZYYBJJGkaPPsJ7avhMI
|
||||
oTbJqNIHBRkBg5BCcGWJAffTYVNE1JqxixLY5mNfWyBs5yB9lBkK5xDSadTs1OwibOD01SBESWQS
|
||||
k/ATGIyAHKo59F2YQfTCwLa/Z7A45y3Fy7nsVh5wWKEXoQw7h6Q+bwOq8yrnSSTnAZgHzliMmaGs
|
||||
AfX8aZp0GnYPnUYj8xGccAot5W3z7ZYTT/HYPjkuY6tPl8DKU97qF+MyFSE0F4xaIwCooi5qYmiC
|
||||
6lrD+7YdAHVHzybr7xj08oU83iJZtivnuni1x7akNKSZKwhdtp7GeJw+AnNZir5WujrSquGZnlGj
|
||||
MVVXrtVVXQF14mXWe3/JKVcQWX+mybP1ho0bOhEt5jwFmmCGjsnweF4NzPaQ5WoS91EvaLFvGTtu
|
||||
MjmnaFCmdXpxPfWMejbxgKuetnWmOTp0BfJnNTcLG7ub90u/BgPTIopkAT/RJ7UCEqWMYI75JQ3u
|
||||
r+LGFymNS43nFiUwszRCNiFUnZsYXWfDVdWZFj6DHVzfvxX+WMRFIGQLGeQOjBmD318rgmYomsJc
|
||||
9Ai2XP3AvV+MnB4hkbqstkB7RBdTWtUNlNTddocS2DU6dyYdnTCIAjyyCxOidYICu9GmZ5mYdjse
|
||||
naxCKChqlPa2gDDyfam/e8p8bF5IYbrpeWNAHjDHQslQv75hMwnFEQU3PbQ7ASw8z1VFsTXxJLUU
|
||||
K2BRSIoD0kq6xsy+f3qtVZTRe5Z53iYolzbYGMbTfB59VCA6OhmuFKARXkHFRg5DAuM1+3TNRM24
|
||||
Hy8fo8GC9YIEMxKi6nFKL8J98ajMe8paGNcoOCs56dC4nEwVfUsOyVL0PUdiuoCB6I7WLJJvHvpt
|
||||
rrpT/poofhP033/i3JUmPEPsuNEhJ99Gcz6LPW0fnZiCYfvOTT7/5f83P3w1zD0gylvrMC4msyDX
|
||||
9kcXUJynxXjjun1Xt/oT+T2ef0aVK39/2aYsVGNChUtnrzKylrKUKtN5i4ZkpaLRQa0tDwHAcf49
|
||||
u0ZdBlV7c1RtxttzMFi9+yovS2zjzP5til7585MLDv98j+RN3sTr9lpTs4q5YBlLsERw13p9nl0p
|
||||
VDKRhaGxtsbGMU7OYYbkEqZWdN4GDBGHhp2vF7Rs1OpwYpQSGk2KVTd4sYMRc3KRAzGLsz+SmLR+
|
||||
Pk38ty5rkZr35EZSubRyCXy5psQBYdCqigirUSUxxKEVQHMCAwjodYpaGjA0GSEP8VsqHDm7tJX4
|
||||
0HDnCuOya4RTTovYAShnfs1WNq+7N67etwWqYKx85ql/dUePUivGC7K+5MeROgozYLgVjNQ192dN
|
||||
rzc65k5ueaKqaba4icbDr9SW8DDASgZDhP+P+jw6oqtjxcoTMYwTLtinlLwhWJaqgqxqChZuQYTF
|
||||
aqgcRmCZElKQKt2w0cWZq3ahfofcb/HTOzql8LB2zVnD9h405ocVSMqiKMchXFOFA1iySx2DXKul
|
||||
lyTTqNyIsGUUztjLmXUCNNCRS1eYiiiJ1G8vlaoEgbSRS0IzxiLeqqxDvQ72DuowUdin4D9qSaXJ
|
||||
4BkXeZVYUCnD47DwS8wKVxsNvrEJ1m13aoJGF8f261bqxmrjNZlKMMoP/lgv14cjKoW5e7dbzXp6
|
||||
MT7SDZtI7NgsjkY9+esIbslppuiXfct8ugVSjbav7NAecPh2OHMr0Hrhm7kR0SNWYG98x3efv3R9
|
||||
MGDMGYNqPqTQRcs9yZqLrnWO9qEIu/MXhj/qyOImdfr++HUdCjh1SBXTVnShsnr9W0cDdOiUEEG6
|
||||
jiCCRascP2kfoZ9IYB1X70qiuEb1rBhiLoVqC19q8t/olx6e+esjAB63Dm+zyKoXW2J9LzHhRpRm
|
||||
R7RqFClyOqPKuCSH6n67q/Acua7tsA5xnKBDxWEIsCKBr1eupk1T12ckmhGJILGIcncZkLYRMfFX
|
||||
31h2DBUZopCJ6TnsAE/AEicQUG7UUgU4+/zHZb8Rs6qBJMduKhgNCiY3q9aLwXgmpKSd2obaEFKt
|
||||
4pYfCm8ewb6qp8wcXlbUVn1aaSraP2P2dfNkteTbmyO1aA2ovm09i2qCEj45GcK7FtaiBj0WtI8p
|
||||
vdgKHqonU9N55sl3lEx8wktSrYuWgdJ9xG4HaxZ0rYO9RppQ+WngTqzD4fcz6RqZSTSK6ZyH76xM
|
||||
ahCODDVAZAaMTIMeF6VWn5tZphWN6LYpdhaKq69CvLRWy/39Jtf9OqHKIACvcnUmvRIm9SjlaREf
|
||||
s1HxbGOf8LPTM1vE15cb0S7g5uYUht7r1UYenfoyOe47ymEd/tixTb/kfEuu0F6zymv8l9tTq65j
|
||||
y7zRvV1kEq2NrjMC20sjwoRksntN8/2v0vk+/Kj9RoNYYVb/h3+PSvEklpSsRl8U9i3STmE6Fa0R
|
||||
WFlYuB0Qlv0qLcI59hmfM+uFdkziu7KuuZJ2hEkROG5K4whMQ1RQqP3ftZiryDKWJvM3HMHJk9yy
|
||||
cbeX6soJfJdTp0SL43Yb38q7Dnp09eIr7BQPlVknA2A2olmggKb5CEnzHKmsH6vWnyjczVJDLaWc
|
||||
XzVxe8f3Pn3CvfvlUVSQ9fqPJt7nXXd1a5XhIQGAFoQwQYcMNB8hqIpkXweSFtHL2zGB1eCVDQJB
|
||||
WKaMOvt08tgHWYduEvX19ZknAMBu7T/Tmty87P7N9UQQIT9OXM802uLyek6YKKIPOCaRqUkcT4gs
|
||||
H+yrrzNELzzKoZLPGBTvtCS7lrPddedRitWZGPYJTKZJSTIRQGhTcKDE16EGaw7B6WQaWGeJWwOb
|
||||
meK1JJNMaEsU/FnMVUz2uZC4BF+SwFPFHt/fZho52iFKyHZKPFhKIxUa/bvUsYFfqspj05xLIKSQ
|
||||
gk0hWX+VfHpufUK9yi3vJW50u3adMCdFI6Ho1IpPWjU10JIKo5UIJZjSOMhgceXLz28yNK5K4Voi
|
||||
7Tn7U9zVSYA5urmsJLelRptraoaGiJqIDNDGJjX69xfDNS1hQmW1DOdUY6fwaoEQmyzKUfjHtKWj
|
||||
o31rUvkL+v5PrcNvho0LZWbjryzT97799/SgmEwkI9f4kXTUId6zHflRA2HGzHQZ5NEGS0sRQjRY
|
||||
S1kqVbBCBUv7sveFSE4gw4HVhgiLmIedfPzfR/vVOf55ZyhJZkSRaLmIvDnzADnuzoCfKBrzGXYG
|
||||
AWvJbdil75FUR4+hoRUapLE2ZdWB8N5IcH3f8mS2qzRHXJQ4cDDH3hIWZ/W42viTPvIHsh2WLa1E
|
||||
WfdszFtjKPvPYmg1ossTeUTuw0YqTFLZbU8fPt3oc/vXbm/iooj+pVRl5D3LxkXLzF7fuXyIL6Yh
|
||||
Qm7tXtu5guuhYbzZjj8ft6x/N0sfPZROPhWBjNMKh4qVChnu3J/tDY7V6ZI9vw4V/B7KXXMqshv8
|
||||
6e9WoXxhnz1/hG0GGNluNJ7jlGfQPiGJek08iZGz0CNAzLxZ2LKzM+jJn/mO0FALDWq7fkQiZlfc
|
||||
lLA4R3bh1v7z+n5eCVKexaIy9Zs/dTqpPQ5/dyVl0jKRzcbiI1NjsOu2HSdFzxHTBI2pKKALQ0JJ
|
||||
jTOaKSzam2UB30esF1Gxirpy5uKxFssVjlrMjosEC+PVhVXIjjwzt6H1sYXloedC/QhU7maKGdZC
|
||||
xSHkyzMlshg9Srv1w6BwFS6K6PgCw2CtHh1QZ1a0kQTxuqUSGFBYowddAs/fJZEsfTMqRnhbFlMZ
|
||||
AOT9E+Fvc0o30fQ8CjqLus6p+k18u925JF7hDruMJlspVPCcIw13uX85/S/lNh/Q728N/UYU7BoN
|
||||
BfOAmDI+5MgtgZ+M+Y3NnmzdSx/dPTZGMp5WpjVyCqpyXAYhnBITYp2kez2kyfF2cjUHT8rJ4PS7
|
||||
zrVyrVkkUwYXY+j8l4SiFWlOz9v0u69zNScZwx2cu9YsEvwYqREsUHL+92VfONvwW2CxQ2m9Z7NG
|
||||
jU91RuL43XReMtuo0PSxrI1mLHsMg4uFGqSN6Fccb9bYv1WqqRDc8VPNEQAJqbQRrxQraTZ/iW0D
|
||||
3Fzf5dqnCXOz5qPsacc6+tv/Fxdfyvq6lCOPhelPU9H3k+ucrF+PJWYaBUNskzRCXH54Zeb9rpVn
|
||||
TYvP58RTg7eCUZy3vtjhA0f4ouFhHyS2i9/33188U1We4UFhft9uJquxOoosVEu5zKcnKvWUe4vl
|
||||
UdkphZeJDSbvT5WHrefmrwspbrAxDD6wlxbnNBCPMgZggCcueZmd8aO7/hpCwvQ4dRNHhJMRdaPs
|
||||
mUfl/emJec1ZtEes7by7nMtcSRyn4b05EPkULEkbTngUpQERBIxNpQZMYaSz0zgzFk7m+3BNQ0lK
|
||||
X4SZPFqEBg4pkH3Zi5DTYAxsaQXnboIEhc8OSQkPQNFhCdSQh305IHaI2hRSLARYsQWLFj2Twfqu
|
||||
o5SdhgBs6NgcKdIYdkQvauMzN0rY+NELxR2c8FBBGbDBykE0MsSfzJgb+9X716t8jldjhPq+XS0n
|
||||
lxDJJMJAGBkOYN5DEFbaKiLbYok+t+H4PD/h7ecPzKTnDHplVtvpXspioisRREjytV27SZpqw4tu
|
||||
6LN6KY12zTjra5G5FxizWZgqk7qcnjVDbIcsMmFO/uYNhU2gXFpWHYTGcM8GO3Q207T/VEYkCcwO
|
||||
ZmUByAMgGBioRCHyKg2agbvUIpzAAnJBAFoMrdk71DVKqsH7+ThCN2iAOb/ufvYVmz4h5MlY4tR/
|
||||
LVNDvTmve9yZ/VzZpoc7Kzf1PWM6YU6nuEuT6rBkv7+HQwhPrdZb5f4eX+n+0b9dbU1AcHT51X4E
|
||||
rK9nXoXnGANV72H8GJFZ3q+YgPnkw2nvfd/T8FbP0Pk/2HbE+r7LuuY41FDuEohRWIiHK9mFrTRN
|
||||
B/+LuSKcKEhW39pzgA==
|
||||
====
|
128
sys/contrib/dev/nve/os.h
Normal file
128
sys/contrib/dev/nve/os.h
Normal file
@ -0,0 +1,128 @@
|
||||
/***************************************************************************\
|
||||
|* *|
|
||||
|* 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: os.h
|
||||
DATE: 2/7/00
|
||||
|
||||
This file contains the os interface. Note that the os interface is
|
||||
itself an OS-independent API. The OS specific module is implemented
|
||||
by ndis.c for Win9X/NT and linuxnet.c for linux.
|
||||
*/
|
||||
#ifndef _OS_H_
|
||||
#define _OS_H_
|
||||
|
||||
#include "phy.h"
|
||||
|
||||
#define HDO_VERSION_STRING "HDR O: $Revision: #21 $";
|
||||
|
||||
// This is the maximum packet size that we will be sending
|
||||
// #define MAX_PACKET_SIZE 2048
|
||||
//#define RX_BUFFER_SIZE 2048
|
||||
|
||||
#define MIN_PACKET_MTU_SIZE 576
|
||||
#define MAX_PACKET_MTU_SIZE 9202
|
||||
#define MAX_PACKET_SIZE_2048 2048
|
||||
#define MAX_PACKET_SIZE_1514 1514
|
||||
#define MAX_PACKET_SIZE_1518 1518
|
||||
#define MAX_PACKET_SIZE_JUMBO (9 * 1024)
|
||||
|
||||
typedef struct _MEMORY_BLOCK
|
||||
{
|
||||
PNV_VOID pLogical;
|
||||
PNV_VOID pPhysical;
|
||||
NV_UINT32 uiLength;
|
||||
} MEMORY_BLOCK, *PMEMORY_BLOCK;
|
||||
|
||||
#define ALLOC_MEMORY_NONCACHED 0x0001
|
||||
#define ALLOC_MEMORY_ALIGNED 0x0002
|
||||
|
||||
typedef struct _MEMORY_BLOCKEX
|
||||
{
|
||||
PNV_VOID pLogical;
|
||||
PNV_VOID pPhysical;
|
||||
NV_UINT32 uiLength;
|
||||
/* Parameter to OS layer to indicate what type of memory is needed */
|
||||
NV_UINT16 AllocFlags;
|
||||
NV_UINT16 AlignmentSize; //always power of 2
|
||||
/* Following three fields used for aligned memory allocation */
|
||||
PNV_VOID pLogicalOrig;
|
||||
NV_UINT32 pPhysicalOrigLow;
|
||||
NV_UINT32 pPhysicalOrigHigh;
|
||||
NV_UINT32 uiLengthOrig;
|
||||
} MEMORY_BLOCKEX, *PMEMORY_BLOCKEX;
|
||||
|
||||
|
||||
// The typedefs for the OS functions
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOC) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_FREE) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_ALLOCEX) (PNV_VOID pOSCX, PMEMORY_BLOCKEX pMem);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_MEMORY_FREEEX) (PNV_VOID pOSCX, PMEMORY_BLOCKEX pMem);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_CLEAR_MEMORY) (PNV_VOID pOSCX, PNV_VOID pMem, NV_SINT32 iLength);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_STALL_EXECUTION) (PNV_VOID pOSCX, NV_UINT32 ulTimeInMicroseconds);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_ALLOC_RECEIVE_BUFFER) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem, PNV_VOID *ppvID);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_FREE_RECEIVE_BUFFER) (PNV_VOID pOSCX, PMEMORY_BLOCK pMem, PNV_VOID pvID);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_PACKET_WAS_SENT) (PNV_VOID pOSCX, PNV_VOID pvID, NV_UINT32 ulSuccess);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_PACKET_WAS_RECEIVED) (PNV_VOID pOSCX, PNV_VOID pvADReadData, NV_UINT32 ulSuccess, NV_UINT8 *pNewBuffer, NV_UINT8 uc8021pPriority);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_LINK_STATE_HAS_CHANGED) (PNV_VOID pOSCX, NV_SINT32 nEnabled);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_ALLOC_TIMER) (PNV_VOID pvContext, PNV_VOID *ppvTimer);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_FREE_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_INITIALIZE_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer, PTIMER_FUNC pvFunc, PNV_VOID pvFuncParameter);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_SET_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer, NV_UINT32 dwMillisecondsDelay);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_CANCEL_TIMER) (PNV_VOID pvContext, PNV_VOID pvTimer);
|
||||
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_PREPROCESS_PACKET) (PNV_VOID pvContext, PNV_VOID pvADReadData, PNV_VOID *ppvID,
|
||||
NV_UINT8 *pNewBuffer, NV_UINT8 uc8021pPriority);
|
||||
typedef NV_API_CALL PNV_VOID (* PFN_PREPROCESS_PACKET_NOPQ) (PNV_VOID pvContext, PNV_VOID pvADReadData);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_INDICATE_PACKETS) (PNV_VOID pvContext, PNV_VOID *ppvID, NV_UINT32 ulNumPacket);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_ALLOC) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID *ppvLock);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_ACQUIRE) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID pvLock);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_LOCK_RELEASE) (PNV_VOID pOSCX, NV_SINT32 iLockType, PNV_VOID pvLock);
|
||||
typedef NV_API_CALL PNV_VOID (* PFN_RETURN_BUFFER_VIRTUAL) (PNV_VOID pvContext, PNV_VOID pvADReadData);
|
||||
|
||||
// Here are the OS functions that those objects below the OS interface
|
||||
// can call up to.
|
||||
typedef struct _OS_API
|
||||
{
|
||||
// OS Context -- this is a parameter to every OS API call
|
||||
PNV_VOID pOSCX;
|
||||
|
||||
// Basic OS functions
|
||||
PFN_MEMORY_ALLOC pfnAllocMemory;
|
||||
PFN_MEMORY_FREE pfnFreeMemory;
|
||||
PFN_MEMORY_ALLOCEX pfnAllocMemoryEx;
|
||||
PFN_MEMORY_FREEEX pfnFreeMemoryEx;
|
||||
PFN_CLEAR_MEMORY pfnClearMemory;
|
||||
PFN_STALL_EXECUTION pfnStallExecution;
|
||||
PFN_ALLOC_RECEIVE_BUFFER pfnAllocReceiveBuffer;
|
||||
PFN_FREE_RECEIVE_BUFFER pfnFreeReceiveBuffer;
|
||||
PFN_PACKET_WAS_SENT pfnPacketWasSent;
|
||||
PFN_PACKET_WAS_RECEIVED pfnPacketWasReceived;
|
||||
PFN_LINK_STATE_HAS_CHANGED pfnLinkStateHasChanged;
|
||||
PFN_ALLOC_TIMER pfnAllocTimer;
|
||||
PFN_FREE_TIMER pfnFreeTimer;
|
||||
PFN_INITIALIZE_TIMER pfnInitializeTimer;
|
||||
PFN_SET_TIMER pfnSetTimer;
|
||||
PFN_CANCEL_TIMER pfnCancelTimer;
|
||||
PFN_PREPROCESS_PACKET pfnPreprocessPacket;
|
||||
PFN_PREPROCESS_PACKET_NOPQ pfnPreprocessPacketNopq;
|
||||
PFN_INDICATE_PACKETS pfnIndicatePackets;
|
||||
PFN_LOCK_ALLOC pfnLockAlloc;
|
||||
PFN_LOCK_ACQUIRE pfnLockAcquire;
|
||||
PFN_LOCK_RELEASE pfnLockRelease;
|
||||
PFN_RETURN_BUFFER_VIRTUAL pfnReturnBufferVirtual;
|
||||
} OS_API, *POS_API;
|
||||
|
||||
#endif // _OS_H_
|
164
sys/contrib/dev/nve/phy.h
Normal file
164
sys/contrib/dev/nve/phy.h
Normal file
@ -0,0 +1,164 @@
|
||||
/***************************************************************************\
|
||||
|* *|
|
||||
|* 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: phy.h
|
||||
DATE: 2/7/00
|
||||
|
||||
This file contains the functional interface to the PHY.
|
||||
*/
|
||||
#ifndef _PHY_H_
|
||||
#define _PHY_H_
|
||||
|
||||
//#include "basetype.h"
|
||||
//#include "nvevent.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define DEFAULT_PHY_ADDRESS 1
|
||||
|
||||
|
||||
#define HDP_VERSION_STRING "HDR P: $Revision: #23 $"
|
||||
|
||||
//
|
||||
// Defaults for PHY timeout values.
|
||||
//
|
||||
#define PHY_POWER_ISOLATION_MS_TIMEOUT_DEFAULT 50
|
||||
#define PHY_RESET_MS_TIMEOUT_DEFAULT 50
|
||||
#define PHY_AUTONEG_MS_TIMEOUT_DEFAULT 3000
|
||||
#define PHY_LINK_UP_MS_TIMEOUT_DEFAULT 2400
|
||||
#define PHY_RDWR_US_TIMEOUT_DEFAULT 2048
|
||||
#define PHY_POWER_DOWN_US_TIMEOUT_DEFAULT 500
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// The phy module knows the values that need to go into the phy registers
|
||||
// but typically the method of writing those registers is controlled by
|
||||
// another module (usually the adapter because it is really the hardware
|
||||
// interface.) Hence, the phy needs routines to call to read and write the
|
||||
// phy registers. This structure with appropriate routines will be provided
|
||||
// in the PHY_Open call.
|
||||
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_READ_PHY) (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 *pulValue);
|
||||
typedef NV_API_CALL NV_SINT32 (* PFN_WRITE_PHY) (PNV_VOID pvData, NV_UINT32 ulPhyAddr, NV_UINT32 ulPhyReg, NV_UINT32 ulValue);
|
||||
|
||||
typedef struct PHY_SUPPORT_API
|
||||
{
|
||||
PNV_VOID pADCX;
|
||||
PFN_READ_PHY pfnRead;
|
||||
PFN_WRITE_PHY pfnWrite;
|
||||
// PFN_EVENT_OCCURED pfnEventOccurred;
|
||||
|
||||
//
|
||||
// These fields are passed down via the FD. FD get's them
|
||||
// from the registry. They allow one to fine tune the timeout
|
||||
// values in the PHY.
|
||||
//
|
||||
NV_UINT32 PhyPowerIsolationTimeoutInms;
|
||||
NV_UINT32 PhyResetTimeoutInms;
|
||||
NV_UINT32 PhyAutonegotiateTimeoutInms;
|
||||
NV_UINT32 PhyLinkupTimeoutInms;
|
||||
NV_UINT32 PhyPowerdownOnCloseInus;
|
||||
|
||||
} PHY_SUPPORT_API, *PPHY_SUPPORT_API;
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// The functional typedefs for the PHY Api
|
||||
typedef NV_SINT32 (* PFN_PHY_INIT) (PNV_VOID pvContext, NV_UINT32 *pulLinkState, NV_UINT32 PhyMode);
|
||||
typedef NV_SINT32 (* PFN_PHY_DEINIT) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_PHY_CLOSE) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_GET_LINK_SPEED) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_GET_LINK_MODE) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_GET_LINK_STATE) (PNV_VOID pvContext, NV_UINT32 *pulLinkState);
|
||||
typedef NV_SINT32 (* PFN_IS_LINK_INITIALIZING) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_RESET_PHY_INIT_STATE) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_FORCE_SPEED_DUPLEX) (PNV_VOID pvContext, NV_UINT16 usSpeed, NV_UINT8 ucForceDpx, NV_UINT8 ucForceMode);
|
||||
typedef NV_SINT32 (* PFN_PHY_POWERDOWN) (PNV_VOID pvContext);
|
||||
typedef NV_SINT32 (* PFN_SET_LOW_SPEED_FOR_PM) (PNV_VOID pvContext);
|
||||
|
||||
|
||||
typedef struct _PHY_API
|
||||
{
|
||||
// This is the context to pass back in as the first arg on all
|
||||
// the calls in the API below.
|
||||
PNV_VOID pPHYCX;
|
||||
|
||||
PFN_PHY_INIT pfnInit;
|
||||
PFN_PHY_INIT pfnInitFast;
|
||||
PFN_PHY_DEINIT pfnDeinit;
|
||||
PFN_PHY_CLOSE pfnClose;
|
||||
PFN_GET_LINK_SPEED pfnGetLinkSpeed;
|
||||
PFN_GET_LINK_MODE pfnGetLinkMode;
|
||||
PFN_GET_LINK_STATE pfnGetLinkState;
|
||||
PFN_IS_LINK_INITIALIZING pfnIsLinkInitializing;
|
||||
PFN_RESET_PHY_INIT_STATE pfnResetPhyInitState;
|
||||
PFN_FORCE_SPEED_DUPLEX pfnForceSpeedDuplex;
|
||||
PFN_PHY_POWERDOWN pfnPowerdown;
|
||||
PFN_SET_LOW_SPEED_FOR_PM pfnSetLowSpeedForPM;
|
||||
} PHY_API, *PPHY_API;
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// This is the one function in the PHY interface that is publicly
|
||||
// available. The rest of the interface is returned in the pPhyApi;
|
||||
// The first argument needs to be cast to a POS_API structure ptr.
|
||||
// On input the second argument is a ptr to a PPHY_SUPPORT_API.
|
||||
// On output, the second argument should be treated as a ptr to a
|
||||
// PPHY_API and set appropriately.
|
||||
extern NV_SINT32 PHY_Open (PNV_VOID pvOSApi, PNV_VOID pPhyApi, NV_UINT32 *pulPhyAddr, NV_UINT32 *pulPhyConnected);
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
// Here are the error codes the phy functions can return.
|
||||
#define PHYERR_NONE 0x0000
|
||||
#define PHYERR_COULD_NOT_ALLOC_CONTEXT 0x0001
|
||||
#define PHYERR_RESET_NEVER_FINISHED 0x0002
|
||||
#define PHYERR_NO_AVAILABLE_LINK_SPEED 0x0004
|
||||
#define PHYERR_INVALID_SETTINGS 0x0005
|
||||
#define PHYERR_READ_FAILED 0x0006
|
||||
#define PHYERR_WRITE_FAILED 0x0007
|
||||
#define PHYERR_NO_PHY 0x0008
|
||||
#define PHYERR_NO_RESOURCE 0x0009
|
||||
#define PHYERR_POWER_ISOLATION_TIMEOUT 0x000A
|
||||
#define PHYERR_POWER_DOWN_TIMEOUT 0x000B
|
||||
#define PHYERR_AUTONEG_TIMEOUT 0x000C
|
||||
#define PHYERR_PHY_LINK_SPEED_UNCHANGED 0x000D
|
||||
|
||||
#define PHY_INVALID_PHY_ADDR 0xFFFF;
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// This value can be used in the ulPhyLinkSpeed field.
|
||||
#define PHY_LINK_SPEED_UNKNOWN 0x0FFFFFFFF
|
||||
|
||||
//
|
||||
// Values used to configure PHY mode.
|
||||
//
|
||||
#define PHY_MODE_MII 1
|
||||
#define PHY_MODE_RGMII 2
|
||||
|
||||
typedef NV_VOID (* PTIMER_FUNC) (PNV_VOID pvContext);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
#endif //_PHY_H_
|
Loading…
Reference in New Issue
Block a user