if_ipwvar.h revision 1.2.2.2 1 1.2.2.2 skrll /* $NetBSD: if_ipwvar.h,v 1.2.2.2 2004/08/25 06:58:05 skrll Exp $ */
2 1.2.2.2 skrll /* Id: if_ipwvar.h,v 1.1.2.2 2004/08/19 16:28:26 damien Exp */
3 1.2.2.2 skrll
4 1.2.2.2 skrll /*-
5 1.2.2.2 skrll * Copyright (c) 2004
6 1.2.2.2 skrll * Damien Bergamini <damien.bergamini (at) free.fr>. All rights reserved.
7 1.2.2.2 skrll *
8 1.2.2.2 skrll * Redistribution and use in source and binary forms, with or without
9 1.2.2.2 skrll * modification, are permitted provided that the following conditions
10 1.2.2.2 skrll * are met:
11 1.2.2.2 skrll * 1. Redistributions of source code must retain the above copyright
12 1.2.2.2 skrll * notice unmodified, this list of conditions, and the following
13 1.2.2.2 skrll * disclaimer.
14 1.2.2.2 skrll * 2. Redistributions in binary form must reproduce the above copyright
15 1.2.2.2 skrll * notice, this list of conditions and the following disclaimer in the
16 1.2.2.2 skrll * documentation and/or other materials provided with the distribution.
17 1.2.2.2 skrll *
18 1.2.2.2 skrll * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
19 1.2.2.2 skrll * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20 1.2.2.2 skrll * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
21 1.2.2.2 skrll * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
22 1.2.2.2 skrll * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23 1.2.2.2 skrll * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 1.2.2.2 skrll * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 1.2.2.2 skrll * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 1.2.2.2 skrll * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 1.2.2.2 skrll * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 1.2.2.2 skrll * SUCH DAMAGE.
29 1.2.2.2 skrll */
30 1.2.2.2 skrll
31 1.2.2.2 skrll struct ipw_soft_bd {
32 1.2.2.2 skrll struct ipw_bd *bd;
33 1.2.2.2 skrll int type;
34 1.2.2.2 skrll #define IPW_SBD_TYPE_NOASSOC 0
35 1.2.2.2 skrll #define IPW_SBD_TYPE_COMMAND 1
36 1.2.2.2 skrll #define IPW_SBD_TYPE_HEADER 2
37 1.2.2.2 skrll #define IPW_SBD_TYPE_DATA 3
38 1.2.2.2 skrll void *priv;
39 1.2.2.2 skrll };
40 1.2.2.2 skrll
41 1.2.2.2 skrll struct ipw_soft_hdr {
42 1.2.2.2 skrll struct ipw_hdr hdr;
43 1.2.2.2 skrll bus_dmamap_t map;
44 1.2.2.2 skrll TAILQ_ENTRY(ipw_soft_hdr) next;
45 1.2.2.2 skrll };
46 1.2.2.2 skrll
47 1.2.2.2 skrll struct ipw_soft_buf {
48 1.2.2.2 skrll struct mbuf *m;
49 1.2.2.2 skrll struct ieee80211_node *ni;
50 1.2.2.2 skrll bus_dmamap_t map;
51 1.2.2.2 skrll TAILQ_ENTRY(ipw_soft_buf) next;
52 1.2.2.2 skrll };
53 1.2.2.2 skrll
54 1.2.2.2 skrll struct ipw_softc {
55 1.2.2.2 skrll struct device sc_dev;
56 1.2.2.2 skrll
57 1.2.2.2 skrll struct ieee80211com sc_ic;
58 1.2.2.2 skrll int (*sc_newstate)(struct ieee80211com *,
59 1.2.2.2 skrll enum ieee80211_state, int);
60 1.2.2.2 skrll
61 1.2.2.2 skrll u_int32_t flags;
62 1.2.2.2 skrll #define IPW_FLAG_FW_INITED (1 << 0)
63 1.2.2.2 skrll
64 1.2.2.2 skrll struct resource *irq;
65 1.2.2.2 skrll struct resource *mem;
66 1.2.2.2 skrll bus_space_tag_t sc_st;
67 1.2.2.2 skrll bus_space_handle_t sc_sh;
68 1.2.2.2 skrll void *sc_ih;
69 1.2.2.2 skrll pci_chipset_tag_t sc_pct;
70 1.2.2.2 skrll bus_size_t sc_sz;
71 1.2.2.2 skrll
72 1.2.2.2 skrll int sc_tx_timer;
73 1.2.2.2 skrll
74 1.2.2.2 skrll bus_dma_tag_t sc_dmat;
75 1.2.2.2 skrll
76 1.2.2.2 skrll bus_dmamap_t tbd_map;
77 1.2.2.2 skrll bus_dmamap_t rbd_map;
78 1.2.2.2 skrll bus_dmamap_t status_map;
79 1.2.2.2 skrll bus_dmamap_t cmd_map;
80 1.2.2.2 skrll
81 1.2.2.2 skrll bus_dma_segment_t tbd_seg;
82 1.2.2.2 skrll bus_dma_segment_t rbd_seg;
83 1.2.2.2 skrll bus_dma_segment_t status_seg;
84 1.2.2.2 skrll bus_dma_segment_t cmd_seg;
85 1.2.2.2 skrll
86 1.2.2.2 skrll struct ipw_bd *tbd_list;
87 1.2.2.2 skrll struct ipw_bd *rbd_list;
88 1.2.2.2 skrll struct ipw_status *status_list;
89 1.2.2.2 skrll
90 1.2.2.2 skrll struct ipw_cmd *cmd;
91 1.2.2.2 skrll struct ipw_soft_bd *stbd_list;
92 1.2.2.2 skrll struct ipw_soft_bd *srbd_list;
93 1.2.2.2 skrll struct ipw_soft_hdr *shdr_list;
94 1.2.2.2 skrll struct ipw_soft_buf *tx_sbuf_list;
95 1.2.2.2 skrll struct ipw_soft_buf *rx_sbuf_list;
96 1.2.2.2 skrll
97 1.2.2.2 skrll TAILQ_HEAD(, ipw_soft_hdr) sc_free_shdr;
98 1.2.2.2 skrll TAILQ_HEAD(, ipw_soft_buf) sc_free_sbuf;
99 1.2.2.2 skrll
100 1.2.2.2 skrll u_int32_t table1_base;
101 1.2.2.2 skrll u_int32_t table2_base;
102 1.2.2.2 skrll
103 1.2.2.2 skrll u_int32_t txcur;
104 1.2.2.2 skrll u_int32_t txold;
105 1.2.2.2 skrll u_int32_t rxcur;
106 1.2.2.2 skrll };
107 1.2.2.2 skrll
108 1.2.2.2 skrll #define SIOCSLOADFW _IOW('i', 137, struct ifreq)
109 1.2.2.2 skrll #define SIOCSKILLFW _IOW('i', 138, struct ifreq)
110 1.2.2.2 skrll #define SIOCGRADIO _IOWR('i', 139, struct ifreq)
111 1.2.2.2 skrll #define SIOCGTABLE1 _IOWR('i', 140, struct ifreq)
112