if_uralvar.h revision 1.3.6.2 1 1.3.6.2 skrll /* $NetBSD: if_uralvar.h,v 1.3.6.2 2005/11/10 14:08:05 skrll Exp $ */
2 1.3.6.2 skrll /* $OpenBSD: if_ralvar.h,v 1.2 2005/05/13 18:42:50 damien Exp $ */
3 1.3.6.2 skrll
4 1.3.6.2 skrll /*-
5 1.3.6.2 skrll * Copyright (c) 2005
6 1.3.6.2 skrll * Damien Bergamini <damien.bergamini (at) free.fr>
7 1.3.6.2 skrll *
8 1.3.6.2 skrll * Permission to use, copy, modify, and distribute this software for any
9 1.3.6.2 skrll * purpose with or without fee is hereby granted, provided that the above
10 1.3.6.2 skrll * copyright notice and this permission notice appear in all copies.
11 1.3.6.2 skrll *
12 1.3.6.2 skrll * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
13 1.3.6.2 skrll * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
14 1.3.6.2 skrll * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
15 1.3.6.2 skrll * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
16 1.3.6.2 skrll * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
17 1.3.6.2 skrll * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
18 1.3.6.2 skrll * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
19 1.3.6.2 skrll */
20 1.3.6.2 skrll
21 1.3.6.2 skrll #define RAL_RX_LIST_COUNT 1
22 1.3.6.2 skrll #define RAL_TX_LIST_COUNT 1
23 1.3.6.2 skrll
24 1.3.6.2 skrll struct ural_rx_radiotap_header {
25 1.3.6.2 skrll struct ieee80211_radiotap_header wr_ihdr;
26 1.3.6.2 skrll uint8_t wr_flags;
27 1.3.6.2 skrll uint8_t _pad;
28 1.3.6.2 skrll uint16_t wr_chan_freq;
29 1.3.6.2 skrll uint16_t wr_chan_flags;
30 1.3.6.2 skrll uint8_t wr_antenna;
31 1.3.6.2 skrll uint8_t wr_antsignal;
32 1.3.6.2 skrll } __packed;
33 1.3.6.2 skrll
34 1.3.6.2 skrll #define RAL_RX_RADIOTAP_PRESENT \
35 1.3.6.2 skrll ((1 << IEEE80211_RADIOTAP_FLAGS) | \
36 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_CHANNEL) | \
37 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_ANTENNA) | \
38 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL))
39 1.3.6.2 skrll
40 1.3.6.2 skrll struct ural_tx_radiotap_header {
41 1.3.6.2 skrll struct ieee80211_radiotap_header wt_ihdr;
42 1.3.6.2 skrll uint8_t wt_flags;
43 1.3.6.2 skrll uint8_t wt_rate;
44 1.3.6.2 skrll uint16_t wt_chan_freq;
45 1.3.6.2 skrll uint16_t wt_chan_flags;
46 1.3.6.2 skrll uint8_t wt_antenna;
47 1.3.6.2 skrll } __packed;
48 1.3.6.2 skrll
49 1.3.6.2 skrll #define RAL_TX_RADIOTAP_PRESENT \
50 1.3.6.2 skrll ((1 << IEEE80211_RADIOTAP_FLAGS) | \
51 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_RATE) | \
52 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_CHANNEL) | \
53 1.3.6.2 skrll (1 << IEEE80211_RADIOTAP_ANTENNA))
54 1.3.6.2 skrll
55 1.3.6.2 skrll struct ural_softc;
56 1.3.6.2 skrll
57 1.3.6.2 skrll struct ural_tx_data {
58 1.3.6.2 skrll struct ural_softc *sc;
59 1.3.6.2 skrll usbd_xfer_handle xfer;
60 1.3.6.2 skrll uint8_t *buf;
61 1.3.6.2 skrll struct mbuf *m;
62 1.3.6.2 skrll struct ieee80211_node *ni;
63 1.3.6.2 skrll };
64 1.3.6.2 skrll
65 1.3.6.2 skrll struct ural_rx_data {
66 1.3.6.2 skrll struct ural_softc *sc;
67 1.3.6.2 skrll usbd_xfer_handle xfer;
68 1.3.6.2 skrll uint8_t *buf;
69 1.3.6.2 skrll struct mbuf *m;
70 1.3.6.2 skrll };
71 1.3.6.2 skrll
72 1.3.6.2 skrll struct ural_softc {
73 1.3.6.2 skrll USBBASEDEVICE sc_dev;
74 1.3.6.2 skrll struct ethercom sc_ec;
75 1.3.6.2 skrll #define sc_if sc_ec.ec_if
76 1.3.6.2 skrll struct ieee80211com sc_ic;
77 1.3.6.2 skrll int (*sc_newstate)(struct ieee80211com *,
78 1.3.6.2 skrll enum ieee80211_state, int);
79 1.3.6.2 skrll
80 1.3.6.2 skrll usbd_device_handle sc_udev;
81 1.3.6.2 skrll usbd_interface_handle sc_iface;
82 1.3.6.2 skrll
83 1.3.6.2 skrll int sc_rx_no;
84 1.3.6.2 skrll int sc_tx_no;
85 1.3.6.2 skrll
86 1.3.6.2 skrll uint32_t asic_rev;
87 1.3.6.2 skrll uint8_t rf_rev;
88 1.3.6.2 skrll
89 1.3.6.2 skrll usbd_pipe_handle sc_rx_pipeh;
90 1.3.6.2 skrll usbd_pipe_handle sc_tx_pipeh;
91 1.3.6.2 skrll
92 1.3.6.2 skrll enum ieee80211_state sc_state;
93 1.3.6.2 skrll struct usb_task sc_task;
94 1.3.6.2 skrll
95 1.3.6.2 skrll struct ural_rx_data rx_data[RAL_RX_LIST_COUNT];
96 1.3.6.2 skrll struct ural_tx_data tx_data[RAL_TX_LIST_COUNT];
97 1.3.6.2 skrll int tx_queued;
98 1.3.6.2 skrll
99 1.3.6.2 skrll struct ieee80211_beacon_offsets sc_bo;
100 1.3.6.2 skrll
101 1.3.6.2 skrll struct callout scan_ch;
102 1.3.6.2 skrll
103 1.3.6.2 skrll int sc_tx_timer;
104 1.3.6.2 skrll
105 1.3.6.2 skrll uint32_t rf_regs[4];
106 1.3.6.2 skrll uint8_t txpow[14];
107 1.3.6.2 skrll
108 1.3.6.2 skrll struct {
109 1.3.6.2 skrll uint8_t val;
110 1.3.6.2 skrll uint8_t reg;
111 1.3.6.2 skrll } __packed bbp_prom[16];
112 1.3.6.2 skrll
113 1.3.6.2 skrll int led_mode;
114 1.3.6.2 skrll int hw_radio;
115 1.3.6.2 skrll int rx_ant;
116 1.3.6.2 skrll int tx_ant;
117 1.3.6.2 skrll int nb_ant;
118 1.3.6.2 skrll
119 1.3.6.2 skrll #if NBPFILTER > 0
120 1.3.6.2 skrll caddr_t sc_drvbpf;
121 1.3.6.2 skrll
122 1.3.6.2 skrll union {
123 1.3.6.2 skrll struct ural_rx_radiotap_header th;
124 1.3.6.2 skrll uint8_t pad[64];
125 1.3.6.2 skrll } sc_rxtapu;
126 1.3.6.2 skrll #define sc_rxtap sc_rxtapu.th
127 1.3.6.2 skrll int sc_rxtap_len;
128 1.3.6.2 skrll
129 1.3.6.2 skrll union {
130 1.3.6.2 skrll struct ural_tx_radiotap_header th;
131 1.3.6.2 skrll uint8_t pad[64];
132 1.3.6.2 skrll } sc_txtapu;
133 1.3.6.2 skrll #define sc_txtap sc_txtapu.th
134 1.3.6.2 skrll int sc_txtap_len;
135 1.3.6.2 skrll #endif
136 1.3.6.2 skrll };
137