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