📄 desc.h
字号:
} __attribute__ ((__packed__))
STDES0;
#endif
typedef struct tagTDES1 {
volatile WORD wReqCount;
volatile BYTE byTCR;
volatile BYTE byReserved;
} __attribute__ ((__packed__))
STDES1;
typedef struct tagDEVICE_TD_INFO{
struct sk_buff* skb;
PBYTE buf;
dma_addr_t skb_dma;
dma_addr_t buf_dma;
dma_addr_t curr_desc;
DWORD dwReqCount;
DWORD dwHeaderLength;
BYTE byFlags;
} DEVICE_TD_INFO, *PDEVICE_TD_INFO;
/*
static inline PDEVICE_TD_INFO alloc_td_info(void) {
PDEVICE_TD_INFO ptr;
if ((ptr = kmalloc(sizeof(DEVICE_TD_INFO),GFP_ATOMIC))==NULL)
return NULL;
else {
memset(ptr,0,sizeof(DEVICE_TD_INFO));
return ptr;
}
}
*/
//
// transmit descriptor
//
typedef struct tagSTxDesc {
volatile STDES0 m_td0TD0;
volatile STDES1 m_td1TD1;
volatile U32 buff_addr;
volatile U32 next_desc;
struct tagSTxDesc* next; //4 bytes
volatile PDEVICE_TD_INFO pTDInfo;//4 bytes
volatile U32 Reserved[2];//8 bytes
} __attribute__ ((__packed__))
STxDesc, DEF* PSTxDesc;
typedef const STxDesc DEF* PCSTxDesc;
typedef struct tagSTxSyncDesc {
volatile STDES0 m_td0TD0;
volatile STDES1 m_td1TD1;
volatile DWORD buff_addr; // pointer to logical buffer
volatile DWORD next_desc; // pointer to next logical descriptor
volatile WORD m_wFIFOCtl;
volatile WORD m_wTimeStamp;
struct tagSTxSyncDesc* next; //4 bytes
volatile PDEVICE_TD_INFO pTDInfo;//4 bytes
volatile DWORD m_dwReserved2;
} __attribute__ ((__packed__))
STxSyncDesc, DEF* PSTxSyncDesc;
typedef const STxSyncDesc DEF* PCSTxSyncDesc;
//
// RsvTime buffer header
//
typedef struct tagSRrvTime_gRTS {
WORD wRTSTxRrvTime_ba;
WORD wRTSTxRrvTime_aa;
WORD wRTSTxRrvTime_bb;
WORD wReserved;
WORD wTxRrvTime_b;
WORD wTxRrvTime_a;
}__attribute__ ((__packed__))
SRrvTime_gRTS, DEF* PSRrvTime_gRTS;
typedef const SRrvTime_gRTS DEF* PCSRrvTime_gRTS;
typedef struct tagSRrvTime_gCTS {
WORD wCTSTxRrvTime_ba;
WORD wReserved;
WORD wTxRrvTime_b;
WORD wTxRrvTime_a;
}__attribute__ ((__packed__))
SRrvTime_gCTS, DEF* PSRrvTime_gCTS;
typedef const SRrvTime_gCTS DEF* PCSRrvTime_gCTS;
typedef struct tagSRrvTime_ab {
WORD wRTSTxRrvTime;
WORD wTxRrvTime;
}__attribute__ ((__packed__))
SRrvTime_ab, DEF* PSRrvTime_ab;
typedef const SRrvTime_ab DEF* PCSRrvTime_ab;
typedef struct tagSRrvTime_atim {
WORD wCTSTxRrvTime_ba;
WORD wTxRrvTime_a;
}__attribute__ ((__packed__))
SRrvTime_atim, DEF* PSRrvTime_atim;
typedef const SRrvTime_atim DEF* PCSRrvTime_atim;
//
// RTS buffer header
//
typedef struct tagSRTSData {
WORD wFrameControl;
WORD wDurationID;
BYTE abyRA[U_ETHER_ADDR_LEN];
BYTE abyTA[U_ETHER_ADDR_LEN];
}__attribute__ ((__packed__))
SRTSData, DEF* PSRTSData;
typedef const SRTSData DEF* PCSRTSData;
typedef struct tagSRTS_g {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
BYTE bySignalField_a;
BYTE byServiceField_a;
WORD wTransmitLength_a;
WORD wDuration_ba;
WORD wDuration_aa;
WORD wDuration_bb;
WORD wReserved;
SRTSData Data;
}__attribute__ ((__packed__))
SRTS_g, DEF* PSRTS_g;
typedef const SRTS_g DEF* PCSRTS_g;
typedef struct tagSRTS_g_FB {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
BYTE bySignalField_a;
BYTE byServiceField_a;
WORD wTransmitLength_a;
WORD wDuration_ba;
WORD wDuration_aa;
WORD wDuration_bb;
WORD wReserved;
WORD wRTSDuration_ba_f0;
WORD wRTSDuration_aa_f0;
WORD wRTSDuration_ba_f1;
WORD wRTSDuration_aa_f1;
SRTSData Data;
}__attribute__ ((__packed__))
SRTS_g_FB, DEF* PSRTS_g_FB;
typedef const SRTS_g_FB DEF* PCSRTS_g_FB;
typedef struct tagSRTS_ab {
BYTE bySignalField;
BYTE byServiceField;
WORD wTransmitLength;
WORD wDuration;
WORD wReserved;
SRTSData Data;
}__attribute__ ((__packed__))
SRTS_ab, DEF* PSRTS_ab;
typedef const SRTS_ab DEF* PCSRTS_ab;
typedef struct tagSRTS_a_FB {
BYTE bySignalField;
BYTE byServiceField;
WORD wTransmitLength;
WORD wDuration;
WORD wReserved;
WORD wRTSDuration_f0;
WORD wRTSDuration_f1;
SRTSData Data;
}__attribute__ ((__packed__))
SRTS_a_FB, DEF* PSRTS_a_FB;
typedef const SRTS_a_FB DEF* PCSRTS_a_FB;
//
// CTS buffer header
//
typedef struct tagSCTSData {
WORD wFrameControl;
WORD wDurationID;
BYTE abyRA[U_ETHER_ADDR_LEN];
WORD wReserved;
}__attribute__ ((__packed__))
SCTSData, DEF* PSCTSData;
typedef struct tagSCTS {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
WORD wDuration_ba;
WORD wReserved;
SCTSData Data;
}__attribute__ ((__packed__))
SCTS, DEF* PSCTS;
typedef const SCTS DEF* PCSCTS;
typedef struct tagSCTS_FB {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
WORD wDuration_ba;
WORD wReserved;
WORD wCTSDuration_ba_f0;
WORD wCTSDuration_ba_f1;
SCTSData Data;
}__attribute__ ((__packed__))
SCTS_FB, DEF* PSCTS_FB;
typedef const SCTS_FB DEF* PCSCTS_FB;
//
// Tx FIFO header
//
typedef struct tagSTxBufHead {
DWORD adwTxKey[4];
WORD wFIFOCtl;
WORD wTimeStamp;
WORD wFragCtl;
BYTE byTxPower;
BYTE wReserved;
}__attribute__ ((__packed__))
STxBufHead, DEF* PSTxBufHead;
typedef const STxBufHead DEF* PCSTxBufHead;
typedef struct tagSTxShortBufHead {
WORD wFIFOCtl;
WORD wTimeStamp;
}__attribute__ ((__packed__))
STxShortBufHead, DEF* PSTxShortBufHead;
typedef const STxShortBufHead DEF* PCSTxShortBufHead;
//
// Tx data header
//
typedef struct tagSTxDataHead_g {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
BYTE bySignalField_a;
BYTE byServiceField_a;
WORD wTransmitLength_a;
WORD wDuration_b;
WORD wDuration_a;
WORD wTimeStampOff_b;
WORD wTimeStampOff_a;
}__attribute__ ((__packed__))
STxDataHead_g, DEF* PSTxDataHead_g;
typedef const STxDataHead_g DEF* PCSTxDataHead_g;
typedef struct tagSTxDataHead_g_FB {
BYTE bySignalField_b;
BYTE byServiceField_b;
WORD wTransmitLength_b;
BYTE bySignalField_a;
BYTE byServiceField_a;
WORD wTransmitLength_a;
WORD wDuration_b;
WORD wDuration_a;
WORD wDuration_a_f0;
WORD wDuration_a_f1;
WORD wTimeStampOff_b;
WORD wTimeStampOff_a;
}__attribute__ ((__packed__))
STxDataHead_g_FB, DEF* PSTxDataHead_g_FB;
typedef const STxDataHead_g_FB DEF* PCSTxDataHead_g_FB;
typedef struct tagSTxDataHead_ab {
BYTE bySignalField;
BYTE byServiceField;
WORD wTransmitLength;
WORD wDuration;
WORD wTimeStampOff;
}__attribute__ ((__packed__))
STxDataHead_ab, DEF* PSTxDataHead_ab;
typedef const STxDataHead_ab DEF* PCSTxDataHead_ab;
typedef struct tagSTxDataHead_a_FB {
BYTE bySignalField;
BYTE byServiceField;
WORD wTransmitLength;
WORD wDuration;
WORD wTimeStampOff;
WORD wDuration_f0;
WORD wDuration_f1;
}__attribute__ ((__packed__))
STxDataHead_a_FB, DEF* PSTxDataHead_a_FB;
typedef const STxDataHead_a_FB DEF* PCSTxDataHead_a_FB;
//
// MICHDR data header
//
typedef struct tagSMICHDRHead {
DWORD adwHDR0[4];
DWORD adwHDR1[4];
DWORD adwHDR2[4];
}__attribute__ ((__packed__))
SMICHDRHead, DEF* PSMICHDRHead;
typedef const SMICHDRHead DEF* PCSMICHDRHead;
typedef struct tagSBEACONCtl {
DWORD BufReady : 1;
DWORD TSF : 15;
DWORD BufLen : 11;
DWORD Reserved : 5;
}__attribute__ ((__packed__))
SBEACONCtl;
typedef struct tagSSecretKey {
DWORD dwLowDword;
BYTE byHighByte;
}__attribute__ ((__packed__))
SSecretKey;
typedef struct tagSKeyEntry {
BYTE abyAddrHi[2];
WORD wKCTL;
BYTE abyAddrLo[4];
DWORD dwKey0[4];
DWORD dwKey1[4];
DWORD dwKey2[4];
DWORD dwKey3[4];
DWORD dwKey4[4];
}__attribute__ ((__packed__))
SKeyEntry;
/*--------------------- Export Macros ------------------------------*/
/*--------------------- Export Classes ----------------------------*/
/*--------------------- Export Variables --------------------------*/
/*--------------------- Export Functions --------------------------*/
#endif // __DESC_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -