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

Annotation of sys/dev/pci/if_ipwvar.h, Revision 1.1

1.1     ! nbrk        1: /*     $OpenBSD: if_ipwvar.h,v 1.14 2006/08/19 12:03:05 damien Exp $   */
        !             2:
        !             3: /*-
        !             4:  * Copyright (c) 2004-2006
        !             5:  *      Damien Bergamini <damien.bergamini@free.fr>. All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice unmodified, this list of conditions, and the following
        !            12:  *    disclaimer.
        !            13:  * 2. Redistributions in binary form must reproduce the above copyright
        !            14:  *    notice, this list of conditions and the following disclaimer in the
        !            15:  *    documentation and/or other materials provided with the distribution.
        !            16:  *
        !            17:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
        !            18:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
        !            19:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
        !            20:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
        !            21:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
        !            22:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
        !            23:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
        !            24:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
        !            25:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            26:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            27:  * SUCH DAMAGE.
        !            28:  */
        !            29:
        !            30: struct ipw_firmware {
        !            31:        u_char  *data;
        !            32:        u_char  *main;
        !            33:        size_t  main_size;
        !            34:        u_char  *ucode;
        !            35:        size_t  ucode_size;
        !            36: };
        !            37:
        !            38: struct ipw_soft_bd {
        !            39:        struct ipw_bd   *bd;
        !            40:        int             type;
        !            41: #define IPW_SBD_TYPE_NOASSOC   0
        !            42: #define IPW_SBD_TYPE_COMMAND   1
        !            43: #define IPW_SBD_TYPE_HEADER    2
        !            44: #define IPW_SBD_TYPE_DATA      3
        !            45:        void            *priv;
        !            46: };
        !            47:
        !            48: struct ipw_soft_hdr {
        !            49:        struct ipw_hdr                  hdr;
        !            50:        bus_dmamap_t                    map;
        !            51:        SLIST_ENTRY(ipw_soft_hdr)       next;
        !            52: };
        !            53:
        !            54: struct ipw_soft_buf {
        !            55:        struct mbuf                     *m;
        !            56:        struct ieee80211_node           *ni;
        !            57:        bus_dmamap_t                    map;
        !            58:        SLIST_ENTRY(ipw_soft_buf)       next;
        !            59: };
        !            60:
        !            61: struct ipw_rx_radiotap_header {
        !            62:        struct ieee80211_radiotap_header wr_ihdr;
        !            63:        uint8_t         wr_flags;
        !            64:        uint16_t        wr_chan_freq;
        !            65:        uint16_t        wr_chan_flags;
        !            66:        uint8_t         wr_antsignal;
        !            67: } __packed;
        !            68:
        !            69: #define IPW_RX_RADIOTAP_PRESENT                                                \
        !            70:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
        !            71:         (1 << IEEE80211_RADIOTAP_CHANNEL) |                            \
        !            72:         (1 << IEEE80211_RADIOTAP_DB_ANTSIGNAL))
        !            73:
        !            74: struct ipw_tx_radiotap_header {
        !            75:        struct ieee80211_radiotap_header wt_ihdr;
        !            76:        uint8_t         wt_flags;
        !            77:        uint16_t        wt_chan_freq;
        !            78:        uint16_t        wt_chan_flags;
        !            79: } __packed;
        !            80:
        !            81: #define IPW_TX_RADIOTAP_PRESENT                                                \
        !            82:        ((1 << IEEE80211_RADIOTAP_FLAGS) |                              \
        !            83:         (1 << IEEE80211_RADIOTAP_CHANNEL))
        !            84:
        !            85: #define IPW_MAX_NSEG   1
        !            86:
        !            87: struct ipw_softc {
        !            88:        struct device                   sc_dev;
        !            89:
        !            90:        struct ieee80211com             sc_ic;
        !            91:        int                             (*sc_newstate)(struct ieee80211com *,
        !            92:                                            enum ieee80211_state, int);
        !            93:
        !            94:        uint32_t                        flags;
        !            95: #define IPW_FLAG_FW_INITED     (1 << 0)
        !            96:
        !            97:        struct resource                 *irq;
        !            98:        struct resource                 *mem;
        !            99:        bus_space_tag_t                 sc_st;
        !           100:        bus_space_handle_t              sc_sh;
        !           101:        void                            *sc_ih;
        !           102:        pci_chipset_tag_t               sc_pct;
        !           103:        pcitag_t                        sc_pcitag;
        !           104:        bus_size_t                      sc_sz;
        !           105:
        !           106:        int                             sc_tx_timer;
        !           107:
        !           108:        bus_dma_tag_t                   sc_dmat;
        !           109:
        !           110:        bus_dmamap_t                    tbd_map;
        !           111:        bus_dmamap_t                    rbd_map;
        !           112:        bus_dmamap_t                    status_map;
        !           113:        bus_dmamap_t                    cmd_map;
        !           114:
        !           115:        bus_dma_segment_t               tbd_seg;
        !           116:        bus_dma_segment_t               rbd_seg;
        !           117:        bus_dma_segment_t               status_seg;
        !           118:        bus_dma_segment_t               cmd_seg;
        !           119:
        !           120:        struct ipw_bd                   *tbd_list;
        !           121:        struct ipw_bd                   *rbd_list;
        !           122:        struct ipw_status               *status_list;
        !           123:
        !           124:        struct ipw_cmd                  cmd;
        !           125:        struct ipw_soft_bd              stbd_list[IPW_NTBD];
        !           126:        struct ipw_soft_buf             tx_sbuf_list[IPW_NDATA];
        !           127:        struct ipw_soft_hdr             shdr_list[IPW_NDATA];
        !           128:        struct ipw_soft_bd              srbd_list[IPW_NRBD];
        !           129:        struct ipw_soft_buf             rx_sbuf_list[IPW_NRBD];
        !           130:
        !           131:        SLIST_HEAD(, ipw_soft_hdr)      free_shdr;
        !           132:        SLIST_HEAD(, ipw_soft_buf)      free_sbuf;
        !           133:
        !           134:        uint32_t                        table1_base;
        !           135:        uint32_t                        table2_base;
        !           136:
        !           137:        uint32_t                        txcur;
        !           138:        uint32_t                        txold;
        !           139:        uint32_t                        rxcur;
        !           140:        int                             txfree;
        !           141:
        !           142:        void                            *powerhook;
        !           143:
        !           144: #if NBPFILTER > 0
        !           145:        caddr_t                         sc_drvbpf;
        !           146:
        !           147:        union {
        !           148:                struct ipw_rx_radiotap_header th;
        !           149:                uint8_t pad[64];
        !           150:        } sc_rxtapu;
        !           151: #define sc_rxtap       sc_rxtapu.th
        !           152:        int                             sc_rxtap_len;
        !           153:
        !           154:        union {
        !           155:                struct ipw_tx_radiotap_header th;
        !           156:                uint8_t pad[64];
        !           157:        } sc_txtapu;
        !           158: #define sc_txtap       sc_txtapu.th
        !           159:        int                             sc_txtap_len;
        !           160: #endif
        !           161: };

CVSweb