?? am930hw.h
字號:
volatile UINT32 rsvd1; volatile UINT8 rts_attempts; volatile UINT8 data_attempts; volatile UINT8 tx_cntl; volatile UINT8 rsvd2;} SU_PACK am930tx_desc_t;#define TXD_OFF_START_FRAME 0#define TXD_OFF_NEXT 4#define TXD_OFF_LEN 8#define TXD_OFF_STATE 10#define TXD_OFF_RATE 11#define TXD_OFF_DIFS_ATTEMPTS 12#define TXD_OFF_DIFS_FAILURES 13#define TXD_OFF_SIFS_ATTEMPTS 14#define TXD_OFF_SIFS_FAILURES 15#define TXD_OFF_RSVD1 16#define TXD_OFF_RTS_ATTEMPTS 20#define TXD_OFF_DATA_ATTEMPTS 21#define TXD_OFF_TX_CNTL 22#define TXD_OFF_RSVD2 23/*--- TX Descriptor - state values and testing macros -*/#define SUTXD_ST_FWOWN (BIT7)#define SUTXD_ST_DONE (BIT6)#define SUTXD_ST_REJECTED (BIT5)#define SUTXD_ST_MSDU_TMOUT (BIT4)#define SUTXD_ST_ABRT (BIT3)#define SUTXD_ST_ABRT_NOTX (BIT2)#define SUTXD_ST_MAX_RETRY (BIT1)#define SUTXD_ST_TXERR (BIT0)#define SUTXD_ST_IS_FWOWN(x) ((x) & SUTXD_ST_FWOWN)#define SUTXD_ST_IS_HOSTOWN(x) (~(x) & SUTXD_ST_FWOWN)#define SUTXD_ST_IS_DONE(x) ((x) & SUTXD_ST_DONE)#define SUTXD_ST_IS_REJECTED(x) ((x) & SUTXD_ST_REJECTED)#define SUTXD_ST_IS_MSDU_TMOUT(x) ((x) & SUTXD_ST_MSDU_TMOUT)#define SUTXD_ST_IS_ABRT(x) ((x) & SUTXD_ST_ABRT)#define SUTXD_ST_IS_ABRT_NOTX(x) ((x) & SUTXD_ST_ABRT_NOTX)#define SUTXD_ST_IS_MAX_RETRY(x) ((x) & SUTXD_ST_MAX_RETRY)#define SUTXD_ST_IS_TXERR(x) ((x) & SUTXD_ST_TXERR)/*--- TX Descriptor - tx_cntl values ----*/#define SUTXD_CTL_PRESERVE_SEQ (BIT7)#define SUTXD_CTL_RSVD1 (BIT6)#define SUTXD_CTL_RSVD2 (BIT5)#define SUTXD_CTL_RSVD3 (BIT4)#define SUTXD_CTL_RSVD4 (BIT3)#define SUTXD_CTL_RSVD5 (BIT2)#define SUTXD_CTL_BURST (BIT1)#define SUTXD_CTL_FRAGS (BIT0)/*=============================================================*//*--- Command Argument Types ---------------------------------*//*=============================================================*//*--- Test Interface/NOP -SUCMD_TEST_NOP ----------------------*//*typedef struct sucmd_test_nop{} SU_PACK sucmd_test_nop_t;*//*--- Set MIB Variables - SUCMD_SET_MIB_VAR -------------------*/typedef struct sucmd_set_mib_var{ UINT8 type; UINT8 size; UINT8 index; UINT8 rsvd; UINT8 data[72];} SU_PACK sucmd_set_mib_var_t;/*--- Init Tx Routines --- SUCMD_INIT_TX ----------------------*/typedef struct sucmd_init_tx{ UINT32 data_desc; UINT32 mgmt_desc; UINT32 bcast_desc; UINT32 pspoll_desc; UINT32 cfpoll_desc;} SU_PACK sucmd_init_tx_t;/*--- Flush Tx ----------- SUCMD_FLUSH_TX ---------------------*/typedef struct sucmd_flush_tx{ UINT8 data; UINT8 mgmt; UINT8 bcast; UINT8 pspoll; UINT8 cfpoll;} SU_PACK sucmd_flush_tx_t;/*--- Enable Receiver ---- SUCMD_EN_RCVR ----------------------*/typedef struct sucmd_en_rcvr{ UINT32 data_desc; UINT32 pspoll_desc;} SU_PACK sucmd_en_rcvr_t;/*--- Disable Receiver --- SUCMD_DIS_RCVR ---------------------*//*typedef struct sucmd_dis_rcvr{} SU_PACK sucmd_dis_rcvr_t;*//*--- Sleep -------------- SUCMD_SLEEP ------------------------*/typedef struct sucmd_sleep{ UINT64 wake_up_time;} SU_PACK sucmd_sleep_t;/*--- Wake --------------- SUCMD_WAKE -------------------------*//*typedef struct sucmd_wake{} SU_PACK sucmd_wake_t;*//*--- Get MIB variables -- SUCMD_GET_MIB_VAR ------------------*/typedef struct sucmd_get_mib_var{ UINT8 type; UINT8 size; UINT8 index; UINT8 rsvd; UINT8 data[72];} SU_PACK sucmd_get_mib_var_t;/*--- Scan --------------- SUCMD_SCAN -------------------------*/typedef struct sucmd_scan{ UINT16 duration; UINT8 set_or_ch; UINT8 pattern; UINT8 index; UINT8 suspend;} SU_PACK sucmd_scan_t;/*--- Sync --------------- SUCMD_SYNC -------------------------*/typedef struct sucmd_sync{ UINT8 set_or_ch; UINT8 pattern; UINT8 index; UINT8 start_BSS; UINT16 dwell_interval; UINT16 rsvd; /* MUST be zero */ UINT8 bss_timestamp[WLAN_BSS_TS_LEN]; UINT32 ref_time;} SU_PACK sucmd_sync_t;/*--- Resume ------------- SUCMD_RESUME -----------------------*//*typedef struct sucmd_resume{} SU_PACK sucmd_resume_t;*//*=============================================================*//*--- AM930 Hardware interface types -------------------*//*=============================================================*/typedef void (*am930hw_scan_callback_t)(void *);typedef struct am930mem /* used for tx buffer mem mgmt */{ atomic_t lock; UINT32 bits; UINT32 start; UINT32 len; UINT32 fragsize;} am930mem_t;typedef struct am930hw_stats{ UINT32 tx_tmout; UINT32 tx_fifo_uflow; UINT32 tx_retry; UINT32 tx_rejected; UINT32 rx_crcerr; UINT32 rx_buf_oflow;} am930hw_stats_t;typedef struct am930hw{ /* object status indicator */ volatile UINT32 state; /* driver support */ struct am930mac *mac; /* resource assignments */ UINT32 membase; UINT32 usemem; /* use mem mapped io?? */ UINT32 iobase; UINT32 irq; /* firmware revision */ UINT32 fw_major; UINT32 fw_minor; UINT32 fw_api; UINT32 fw_date; /* firmware interface, note: the addrs are in card space */ UINT32 banner; UINT32 cs; UINT32 cmd; UINT32 txcmplt; UINT32 vbm; /* tx queue location */ UINT32 tx_base; UINT32 mgmt_tx_base; /* rx queue location */ UINT32 rx_base; UINT32 rx_len; /* tx queue management */ am930mem_t *mem; UINT32 tx_tail; UINT32 mgmt_tx_tail; UINT8 *txfrbuf; /* rx queue current head ptr */ UINT32 rx_head; /* F/W command support elements */ volatile UINT8 last_cmd; volatile UINT8 scan_ch; /* when scannning, this is the channel */ am930hw_stats_t stats; /* callback ptr(s) */ am930hw_scan_callback_t scan_callback; void *scan_callbackarg;} am930hw_t;/* bit flags for state information */#define AM930HW_CONFIG_PENDING (BIT0)#define AM930HW_CONFIG (BIT1)#define AM930HW_INTOCURRED (BIT2)#define AM930HW_SCANNING (BIT3)#define AM930HW_RXENABLED (BIT4)#define AM930HW_TXENABLED (BIT5)/* Method return codes */#define AM930HW_SUCCESS 0#define AM930HW_FAILURE 1#define AM930HW_NOTSUPPORTED 2/* Scan method bit flags */#define AM930HWSCAN_ACTIVE (BIT0)#define AM930HWSCAN_PASSIVE (BIT1)#define AM930HWSCAN_IBSS (BIT2)#define AM930HWSCAN_ESS (BIT3)/*=============================================================*//*--- Methods -------------------------------------------------*//*=============================================================*//* public: */am930hw_t* am930hw_construct(UINT32 irq, UINT32 iobase, UINT32 membase, am930mac_t *mac);void am930hw_destruct(am930hw_t *hw);UINT32 am930hw_reset( am930hw_t *hw );int am930hw_init_rx_tx( am930hw_t *hw );void am930hw_ISR( am930hw_t *hw );UINT32 am930hw_scan( am930hw_t *hw, UINT32 cntl, UINT48 bssid, UINT32 ch, UINT32 duration, am930hw_scan_callback_t cb, void *callback_arg );UINT32 am930hw_joinbss( am930hw_t *hw, UINT32 ch, UINT32 newBSS, UINT48 bssid, char *ssid, UINT32 bcn_int, wlan_bss_ts_t ts, UINT32 sutro_ref_time );UINT32 am930hw_txdata( am930hw_t* hw, UINT8 *buf, UINT32 len, UINT32 rate);UINT32 am930hw_txmgmt( am930hw_t* hw, UINT8 *buf, UINT32 len);UINT32 am930hw_mibget( am930hw_t *hw, UINT32 mibsec, UINT32 offset, UINT32 len, void *buf);UINT32 am930hw_mibgetitem( am930hw_t *hw, UINT32 itemid, void *buf, UINT32 len);UINT32 am930hw_mibset( am930hw_t *hw, UINT32 mibsec, UINT32 offset, UINT32 len, void *buf);UINT32 am930hw_mibsetitem( am930hw_t *hw, UINT32 itemid, void *buf, UINT32 len);/* start mod: tld */UINT32 am930hw_rssi_tld(int tld_v);/* end mod: tld */#endif /* _LINUX_AM930HW_H */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -