• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 
2 #ifndef MDD_H
3 #define MDD_H 1
4 
5 /*************************************************************************************************************
6 *
7 * FILE		: mdd.h
8 *
9 * DATE		: $Date: 2004/08/05 11:47:10 $   $Revision: 1.6 $
10 * Original		: 2004/05/25 05:59:37    Revision: 1.57      Tag: hcf7_t20040602_01
11 * Original		: 2004/05/13 15:31:45    Revision: 1.54      Tag: hcf7_t7_20040513_01
12 * Original		: 2004/04/15 09:24:41    Revision: 1.47      Tag: hcf7_t7_20040415_01
13 * Original		: 2004/04/13 14:22:45    Revision: 1.46      Tag: t7_20040413_01
14 * Original		: 2004/04/01 15:32:55    Revision: 1.42      Tag: t7_20040401_01
15 * Original		: 2004/03/10 15:39:28    Revision: 1.38      Tag: t20040310_01
16 * Original		: 2004/03/04 11:03:37    Revision: 1.36      Tag: t20040304_01
17 * Original		: 2004/03/02 09:27:11    Revision: 1.34      Tag: t20040302_03
18 * Original		: 2004/02/24 13:00:27    Revision: 1.29      Tag: t20040224_01
19 * Original		: 2004/02/18 17:13:57    Revision: 1.26      Tag: t20040219_01
20 *
21 * AUTHOR	: Nico Valster
22 *
23 * DESC		: Definitions and Prototypes for HCF, DHF, MMD and MSF
24 *
25 ***************************************************************************************************************
26 *
27 *
28 * SOFTWARE LICENSE
29 *
30 * This software is provided subject to the following terms and conditions,
31 * which you should read carefully before using the software.  Using this
32 * software indicates your acceptance of these terms and conditions.  If you do
33 * not agree with these terms and conditions, do not use the software.
34 *
35 * COPYRIGHT © 1994 - 1995	by AT&T.				All Rights Reserved
36 * COPYRIGHT © 1996 - 2000 by Lucent Technologies.	All Rights Reserved
37 * COPYRIGHT © 2001 - 2004	by Agere Systems Inc.	All Rights Reserved
38 * All rights reserved.
39 *
40 * Redistribution and use in source or binary forms, with or without
41 * modifications, are permitted provided that the following conditions are met:
42 *
43 * . Redistributions of source code must retain the above copyright notice, this
44 *    list of conditions and the following Disclaimer as comments in the code as
45 *    well as in the documentation and/or other materials provided with the
46 *    distribution.
47 *
48 * . Redistributions in binary form must reproduce the above copyright notice,
49 *    this list of conditions and the following Disclaimer in the documentation
50 *    and/or other materials provided with the distribution.
51 *
52 * . Neither the name of Agere Systems Inc. nor the names of the contributors
53 *    may be used to endorse or promote products derived from this software
54 *    without specific prior written permission.
55 *
56 * Disclaimer
57 *
58 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
59 * INCLUDING, BUT NOT LIMITED TO, INFRINGEMENT AND THE IMPLIED WARRANTIES OF
60 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  ANY
61 * USE, MODIFICATION OR DISTRIBUTION OF THIS SOFTWARE IS SOLELY AT THE USERS OWN
62 * RISK. IN NO EVENT SHALL AGERE SYSTEMS INC. OR CONTRIBUTORS BE LIABLE FOR ANY
63 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
64 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
65 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
66 * ON ANY THEORY OF LIABILITY, INCLUDING, BUT NOT LIMITED TO, CONTRACT, STRICT
67 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
68 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
69 * DAMAGE.
70 *
71 *
72 ************************************************************************************************************/
73 
74 
75 /************************************************************************************************************
76 *
77 * The macros Xn(...) and XXn(...) are used to define the LTV's (short for Length Type Value[ ]) ,
78 * aka RIDs, processed by the Hermes.
79 * The n in Xn and XXn reflects the number of "Value" fields in these RIDs.
80 *
81 * Xn(...) : Macros used for RIDs which use only type hcf_16 for the "V" fields of the LTV.
82 * Xn takes as parameters a RID name and "n" name(s), one for each of the "V" fields of the LTV.
83 *
84 * XXn(...) : Macros used for RIDs which use at least one other type then hcf_16 for a "V" field
85 * of the LTV.
86 * XXn(..) takes as parameters a RID name and "n" pair(s) of type and name, one for each "V" field
87 * of the LTV
88 
89  ******************************************  e x a m p l e s  ***********************************************
90 
91 * X1(RID_NAME, parameters...) : expands to :
92 *    typedef struct RID_NAME_STRCT {
93 *         hcf_16  len;
94 *         hcf_16  typ;
95 *         hcf_16  par1;
96 *    } RID_NAME_STRCT;
97 
98 * X2(RID_NAME, parameters...) : expands to :
99 *    typedef struct RID_NAME_STRCT {
100 *         hcf_16  len;
101 *         hcf_16  typ;
102 *         hcf_16  par1;
103 *         hcf_16  par2;
104 *    } RID_NAME_STRCT;
105 
106 
107 * XX1(RID_NAME, par1type, par1name, ...) : expands to :
108 *    typedef struct RID_NAME_STRCT {
109 *       hcf_16    len;
110 *       hcf_16    typ;
111 *       par1type  par1name;
112 *    } RID_NAME_STRCT;
113 
114 ************************************************************************************************************/
115 
116 /******************************* XX Sub-macro definitions **************************************************/
117 
118 #define XX1( name, type1, par1 )	\
119 typedef struct {				  	\
120 	hcf_16	len;                	\
121 	hcf_16	typ;                	\
122 	type1	par1;               	\
123 } name##_STRCT;
124 
125 #define XX2( name, type1, par1, type2, par2 )	\
126 typedef struct {				   	\
127 	hcf_16	len;                	\
128 	hcf_16	typ;                	\
129 	type1	par1;               	\
130 	type2	par2;               	\
131 } name##_STRCT;
132 
133 #define XX3( name, type1, par1, type2, par2, type3, par3 )	\
134 typedef struct name##_STRCT {   	\
135 	hcf_16	len;                	\
136 	hcf_16	typ;                	\
137 	type1	par1;               	\
138 	type2	par2;               	\
139 	type3	par3;               	\
140 } name##_STRCT;
141 
142 #define XX4( name, type1, par1, type2, par2, type3, par3, type4, par4 )	\
143 typedef struct {				  	\
144 	hcf_16	len;                	\
145 	hcf_16	typ;                	\
146 	type1	par1;               	\
147 	type2	par2;               	\
148 	type3	par3;               	\
149 	type4	par4;               	\
150 } name##_STRCT;
151 
152 #define X1( name, par1 )	\
153 typedef struct name##_STRCT {   	\
154 	hcf_16	len;                	\
155 	hcf_16	typ;                	\
156 	hcf_16	par1;               	\
157 } name##_STRCT;
158 
159 #define X2( name, par1, par2 )		\
160 typedef struct {			    	\
161 	hcf_16	len;                	\
162 	hcf_16	typ;                	\
163 	hcf_16	par1;               	\
164 	hcf_16	par2;               	\
165 } name##_STRCT;
166 
167 #define X3( name, par1, par2, par3 )		\
168 typedef struct {			    	\
169 	hcf_16	len;                	\
170 	hcf_16	typ;                	\
171 	hcf_16	par1;               	\
172 	hcf_16	par2;               	\
173 	hcf_16	par3;               	\
174 } name##_STRCT;
175 
176 #define X4( name, par1, par2, par3, par4 )		\
177 typedef struct {			    	\
178 	hcf_16	len;                	\
179 	hcf_16	typ;                	\
180 	hcf_16	par1;               	\
181 	hcf_16	par2;               	\
182 	hcf_16	par3;               	\
183 	hcf_16	par4;               	\
184 } name##_STRCT;
185 
186 #define X5( name, par1, par2, par3, par4, par5 )		\
187 typedef struct {			    	\
188 	hcf_16	len;                	\
189 	hcf_16	typ;                	\
190 	hcf_16	par1;               	\
191 	hcf_16	par2;               	\
192 	hcf_16	par3;               	\
193 	hcf_16	par4;               	\
194 	hcf_16	par5;               	\
195 } name##_STRCT;
196 
197 #define X6( name, par1, par2, par3, par4, par5, par6 )		\
198 typedef struct {			    	\
199 	hcf_16	len;                	\
200 	hcf_16	typ;                	\
201 	hcf_16	par1;               	\
202 	hcf_16	par2;               	\
203 	hcf_16	par3;               	\
204 	hcf_16	par4;               	\
205 	hcf_16	par5;               	\
206 	hcf_16	par6;               	\
207 } name##_STRCT;
208 
209 #define X8( name, par1, par2, par3, par4, par5, par6, par7, par8 )		\
210 typedef struct {			    	\
211 	hcf_16	len;                	\
212 	hcf_16	typ;                	\
213 	hcf_16	par1;               	\
214 	hcf_16	par2;               	\
215 	hcf_16	par3;               	\
216 	hcf_16	par4;               	\
217 	hcf_16	par5;               	\
218 	hcf_16	par6;               	\
219 	hcf_16	par7;               	\
220 	hcf_16	par8;               	\
221 } name##_STRCT;
222 
223 #define X11( name, par1, par2, par3, par4, par5, par6, par7, par8, par9, par10, par11 )		\
224 typedef struct {			    	\
225 	hcf_16	len;                	\
226 	hcf_16	typ;                	\
227 	hcf_16	par1;               	\
228 	hcf_16	par2;               	\
229 	hcf_16	par3;               	\
230 	hcf_16	par4;               	\
231 	hcf_16	par5;               	\
232 	hcf_16	par6;               	\
233 	hcf_16	par7;               	\
234 	hcf_16	par8;               	\
235 	hcf_16	par9;               	\
236 	hcf_16	par10;               	\
237 	hcf_16	par11;               	\
238 } name##_STRCT;
239 
240 /******************************* Substructure definitions **************************************************/
241 
242 //apparently not needed (CFG_CNF_COUNTRY)
243 typedef struct CHANNEL_SET {				//channel set structure used in the CFG_CNF_COUNTRY LTV
244 	hcf_16	first_channel;
245 	hcf_16	number_of_channels;
246 	hcf_16	max_tx_output_level;
247 } CHANNEL_SET;
248 
249 typedef struct KEY_STRCT {					// key structure used in the CFG_DEFAULT_KEYS LTV
250     hcf_16  len;	              				//length of key
251     hcf_8   key[14];							//encryption key
252 } KEY_STRCT;
253 
254 typedef struct SCAN_RS_STRCT {				// Scan Result structure used in the CFG_SCAN LTV
255 	hcf_16	channel_id;
256 	hcf_16	noise_level;
257 	hcf_16	signal_level;
258 	hcf_8	bssid[6];
259 	hcf_16	beacon_interval_time;
260 	hcf_16	capability;
261 	hcf_16	ssid_len;
262 	hcf_8	ssid_val[32];
263 } SCAN_RS_STRCT;
264 
265 typedef struct CFG_RANGE_SPEC_STRCT {		// range specification structure used in CFG_RANGES, CFG_RANGE1 etc
266 	hcf_16	variant;
267 	hcf_16	bottom;
268 	hcf_16	top;
269 } CFG_RANGE_SPEC_STRCT;
270 
271 typedef struct CFG_RANGE_SPEC_BYTE_STRCT {	// byte oriented range specification structure used in CFG_RANGE_B LTV
272 	hcf_8	variant[2];
273 	hcf_8	bottom[2];
274 	hcf_8	top[2];
275 } CFG_RANGE_SPEC_BYTE_STRCT;
276 
277 //used to set up "T" functionality for Info frames, i.e. log info frames in MSF supplied buffer and MailBox
278 XX1( RID_LOG, unsigned short FAR*, bufp )
279 typedef RID_LOG_STRCT  FAR *RID_LOGP;
280 XX1( CFG_RID_LOG, RID_LOGP, recordp )
281 
282  X1( LTV,		val[1] )												/*minimum LTV proto typ	*/
283  X1( LTV_MAX,	val[HCF_MAX_LTV] )										/*maximum LTV proto typ	*/
284 XX2( CFG_REG_MB, hcf_16* , mb_addr, hcf_16, mb_size )
285 
286 typedef struct CFG_MB_INFO_FRAG {	// specification of buffer fragment
287 	unsigned short FAR*	frag_addr;
288 	hcf_16				frag_len;
289 } CFG_MB_INFO_FRAG;
290 
291 /* Mail Box Info Block structures,
292  * the base form: CFG_MB_INFO_STRCT
293  * and the derived forms: CFG_MB_INFO_RANGE<n>_STRCT with n is 1, 2, 3 or 20
294  * predefined for a payload of 1, and up to 2, 3 and 20 CFG_MB_INFO_FRAG elements */
295 XX3( CFG_MB_INFO,		  hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] )
296 XX3( CFG_MB_INFO_RANGE1,  hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] )
297 XX3( CFG_MB_INFO_RANGE2,  hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 2] )
298 XX3( CFG_MB_INFO_RANGE3,  hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 3] )
299 XX3( CFG_MB_INFO_RANGE20, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[20] )
300 
301 XX3( CFG_MB_ASSERT, hcf_16, line, hcf_16, trace, hcf_32, qualifier )	/*MBInfoBlock for asserts	*/
302 #if (HCF_ASSERT) & ( HCF_ASSERT_LNK_MSF_RTN | HCF_ASSERT_RT_MSF_RTN )
303 typedef void (MSF_ASSERT_RTN)( unsigned int , hcf_16, hcf_32 );
304 typedef MSF_ASSERT_RTN /*can't link FAR*/ * MSF_ASSERT_RTNP;
305 /* CFG_REG_ASSERT_RTNP (0x0832)	(de-)register MSF Callback routines
306  * lvl:  Assert level filtering (not yet implemented)
307  * rtnp: address of MSF_ASSERT_RTN (native Endian format) */
308 XX2( CFG_REG_ASSERT_RTNP, hcf_16, lvl, MSF_ASSERT_RTNP, rtnp )
309 #endif // HCF_ASSERT_LNK_MSF_RTN / HCF_ASSERT_RT_MSF_RTN
310 
311  X1( CFG_HCF_OPT, val[20] )											  	/*(Compile time) options	*/
312  X3( CFG_CMD_HCF, cmd, mode, add_info )									/*HCF Engineering command	*/
313 
314 typedef struct {
315 	hcf_16		len;
316 	hcf_16		typ;
317 	hcf_16		mode;			// PROG_STOP/VOLATILE [FLASH/SEEPROM/SEEPROM_READBACK]
318 	hcf_16		segment_size;  	// size of the segment in bytes
319 	hcf_32		nic_addr;  		// destination address (in NIC memory)
320 	hcf_16		flags;			// 0x0001	: CRC Yes/No
321 //	hcf_32		flags;			// 0x0001	: CRC Yes/No
322 	/* ;? still not the whole story
323 	 * flags is extended from 16 to 32 bits to force that compiling FW.C produces the same structures
324 	 * in memory as FUPU4 BIN files.
325 	 * Note that the problem arises from the violation of the constraint to use packing at byte boundaries
326 	 * as was stipulated in the WCI-specification
327 	 * The Pack pragma can't resolve this issue, because that impacts all members of the structure with
328 	 * disregard of their actual size, so aligning host_addr under MSVC 1.5 at 4 bytes, also aligns
329 	 * len, typ etc on 4 bytes
330 	 * */
331 //	hcf_16		pad; 	 		//!! be careful alignment problems for Bin download versus C download
332 	hcf_8 FAR   *host_addr;  	// source address (in Host memory)
333 } CFG_PROG_STRCT; // segment_descp;
334 
335 // a structure used for transporting debug-related information from firmware
336 // via the HCF, into the MSF
337 typedef struct {
338     hcf_16      len;
339     hcf_16      typ;
340     hcf_16      msg_id, msg_par, msg_tstamp;
341 } CFG_FW_PRINTF_STRCT;
342 
343 // a structure used to define the location and size of a certain debug-related
344 // buffer in nic-ram.
345 typedef struct {
346     hcf_16      len;
347     hcf_16      typ;
348     hcf_32      DbMsgCount, 	// ds (nicram) address of a counter
349                 DbMsgBuffer, 	// ds (nicram) address of the buffer
350                 DbMsgSize, 		// number of entries (each 3 word in size) in this buffer
351                 DbMsgIntrvl;	// ds (nicram) address of interval for generating InfDrop event
352 } CFG_FW_PRINTF_BUFFER_LOCATION_STRCT;
353 
354 XX3( CFG_RANGES,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/
355 XX3( CFG_RANGE1,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/
356 XX3( CFG_RANGE2,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 2] ) /*Actor range ( 2 variants)		*/
357 XX3( CFG_RANGE3,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 3] ) /*Actor range ( 3 variants)		*/
358 XX3( CFG_RANGE4,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 4] ) /*Actor range ( 4 variants)		*/
359 XX3( CFG_RANGE5,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 5] ) /*Actor range ( 5 variants)		*/
360 XX3( CFG_RANGE6,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 6] ) /*Actor range ( 6 variants)		*/
361 XX3( CFG_RANGE7,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 7] ) /*Actor range ( 7 variants)		*/
362 XX3( CFG_RANGE20,	hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[20] ) /*Actor range (20 variants)		*/
363 
364 /*Frames */
365  X3( CFG_ASSOC_STAT,  assoc_stat, station_addr[3], val[46] ) 	/*Association status, basic					*/
366  X2( CFG_ASSOC_STAT3, assoc_stat, station_addr[3] ) 								/*assoc_stat:3			*/
367  X3( CFG_ASSOC_STAT1, assoc_stat, station_addr[3], frame_body[43] )					/*assoc_stat:1			*/
368  X4( CFG_ASSOC_STAT2, assoc_stat, station_addr[3], old_ap_addr[3], frame_body[43] )	/*assoc_stat:2			*/
369 
370 /*Static Configurations */
371  X1( CFG_CNF_PORT_TYPE,				port_type			 ) /*[STA] Connection control characteristics				*/
372  X1( CFG_MAC_ADDR,					mac_addr[3] 		 ) /*general: FC01,FC08,FC11,FC12,FC13,FC14,FC15,FC16 		*/
373  X1( CFG_CNF_OWN_MAC_ADDR,			mac_addr[3]			 )
374  X1( CFG_ID,						ssid[17]			 ) /*0xFC02, 0xFC04, 0xFC0E 								*/
375 /*	X1( CFG_DESIRED_SSID,			ssid[17]			 )	see Dynamic Configurations								*/
376  X1( CFG_CNF_OWN_CHANNEL,			channel				 ) /*Communication channel for BSS creation					*/
377  X1( CFG_CNF_OWN_SSID,				ssid[17]			 )
378  X1( CFG_CNF_OWN_ATIM_WINDOW,		atim_window			 )
379  X1( CFG_CNF_SYSTEM_SCALE,			system_scale		 )
380  X1( CFG_CNF_MAX_DATA_LEN,			max_data_len		 )
381  X1( CFG_CNF_WDS_ADDR,				mac_addr[3]			 ) /*[STA] MAC Address of corresponding WDS Link node		*/
382  X1( CFG_CNF_PM_ENABLED,			pm_enabled			 ) /*[STA] Switch for ESS Power Management (PM) On/Off		*/
383  X1( CFG_CNF_PM_EPS,				pm_eps				 ) /*[STA] Switch for ESS PM EPS/PS Mode					*/
384  X1( CFG_CNF_MCAST_RX,				mcast_rx			 ) /*[STA] Switch for ESS PM Multicast reception On/Off		*/
385  X1( CFG_CNF_MAX_SLEEP_DURATION,	duration			 ) /*[STA] Maximum sleep time for ESS PM					*/
386  X1( CFG_CNF_PM_HOLDOVER_DURATION,	duration			 ) /*[STA] Holdover time for ESS PM							*/
387  X1( CFG_CNF_OWN_NAME,				ssid[17]			 ) /*Identification text for diagnostic purposes			*/
388  X1( CFG_CNF_OWN_DTIM_PERIOD,		period				 ) /*[AP] Beacon intervals between successive DTIMs			*/
389  X1( CFG_CNF_WDS_ADDR1,				mac_addr[3]			 ) /*[AP] Port 1 MAC Adrs of corresponding WDS Link node	*/
390  X1( CFG_CNF_WDS_ADDR2,				mac_addr[3]			 ) /*[AP] Port 2 MAC Adrs of corresponding WDS Link node	*/
391  X1( CFG_CNF_WDS_ADDR3,				mac_addr[3]			 ) /*[AP] Port 3 MAC Adrs of corresponding WDS Link node	*/
392  X1( CFG_CNF_WDS_ADDR4,				mac_addr[3]			 ) /*[AP] Port 4 MAC Adrs of corresponding WDS Link node	*/
393  X1( CFG_CNF_WDS_ADDR5,				mac_addr[3]			 ) /*[AP] Port 5 MAC Adrs of corresponding WDS Link node	*/
394  X1( CFG_CNF_WDS_ADDR6,				mac_addr[3]			 ) /*[AP] Port 6 MAC Adrs of corresponding WDS Link node	*/
395  X1( CFG_CNF_MCAST_PM_BUF,			mcast_pm_buf		 ) /*[AP] Switch for PM buffering of Multicast Messages	*/
396  X1( CFG_CNF_REJECT_ANY,			reject_any			 ) /*[AP] Switch for PM buffering of Multicast Messages	*/
397 //X1( CFG_CNF_ENCRYPTION_ENABLED,	encryption			 ) /*specify encryption type of Tx/Rx messages				*/
398  X1( CFG_CNF_ENCRYPTION,			encryption			 ) /*specify encryption type of Tx/Rx messages				*/
399  X1( CFG_CNF_AUTHENTICATION,		authentication		 ) /*selects Authentication algorithm						*/
400  X1( CFG_CNF_EXCL_UNENCRYPTED,		exclude_unencrypted	 ) /*[AP] Switch for 'clear-text' rx message acceptance		*/
401  X1( CFG_CNF_MCAST_RATE,			mcast_rate			 ) /*Transmit Data rate for Multicast frames				*/
402  X1( CFG_CNF_INTRA_BSS_RELAY,		intra_bss_relay		 ) /*[AP] Switch for IntraBBS relay							*/
403  X1( CFG_CNF_MICRO_WAVE,			micro_wave			 ) /*MicroWave (Robustness)									*/
404  X1( CFG_CNF_LOAD_BALANCING,		load_balancing		 ) /*Load Balancing	  (Boolean, 0=OFF, 1=ON, default=1)		*/
405  X1( CFG_CNF_MEDIUM_DISTRIBUTION,	medium_distribution	 ) /*Medium Distribution (Boolean, 0=OFF, 1=ON, default=1)	*/
406  X1( CFG_CNF_GROUP_ADDR_FILTER,		group_addr_filter	 ) /*Group Address Filter								   	*/
407  X1( CFG_CNF_TX_POW_LVL,			tx_pow_lvl			 ) /*Tx Power Level										   	*/
408 XX4( CFG_CNF_COUNTRY_INFO,								 \
409 		hcf_16, n_channel_sets, hcf_16, country_code[2], \
410 		hcf_16, environment, CHANNEL_SET, channel_set[1] ) /*Current Country Info  									*/
411 XX4( CFG_CNF_COUNTRY_INFO_MAX,							 \
412 		hcf_16, n_channel_sets, hcf_16, country_code[2], \
413 		hcf_16, environment, CHANNEL_SET, channel_set[14]) /*Current Country Info  									*/
414 
415 /*Dynamic Configurations */
416  X1( CFG_DESIRED_SSID,			ssid[17]					 )	/*[STA] Service Set identification for connection	*/
417 #define GROUP_ADDR_SIZE			(32 * 6)						//32 6-byte MAC-addresses
418  X1( CFG_GROUP_ADDR,			mac_addr[GROUP_ADDR_SIZE/2]	 )	/*[STA] Multicast MAC Addresses for Rx-message		*/
419  X1( CFG_CREATE_IBSS,			create_ibss					 )	/*[STA] Switch for IBSS creation On/Off				*/
420  X1( CFG_RTS_THRH,				rts_thrh					 )	/*[STA] Frame length used for RTS/CTS handshake		*/
421  X1( CFG_TX_RATE_CNTL,			tx_rate_cntl				 )	/*[STA] Data rate control for message transmission	*/
422  X1( CFG_PROMISCUOUS_MODE,		promiscuous_mode			 )	/*[STA] Switch for Promiscuous mode reception On/Of	*/
423  X1( CFG_WOL,					wake_on_lan					 )	/*[STA] Switch for Wake-On-LAN mode					*/
424  X1( CFG_RTS_THRH0,				rts_thrh					 )	/*[AP] Port 0 frame length for RTS/CTS handshake	*/
425  X1( CFG_RTS_THRH1,				rts_thrh					 )	/*[AP] Port 1 frame length for RTS/CTS handshake	*/
426  X1( CFG_RTS_THRH2,				rts_thrh					 )	/*[AP] Port 2 frame length for RTS/CTS handshake	*/
427  X1( CFG_RTS_THRH3,				rts_thrh					 )	/*[AP] Port 3 frame length for RTS/CTS handshake	*/
428  X1( CFG_RTS_THRH4,				rts_thrh					 )	/*[AP] Port 4 frame length for RTS/CTS handshake	*/
429  X1( CFG_RTS_THRH5,				rts_thrh					 )	/*[AP] Port 5 frame length for RTS/CTS handshake	*/
430  X1( CFG_RTS_THRH6,				rts_thrh					 )	/*[AP] Port 6 frame length for RTS/CTS handshake	*/
431  X1( CFG_TX_RATE_CNTL0,			rate_cntl 					 )	/*[AP] Port 0 data rate control for transmission	*/
432  X1( CFG_TX_RATE_CNTL1,			rate_cntl					 )	/*[AP] Port 1 data rate control for transmission	*/
433  X1( CFG_TX_RATE_CNTL2,			rate_cntl					 )	/*[AP] Port 2 data rate control for transmission	*/
434  X1( CFG_TX_RATE_CNTL3,			rate_cntl					 )	/*[AP] Port 3 data rate control for transmission	*/
435  X1( CFG_TX_RATE_CNTL4,			rate_cntl					 )	/*[AP] Port 4 data rate control for transmission	*/
436  X1( CFG_TX_RATE_CNTL5,			rate_cntl					 )	/*[AP] Port 5 data rate control for transmission	*/
437  X1( CFG_TX_RATE_CNTL6,			rate_cntl					 )	/*[AP] Port 6 data rate control for transmission	*/
438 XX1( CFG_DEFAULT_KEYS,			KEY_STRCT, key[4]			 )	/*defines set of encryption keys					*/
439  X1( CFG_TX_KEY_ID,				tx_key_id					 )	/*select key for encryption of Tx messages			*/
440  X1( CFG_SCAN_SSID,				ssid[17]					 )	/*identification for connection						*/
441  X5( CFG_ADD_TKIP_DEFAULT_KEY,								 \
442 		 tkip_key_id_info, tkip_key_iv_info[4], tkip_key[8], \
443 		 tx_mic_key[4], rx_mic_key[4] 						 )	/*										       		*/
444  X6( CFG_ADD_TKIP_MAPPED_KEY,	bssid[3], tkip_key[8], 		 \
445 		 tsc[4], rsc[4], tx_mic_key[4], rx_mic_key[4] 		 )	/*										       		*/
446  X1( CFG_SET_WPA_AUTHENTICATION_SUITE, 						 \
447 		 ssn_authentication_suite							 )	/*											   		*/
448  X1( CFG_REMOVE_TKIP_DEFAULT_KEY,tkip_key_id				 )	/*											   		*/
449  X1( CFG_TICK_TIME,				tick_time					 )	/*Auxiliary Timer tick interval						*/
450  X1( CFG_DDS_TICK_TIME,			tick_time					 )	/*Disconnected DeepSleep Timer tick interval		*/
451 
452 /**********************************************************************
453 * Added for Pattern-matching WakeOnLan. (See firmware design note WMDN281C)
454 **********************************************************************/
455 #define WOL_PATTERNS				5		// maximum of 5 patterns in firmware
456 #define WOL_PATTERN_LEN				124		// maximum 124 bytes pattern length per pattern in firmware
457 #define WOL_MASK_LEN			 	30		// maximum 30 bytes mask length per pattern in firmware
458 #define WOL_BUF_SIZE	(WOL_PATTERNS * (WOL_PATTERN_LEN + WOL_MASK_LEN + 6) / 2)
459 X2( CFG_WOL_PATTERNS, nPatterns, buffer[WOL_BUF_SIZE]		 )  /*[STA] WakeOnLan pattern match, room for 5 patterns*/
460 
461  X5( CFG_SUP_RANGE,		role, id, variant, bottom, top				   ) /*[PRI] Primary Supplier compatibility range		*/
462 /* NIC Information */
463  X4( CFG_IDENTITY,			comp_id, variant, version_major, version_minor ) /*identification Prototype							*/
464 #define CFG_DRV_IDENTITY_STRCT	CFG_IDENTITY_STRCT
465 #define CFG_PRI_IDENTITY_STRCT	CFG_IDENTITY_STRCT
466 #define CFG_NIC_IDENTITY_STRCT	CFG_IDENTITY_STRCT
467 #define CFG_FW_IDENTITY_STRCT	CFG_IDENTITY_STRCT
468  X1( CFG_RID_INF_MIN,		y											   ) /*lowest value representing an Information RID		*/
469  X1( CFG_MAX_LOAD_TIME,		max_load_time								   ) /*[PRI] Max response time of the Download command	*/
470  X3( CFG_DL_BUF,			buf_page, buf_offset, buf_len				   ) /*[PRI] Download buffer location and size			*/
471 // X5( CFG_PRI_SUP_RANGE,		role, id, variant, bottom, top				   ) /*[PRI] Primary Supplier compatibility range		*/
472  X5( CFG_CFI_ACT_RANGES_PRI,role, id, variant, bottom, top				   ) /*[PRI] Controller Actor compatibility ranges		*/
473 // X5( CFG_NIC_HSI_SUP_RANGE,	role, id, variant, bottom, top				   ) /*H/W - S/W I/F supplier range						*/
474  X1( CFG_NIC_SERIAL_NUMBER,	serial_number[17]							   ) /*[PRI] Network I/F Card serial number				*/
475  X5( CFG_NIC_MFI_SUP_RANGE,	role, id, variant, bottom, top				   ) /*[PRI] Modem I/F Supplier compatibility range		*/
476  X5( CFG_NIC_CFI_SUP_RANGE,	role, id, variant, bottom, top				   ) /*[PRI] Controller I/F Supplier compatibility range*/
477 //H-I X1( CFG_CHANNEL_LIST,		channel_list								   ) /*Allowed communication channels					*/
478 //H-I XX2( CFG_REG_DOMAINS,		hcf_16, num_domain, hcf_8, reg_domains[10]	   ) /*List of intended regulatory domains				*/
479  X1( CFG_NIC_TEMP_TYPE,		temp_type									   ) /*Hardware temperature range code					*/
480 //H-I X1( CFG_CIS,				cis[240]									   ) /*PC Card Standard Card Information Structure		*/
481  X5( CFG_NIC_PROFILE,													   \
482 		 profile_code, capability_options, allowed_data_rates, val4, val5  ) /*Card Profile										*/
483 // X5( CFG_FW_SUP_RANGE,		role, id, variant, bottom, top				   ) /*[STA] Station I/F Supplier compatibility range	*/
484  X5( CFG_MFI_ACT_RANGES,	role, id, variant, bottom, top				   ) /*[STA] Modem I/F Actor compatibility ranges		*/
485  X5( CFG_CFI_ACT_RANGES_STA,role, id, variant, bottom, top				   ) /*[STA] Controller I/F Actor compatibility ranges	*/
486  X5( CFG_MFI_ACT_RANGES_STA,role, id, variant, bottom, top				   ) /*[STA] Controller I/F Actor compatibility ranges	*/
487  X1( CFG_NIC_BUS_TYPE,		nic_bus_type								   ) /*NIC bustype derived from BUSSEL host I/F signals */
488 
489 /*	MAC INFORMATION	*/
490  X1( CFG_PORT_STAT,				port_stat							 ) /*[STA] Actual MAC Port connection control status		*/
491  X1( CFG_CUR_SSID,				ssid[17]							 ) /*[STA] Identification of the actually connected SS		*/
492  X1( CFG_CUR_BSSID,				mac_addr[3]							 ) /*[STA] Identification of the actually connected BSS		*/
493  X3( CFG_COMMS_QUALITY,			coms_qual, signal_lvl, noise_lvl	 ) /*[STA] Quality of the Basic Service Set connection		*/
494  X1( CFG_CUR_TX_RATE,			rate								 ) /*[STA] Actual transmit data rate						*/
495  X1( CFG_CUR_BEACON_INTERVAL,	interval							 ) /*Beacon transmit interval time for BSS creation			*/
496 #if (HCF_TYPE) & HCF_TYPE_WARP
497  X11( CFG_CUR_SCALE_THRH,											 \
498 	 carrier_detect_thrh_cck, carrier_detect_thrh_ofdm, defer_thrh,	 \
499 	 energy_detect_thrh, rssi_on_thrh_deviation, 					 \
500 	 rssi_off_thrh_deviation, cck_drop_thrh, ofdm_drop_thrh, 		 \
501 	 cell_search_thrh, out_of_range_thrh, delta_snr				 )
502 #else
503  X6( CFG_CUR_SCALE_THRH,											 \
504 	 energy_detect_thrh, carrier_detect_thrh, defer_thrh, 			 \
505 	 cell_search_thrh, out_of_range_thrh, delta_snr					 ) /*Actual System Scale thresholds settings				*/
506 #endif // HCF_TYPE_WARP
507  X1( CFG_PROTOCOL_RSP_TIME,		time								 ) /*Max time to await a response to a request message		*/
508  X1( CFG_CUR_SHORT_RETRY_LIMIT,	limit								 ) /*Max number of transmit attempts for short frames		*/
509  X1( CFG_CUR_LONG_RETRY_LIMIT,	limit								 ) /*Max number of transmit attempts for long frames		*/
510  X1( CFG_MAX_TX_LIFETIME,		time								 ) /*Max transmit frame handling duration					*/
511  X1( CFG_MAX_RX_LIFETIME,		time								 ) /*Max received frame handling duration					*/
512  X1( CFG_CF_POLLABLE,			cf_pollable							 ) /*[STA] Contention Free pollable capability indication	*/
513  X2( CFG_AUTHENTICATION_ALGORITHMS,authentication_type, type_enabled ) /*Authentication Algorithm								*/
514  X1( CFG_PRIVACY_OPT_IMPLEMENTED,privacy_opt_implemented			 ) /*WEP Option availability indication						*/
515  X1( CFG_CUR_REMOTE_RATES,		rates								 ) /*CurrentRemoteRates										*/
516  X1( CFG_CUR_USED_RATES,		rates								 ) /*CurrentUsedRates										*/
517  X1( CFG_CUR_SYSTEM_SCALE,		current_system_scale				 ) /*CurrentUsedRates										*/
518  X1( CFG_CUR_TX_RATE1,			rate 								 ) /*[AP] Actual Port 1 transmit data rate					*/
519  X1( CFG_CUR_TX_RATE2,			rate								 ) /*[AP] Actual Port 2 transmit data rate					*/
520  X1( CFG_CUR_TX_RATE3,			rate								 ) /*[AP] Actual Port 3 transmit data rate					*/
521  X1( CFG_CUR_TX_RATE4,			rate								 ) /*[AP] Actual Port 4 transmit data rate					*/
522  X1( CFG_CUR_TX_RATE5,			rate								 ) /*[AP] Actual Port 5 transmit data rate					*/
523  X1( CFG_CUR_TX_RATE6,			rate								 ) /*[AP] Actual Port 6 transmit data rate					*/
524  X1( CFG_OWN_MAC_ADDR,			mac_addr[3]							 ) /*[AP] Unique local node MAC Address						*/
525  X3( CFG_PCF_INFO,				medium_occupancy_limit, 			 \
526 		 						cfp_period, cfp_max_duration 		 ) /*[AP] Point Coordination Function capability info		*/
527  X1( CFG_CUR_WPA_INFO_ELEMENT, ssn_info_element[1]				 	 ) /*    													*/
528  X4( CFG_CUR_TKIP_IV_INFO, 											 \
529 		 tkip_seq_cnt0[4], tkip_seq_cnt1[4], 						 \
530 		 tkip_seq_cnt2[4], tkip_seq_cnt3[4]  						 ) /*    													*/
531  X2( CFG_CUR_ASSOC_REQ_INFO,	frame_type, frame_body[1]			 ) /*	0xFD8C												*/
532  X2( CFG_CUR_ASSOC_RESP_INFO,	frame_type, frame_body[1]			 ) /*	0xFD8D												*/
533 
534 
535 /*	Modem INFORMATION */
536  X1( CFG_PHY_TYPE,				phy_type 							 ) /*Physical layer type indication							*/
537  X1( CFG_CUR_CHANNEL,			current_channel						 ) /*Actual frequency channel used for transmission			*/
538  X1( CFG_CUR_POWER_STATE,		current_power_state					 ) /*Actual power consumption status						*/
539  X1( CFG_CCAMODE,				cca_mode							 ) /*Clear channel assessment mode indication				*/
540  X1( CFG_SUPPORTED_DATA_RATES,	rates[5]							 ) /*Data rates capability information						*/
541 
542 
543 /* FRAMES */
544 XX1( CFG_SCAN,					SCAN_RS_STRCT, scan_result[32]		 ) /*Scan results											*/
545 
546 
547 
548 //--------------------------------------------------------------------------------------
549 // UIL management function to be passed to WaveLAN/IEEE Drivers in DUI_STRCT field fun
550 //--------------------------------------------------------------------------------------
551 
552 // HCF and UIL Common
553 #define MDD_ACT_SCAN			0x06					// Hermes Inquire Scan (F101) command
554 #define MDD_ACT_PRS_SCAN 		0x07					// Hermes Probe Response Scan (F102) command
555 
556 // UIL Specific
557 #define UIL_FUN_CONNECT			0x00					// Perform connect command
558 #define UIL_FUN_DISCONNECT		0x01					// Perform disconnect command
559 #define UIL_FUN_ACTION			0x02					// Perform UIL Action command.
560 #define UIL_FUN_SEND_DIAG_MSG	0x03					// Send a diagnostic message.
561 #define UIL_FUN_GET_INFO		0x04					// Retrieve information from NIC.
562 #define UIL_FUN_PUT_INFO		0x05					// Put information on NIC.
563 
564 /*	UIL_ACT_TALLIES				0x05		 			* this should not be exported to the USF
565 											 			* it is solely intended as a strategic choice for the MSF to either
566 											 			* - use HCF_ACT_TALLIES and direct IFB access
567 														* - use CFG_TALLIES
568 														*/
569 #define UIL_ACT_SCAN			MDD_ACT_SCAN
570 #define UIL_ACT_PRS_SCAN 		MDD_ACT_PRS_SCAN
571 #define UIL_ACT_BLOCK	 		0x0B
572 #define UIL_ACT_UNBLOCK	 		0x0C
573 #define UIL_ACT_RESET	 		0x80
574 #define UIL_ACT_REBIND	 		0x81
575 #define UIL_ACT_APPLY	 		0x82
576 #define UIL_ACT_DISCONNECT		0x83	//;?040108 possibly obsolete	//Special for WINCE
577 
578 // HCF Specific
579 /* Note that UIL_ACT-codes must match HCF_ACT-codes across a run-time bound I/F
580  * The initial matching is achieved by "#define HCF_ACT_xxx HCF_UIL_ACT_xxx" where appropriate
581  * In other words, these codes should never, ever change to minimize migration problems between
582  * combinations of old drivers and new utilities and vice versa
583  */
584 #define HCF_DISCONNECT			0x01					//disconnect request for hcf_connect (invalid as IO Address)
585 #define HCF_ACT_TALLIES 		0x05					// ! UIL_ACT_TALLIES does not exist ! Hermes Inquire Tallies (F100) cmd
586 #if ( (HCF_TYPE) & HCF_TYPE_WARP ) == 0
587 #define HCF_ACT_SCAN			MDD_ACT_SCAN
588 #endif // HCF_TYPE_WARP
589 #define HCF_ACT_PRS_SCAN		MDD_ACT_PRS_SCAN
590 #if HCF_INT_ON
591 #define HCF_ACT_INT_OFF 		0x0D					// Disable Interrupt generation
592 #define HCF_ACT_INT_ON			0x0E					// Enable Interrupt generation
593 #define HCF_ACT_INT_FORCE_ON	0x0F					// Enforce Enable Interrupt generation
594 #endif // HCF_INT_ON
595 #define HCF_ACT_RX_ACK			0x15					// Receiever ACK (optimization)
596 #if (HCF_TYPE) & HCF_TYPE_CCX
597 #define HCF_ACT_CCX_ON			0x1A					// enable CKIP
598 #define HCF_ACT_CCX_OFF			0x1B					// disable CKIP
599 #endif // HCF_TYPE_CCX
600 #if (HCF_SLEEP) & HCF_DDS
601 #define HCF_ACT_SLEEP			0x1C					// DDS Sleep request
602 //#define HCF_ACT_WAKEUP		0x1D					// DDS Wakeup request
603 #endif // HCF_DDS
604 
605 /*	HCF_ACT_MAX							// xxxx: start value for UIL-range, NOT to be passed to HCF
606  *										Too bad, there was originally no spare room created to use
607  *										HCF_ACT_MAX as an equivalent of HCF_ERR_MAX. Since creating
608  *										this room in retrospect would create a backward incompatibility
609  *										we will just have to live with the haphazard sequence of
610  *										UIL- and HCF specific codes. Theoretically this could be
611  *										corrected when and if there will ever be an overall
612  *										incompatibility introduced for another reason
613  */
614 
615 /*============================================================= HERMES RECORDS	============================*/
616 #define CFG_RID_FW_MIN							0xFA00	//lowest value representing a Hermes-II based RID
617 // #define CFG_PDA_BEGIN						0xFA	//
618 // #define CFG_PDA_END							0xFA	//
619 // #define CFG_PDA_NIC_TOP_LVL_ASSEMBLY_NUMBER	0xFA	//
620 // #define CFG_PDA_PCB_TRACER_NUMBER			0xFA	//
621 // #define CFG_PDA_RMM_TRACER_NUMBER			0xFA	//
622 // #define CFG_PDA_RMM_COMP_ID					0xFA	//
623 // #define CFG_PDA_								0xFA	//
624 
625 /*============================================================= CONFIGURATION RECORDS	=====================*/
626 /*============================================================= mask 0xFCxx				=====================*/
627 #define CFG_RID_CFG_MIN					0xFC00		//lowest value representing a Hermes configuration  RID
628 
629 //	NETWORK PARAMETERS, STATIC CONFIGURATION ENTITIES
630 //FC05, FC0B, FC0C, FC0D: SEE W2DN149
631 
632 #define CFG_CNF_PORT_TYPE				0xFC00		//[STA] Connection control characteristics
633 #define CFG_CNF_OWN_MAC_ADDR			0xFC01		//[STA] MAC Address of this node
634 //										0xFC02		see DYNAMIC CONFIGURATION ENTITIES
635 #define CFG_CNF_OWN_CHANNEL				0xFC03		//Communication channel for BSS creation
636 #define CFG_CNF_OWN_SSID				0xFC04		//IBSS creation (STA) or ESS (AP) Service Set Ident
637 #define CFG_CNF_OWN_ATIM_WINDOW			0xFC05		//[STA] ATIM Window time for IBSS creation
638 #define CFG_CNF_SYSTEM_SCALE			0xFC06		//System Scale that specifies the AP density
639 #define CFG_CNF_MAX_DATA_LEN			0xFC07		//Maximum length of MAC Frame Body data
640 #define CFG_CNF_PM_ENABLED				0xFC09		//[STA] Switch for ESS Power Management (PM)
641 #define CFG_CNF_MCAST_RX				0xFC0B		//[STA] Switch for ESS PM Multicast reception On/Off
642 #define CFG_CNF_MAX_SLEEP_DURATION		0xFC0C		//[STA] Maximum sleep time for ESS PM
643 #define CFG_CNF_HOLDOVER_DURATION		0xFC0D		//[STA] Holdover time for ESS PM
644 #define CFG_CNF_OWN_NAME				0xFC0E		//Identification text for diagnostic purposes
645 
646 #define CFG_CNF_OWN_DTIM_PERIOD			0xFC10		//[AP] Beacon intervals between successive DTIMs
647 #define CFG_CNF_WDS_ADDR1				0xFC11		//[AP] Port 1 MAC Adrs of corresponding WDS Link node
648 #define CFG_CNF_WDS_ADDR2				0xFC12		//[AP] Port 2 MAC Adrs of corresponding WDS Link node
649 #define CFG_CNF_WDS_ADDR3				0xFC13		//[AP] Port 3 MAC Adrs of corresponding WDS Link node
650 #define CFG_CNF_WDS_ADDR4				0xFC14		//[AP] Port 4 MAC Adrs of corresponding WDS Link node
651 #define CFG_CNF_WDS_ADDR5				0xFC15		//[AP] Port 5 MAC Adrs of corresponding WDS Link node
652 #define CFG_CNF_WDS_ADDR6				0xFC16		//[AP] Port 6 MAC Adrs of corresponding WDS Link node
653 #define CFG_CNF_PM_MCAST_BUF			0xFC17		//[AP] Switch for PM buffereing of Multicast Messages
654 #define CFG_CNF_MCAST_PM_BUF			CFG_CNF_PM_MCAST_BUF	//name does not match H-II spec
655 #define CFG_CNF_REJECT_ANY				0xFC18		//[AP] Switch for PM buffering of Multicast Messages
656 
657 #define CFG_CNF_ENCRYPTION				0xFC20		//select en/de-cryption of Tx/Rx messages
658 #define CFG_CNF_AUTHENTICATION			0xFC21		//[STA] selects Authentication algorithm
659 #define CFG_CNF_EXCL_UNENCRYPTED		0xFC22		//[AP] Switch for 'clear-text' rx message acceptance
660 #define CFG_CNF_MCAST_RATE				0xFC23		//Transmit Data rate for Multicast frames
661 #define CFG_CNF_INTRA_BSS_RELAY			0xFC24		//[AP] Switch for IntraBBS relay
662 #define CFG_CNF_MICRO_WAVE				0xFC25		//MicroWave (Robustness)
663 #define CFG_CNF_LOAD_BALANCING		 	0xFC26		//Load Balancing		 (Boolean, 0=OFF, 1=ON, default=1)
664 #define CFG_CNF_MEDIUM_DISTRIBUTION	 	0xFC27		//Medium Distribution	 (Boolean, 0=OFF, 1=ON, default=1)
665 #define CFG_CNF_RX_ALL_GROUP_ADDR		0xFC28		//[STA] Group Address Filter
666 #define CFG_CNF_COUNTRY_INFO			0xFC29		//Country Info
667 #if (HCF_TYPE) & HCF_TYPE_WARP
668 #define CFG_CNF_TX_POW_LVL				0xFC2A		//TxPower Level
669 #define CFG_CNF_CONNECTION_CNTL			0xFC30		//[STA] Connection Control
670 #define CFG_CNF_OWN_BEACON_INTERVAL		0xFC31		//[AP]
671 #define CFG_CNF_SHORT_RETRY_LIMIT		0xFC32		//
672 #define CFG_CNF_LONG_RETRY_LIMIT		0xFC33		//
673 #define CFG_CNF_TX_EVENT_MODE			0xFC34		//
674 #define CFG_CNF_WIFI_COMPATIBLE			0xFC35		//[STA] Wifi compatible
675 #endif // HCF_TYPE_WARP
676 #if (HCF_TYPE) & HCF_TYPE_BEAGLE_HII5
677 #define CFG_VOICE_RETRY_LIMIT			0xFC36		/* Voice frame retry limit. Range: 1-15, default: 4 */
678 #define CFG_VOICE_CONTENTION_WINDOW		0xFC37		/* Contention window for voice frames. */
679 #endif	// BEAGLE_HII5
680 
681 //	NETWORK PARAMETERS, DYNAMIC CONFIGURATION ENTITIES
682 #define CFG_DESIRED_SSID				0xFC02		//[STA] Service Set identification for connection and scan
683 
684 #define CFG_GROUP_ADDR					0xFC80		//[STA] Multicast MAC Addresses for Rx-message
685 #define CFG_CREATE_IBSS					0xFC81		//[STA] Switch for IBSS creation On/Off
686 #define CFG_RTS_THRH					0xFC83		//Frame length used for RTS/CTS handshake
687 #define CFG_TX_RATE_CNTL				0xFC84		//[STA] Data rate control for message transmission
688 #define CFG_PROMISCUOUS_MODE			0xFC85		//[STA] Switch for Promiscuous mode reception On/Off
689 #define CFG_WOL							0xFC86		//[STA] Switch for Wake-On-LAN mode
690 #define CFG_WOL_PATTERNS				0xFC87		//[STA] Patterns for Wake-On-LAN
691 #define CFG_SUPPORTED_RATE_SET_CNTL		0xFC88		//
692 #define CFG_BASIC_RATE_SET_CNTL			0xFC89		//
693 
694 #define CFG_SOFTWARE_ACK_MODE			0xFC90		//
695 #define CFG_RTS_THRH0					0xFC97		//[AP] Port 0 frame length for RTS/CTS handshake
696 #define CFG_RTS_THRH1					0xFC98		//[AP] Port 1 frame length for RTS/CTS handshake
697 #define CFG_RTS_THRH2					0xFC99		//[AP] Port 2 frame length for RTS/CTS handshake
698 #define CFG_RTS_THRH3					0xFC9A		//[AP] Port 3 frame length for RTS/CTS handshake
699 #define CFG_RTS_THRH4					0xFC9B		//[AP] Port 4 frame length for RTS/CTS handshake
700 #define CFG_RTS_THRH5					0xFC9C		//[AP] Port 5 frame length for RTS/CTS handshake
701 #define CFG_RTS_THRH6					0xFC9D		//[AP] Port 6 frame length for RTS/CTS handshake
702 
703 #define CFG_TX_RATE_CNTL0				0xFC9E		//[AP] Port 0 data rate control for transmission
704 #define CFG_TX_RATE_CNTL1				0xFC9F		//[AP] Port 1 data rate control for transmission
705 #define CFG_TX_RATE_CNTL2				0xFCA0		//[AP] Port 2 data rate control for transmission
706 #define CFG_TX_RATE_CNTL3				0xFCA1		//[AP] Port 3 data rate control for transmission
707 #define CFG_TX_RATE_CNTL4				0xFCA2		//[AP] Port 4 data rate control for transmission
708 #define CFG_TX_RATE_CNTL5				0xFCA3		//[AP] Port 5 data rate control for transmission
709 #define CFG_TX_RATE_CNTL6				0xFCA4		//[AP] Port 6 data rate control for transmission
710 
711 #define CFG_DEFAULT_KEYS				0xFCB0		//defines set of encryption keys
712 #define CFG_TX_KEY_ID					0xFCB1		//select key for encryption of Tx messages
713 #define CFG_SCAN_SSID					0xFCB2		//Scan SSID
714 #define CFG_ADD_TKIP_DEFAULT_KEY		0xFCB4		//set KeyID and TxKey indication
715 #define 	KEY_ID							0x0003		//KeyID mask for tkip_key_id_info field
716 #define 	TX_KEY							0x8000		//Default Tx Key flag of tkip_key_id_info field
717 #define CFG_SET_WPA_AUTH_KEY_MGMT_SUITE	0xFCB5		//Authenticated Key Management Suite
718 #define CFG_REMOVE_TKIP_DEFAULT_KEY		0xFCB6		//invalidate KeyID and TxKey indication
719 #define CFG_ADD_TKIP_MAPPED_KEY			0xFCB7		//set MAC address pairwise station
720 #define CFG_REMOVE_TKIP_MAPPED_KEY		0xFCB8		//invalidate MAC address pairwise station
721 #define CFG_SET_WPA_CAPABILITIES_INFO	0xFCB9		//WPA Capabilities
722 #define CFG_CACHED_PMK_ADDR				0xFCBA		//set MAC address of pre-authenticated AP
723 #define CFG_REMOVE_CACHED_PMK_ADDR		0xFCBB		//invalidate MAC address of pre-authenticated AP
724 #define CFG_FCBC	0xFCBC	//FW codes ahead of available documentation, so ???????
725 #define CFG_FCBD	0xFCBD	//FW codes ahead of available documentation, so ???????
726 #define CFG_FCBE	0xFCBE	//FW codes ahead of available documentation, so ???????
727 #define CFG_FCBF	0xFCBF	//FW codes ahead of available documentation, so ???????
728 
729 #define CFG_HANDOVER_ADDR				0xFCC0		//[AP] Station MAC Address re-associated with other AP
730 #define CFG_SCAN_CHANNEL				0xFCC2		//Channel set for host requested scan
731 //;?#define CFG_SCAN_CHANNEL_MASK			0xFCC2		// contains
732 #define CFG_DISASSOCIATE_ADDR			0xFCC4		//[AP] Station MAC Address to be disassociated
733 #define CFG_PROBE_DATA_RATE				0xFCC5		//WARP connection control
734 #define CFG_FRAME_BURST_LIMIT			0xFCC6		//
735 #define CFG_COEXISTENSE_BEHAVIOUR		0xFCC7		//[AP]
736 #define CFG_DEAUTHENTICATE_ADDR			0xFCC8		//MAC address of Station to be deauthenticated
737 
738 //	BEHAVIOR PARAMETERS
739 #define CFG_TICK_TIME					0xFCE0		//Auxiliary Timer tick interval
740 #define CFG_DDS_TICK_TIME				0xFCE1		//Disconnected DeepSleep Timer tick interval
741 //#define CFG_CNF_COUNTRY					0xFCFE	apparently not needed ;?
742 #define CFG_RID_CFG_MAX					0xFCFF		//highest value representing an Configuration RID
743 
744 
745 /*============================================================= INFORMATION RECORDS 	=====================*/
746 /*============================================================= mask 0xFDxx				=====================*/
747 //	NIC INFORMATION
748 #define CFG_RID_INF_MIN					0xFD00	//lowest value representing an Information RID
749 #define CFG_MAX_LOAD_TIME				0xFD00	//[INT] Maximum response time of the Download command.
750 #define CFG_DL_BUF						0xFD01	//[INT] Download buffer location and size.
751 #define CFG_PRI_IDENTITY				0xFD02	//[PRI] Primary Functions firmware identification.
752 #define CFG_PRI_SUP_RANGE				0xFD03	//[PRI] Primary Functions I/F Supplier compatibility range.
753 #define CFG_NIC_HSI_SUP_RANGE			0xFD09	//H/W - S/W I/F supplier range
754 #define CFG_NIC_SERIAL_NUMBER			0xFD0A	//[PRI] Network Interface Card serial number.
755 #define CFG_NIC_IDENTITY				0xFD0B	//[PRI] Network Interface Card identification.
756 #define CFG_NIC_MFI_SUP_RANGE			0xFD0C	//[PRI] Modem I/F Supplier compatibility range.
757 #define CFG_NIC_CFI_SUP_RANGE			0xFD0D	//[PRI] Controller I/F Supplier compatibility range.
758 #define CFG_CHANNEL_LIST				0xFD10	//Allowed communication channels.
759 #define CFG_NIC_TEMP_TYPE  				0xFD12	//Hardware temperature range code.
760 #define CFG_CIS							0xFD13	//PC Card Standard Card Information Structure
761 #define CFG_NIC_PROFILE					0xFD14	//Card Profile
762 #define CFG_FW_IDENTITY					0xFD20	//firmware identification.
763 #define CFG_FW_SUP_RANGE				0xFD21	//firmware Supplier compatibility range.
764 #define CFG_MFI_ACT_RANGES_STA			0xFD22	//[STA] Modem I/F Actor compatibility ranges.
765 #define CFG_CFI_ACT_RANGES_STA			0xFD23	//[STA] Controller I/F Actor compatibility ranges.
766 #define CFG_NIC_BUS_TYPE				0xFD24	//Card Bustype
767 #define 	CFG_NIC_BUS_TYPE_PCCARD_CF		0x0000	//16 bit PC Card or Compact Flash
768 #define 	CFG_NIC_BUS_TYPE_USB			0x0001	//USB
769 #define 	CFG_NIC_BUS_TYPE_CARDBUS		0x0002	//CardBus
770 #define 	CFG_NIC_BUS_TYPE_PCI			0x0003	//(mini)PCI
771 #define CFG_DOMAIN_CODE						0xFD25
772 
773 //	MAC INFORMATION
774 #define CFG_PORT_STAT					0xFD40	//Actual MAC Port connection control status
775 #define CFG_CUR_SSID					0xFD41	//[STA] Identification of the actually connected SS
776 #define CFG_CUR_BSSID					0xFD42	//[STA] Identification of the actually connected BSS
777 #define CFG_COMMS_QUALITY				0xFD43	//[STA] Quality of the Basic Service Set connection
778 #define CFG_CUR_TX_RATE					0xFD44	//[STA] Actual transmit data rate
779 #define CFG_CUR_BEACON_INTERVAL			0xFD45	//Beacon transmit interval time for BSS creation
780 #define CFG_CUR_SCALE_THRH				0xFD46	//Actual System Scale thresholds settings
781 #define CFG_PROTOCOL_RSP_TIME			0xFD47	//Max time to await a response to a request message
782 #define CFG_CUR_SHORT_RETRY_LIMIT		0xFD48	//Max number of transmit attempts for short frames
783 #define CFG_CUR_LONG_RETRY_LIMIT		0xFD49	//Max number of transmit attempts for long frames
784 #define CFG_MAX_TX_LIFETIME				0xFD4A	//Max transmit frame handling duration
785 #define CFG_MAX_RX_LIFETIME				0xFD4B	//Max received frame handling duration
786 #define CFG_CF_POLLABLE					0xFD4C	//[STA] Contention Free pollable capability indication
787 #define CFG_AUTHENTICATION_ALGORITHMS	0xFD4D	//Available Authentication Algorithms indication
788 #define CFG_PRIVACY_OPT_IMPLEMENTED		0xFD4F	//WEP Option availability indication
789 
790 #define CFG_CUR_REMOTE_RATES			0xFD50	//[STA] CurrentRemoteRates
791 #define CFG_CUR_USED_RATES				0xFD51	//[STA] CurrentUsedRates
792 #define CFG_CUR_SYSTEM_SCALE			0xFD52	//[STA] CurrentSystemScale
793 
794 #define CFG_CUR_TX_RATE1				0xFD80	//[AP] Actual Port 1 transmit data rate
795 #define CFG_CUR_TX_RATE2				0xFD81	//[AP] Actual Port 2 transmit data rate
796 #define CFG_CUR_TX_RATE3				0xFD82	//[AP] Actual Port 3 transmit data rate
797 #define CFG_CUR_TX_RATE4				0xFD83	//[AP] Actual Port 4 transmit data rate
798 #define CFG_CUR_TX_RATE5				0xFD84	//[AP] Actual Port 5 transmit data rate
799 #define CFG_CUR_TX_RATE6				0xFD85	//[AP] Actual Port 6 transmit data rate
800 #define CFG_NIC_MAC_ADDR				0xFD86	//Unique local node MAC Address
801 #define CFG_PCF_INFO					0xFD87	//[AP] Point Coordination Function capability info
802 //*RESERVED* #define CFG_HIGHEST_BASIC_RATE			0xFD88	//
803 #define CFG_CUR_COUNTRY_INFO			0xFD89	//
804 #define CFG_CUR_WPA_INFO_ELEMENT		0xFD8A	//
805 #define CFG_CUR_TKIP_IV_INFO			0xFD8B	//
806 #define CFG_CUR_ASSOC_REQ_INFO			0xFD8C	//
807 #define CFG_CUR_ASSOC_RESP_INFO			0xFD8D	//
808 #define CFG_CUR_LOAD					0xFD8E	//[AP] current load on AP's channel
809 
810 #define CFG_SECURITY_CAPABILITIES		0xFD90	//Combined capabilities information
811 
812 //	MODEM INFORMATION
813 #define CFG_PHY_TYPE					0xFDC0	//Physical layer type indication
814 #define CFG_CUR_CHANNEL					0xFDC1	//Actual frequency channel used for transmission
815 #define CFG_CUR_POWER_STATE				0xFDC2	//Actual power consumption status
816 #define CFG_CCA_MODE					0xFDC3	//Clear channel assessment mode indication
817 #define CFG_SUPPORTED_DATA_RATES		0xFDC6	//Data rates capability information
818 
819 #define CFG_RID_INF_MAX					0xFDFF	//highest value representing an Information RID
820 
821 //	ENGINEERING INFORMATION
822 #define CFG_RID_ENG_MIN					0xFFE0	//lowest value representing a Hermes engineering RID
823 
824 
825 /****************************** General define *************************************************************/
826 
827 
828 //IFB field related
829 //		IFB_CardStat
830 #define CARD_STAT_INCOMP_PRI			0x2000U	// no compatible HSI / primary F/W
831 #define CARD_STAT_INCOMP_FW				0x1000U	// no compatible station / tertiary F/W
832 #define CARD_STAT_DEFUNCT				0x0100U	// HCF is in Defunct mode
833 //		IFB_RxStat
834 #define RX_STAT_PRIO					0x00E0U	//Priority subfield
835 #define RX_STAT_ERR						0x000FU	//Error mask
836 #define 	RX_STAT_UNDECR				0x0002U	//Non-decryptable encrypted message
837 #define 	RX_STAT_FCS_ERR				0x0001U	//FCS error
838 
839 // SNAP header for E-II Encapsulation
840 #define ENC_NONE			            0xFF
841 #define ENC_1042    			        0x00
842 #define ENC_TUNNEL      	    		0xF8
843 /****************************** Xxxxxxxx *******************************************************************/
844 
845 
846 #define HCF_SUCCESS					0x00	// OK
847 #define HCF_ERR_TIME_OUT			0x04	// Expected Hermes event did not occur in expected time
848 #define HCF_ERR_NO_NIC				0x05	/* card not found (usually yanked away during hcfio_in_string
849 										  	 * Also: card is either absent or disabled while it should be neither */
850 #define HCF_ERR_LEN					0x08	/* buffer size insufficient
851 		 								  	 *		  -	IFB_ConfigTable too small
852 		 								  	 *		  -	hcf_get_info buffer has a size of 0 or 1 or less than needed
853 		 							  		 *			to accommodate all data
854 		 							  		 *		  -	hcf_put_info: CFG_DLNV_DATA exceeds intermediate
855 											 *		  buffer size */
856 #define HCF_ERR_INCOMP_PRI			0x09	// primary functions are not compatible
857 #define HCF_ERR_INCOMP_FW			0x0A	// station functions are compatible
858 #define HCF_ERR_MIC					0x0D	// MIC check fails
859 #define HCF_ERR_SLEEP				0x0E	// NIC in sleep mode
860 #define HCF_ERR_MAX					0x3F	/* end of HCF range
861 											   *** ** *** ****** *** *************** */
862 #define HCF_ERR_DEFUNCT				0x80	// BIT, reflecting that the HCF is in defunct mode (bits 0x7F reflect cause)
863 #define HCF_ERR_DEFUNCT_AUX			0x82	// Timeout on acknowledgement on en/disabling AUX registers
864 #define HCF_ERR_DEFUNCT_TIMER		0x83	// Timeout on timer calibration during initialization process
865 #define HCF_ERR_DEFUNCT_TIME_OUT	0x84	// Timeout on Busy bit drop during BAP setup
866 #define HCF_ERR_DEFUNCT_CMD_SEQ		0x86	// Hermes and HCF are out of sync in issuing/processing commands
867 
868 #define HCF_INT_PENDING				0x01	// return status of hcf_act( HCF_ACT_INT_OFF )
869 
870 #define HCF_PORT_0 					0x0000	// Station supports only single MAC Port
871 #define HCF_PORT_1 					0x0100	// HCF_PORT_1 through HCF_PORT_6 are only supported by AP F/W
872 #define HCF_PORT_2 					0x0200
873 #define HCF_PORT_3 					0x0300
874 #define HCF_PORT_4 					0x0400
875 #define HCF_PORT_5 					0x0500
876 #define HCF_PORT_6 					0x0600
877 
878 #define HCF_CNTL_ENABLE				0x01
879 #define HCF_CNTL_DISABLE			0x02
880 #define HCF_CNTL_CONNECT			0x03
881 #define HCF_CNTL_DISCONNECT			0x05
882 #define HCF_CNTL_CONTINUE			0x07
883 
884 #define USE_DMA 					0x0001
885 #define USE_16BIT 					0x0002
886 #define DMA_ENABLED					0x8000	//weak name, it really means: F/W enabled and DMA selected
887 
888 //#define HCF_DMA_FD_CNT	 		(2*29) 						//size in bytes of one Tx/RxFS minus DA/SA
889 //;?the MSF ( H2PCI.C uses the next 2 mnemonics )
890 #define HCF_DMA_RX_BUF1_SIZE		(HFS_ADDR_DEST + 8)			//extra bytes for LEN/SNAP if decapsulation
891 #define HCF_DMA_TX_BUF1_SIZE		(HFS_ADDR_DEST + 2*6 + 8)	//extra bytes for DA/SA/LEN/SNAP if encapsulation
892 
893 //HFS_TX_CNTL
894 /* Note that the HCF_.... System Constants influence the HFS_.... values below
895  *                              H-I     H-I  |  H-II    H-II    H-II.5
896  *                                      WPA  |          WPA
897  * HFS_TX_CNTL_TX_OK            0002    0002 |  0002    0002     N/A    <<<<<<<<deprecated
898  * HFS_TX_CNTL_TX_EX            0004    0004 |  0004    0004     N/A
899  * HFS_TX_CNTL_MIC               N/A    0010 |   N/A    0010     N/A
900  * HFS_TX_CNTL_TID               N/A     N/A |   N/A     N/A    000F
901  * HFS_TX_CNTL_SERVICE_CLASS     N/A     N/A |   N/A     N/A    00C0
902  * HFS_TX_CNTL_PORT             0700    0700 |  0700    0700    0700
903  * HFS_TX_CNTL_MIC_KEY_ID       1800    1800 |  0000    1800     N/A
904  * HFS_TX_CNTL_CKIP             0000    0000 |  0000    2000    2000
905  * HFS_TX_CNTL_TX_DELAY         4000    4000 |  4000    4000     N/A
906  * HFS_TX_CNTL_ACTION            N/A     N/A |   N/A     N/A    4000
907  *                              ====    ==== |  ====    ====    ====
908  *                              5F06    5F16 |  4706    7F06    67CF
909  *
910  * HCF_TX_CNTL_MASK specifies the bits allowed on the Host I/F
911  * note: bit 0x4000 has different meaning for H-II and H-II.5
912  * note: [] indicate bits which are possibly added by the HCF to TxControl at the Host I/F
913  * note: () indicate bits which are supposedly never ever used in a WCI environment
914  * note: ? denote bits which seem not to be documented in the documents I have available
915  */
916 //H-I:     HCF_TX_CNTL_MASK	0x47FE	//TX_DELAY, MACPort, Priority, (StrucType), TxEx, TxOK
917 //H-I WPA: HCF_TX_CNTL_MASK	0x5FE6	//TX_DELAY, MICKey, MACPort, Priority, (StrucType), TxEx, TxOK
918 #if (HCF_TYPE) & HCF_TYPE_WARP
919 #define  HCF_TX_CNTL_MASK	0x27E7	//no TX_DELAY?, CCX, MACPort, Priority, (StrucType), TxEx, TxOK, Spectralink
920 //#elif (HCF_TYPE) & HCF_TYPE_WPA
921 //#define  HCF_TX_CNTL_MASK	0x7F06	//TX_DELAY, CKIP?, MICKeyID, MACPort, [MIC],TxEx, TxOK (TAR419D7)
922 #else
923 #define  HCF_TX_CNTL_MASK	0x67E7	//TX_DELAY?, CCX, MACPort, Priority, (StrucType), TxEx, TxOK, Spectralink
924 #endif // HCF_TYPE_WARP
925 
926 #define HFS_TX_CNTL_TX_EX			0x0004U
927 
928 #if (HCF_TYPE) & HCF_TYPE_WPA
929 #define HFS_TX_CNTL_MIC				0x0010U	//802.3 format with TKIP		;?changes to 0x0008 for H-II
930 #define HFS_TX_CNTL_MIC_KEY_ID		0x1800U	//MIC Key ID subfield
931 #endif // HCF_TYPE_WPA
932 
933 #define HFS_TX_CNTL_PORT			0x0700U	//Port subfield of TxControl field of Transmit Frame Structure
934 
935 #if (HCF_TYPE) & HCF_TYPE_CCX
936 #define HFS_TX_CNTL_CKIP			0x2000U	//CKIP encrypted flag
937 #endif // HCF_TYPE_CCX
938 
939 #if (HCF_TYPE) & HCF_TYPE_TX_DELAY
940 #define HFS_TX_CNTL_TX_DELAY		0x4000U	//decouple "put data" and send
941 #endif // HCF_TYPE_TX_DELAY
942 #define HFS_TX_CNTL_TX_CONT			0x4000u	//engineering: continuous transmit
943 
944 /*============================================================= HCF Defined RECORDS	=========================*/
945 #define CFG_PROD_DATA					0x0800 		//Plug Data (Engineering Test purposes only)
946 #define CFG_DL_EEPROM					0x0806		//Up/Download I2PROM for USB
947 #define		CFG_PDA							0x0002		//Download PDA
948 #define		CFG_MEM_I2PROM					0x0004		//Up/Download EEPROM
949 
950 #define		CFG_MEM_READ					0x0000
951 #define		CFG_MEM_WRITE					0x0001
952 
953 #define CFG_NULL						0x0820		//Empty Mail Box Info Block
954 #define CFG_MB_INFO						0x0820		//Mail Box Info Block
955 #define CFG_WMP							0x0822		//WaveLAN Management Protocol
956 
957 #if defined MSF_COMPONENT_ID
958 #define CFG_DRV_INFO					0x0825		//Driver Information structure (see CFG_DRV_INFO_STRCT for details)
959 #define CFG_DRV_IDENTITY				0x0826		//driver identity (see CFG_DRV_IDENTITY_STRCT for details)
960 #define CFG_DRV_SUP_RANGE				0x0827      //Supplier range of driver - utility I/F
961 #define CFG_DRV_ACT_RANGES_PRI			0x0828      //(Acceptable) Actor range for Primary Firmware - driver I/F
962 #define CFG_DRV_ACT_RANGES_STA			0x0829      //(Acceptable) Actor range for Station Firmware - driver I/F
963 #define CFG_DRV_ACT_RANGES_HSI 			0x082A      //(Acceptable) Actor range for H/W - driver I/F
964 #define CFG_DRV_ACT_RANGES_APF			0x082B		//(Acceptable) Actor range for AP Firmware - driver I/F
965 #define CFG_HCF_OPT						0x082C		//HCF (Compile time) options
966 #endif // MSF_COMPONENT_ID
967 
968 #define CFG_REG_MB						0x0830		//Register Mail Box
969 #define CFG_MB_ASSERT					0x0831		//Assert information
970 #define CFG_REG_ASSERT_RTNP				0x0832		//(de-)register MSF Assert Callback routine
971 #if (HCF_EXT) & HCF_EXT_INFO_LOG
972 #define CFG_REG_INFO_LOG				0x0839		//(de-)register Info frames to Log
973 #endif // HCF_INFO_LOG
974 #define CFG_CNTL_OPT					0x083A		//Control options
975 
976 #define CFG_PROG						0x0857		//Program NIC memory
977 #define 	CFG_PROG_STOP					0x0000
978 #define 	CFG_PROG_VOLATILE				0x0100
979 //#define 	CFG_PROG_FLASH					0x0300		//restore if H-II non-volatile is introduced
980 //#define 	CFG_PROG_SEEPROM				0x1300		//restore if H-II non-volatile is introduced
981 #define 	CFG_PROG_SEEPROM_READBACK 		0x0400
982 
983 #define CFG_FW_PRINTF                       0x0858      //Related to firmware debug printf functionality
984 #define CFG_FW_PRINTF_BUFFER_LOCATION       0x0859      //Also related to firmware debug printf functionality
985 
986 #define CFG_CMD_NIC						0x0860		//Hermes Engineering command
987 #define CFG_CMD_HCF						0x0863		//HCF Engineering command
988 #define 	CFG_CMD_HCF_REG_ACCESS			0x0000	//Direct register access
989 #define 	CFG_CMD_HCF_RX_MON				0x0001	//Rx-monitor
990 
991 
992 /*============================================================= MSF Defined RECORDS	========================*/
993 #define CFG_ENCRYPT_STRING				0x0900		//transfer encryption info from CPL to MSF
994 #define CFG_AP_MODE						0x0901		//control mode of STAP driver from CPL
995 #define CFG_DRIVER_ENABLE				0x0902		//extend&export En-/Disable facility to Utility
996 #define CFG_PCI_COMMAND					0x0903		//PCI adapter (Ooievaar) structure
997 #define CFG_WOLAS_ENABLE				0x0904		//extend&export En-/Disable WOLAS facility to Utility
998 #define CFG_COUNTRY_STRING				0x0905		//transfer CountryInfo info from CPL to MSF
999 #define CFG_FW_DUMP						0x0906		//transfer nic memory to utility
1000 #define CFG_POWER_MODE					0x0907		//controls the PM mode of the card
1001 #define CFG_CONNECTION_MODE				0x0908		//controls the mode of the FW (ESS/AP/IBSS/ADHOC)
1002 #define CFG_IFB							0x0909		//byte wise copy of IFB
1003 #define CFG_MSF_TALLIES					0x090A		//MSF tallies (int's, rx and tx)
1004 #define CFG_CURRENT_LINK_STATUS			0x090B		//Latest link status got through 0xF200 LinkEvent
1005 
1006 /*============================================================ INFORMATION FRAMES =========================*/
1007 #define CFG_INFO_FRAME_MIN				0xF000		//lowest value representing an Information Frame
1008 
1009 #define CFG_TALLIES						0xF100		//Communications Tallies
1010 #define CFG_SCAN						0xF101		//Scan results
1011 #define CFG_PRS_SCAN					0xF102		//Probe Response Scan results
1012 
1013 #define CFG_LINK_STAT 					0xF200		//Link Status
1014 	/* 1 through 5 are F/W defined values, produced by CFG_LINK_STAT frame
1015 	 * 1 through 5 are shared by CFG_LINK_STAT, IFB_LinkStat and IFB_DSLinkStat
1016 	 * 1 plays a double role as CFG_LINK_STAT_CONNECTED and as bit reflecting:
1017 	 *	 - connected: ON
1018 	 *	 - disconnected: OFF
1019 	 */
1020 #define 	CFG_LINK_STAT_CONNECTED			0x0001
1021 #define 	CFG_LINK_STAT_DISCONNECTED		0x0002
1022 #define 	CFG_LINK_STAT_AP_CHANGE			0x0003
1023 #define 	CFG_LINK_STAT_AP_OOR			0x0004
1024 #define 	CFG_LINK_STAT_AP_IR				0x0005
1025 #define 	CFG_LINK_STAT_FW				0x000F	//mask to isolate F/W defined bits
1026 //#define 	CFG_LINK_STAT_TIMER				0x0FF0	//mask to isolate OOR timer
1027 //#define 	CFG_LINK_STAT_DS_OOR			0x2000	//2000 and up are IFB_LinkStat specific
1028 //#define 	CFG_LINK_STAT_DS_IR				0x4000
1029 #define 	CFG_LINK_STAT_CHANGE			0x8000
1030 #define CFG_ASSOC_STAT					0xF201		//Association Status
1031 #define CFG_SECURITY_STAT				0xF202		//Security Status
1032 #define CFG_UPDATED_INFO_RECORD			0xF204		//Updated Info Record
1033 
1034 /*============================================================ CONFIGURATION RECORDS ======================*/
1035 /***********************************************************************************************************/
1036 
1037 /****************************** S T R U C T U R E   D E F I N I T I O N S **********************************/
1038 
1039 //Quick&Dirty to get download for DOS ODI Hermes-II running typedef LTV_STRCT FAR *	LTVP;
1040 typedef LTV_STRCT FAR *	LTVP;   // i.s.o #define LTVP LTV_STRCT FAR *
1041 
1042 #if defined WVLAN_42 || defined WVLAN_43 //;?keepup with legacy a little while longer (4aug2003)
1043 typedef struct DUI_STRCT {			/* "legacy", still used by WVLAN42/43, NDIS drivers use WLAPI			*/
1044 	void  FAR	*ifbp;				/* Pointer to IFB
1045 									 *	returned from MSF to USF by uil_connect
1046 				 					 *	passed from USF to MSF as a "magic cookie" by all other UIL function calls
1047 				 					 */
1048 	hcf_16		stat;				// status returned from MSF to USF
1049 	hcf_16		fun;				// command code from USF to MSF
1050 	LTV_STRCT	ltv;				/* LTV structure
1051 			 						 *** during uil_put_info:
1052 						 			 *	  the L, T and V-fields carry information from USF to MSF
1053 									 *** during uil_get_info:
1054 									 *	  the L and T fields carry information from USF to MSF
1055 									 *	  the L and V-fields carry information from MSF to USF
1056 			 						 */
1057 } DUI_STRCT;
1058 typedef DUI_STRCT FAR *	DUIP;
1059 #endif //defined WVLAN_42 || defined WVLAN_43 //;?keepup with legacy a liitle while longer (4aug2003)
1060 
1061 
1062 typedef struct CFG_CMD_NIC_STRCT {	// CFG_CMD_NIC (0x0860)		Hermes Engineering command
1063 	hcf_16	len;					//default length of RID
1064 	hcf_16	typ;					//RID identification as defined by Hermes
1065 	hcf_16	cmd;					//Command code (0x003F) and control bits (0xFFC0)
1066 	hcf_16	parm0;					//parameters for Hermes Param0 register
1067 	hcf_16	parm1;					//parameters for Hermes Param1 register
1068 	hcf_16	parm2;					//parameters for Hermes Param2 register
1069 	hcf_16	stat;					//result code from Hermes Status register
1070 	hcf_16	resp0;					//responses from Hermes Resp0 register
1071 	hcf_16	resp1;					//responses from Hermes Resp1 register
1072 	hcf_16	resp2;					//responses from Hermes Resp2 register
1073 	hcf_16	hcf_stat;				//result code from cmd_exe routine
1074 	hcf_16	ifb_err_cmd;			//IFB_ErrCmd
1075 	hcf_16	ifb_err_qualifier;		//IFB_ErrQualifier
1076 } CFG_CMD_NIC_STRCT;
1077 
1078 
1079 typedef struct CFG_DRV_INFO_STRCT {		//CFG_DRV_INFO (0x0825) driver information
1080 	hcf_16	len;					//default length of RID
1081 	hcf_16	typ;					//RID identification as defined by Hermes
1082 	hcf_8	driver_name[8];			//Driver name, 8 bytes, right zero padded
1083 	hcf_16	driver_version;			//BCD 2 digit major and 2 digit minor driver version
1084 	hcf_16	HCF_version;   			//BCD 2 digit major and 2 digit minor HCF version
1085 	hcf_16	driver_stat;			//
1086 	hcf_16	IO_address;				//base IO address used by NIC
1087 	hcf_16	IO_range;				//range of IO addresses used by NIC
1088 	hcf_16	IRQ_number;				//Interrupt used by NIC
1089 	hcf_16	card_stat;				/*NIC status
1090 									@*	0x8000	Card present
1091 									@*	0x4000	Card Enabled
1092 									@*	0x2000	Driver incompatible with NIC Primary Functions
1093 									@*	0x1000	Driver incompatible with NIC Station Functions				*/
1094 	hcf_16	frame_type;				/*Frame type
1095 									@*	0x000	802.3
1096 									@*	0x008	802.11														*/
1097 	hcf_32	drv_info;				/*driver specific info
1098 									 * CE: virtual I/O base													*/
1099 }CFG_DRV_INFO_STRCT;
1100 
1101 #define COMP_ID_FW_PRI					21		//Primary Functions Firmware
1102 #define COMP_ID_FW_INTERMEDIATE			22		//Intermediate Functions Firmware
1103 #define COMP_ID_FW_STA					31		//Station Functions Firmware
1104 #define COMP_ID_FW_AP					32		//AP Functions Firmware
1105 #define COMP_ID_FW_AP_FAKE			   331		//AP Functions Firmware
1106 
1107 #define COMP_ID_MINIPORT_NDIS_31		41		//Windows 9x/NT Miniport NDIS 3.1
1108 #define COMP_ID_PACKET					42		//Packet
1109 #define COMP_ID_ODI_16					43		//DOS ODI
1110 #define COMP_ID_ODI_32					44		//32-bits ODI
1111 #define COMP_ID_MAC_OS					45		//Macintosh OS
1112 #define COMP_ID_WIN_CE					46		//Windows CE Miniport
1113 //#define COMP_ID_LINUX_PD				47		//Linux, HCF-light based, MSF source code in Public Domain
1114 #define COMP_ID_MINIPORT_NDIS_50		48		//Windows 9x/NT Miniport NDIS 5.0
1115 #define COMP_ID_LINUX					49		/*Linux, GPL'ed HCF based, full source code in Public Domain
1116 										  		 *thanks to Andreas Neuhaus								*/
1117 #define COMP_ID_QNX						50		//QNX
1118 #define COMP_ID_MINIPORT_NDIS_50_USB	51		//Windows 9x/NT Miniport NDIS 4.0
1119 #define COMP_ID_MINIPORT_NDIS_40		52		//Windows 9x/NT Miniport NDIS 4.0
1120 #define COMP_ID_VX_WORKS_ENDSTA			53		// VxWorks END Station driver
1121 #define COMP_ID_VX_WORKS_ENDAP			54		// VxWorks END Access Point driver
1122 //;?#define COMP_ID_MAC_OS_????			55		//;?check with HM
1123 #define COMP_ID_VX_WORKS_END			56		// VxWorks END Station/Access Point driver
1124 //										57		//NucleusOS@ARM Driver.
1125 #define COMP_ID_WSU						63		/* WaveLAN Station Firmware Update utility
1126 												 *	variant 1: Windows
1127 												 *	variant 2: DOS
1128 												 */
1129 #define COMP_ID_AP1						81		//WaveLAN/IEEE AP
1130 #define COMP_ID_EC						83		//WaveLAN/IEEE Ethernet Converter
1131 #define COMP_ID_UBL						87		//USB Boot Loader
1132 
1133 #define COMP_ROLE_SUPL					0x00	//supplier
1134 #define COMP_ROLE_ACT					0x01	//actor
1135 
1136 												//Supplier			  - actor
1137 #define COMP_ID_MFI						0x01	//Modem		 		  - Firmware	I/F
1138 #define COMP_ID_CFI						0x02	//Controller		  - Firmware	I/F
1139 #define COMP_ID_PRI						0x03	//Primary Firmware	  - Driver		I/F
1140 #define COMP_ID_STA						0x04	//Station Firmware	  - Driver		I/F
1141 #define COMP_ID_DUI						0x05	//Driver			  - Utility		I/F
1142 #define COMP_ID_HSI						0x06	//H/W                 - Driver		I/F
1143 #define COMP_ID_DAI						0x07	//API                 - Driver		I/F
1144 #define COMP_ID_APF						0x08	//H/W                 - Driver		I/F
1145 #define COMP_ID_INT						0x09	//Intermediate FW     - Driver		I/F
1146 
1147 #ifdef HCF_LEGACY
1148 #define HCF_ACT_ACS_SCAN				HCF_ACT_PRS_SCAN
1149 #define UIL_ACT_ACS_SCAN 				UIL_ACT_PRS_SCAN
1150 #define MDD_ACT_ACS_SCAN	 			MDD_ACT_PRS_SCAN
1151 #define CFG_ACS_SCAN					CFG_PRS_SCAN
1152 #endif // HCF_LEGACY
1153 
1154 #endif // MDD_H
1155 
1156