[BACK]Return to if_rumvar.h CVS log [TXT][DIR] Up to [local] / sys / dev / usb

Annotation of sys/dev/usb/if_rumvar.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: if_rumvar.h,v 1.8 2007/06/06 19:25:49 mk Exp $        */
                      2:
                      3: /*-
                      4:  * Copyright (c) 2005, 2006 Damien Bergamini <damien.bergamini@free.fr>
                      5:  * Copyright (c) 2006 Niall O'Higgins <niallo@openbsd.org>
                      6:  *
                      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.
                     10:  *
                     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.
                     18:  */
                     19:
                     20: #define RUM_RX_LIST_COUNT      1
                     21: #define RUM_TX_LIST_COUNT      8
                     22:
                     23: struct rum_rx_radiotap_header {
                     24:        struct ieee80211_radiotap_header wr_ihdr;
                     25:        uint8_t         wr_flags;
                     26:        uint8_t         wr_rate;
                     27:        uint16_t        wr_chan_freq;
                     28:        uint16_t        wr_chan_flags;
                     29:        uint8_t         wr_antenna;
                     30:        uint8_t         wr_antsignal;
                     31: } __packed;
                     32:
                     33: #define RT2573_RX_RADIOTAP_PRESENT                                     \
                     34:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
                     35:         (1 << IEEE80211_RADIOTAP_RATE) |                               \
                     36:         (1 << IEEE80211_RADIOTAP_CHANNEL) |                            \
                     37:         (1 << IEEE80211_RADIOTAP_ANTENNA) |                            \
                     38:         (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL))
                     39:
                     40: struct rum_tx_radiotap_header {
                     41:        struct ieee80211_radiotap_header wt_ihdr;
                     42:        uint8_t         wt_flags;
                     43:        uint8_t         wt_rate;
                     44:        uint16_t        wt_chan_freq;
                     45:        uint16_t        wt_chan_flags;
                     46:        uint8_t         wt_antenna;
                     47: } __packed;
                     48:
                     49: #define RT2573_TX_RADIOTAP_PRESENT                                             \
                     50:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
                     51:         (1 << IEEE80211_RADIOTAP_RATE) |                               \
                     52:         (1 << IEEE80211_RADIOTAP_CHANNEL) |                            \
                     53:         (1 << IEEE80211_RADIOTAP_ANTENNA))
                     54:
                     55: struct rum_softc;
                     56:
                     57: struct rum_tx_data {
                     58:        struct rum_softc        *sc;
                     59:        usbd_xfer_handle        xfer;
                     60:        uint8_t                 *buf;
                     61:        struct ieee80211_node   *ni;
                     62: };
                     63:
                     64: struct rum_rx_data {
                     65:        struct rum_softc        *sc;
                     66:        usbd_xfer_handle        xfer;
                     67:        uint8_t                 *buf;
                     68:        struct mbuf             *m;
                     69: };
                     70:
                     71: struct rum_softc {
                     72:        struct device                   sc_dev;
                     73:        struct ieee80211com             sc_ic;
                     74:        int                             (*sc_newstate)(struct ieee80211com *,
                     75:                                            enum ieee80211_state, int);
                     76:
                     77:        usbd_device_handle              sc_udev;
                     78:        usbd_interface_handle           sc_iface;
                     79:
                     80:        struct ieee80211_channel        *sc_curchan;
                     81:
                     82:        int                             sc_rx_no;
                     83:        int                             sc_tx_no;
                     84:
                     85:        uint16_t                        macbbp_rev;
                     86:        uint8_t                         rf_rev;
                     87:        uint8_t                         rffreq;
                     88:
                     89:        usbd_xfer_handle                amrr_xfer;
                     90:
                     91:        usbd_pipe_handle                sc_rx_pipeh;
                     92:        usbd_pipe_handle                sc_tx_pipeh;
                     93:
                     94:        enum ieee80211_state            sc_state;
                     95:        int                             sc_arg;
                     96:        struct usb_task                 sc_task;
                     97:
                     98:        struct ieee80211_amrr           amrr;
                     99:        struct ieee80211_amrr_node      amn;
                    100:
                    101:        struct rum_rx_data              rx_data[RUM_RX_LIST_COUNT];
                    102:        struct rum_tx_data              tx_data[RUM_TX_LIST_COUNT];
                    103:        int                             tx_queued;
                    104:        int                             tx_cur;
                    105:
                    106:        struct timeout                  scan_to;
                    107:        struct timeout                  amrr_to;
                    108:
                    109:        int                             sc_tx_timer;
                    110:
                    111:        uint32_t                        sta[6];
                    112:        uint32_t                        rf_regs[4];
                    113:        uint8_t                         txpow[44];
                    114:
                    115:        struct {
                    116:                uint8_t val;
                    117:                uint8_t reg;
                    118:        } __packed                      bbp_prom[16];
                    119:
                    120:        int                             hw_radio;
                    121:        int                             rx_ant;
                    122:        int                             tx_ant;
                    123:        int                             nb_ant;
                    124:        int                             ext_2ghz_lna;
                    125:        int                             ext_5ghz_lna;
                    126:        int                             rssi_2ghz_corr;
                    127:        int                             rssi_5ghz_corr;
                    128:        int                             sifs;
                    129:        uint8_t                         bbp17;
                    130:
                    131: #if NBPFILTER > 0
                    132:        caddr_t                         sc_drvbpf;
                    133:
                    134:        union {
                    135:                struct rum_rx_radiotap_header th;
                    136:                uint8_t pad[64];
                    137:        }                               sc_rxtapu;
                    138: #define sc_rxtap       sc_rxtapu.th
                    139:        int                             sc_rxtap_len;
                    140:
                    141:        union {
                    142:                struct rum_tx_radiotap_header th;
                    143:                uint8_t pad[64];
                    144:        }                               sc_txtapu;
                    145: #define sc_txtap       sc_txtapu.th
                    146:        int                             sc_txtap_len;
                    147: #endif
                    148: };

CVSweb