28 MIN(4096, MJUMPAGESIZE)
32 (sizeof (struct rt2870_txd) + \
33 sizeof (struct rt2860_txwi) + \
36#define RUN_TX_TIMEOUT 5000
39#define RUN_TX_RING_COUNT 32
40#define RUN_RX_RING_COUNT 1
42#define RT2870_WCID_MAX 64
43#define RUN_AID2WCID(aid) ((aid) & 0xff)
59#define RUN_RX_RADIOTAP_PRESENT \
60 (1 << IEEE80211_RADIOTAP_TSFT | \
61 1 << IEEE80211_RADIOTAP_FLAGS | \
62 1 << IEEE80211_RADIOTAP_RATE | \
63 1 << IEEE80211_RADIOTAP_CHANNEL | \
64 1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL | \
65 1 << IEEE80211_RADIOTAP_ANTENNA | \
66 1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL)
77#define IEEE80211_RADIOTAP_HWQUEUE 15
79#define RUN_TX_RADIOTAP_PRESENT \
80 (1 << IEEE80211_RADIOTAP_FLAGS | \
81 1 << IEEE80211_RADIOTAP_RATE | \
82 1 << IEEE80211_RADIOTAP_CHANNEL | \
83 1 << IEEE80211_RADIOTAP_HWQUEUE)
91 struct ieee80211_node *
ni;
100 struct ieee80211_node
ni;
105#define RUN_NODE(ni) ((struct run_node *)(ni))
111 struct ieee80211_key *
k;
113 uint8_t
mac[IEEE80211_ADDR_LEN];
122 enum ieee80211_state, int);
125 const struct ieee80211_rx_stats *,
130#define RUN_VAP(vap) ((struct run_vap *)(vap))
149#define RUN_EP_QUEUES RUN_BULK_RX
161 struct ieee80211_ratectl_tx_stats
sc_txs;
168#define RUN_FLAG_FWLOAD_NEEDED 0x01
169#define RUN_RUNNING 0x02
177 uint16_t, uint16_t *);
220#define RUN_RATECTL_OFF 0
223#define RUN_CMDQ_MAX 16
224#define RUN_CMDQ_MASQ (RUN_CMDQ_MAX - 1)
231#define RUN_CMDQ_ABORT 0
255#define sc_rxtap sc_rxtapu.th
261#define sc_txtap sc_txtapu.th
264#define RUN_LOCK(sc) mtx_lock(&(sc)->sc_mtx)
265#define RUN_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx)
266#define RUN_LOCK_ASSERT(sc, t) mtx_assert(&(sc)->sc_mtx, t)
struct run_rx_radiotap_header __aligned(8)
#define RUN_TX_RING_COUNT
STAILQ_HEAD(run_tx_data_head, run_tx_data)
struct run_tx_radiotap_header __packed
uint8_t mac[IEEE80211_ADDR_LEN]
struct run_tx_data_head tx_fh
struct run_tx_data_head tx_qh
struct run_tx_data tx_data[RUN_TX_RING_COUNT]
uint32_t txpow40mhz_5ghz[5]
int(* sc_srom_read)(struct run_softc *, uint16_t, uint16_t *)
struct ieee80211com sc_ic
struct usb_callout ratectl_ch
uint16_t wcid_stats[RT2870_WCID_MAX+1][3]
struct run_softc::@112 rf[10]
struct run_rx_radiotap_header th
union run_softc::@114 sc_txtapu
struct usb_xfer * sc_xfer[RUN_N_XFER]
struct run_cmdq cmdq[RUN_CMDQ_MAX]
uint32_t txpow40mhz_2ghz[5]
struct usb_device * sc_udev
struct ieee80211_ratectl_tx_stats sc_txs
struct run_endpoint_queue sc_epq[RUN_EP_QUEUES]
union run_softc::@113 sc_rxtapu
struct run_softc::@112 bbp[10]
uint8_t sc_bssid[IEEE80211_ADDR_LEN]
STAILQ_ENTRY(run_tx_data) next
struct ieee80211_node * ni
uint8_t desc[sizeof(struct rt2870_txd)+sizeof(struct rt2860_txwi)]
void(* recv_mgmt)(struct ieee80211_node *, struct mbuf *, int, const struct ieee80211_rx_stats *, int, int)
int(* newstate)(struct ieee80211vap *, enum ieee80211_state, int)
struct mbuf * beacon_mbuf