?? rt2570sw.h
字號:
//
// P802.11 Frame control field, 16 bit
//
typedef struct _FRAME_CONTROL {
USHORT Ver:2; // Protocol version
USHORT Type:2; // MSDU type
USHORT Subtype:4; // MSDU subtype
USHORT ToDs:1; // To DS indication
USHORT FrDs:1; // From DS indication
USHORT MoreFrag:1; // More fragment bit
USHORT Retry:1; // Retry status bit
USHORT PwrMgt:1; // Power management bit
USHORT MoreData:1; // More data bit
USHORT Wep:1; // Wep data
USHORT Order:1; // Strict order expected
} FRAME_CONTROL, *PFRAME_CONTROL;
//
// P802.11 intermediate header format
//
typedef struct _CONTROL_HEADER {
FRAME_CONTROL Frame; // Frame control structure
USHORT Duration; // Duration value
MACADDR Addr1; // Address 1 field
MACADDR Addr2; // Address 2 field
} CONTROL_HEADER, *PCONTROL_HEADER;
typedef struct _PS_POLL_BUFFER {
TXD_STRUC TxDesc;
PSPOLL_FRAME PsPollPacket;
} PS_POLL_BUFFER, *PPS_POLL_BUFFER;
//
// P802.11 header format
//
typedef struct _HEADER_802_11 {
CONTROL_HEADER Controlhead;
MACADDR Addr3; // Address 3 field
USHORT Frag:4; // Fragment number
USHORT Sequence:12; // Sequence number
} HEADER_802_11, *PHEADER_802_11;
typedef struct _NULL_FRAME_BUFFER {
TXD_STRUC TxDesc;
HEADER_802_11 NullFrame;
} NULL_FRAME_BUFFER, *PNULL_FRAME_BUFFER;
typedef struct _WPAPSK_BUFFER {
TXD_STRUC TxDesc;
UCHAR WpaPskFrame[512];
} WPAPSK_BUFFER, *PWPAPSK_BUFFER;
typedef struct _STUFF_BUFFER {
NULL_FRAME_BUFFER NullFrameBuffer;
UCHAR StuffBuffer[512];
} STUFF_BUFFER, *PSTUFF_BUFFER;
//
// Receive Tuple Cache Format
//
typedef struct _TUPLE_CACHE {
BOOLEAN Valid;
MACADDR MAC;
USHORT Sequence;
USHORT Frag;
} TUPLE_CACHE, *PTUPLE_CACHE;
//
// Fragment Frame structure
//
typedef struct _FRAGMENT_FRAME {
UCHAR Header802_3[14];
UCHAR Header_LLC[8];
UCHAR Buffer[MAX_FRAME_SIZE];
ULONG RxSize;
USHORT Sequence;
USHORT LastFrag;
ULONG Flags; // Some extra frame information. bit 0: LLC presented
} FRAGMENT_FRAME, *PFRAGMENT_FRAME;
//
// Packet information for NdisQueryPacket
//
typedef struct _PACKET_INFO {
UINT PhysicalBufferCount; // Physical breaks of buffer descripor chained
UINT BufferCount ; // Number of Buffer descriptor chained
UINT TotalPacketLength ; // Self explained
//PNDIS_BUFFER pFirstBuffer; // Pointer to first buffer descriptor
} PACKET_INFO, *PPACKET_INFO;
//
// Tkip Key structure which RC4 key & MIC calculation
//
typedef struct _TKIP_KEY_INFO {
UINT nBytesInM; // # bytes in M for MICKEY
ULONG IV16;
ULONG IV32;
ULONG K0; // for MICKEY Low
ULONG K1; // for MICKEY Hig
ULONG L; // Current state for MICKEY
ULONG R; // Current state for MICKEY
ULONG M; // Message accumulator for MICKEY
UCHAR RC4KEY[16];
UCHAR MIC[8];
} TKIP_KEY_INFO, *PTKIP_KEY_INFO;
//
// Private / Misc data, counters for driver internal use
//
typedef struct __PRIVATE_STRUC {
ULONG SystemResetCnt; // System reset counter
ULONG ResetCountDown; // Count down before issue reset, patch for RT2430
// ULONG CCAErrCnt; // CCA error count, for debug purpose, might move to global counter
ULONG PhyRxErrCnt; // PHY Rx error count, for debug purpose, might move to global counter
ULONG PhyTxErrCnt; // PHY Tx error count, for debug purpose, might move to global counter
// Variables for WEP encryption / decryption in rtmp_wep.c
ULONG FCSCRC32;
ULONG RxSetCnt;
ULONG DecryptCnt;
ARCFOURCONTEXT WEPCONTEXT;
// Tkip stuff
TKIP_KEY_INFO Tx;
TKIP_KEY_INFO Rx;
} PRIVATE_STRUC, *PPRIVATE_STRUC;
/////////////////
//Vendor Commands
/////////////////
#define COMMAND_QUEUE_SIZE 11
typedef struct _CmdQElmt {
UINT command;
PVOID buffer;
ULONG bufferlength;
BOOLEAN CmdFromNdis;
BOOLEAN SetOperation;
BOOLEAN InUse;//blue
struct _CmdQElmt *next;
} CmdQElmt, *PCmdQElmt;
typedef struct _CmdQ {
UINT size;
CmdQElmt *head;
CmdQElmt *tail;
} CmdQ, *PCmdQ;
typedef enum _BULK_OUT_TYPE {
DATA,
MLME,
BEACON,
PS_POLL,
ALL
} BULK_OUT_TYPE;
#if 0
typedef struct _BULK_OUT_QUEUE_ELEMENT {
BULK_OUT_TYPE BulkOutType;
PVOID buffer;
struct _BULK_OUT_QUEUE_ELEMENT *next;
} BULK_OUT_QUEUE_ELEMENT, *PBULK_OUT_QUEUE_ELEMENT;
typedef struct _BULK_OUT_QUEUE {
UINT size;
BULK_OUT_QUEUE_ELEMENT *head;
BULK_OUT_QUEUE_ELEMENT *tail;
} BULK_OUT_QUEUE, *PBULK_OUT_QUEUE;
typedef struct _BULK_OUT_QUEUE_ELEMENT {
PVOID buffer;
struct _BULK_OUT_QUEUE_ELEMENT *next;
} BULK_OUT_QUEUE_ELEMENT, *PBULK_OUT_QUEUE_ELEMENT;
typedef struct _BULK_OUT_QUEUE {
UINT size;
BULK_OUT_QUEUE_ELEMENT *head;
BULK_OUT_QUEUE_ELEMENT *tail;
} BULK_OUT_QUEUE, *PBULK_OUT_QUEUE;
#endif
//blue
typedef struct _DATA_BULKOUT_QUEUE {
UINT size;
struct sk_buff *head;
struct sk_buff *tail;
} DATA_BULKOUT_QUEUE, *PDATA_BULKOUT_QUEUE;
typedef struct _MLME_BULKOUT_QUEUE {
UINT size;
PMGMT_STRUC head;
PMGMT_STRUC tail;
} MLME_BULKOUT_QUEUE, *PMLME_BULKOUT_QUEUE;
#if 0
typedef enum bufferStates {
FREE,
USED,
COMPLETED,
PENDING
} BufferState;
#endif
// used to track driver-generated write irps
typedef struct _TX_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
// struct sk_buff *skb;
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.//Initialized in MiniportInitialize
PTX_BUFFER TransferBuffer;//Initialized in MiniportInitialize
ULONG BulkOutSize;
BOOLEAN InUse;
BOOLEAN IRPPending;
BOOLEAN LastOne;
}
TX_CONTEXT, *PTX_CONTEXT, **PPTX_CONTEXT;
// used to track driver-generated write irps
typedef struct _MLME_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
PMGMT_STRUC pMgmt;
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.//Initialized in MiniportInitialize
PTX_BUFFER TransferBuffer;//Initialized in MiniportInitialize
// UINT TransferBufferLength;//TransferBufferLength
// CONTEXT_TYPE Type;
// BufferState fInUse; // Declared as ULONG so can use with InterlockedExchange()
BOOLEAN InUse;
BOOLEAN IRPPending;
BOOLEAN LastOne;
UCHAR Index;
}
MLME_CONTEXT, *PMLME_CONTEXT, **PPMLME_CONTEXT;
typedef struct _NULL_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.
PNULL_FRAME_BUFFER TransferBuffer;//Initialized in MiniportInitialize
// UINT TransferBufferLength;//TransferBufferLength
// BufferState fInUse; // Declared as ULONG so can use with InterlockedExchange()
BOOLEAN InUse;
BOOLEAN IRPPending;
}
NULL_CONTEXT, *PNULL_CONTEXT;
typedef struct _WPAPSK_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.
PWPAPSK_BUFFER TransferBuffer;//Initialized in MiniportInitialize
// UINT TransferBufferLength;//TransferBufferLength
// BufferState fInUse; // Declared as ULONG so can use with InterlockedExchange()
BOOLEAN InUse;
BOOLEAN Ready;
BOOLEAN IRPPending;
}
WPAPSK_CONTEXT, *PWPAPSK_CONTEXT;
typedef struct _PS_POLL_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.
PPS_POLL_BUFFER TransferBuffer;//Initialized in MiniportInitialize
// UINT TransferBufferLength;//TransferBufferLength
// BufferState fInUse; // Declared as ULONG so can use with InterlockedExchange()
BOOLEAN InUse;
BOOLEAN Ready;
BOOLEAN IRPPending;
}
PS_POLL_CONTEXT, *PPS_POLL_CONTEXT;
typedef struct _STUFF_CONTEXT
{
PVOID pAdapter;//Initialized in MiniportInitialize
PURB pUrb;//Initialized in MiniportInitialize
PIRP pIrp;//used to cancel pending bulk out.
PSTUFF_BUFFER TransferBuffer;//Initialized in MiniportInitialize
// UINT TransferBufferLength;//TransferBufferLength
// BufferState fInUse; // Declared as ULONG so can use with InterlockedExchange()
BOOLEAN InUse;
BOOLEAN Ready;
BOOLEAN IRPPending;
}
STUFF_CONTEXT, *PSTUFF_CONTEXT;
//
// Structure to keep track of receive packets and buffers to indicate
// receive data to the protocol.
//
#define IRPLOCK_COMPLETED 0
#define IRPLOCK_CANCELABLE 1
#define IRPLOCK_CANCE_START 2
#define IRPLOCK_CANCE_COMPLETE 3
typedef struct _RX_CONTEXT
{
PVOID pAdapter;
PIRP pIrp; //used to cancel pending bulk in.
PURB pUrb;
BOOLEAN InUse;
atomic_t IrpLock;
PUCHAR TransferBuffer;
}
RX_CONTEXT, *PRX_CONTEXT;
#if 0
// NDIS
typedef struct _RX_CONTEXT
{
PUCHAR TransferBuffer;
PVOID pAdapter;
PIRP pIrp;//used to cancel pending bulk in.
PURB pUrb;
BOOLEAN InUse;
IRPLOCK IrpLock;
} RX_CONTEXT, *PRX_CONTEXT;
#endif
typedef struct _VENDOR_REQUEST_URB
{
PURB pUrb;
// BOOLEAN InUse;
PIRP pIrp;//used to cancel pending IRP
BOOLEAN IRPPending;
}
VENDOR_REQUEST_URB;
typedef struct _TX_RATE_SWITCHING_STRUC
{
ULONG LastStableTime;
UCHAR DownRate1Ratio;
UCHAR DownRate2Ratio;
UCHAR UpRateRatio;
UCHAR StableTimeRequired;
UCHAR PenaltyPeriod;
UCHAR DownWaitingTime;
}
TX_RATE_SWITCHING_STRUC, *PTX_RATE_SWITCHING_STRUC;
typedef struct _TX_RATE_SWITCHING_COUNTERS
{
USHORT NoRetryOKCnt;
USHORT OneRetryOKCnt;
USHORT MRetryOKCnt;
USHORT FailCnt;
}
TX_RATE_SWITCHING_COUNTERS, *PTX_RATE_SWITCHING_COUNTERS;
typedef struct _BBP_TUNING_PARAMETERS_STRUC
{
UCHAR BBPTuningThreshold;
UCHAR R24LowerValue;
UCHAR R24HigherValue;
UCHAR R25LowerValue;
UCHAR R25HigherValue;
UCHAR R61LowerValue;
UCHAR R61HigherValue;
UCHAR BBPR17LowSensitivity;
UCHAR BBPR17MidSensitivity;
UCHAR RSSIToDbmOffset;
BOOLEAN LargeCurrentRSSI;
}
BBP_TUNING_PARAMETERS_STRUC, *PBBP_TUNING_PARAMETERS_STRUC;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -