Merge branch 'fix/asoc' into for-linus
[linux-2.6] / drivers / net / wireless / zd1201.h
1 /*
2  *      Copyright (c) 2004, 2005 Jeroen Vreeken (pe1rxq@amsat.org)
3  *
4  *      This program is free software; you can redistribute it and/or
5  *      modify it under the terms of the GNU General Public License
6  *      version 2 as published by the Free Software Foundation.
7  *
8  *      Parts of this driver have been derived from a wlan-ng version
9  *      modified by ZyDAS.
10  *      Copyright (C) 1999 AbsoluteValue Systems, Inc.  All Rights Reserved.
11  */
12
13 #ifndef _INCLUDE_ZD1201_H_
14 #define _INCLUDE_ZD1201_H_
15
16 #define ZD1201_NUMKEYS          4
17 #define ZD1201_MAXKEYLEN        13
18 #define ZD1201_MAXMULTI         16
19 #define ZD1201_FRAGMAX          2500
20 #define ZD1201_FRAGMIN          256
21 #define ZD1201_RTSMAX           2500
22
23 #define ZD1201_RXSIZE           3000
24
25 struct zd1201 {
26         struct usb_device       *usb;
27         int                     removed;
28         struct net_device       *dev;
29         struct net_device_stats stats;
30         struct iw_statistics    iwstats;
31
32         int                     endp_in;
33         int                     endp_out;
34         int                     endp_out2;
35         struct urb              *rx_urb;
36         struct urb              *tx_urb;
37
38         unsigned char           rxdata[ZD1201_RXSIZE];
39         int                     rxlen;
40         wait_queue_head_t       rxdataq;
41         int                     rxdatas;
42         struct hlist_head       fraglist;
43         unsigned char           txdata[ZD1201_RXSIZE];
44
45         int                     ap;
46         char                    essid[IW_ESSID_MAX_SIZE+1];
47         int                     essidlen;
48         int                     mac_enabled;
49         int                     was_enabled;
50         int                     monitor;
51         int                     encode_enabled;
52         int                     encode_restricted;
53         unsigned char           encode_keys[ZD1201_NUMKEYS][ZD1201_MAXKEYLEN];
54         int                     encode_keylen[ZD1201_NUMKEYS];
55 };
56
57 struct zd1201_frag {
58         struct hlist_node       fnode;
59         int                     seq;
60         struct sk_buff          *skb;
61 };
62
63 #define ZD1201SIWHOSTAUTH SIOCIWFIRSTPRIV
64 #define ZD1201GIWHOSTAUTH ZD1201SIWHOSTAUTH+1
65 #define ZD1201SIWAUTHSTA SIOCIWFIRSTPRIV+2
66 #define ZD1201SIWMAXASSOC SIOCIWFIRSTPRIV+4
67 #define ZD1201GIWMAXASSOC ZD1201SIWMAXASSOC+1
68
69 #define ZD1201_FW_TIMEOUT       (1000)
70
71 #define ZD1201_TX_TIMEOUT       (2000)
72
73 #define ZD1201_USB_CMDREQ       0
74 #define ZD1201_USB_RESREQ       1
75
76 #define ZD1201_CMDCODE_INIT     0x00
77 #define ZD1201_CMDCODE_ENABLE   0x01
78 #define ZD1201_CMDCODE_DISABLE  0x02
79 #define ZD1201_CMDCODE_ALLOC    0x0a
80 #define ZD1201_CMDCODE_INQUIRE  0x11
81 #define ZD1201_CMDCODE_SETRXRID 0x17
82 #define ZD1201_CMDCODE_ACCESS   0x21
83
84 #define ZD1201_PACKET_EVENTSTAT 0x0
85 #define ZD1201_PACKET_RXDATA    0x1
86 #define ZD1201_PACKET_INQUIRE   0x2
87 #define ZD1201_PACKET_RESOURCE  0x3
88
89 #define ZD1201_ACCESSBIT        0x0100
90
91 #define ZD1201_RID_CNFPORTTYPE          0xfc00
92 #define ZD1201_RID_CNFOWNMACADDR        0xfc01
93 #define ZD1201_RID_CNFDESIREDSSID       0xfc02
94 #define ZD1201_RID_CNFOWNCHANNEL        0xfc03
95 #define ZD1201_RID_CNFOWNSSID           0xfc04
96 #define ZD1201_RID_CNFMAXDATALEN        0xfc07
97 #define ZD1201_RID_CNFPMENABLED         0xfc09
98 #define ZD1201_RID_CNFPMEPS             0xfc0a
99 #define ZD1201_RID_CNFMAXSLEEPDURATION  0xfc0c
100 #define ZD1201_RID_CNFDEFAULTKEYID      0xfc23
101 #define ZD1201_RID_CNFDEFAULTKEY0       0xfc24
102 #define ZD1201_RID_CNFDEFAULTKEY1       0xfc25
103 #define ZD1201_RID_CNFDEFAULTKEY2       0xfc26
104 #define ZD1201_RID_CNFDEFAULTKEY3       0xfc27
105 #define ZD1201_RID_CNFWEBFLAGS          0xfc28
106 #define ZD1201_RID_CNFAUTHENTICATION    0xfc2a
107 #define ZD1201_RID_CNFMAXASSOCSTATIONS  0xfc2b
108 #define ZD1201_RID_CNFHOSTAUTH          0xfc2e
109 #define ZD1201_RID_CNFGROUPADDRESS      0xfc80
110 #define ZD1201_RID_CNFFRAGTHRESHOLD     0xfc82
111 #define ZD1201_RID_CNFRTSTHRESHOLD      0xfc83
112 #define ZD1201_RID_TXRATECNTL           0xfc84
113 #define ZD1201_RID_PROMISCUOUSMODE      0xfc85
114 #define ZD1201_RID_CNFBASICRATES        0xfcb3
115 #define ZD1201_RID_AUTHENTICATESTA      0xfce3
116 #define ZD1201_RID_CURRENTBSSID         0xfd42
117 #define ZD1201_RID_COMMSQUALITY         0xfd43
118 #define ZD1201_RID_CURRENTTXRATE        0xfd44
119 #define ZD1201_RID_CNFMAXTXBUFFERNUMBER 0xfda0
120 #define ZD1201_RID_CURRENTCHANNEL       0xfdc1
121
122 #define ZD1201_INQ_SCANRESULTS          0xf101
123
124 #define ZD1201_INF_LINKSTATUS           0xf200
125 #define ZD1201_INF_ASSOCSTATUS          0xf201
126 #define ZD1201_INF_AUTHREQ              0xf202
127
128 #define ZD1201_ASSOCSTATUS_STAASSOC     0x1
129 #define ZD1201_ASSOCSTATUS_REASSOC      0x2
130 #define ZD1201_ASSOCSTATUS_DISASSOC     0x3
131 #define ZD1201_ASSOCSTATUS_ASSOCFAIL    0x4
132 #define ZD1201_ASSOCSTATUS_AUTHFAIL     0x5
133
134 #define ZD1201_PORTTYPE_IBSS            0
135 #define ZD1201_PORTTYPE_BSS             1
136 #define ZD1201_PORTTYPE_WDS             2
137 #define ZD1201_PORTTYPE_PSEUDOIBSS      3
138 #define ZD1201_PORTTYPE_AP              6
139
140 #define ZD1201_RATEB1   1
141 #define ZD1201_RATEB2   2
142 #define ZD1201_RATEB5   4       /* 5.5 really, but 5 is shorter :) */
143 #define ZD1201_RATEB11  8
144
145 #define ZD1201_CNFAUTHENTICATION_OPENSYSTEM     0x0001
146 #define ZD1201_CNFAUTHENTICATION_SHAREDKEY      0x0002
147
148 #endif /* _INCLUDE_ZD1201_H_ */