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 ) \ 119typedef struct { \ 120 hcf_16 len; \ 121 hcf_16 typ; \ 122 type1 par1; \ 123} name##_STRCT; 124 125#define XX2( name, type1, par1, type2, par2 ) \ 126typedef 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 ) \ 134typedef 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 ) \ 143typedef 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 ) \ 153typedef 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 ) \ 160typedef 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 ) \ 168typedef 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 ) \ 177typedef 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 ) \ 187typedef 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 ) \ 198typedef 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 ) \ 210typedef 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 ) \ 224typedef 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) 243typedef 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 249typedef 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 254typedef 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 265typedef 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 271typedef 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 278XX1( RID_LOG, unsigned short FAR*, bufp ) 279typedef RID_LOG_STRCT FAR *RID_LOGP; 280XX1( 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 */ 284XX2( CFG_REG_MB, hcf_16* , mb_addr, hcf_16, mb_size ) 285 286typedef 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 */ 295XX3( CFG_MB_INFO, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] ) 296XX3( CFG_MB_INFO_RANGE1, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 1] ) 297XX3( CFG_MB_INFO_RANGE2, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 2] ) 298XX3( CFG_MB_INFO_RANGE3, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[ 3] ) 299XX3( CFG_MB_INFO_RANGE20, hcf_16, base_typ, hcf_16, frag_cnt, CFG_MB_INFO_FRAG, frag_buf[20] ) 300 301XX3( 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 ) 303typedef void (MSF_ASSERT_RTN)( unsigned int , hcf_16, hcf_32 ); 304typedef 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) */ 308XX2( 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 314typedef 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 337typedef 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. 345typedef 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 354XX3( CFG_RANGES, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/ 355XX3( CFG_RANGE1, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 1] ) /*Actor/Supplier range (1 variant)*/ 356XX3( CFG_RANGE2, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 2] ) /*Actor range ( 2 variants) */ 357XX3( CFG_RANGE3, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 3] ) /*Actor range ( 3 variants) */ 358XX3( CFG_RANGE4, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 4] ) /*Actor range ( 4 variants) */ 359XX3( CFG_RANGE5, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 5] ) /*Actor range ( 5 variants) */ 360XX3( CFG_RANGE6, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 6] ) /*Actor range ( 6 variants) */ 361XX3( CFG_RANGE7, hcf_16, role, hcf_16, id, CFG_RANGE_SPEC_STRCT, var_rec[ 7] ) /*Actor range ( 7 variants) */ 362XX3( 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 */ 408XX4( 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 */ 411XX4( 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 */ 438XX1( 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) 459X2( 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 */ 544XX1( 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; 1040typedef 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) 1043typedef 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; 1058typedef DUI_STRCT FAR * DUIP; 1059#endif //defined WVLAN_42 || defined WVLAN_43 //;?keepup with legacy a liitle while longer (4aug2003) 1060 1061 1062typedef 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 1079typedef 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