📄 rtmp.h
字号:
#ifdef RALINK_ATE ATE_INFO ate; BOOLEAN ContinBulkOut; //ATE bulk out control atomic_t BulkOutRemained; BOOLEAN ContinBulkIn; //ATE bulk in control atomic_t BulkInRemained;#endif // RALINK_ATE ////////////////////////////////////////////////////////////////////// // USB ////////////////////////////////////////////////////////////////////// USHORT BulkOutMaxPacketSize; // 64 in XP USHORT BulkInMaxPacketSize; CmdQ CmdQ; CmdQElmt CmdQElements[COMMAND_QUEUE_SIZE]; BOOLEAN CmdHandlerIsRunning; BOOLEAN DeQueueRunning[4]; // for ensuring RTUSBDeQueuePacket get call once BOOLEAN DeMGMTQueueRunning; // for ensuring RTUSBDeQueuePacket get call once // SpinLocks spinlock_t SendTxWaitQueueLock[4]; // SendTxWaitQueue spinlock spinlock_t DataQLock[4]; spinlock_t DeQueueLock[4]; spinlock_t DeMGMTQueueLock; // for ensuring RTUSBDeQueuePacket get call once spinlock_t MLMEWaitQueueLock; // SendTxWaitQueue spinlock spinlock_t CmdQLock; // SendTxWaitQueue spinlock spinlock_t BulkOutLock[4]; // SendTxWaitQueue spinlock for 4 ACs // spinlock_t ControlLock; // SendTxWaitQueue spinlock spinlock_t MLMEQLock; // SendTxWaitQueue spinlock spinlock_t GenericLock; // SendTxWaitQueue spinlock spinlock_t TxRingLock; // SendTxWaitQueue spinlock // BensonLiu modify ///////////////////// // Transmit Path ///////////////////// TX_CONTEXT MLMEContext[PRIO_RING_SIZE]; TX_CONTEXT BeaconContext[BEACON_RING_SIZE]; TX_CONTEXT NullContext; TX_CONTEXT PsPollContext; TX_CONTEXT RTSContext;// PUCHAR TxBuffer;// TX_BUFFER TxMgmtBuf;// PURB pTxMgmtUrb;// PIRP pTxMgmtIrp; QUEUE_HEADER SendTxWaitQueue[4]; UINT32 TxRingTotalNumber[4]; UCHAR NextTxIndex[4]; // Next TxD write pointer UCHAR NextMLMEIndex; // Next PrioD write pointer UCHAR PushMgmtIndex; // Next SW management ring index UCHAR PopMgmtIndex; // Next SW management ring index atomic_t MgmtQueueSize; // Number of Mgmt request stored in MgmtRing UCHAR NextRxBulkInIndex; // 4 sets of Bulk Out index and pending flag UCHAR NextBulkOutIndex[4]; BOOLEAN BulkOutPending[4];// BOOLEAN ControlPending; ULONG PrioRingTxCnt; UCHAR PrioRingFirstIndex; atomic_t TxCount; // Number of Bulkout waiting to be send. LONG PendingTx; // Data related context and AC specified, 4 AC supported TX_CONTEXT TxContext[4][TX_RING_SIZE]; LONG NumPacketsQueued[4];// PURB pTxUrb[4];// PIRP pTxIrp[4]; ///////////////////// // Receive Path ///////////////////// RX_CONTEXT RxContext[RX_RING_SIZE];// PURB pRxUrb;// PIRP pRxIrp;// PUCHAR RxBuffer; atomic_t PendingRx; ///////////////////// // Control Flags /////////////////////// atomic_t PendingIoCount; // Flags for bulk out data priority ULONG BulkFlags;// spinlock_t MemLock; // need to check ULONG BulkOutDataOneSecCount; ULONG BulkInDataOneSecCount; ULONG BulkLastOneSecCount; // BulkOutDataOneSecCount + BulkInDataOneSecCount#ifdef BLOCK_NET_IF BLOCK_QUEUE_ENTRY blockQueueTab[NUM_OF_TX_RING];#endif // BLOCK_NET_IF // // used to record how many null frame send success int null_frame_counter; // used to record how many virtual interfaces been upped already. ULONG VirtualIfCnt; USHORT MacRegWrite_Processing; BOOLEAN ProbeFinish;} RTMP_ADAPTER, *PRTMP_ADAPTER;/* Define in md5.h *///// SHA context////typedef struct//{// ULONG H[5];// ULONG W[80];// INT lenW;// ULONG sizeHi, sizeLo;//} SHA_CTX;#ifdef RALINK_ATEextern RTMP_RF_REGS RF2528RegTable[];extern RTMP_RF_REGS RF5226RegTable[];extern RTMP_RF_REGS RF5225RegTable[];extern UCHAR NUM_OF_2528_CHNL;extern UCHAR NUM_OF_5226_CHNL;extern UCHAR NUM_OF_5225_CHNL;#endif//// Prototypes of function definition////// Miniport routines in rtmp_main.c//VOID RTUSBHalt( IN PRTMP_ADAPTER pAd, IN BOOLEAN IsFree); VOID CMDHandler( IN PRTMP_ADAPTER pAd);INT MlmeThread( IN void * Context);INT RTUSBCmdThread( IN void * Context); #if WIRELESS_EXT >= 12struct iw_statistics *rt73_get_wireless_stats( IN struct net_device *net_dev);#endifstruct net_device_stats *rt73_get_ether_stats( IN struct net_device *net_dev);long rt_abs(long arg);//// Routines in rtmp_init.c//VOID CreateThreads( struct net_device *net_dev );NDIS_STATUS NICInitTransmit( IN PRTMP_ADAPTER pAd );NDIS_STATUS NICInitRecv( IN PRTMP_ADAPTER pAd);VOID ReleaseAdapter( IN PRTMP_ADAPTER pAd, IN BOOLEAN IsFree, IN BOOLEAN IsOnlyTx);NDIS_STATUS RTMPInitAdapterBlock( IN PRTMP_ADAPTER pAd);NDIS_STATUS RTUSBWriteHWMACAddress( IN PRTMP_ADAPTER pAd);VOID NICReadEEPROMParameters( IN PRTMP_ADAPTER pAd);VOID NICInitAsicFromEEPROM( IN PRTMP_ADAPTER pAd);NDIS_STATUS NICInitializeAsic( IN PRTMP_ADAPTER pAd);VOID NICIssueReset( IN PRTMP_ADAPTER pAd);BOOLEAN NICCheckForHang( IN PRTMP_ADAPTER pAd);VOID NICUpdateRawCounters( IN PRTMP_ADAPTER pAd);VOID NICResetFromError( IN PRTMP_ADAPTER pAd);NDIS_STATUS NICLoadFirmware( IN PRTMP_ADAPTER pAd);PUCHAR RTMPFindSection( IN PCHAR buffer); INT RTMPGetKeyParameter( IN PCHAR key, OUT PCHAR dest, IN INT destsize, IN PCHAR buffer);VOID RTMPReadParametersFromFile( IN PRTMP_ADAPTER pAd);#ifndef BIG_ENDIANULONG RTMPEqualMemory( IN PVOID pSrc1, IN PVOID pSrc2, IN ULONG Length);#endifULONG RTMPCompareMemory( IN PVOID pSrc1, IN PVOID pSrc2, IN ULONG Length);VOID RTMPZeroMemory( IN PVOID pSrc, IN ULONG Length);VOID RTMPFillMemory( IN PVOID pSrc, IN ULONG Length, IN UCHAR Fill);VOID RTMPMoveMemory( OUT PVOID pDest, IN PVOID pSrc, IN ULONG Length);VOID PortCfgInit( IN PRTMP_ADAPTER pAd);UCHAR BtoH( IN CHAR ch);VOID AtoH( IN CHAR *src, OUT UCHAR *dest, IN INT destlen);VOID RTMPPatchMacBbpBug( IN PRTMP_ADAPTER pAd);VOID RTMPusecDelay( IN ULONG usec);VOID RTMPSetLED( IN PRTMP_ADAPTER pAd, IN UCHAR Status);VOID RTMPSetSignalLED( IN PRTMP_ADAPTER pAd, IN NDIS_802_11_RSSI Dbm);VOID RTMPCckBbpTuning( IN PRTMP_ADAPTER pAd, IN UINT TxRate);VOID RTMPInitTimer( IN PRTMP_ADAPTER pAd, IN PRALINK_TIMER_STRUCT pTimer, IN PVOID pTimerFunc, IN PVOID pData, IN BOOLEAN Repeat);VOID RTMPSetTimer( IN PRALINK_TIMER_STRUCT pTimer, IN ULONG Value);VOID RTMPModTimer( IN PRALINK_TIMER_STRUCT pTimer, IN ULONG Value);VOID RTMPCancelTimer( IN PRALINK_TIMER_STRUCT pTimer, OUT BOOLEAN *pCancelled);char * rtstrstr(const char * s1,const char * s2);//// MLME routines//// Asic/RF/BBP related functionsVOID AsicSwitchChannel( IN PRTMP_ADAPTER pAd, IN UCHAR Channel); VOID AsicLockChannel( IN PRTMP_ADAPTER pAd, IN UCHAR Channel); VOID AsicAntennaSelect( IN PRTMP_ADAPTER pAd, IN UCHAR Channel); VOID AsicAntennaSetting( IN PRTMP_ADAPTER pAd, IN ABGBAND_STATE BandState);VOID AsicAdjustTxPower( IN PRTMP_ADAPTER pAd); VOID AsicSleepThenAutoWakeup( IN PRTMP_ADAPTER pAd, IN USHORT TbttNumToNextWakeUp); VOID AsicForceSleep( IN PRTMP_ADAPTER pAd);VOID AsicForceWakeup( IN PRTMP_ADAPTER pAd);VOID AsicSetBssid( IN PRTMP_ADAPTER pAd, IN PUCHAR pBssid); VOID AsicDisableSync( IN PRTMP_ADAPTER pAd); VOID AsicEnableBssSync( IN PRTMP_ADAPTER pAd); VOID AsicEnableIbssSync( IN PRTMP_ADAPTER pAd);VOID AsicSetEdcaParm( IN PRTMP_ADAPTER pAd, IN PEDCA_PARM pEdcaParm); VOID AsicSetSlotTime( IN PRTMP_ADAPTER pAd, IN BOOLEAN bUseShortSlotTime); VOID AsicBbpTuning( IN PRTMP_ADAPTER pAd);VOID AsicAddSharedKeyEntry( IN PRTMP_ADAPTER pAd, IN UCHAR BssIndex, IN UCHAR KeyIdx, IN UCHAR CipherAlg, IN PUCHAR pKey, IN PUCHAR pTxMic, IN PUCHAR pRxMic);VOID AsicRemoveSharedKeyEntry( IN PRTMP_ADAPTER pAd, IN UCHAR BssIndex, IN UCHAR KeyIdx);VOID AsicAddPairwiseKeyEntry( IN PRTMP_ADAPTER pAd, IN PUCHAR pAddr, IN UCHAR KeyIdx, IN UCHAR CipherAlg, IN PUCHAR pKey, IN PUCHAR pTxMic, IN PUCHAR pRxMic);VOID AsicRemovePairwiseKeyEntry( IN PRTMP_ADAPTER pAd, IN UCHAR KeyIdx);VOID RTMPCheckRates( IN PRTMP_ADAPTER pAd, IN OUT UCHAR SupRate[], IN OUT UCHAR *SupRateLen);VOID AsicSetRxAnt( IN PRTMP_ADAPTER pAd, IN UCHAR Pair1, IN UCHAR Pair2);VOID AsicEvaluateSecondaryRxAnt( IN PRTMP_ADAPTER pAd); VOID AsicRxAntEvalTimeout( IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID SystemSpecific2, IN PVOID SystemSpecific3);VOID AsicRxAntEvalAction( IN PRTMP_ADAPTER pAd);UCHAR RandomByte( IN PRTMP_ADAPTER pAd); VOID StaQuickResponeForRateUpExec( IN PVOID SystemSpecific1, IN PVOID FunctionContext, IN PVOID Syst
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -