]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blame - drivers/staging/rt3070/rtmp_def.h
Staging: rt3070: remove dead SNMP_SUPPORT code
[mirror_ubuntu-bionic-kernel.git] / drivers / staging / rt3070 / rtmp_def.h
CommitLineData
e642f099
GKH
1/*
2 *************************************************************************
3 * Ralink Tech Inc.
4 * 5F., No.36, Taiyuan St., Jhubei City,
5 * Hsinchu County 302,
6 * Taiwan, R.O.C.
7 *
8 * (c) Copyright 2002-2007, Ralink Technology, Inc.
9 *
10 * This program is free software; you can redistribute it and/or modify *
11 * it under the terms of the GNU General Public License as published by *
12 * the Free Software Foundation; either version 2 of the License, or *
13 * (at your option) any later version. *
14 * *
15 * This program is distributed in the hope that it will be useful, *
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
18 * GNU General Public License for more details. *
19 * *
20 * You should have received a copy of the GNU General Public License *
21 * along with this program; if not, write to the *
22 * Free Software Foundation, Inc., *
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
24 * *
25 *************************************************************************
26
27 Module Name:
28 rtmp_def.h
29
30 Abstract:
31 Miniport related definition header
32
33 Revision History:
34 Who When What
35 -------- ---------- ----------------------------------------------
36 Paul Lin 08-01-2002 created
37 John Chang 08-05-2003 add definition for 11g & other drafts
38*/
39#ifndef __RTMP_DEF_H__
40#define __RTMP_DEF_H__
41
42#include "oid.h"
43
e642f099
GKH
44//
45// Debug information verbosity: lower values indicate higher urgency
46//
47#define RT_DEBUG_OFF 0
48#define RT_DEBUG_ERROR 1
49#define RT_DEBUG_WARN 2
50#define RT_DEBUG_TRACE 3
51#define RT_DEBUG_INFO 4
52#define RT_DEBUG_LOUD 5
53
54#define NIC_TAG ((ULONG)'0682')
55#define NIC_DBG_STRING ("**RT28xx**")
56
e642f099
GKH
57//#define PACKED
58
59#define RALINK_2883_VERSION ((UINT32)0x28830300)
60#define RALINK_2880E_VERSION ((UINT32)0x28720200)
61#define RALINK_3070_VERSION ((UINT32)0x30700200)
62
63//
64// NDIS version in use by the NIC driver.
65// The high byte is the major version. The low byte is the minor version.
66//
67#ifdef NDIS51_MINIPORT
68#define NIC_DRIVER_VERSION 0x0501
69#else
70#define NIC_DRIVER_VERSION 0x0500
71#endif
72
73//
74// NDIS media type, current is ethernet, change if native wireless supported
75//
76#define NIC_MEDIA_TYPE NdisMedium802_3
77#define NIC_PCI_HDR_LENGTH 0xe2
78#define NIC_MAX_PACKET_SIZE 2304
79#define NIC_HEADER_SIZE 14
80#define MAX_MAP_REGISTERS_NEEDED 32
81#define MIN_MAP_REGISTERS_NEEDED 2 //Todo: should consider fragment issue.
82
83//
84// interface type, we use PCI
85//
86#define NIC_INTERFACE_TYPE NdisInterfacePci
87#define NIC_INTERRUPT_MODE NdisInterruptLevelSensitive
88
89//
90// buffer size passed in NdisMQueryAdapterResources
91// We should only need three adapter resources (IO, interrupt and memory),
92// Some devices get extra resources, so have room for 10 resources
93// UF_SIZE (sizeof(NDIS_RESOURCE_LIST) + (10*sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR)))
94
95
96#define NIC_RESOURCE_B//
97// IO space length
98//
99#define NIC_MAP_IOSPACE_LENGTH sizeof(CSR_STRUC)
100
101#define MAX_RX_PKT_LEN 1520
102
103//
104// Entry number for each DMA descriptor ring
105//
106
107
108#ifdef RT2870
109#define TX_RING_SIZE 8 // 1
110#define PRIO_RING_SIZE 8
111#define MGMT_RING_SIZE 32 // PRIO_RING_SIZE
112#define RX_RING_SIZE 8
113#define MAX_TX_PROCESS 4
114#define LOCAL_TXBUF_SIZE 2048
115#endif // RT2870 //
116
e642f099
GKH
117#define MAX_RX_PROCESS 128 //64 //32
118#define NUM_OF_LOCAL_TXBUF 2
119#define TXD_SIZE 16
120#define TXWI_SIZE 16
121#define RXD_SIZE 16
122#define RXWI_SIZE 16
123// TXINFO_SIZE + TXWI_SIZE + 802.11 Header Size + AMSDU sub frame header
124#define TX_DMA_1ST_BUFFER_SIZE 96 // only the 1st physical buffer is pre-allocated
125#define MGMT_DMA_BUFFER_SIZE 1536 //2048
126#define RX_BUFFER_AGGRESIZE 3840 //3904 //3968 //4096 //2048 //4096
127#define RX_BUFFER_NORMSIZE 3840 //3904 //3968 //4096 //2048 //4096
128#define TX_BUFFER_NORMSIZE RX_BUFFER_NORMSIZE
129#define MAX_FRAME_SIZE 2346 // Maximum 802.11 frame size
130#define MAX_AGGREGATION_SIZE 3840 //3904 //3968 //4096
131#define MAX_NUM_OF_TUPLE_CACHE 2
132#define MAX_MCAST_LIST_SIZE 32
133#define MAX_LEN_OF_VENDOR_DESC 64
134//#define MAX_SIZE_OF_MCAST_PSQ (NUM_OF_LOCAL_TXBUF >> 2) // AP won't spend more than 1/4 of total buffers on M/BCAST PSQ
135#define MAX_SIZE_OF_MCAST_PSQ 32
136
137#define MAX_RX_PROCESS_CNT (RX_RING_SIZE)
138
139
140#define MAX_PACKETS_IN_QUEUE (512) //(512) // to pass WMM A5-WPAPSK
141#define MAX_PACKETS_IN_MCAST_PS_QUEUE 32
142#define MAX_PACKETS_IN_PS_QUEUE 128 //32
143#define WMM_NUM_OF_AC 4 /* AC0, AC1, AC2, and AC3 */
144
145
146//2008/09/11:KH add to support efuse<--
147#define MAX_EEPROM_BIN_FILE_SIZE 1024
148//2008/09/11:KH add to support efuse-->
149
150// RxFilter
151#define STANORMAL 0x17f97
152#define APNORMAL 0x15f97
153//
154// RTMP_ADAPTER flags
155//
156#define fRTMP_ADAPTER_MAP_REGISTER 0x00000001
157#define fRTMP_ADAPTER_INTERRUPT_IN_USE 0x00000002
158#define fRTMP_ADAPTER_HARDWARE_ERROR 0x00000004
159#define fRTMP_ADAPTER_SCATTER_GATHER 0x00000008
160#define fRTMP_ADAPTER_SEND_PACKET_ERROR 0x00000010
161#define fRTMP_ADAPTER_MLME_RESET_IN_PROGRESS 0x00000020
162#define fRTMP_ADAPTER_HALT_IN_PROGRESS 0x00000040
163#define fRTMP_ADAPTER_RESET_IN_PROGRESS 0x00000080
164#define fRTMP_ADAPTER_NIC_NOT_EXIST 0x00000100
165#define fRTMP_ADAPTER_TX_RING_ALLOCATED 0x00000200
166#define fRTMP_ADAPTER_REMOVE_IN_PROGRESS 0x00000400
167#define fRTMP_ADAPTER_MIMORATE_INUSED 0x00000800
168#define fRTMP_ADAPTER_RX_RING_ALLOCATED 0x00001000
169#define fRTMP_ADAPTER_INTERRUPT_ACTIVE 0x00002000
170#define fRTMP_ADAPTER_BSS_SCAN_IN_PROGRESS 0x00004000
171#define fRTMP_ADAPTER_REASSOC_IN_PROGRESS 0x00008000
172#define fRTMP_ADAPTER_MEDIA_STATE_PENDING 0x00010000
173#define fRTMP_ADAPTER_RADIO_OFF 0x00020000
174#define fRTMP_ADAPTER_BULKOUT_RESET 0x00040000
175#define fRTMP_ADAPTER_BULKIN_RESET 0x00080000
176#define fRTMP_ADAPTER_RDG_ACTIVE 0x00100000
177#define fRTMP_ADAPTER_DYNAMIC_BE_TXOP_ACTIVE 0x00200000
178#define fRTMP_ADAPTER_SCAN_2040 0x04000000
179#define fRTMP_ADAPTER_RADIO_MEASUREMENT 0x08000000
180
181#define fRTMP_ADAPTER_START_UP 0x10000000 //Devive already initialized and enabled Tx/Rx.
182#define fRTMP_ADAPTER_MEDIA_STATE_CHANGE 0x20000000
183#define fRTMP_ADAPTER_IDLE_RADIO_OFF 0x40000000
184
185// Lock bit for accessing different ring buffers
186//#define fRTMP_ADAPTER_TX_RING_BUSY 0x80000000
187//#define fRTMP_ADAPTER_MGMT_RING_BUSY 0x40000000
188//#define fRTMP_ADAPTER_ATIM_RING_BUSY 0x20000000
189//#define fRTMP_ADAPTER_RX_RING_BUSY 0x10000000
190
191// Lock bit for accessing different queue
192//#define fRTMP_ADAPTER_TX_QUEUE_BUSY 0x08000000
193//#define fRTMP_ADAPTER_MGMT_QUEUE_BUSY 0x04000000
194
195//
196// STA operation status flags
197//
198#define fOP_STATUS_INFRA_ON 0x00000001
199#define fOP_STATUS_ADHOC_ON 0x00000002
200#define fOP_STATUS_BG_PROTECTION_INUSED 0x00000004
201#define fOP_STATUS_SHORT_SLOT_INUSED 0x00000008
202#define fOP_STATUS_SHORT_PREAMBLE_INUSED 0x00000010
203#define fOP_STATUS_RECEIVE_DTIM 0x00000020
204//#define fOP_STATUS_TX_RATE_SWITCH_ENABLED 0x00000040
205#define fOP_STATUS_MEDIA_STATE_CONNECTED 0x00000080
206#define fOP_STATUS_WMM_INUSED 0x00000100
207#define fOP_STATUS_AGGREGATION_INUSED 0x00000200
208#define fOP_STATUS_DOZE 0x00000400 // debug purpose
209#define fOP_STATUS_PIGGYBACK_INUSED 0x00000800 // piggy-back, and aggregation
210#define fOP_STATUS_APSD_INUSED 0x00001000
211#define fOP_STATUS_TX_AMSDU_INUSED 0x00002000
212#define fOP_STATUS_MAX_RETRY_ENABLED 0x00004000
213#define fOP_STATUS_WAKEUP_NOW 0x00008000
214#define fOP_STATUS_ADVANCE_POWER_SAVE_PCIE_DEVICE 0x00020000
215
216#ifdef DOT11N_DRAFT3
217#define fOP_STATUS_SCAN_2040 0x00040000
218#endif // DOT11N_DRAFT3 //
219
220#define CCKSETPROTECT 0x1
221#define OFDMSETPROTECT 0x2
222#define MM20SETPROTECT 0x4
223#define MM40SETPROTECT 0x8
224#define GF20SETPROTECT 0x10
225#define GR40SETPROTECT 0x20
226#define ALLN_SETPROTECT (GR40SETPROTECT | GF20SETPROTECT | MM40SETPROTECT | MM20SETPROTECT)
227
228//
229// AP's client table operation status flags
230//
231#define fCLIENT_STATUS_WMM_CAPABLE 0x00000001 // CLIENT can parse QOS DATA frame
232#define fCLIENT_STATUS_AGGREGATION_CAPABLE 0x00000002 // CLIENT can receive Ralink's proprietary TX aggregation frame
233#define fCLIENT_STATUS_PIGGYBACK_CAPABLE 0x00000004 // CLIENT support piggy-back
234#define fCLIENT_STATUS_AMSDU_INUSED 0x00000008
235#define fCLIENT_STATUS_SGI20_CAPABLE 0x00000010
236#define fCLIENT_STATUS_SGI40_CAPABLE 0x00000020
237#define fCLIENT_STATUS_TxSTBC_CAPABLE 0x00000040
238#define fCLIENT_STATUS_RxSTBC_CAPABLE 0x00000080
239#define fCLIENT_STATUS_HTC_CAPABLE 0x00000100
240#define fCLIENT_STATUS_RDG_CAPABLE 0x00000200
241#define fCLIENT_STATUS_MCSFEEDBACK_CAPABLE 0x00000400
242#define fCLIENT_STATUS_APSD_CAPABLE 0x00000800 /* UAPSD STATION */
243
244#ifdef DOT11N_DRAFT3
245#define fCLIENT_STATUS_BSSCOEXIST_CAPABLE 0x00001000
246#endif // DOT11N_DRAFT3 //
247
248#define fCLIENT_STATUS_RALINK_CHIPSET 0x00100000
249//
250// STA configuration flags
251//
252//#define fSTA_CFG_ENABLE_TX_BURST 0x00000001
253
254// 802.11n Operating Mode Definition. 0-3 also used in ASICUPdateProtect switch case
255#define HT_NO_PROTECT 0
256#define HT_LEGACY_PROTECT 1
257#define HT_40_PROTECT 2
258#define HT_2040_PROTECT 3
259#define HT_RTSCTS_6M 7
260//following is our own definition in order to turn on our ASIC protection register in INFRASTRUCTURE.
261#define HT_ATHEROS 8
262#define HT_FORCERTSCTS 9 // Force turn on RTS/CTS first. then go to evaluate if this force RTS is necessary.
263
264//
265// RX Packet Filter control flags. Apply on pAd->PacketFilter
266//
267#define fRX_FILTER_ACCEPT_DIRECT NDIS_PACKET_TYPE_DIRECTED
268#define fRX_FILTER_ACCEPT_MULTICAST NDIS_PACKET_TYPE_MULTICAST
269#define fRX_FILTER_ACCEPT_BROADCAST NDIS_PACKET_TYPE_BROADCAST
270#define fRX_FILTER_ACCEPT_ALL_MULTICAST NDIS_PACKET_TYPE_ALL_MULTICAST
271
272//
273// Error code section
274//
275// NDIS_ERROR_CODE_ADAPTER_NOT_FOUND
276#define ERRLOG_READ_PCI_SLOT_FAILED 0x00000101L
277#define ERRLOG_WRITE_PCI_SLOT_FAILED 0x00000102L
278#define ERRLOG_VENDOR_DEVICE_NOMATCH 0x00000103L
279
280// NDIS_ERROR_CODE_ADAPTER_DISABLED
281#define ERRLOG_BUS_MASTER_DISABLED 0x00000201L
282
283// NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION
284#define ERRLOG_INVALID_SPEED_DUPLEX 0x00000301L
285#define ERRLOG_SET_SECONDARY_FAILED 0x00000302L
286
287// NDIS_ERROR_CODE_OUT_OF_RESOURCES
288#define ERRLOG_OUT_OF_MEMORY 0x00000401L
289#define ERRLOG_OUT_OF_SHARED_MEMORY 0x00000402L
290#define ERRLOG_OUT_OF_MAP_REGISTERS 0x00000403L
291#define ERRLOG_OUT_OF_BUFFER_POOL 0x00000404L
292#define ERRLOG_OUT_OF_NDIS_BUFFER 0x00000405L
293#define ERRLOG_OUT_OF_PACKET_POOL 0x00000406L
294#define ERRLOG_OUT_OF_NDIS_PACKET 0x00000407L
295#define ERRLOG_OUT_OF_LOOKASIDE_MEMORY 0x00000408L
296
297// NDIS_ERROR_CODE_HARDWARE_FAILURE
298#define ERRLOG_SELFTEST_FAILED 0x00000501L
299#define ERRLOG_INITIALIZE_ADAPTER 0x00000502L
300#define ERRLOG_REMOVE_MINIPORT 0x00000503L
301
302// NDIS_ERROR_CODE_RESOURCE_CONFLICT
303#define ERRLOG_MAP_IO_SPACE 0x00000601L
304#define ERRLOG_QUERY_ADAPTER_RESOURCES 0x00000602L
305#define ERRLOG_NO_IO_RESOURCE 0x00000603L
306#define ERRLOG_NO_INTERRUPT_RESOURCE 0x00000604L
307#define ERRLOG_NO_MEMORY_RESOURCE 0x00000605L
308
309
310// WDS definition
311#define MAX_WDS_ENTRY 4
312#define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table
313
314#define WDS_DISABLE_MODE 0
315#define WDS_RESTRICT_MODE 1
316#define WDS_BRIDGE_MODE 2
317#define WDS_REPEATER_MODE 3
318#define WDS_LAZY_MODE 4
319
320
321#define MAX_MESH_NUM 0
322
323#define MAX_APCLI_NUM 0
324
325#define MAX_MBSSID_NUM 1
326#ifdef MBSS_SUPPORT
327#undef MAX_MBSSID_NUM
328#define MAX_MBSSID_NUM (8 - MAX_MESH_NUM - MAX_APCLI_NUM)
329#endif // MBSS_SUPPORT //
330
331/* sanity check for apidx */
332#define MBSS_MR_APIDX_SANITY_CHECK(apidx) \
333 { if (apidx > MAX_MBSSID_NUM) { \
d75b81a8 334 printk("%s> Error! apidx = %d > MAX_MBSSID_NUM!\n", __func__, apidx); \
e642f099
GKH
335 apidx = MAIN_MBSSID; } }
336
337#define VALID_WCID(_wcid) ((_wcid) > 0 && (_wcid) < MAX_LEN_OF_MAC_TABLE )
338
339#define MAIN_MBSSID 0
340#define FIRST_MBSSID 1
341
342
343#define MAX_BEACON_SIZE 512
344// If the MAX_MBSSID_NUM is larger than 6,
345// it shall reserve some WCID space(wcid 222~253) for beacon frames.
346// - these wcid 238~253 are reserved for beacon#6(ra6).
347// - these wcid 222~237 are reserved for beacon#7(ra7).
348#if defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 8)
349#define HW_RESERVED_WCID 222
350#elif defined(MAX_MBSSID_NUM) && (MAX_MBSSID_NUM == 7)
351#define HW_RESERVED_WCID 238
352#else
353#define HW_RESERVED_WCID 255
354#endif
355
356// Then dedicate wcid of DFS and Carrier-Sense.
357#define DFS_CTS_WCID (HW_RESERVED_WCID - 1)
358#define CS_CTS_WCID (HW_RESERVED_WCID - 2)
359#define LAST_SPECIFIC_WCID (HW_RESERVED_WCID - 2)
360
361// If MAX_MBSSID_NUM is 8, the maximum available wcid for the associated STA is 211.
362// If MAX_MBSSID_NUM is 7, the maximum available wcid for the associated STA is 228.
363#define MAX_AVAILABLE_CLIENT_WCID (LAST_SPECIFIC_WCID - MAX_MBSSID_NUM - 1)
364
365// TX need WCID to find Cipher Key
366// these wcid 212 ~ 219 are reserved for bc/mc packets if MAX_MBSSID_NUM is 8.
367#define GET_GroupKey_WCID(__wcid, __bssidx) \
368 { \
369 __wcid = LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM) + __bssidx; \
370 }
371
372#define IsGroupKeyWCID(__wcid) (((__wcid) < LAST_SPECIFIC_WCID) && ((__wcid) >= (LAST_SPECIFIC_WCID - (MAX_MBSSID_NUM))))
373
374
375// definition to support multiple BSSID
376#define BSS0 0
377#define BSS1 1
378#define BSS2 2
379#define BSS3 3
380#define BSS4 4
381#define BSS5 5
382#define BSS6 6
383#define BSS7 7
384
385
386//============================================================
387// Length definitions
388#define PEER_KEY_NO 2
389#define MAC_ADDR_LEN 6
390#define TIMESTAMP_LEN 8
391#define MAX_LEN_OF_SUPPORTED_RATES MAX_LENGTH_OF_SUPPORT_RATES // 1, 2, 5.5, 11, 6, 9, 12, 18, 24, 36, 48, 54
392#define MAX_LEN_OF_KEY 32 // 32 octets == 256 bits, Redefine for WPA
393#define MAX_NUM_OF_CHANNELS MAX_NUM_OF_CHS // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination
394#define MAX_NUM_OF_11JCHANNELS 20 // 14 channels @2.4G + 12@UNII + 4 @MMAC + 11 @HiperLAN2 + 7 @Japan + 1 as NULL termination
395#define MAX_LEN_OF_SSID 32
396#define CIPHER_TEXT_LEN 128
397#define HASH_TABLE_SIZE 256
398#define MAX_VIE_LEN 1024 // New for WPA cipher suite variable IE sizes.
399#define MAX_SUPPORT_MCS 32
400
401//============================================================
402// ASIC WCID Table definition.
403//============================================================
404#define BSSID_WCID 1 // in infra mode, always put bssid with this WCID
405#define MCAST_WCID 0x0
406#define BSS0Mcast_WCID 0x0
407#define BSS1Mcast_WCID 0xf8
408#define BSS2Mcast_WCID 0xf9
409#define BSS3Mcast_WCID 0xfa
410#define BSS4Mcast_WCID 0xfb
411#define BSS5Mcast_WCID 0xfc
412#define BSS6Mcast_WCID 0xfd
413#define BSS7Mcast_WCID 0xfe
414#define RESERVED_WCID 0xff
415
416#define MAX_NUM_OF_ACL_LIST MAX_NUMBER_OF_ACL
417
418#define MAX_LEN_OF_MAC_TABLE MAX_NUMBER_OF_MAC // if MAX_MBSSID_NUM is 8, this value can't be larger than 211
419
420#if MAX_LEN_OF_MAC_TABLE>MAX_AVAILABLE_CLIENT_WCID
421#error MAX_LEN_OF_MAC_TABLE can not be larger than MAX_AVAILABLE_CLIENT_WCID!!!!
422#endif
423
424#define MAX_NUM_OF_WDS_LINK_PERBSSID 3
425#define MAX_NUM_OF_WDS_LINK (MAX_NUM_OF_WDS_LINK_PERBSSID*MAX_MBSSID_NUM)
426#define MAX_NUM_OF_EVENT MAX_NUMBER_OF_EVENT
427#define WDS_LINK_START_WCID (MAX_LEN_OF_MAC_TABLE-1)
428
429#define NUM_OF_TID 8
430#define MAX_AID_BA 4
431#define MAX_LEN_OF_BA_REC_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2)// (NUM_OF_TID*MAX_AID_BA + 32) //Block ACK recipient
432#define MAX_LEN_OF_BA_ORI_TABLE ((NUM_OF_TID * MAX_LEN_OF_MAC_TABLE)/2)// (NUM_OF_TID*MAX_AID_BA + 32) // Block ACK originator
433#define MAX_LEN_OF_BSS_TABLE 64
434#define MAX_REORDERING_MPDU_NUM 512
435
436// key related definitions
437#define SHARE_KEY_NUM 4
438#define MAX_LEN_OF_SHARE_KEY 16 // byte count
439#define MAX_LEN_OF_PEER_KEY 16 // byte count
440#define PAIRWISE_KEY_NUM 64 // in MAC ASIC pairwise key table
441#define GROUP_KEY_NUM 4
442#define PMK_LEN 32
443#define WDS_PAIRWISE_KEY_OFFSET 60 // WDS links uses pairwise key#60 ~ 63 in ASIC pairwise key table
444#define PMKID_NO 4 // Number of PMKID saved supported
445#define MAX_LEN_OF_MLME_BUFFER 2048
446
447// power status related definitions
448#define PWR_ACTIVE 0
449#define PWR_SAVE 1
450#define PWR_MMPS 2 //MIMO power save
451//#define PWR_UNKNOWN 2
452
453// Auth and Assoc mode related definitions
454#define AUTH_MODE_OPEN 0x00
455#define AUTH_MODE_KEY 0x01
456//#define AUTH_MODE_AUTO_SWITCH 0x03
457//#define AUTH_MODE_DEAUTH 0x04
458//#define AUTH_MODE_UPLAYER 0x05 // reserved for 802.11i use
459
460// BSS Type definitions
461#define BSS_ADHOC 0 // = Ndis802_11IBSS
462#define BSS_INFRA 1 // = Ndis802_11Infrastructure
463#define BSS_ANY 2 // = Ndis802_11AutoUnknown
464#define BSS_MONITOR 3 // = Ndis802_11Monitor
465
466
467// Reason code definitions
468#define REASON_RESERVED 0
469#define REASON_UNSPECIFY 1
470#define REASON_NO_LONGER_VALID 2
471#define REASON_DEAUTH_STA_LEAVING 3
472#define REASON_DISASSOC_INACTIVE 4
473#define REASON_DISASSPC_AP_UNABLE 5
474#define REASON_CLS2ERR 6
475#define REASON_CLS3ERR 7
476#define REASON_DISASSOC_STA_LEAVING 8
477#define REASON_STA_REQ_ASSOC_NOT_AUTH 9
478#define REASON_INVALID_IE 13
479#define REASON_MIC_FAILURE 14
480#define REASON_4_WAY_TIMEOUT 15
481#define REASON_GROUP_KEY_HS_TIMEOUT 16
482#define REASON_IE_DIFFERENT 17
483#define REASON_MCIPHER_NOT_VALID 18
484#define REASON_UCIPHER_NOT_VALID 19
485#define REASON_AKMP_NOT_VALID 20
486#define REASON_UNSUPPORT_RSNE_VER 21
487#define REASON_INVALID_RSNE_CAP 22
488#define REASON_8021X_AUTH_FAIL 23
489#define REASON_CIPHER_SUITE_REJECTED 24
490#define REASON_DECLINED 37
491
492#define REASON_QOS_UNSPECIFY 32
493#define REASON_QOS_LACK_BANDWIDTH 33
494#define REASON_POOR_CHANNEL_CONDITION 34
495#define REASON_QOS_OUTSIDE_TXOP_LIMITION 35
496#define REASON_QOS_QSTA_LEAVING_QBSS 36
497#define REASON_QOS_UNWANTED_MECHANISM 37
498#define REASON_QOS_MECH_SETUP_REQUIRED 38
499#define REASON_QOS_REQUEST_TIMEOUT 39
500#define REASON_QOS_CIPHER_NOT_SUPPORT 45
501
502// Status code definitions
503#define MLME_SUCCESS 0
504#define MLME_UNSPECIFY_FAIL 1
505#define MLME_CANNOT_SUPPORT_CAP 10
506#define MLME_REASSOC_DENY_ASSOC_EXIST 11
507#define MLME_ASSOC_DENY_OUT_SCOPE 12
508#define MLME_ALG_NOT_SUPPORT 13
509#define MLME_SEQ_NR_OUT_OF_SEQUENCE 14
510#define MLME_REJ_CHALLENGE_FAILURE 15
511#define MLME_REJ_TIMEOUT 16
512#define MLME_ASSOC_REJ_UNABLE_HANDLE_STA 17
513#define MLME_ASSOC_REJ_DATA_RATE 18
514
515#define MLME_ASSOC_REJ_NO_EXT_RATE 22
516#define MLME_ASSOC_REJ_NO_EXT_RATE_PBCC 23
517#define MLME_ASSOC_REJ_NO_CCK_OFDM 24
518
519#define MLME_QOS_UNSPECIFY 32
520#define MLME_REQUEST_DECLINED 37
521#define MLME_REQUEST_WITH_INVALID_PARAM 38
522#define MLME_DLS_NOT_ALLOW_IN_QBSS 48
523#define MLME_DEST_STA_NOT_IN_QBSS 49
524#define MLME_DEST_STA_IS_NOT_A_QSTA 50
525
526#define MLME_INVALID_FORMAT 0x51
527#define MLME_FAIL_NO_RESOURCE 0x52
528#define MLME_STATE_MACHINE_REJECT 0x53
529#define MLME_MAC_TABLE_FAIL 0x54
530
531// IE code
532#define IE_SSID 0
533#define IE_SUPP_RATES 1
534#define IE_FH_PARM 2
535#define IE_DS_PARM 3
536#define IE_CF_PARM 4
537#define IE_TIM 5
538#define IE_IBSS_PARM 6
539#define IE_COUNTRY 7 // 802.11d
540#define IE_802_11D_REQUEST 10 // 802.11d
541#define IE_QBSS_LOAD 11 // 802.11e d9
542#define IE_EDCA_PARAMETER 12 // 802.11e d9
543#define IE_TSPEC 13 // 802.11e d9
544#define IE_TCLAS 14 // 802.11e d9
545#define IE_SCHEDULE 15 // 802.11e d9
546#define IE_CHALLENGE_TEXT 16
547#define IE_POWER_CONSTRAINT 32 // 802.11h d3.3
548#define IE_POWER_CAPABILITY 33 // 802.11h d3.3
549#define IE_TPC_REQUEST 34 // 802.11h d3.3
550#define IE_TPC_REPORT 35 // 802.11h d3.3
551#define IE_SUPP_CHANNELS 36 // 802.11h d3.3
552#define IE_CHANNEL_SWITCH_ANNOUNCEMENT 37 // 802.11h d3.3
553#define IE_MEASUREMENT_REQUEST 38 // 802.11h d3.3
554#define IE_MEASUREMENT_REPORT 39 // 802.11h d3.3
555#define IE_QUIET 40 // 802.11h d3.3
556#define IE_IBSS_DFS 41 // 802.11h d3.3
557#define IE_ERP 42 // 802.11g
558#define IE_TS_DELAY 43 // 802.11e d9
559#define IE_TCLAS_PROCESSING 44 // 802.11e d9
560#define IE_QOS_CAPABILITY 46 // 802.11e d6
561#define IE_HT_CAP 45 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD
562#define IE_AP_CHANNEL_REPORT 51 // 802.11k d6
563#define IE_HT_CAP2 52 // 802.11n d1. HT CAPABILITY. ELEMENT ID TBD
564#define IE_RSN 48 // 802.11i d3.0
565#define IE_WPA2 48 // WPA2
566#define IE_EXT_SUPP_RATES 50 // 802.11g
567#define IE_SUPP_REG_CLASS 59 // 802.11y. Supported regulatory classes.
568#define IE_EXT_CHANNEL_SWITCH_ANNOUNCEMENT 60 // 802.11n
569#define IE_ADD_HT 61 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD
570#define IE_ADD_HT2 53 // 802.11n d1. ADDITIONAL HT CAPABILITY. ELEMENT ID TBD
571
572
573// For 802.11n D3.03
574//#define IE_NEW_EXT_CHA_OFFSET 62 // 802.11n d1. New extension channel offset elemet
575#define IE_SECONDARY_CH_OFFSET 62 // 802.11n D3.03 Secondary Channel Offset element
576#define IE_WAPI 68 // WAPI information element
577#define IE_2040_BSS_COEXIST 72 // 802.11n D3.0.3
578#define IE_2040_BSS_INTOLERANT_REPORT 73 // 802.11n D3.03
579#define IE_OVERLAPBSS_SCAN_PARM 74 // 802.11n D3.03
580#define IE_EXT_CAPABILITY 127 // 802.11n D3.03
581
582
583#define IE_WPA 221 // WPA
584#define IE_VENDOR_SPECIFIC 221 // Wifi WMM (WME)
585
586#define OUI_BROADCOM_HT 51 //
587#define OUI_BROADCOM_HTADD 52 //
588#define OUI_PREN_HT_CAP 51 //
589#define OUI_PREN_ADD_HT 52 //
590
591// CCX information
592#define IE_AIRONET_CKIP 133 // CCX1.0 ID 85H for CKIP
593#define IE_AP_TX_POWER 150 // CCX 2.0 for AP transmit power
594#define IE_MEASUREMENT_CAPABILITY 221 // CCX 2.0
595#define IE_CCX_V2 221
596#define IE_AIRONET_IPADDRESS 149 // CCX ID 95H for IP Address
597#define IE_AIRONET_CCKMREASSOC 156 // CCX ID 9CH for CCKM Reassociation Request element
598#define CKIP_NEGOTIATION_LENGTH 30
599#define AIRONET_IPADDRESS_LENGTH 10
600#define AIRONET_CCKMREASSOC_LENGTH 24
601
602// ========================================================
603// MLME state machine definition
604// ========================================================
605
606// STA MLME state mahcines
607#define ASSOC_STATE_MACHINE 1
608#define AUTH_STATE_MACHINE 2
609#define AUTH_RSP_STATE_MACHINE 3
610#define SYNC_STATE_MACHINE 4
611#define MLME_CNTL_STATE_MACHINE 5
612#define WPA_PSK_STATE_MACHINE 6
613#define LEAP_STATE_MACHINE 7
614#define AIRONET_STATE_MACHINE 8
615#define ACTION_STATE_MACHINE 9
616
617// AP MLME state machines
618#define AP_ASSOC_STATE_MACHINE 11
619#define AP_AUTH_STATE_MACHINE 12
620#define AP_AUTH_RSP_STATE_MACHINE 13
621#define AP_SYNC_STATE_MACHINE 14
622#define AP_CNTL_STATE_MACHINE 15
623#define AP_WPA_STATE_MACHINE 16
624
625#define WSC_STATE_MACHINE 17
626#define WSC_UPNP_STATE_MACHINE 18
627
628
629
e642f099
GKH
630//
631// STA's CONTROL/CONNECT state machine: states, events, total function #
632//
633#define CNTL_IDLE 0
634#define CNTL_WAIT_DISASSOC 1
635#define CNTL_WAIT_JOIN 2
636#define CNTL_WAIT_REASSOC 3
637#define CNTL_WAIT_START 4
638#define CNTL_WAIT_AUTH 5
639#define CNTL_WAIT_ASSOC 6
640#define CNTL_WAIT_AUTH2 7
641#define CNTL_WAIT_OID_LIST_SCAN 8
642#define CNTL_WAIT_OID_DISASSOC 9
643#ifdef RT2870
644#define CNTL_WAIT_SCAN_FOR_CONNECT 10
645#endif // RT2870 //
646
647#define MT2_ASSOC_CONF 34
648#define MT2_AUTH_CONF 35
649#define MT2_DEAUTH_CONF 36
650#define MT2_DISASSOC_CONF 37
651#define MT2_REASSOC_CONF 38
652#define MT2_PWR_MGMT_CONF 39
653#define MT2_JOIN_CONF 40
654#define MT2_SCAN_CONF 41
655#define MT2_START_CONF 42
656#define MT2_GET_CONF 43
657#define MT2_SET_CONF 44
658#define MT2_RESET_CONF 45
659#define MT2_MLME_ROAMING_REQ 52
660
661#define CNTL_FUNC_SIZE 1
662
663//
664// STA's ASSOC state machine: states, events, total function #
665//
666#define ASSOC_IDLE 0
667#define ASSOC_WAIT_RSP 1
668#define REASSOC_WAIT_RSP 2
669#define DISASSOC_WAIT_RSP 3
670#define MAX_ASSOC_STATE 4
671
672#define ASSOC_MACHINE_BASE 0
673#define MT2_MLME_ASSOC_REQ 0
674#define MT2_MLME_REASSOC_REQ 1
675#define MT2_MLME_DISASSOC_REQ 2
676#define MT2_PEER_DISASSOC_REQ 3
677#define MT2_PEER_ASSOC_REQ 4
678#define MT2_PEER_ASSOC_RSP 5
679#define MT2_PEER_REASSOC_REQ 6
680#define MT2_PEER_REASSOC_RSP 7
681#define MT2_DISASSOC_TIMEOUT 8
682#define MT2_ASSOC_TIMEOUT 9
683#define MT2_REASSOC_TIMEOUT 10
684#define MAX_ASSOC_MSG 11
685
686#define ASSOC_FUNC_SIZE (MAX_ASSOC_STATE * MAX_ASSOC_MSG)
687
688//
689// ACT state machine: states, events, total function #
690//
691#define ACT_IDLE 0
692#define MAX_ACT_STATE 1
693
694#define ACT_MACHINE_BASE 0
695
696//Those PEER_xx_CATE number is based on real Categary value in IEEE spec. Please don'es modify it by your self.
697//Category
698#define MT2_PEER_SPECTRUM_CATE 0
699#define MT2_PEER_QOS_CATE 1
700#define MT2_PEER_DLS_CATE 2
701#define MT2_PEER_BA_CATE 3
702#define MT2_PEER_PUBLIC_CATE 4
703#define MT2_PEER_RM_CATE 5
704#define MT2_PEER_HT_CATE 7 // 7.4.7
705#define MAX_PEER_CATE_MSG 7
706#define MT2_MLME_ADD_BA_CATE 8
707#define MT2_MLME_ORI_DELBA_CATE 9
708#define MT2_MLME_REC_DELBA_CATE 10
709#define MT2_MLME_QOS_CATE 11
710#define MT2_MLME_DLS_CATE 12
711#define MT2_ACT_INVALID 13
712#define MAX_ACT_MSG 14
713
714//Category field
715#define CATEGORY_SPECTRUM 0
716#define CATEGORY_QOS 1
717#define CATEGORY_DLS 2
718#define CATEGORY_BA 3
719#define CATEGORY_PUBLIC 4
720#define CATEGORY_RM 5
721#define CATEGORY_HT 7
722
723
724// DLS Action frame definition
725#define ACTION_DLS_REQUEST 0
726#define ACTION_DLS_RESPONSE 1
727#define ACTION_DLS_TEARDOWN 2
728
729//Spectrum Action field value 802.11h 7.4.1
730#define SPEC_MRQ 0 // Request
731#define SPEC_MRP 1 //Report
732#define SPEC_TPCRQ 2
733#define SPEC_TPCRP 3
734#define SPEC_CHANNEL_SWITCH 4
735
736
737//BA Action field value
738#define ADDBA_REQ 0
739#define ADDBA_RESP 1
740#define DELBA 2
741
742//Public's Action field value in Public Category. Some in 802.11y and some in 11n
743#define ACTION_BSS_2040_COEXIST 0 // 11n
744#define ACTION_DSE_ENABLEMENT 1 // 11y D9.0
745#define ACTION_DSE_DEENABLEMENT 2 // 11y D9.0
746#define ACTION_DSE_REG_LOCATION_ANNOUNCE 3 // 11y D9.0
747#define ACTION_EXT_CH_SWITCH_ANNOUNCE 4 // 11y D9.0
748#define ACTION_DSE_MEASUREMENT_REQ 5 // 11y D9.0
749#define ACTION_DSE_MEASUREMENT_REPORT 6 // 11y D9.0
750#define ACTION_MEASUREMENT_PILOT_ACTION 7 // 11y D9.0
751#define ACTION_DSE_POWER_CONSTRAINT 8 // 11y D9.0
752
753
754//HT Action field value
755#define NOTIFY_BW_ACTION 0
756#define SMPS_ACTION 1
757#define PSMP_ACTION 2
758#define SETPCO_ACTION 3
759#define MIMO_CHA_MEASURE_ACTION 4
760#define MIMO_N_BEACONFORM 5
761#define MIMO_BEACONFORM 6
762#define ANTENNA_SELECT 7
763#define HT_INFO_EXCHANGE 8
764
765#define ACT_FUNC_SIZE (MAX_ACT_STATE * MAX_ACT_MSG)
766//
767// STA's AUTHENTICATION state machine: states, evvents, total function #
768//
769#define AUTH_REQ_IDLE 0
770#define AUTH_WAIT_SEQ2 1
771#define AUTH_WAIT_SEQ4 2
772#define MAX_AUTH_STATE 3
773
774#define AUTH_MACHINE_BASE 0
775#define MT2_MLME_AUTH_REQ 0
776#define MT2_PEER_AUTH_EVEN 1
777#define MT2_AUTH_TIMEOUT 2
778#define MAX_AUTH_MSG 3
779
780#define AUTH_FUNC_SIZE (MAX_AUTH_STATE * MAX_AUTH_MSG)
781
782//
783// STA's AUTH_RSP state machine: states, events, total function #
784//
785#define AUTH_RSP_IDLE 0
786#define AUTH_RSP_WAIT_CHAL 1
787#define MAX_AUTH_RSP_STATE 2
788
789#define AUTH_RSP_MACHINE_BASE 0
790#define MT2_AUTH_CHALLENGE_TIMEOUT 0
791#define MT2_PEER_AUTH_ODD 1
792#define MT2_PEER_DEAUTH 2
793#define MAX_AUTH_RSP_MSG 3
794
795#define AUTH_RSP_FUNC_SIZE (MAX_AUTH_RSP_STATE * MAX_AUTH_RSP_MSG)
796
797//
798// STA's SYNC state machine: states, events, total function #
799//
800#define SYNC_IDLE 0 // merge NO_BSS,IBSS_IDLE,IBSS_ACTIVE and BSS in to 1 state
801#define JOIN_WAIT_BEACON 1
802#define SCAN_LISTEN 2
803#define MAX_SYNC_STATE 3
804
805#define SYNC_MACHINE_BASE 0
806#define MT2_MLME_SCAN_REQ 0
807#define MT2_MLME_JOIN_REQ 1
808#define MT2_MLME_START_REQ 2
809#define MT2_PEER_BEACON 3
810#define MT2_PEER_PROBE_RSP 4
811#define MT2_PEER_ATIM 5
812#define MT2_SCAN_TIMEOUT 6
813#define MT2_BEACON_TIMEOUT 7
814#define MT2_ATIM_TIMEOUT 8
815#define MT2_PEER_PROBE_REQ 9
816#define MAX_SYNC_MSG 10
817
818#define SYNC_FUNC_SIZE (MAX_SYNC_STATE * MAX_SYNC_MSG)
819
820//Messages for the DLS state machine
821#define DLS_IDLE 0
822#define MAX_DLS_STATE 1
823
824#define DLS_MACHINE_BASE 0
825#define MT2_MLME_DLS_REQ 0
826#define MT2_PEER_DLS_REQ 1
827#define MT2_PEER_DLS_RSP 2
828#define MT2_MLME_DLS_TEAR_DOWN 3
829#define MT2_PEER_DLS_TEAR_DOWN 4
830#define MAX_DLS_MSG 5
831
832#define DLS_FUNC_SIZE (MAX_DLS_STATE * MAX_DLS_MSG)
833
834//
835// STA's WPA-PSK State machine: states, events, total function #
836//
837#define WPA_PSK_IDLE 0
838#define MAX_WPA_PSK_STATE 1
839
840#define WPA_MACHINE_BASE 0
841#define MT2_EAPPacket 0
842#define MT2_EAPOLStart 1
843#define MT2_EAPOLLogoff 2
844#define MT2_EAPOLKey 3
845#define MT2_EAPOLASFAlert 4
846#define MAX_WPA_PSK_MSG 5
847
848#define WPA_PSK_FUNC_SIZE (MAX_WPA_PSK_STATE * MAX_WPA_PSK_MSG)
849
850//
851// STA's CISCO-AIRONET State machine: states, events, total function #
852//
853#define AIRONET_IDLE 0
854#define AIRONET_SCANNING 1
855#define MAX_AIRONET_STATE 2
856
857#define AIRONET_MACHINE_BASE 0
858#define MT2_AIRONET_MSG 0
859#define MT2_AIRONET_SCAN_REQ 1
860#define MT2_AIRONET_SCAN_DONE 2
861#define MAX_AIRONET_MSG 3
862
863#define AIRONET_FUNC_SIZE (MAX_AIRONET_STATE * MAX_AIRONET_MSG)
864
865//
866// WSC State machine: states, events, total function #
867//
868
869//
870// AP's CONTROL/CONNECT state machine: states, events, total function #
871//
872#define AP_CNTL_FUNC_SIZE 1
873
874//
875// AP's ASSOC state machine: states, events, total function #
876//
877#define AP_ASSOC_IDLE 0
878#define AP_MAX_ASSOC_STATE 1
879
880#define AP_ASSOC_MACHINE_BASE 0
881#define APMT2_MLME_DISASSOC_REQ 0
882#define APMT2_PEER_DISASSOC_REQ 1
883#define APMT2_PEER_ASSOC_REQ 2
884#define APMT2_PEER_REASSOC_REQ 3
885#define APMT2_CLS3ERR 4
886#define AP_MAX_ASSOC_MSG 5
887
888#define AP_ASSOC_FUNC_SIZE (AP_MAX_ASSOC_STATE * AP_MAX_ASSOC_MSG)
889
890//
891// AP's AUTHENTICATION state machine: states, events, total function #
892//
893#define AP_AUTH_REQ_IDLE 0
894#define AP_MAX_AUTH_STATE 1
895
896#define AP_AUTH_MACHINE_BASE 0
897#define APMT2_MLME_DEAUTH_REQ 0
898#define APMT2_CLS2ERR 1
899#define AP_MAX_AUTH_MSG 2
900
901#define AP_AUTH_FUNC_SIZE (AP_MAX_AUTH_STATE * AP_MAX_AUTH_MSG)
902
903//
904// AP's AUTH-RSP state machine: states, events, total function #
905//
906#define AP_AUTH_RSP_IDLE 0
907#define AP_MAX_AUTH_RSP_STATE 1
908
909#define AP_AUTH_RSP_MACHINE_BASE 0
910#define APMT2_AUTH_CHALLENGE_TIMEOUT 0
911#define APMT2_PEER_AUTH_ODD 1
912#define APMT2_PEER_DEAUTH 2
913#define AP_MAX_AUTH_RSP_MSG 3
914
915#define AP_AUTH_RSP_FUNC_SIZE (AP_MAX_AUTH_RSP_STATE * AP_MAX_AUTH_RSP_MSG)
916
917//
918// AP's SYNC state machine: states, events, total function #
919//
920#define AP_SYNC_IDLE 0
921#define AP_SCAN_LISTEN 1
922#define AP_MAX_SYNC_STATE 2
923
924#define AP_SYNC_MACHINE_BASE 0
925#define APMT2_PEER_PROBE_REQ 0
926#define APMT2_PEER_BEACON 1
927#define APMT2_MLME_SCAN_REQ 2
928#define APMT2_PEER_PROBE_RSP 3
929#define APMT2_SCAN_TIMEOUT 4
930#define APMT2_MLME_SCAN_CNCL 5
931#define AP_MAX_SYNC_MSG 6
932
933#define AP_SYNC_FUNC_SIZE (AP_MAX_SYNC_STATE * AP_MAX_SYNC_MSG)
934
935//
936// AP's WPA state machine: states, events, total function #
937//
938#define AP_WPA_PTK 0
939#define AP_MAX_WPA_PTK_STATE 1
940
941#define AP_WPA_MACHINE_BASE 0
942#define APMT2_EAPPacket 0
943#define APMT2_EAPOLStart 1
944#define APMT2_EAPOLLogoff 2
945#define APMT2_EAPOLKey 3
946#define APMT2_EAPOLASFAlert 4
947#define AP_MAX_WPA_MSG 5
948
949#define AP_WPA_FUNC_SIZE (AP_MAX_WPA_PTK_STATE * AP_MAX_WPA_MSG)
950
951
952
953// =============================================================================
954
955// value domain of 802.11 header FC.Tyte, which is b3..b2 of the 1st-byte of MAC header
956#define BTYPE_MGMT 0
957#define BTYPE_CNTL 1
958#define BTYPE_DATA 2
959
960// value domain of 802.11 MGMT frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header
961#define SUBTYPE_ASSOC_REQ 0
962#define SUBTYPE_ASSOC_RSP 1
963#define SUBTYPE_REASSOC_REQ 2
964#define SUBTYPE_REASSOC_RSP 3
965#define SUBTYPE_PROBE_REQ 4
966#define SUBTYPE_PROBE_RSP 5
967#define SUBTYPE_BEACON 8
968#define SUBTYPE_ATIM 9
969#define SUBTYPE_DISASSOC 10
970#define SUBTYPE_AUTH 11
971#define SUBTYPE_DEAUTH 12
972#define SUBTYPE_ACTION 13
973#define SUBTYPE_ACTION_NO_ACK 14
974
975// value domain of 802.11 CNTL frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header
976#define SUBTYPE_WRAPPER 7
977#define SUBTYPE_BLOCK_ACK_REQ 8
978#define SUBTYPE_BLOCK_ACK 9
979#define SUBTYPE_PS_POLL 10
980#define SUBTYPE_RTS 11
981#define SUBTYPE_CTS 12
982#define SUBTYPE_ACK 13
983#define SUBTYPE_CFEND 14
984#define SUBTYPE_CFEND_CFACK 15
985
986// value domain of 802.11 DATA frame's FC.subtype, which is b7..4 of the 1st-byte of MAC header
987#define SUBTYPE_DATA 0
988#define SUBTYPE_DATA_CFACK 1
989#define SUBTYPE_DATA_CFPOLL 2
990#define SUBTYPE_DATA_CFACK_CFPOLL 3
991#define SUBTYPE_NULL_FUNC 4
992#define SUBTYPE_CFACK 5
993#define SUBTYPE_CFPOLL 6
994#define SUBTYPE_CFACK_CFPOLL 7
995#define SUBTYPE_QDATA 8
996#define SUBTYPE_QDATA_CFACK 9
997#define SUBTYPE_QDATA_CFPOLL 10
998#define SUBTYPE_QDATA_CFACK_CFPOLL 11
999#define SUBTYPE_QOS_NULL 12
1000#define SUBTYPE_QOS_CFACK 13
1001#define SUBTYPE_QOS_CFPOLL 14
1002#define SUBTYPE_QOS_CFACK_CFPOLL 15
1003
1004// ACK policy of QOS Control field bit 6:5
1005#define NORMAL_ACK 0x00 // b6:5 = 00
1006#define NO_ACK 0x20 // b6:5 = 01
1007#define NO_EXPLICIT_ACK 0x40 // b6:5 = 10
1008#define BLOCK_ACK 0x60 // b6:5 = 11
1009
1010//
1011// rtmp_data.c use these definition
1012//
1013#define LENGTH_802_11 24
1014#define LENGTH_802_11_AND_H 30
1015#define LENGTH_802_11_CRC_H 34
1016#define LENGTH_802_11_CRC 28
1017#define LENGTH_802_11_WITH_ADDR4 30
1018#define LENGTH_802_3 14
1019#define LENGTH_802_3_TYPE 2
1020#define LENGTH_802_1_H 8
1021#define LENGTH_EAPOL_H 4
1022#define LENGTH_WMMQOS_H 2
1023#define LENGTH_CRC 4
1024#define MAX_SEQ_NUMBER 0x0fff
1025#define LENGTH_802_3_NO_TYPE 12
1026#define LENGTH_802_1Q 4 /* VLAN related */
1027
1028// STA_CSR4.field.TxResult
1029#define TX_RESULT_SUCCESS 0
1030#define TX_RESULT_ZERO_LENGTH 1
1031#define TX_RESULT_UNDER_RUN 2
1032#define TX_RESULT_OHY_ERROR 4
1033#define TX_RESULT_RETRY_FAIL 6
1034
1035// All PHY rate summary in TXD
1036// Preamble MODE in TxD
1037#define MODE_CCK 0
1038#define MODE_OFDM 1
1039#ifdef DOT11_N_SUPPORT
1040#define MODE_HTMIX 2
1041#define MODE_HTGREENFIELD 3
1042#endif // DOT11_N_SUPPORT //
1043// MCS for CCK. BW.SGI.STBC are reserved
1044#define MCS_LONGP_RATE_1 0 // long preamble CCK 1Mbps
1045#define MCS_LONGP_RATE_2 1 // long preamble CCK 1Mbps
1046#define MCS_LONGP_RATE_5_5 2
1047#define MCS_LONGP_RATE_11 3
1048#define MCS_SHORTP_RATE_1 4 // long preamble CCK 1Mbps. short is forbidden in 1Mbps
1049#define MCS_SHORTP_RATE_2 5 // short preamble CCK 2Mbps
1050#define MCS_SHORTP_RATE_5_5 6
1051#define MCS_SHORTP_RATE_11 7
1052// To send duplicate legacy OFDM. set BW=BW_40. SGI.STBC are reserved
1053#define MCS_RATE_6 0 // legacy OFDM
1054#define MCS_RATE_9 1 // OFDM
1055#define MCS_RATE_12 2 // OFDM
1056#define MCS_RATE_18 3 // OFDM
1057#define MCS_RATE_24 4 // OFDM
1058#define MCS_RATE_36 5 // OFDM
1059#define MCS_RATE_48 6 // OFDM
1060#define MCS_RATE_54 7 // OFDM
1061// HT
1062#define MCS_0 0 // 1S
1063#define MCS_1 1
1064#define MCS_2 2
1065#define MCS_3 3
1066#define MCS_4 4
1067#define MCS_5 5
1068#define MCS_6 6
1069#define MCS_7 7
1070#define MCS_8 8 // 2S
1071#define MCS_9 9
1072#define MCS_10 10
1073#define MCS_11 11
1074#define MCS_12 12
1075#define MCS_13 13
1076#define MCS_14 14
1077#define MCS_15 15
1078#define MCS_16 16 // 3*3
1079#define MCS_17 17
1080#define MCS_18 18
1081#define MCS_19 19
1082#define MCS_20 20
1083#define MCS_21 21
1084#define MCS_22 22
1085#define MCS_23 23
1086#define MCS_32 32
1087#define MCS_AUTO 33
1088
1089#ifdef DOT11_N_SUPPORT
1090// OID_HTPHYMODE
1091// MODE
1092#define HTMODE_MM 0
1093#define HTMODE_GF 1
1094#endif // DOT11_N_SUPPORT //
1095
1096// Fixed Tx MODE - HT, CCK or OFDM
1097#define FIXED_TXMODE_HT 0
1098#define FIXED_TXMODE_CCK 1
1099#define FIXED_TXMODE_OFDM 2
1100// BW
1101#define BW_20 BAND_WIDTH_20
1102#define BW_40 BAND_WIDTH_40
1103#define BW_BOTH BAND_WIDTH_BOTH
1104#define BW_10 BAND_WIDTH_10 // 802.11j has 10MHz. This definition is for internal usage. doesn't fill in the IE or other field.
1105
1106#ifdef DOT11_N_SUPPORT
1107// SHORTGI
1108#define GI_400 GAP_INTERVAL_400 // only support in HT mode
1109#define GI_BOTH GAP_INTERVAL_BOTH
1110#endif // DOT11_N_SUPPORT //
1111#define GI_800 GAP_INTERVAL_800
1112// STBC
1113#define STBC_NONE 0
1114#ifdef DOT11_N_SUPPORT
1115#define STBC_USE 1 // limited use in rt2860b phy
1116#define RXSTBC_ONE 1 // rx support of one spatial stream
1117#define RXSTBC_TWO 2 // rx support of 1 and 2 spatial stream
1118#define RXSTBC_THR 3 // rx support of 1~3 spatial stream
1119// MCS FEEDBACK
1120#define MCSFBK_NONE 0 // not support mcs feedback /
1121#define MCSFBK_RSV 1 // reserved
1122#define MCSFBK_UNSOLICIT 2 // only support unsolict mcs feedback
1123#define MCSFBK_MRQ 3 // response to both MRQ and unsolict mcs feedback
1124
1125// MIMO power safe
1126#define MMPS_STATIC 0
1127#define MMPS_DYNAMIC 1
1128#define MMPS_RSV 2
1129#define MMPS_ENABLE 3
1130
1131
1132// A-MSDU size
1133#define AMSDU_0 0
1134#define AMSDU_1 1
1135
1136#endif // DOT11_N_SUPPORT //
1137
1138// MCS use 7 bits
1139#define TXRATEMIMO 0x80
1140#define TXRATEMCS 0x7F
1141#define TXRATEOFDM 0x7F
1142#define RATE_1 0
1143#define RATE_2 1
1144#define RATE_5_5 2
1145#define RATE_11 3
1146#define RATE_6 4 // OFDM
1147#define RATE_9 5 // OFDM
1148#define RATE_12 6 // OFDM
1149#define RATE_18 7 // OFDM
1150#define RATE_24 8 // OFDM
1151#define RATE_36 9 // OFDM
1152#define RATE_48 10 // OFDM
1153#define RATE_54 11 // OFDM
1154#define RATE_FIRST_OFDM_RATE RATE_6
1155#define RATE_LAST_OFDM_RATE RATE_54
1156#define RATE_6_5 12 // HT mix
1157#define RATE_13 13 // HT mix
1158#define RATE_19_5 14 // HT mix
1159#define RATE_26 15 // HT mix
1160#define RATE_39 16 // HT mix
1161#define RATE_52 17 // HT mix
1162#define RATE_58_5 18 // HT mix
1163#define RATE_65 19 // HT mix
1164#define RATE_78 20 // HT mix
1165#define RATE_104 21 // HT mix
1166#define RATE_117 22 // HT mix
1167#define RATE_130 23 // HT mix
1168//#define RATE_AUTO_SWITCH 255 // for StaCfg.FixedTxRate only
1169#define HTRATE_0 12
1170#define RATE_FIRST_MM_RATE HTRATE_0
1171#define RATE_FIRST_HT_RATE HTRATE_0
1172#define RATE_LAST_HT_RATE HTRATE_0
1173
1174// pTxWI->txop
1175#define IFS_HTTXOP 0 // The txop will be handles by ASIC.
1176#define IFS_PIFS 1
1177#define IFS_SIFS 2
1178#define IFS_BACKOFF 3
1179
1180// pTxD->RetryMode
1181#define LONG_RETRY 1
1182#define SHORT_RETRY 0
1183
1184// Country Region definition
1185#define REGION_MINIMUM_BG_BAND 0
1186#define REGION_0_BG_BAND 0 // 1-11
1187#define REGION_1_BG_BAND 1 // 1-13
1188#define REGION_2_BG_BAND 2 // 10-11
1189#define REGION_3_BG_BAND 3 // 10-13
1190#define REGION_4_BG_BAND 4 // 14
1191#define REGION_5_BG_BAND 5 // 1-14
1192#define REGION_6_BG_BAND 6 // 3-9
1193#define REGION_7_BG_BAND 7 // 5-13
1194#define REGION_31_BG_BAND 31 // 5-13
1195#define REGION_MAXIMUM_BG_BAND 7
1196
1197#define REGION_MINIMUM_A_BAND 0
1198#define REGION_0_A_BAND 0 // 36, 40, 44, 48, 52, 56, 60, 64, 149, 153, 157, 161, 165
1199#define REGION_1_A_BAND 1 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140
1200#define REGION_2_A_BAND 2 // 36, 40, 44, 48, 52, 56, 60, 64
1201#define REGION_3_A_BAND 3 // 52, 56, 60, 64, 149, 153, 157, 161
1202#define REGION_4_A_BAND 4 // 149, 153, 157, 161, 165
1203#define REGION_5_A_BAND 5 // 149, 153, 157, 161
1204#define REGION_6_A_BAND 6 // 36, 40, 44, 48
1205#define REGION_7_A_BAND 7 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 124, 128, 132, 136, 140, 149, 153, 157, 161, 165
1206#define REGION_8_A_BAND 8 // 52, 56, 60, 64
1207#define REGION_9_A_BAND 9 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 132, 136, 140, 149, 153, 157, 161, 165
1208#define REGION_10_A_BAND 10 // 36, 40, 44, 48, 149, 153, 157, 161, 165
1209#define REGION_11_A_BAND 11 // 36, 40, 44, 48, 52, 56, 60, 64, 100, 104, 108, 112, 116, 120, 149, 153, 157, 161
1210#define REGION_MAXIMUM_A_BAND 11
1211
1212// pTxD->CipherAlg
1213#define CIPHER_NONE 0
1214#define CIPHER_WEP64 1
1215#define CIPHER_WEP128 2
1216#define CIPHER_TKIP 3
1217#define CIPHER_AES 4
1218#define CIPHER_CKIP64 5
1219#define CIPHER_CKIP128 6
1220#define CIPHER_TKIP_NO_MIC 7 // MIC appended by driver: not a valid value in hardware key table
1221#define CIPHER_SMS4 8
1222
1223// value domain of pAd->RfIcType
1224#define RFIC_2820 1 // 2.4G 2T3R
1225#define RFIC_2850 2 // 2.4G/5G 2T3R
1226#define RFIC_2720 3 // 2.4G 1T2R
1227#define RFIC_2750 4 // 2.4G/5G 1T2R
1228#define RFIC_3020 5 // 2.4G 1T1R
1229#define RFIC_2020 6 // 2.4G B/G
1230#define RFIC_3021 7 // 2.4G 1T2R
1231#define RFIC_3022 8 // 2.4G 2T2R
1232
1233// LED Status.
1234#define LED_LINK_DOWN 0
1235#define LED_LINK_UP 1
1236#define LED_RADIO_OFF 2
1237#define LED_RADIO_ON 3
1238#define LED_HALT 4
1239#define LED_WPS 5
1240#define LED_ON_SITE_SURVEY 6
1241#define LED_POWER_UP 7
1242
1243// value domain of pAd->LedCntl.LedMode and E2PROM
1244#define LED_MODE_DEFAULT 0
1245#define LED_MODE_TWO_LED 1
1246#define LED_MODE_SIGNAL_STREGTH 8 // EEPROM define =8
1247
1248// RC4 init value, used fro WEP & TKIP
1249#define PPPINITFCS32 0xffffffff /* Initial FCS value */
1250
1251// value domain of pAd->StaCfg.PortSecured. 802.1X controlled port definition
1252#define WPA_802_1X_PORT_SECURED 1
1253#define WPA_802_1X_PORT_NOT_SECURED 2
1254
1255#define PAIRWISE_KEY 1
1256#define GROUP_KEY 2
1257
1258//definition of DRS
1259#define MAX_STEP_OF_TX_RATE_SWITCH 32
1260
1261
1262// pre-allocated free NDIS PACKET/BUFFER poll for internal usage
1263#define MAX_NUM_OF_FREE_NDIS_PACKET 128
1264
1265//Block ACK
1266#define MAX_TX_REORDERBUF 64
1267#define MAX_RX_REORDERBUF 64
1268#define DEFAULT_TX_TIMEOUT 30
1269#define DEFAULT_RX_TIMEOUT 30
1270
1271// definition of Recipient or Originator
1272#define I_RECIPIENT TRUE
1273#define I_ORIGINATOR FALSE
1274
1275#define DEFAULT_BBP_TX_POWER 0
1276#define DEFAULT_RF_TX_POWER 5
1277
1278#define MAX_INI_BUFFER_SIZE 4096
1279#define MAX_PARAM_BUFFER_SIZE (2048) // enough for ACL (18*64)
1280 //18 : the length of Mac address acceptable format "01:02:03:04:05:06;")
1281 //64 : MAX_NUM_OF_ACL_LIST
1282// definition of pAd->OpMode
1283#define OPMODE_STA 0
1284#define OPMODE_AP 1
1285//#define OPMODE_L3_BRG 2 // as AP and STA at the same time
1286
1287#ifdef RT_BIG_ENDIAN
1288#define DIR_READ 0
1289#define DIR_WRITE 1
1290#define TYPE_TXD 0
1291#define TYPE_RXD 1
1292#define TYPE_TXINFO 0
1293#define TYPE_RXINFO 1
1294#define TYPE_TXWI 0
1295#define TYPE_RXWI 1
1296#endif
1297
1298// ========================= AP rtmp_def.h ===========================
1299// value domain for pAd->EventTab.Log[].Event
1300#define EVENT_RESET_ACCESS_POINT 0 // Log = "hh:mm:ss Restart Access Point"
1301#define EVENT_ASSOCIATED 1 // Log = "hh:mm:ss STA 00:01:02:03:04:05 associated"
1302#define EVENT_DISASSOCIATED 2 // Log = "hh:mm:ss STA 00:01:02:03:04:05 left this BSS"
1303#define EVENT_AGED_OUT 3 // Log = "hh:mm:ss STA 00:01:02:03:04:05 was aged-out and removed from this BSS"
1304#define EVENT_COUNTER_M 4
1305#define EVENT_INVALID_PSK 5
1306#define EVENT_MAX_EVENT_TYPE 6
1307// ==== end of AP rtmp_def.h ============
1308
1309// definition RSSI Number
1310#define RSSI_0 0
1311#define RSSI_1 1
1312#define RSSI_2 2
1313
1314// definition of radar detection
1315#define RD_NORMAL_MODE 0 // Not found radar signal
1316#define RD_SWITCHING_MODE 1 // Found radar signal, and doing channel switch
1317#define RD_SILENCE_MODE 2 // After channel switch, need to be silence a while to ensure radar not found
1318
1319//Driver defined cid for mapping status and command.
1320#define SLEEPCID 0x11
1321#define WAKECID 0x22
1322#define QUERYPOWERCID 0x33
1323#define OWNERMCU 0x1
1324#define OWNERCPU 0x0
1325
1326// MBSSID definition
1327#define ENTRY_NOT_FOUND 0xFF
1328
1329
1330/* After Linux 2.6.9,
1331 * VLAN module use Private (from user) interface flags (netdevice->priv_flags).
1332 * #define IFF_802_1Q_VLAN 0x1 -- 802.1Q VLAN device. in if.h
1333 * ref to ip_sabotage_out() [ out->priv_flags & IFF_802_1Q_VLAN ] in br_netfilter.c
1334 *
1335 * For this reason, we MUST use EVEN value in priv_flags
1336 */
1337#define INT_MAIN 0x0100
1338#define INT_MBSSID 0x0200
1339#define INT_WDS 0x0300
1340#define INT_APCLI 0x0400
1341#define INT_MESH 0x0500
1342
1343// Use bitmap to allow coexist of ATE_TXFRAME and ATE_RXFRAME(i.e.,to support LoopBack mode)
e642f099
GKH
1344
1345// WEP Key TYPE
1346#define WEP_HEXADECIMAL_TYPE 0
1347#define WEP_ASCII_TYPE 1
1348
1349
1350
1351// WIRELESS EVENTS definition
1352/* Max number of char in custom event, refer to wireless_tools.28/wireless.20.h */
1353#define IW_CUSTOM_MAX_LEN 255 /* In bytes */
1354
1355// For system event - start
1356#define IW_SYS_EVENT_FLAG_START 0x0200
1357#define IW_ASSOC_EVENT_FLAG 0x0200
1358#define IW_DISASSOC_EVENT_FLAG 0x0201
1359#define IW_DEAUTH_EVENT_FLAG 0x0202
1360#define IW_AGEOUT_EVENT_FLAG 0x0203
1361#define IW_COUNTER_MEASURES_EVENT_FLAG 0x0204
1362#define IW_REPLAY_COUNTER_DIFF_EVENT_FLAG 0x0205
1363#define IW_RSNIE_DIFF_EVENT_FLAG 0x0206
1364#define IW_MIC_DIFF_EVENT_FLAG 0x0207
1365#define IW_ICV_ERROR_EVENT_FLAG 0x0208
1366#define IW_MIC_ERROR_EVENT_FLAG 0x0209
1367#define IW_GROUP_HS_TIMEOUT_EVENT_FLAG 0x020A
1368#define IW_PAIRWISE_HS_TIMEOUT_EVENT_FLAG 0x020B
1369#define IW_RSNIE_SANITY_FAIL_EVENT_FLAG 0x020C
1370#define IW_SET_KEY_DONE_WPA1_EVENT_FLAG 0x020D
1371#define IW_SET_KEY_DONE_WPA2_EVENT_FLAG 0x020E
1372#define IW_STA_LINKUP_EVENT_FLAG 0x020F
1373#define IW_STA_LINKDOWN_EVENT_FLAG 0x0210
1374#define IW_SCAN_COMPLETED_EVENT_FLAG 0x0211
1375#define IW_SCAN_ENQUEUE_FAIL_EVENT_FLAG 0x0212
1376// if add new system event flag, please upadte the IW_SYS_EVENT_FLAG_END
1377#define IW_SYS_EVENT_FLAG_END 0x0212
1378#define IW_SYS_EVENT_TYPE_NUM (IW_SYS_EVENT_FLAG_END - IW_SYS_EVENT_FLAG_START + 1)
1379// For system event - end
1380
1381// For spoof attack event - start
1382#define IW_SPOOF_EVENT_FLAG_START 0x0300
1383#define IW_CONFLICT_SSID_EVENT_FLAG 0x0300
1384#define IW_SPOOF_ASSOC_RESP_EVENT_FLAG 0x0301
1385#define IW_SPOOF_REASSOC_RESP_EVENT_FLAG 0x0302
1386#define IW_SPOOF_PROBE_RESP_EVENT_FLAG 0x0303
1387#define IW_SPOOF_BEACON_EVENT_FLAG 0x0304
1388#define IW_SPOOF_DISASSOC_EVENT_FLAG 0x0305
1389#define IW_SPOOF_AUTH_EVENT_FLAG 0x0306
1390#define IW_SPOOF_DEAUTH_EVENT_FLAG 0x0307
1391#define IW_SPOOF_UNKNOWN_MGMT_EVENT_FLAG 0x0308
1392#define IW_REPLAY_ATTACK_EVENT_FLAG 0x0309
1393// if add new spoof attack event flag, please upadte the IW_SPOOF_EVENT_FLAG_END
1394#define IW_SPOOF_EVENT_FLAG_END 0x0309
1395#define IW_SPOOF_EVENT_TYPE_NUM (IW_SPOOF_EVENT_FLAG_END - IW_SPOOF_EVENT_FLAG_START + 1)
1396// For spoof attack event - end
1397
1398// For flooding attack event - start
1399#define IW_FLOOD_EVENT_FLAG_START 0x0400
1400#define IW_FLOOD_AUTH_EVENT_FLAG 0x0400
1401#define IW_FLOOD_ASSOC_REQ_EVENT_FLAG 0x0401
1402#define IW_FLOOD_REASSOC_REQ_EVENT_FLAG 0x0402
1403#define IW_FLOOD_PROBE_REQ_EVENT_FLAG 0x0403
1404#define IW_FLOOD_DISASSOC_EVENT_FLAG 0x0404
1405#define IW_FLOOD_DEAUTH_EVENT_FLAG 0x0405
1406#define IW_FLOOD_EAP_REQ_EVENT_FLAG 0x0406
1407// if add new flooding attack event flag, please upadte the IW_FLOOD_EVENT_FLAG_END
1408#define IW_FLOOD_EVENT_FLAG_END 0x0406
1409#define IW_FLOOD_EVENT_TYPE_NUM (IW_FLOOD_EVENT_FLAG_END - IW_FLOOD_EVENT_FLAG_START + 1)
1410// For flooding attack - end
1411
1412// End - WIRELESS EVENTS definition
1413
1414#ifdef CONFIG_STA_SUPPORT
1415// definition for DLS, kathy
1416#define MAX_NUM_OF_INIT_DLS_ENTRY 1
1417#define MAX_NUM_OF_DLS_ENTRY MAX_NUMBER_OF_DLS_ENTRY
1418
1419//Block ACK , rt2860, kathy
1420#define MAX_TX_REORDERBUF 64
1421#define MAX_RX_REORDERBUF 64
1422#define DEFAULT_TX_TIMEOUT 30
1423#define DEFAULT_RX_TIMEOUT 30
1424#ifndef CONFIG_AP_SUPPORT
1425#define MAX_BARECI_SESSION 8
1426#endif
1427
1428#ifndef IW_ESSID_MAX_SIZE
1429/* Maximum size of the ESSID and pAd->nickname strings */
1430#define IW_ESSID_MAX_SIZE 32
1431#endif
1432#endif // CONFIG_STA_SUPPORT //
1433
1434#ifdef MCAST_RATE_SPECIFIC
1435#define MCAST_DISABLE 0
1436#define MCAST_CCK 1
1437#define MCAST_OFDM 2
1438#define MCAST_HTMIX 3
1439#endif // MCAST_RATE_SPECIFIC //
1440
1441// For AsicRadioOff/AsicRadioOn function
1442#define DOT11POWERSAVE 0
1443#define GUIRADIO_OFF 1
1444#define RTMP_HALT 2
1445#define GUI_IDLE_POWER_SAVE 3
1446// --
1447
1448
1449// definition for WpaSupport flag
1450#define WPA_SUPPLICANT_DISABLE 0
1451#define WPA_SUPPLICANT_ENABLE 1
1452#define WPA_SUPPLICANT_ENABLE_WITH_WEB_UI 2
1453
1454// Endian byte swapping codes
1455#define SWAP16(x) \
1456 ((UINT16)( \
1457 (((UINT16)(x) & (UINT16) 0x00ffU) << 8) | \
1458 (((UINT16)(x) & (UINT16) 0xff00U) >> 8) ))
1459
1460#define SWAP32(x) \
1461 ((UINT32)( \
1462 (((UINT32)(x) & (UINT32) 0x000000ffUL) << 24) | \
1463 (((UINT32)(x) & (UINT32) 0x0000ff00UL) << 8) | \
1464 (((UINT32)(x) & (UINT32) 0x00ff0000UL) >> 8) | \
1465 (((UINT32)(x) & (UINT32) 0xff000000UL) >> 24) ))
1466
1467#define SWAP64(x) \
1468 ((UINT64)( \
1469 (UINT64)(((UINT64)(x) & (UINT64) 0x00000000000000ffULL) << 56) | \
1470 (UINT64)(((UINT64)(x) & (UINT64) 0x000000000000ff00ULL) << 40) | \
1471 (UINT64)(((UINT64)(x) & (UINT64) 0x0000000000ff0000ULL) << 24) | \
1472 (UINT64)(((UINT64)(x) & (UINT64) 0x00000000ff000000ULL) << 8) | \
1473 (UINT64)(((UINT64)(x) & (UINT64) 0x000000ff00000000ULL) >> 8) | \
1474 (UINT64)(((UINT64)(x) & (UINT64) 0x0000ff0000000000ULL) >> 24) | \
1475 (UINT64)(((UINT64)(x) & (UINT64) 0x00ff000000000000ULL) >> 40) | \
1476 (UINT64)(((UINT64)(x) & (UINT64) 0xff00000000000000ULL) >> 56) ))
1477
1478#ifdef RT_BIG_ENDIAN
1479
1480#define cpu2le64(x) SWAP64((x))
1481#define le2cpu64(x) SWAP64((x))
1482#define cpu2le32(x) SWAP32((x))
1483#define le2cpu32(x) SWAP32((x))
1484#define cpu2le16(x) SWAP16((x))
1485#define le2cpu16(x) SWAP16((x))
1486#define cpu2be64(x) ((UINT64)(x))
1487#define be2cpu64(x) ((UINT64)(x))
1488#define cpu2be32(x) ((UINT32)(x))
1489#define be2cpu32(x) ((UINT32)(x))
1490#define cpu2be16(x) ((UINT16)(x))
1491#define be2cpu16(x) ((UINT16)(x))
1492
1493#else // Little_Endian
1494
1495#define cpu2le64(x) ((UINT64)(x))
1496#define le2cpu64(x) ((UINT64)(x))
1497#define cpu2le32(x) ((UINT32)(x))
1498#define le2cpu32(x) ((UINT32)(x))
1499#define cpu2le16(x) ((UINT16)(x))
1500#define le2cpu16(x) ((UINT16)(x))
1501#define cpu2be64(x) SWAP64((x))
1502#define be2cpu64(x) SWAP64((x))
1503#define cpu2be32(x) SWAP32((x))
1504#define be2cpu32(x) SWAP32((x))
1505#define cpu2be16(x) SWAP16((x))
1506#define be2cpu16(x) SWAP16((x))
1507
1508#endif // RT_BIG_ENDIAN
1509
1510#endif // __RTMP_DEF_H__
1511
1512