38#define URTW_MAX_CHANNELS 15
45 struct ieee80211_node *
ni;
50#define URTW_RX_DATA_LIST_COUNT 4
51#define URTW_TX_DATA_LIST_COUNT 16
52#define URTW_RX_MAXSIZE 0x9c4
53#define URTW_TX_MAXSIZE 0x9c4
54#define URTW_TX_MAXRETRY 11
66#define URTW_RX_RADIOTAP_PRESENT \
67 ((1 << IEEE80211_RADIOTAP_TSFT) | \
68 (1 << IEEE80211_RADIOTAP_FLAGS) | \
69 (1 << IEEE80211_RADIOTAP_CHANNEL) | \
70 (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL))
80#define URTW_TX_RADIOTAP_PRESENT \
81 ((1 << IEEE80211_RADIOTAP_FLAGS) | \
82 (1 << IEEE80211_RADIOTAP_CHANNEL))
89 struct ieee80211vap
vap;
91 enum ieee80211_state, int);
93#define URTW_VAP(vap) ((struct urtw_vap *)(vap))
105#define URTW_INIT_ONCE (1 << 1)
106#define URTW_RTL8187B (1 << 2)
107#define URTW_RTL8187B_REV_B (1 << 3)
108#define URTW_RTL8187B_REV_D (1 << 4)
109#define URTW_RTL8187B_REV_E (1 << 5)
110#define URTW_DETACHED (1 << 6)
111#define URTW_RUNNING (1 << 7)
115#define URTW_EEPROM_93C46 0
116#define URTW_EEPROM_93C56 1
136#define URTW_LED_GPIO 1
145#define URTW_PRIORITY_LOW 0
146#define URTW_PRIORITY_NORMAL 1
147#define URTW_DATA_TIMEOUT 10000
148#define URTW_8187B_TXPIPE_BE 0x6
149#define URTW_8187B_TXPIPE_BK 0x7
150#define URTW_8187B_TXPIPE_VI 0x5
151#define URTW_8187B_TXPIPE_VO 0x4
152#define URTW_8187B_TXPIPE_MAX 4
163#define URTW_PREAMBLE_MODE_SHORT 1
164#define URTW_PREAMBLE_MODE_LONG 2
184#define URTW_LOCK(sc) mtx_lock(&(sc)->sc_mtx)
185#define URTW_UNLOCK(sc) mtx_unlock(&(sc)->sc_mtx)
186#define URTW_ASSERT_LOCKED(sc) mtx_assert(&(sc)->sc_mtx, MA_OWNED)
#define URTW_TX_DATA_LIST_COUNT
@ URTW_8187B_BULK_TX_EP12
@ URTW_8187B_BULK_TX_STATUS
@ URTW_8187L_BULK_TX_NORMAL
typedef STAILQ_HEAD(, urtw_data) urtw_datahead
struct urtw_rx_radiotap_header __aligned(8)
#define URTW_MAX_CHANNELS
struct urtw_tx_radiotap_header __packed
#define URTW_RX_DATA_LIST_COUNT
STAILQ_ENTRY(urtw_data) next
struct ieee80211_node * ni
struct urtw_rx_radiotap_header sc_rxtap
struct ieee80211_channel * sc_curchan
uint8_t sc_gpio_blinktime
usb_error_t(* sc_rf_init)(struct urtw_softc *)
struct task sc_updateslot_task
urtw_datahead sc_rx_active
struct usb_callout sc_led_ch
struct usb_device * sc_udev
urtw_datahead sc_rx_inactive
uint8_t sc_txpwr_ofdm_base
urtw_datahead sc_tx_inactive
uint8_t sc_txpwr_ofdm[URTW_MAX_CHANNELS]
struct urtw_data sc_tx[URTW_TX_DATA_LIST_COUNT]
usb_error_t(* sc_rf_set_chan)(struct urtw_softc *, int)
urtw_datahead sc_tx_pending
struct callout sc_watchdog_ch
struct urtw_tx_radiotap_header sc_txtap
uint8_t sc_gpio_ledinprogress
uint8_t sc_txpwr_cck[URTW_MAX_CHANNELS]
struct urtw_stats sc_stats
usb_error_t(* sc_rf_set_sens)(struct urtw_softc *, int)
struct urtw_data sc_rx[URTW_RX_DATA_LIST_COUNT]
struct ieee80211com sc_ic
urtw_datahead sc_tx_active
usb_error_t(* sc_rf_stop)(struct urtw_softc *)
enum ieee80211_state sc_state
uint8_t sc_txpwr_cck_base
struct usb_xfer * sc_xfer[URTW_8187B_N_XFERS]
uint8_t sc_gpio_blinkstate
int(* newstate)(struct ieee80211vap *, enum ieee80211_state, int)