1 /* $FreeBSD: head/sys/dev/ral/rt2661var.h 192468 2009-05-20 20:00:40Z sam $ */
5 * Damien Bergamini <damien.bergamini@free.fr>
7 * Permission to use, copy, modify, and distribute this software for any
8 * purpose with or without fee is hereby granted, provided that the above
9 * copyright notice and this permission notice appear in all copies.
11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
20 struct rt2661_rx_radiotap_header
{
21 struct ieee80211_radiotap_header wr_ihdr
;
25 uint16_t wr_chan_freq
;
26 uint16_t wr_chan_flags
;
31 #define RT2661_RX_RADIOTAP_PRESENT \
32 ((1 << IEEE80211_RADIOTAP_TSFT) | \
33 (1 << IEEE80211_RADIOTAP_FLAGS) | \
34 (1 << IEEE80211_RADIOTAP_RATE) | \
35 (1 << IEEE80211_RADIOTAP_CHANNEL) | \
36 (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) | \
37 (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE))
39 struct rt2661_tx_radiotap_header
{
40 struct ieee80211_radiotap_header wt_ihdr
;
43 uint16_t wt_chan_freq
;
44 uint16_t wt_chan_flags
;
47 #define RT2661_TX_RADIOTAP_PRESENT \
48 ((1 << IEEE80211_RADIOTAP_FLAGS) | \
49 (1 << IEEE80211_RADIOTAP_RATE) | \
50 (1 << IEEE80211_RADIOTAP_CHANNEL))
52 struct rt2661_tx_data
{
55 struct ieee80211_node
*ni
;
60 struct rt2661_tx_ring
{
61 bus_dma_tag_t desc_dmat
;
62 bus_dma_tag_t data_dmat
;
63 bus_dmamap_t desc_map
;
65 struct rt2661_tx_desc
*desc
;
66 struct rt2661_tx_data
*data
;
74 struct rt2661_rx_data
{
79 struct rt2661_rx_ring
{
80 bus_dma_tag_t desc_dmat
;
81 bus_dma_tag_t data_dmat
;
82 bus_dmamap_t desc_map
;
84 struct rt2661_rx_desc
*desc
;
85 struct rt2661_rx_data
*data
;
92 struct ieee80211vap ral_vap
;
94 int (*ral_newstate
)(struct ieee80211vap
*,
95 enum ieee80211_state
, int);
97 #define RT2661_VAP(vap) ((struct rt2661_vap *)(vap))
100 struct arpcom arpcom
;
101 struct ifnet
*sc_ifp
;
103 bus_space_tag_t sc_st
;
104 bus_space_handle_t sc_sh
;
106 struct callout watchdog_ch
;
112 * The same in both up to here
113 * ------------------------------------------------
117 #define RAL_FW_LOADED 0x1
118 #define RAL_INPUT_RUNNING 0x2
120 struct ieee80211_channel
*sc_curchan
;
127 struct rt2661_tx_ring txq
[4];
128 struct rt2661_tx_ring mgtq
;
129 struct rt2661_rx_ring rxq
;
157 struct rt2661_rx_radiotap_header sc_rxtap
;
159 struct rt2661_tx_radiotap_header sc_txtap
;
163 int rt2661_attach(device_t
, int);
164 int rt2661_detach(void *);
165 void rt2661_shutdown(void *);
166 void rt2661_suspend(void *);
167 void rt2661_resume(void *);
168 void rt2661_intr(void *);