rt2570sw.h
来自「AMLOGIC DPF source code」· C头文件 代码 · 共 1,922 行 · 第 1/5 页
H
1,922 行
* (o) you must hold dev_semaphore to change pusb_dev */ struct semaphore usbdev_semaphore; /* protect usb */ // Thread struct semaphore mlme_semaphore; /* to sleep thread on */ struct semaphore RTUSBCmd_semaphore; /* to sleep thread on */#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0) struct completion notify; /* thread begin/end */ pid_t MLMEThr_pid; pid_t RTUSBCmdThr_pid;#else struct task_struct * MLMEThr; volatile int MLMEThr_active; struct task_struct * RTUSBCmdThr; volatile int RTUSBCmdThr_active;#endif#endif // AVOS //wait_queue_head_t *wait; //spinlock_t *lock;#if 1 UINT SET_R17_FLAG; UCHAR BBPR17InitValue; UCHAR ResetRequest; UCHAR BulkAction;#endif#ifdef AVOS struct netif *net;#else struct net_device *net; BOOLEAN bNetDeviceStopQueue;#if WIRELESS_EXT >= 12 struct iw_statistics iw_stats;#endif struct net_device_stats netstats;#endif /* AVOS */ // configuration UCHAR PermanentAddress[ETH_LENGTH_OF_ADDRESS]; // Factory default MAC address UCHAR CurrentAddress[ETH_LENGTH_OF_ADDRESS]; // User changed MAC address USHORT EEPROMDefaultValue[NUM_EEPROM_BBP_PARMS]; USHORT EEPROMBBPTuningParameters[NUM_EEPROM_BBP_TUNING_PARMS]; // // Handle given by NDIS when the Adapter registered itself. // Various NDIS handle function // MGMT_STRUC MgmtRing[MGMT_RING_SIZE]; // management ring size UCHAR NextTxIndex; // 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; UCHAR NextBulkOutIndex; BOOLEAN BulkOutPending; BOOLEAN ControlPending; ULONG PrioRingTxCnt; UCHAR PrioRingFirstIndex; // 802.3 multicast support ULONG NumberOfMcAddresses; // Number of mcast entry exists UCHAR McastTable[MAX_MCAST_LIST_SIZE][ETH_LENGTH_OF_ADDRESS]; // Mcast list ULONG Flags; // Represent current device status // Flags for bulk out data priority ULONG BulkFlags; ///////////////////// // Transmit Path ///////////////////// atomic_t TxCount; // Number of Bulkout waiting to be send. TX_CONTEXT TxContext[TX_RING_SIZE]; TX_CONTEXT MLMEContext[PRIO_RING_SIZE]; TX_CONTEXT BeaconContext[BEACON_RING_SIZE]; TX_CONTEXT NullContext; TX_CONTEXT PsPollContext; RTS_BUFFER RTSBuffer; //WPAPSK_CONTEXT WpaPskContext; PUCHAR TxBuffer; TX_BUFFER TxMgmtBuf; ///////////////////// // Receive Path ///////////////////// RX_CONTEXT RxContext[RX_RING_SIZE]; PURB pRxUrb;//red: test mode only PIRP pRxIrp; PUCHAR RxBuffer; // SEND queue list //struct sk_buff_head SendTxWaitQueue; struct pbuf_head SendTxWaitQueue; USHORT Sequence; // Current sequence number TUPLE_CACHE TupleCache[MAX_CLIENT]; // Maximum number of tuple caches, only useful in Ad-Hoc UCHAR TupleCacheLastUpdateIndex; // 0..MAX_CLIENT-1 FRAGMENT_FRAME FragFrame; // Frame storage for fragment frame // For MiniportTransferData PUCHAR pRxData; // Pointer to current RxRing offset / fragment frame offset // Counters for 802.3 & generic. // Add 802.11 specific counters later COUNTER_802_3 Counters; // 802.3 counters COUNTER_802_11 WlanCounters; // 802.11 MIB counters COUNTER_RALINK RalinkCounters; // Ralink propriety counters COUNTER_DRS DrsCounters; // counters for Dynamic Rate Switching COUNTER_QA QACounters; // Ralink propriety counters NDIS_MEDIA_STATE MediaState; UCHAR StationState; NDIS_DEVICE_POWER_STATE CurrentPowerState; // Current device power state NDIS_DEVICE_POWER_STATE NextPowerState; // Next device power state PRIVATE_STRUC PrivateInfo; // Private information & counters // SpinLocks spinlock_t SendTxWaitQueueLock; // SendTxWaitQueue spinlock spinlock_t MLMEWaitQueueLock; // SendTxWaitQueue spinlock spinlock_t CmdQLock; // SendTxWaitQueue spinlock spinlock_t BulkOutLock; // SendTxWaitQueue spinlock spinlock_t ControlLock; // SendTxWaitQueue spinlock spinlock_t MLMEQLock; // SendTxWaitQueue spinlock spinlock_t GenericLock; // SendTxWaitQueue spinlock spinlock_t MemLock; // need to check // Reference count LONG RefCount; // Keep adapter refer count for checkforhang & halt ULONG SendRefCount; // number of packet that have not been confirmed ULONG RcvRefCount; // number of packets that have not been returned back // Various NDIS Event int ExitEvent; NDIS_MEDIA_STATE LinkIsActive; ULONG CurrentLookAhead; CmdQ CmdQ; DATA_BULKOUT_QUEUE DataQ; MLME_BULKOUT_QUEUE MLMEQ; // Boolean control for packet filter BOOLEAN bAcceptDirect; BOOLEAN bAcceptMulticast; BOOLEAN bAcceptBroadcast; BOOLEAN bAcceptAllMulticast; // Control to check Tx hang BOOLEAN bTxBusy; // Control disconnect / connect event generation ULONG LinkDownTime; UCHAR LastSsidLen; // the actual ssid length in used CHAR LastSsid[MAX_LEN_OF_SSID]; // NOT NULL-terminated MACADDR LastBssid; BOOLEAN bConfigChanged; // Config Change flag for the same SSID setting PORT_CONFIG PortCfg; MLME_STRUCT Mlme; ///////////////////// // USB ///////////////////// USHORT BulkOutMaxPacketSize; // 64 in XP USHORT BulkInMaxPacketSize; ///////////////////// // Control Flags ///////////////////// LONG PendingTx; atomic_t PendingRx; LONG PendingReset; LONG BulkOutFailed; LONG BulkInFailed; LONG DeviceFailed; UCHAR DeviceMode; BOOLEAN UnplugDevice; atomic_t TerminateThreads; atomic_t PendingIoCount; BOOLEAN BSSSelected; BOOLEAN StationWasAssociated; BOOLEAN StationIsAssociated; BOOLEAN StationIsAuthenticated; UCHAR WepLevel; BOOLEAN OutOfRangeDetected; BOOLEAN AddressOverrided; BOOLEAN AutoAuthentication; BOOLEAN AutoPreamble; BOOLEAN AutoJoin; BOOLEAN UseInternalFWImage; BOOLEAN AnyAP; PVOID pInformationBuffer; ULONG InformationBufferLength; PULONG pBytesWritten; PULONG pBytesNeeded; BOOLEAN SendDelimitingPacket; ULONG DelimitingPacketSent; UINT FragmentsSent; USHORT BulkOutLength; USHORT BulkOutRemained; BOOLEAN ContinBulkOut; USHORT BulkInRemained; BOOLEAN ContinBulkIn; BOOLEAN BeaconIntervalChangeAllowed; USHORT SentBeaconsCount; USHORT ReceivedBeaconsCount; LARGE_INTEGER TransmittedFragmentCount;#ifdef TEST_MODE_SUPPORT CmdQElmt CmdQElements[12];#else CmdQElmt CmdQElements[COMMAND_QUEUE_SIZE];#endif USHORT MACCounters[11]; TX_RATE_SWITCHING_STRUC TxRateSwitchingStruc[12]; ULONG CurrRateGoodTime; UCHAR CurrRateBadTime; UCHAR TxQuality; BBP_TUNING_PARAMETERS_STRUC BBPTuningParameters; ULONG LastRxRate; ULONG PacketsSentBetweenTBTTs; BOOLEAN ScanAllowed; // Alpha can't link up problem ULONG ExtraInfo; // Extra information for displaying status //struct net_device_stats net_device_stats; /* interface statistics */#ifdef AVOS PUCHAR usb_rw_buffer; // USB read/write buffer. struct pbuf_head rxq; struct pbuf_head done;#endif} RT2570ADAPTER, *PRT2570ADAPTER;#endif//////////////////////////////////////////////////////////////////////////////// inline FUNCTIONS//// IncrementIoCount and DecrementIoCount//// DESCRIPTION//// We keep a pending IO count. This count is initialized to one.// Subsequently, the count is incremented for each new IRP received or// created and is decremented when each IRP is completed.// Transition to 'one' therefore indicates no IO is pending and signals// Adapter->RemoveEvent. Transition to 'zero' signals an event// (Adapter->RemoveEvent) to enable device removal.//// INPUT//// Adapter Ptr to the adapter object//// OUTPUT//// -//////////////////////////////////////////////////////////////////////////////inline VOID IncrementIoCount(PRT2570ADAPTER Adapter);inline VOID DecrementIoCount(IN PRT2570ADAPTER pAdapter);////////////////////////////////////////////////////////////////////////////// __inline VOID EnQTxPacket(PRT2570ADAPTER Adapter, PNDIS_PACKET Packet)// {// PTX_QUEUE tempTxQnode;////// if (AllocateMemory(&tempTxQnode, sizeof(TX_QUEUE))!=NDIS_STATUS_SUCCESS)// {// NdisMSendComplete(Adapter->AdapterHandle, Packet, NDIS_STATUS_SUCCESS);// return;// }//// tempTxQnode->pNdisPacket = Packet;// tempTxQnode->next = NULL;//// if (Adapter->TxQHead==NULL)// {// Adapter->TxQHead = tempTxQnode;// }//// if (Adapter->TxQTail!=NULL)// {// Adapter->TxQTail->next = tempTxQnode;// }//// Adapter->TxQTail = tempTxQnode;// }////////////////////////////////////////////////////////////////////////////// __inline VOID DeQTxPacket(PRT2570ADAPTER Adapter)// {// PTX_QUEUE tempTxQnode;//// tempTxQnode = Adapter->TxQHead;// Adapter->TxQHead = tempTxQnode->next;//// if (Adapter->TxQHead==NULL)// {// Adapter->TxQTail=NULL;// }//// FreeMemory(tempTxQnode, sizeof(TX_QUEUE));// }#define DEVICE_VENDOR_REQUEST_OUT (USB_DIR_OUT | USB_TYPE_VENDOR | USB_RECIP_DEVICE) //0x40#define DEVICE_VENDOR_REQUEST_IN (USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_DEVICE ) //0xc0#define INTERFACE_VENDOR_REQUEST_OUT 0x41#define INTERFACE_VENDOR_REQUEST_IN 0xc1#define PL_RESET_IN (1<<3) /* reset input pipe */////////////////////////////////////////////////////////////////////////////// Misc definitions////////////////////////////////////////////////////////////////////////////#define OS_IS_WIN_2000 0 #define OS_IS_WIN_ME 1#define OS_IS_WIN_98 2#define OS_IS_WIN_XP 3////////////////////////////////////////////////////////////////////////////// Station States definitions////////////////////////////////////////////////////////////////////////////#define STATION_STATE_INITIALIZING 0x00#define STATION_STATE_SCANNING 0x01#define STATION_STATE_JOINNING 0x02#define STATION_STATE_AUTHENTICATING 0x03#define STATION_STATE_ASSOCIATING 0x04#define STATION_STATE_READY 0x05#define STATION_STATE_OUT_OF_RANGE 0x06#define STATION_STATE_DISASSOCIATING 0x07#define STATION_STATE_DIAUTHENTICATING 0x08#define STATION_STATE_REASSOCIATING 0x09#define STATION_STATE_FORCED_JOINNING 0x0a#define STATION_STATE_RECONFIGURING 0x0b#define STATION_STATE_FW_UPGRADE 0x0c#define STATION_STATE_FORCED_JOIN_FAILURE 0x0d #define STATION_STATE_RESETTING 0x0e #define STATION_STATE_RESET_PENDING 0x0f #define STATION_STATE_NOT_NET_MODE 0x10#define STATION_STATE_WAIT_ACTION 0x11 //under XP we need this state to allow XP to take control#define STATION_STATE_REJECTING_PACKETS 0x99 #define STATION_STATE_NO_CARD 0xf0 #define STATION_STATE_MGMT_ERROR 0xf1 #define STATION_STATE_GENERAL_ERROR 0xf2 #define STATION_STATE_POWER_DOWN 0xff////////////////////////////////////////////////////////////////////////////// SCAN Type Definitions////////////////////////////////////////////////////////////////////////////#define SCAN_TYPE_ACTIVE 0#define SCAN_TYPE_PASSIVE 1////////////////////////////////////////////////////////////////////////////// Operating Modes definitions////////////////////////////////////////////////////////////////////////////#defi
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?