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

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

1.1       nbrk        1: /*     $OpenBSD: if_uathvar.h,v 1.5 2007/06/06 19:25:49 mk Exp $       */
                      2:
                      3: /*-
                      4:  * Copyright (c) 2006
                      5:  *     Damien Bergamini <damien.bergamini@free.fr>
                      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 UATH_TX_DATA_LIST_COUNT        8       /* 16 */
                     21: #define UATH_TX_CMD_LIST_COUNT 8       /* 30 */
                     22:
                     23: /* XXX ehci will panic on abort_pipe if set to anything > 1 */
                     24: #define UATH_RX_DATA_LIST_COUNT        1       /* 128 */
                     25: #define UATH_RX_CMD_LIST_COUNT 1       /* 30 */
                     26:
                     27: #define UATH_RX_DATA_POOL_COUNT        (UATH_RX_DATA_LIST_COUNT + 24)
                     28:
                     29: #define UATH_DATA_TIMEOUT      10000
                     30: #define UATH_CMD_TIMEOUT       1000
                     31:
                     32: struct uath_rx_radiotap_header {
                     33:        struct ieee80211_radiotap_header wr_ihdr;
                     34:        uint8_t         wr_flags;
                     35:        uint16_t        wr_chan_freq;
                     36:        uint16_t        wr_chan_flags;
                     37:        int8_t          wr_dbm_antsignal;
                     38: } __packed;
                     39:
                     40: #define UATH_RX_RADIOTAP_PRESENT                                       \
                     41:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
                     42:         (1 << IEEE80211_RADIOTAP_CHANNEL) |                            \
                     43:         (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL))
                     44:
                     45: struct uath_tx_radiotap_header {
                     46:        struct ieee80211_radiotap_header wt_ihdr;
                     47:        uint8_t         wt_flags;
                     48:        uint16_t        wt_chan_freq;
                     49:        uint16_t        wt_chan_flags;
                     50: } __packed;
                     51:
                     52: #define UATH_TX_RADIOTAP_PRESENT                                       \
                     53:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
                     54:         (1 << IEEE80211_RADIOTAP_CHANNEL))
                     55:
                     56: struct uath_tx_data {
                     57:        struct uath_softc       *sc;
                     58:        usbd_xfer_handle        xfer;
                     59:        uint8_t                 *buf;
                     60:        struct ieee80211_node   *ni;
                     61: };
                     62:
                     63: struct uath_rx_data {
                     64:        struct uath_softc               *sc;
                     65:        usbd_xfer_handle                xfer;
                     66:        uint8_t                         *buf;
                     67:        SLIST_ENTRY(uath_rx_data)       next;
                     68: };
                     69:
                     70: struct uath_tx_cmd {
                     71:        struct uath_softc       *sc;
                     72:        usbd_xfer_handle        xfer;
                     73:        uint8_t                 *buf;
                     74:        void                    *odata;
                     75: };
                     76:
                     77: struct uath_rx_cmd {
                     78:        struct uath_softc       *sc;
                     79:        usbd_xfer_handle        xfer;
                     80:        uint8_t                 *buf;
                     81: };
                     82:
                     83: struct uath_wme_settings {
                     84:        uint8_t         aifsn;
                     85:        uint8_t         logcwmin;
                     86:        uint8_t         logcwmax;
                     87:        uint16_t        txop;
                     88: #define UATH_TXOP_TO_US(txop)  ((txop) << 5)
                     89:
                     90:        uint8_t         acm;
                     91: };
                     92:
                     93: /* condvars */
                     94: #define UATH_COND_INIT(sc)     ((caddr_t)sc + 1)
                     95: #define UATH_COND_NOREF(sc)    ((caddr_t)sc + 2)
                     96:
                     97: /* flags for sending firmware commands */
                     98: #define UATH_CMD_FLAG_ASYNC    (1 << 0)
                     99: #define UATH_CMD_FLAG_READ     (1 << 1)
                    100: #define UATH_CMD_FLAG_MAGIC    (1 << 2)
                    101:
                    102: struct uath_softc {
                    103:        struct device                   sc_dev;
                    104:        struct ieee80211com             sc_ic;
                    105:        int                             (*sc_newstate)(struct ieee80211com *,
                    106:                                            enum ieee80211_state, int);
                    107:
                    108:        struct uath_tx_data             tx_data[UATH_TX_DATA_LIST_COUNT];
                    109:        struct uath_rx_data             rx_data[UATH_RX_DATA_POOL_COUNT];
                    110:
                    111:        struct uath_tx_cmd              tx_cmd[UATH_TX_CMD_LIST_COUNT];
                    112:        struct uath_rx_cmd              rx_cmd[UATH_RX_CMD_LIST_COUNT];
                    113:
                    114:        SLIST_HEAD(, uath_rx_data)      rx_freelist;
                    115:
                    116:        int                             sc_flags;
                    117:        int                             sc_dying;
                    118:        int                             sc_refcnt;
                    119:
                    120:        int                             data_idx;
                    121:        int                             cmd_idx;
                    122:        int                             tx_queued;
                    123:
                    124:        usbd_device_handle              sc_udev;
                    125:        usbd_device_handle              sc_uhub;
                    126:        int                             sc_port;
                    127:
                    128:        usbd_interface_handle           sc_iface;
                    129:
                    130:        usbd_pipe_handle                data_tx_pipe;
                    131:        usbd_pipe_handle                data_rx_pipe;
                    132:        usbd_pipe_handle                cmd_tx_pipe;
                    133:        usbd_pipe_handle                cmd_rx_pipe;
                    134:
                    135:        enum ieee80211_state            sc_state;
                    136:        int                             sc_arg;
                    137:        struct usb_task                 sc_task;
                    138:
                    139:        struct timeout                  scan_to;
                    140:        struct timeout                  stat_to;
                    141:
                    142:        int                             sc_tx_timer;
                    143:
                    144:        int                             rxbufsz;
                    145:
                    146: #if NBPFILTER > 0
                    147:        caddr_t                         sc_drvbpf;
                    148:
                    149:        union {
                    150:                struct  uath_rx_radiotap_header th;
                    151:                uint8_t pad[64];
                    152:        }                               sc_rxtapu;
                    153: #define sc_rxtap                       sc_rxtapu.th
                    154:        int                             sc_rxtap_len;
                    155:
                    156:        union {
                    157:                struct  uath_tx_radiotap_header th;
                    158:                uint8_t pad[64];
                    159:        }                               sc_txtapu;
                    160: #define sc_txtap                       sc_txtapu.th
                    161:        int                             sc_txtap_len;
                    162: #endif
                    163: };

CVSweb