arn_regd_common.h revision dd1de3740722a4b99a74005255effebbd20a6d70
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
/*
* Copyright (c) 2008 Atheros Communications Inc.
*
* purpose with or without fee is hereby granted, provided that the above
* copyright notice and this permission notice appear in all copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
#ifndef _ARN_REGD_COMMON_H
#define _ARN_REGD_COMMON_H
#ifdef __cplusplus
extern "C" {
#endif
enum EnumRd {
NO_ENUMRD = 0x00,
NULL1_WORLD = 0x03,
NULL1_ETSIB = 0x07,
NULL1_ETSIC = 0x08,
FCC1_FCCA = 0x10,
FCC1_WORLD = 0x11,
FCC4_FCCA = 0x12,
FCC5_FCCA = 0x13,
FCC6_FCCA = 0x14,
FCC2_FCCA = 0x20,
FCC2_WORLD = 0x21,
FCC2_ETSIC = 0x22,
FCC6_WORLD = 0x23,
FRANCE_RES = 0x31,
FCC3_FCCA = 0x3A,
FCC3_WORLD = 0x3B,
ETSI1_WORLD = 0x37,
ETSI3_ETSIA = 0x32,
ETSI2_WORLD = 0x35,
ETSI3_WORLD = 0x36,
ETSI4_WORLD = 0x30,
ETSI4_ETSIC = 0x38,
ETSI5_WORLD = 0x39,
ETSI6_WORLD = 0x34,
ETSI_RESERVED = 0x33,
MKK1_MKKA = 0x40,
MKK1_MKKB = 0x41,
APL4_WORLD = 0x42,
MKK2_MKKA = 0x43,
APL_RESERVED = 0x44,
APL2_WORLD = 0x45,
APL2_APLC = 0x46,
APL3_WORLD = 0x47,
MKK1_FCCA = 0x48,
APL2_APLD = 0x49,
MKK1_MKKA1 = 0x4A,
MKK1_MKKA2 = 0x4B,
MKK1_MKKC = 0x4C,
APL3_FCCA = 0x50,
APL1_WORLD = 0x52,
APL1_FCCA = 0x53,
APL1_APLA = 0x54,
APL1_ETSIC = 0x55,
APL2_ETSIC = 0x56,
APL5_WORLD = 0x58,
APL6_WORLD = 0x5B,
APL7_FCCA = 0x5C,
APL8_WORLD = 0x5D,
APL9_WORLD = 0x5E,
WOR0_WORLD = 0x60,
WOR1_WORLD = 0x61,
WOR2_WORLD = 0x62,
WOR3_WORLD = 0x63,
WOR4_WORLD = 0x64,
WOR5_ETSIC = 0x65,
WOR01_WORLD = 0x66,
WOR02_WORLD = 0x67,
EU1_WORLD = 0x68,
WOR9_WORLD = 0x69,
WORA_WORLD = 0x6A,
WORB_WORLD = 0x6B,
MKK3_MKKB = 0x80,
MKK3_MKKA2 = 0x81,
MKK3_MKKC = 0x82,
MKK4_MKKB = 0x83,
MKK4_MKKA2 = 0x84,
MKK4_MKKC = 0x85,
MKK5_MKKB = 0x86,
MKK5_MKKA2 = 0x87,
MKK5_MKKC = 0x88,
MKK6_MKKB = 0x89,
MKK6_MKKA2 = 0x8A,
MKK6_MKKC = 0x8B,
MKK7_MKKB = 0x8C,
MKK7_MKKA2 = 0x8D,
MKK7_MKKC = 0x8E,
MKK8_MKKB = 0x8F,
MKK8_MKKA2 = 0x90,
MKK8_MKKC = 0x91,
MKK14_MKKA1 = 0x92,
MKK15_MKKA1 = 0x93,
MKK10_FCCA = 0xD0,
MKK10_MKKA1 = 0xD1,
MKK10_MKKC = 0xD2,
MKK10_MKKA2 = 0xD3,
MKK11_MKKA = 0xD4,
MKK11_FCCA = 0xD5,
MKK11_MKKA1 = 0xD6,
MKK11_MKKC = 0xD7,
MKK11_MKKA2 = 0xD8,
MKK12_MKKA = 0xD9,
MKK12_FCCA = 0xDA,
MKK12_MKKA1 = 0xDB,
MKK12_MKKC = 0xDC,
MKK12_MKKA2 = 0xDD,
MKK13_MKKB = 0xDE,
MKK3_MKKA = 0xF0,
MKK3_MKKA1 = 0xF1,
MKK3_FCCA = 0xF2,
MKK4_MKKA = 0xF3,
MKK4_MKKA1 = 0xF4,
MKK4_FCCA = 0xF5,
MKK9_MKKA = 0xF6,
MKK10_MKKA = 0xF7,
MKK6_MKKA1 = 0xF8,
MKK6_FCCA = 0xF9,
MKK7_MKKA1 = 0xFA,
MKK7_FCCA = 0xFB,
MKK9_FCCA = 0xFC,
MKK9_MKKA1 = 0xFD,
MKK9_MKKC = 0xFE,
MKK9_MKKA2 = 0xFF,
APL1 = 0x0150,
APL2 = 0x0250,
APL3 = 0x0350,
APL4 = 0x0450,
APL5 = 0x0550,
APL6 = 0x0650,
APL7 = 0x0750,
APL8 = 0x0850,
APL9 = 0x0950,
APL10 = 0x1050,
ETSI1 = 0x0130,
ETSI2 = 0x0230,
ETSI3 = 0x0330,
ETSI4 = 0x0430,
ETSI5 = 0x0530,
ETSI6 = 0x0630,
ETSIA = 0x0A30,
ETSIB = 0x0B30,
ETSIC = 0x0C30,
FCC1 = 0x0110,
FCC2 = 0x0120,
FCC3 = 0x0160,
FCC4 = 0x0165,
FCC5 = 0x0510,
FCC6 = 0x0610,
FCCA = 0x0A10,
APLD = 0x0D50,
MKK1 = 0x0140,
MKK2 = 0x0240,
MKK3 = 0x0340,
MKK4 = 0x0440,
MKK5 = 0x0540,
MKK6 = 0x0640,
MKK7 = 0x0740,
MKK8 = 0x0840,
MKK9 = 0x0940,
MKK10 = 0x0B40,
MKK11 = 0x1140,
MKK12 = 0x1240,
MKK13 = 0x0C40,
MKK14 = 0x1440,
MKK15 = 0x1540,
MKKA = 0x0A40,
MKKC = 0x0A50,
NULL1 = 0x0198,
WORLD = 0x0199,
DEBUG_REG_DMN = 0x01ff,
};
enum {
FCC = 0x10,
MKK = 0x40,
ETSI = 0x30,
};
enum {
NO_REQ = 0x00000000,
DISALLOW_ADHOC_11A = 0x00000001,
DISALLOW_ADHOC_11A_TURB = 0x00000002,
NEED_NFC = 0x00000004,
ADHOC_PER_11D = 0x00000008,
ADHOC_NO_11A = 0x00000010,
PUBLIC_SAFETY_DOMAIN = 0x00000020,
LIMIT_FRAME_4MS = 0x00000040,
NO_HOSTAP = 0x00000080,
REQ_MASK = 0x000000FF,
};
#define REG_DOMAIN_2GHZ_MASK (REQ_MASK & \
#define REG_DOMAIN_5GHZ_MASK REQ_MASK
static struct reg_dmn_pair_mapping regDomainPairs[] = {
PSCAN_DEFER, 0},
0},
0},
0},
0},
0},
0},
0},
0},
0},
0},
NO_REQ, PSCAN_DEFER, 0},
0},
0},
0},
PSCAN_DEFER, 0},
PSCAN_DEFER, 0},
0},
0},
0},
};
#define NO_INTERSECT_REQ 0xFFFFFFFF
#define NO_UNION_REQ 0
static struct country_code_to_enum_rd allCountries[] = {
YES, 7000},
YES, 7000},
NO, 7000},
NO, 7000},
YES, 7000},
};
enum {
NO_DFS = 0x0000000000000000ULL,
DFS_FCC3 = 0x0000000000000001ULL,
DFS_ETSI = 0x0000000000000002ULL,
DFS_MKK4 = 0x0000000000000004ULL,
};
enum {
};
static struct RegDmnFreqBand regDmn5GhzFreq[] = {
PSCAN_FCC | PSCAN_ETSI, 0},
PSCAN_FCC | PSCAN_ETSI, 0},
PSCAN_FCC | PSCAN_ETSI, 0},
PSCAN_FCC | PSCAN_ETSI, 0},
PSCAN_MKK3 | PSCAN_FCC, 0},
};
enum {
};
enum {
};
static struct RegDmnFreqBand regDmn2GhzFreq[] = {
};
enum {
};
static struct RegDmnFreqBand regDmn2Ghz11gFreq[] = {
};
enum {
};
static struct regDomain regDomains[] = {
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1)},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
BMZERO},
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1, -1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
/* LINTED E_FALSE_LOGICAL_EXPR */
-1, -1),
/* LINTED E_FALSE_LOGICAL_EXPR */
};
};
static struct japan_bandcheck j_bandcheck[] = {
};
#ifdef __cplusplus
}
#endif
#endif /* _ARN_REGD_COMMON_H */