Prakash Dhavali | 7090c5f | 2015-11-02 17:55:19 -0800 | [diff] [blame^] | 1 | /* |
| 2 | * Copyright (c) 2011, 2014 The Linux Foundation. All rights reserved. |
| 3 | * |
| 4 | * Previously licensed under the ISC license by Qualcomm Atheros, Inc. |
| 5 | * |
| 6 | * |
| 7 | * Permission to use, copy, modify, and/or distribute this software for |
| 8 | * any purpose with or without fee is hereby granted, provided that the |
| 9 | * above copyright notice and this permission notice appear in all |
| 10 | * copies. |
| 11 | * |
| 12 | * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL |
| 13 | * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED |
| 14 | * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE |
| 15 | * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL |
| 16 | * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR |
| 17 | * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER |
| 18 | * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR |
| 19 | * PERFORMANCE OF THIS SOFTWARE. |
| 20 | */ |
| 21 | |
| 22 | /* |
| 23 | * This file was originally distributed by Qualcomm Atheros, Inc. |
| 24 | * under proprietary terms before Copyright ownership was assigned |
| 25 | * to the Linux Foundation. |
| 26 | */ |
| 27 | |
| 28 | /* |
| 29 | * Notifications and licenses are retained for attribution purposes only. |
| 30 | */ |
| 31 | /* |
| 32 | * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting |
| 33 | * Copyright (c) 2005-2006 Atheros Communications, Inc. |
| 34 | * Copyright (c) 2010, Atheros Communications Inc. |
| 35 | * |
| 36 | * Redistribution and use in source and binary forms are permitted |
| 37 | * provided that the following conditions are met: |
| 38 | * 1. The materials contained herein are unmodified and are used |
| 39 | * unmodified. |
| 40 | * 2. Redistributions of source code must retain the above copyright |
| 41 | * notice, this list of conditions and the following NO |
| 42 | * ''WARRANTY'' disclaimer below (''Disclaimer''), without |
| 43 | * modification. |
| 44 | * 3. Redistributions in binary form must reproduce at minimum a |
| 45 | * disclaimer similar to the Disclaimer below and any redistribution |
| 46 | * must be conditioned upon including a substantially similar |
| 47 | * Disclaimer requirement for further binary redistribution. |
| 48 | * 4. Neither the names of the above-listed copyright holders nor the |
| 49 | * names of any contributors may be used to endorse or promote |
| 50 | * product derived from this software without specific prior written |
| 51 | * permission. |
| 52 | * |
| 53 | * NO WARRANTY |
| 54 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 55 | * ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 56 | * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, |
| 57 | * MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| 58 | * IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE |
| 59 | * FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 60 | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
| 61 | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 62 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 63 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT |
| 64 | * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
| 65 | * SUCH DAMAGES. |
| 66 | * |
| 67 | * This module contains the regulatory domain private structure definitions . |
| 68 | * |
| 69 | */ |
| 70 | |
| 71 | #ifndef REGULATORY_H |
| 72 | #define REGULATORY_H |
| 73 | |
| 74 | enum { |
| 75 | CTRY_DEBUG = 0x1ff, /* debug country code */ |
| 76 | CTRY_DEFAULT = 0 /* default country code */ |
| 77 | }; |
| 78 | |
| 79 | #define BMLEN 2 /* Use 2 64 bit uint for channel bitmask */ |
| 80 | |
| 81 | /* |
| 82 | * The following table is the master list for all different freqeuncy |
| 83 | * bands with the complete matrix of all possible flags and settings |
| 84 | * for each band if it is used in ANY reg domain. |
| 85 | */ |
| 86 | |
| 87 | #define DEF_REGDMN FCC3_FCCA |
| 88 | #define DEF_DMN_5 FCC1 |
| 89 | #define DEF_DMN_2 FCCA |
| 90 | #define COUNTRY_ERD_FLAG 0x8000 |
| 91 | #define WORLDWIDE_ROAMING_FLAG 0x4000 |
| 92 | #define SUPER_DOMAIN_MASK 0x0fff |
| 93 | #define COUNTRY_CODE_MASK 0x3fff |
| 94 | #define CF_INTERFERENCE (CHANNEL_CW_INT | CHANNEL_RADAR_INT) |
| 95 | |
| 96 | /* |
| 97 | * The following describe the bit masks for different passive scan |
| 98 | * capability/requirements per regdomain. |
| 99 | */ |
| 100 | #define NO_PSCAN 0x0ULL |
| 101 | #define PSCAN_FCC 0x0000000000000001ULL |
| 102 | #define PSCAN_FCC_T 0x0000000000000002ULL |
| 103 | #define PSCAN_ETSI 0x0000000000000004ULL |
| 104 | #define PSCAN_MKK1 0x0000000000000008ULL |
| 105 | #define PSCAN_MKK2 0x0000000000000010ULL |
| 106 | #define PSCAN_MKKA 0x0000000000000020ULL |
| 107 | #define PSCAN_MKKA_G 0x0000000000000040ULL |
| 108 | #define PSCAN_ETSIA 0x0000000000000080ULL |
| 109 | #define PSCAN_ETSIB 0x0000000000000100ULL |
| 110 | #define PSCAN_ETSIC 0x0000000000000200ULL |
| 111 | #define PSCAN_WWR 0x0000000000000400ULL |
| 112 | #define PSCAN_MKKA1 0x0000000000000800ULL |
| 113 | #define PSCAN_MKKA1_G 0x0000000000001000ULL |
| 114 | #define PSCAN_MKKA2 0x0000000000002000ULL |
| 115 | #define PSCAN_MKKA2_G 0x0000000000004000ULL |
| 116 | #define PSCAN_MKK3 0x0000000000008000ULL |
| 117 | #define PSCAN_EXT_CHAN 0x0000000000010000ULL |
| 118 | #define PSCAN_DEFER 0x7FFFFFFFFFFFFFFFULL |
| 119 | #define IS_ECM_CHAN 0x8000000000000000ULL |
| 120 | |
| 121 | /* define in ah_eeprom.h */ |
| 122 | #define SD_NO_CTL 0xf0 |
| 123 | #define NO_CTL 0xff |
| 124 | #define CTL_MODE_M 0x0f |
| 125 | #define CTL_11A 0 |
| 126 | #define CTL_11B 1 |
| 127 | #define CTL_11G 2 |
| 128 | #define CTL_TURBO 3 |
| 129 | #define CTL_108G 4 |
| 130 | #define CTL_2GHT20 5 |
| 131 | #define CTL_5GHT20 6 |
| 132 | #define CTL_2GHT40 7 |
| 133 | #define CTL_5GHT40 8 |
| 134 | #define CTL_5GVHT80 9 |
| 135 | |
| 136 | #ifndef ATH_NO_5G_SUPPORT |
| 137 | #define REGDMN_MODE_11A_TURBO REGDMN_MODE_108A |
| 138 | #define CHAN_11A_BMZERO BMZERO, |
| 139 | #define CHAN_11A_BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l) \ |
| 140 | BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l), |
| 141 | #else |
| 142 | /* remove 11a channel info if 11a is not supported */ |
| 143 | #define CHAN_11A_BMZERO |
| 144 | #define CHAN_11A_BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l) |
| 145 | #endif |
| 146 | #ifndef ATH_REMOVE_2G_TURBO_RD_TABLE |
| 147 | #define REGDMN_MODE_11G_TURBO REGDMN_MODE_108G |
| 148 | #define CHAN_TURBO_G_BMZERO BMZERO, |
| 149 | #define CHAN_TURBO_G_BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l) \ |
| 150 | BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l), |
| 151 | #else |
| 152 | /* remove turbo-g channel info if turbo-g is not supported */ |
| 153 | #define CHAN_TURBO_G(a, b) |
| 154 | #define CHAN_TURBO_G_BMZERO |
| 155 | #define CHAN_TURBO_G_BM(_a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l) |
| 156 | #endif |
| 157 | |
| 158 | #define BMLEN 2 /* Use 2 64 bit uint for channel bitmask |
| 159 | NB: Must agree with macro below (BM) */ |
| 160 | #define BMZERO {(uint64_t) 0, (uint64_t) 0} /* BMLEN zeros */ |
| 161 | |
| 162 | #ifndef SUPPRESS_SHIFT_WARNING |
| 163 | #define SUPPRESS_SHIFT_WARNING |
| 164 | #endif |
| 165 | |
| 166 | /* Suppress MS warning "C4293: 'operator' : shift count negative or too big, |
| 167 | * undefined behavior" |
| 168 | * This is safe below because the the operand is properly range-checked, but |
| 169 | * the compiler can't reason that out before it spits the warning. |
| 170 | * Using suppress, so the warning can still be enabled globally to catch other |
| 171 | * incorrect uses. |
| 172 | */ |
| 173 | #define BM(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh, _fi, _fj, _fk, _fl) \ |
| 174 | SUPPRESS_SHIFT_WARNING \ |
| 175 | {((((_fa >= 0) && (_fa < 64)) ? (((uint64_t) 1) << _fa) : (uint64_t) 0) | \ |
| 176 | (((_fb >= 0) && (_fb < 64)) ? (((uint64_t) 1) << _fb) : (uint64_t) 0) | \ |
| 177 | (((_fc >= 0) && (_fc < 64)) ? (((uint64_t) 1) << _fc) : (uint64_t) 0) | \ |
| 178 | (((_fd >= 0) && (_fd < 64)) ? (((uint64_t) 1) << _fd) : (uint64_t) 0) | \ |
| 179 | (((_fe >= 0) && (_fe < 64)) ? (((uint64_t) 1) << _fe) : (uint64_t) 0) | \ |
| 180 | (((_ff >= 0) && (_ff < 64)) ? (((uint64_t) 1) << _ff) : (uint64_t) 0) | \ |
| 181 | (((_fg >= 0) && (_fg < 64)) ? (((uint64_t) 1) << _fg) : (uint64_t) 0) | \ |
| 182 | (((_fh >= 0) && (_fh < 64)) ? (((uint64_t) 1) << _fh) : (uint64_t) 0) | \ |
| 183 | (((_fi >= 0) && (_fi < 64)) ? (((uint64_t) 1) << _fi) : (uint64_t) 0) | \ |
| 184 | (((_fj >= 0) && (_fj < 64)) ? (((uint64_t) 1) << _fj) : (uint64_t) 0) | \ |
| 185 | (((_fk >= 0) && (_fk < 64)) ? (((uint64_t) 1) << _fk) : (uint64_t) 0) | \ |
| 186 | (((_fl >= 0) && (_fl < 64)) ? (((uint64_t) 1) << _fl) : (uint64_t) 0) ) \ |
| 187 | ,(((((_fa > 63) && (_fa < 128)) ? (((uint64_t) 1) << (_fa - 64)) : (uint64_t) 0) | \ |
| 188 | (((_fb > 63) && (_fb < 128)) ? (((uint64_t) 1) << (_fb - 64)) : (uint64_t) 0) | \ |
| 189 | (((_fc > 63) && (_fc < 128)) ? (((uint64_t) 1) << (_fc - 64)) : (uint64_t) 0) | \ |
| 190 | (((_fd > 63) && (_fd < 128)) ? (((uint64_t) 1) << (_fd - 64)) : (uint64_t) 0) | \ |
| 191 | (((_fe > 63) && (_fe < 128)) ? (((uint64_t) 1) << (_fe - 64)) : (uint64_t) 0) | \ |
| 192 | (((_ff > 63) && (_ff < 128)) ? (((uint64_t) 1) << (_ff - 64)) : (uint64_t) 0) | \ |
| 193 | (((_fg > 63) && (_fg < 128)) ? (((uint64_t) 1) << (_fg - 64)) : (uint64_t) 0) | \ |
| 194 | (((_fh > 63) && (_fh < 128)) ? (((uint64_t) 1) << (_fh - 64)) : (uint64_t) 0) | \ |
| 195 | (((_fi > 63) && (_fi < 128)) ? (((uint64_t) 1) << (_fi - 64)) : (uint64_t) 0) | \ |
| 196 | (((_fj > 63) && (_fj < 128)) ? (((uint64_t) 1) << (_fj - 64)) : (uint64_t) 0) | \ |
| 197 | (((_fk > 63) && (_fk < 128)) ? (((uint64_t) 1) << (_fk - 64)) : (uint64_t) 0) | \ |
| 198 | (((_fl > 63) && (_fl < 128)) ? (((uint64_t) 1) << (_fl - 64)) : (uint64_t) 0)))} |
| 199 | |
| 200 | /* |
| 201 | * THE following table is the mapping of regdomain pairs specified by |
| 202 | * an 8 bit regdomain value to the individual unitary reg domains |
| 203 | */ |
| 204 | |
| 205 | typedef struct reg_dmn_pair_mapping { |
| 206 | uint16_t regDmnEnum; /* 16 bit reg domain pair */ |
| 207 | uint16_t regDmn5GHz; /* 5GHz reg domain */ |
| 208 | uint16_t regDmn2GHz; /* 2GHz reg domain */ |
| 209 | uint32_t flags5GHz; /* Requirements flags (AdHoc |
| 210 | disallow, noise floor cal needed, |
| 211 | etc) */ |
| 212 | uint32_t flags2GHz; /* Requirements flags (AdHoc |
| 213 | disallow, noise floor cal needed, |
| 214 | etc) */ |
| 215 | uint64_t pscanMask; /* Passive Scan flags which |
| 216 | can override unitary domain |
| 217 | passive scan flags. This |
| 218 | value is used as a mask on |
| 219 | the unitary flags */ |
| 220 | uint16_t singleCC; /* Country code of single country if |
| 221 | a one-on-one mapping exists */ |
| 222 | } REG_DMN_PAIR_MAPPING; |
| 223 | |
| 224 | typedef struct { |
| 225 | uint16_t countryCode; |
| 226 | uint16_t regDmnEnum; |
| 227 | const char *isoName; |
| 228 | const char *name; |
| 229 | uint16_t allow11g : 1, allow11aTurbo : 1, allow11gTurbo : 1, allow11ng20 : 1, /* HT-20 allowed in 2GHz? */ |
| 230 | allow11ng40 : 1, /* HT-40 allowed in 2GHz? */ |
| 231 | allow11na20 : 1, /* HT-20 allowed in 5GHz? */ |
| 232 | allow11na40 : 1, /* HT-40 VHT-40 allowed in 5GHz? */ |
| 233 | allow11na80 : 1; /* VHT-80 allowed in 5GHz */ |
| 234 | uint16_t outdoorChanStart; |
| 235 | } COUNTRY_CODE_TO_ENUM_RD; |
| 236 | |
| 237 | typedef struct RegDmnFreqBand { |
| 238 | uint16_t lowChannel; /* Low channel center in MHz */ |
| 239 | uint16_t highChannel; /* High Channel center in MHz */ |
| 240 | uint8_t powerDfs; /* Max power (dBm) for channel |
| 241 | range when using DFS */ |
| 242 | uint8_t antennaMax; /* Max allowed antenna gain */ |
| 243 | uint8_t channelBW; /* Bandwidth of the channel */ |
| 244 | uint8_t channelSep; /* Channel separation within |
| 245 | the band */ |
| 246 | uint64_t useDfs; /* Use DFS in the RegDomain |
| 247 | if corresponding bit is set */ |
| 248 | uint64_t usePassScan; /* Use Passive Scan in the RegDomain |
| 249 | if corresponding bit is set */ |
| 250 | uint8_t regClassId; /* Regulatory class id */ |
| 251 | } REG_DMN_FREQ_BAND; |
| 252 | |
| 253 | typedef struct reg_domain { |
| 254 | uint16_t regDmnEnum; /* value from EnumRd table */ |
| 255 | uint8_t conformance_test_limit; |
| 256 | uint64_t dfsMask; /* DFS bitmask for 5Ghz tables */ |
| 257 | uint64_t pscan; /* Bitmask for passive scan */ |
| 258 | uint32_t flags; /* Requirement flags (AdHoc disallow, noise |
| 259 | floor cal needed, etc) */ |
| 260 | uint64_t chan11a[BMLEN]; /* 128 bit bitmask for channel/band selection */ |
| 261 | uint64_t chan11a_turbo[BMLEN]; /* 128 bit bitmask for channel/band select */ |
| 262 | uint64_t chan11a_dyn_turbo[BMLEN]; /* 128 bit mask for chan/band select */ |
| 263 | |
| 264 | uint64_t chan11b[BMLEN]; /* 128 bit bitmask for channel/band selection */ |
| 265 | uint64_t chan11g[BMLEN]; /* 128 bit bitmask for channel/band selection */ |
| 266 | uint64_t chan11g_turbo[BMLEN]; |
| 267 | } REG_DOMAIN; |
| 268 | |
| 269 | struct cmode { |
| 270 | uint32_t mode; |
| 271 | uint32_t flags; |
| 272 | }; |
| 273 | |
| 274 | #define YES true |
| 275 | #define NO false |
| 276 | |
| 277 | /* mapping of old skus to new skus for Japan */ |
| 278 | typedef struct { |
| 279 | uint16_t domain; |
| 280 | uint16_t newdomain_pre53; /* pre eeprom version 5.3 */ |
| 281 | uint16_t newdomain_post53; /* post eeprom version 5.3 */ |
| 282 | } JAPAN_SKUMAP; |
| 283 | |
| 284 | /* mapping of countrycode to new skus for Japan */ |
| 285 | typedef struct { |
| 286 | uint16_t ccode; |
| 287 | uint16_t newdomain_pre53; /* pre eeprom version 5.3 */ |
| 288 | uint16_t newdomain_post53; /* post eeprom version 5.3 */ |
| 289 | } JAPAN_COUNTRYMAP; |
| 290 | |
| 291 | /* check rd flags in eeprom for japan */ |
| 292 | typedef struct { |
| 293 | uint16_t freqbandbit; |
| 294 | uint32_t eepromflagtocheck; |
| 295 | } JAPAN_BANDCHECK; |
| 296 | |
| 297 | /* Common mode power table for 5Ghz */ |
| 298 | typedef struct { |
| 299 | uint16_t lchan; |
| 300 | uint16_t hchan; |
| 301 | uint8_t pwrlvl; |
| 302 | } COMMON_MODE_POWER; |
| 303 | |
| 304 | typedef enum { |
| 305 | COUNTRY_CODE_SET_BY_CORE, |
| 306 | COUNTRY_CODE_SET_BY_DRIVER, |
| 307 | COUNTRY_CODE_SET_BY_USER |
| 308 | } COUNTRY_CODE_SOURCE; |
| 309 | |
| 310 | struct regulatory { |
| 311 | uint32_t reg_domain; |
| 312 | uint32_t eeprom_rd_ext; |
| 313 | uint16_t country_code; |
| 314 | uint8_t alpha2[3]; |
| 315 | uint8_t dfs_region; |
| 316 | uint8_t ctl_2g; |
| 317 | uint8_t ctl_5g; |
| 318 | const void *regpair; |
| 319 | COUNTRY_CODE_SOURCE cc_src; |
| 320 | uint32_t reg_flags; |
| 321 | }; |
| 322 | /* Multi-Device RegDomain Support */ |
| 323 | typedef struct ath_hal_reg_dmn_tables { |
| 324 | /* regDomainPairs: Map of 8-bit regdomain values to unitary reg domain */ |
| 325 | const REG_DMN_PAIR_MAPPING *regDomainPairs; |
| 326 | /* allCountries: Master list of freq. bands (flags, settings) */ |
| 327 | const COUNTRY_CODE_TO_ENUM_RD *allCountries; |
| 328 | /* regDomains: Array of supported reg domains */ |
| 329 | const REG_DOMAIN *regDomains; |
| 330 | |
| 331 | uint16_t regDomainPairsCt; /* Num reg domain pair entries */ |
| 332 | uint16_t allCountriesCt; /* Num country entries */ |
| 333 | uint16_t regDomainsCt; /* Num reg domain entries */ |
| 334 | } HAL_REG_DMN_TABLES; |
| 335 | |
| 336 | /* |
| 337 | * Country/Region Codes from MS WINNLS.H |
| 338 | * Numbering from ISO 3166 |
| 339 | */ |
| 340 | /** @brief country code definitions |
| 341 | * - country definition: CTRY_DEBUG |
| 342 | * - country string: DB |
| 343 | * - country ID: 0 |
| 344 | * - country definition: CTRY_DEFAULT |
| 345 | * - country string: NA |
| 346 | * - country ID: 0 |
| 347 | * - country definition: CTRY_ALBANIA |
| 348 | * - country string: AL |
| 349 | * - country ID: 8 |
| 350 | * - country definition: CTRY_ALGERIA |
| 351 | * - country string: DZ |
| 352 | * - country ID: 12 |
| 353 | * - country definition: CTRY_ARGENTINA |
| 354 | * - country string: AR |
| 355 | * - country ID: 32 |
| 356 | * - country definition: CTRY_ARMENIA |
| 357 | * - country string: AM |
| 358 | * - country ID: 51 |
| 359 | * - country definition: CTRY_AUSTRALIA |
| 360 | * - country string: AU |
| 361 | * - country ID: 36 |
| 362 | * - country definition: CTRY_AUSTRALIA2 |
| 363 | * - country string: AU2 |
| 364 | * - country ID: 5000 |
| 365 | * - country definition: CTRY_AUSTRIA |
| 366 | * - country string: AT |
| 367 | * - country ID: 40 |
| 368 | * - country definition: CTRY_AZERBAIJAN |
| 369 | * - country string: AZ |
| 370 | * - country ID: 31 |
| 371 | * - country definition: CTRY_BAHAMAS |
| 372 | * - country string: BS |
| 373 | * - country ID: 44 |
| 374 | * - country definition: CTRY_BAHRAIN |
| 375 | * - country string: BH |
| 376 | * - country ID: 48 |
| 377 | * - country definition: CTRY_BELARUS |
| 378 | * - country string: BY |
| 379 | * - country ID: 112 |
| 380 | * - country definition: CTRY_BELGIUM |
| 381 | * - country string: BE |
| 382 | * - country ID: 56 |
| 383 | * - country definition: CTRY_BELIZE |
| 384 | * - country string: BZ |
| 385 | * - country ID: 84 |
| 386 | * - country definition: CTRY_BERMUDA |
| 387 | * - country string: BM |
| 388 | * - country ID: 60 |
| 389 | * - country definition: CTRY_BOLIVIA |
| 390 | * - country string: BO |
| 391 | * - country ID: 68 |
| 392 | * - country definition: CTRY_BOSNIA_HERZEGOWINA |
| 393 | * - country string: 70 |
| 394 | * - country ID: BA |
| 395 | * - country definition: CTRY_BRAZIL |
| 396 | * - country string: BR |
| 397 | * - country ID: 76 |
| 398 | * - country definition: CTRY_BRUNEI_DARUSSALAM |
| 399 | * - country string: BN |
| 400 | * - country ID: 96 |
| 401 | * - country definition: CTRY_BULGARIA |
| 402 | * - country string: BG |
| 403 | * - country ID: 100 |
| 404 | * - country definition: CTRY_CANADA |
| 405 | * - country string: CA |
| 406 | * - country ID: 124 |
| 407 | * - country definition: CTRY_CANADA2 |
| 408 | * - country string: CA2 |
| 409 | * - country ID: 5001 |
| 410 | * - country definition: CTRY_CHILE |
| 411 | * - country string: CL |
| 412 | * - country ID: 152 |
| 413 | * - country definition: CTRY_CHINA |
| 414 | * - country string: CN |
| 415 | * - country ID: 152 |
| 416 | * - country definition: CTRY_COLOMBIA |
| 417 | * - country string: CO |
| 418 | * - country ID: 170 |
| 419 | * - country definition: CTRY_COSTA_RICA |
| 420 | * - country string: CR |
| 421 | * - country ID: 191 |
| 422 | * - country definition: CTRY_CROATIA |
| 423 | * - country string: HR |
| 424 | * - country ID: 191 |
| 425 | * - country definition: CTRY_CYPRUS |
| 426 | * - country string: CY |
| 427 | * - country ID: 196 |
| 428 | * - country definition: CTRY_CZECH |
| 429 | * - country string: CZ |
| 430 | * - country ID: 203 |
| 431 | * - country definition: CTRY_DENMARK |
| 432 | * - country string: DK |
| 433 | * - country ID: 208 |
| 434 | * - country definition: CTRY_DOMINICAN_REPUBLIC |
| 435 | * - country string: DO |
| 436 | * - country ID: 214 |
| 437 | * - country definition: CTRY_ECUADOR |
| 438 | * - country string: EC |
| 439 | * - country ID: 218 |
| 440 | * - country definition: CTRY_EGYPT |
| 441 | * - country string: EG |
| 442 | * - country ID: 818 |
| 443 | * - country definition: CTRY_EL_SALVADOR |
| 444 | * - country string: SV |
| 445 | * - country ID: 222 |
| 446 | * - country definition: CTRY_ESTONIA |
| 447 | * - country string: EE |
| 448 | * - country ID: 233 |
| 449 | * - country definition: CTRY_FAEROE_ISLANDS |
| 450 | * - country string: FO |
| 451 | * - country ID: 234 |
| 452 | * - country definition: CTRY_FINLAND |
| 453 | * - country string: FI |
| 454 | * - country ID: 246 |
| 455 | * - country definition: CTRY_FRANCE |
| 456 | * - country string: FR |
| 457 | * - country ID: 250 |
| 458 | * - country definition: CTRY_FRANCE2 |
| 459 | * - country string: F2 |
| 460 | * - country ID: 255 |
| 461 | * - country definition: CTRY_GEORGIA |
| 462 | * - country string: GE |
| 463 | * - country ID: 268 |
| 464 | * - country definition: CTRY_GERMANY |
| 465 | * - country string: DE |
| 466 | * - country ID: 276 |
| 467 | * - country definition: CTRY_GREECE |
| 468 | * - country string: GR |
| 469 | * - country ID: 300 |
| 470 | * - country definition: CTRY_GUATEMALA |
| 471 | * - country string: GT |
| 472 | * - country ID: 320 |
| 473 | * - country definition: CTRY_HONDURAS |
| 474 | * - country string: HN |
| 475 | * - country ID: 340 |
| 476 | * - country definition: CTRY_HONG_KONG |
| 477 | * - country string: HK |
| 478 | * - country ID: 344 |
| 479 | * - country definition: CTRY_HUNGARY |
| 480 | * - country string: HU |
| 481 | * - country ID: 348 |
| 482 | * - country definition: CTRY_ICELAND |
| 483 | * - country string: IS |
| 484 | * - country ID: 352 |
| 485 | * - country definition: CTRY_INDIA |
| 486 | * - country string: IN |
| 487 | * - country ID: 356 |
| 488 | * - country definition: CTRY_INDONESIA |
| 489 | * - country string: ID |
| 490 | * - country ID: 360 |
| 491 | * - country definition: CTRY_IRAN |
| 492 | * - country string: IR |
| 493 | * - country ID: 364 |
| 494 | * - country definition: CTRY_IRAQ |
| 495 | * - country string: IQ |
| 496 | * - country ID: 368 |
| 497 | * - country definition: CTRY_IRELAND |
| 498 | * - country string: IE |
| 499 | * - country ID: 372 |
| 500 | * - country definition: CTRY_ISRAEL |
| 501 | * - country string: IL |
| 502 | * - country ID: 376 |
| 503 | * - country definition: CTRY_ITALY |
| 504 | * - country string: IT |
| 505 | * - country ID: 380 |
| 506 | * - country definition: CTRY_JAMAICA |
| 507 | * - country string: JM |
| 508 | * - country ID: 388 |
| 509 | * - country definition: CTRY_JAPAN |
| 510 | * - country string: JP |
| 511 | * - country ID: 392 |
| 512 | * - country definition: CTRY_JAPAN1 |
| 513 | * - country string: JP1 |
| 514 | * - country ID: 393 |
| 515 | * - country definition: CTRY_JAPAN2 |
| 516 | * - country string: JP2 |
| 517 | * - country ID: 394 |
| 518 | * - country definition: CTRY_JAPAN3 |
| 519 | * - country string: JP3 |
| 520 | * - country ID: 395 |
| 521 | * - country definition: CTRY_JAPAN4 |
| 522 | * - country string: JP4 |
| 523 | * - country ID: 396 |
| 524 | * - country definition: CTRY_JAPAN5 |
| 525 | * - country string: JP5 |
| 526 | * - country ID: 397 |
| 527 | * - country definition: CTRY_JAPAN6 |
| 528 | * - country string: JP6 |
| 529 | * - country ID: 399 |
| 530 | * - country definition: CTRY_JAPAN7 |
| 531 | * - country string: JP7 |
| 532 | * - country ID: 4007 |
| 533 | * - country definition: CTRY_JAPAN8 |
| 534 | * - country string: JP8 |
| 535 | * - country ID: 4008 |
| 536 | * - country definition: CTRY_JAPAN9 |
| 537 | * - country string: JP9 |
| 538 | * - country ID: 4009 |
| 539 | * - country definition: CTRY_JAPAN10 |
| 540 | * - country string: JP10 |
| 541 | * - country ID: 4010 |
| 542 | * - country definition: CTRY_JAPAN11 |
| 543 | * - country string: JP11 |
| 544 | * - country ID: 4011 |
| 545 | * - country definition: CTRY_JAPAN12 |
| 546 | * - country string: JP12 |
| 547 | * - country ID: 4012 |
| 548 | * - country definition: CTRY_JAPAN13 |
| 549 | * - country string: JP13 |
| 550 | * - country ID: 4013 |
| 551 | * - country definition: CTRY_JAPAN14 |
| 552 | * - country string: JP14 |
| 553 | * - country ID: 4014 |
| 554 | * - country definition: CTRY_JAPAN15 |
| 555 | * - country string: JP15 |
| 556 | * - country ID: 4015 |
| 557 | * - country definition: CTRY_JAPAN16 |
| 558 | * - country string: JP16 |
| 559 | * - country ID: 4016 |
| 560 | * - country definition: CTRY_JAPAN17 |
| 561 | * - country string: JP17 |
| 562 | * - country ID: 4017 |
| 563 | * - country definition: CTRY_JAPAN18 |
| 564 | * - country string: JP18 |
| 565 | * - country ID: 4018 |
| 566 | * - country definition: CTRY_JAPAN19 |
| 567 | * - country string: JP19 |
| 568 | * - country ID: 4019 |
| 569 | * - country definition: CTRY_JAPAN20 |
| 570 | * - country string: JP20 |
| 571 | * - country ID: 4020 |
| 572 | * - country definition: CTRY_JAPAN21 |
| 573 | * - country string: JP21 |
| 574 | * - country ID: 4021 |
| 575 | * - country definition: CTRY_JAPAN22 |
| 576 | * - country string: JP22 |
| 577 | * - country ID: 4022 |
| 578 | * - country definition: CTRY_JAPAN23 |
| 579 | * - country string: JP23 |
| 580 | * - country ID: 4023 |
| 581 | * - country definition: CTRY_JAPAN24 |
| 582 | * - country string: JP24 |
| 583 | * - country ID: 4024 |
| 584 | * - country definition: CTRY_JAPAN25 |
| 585 | * - country string: JP25 |
| 586 | * - country ID: 4025 |
| 587 | * - country definition: CTRY_JAPAN26 |
| 588 | * - country string: JP26 |
| 589 | * - country ID: 4026 |
| 590 | * - country definition: CTRY_JAPAN27 |
| 591 | * - country string: JP27 |
| 592 | * - country ID: 4027 |
| 593 | * - country definition: CTRY_JAPAN28 |
| 594 | * - country string: JP28 |
| 595 | * - country ID: 4028 |
| 596 | * - country definition: CTRY_JAPAN29 |
| 597 | * - country string: JP29 |
| 598 | * - country ID: 4029 |
| 599 | * - country definition: CTRY_JAPAN30 |
| 600 | * - country string: JP30 |
| 601 | * - country ID: 4030 |
| 602 | * - country definition: CTRY_JAPAN31 |
| 603 | * - country string: JP31 |
| 604 | * - country ID: 4031 |
| 605 | * - country definition: CTRY_JAPAN32 |
| 606 | * - country string: JP32 |
| 607 | * - country ID: 4032 |
| 608 | * - country definition: CTRY_JAPAN33 |
| 609 | * - country string: JP33 |
| 610 | * - country ID: 4033 |
| 611 | * - country definition: CTRY_JAPAN34 |
| 612 | * - country string: JP34 |
| 613 | * - country ID: 4034 |
| 614 | * - country definition: CTRY_JAPAN35 |
| 615 | * - country string: JP35 |
| 616 | * - country ID: 4035 |
| 617 | * - country definition: CTRY_JAPAN36 |
| 618 | * - country string: JP36 |
| 619 | * - country ID: 4036 |
| 620 | * - country definition: CTRY_JAPAN37 |
| 621 | * - country string: JP37 |
| 622 | * - country ID: 4037 |
| 623 | * - country definition: CTRY_JAPAN38 |
| 624 | * - country string: JP38 |
| 625 | * - country ID: 4038 |
| 626 | * - country definition: CTRY_JAPAN39 |
| 627 | * - country string: JP39 |
| 628 | * - country ID: 4039 |
| 629 | * - country definition: CTRY_JAPAN40 |
| 630 | * - country string: JP40 |
| 631 | * - country ID: 4040 |
| 632 | * - country definition: CTRY_JAPAN41 |
| 633 | * - country string: JP41 |
| 634 | * - country ID: 4041 |
| 635 | * - country definition: CTRY_JAPAN42 |
| 636 | * - country string: JP42 |
| 637 | * - country ID: 4042 |
| 638 | * - country definition: CTRY_JAPAN43 |
| 639 | * - country string: JP43 |
| 640 | * - country ID: 4043 |
| 641 | * - country definition: CTRY_JAPAN44 |
| 642 | * - country string: JP44 |
| 643 | * - country ID: 4044 |
| 644 | * - country definition: CTRY_JAPAN45 |
| 645 | * - country string: JP45 |
| 646 | * - country ID: 4045 |
| 647 | * - country definition: CTRY_JAPAN46 |
| 648 | * - country string: JP46 |
| 649 | * - country ID: 4046 |
| 650 | * - country definition: CTRY_JAPAN47 |
| 651 | * - country string: JP47 |
| 652 | * - country ID: 4047 |
| 653 | * - country definition: CTRY_JAPAN48 |
| 654 | * - country string: JP48 |
| 655 | * - country ID: 4048 |
| 656 | * - country definition: CTRY_JAPAN49 |
| 657 | * - country string: JP49 |
| 658 | * - country ID: 4049 |
| 659 | * - country definition: CTRY_JAPAN50 |
| 660 | * - country string: JP50 |
| 661 | * - country ID: 4050 |
| 662 | * - country definition: CTRY_JAPAN51 |
| 663 | * - country string: JP51 |
| 664 | * - country ID: 4051 |
| 665 | * - country definition: CTRY_JAPAN52 |
| 666 | * - country string: JP52 |
| 667 | * - country ID: 4052 |
| 668 | * - country definition: CTRY_JAPAN53 |
| 669 | * - country string: JP53 |
| 670 | * - country ID: 4053 |
| 671 | * - country definition: CTRY_JAPAN54 |
| 672 | * - country string: JP54 |
| 673 | * - country ID: 4054 |
| 674 | * - country definition: CTRY_JAPAN55 |
| 675 | * - country string: JP55 |
| 676 | * - country ID: 4055 |
| 677 | * - country definition: CTRY_JAPAN56 |
| 678 | * - country string: JP56 |
| 679 | * - country ID: 4056 |
| 680 | * - country definition: CTRY_JORDAN |
| 681 | * - country string: JO |
| 682 | * - country ID: 400 |
| 683 | * - country definition: CTRY_KAZAKHSTAN |
| 684 | * - country string: KZ |
| 685 | * - country ID: 398 |
| 686 | * - country definition: CTRY_KENYA |
| 687 | * - country string: KE |
| 688 | * - country ID: 404 |
| 689 | * - country definition: CTRY_KOREA_NORTH |
| 690 | * - country string: KP |
| 691 | * - country ID: 408 |
| 692 | * - country definition: CTRY_KOREA_ROC |
| 693 | * - country string: KR |
| 694 | * - country ID: 410 |
| 695 | * - country definition: CTRY_KOREA_ROC2 |
| 696 | * - country string: KR2 |
| 697 | * - country ID: 411 |
| 698 | * - country definition: CTRY_KOREA_ROC3 |
| 699 | * - country string: KR3 |
| 700 | * - country ID: 412 |
| 701 | * - country definition: CTRY_KUWAIT |
| 702 | * - country string: KW |
| 703 | * - country ID: 414 |
| 704 | * - country definition: CTRY_LATVIA |
| 705 | * - country string: LV |
| 706 | * - country ID: 428 |
| 707 | * - country definition: CTRY_LEBANON |
| 708 | * - country string: LB |
| 709 | * - country ID: 422 |
| 710 | * - country definition: CTRY_LIBYA |
| 711 | * - country string: LY |
| 712 | * - country ID: 434 |
| 713 | * - country definition: CTRY_LIECHTENSTEIN |
| 714 | * - country string: LI |
| 715 | * - country ID: 438 |
| 716 | * - country definition: CTRY_LITHUANIA |
| 717 | * - country string: LT |
| 718 | * - country ID: 440 |
| 719 | * - country definition: CTRY_LUXEMBOURG |
| 720 | * - country string: LU |
| 721 | * - country ID: 442 |
| 722 | * - country definition: CTRY_MACAU |
| 723 | * - country string: MO |
| 724 | * - country ID: 446 |
| 725 | * - country definition: CTRY_MACEDONIA |
| 726 | * - country string: MK |
| 727 | * - country ID: 807 |
| 728 | * - country definition: CTRY_MALAYSIA |
| 729 | * - country string: MY |
| 730 | * - country ID: 458 |
| 731 | * - country definition: CTRY_MALTA |
| 732 | * - country string: MT |
| 733 | * - country ID: 470 |
| 734 | * - country definition: CTRY_MAURITIUS |
| 735 | * - country string: MU |
| 736 | * - country ID: 480 |
| 737 | * - country definition: CTRY_MEXICO |
| 738 | * - country string: MX |
| 739 | * - country ID: 484 |
| 740 | * - country definition: CTRY_MONACO |
| 741 | * - country string: MC |
| 742 | * - country ID: 492 |
| 743 | * - country definition: CTRY_MOROCCO |
| 744 | * - country string: MA |
| 745 | * - country ID: 504 |
| 746 | * - country definition: CTRY_NETHERLANDS |
| 747 | * - country string: NL |
| 748 | * - country ID: 528 |
| 749 | * - country definition: CTRY_NEW_ZEALAND |
| 750 | * - country string: NZ |
| 751 | * - country ID: 554 |
| 752 | * - country definition: CTRY_NICARAGUA |
| 753 | * - country string: NI |
| 754 | * - country ID: 558 |
| 755 | * - country definition: CTRY_NORWAY |
| 756 | * - country string: NO |
| 757 | * - country ID: 578 |
| 758 | * - country definition: CTRY_OMAN |
| 759 | * - country string: OM |
| 760 | * - country ID: 512 |
| 761 | * - country definition: CTRY_PAKISTAN |
| 762 | * - country string: PK |
| 763 | * - country ID: 586 |
| 764 | * - country definition: CTRY_PANAMA |
| 765 | * - country string: PA |
| 766 | * - country ID: 591 |
| 767 | * - country definition: CTRY_PARAGUAY |
| 768 | * - country string: PY |
| 769 | * - country ID: 600 |
| 770 | * - country definition: CTRY_PERU |
| 771 | * - country string: PE |
| 772 | * - country ID: 604 |
| 773 | * - country definition: CTRY_PHILIPPINES |
| 774 | * - country string: PH |
| 775 | * - country ID: 608 |
| 776 | * - country definition: CTRY_POLAND |
| 777 | * - country string: PL |
| 778 | * - country ID: 616 |
| 779 | * - country definition: CTRY_PORTUGAL |
| 780 | * - country string: PT |
| 781 | * - country ID: 620 |
| 782 | * - country definition: CTRY_PUERTO_RICO |
| 783 | * - country string: PR |
| 784 | * - country ID: 630 |
| 785 | * - country definition: CTRY_QATAR |
| 786 | * - country string: QA |
| 787 | * - country ID: 634 |
| 788 | * - country definition: CTRY_ROMANIA |
| 789 | * - country string: RO |
| 790 | * - country ID: 642 |
| 791 | * - country definition: CTRY_RUSSIA |
| 792 | * - country string: RU |
| 793 | * - country ID: 643 |
| 794 | * - country definition: CTRY_SAUDI_ARABIA |
| 795 | * - country string: SA |
| 796 | * - country ID: 682 |
| 797 | * - country definition: CTRY_SERBIA |
| 798 | * - country string: RS |
| 799 | * - country ID: 688 |
| 800 | * - country definition: CTRY_MONTENEGRO |
| 801 | * - country string: ME |
| 802 | * - country ID: 499 |
| 803 | * - country definition: CTRY_SINGAPORE |
| 804 | * - country string: SG |
| 805 | * - country ID: 702 |
| 806 | * - country definition: CTRY_SLOVAKIA |
| 807 | * - country string: SK |
| 808 | * - country ID: 703 |
| 809 | * - country definition: CTRY_SLOVENIA |
| 810 | * - country string: SI |
| 811 | * - country ID: 705 |
| 812 | * - country definition: CTRY_SOUTH_AFRICA |
| 813 | * - country string: ZA |
| 814 | * - country ID: 710 |
| 815 | * - country definition: CTRY_SPAIN |
| 816 | * - country string: ES |
| 817 | * - country ID: 724 |
| 818 | * - country definition: CTRY_SRI_LANKA |
| 819 | * - country string: LK |
| 820 | * - country ID: 144 |
| 821 | * - country definition: CTRY_SWEDEN |
| 822 | * - country string: SE |
| 823 | * - country ID: 752 |
| 824 | * - country definition: CTRY_SWITZERLAND |
| 825 | * - country string: CH |
| 826 | * - country ID: 756 |
| 827 | * - country definition: CTRY_SYRIA |
| 828 | * - country string: SY |
| 829 | * - country ID: 760 |
| 830 | * - country definition: CTRY_TAIWAN |
| 831 | * - country string: TW |
| 832 | * - country ID: 158 |
| 833 | * - country definition: CTRY_TANZANIA |
| 834 | * - country string: TZ |
| 835 | * - country ID: 834 |
| 836 | * - country definition: CTRY_THAILAND |
| 837 | * - country string: TH |
| 838 | * - country ID: 764 |
| 839 | * - country definition: CTRY_TRINIDAD_Y_TOBAGO |
| 840 | * - country string: TT |
| 841 | * - country ID: 780 |
| 842 | * - country definition: CTRY_TUNISIA |
| 843 | * - country string: TN |
| 844 | * - country ID: 788 |
| 845 | * - country definition: CTRY_TURKEY |
| 846 | * - country string: TR |
| 847 | * - country ID: 792 |
| 848 | * - country definition: CTRY_UAE |
| 849 | * - country string: AE |
| 850 | * - country ID: 784 |
| 851 | * - country definition: CTRY_UKRAINE |
| 852 | * - country string: UA |
| 853 | * - country ID: 804 |
| 854 | * - country definition: CTRY_UNITED_KINGDOM |
| 855 | * - country string: GB |
| 856 | * - country ID: 826 |
| 857 | * - country definition: CTRY_UNITED_STATES |
| 858 | * - country string: US |
| 859 | * - country ID: 840 |
| 860 | * - country definition: CTRY_UNITED_STATES_FCC49 |
| 861 | * - country string: US |
| 862 | * - country ID: 842 |
| 863 | * - country definition: CTRY_URUGUAY |
| 864 | * - country string: UY |
| 865 | * - country ID: 858 |
| 866 | * - country definition: CTRY_UZBEKISTAN |
| 867 | * - country string: UZ |
| 868 | * - country ID: 860 |
| 869 | * - country definition: CTRY_VENEZUELA |
| 870 | * - country string: VE |
| 871 | * - country ID: 862 |
| 872 | * - country definition: CTRY_VIET_NAM |
| 873 | * - country string: VN |
| 874 | * - country ID: 704 |
| 875 | * - country definition: CTRY_YEMEN |
| 876 | * - country string: YE |
| 877 | * - country ID: 887 |
| 878 | * - country definition: CTRY_ZIMBABWE |
| 879 | * - country string: ZW |
| 880 | * - country ID: 716 |
| 881 | */ |
| 882 | enum CountryCode { |
| 883 | CTRY_ALBANIA = 8, /* Albania */ |
| 884 | CTRY_ALGERIA = 12, /* Algeria */ |
| 885 | CTRY_ARGENTINA = 32, /* Argentina */ |
| 886 | CTRY_ARMENIA = 51, /* Armenia */ |
| 887 | CTRY_AUSTRALIA = 36, /* Australia */ |
| 888 | CTRY_AUSTRIA = 40, /* Austria */ |
| 889 | CTRY_AZERBAIJAN = 31, /* Azerbaijan */ |
| 890 | CTRY_BAHAMAS = 44, /* Bahamas */ |
| 891 | CTRY_BAHRAIN = 48, /* Bahrain */ |
| 892 | CTRY_BANGLADESH = 50, /* Bangladesh */ |
| 893 | CTRY_BARBADOS = 52, /* Barbados */ |
| 894 | CTRY_BELARUS = 112, /* Belarus */ |
| 895 | CTRY_BELGIUM = 56, /* Belgium */ |
| 896 | CTRY_BELIZE = 84, /* Belize */ |
| 897 | CTRY_BERMUDA = 60, /* Berumuda */ |
| 898 | CTRY_BOLIVIA = 68, /* Bolivia */ |
| 899 | CTRY_BOSNIA_HERZ = 70, /* Bosnia and Herzegowina */ |
| 900 | CTRY_BRAZIL = 76, /* Brazil */ |
| 901 | CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */ |
| 902 | CTRY_BULGARIA = 100, /* Bulgaria */ |
| 903 | CTRY_CAMBODIA = 116, /* Cambodia */ |
| 904 | CTRY_CANADA = 124, /* Canada */ |
| 905 | CTRY_CHILE = 152, /* Chile */ |
| 906 | CTRY_CHINA = 156, /* People's Republic of China */ |
| 907 | CTRY_COLOMBIA = 170, /* Colombia */ |
| 908 | CTRY_COSTA_RICA = 188, /* Costa Rica */ |
| 909 | CTRY_CROATIA = 191, /* Croatia */ |
| 910 | CTRY_CYPRUS = 196, |
| 911 | CTRY_CZECH = 203, /* Czech Republic */ |
| 912 | CTRY_DENMARK = 208, /* Denmark */ |
| 913 | CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */ |
| 914 | CTRY_ECUADOR = 218, /* Ecuador */ |
| 915 | CTRY_EGYPT = 818, /* Egypt */ |
| 916 | CTRY_EL_SALVADOR = 222, /* El Salvador */ |
| 917 | CTRY_ESTONIA = 233, /* Estonia */ |
| 918 | CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */ |
| 919 | CTRY_FINLAND = 246, /* Finland */ |
| 920 | CTRY_FRANCE = 250, /* France */ |
| 921 | CTRY_GEORGIA = 268, /* Georgia */ |
| 922 | CTRY_GERMANY = 276, /* Germany */ |
| 923 | CTRY_GREECE = 300, /* Greece */ |
| 924 | CTRY_GREENLAND = 304, /* Greenland */ |
| 925 | CTRY_GRENADA = 308, /* Grenada */ |
| 926 | CTRY_GUAM = 316, /* Guam */ |
| 927 | CTRY_GUATEMALA = 320, /* Guatemala */ |
| 928 | CTRY_HAITI = 332, /* Haiti */ |
| 929 | CTRY_HONDURAS = 340, /* Honduras */ |
| 930 | CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */ |
| 931 | CTRY_HUNGARY = 348, /* Hungary */ |
| 932 | CTRY_ICELAND = 352, /* Iceland */ |
| 933 | CTRY_INDIA = 356, /* India */ |
| 934 | CTRY_INDONESIA = 360, /* Indonesia */ |
| 935 | CTRY_IRAN = 364, /* Iran */ |
| 936 | CTRY_IRAQ = 368, /* Iraq */ |
| 937 | CTRY_IRELAND = 372, /* Ireland */ |
| 938 | CTRY_ISRAEL = 376, /* Israel */ |
| 939 | CTRY_ITALY = 380, /* Italy */ |
| 940 | CTRY_JAMAICA = 388, /* Jamaica */ |
| 941 | CTRY_JAPAN = 392, /* Japan */ |
| 942 | CTRY_JORDAN = 400, /* Jordan */ |
| 943 | CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ |
| 944 | CTRY_KENYA = 404, /* Kenya */ |
| 945 | CTRY_KOREA_NORTH = 408, /* North Korea */ |
| 946 | CTRY_KOREA_ROC = 410, /* South Korea */ |
| 947 | CTRY_KOREA_ROC3 = 412, /* South Korea */ |
| 948 | CTRY_KUWAIT = 414, /* Kuwait */ |
| 949 | CTRY_LATVIA = 428, /* Latvia */ |
| 950 | CTRY_LEBANON = 422, /* Lebanon */ |
| 951 | CTRY_LIBYA = 434, /* Libya */ |
| 952 | CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */ |
| 953 | CTRY_LITHUANIA = 440, /* Lithuania */ |
| 954 | CTRY_LUXEMBOURG = 442, /* Luxembourg */ |
| 955 | CTRY_MACAU = 446, /* Macau SAR */ |
| 956 | CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */ |
| 957 | CTRY_MALAYSIA = 458, /* Malaysia */ |
| 958 | CTRY_MALDIVES = 462, /* Maldives */ |
| 959 | CTRY_MALTA = 470, /* Malta */ |
| 960 | CTRY_MAURITIUS = 480, /* Mauritius */ |
| 961 | CTRY_MEXICO = 484, /* Mexico */ |
| 962 | CTRY_MONACO = 492, /* Principality of Monaco */ |
| 963 | CTRY_MOROCCO = 504, /* Morocco */ |
| 964 | CTRY_NEPAL = 524, /* Nepal */ |
| 965 | CTRY_NETHERLANDS = 528, /* Netherlands */ |
| 966 | CTRY_NETHERLANDS_ANTILLES = 530, /* Netherlands-Antilles */ |
| 967 | CTRY_ARUBA = 533, /* Aruba */ |
| 968 | CTRY_NEW_ZEALAND = 554, /* New Zealand */ |
| 969 | CTRY_NICARAGUA = 558, /* Nicaragua */ |
| 970 | CTRY_NORWAY = 578, /* Norway */ |
| 971 | CTRY_OMAN = 512, /* Oman */ |
| 972 | CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */ |
| 973 | CTRY_PANAMA = 591, /* Panama */ |
| 974 | CTRY_PAPUA_NEW_GUINEA = 598, /* Papua New Guinea */ |
| 975 | CTRY_PARAGUAY = 600, /* Paraguay */ |
| 976 | CTRY_PERU = 604, /* Peru */ |
| 977 | CTRY_PHILIPPINES = 608, /* Republic of the Philippines */ |
| 978 | CTRY_POLAND = 616, /* Poland */ |
| 979 | CTRY_PORTUGAL = 620, /* Portugal */ |
| 980 | CTRY_PUERTO_RICO = 630, /* Puerto Rico */ |
| 981 | CTRY_QATAR = 634, /* Qatar */ |
| 982 | CTRY_ROMANIA = 642, /* Romania */ |
| 983 | CTRY_RUSSIA = 643, /* Russia */ |
| 984 | CTRY_RWANDA = 646, /* Rwanda */ |
| 985 | CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */ |
| 986 | CTRY_SERBIA = 688, /* Republic of Serbia */ |
| 987 | CTRY_MONTENEGRO = 499, /* Montenegro */ |
| 988 | CTRY_SINGAPORE = 702, /* Singapore */ |
| 989 | CTRY_SLOVAKIA = 703, /* Slovak Republic */ |
| 990 | CTRY_SLOVENIA = 705, /* Slovenia */ |
| 991 | CTRY_SOUTH_AFRICA = 710, /* South Africa */ |
| 992 | CTRY_SPAIN = 724, /* Spain */ |
| 993 | CTRY_SRI_LANKA = 144, /* Sri Lanka */ |
| 994 | CTRY_SWEDEN = 752, /* Sweden */ |
| 995 | CTRY_SWITZERLAND = 756, /* Switzerland */ |
| 996 | CTRY_SYRIA = 760, /* Syria */ |
| 997 | CTRY_TAIWAN = 158, /* Taiwan */ |
| 998 | CTRY_TANZANIA = 834, /* Tanzania */ |
| 999 | CTRY_THAILAND = 764, /* Thailand */ |
| 1000 | CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */ |
| 1001 | CTRY_TUNISIA = 788, /* Tunisia */ |
| 1002 | CTRY_TURKEY = 792, /* Turkey */ |
| 1003 | CTRY_UAE = 784, /* U.A.E. */ |
| 1004 | CTRY_UGANDA = 800, /* Uganda */ |
| 1005 | CTRY_UKRAINE = 804, /* Ukraine */ |
| 1006 | CTRY_UNITED_KINGDOM = 826, /* United Kingdom */ |
| 1007 | CTRY_UNITED_STATES = 840, /* United States */ |
| 1008 | CTRY_UNITED_STATES2 = 841, /* United States for AP */ |
| 1009 | CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety) */ |
| 1010 | CTRY_URUGUAY = 858, /* Uruguay */ |
| 1011 | CTRY_UZBEKISTAN = 860, /* Uzbekistan */ |
| 1012 | CTRY_VENEZUELA = 862, /* Venezuela */ |
| 1013 | CTRY_VIET_NAM = 704, /* Viet Nam */ |
| 1014 | CTRY_YEMEN = 887, /* Yemen */ |
| 1015 | CTRY_ZIMBABWE = 716, /* Zimbabwe */ |
| 1016 | |
| 1017 | /* |
| 1018 | ** Japan special codes. Boy, do they have a lot |
| 1019 | */ |
| 1020 | |
| 1021 | CTRY_JAPAN1 = 393, /* Japan (JP1) */ |
| 1022 | CTRY_JAPAN2 = 394, /* Japan (JP0) */ |
| 1023 | CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ |
| 1024 | CTRY_JAPAN4 = 396, /* Japan (JE1) */ |
| 1025 | CTRY_JAPAN5 = 397, /* Japan (JE2) */ |
| 1026 | CTRY_JAPAN6 = 4006, /* Japan (JP6) */ |
| 1027 | CTRY_JAPAN7 = 4007, /* Japan (J7) */ |
| 1028 | CTRY_JAPAN8 = 4008, /* Japan (J8) */ |
| 1029 | CTRY_JAPAN9 = 4009, /* Japan (J9) */ |
| 1030 | CTRY_JAPAN10 = 4010, /* Japan (J10) */ |
| 1031 | CTRY_JAPAN11 = 4011, /* Japan (J11) */ |
| 1032 | CTRY_JAPAN12 = 4012, /* Japan (J12) */ |
| 1033 | CTRY_JAPAN13 = 4013, /* Japan (J13) */ |
| 1034 | CTRY_JAPAN14 = 4014, /* Japan (J14) */ |
| 1035 | CTRY_JAPAN15 = 4015, /* Japan (J15) */ |
| 1036 | CTRY_JAPAN16 = 4016, /* Japan (J16) */ |
| 1037 | CTRY_JAPAN17 = 4017, /* Japan (J17) */ |
| 1038 | CTRY_JAPAN18 = 4018, /* Japan (J18) */ |
| 1039 | CTRY_JAPAN19 = 4019, /* Japan (J19) */ |
| 1040 | CTRY_JAPAN20 = 4020, /* Japan (J20) */ |
| 1041 | CTRY_JAPAN21 = 4021, /* Japan (J21) */ |
| 1042 | CTRY_JAPAN22 = 4022, /* Japan (J22) */ |
| 1043 | CTRY_JAPAN23 = 4023, /* Japan (J23) */ |
| 1044 | CTRY_JAPAN24 = 4024, /* Japan (J24) */ |
| 1045 | CTRY_JAPAN25 = 4025, /* Japan (J25) */ |
| 1046 | CTRY_JAPAN26 = 4026, /* Japan (J26) */ |
| 1047 | CTRY_JAPAN27 = 4027, /* Japan (J27) */ |
| 1048 | CTRY_JAPAN28 = 4028, /* Japan (J28) */ |
| 1049 | CTRY_JAPAN29 = 4029, /* Japan (J29) */ |
| 1050 | CTRY_JAPAN30 = 4030, /* Japan (J30) */ |
| 1051 | CTRY_JAPAN31 = 4031, /* Japan (J31) */ |
| 1052 | CTRY_JAPAN32 = 4032, /* Japan (J32) */ |
| 1053 | CTRY_JAPAN33 = 4033, /* Japan (J33) */ |
| 1054 | CTRY_JAPAN34 = 4034, /* Japan (J34) */ |
| 1055 | CTRY_JAPAN35 = 4035, /* Japan (J35) */ |
| 1056 | CTRY_JAPAN36 = 4036, /* Japan (J36) */ |
| 1057 | CTRY_JAPAN37 = 4037, /* Japan (J37) */ |
| 1058 | CTRY_JAPAN38 = 4038, /* Japan (J38) */ |
| 1059 | CTRY_JAPAN39 = 4039, /* Japan (J39) */ |
| 1060 | CTRY_JAPAN40 = 4040, /* Japan (J40) */ |
| 1061 | CTRY_JAPAN41 = 4041, /* Japan (J41) */ |
| 1062 | CTRY_JAPAN42 = 4042, /* Japan (J42) */ |
| 1063 | CTRY_JAPAN43 = 4043, /* Japan (J43) */ |
| 1064 | CTRY_JAPAN44 = 4044, /* Japan (J44) */ |
| 1065 | CTRY_JAPAN45 = 4045, /* Japan (J45) */ |
| 1066 | CTRY_JAPAN46 = 4046, /* Japan (J46) */ |
| 1067 | CTRY_JAPAN47 = 4047, /* Japan (J47) */ |
| 1068 | CTRY_JAPAN48 = 4048, /* Japan (J48) */ |
| 1069 | CTRY_JAPAN49 = 4049, /* Japan (J49) */ |
| 1070 | CTRY_JAPAN50 = 4050, /* Japan (J50) */ |
| 1071 | CTRY_JAPAN51 = 4051, /* Japan (J51) */ |
| 1072 | CTRY_JAPAN52 = 4052, /* Japan (J52) */ |
| 1073 | CTRY_JAPAN53 = 4053, /* Japan (J53) */ |
| 1074 | CTRY_JAPAN54 = 4054, /* Japan (J54) */ |
| 1075 | CTRY_JAPAN55 = 4055, /* Japan (J55) */ |
| 1076 | CTRY_JAPAN56 = 4056, /* Japan (J56) */ |
| 1077 | CTRY_JAPAN57 = 4057, /* Japan (J57) */ |
| 1078 | CTRY_JAPAN58 = 4058, /* Japan (J58) */ |
| 1079 | CTRY_JAPAN59 = 4059, /* Japan (J59) */ |
| 1080 | |
| 1081 | /* |
| 1082 | ** "Special" codes for multiply defined countries, with the exception |
| 1083 | ** of Japan and US. |
| 1084 | */ |
| 1085 | |
| 1086 | CTRY_AUSTRALIA2 = 5000, /* Australia for AP only */ |
| 1087 | CTRY_CANADA2 = 5001, /* Canada for AP only */ |
| 1088 | CTRY_BELGIUM2 = 5002 /* Belgium/Cisco implementation */ |
| 1089 | }; |
| 1090 | |
| 1091 | int32_t cds_fill_some_regulatory_info(struct regulatory *reg); |
| 1092 | void cds_fill_and_send_ctl_to_fw(struct regulatory *reg); |
| 1093 | int32_t cds_get_country_from_alpha2(uint8_t *alpha2); |
| 1094 | void cds_fill_send_ctl_info_to_fw(struct regulatory *reg, uint32_t modesAvail, |
| 1095 | uint32_t modeSelect); |
| 1096 | void cds_set_wma_dfs_region(struct regulatory *reg); |
| 1097 | |
| 1098 | #endif /* REGULATORY_H */ |