⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ah_regdomain.c.svn-base

📁 最新之atheros芯片driver source code, 基于linux操作系统,內含atheros芯片HAL全部代码
💻 SVN-BASE
📖 第 1 页 / 共 5 页
字号:
/* * Copyright (c) 2002-2008 Sam Leffler, Errno Consulting * Copyright (c) 2005-2006 Atheros Communications, Inc. * All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for any * 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. * * $Id: ah_regdomain.c,v 1.24 2008/11/27 22:29:27 sam Exp $ */#include "opt_ah.h"#include "ah.h"#include "ah_internal.h"#include "ah_eeprom.h"#include "ah_devid.h"/* * XXX this code needs a audit+review *//* used throughout this file... */#define	N(a)	(sizeof (a) / sizeof (a[0]))#define HAL_MODE_11A_TURBO	HAL_MODE_108A#define HAL_MODE_11G_TURBO	HAL_MODE_108G/* 10MHz is half the 11A bandwidth used to determine upper edge freq   of the outdoor channel */#define HALF_MAXCHANBW		10/*  * BMLEN defines the size of the bitmask used to hold frequency * band specifications.  Note this must agree with the BM macro * definition that's used to setup initializers.  See also further * comments below. */#define BMLEN 2		/* 2 x 64 bits in each channel bitmask */typedef uint64_t chanbmask_t[BMLEN];#define	W0(_a) \	(((_a) >= 0 && (_a) < 64 ? (((uint64_t) 1)<<(_a)) : (uint64_t) 0))#define	W1(_a) \	(((_a) > 63 && (_a) < 128 ? (((uint64_t) 1)<<((_a)-64)) : (uint64_t) 0))#define BM1(_fa)	{ W0(_fa), W1(_fa) }#define BM2(_fa, _fb)	{ W0(_fa) | W0(_fb), W1(_fa) | W1(_fb) }#define BM3(_fa, _fb, _fc) \	{ W0(_fa) | W0(_fb) | W0(_fc), W1(_fa) | W1(_fb) | W1(_fc) }#define BM4(_fa, _fb, _fc, _fd)						\	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd),			\	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) }#define BM5(_fa, _fb, _fc, _fd, _fe)					\	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe),		\	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) }#define BM6(_fa, _fb, _fc, _fd, _fe, _ff)				\	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff),	\	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) }#define BM7(_fa, _fb, _fc, _fd, _fe, _ff, _fg)	\	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\	  W0(_fg),\	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\	  W1(_fg) }#define BM8(_fa, _fb, _fc, _fd, _fe, _ff, _fg, _fh)	\	{ W0(_fa) | W0(_fb) | W0(_fc) | W0(_fd) | W0(_fe) | W0(_ff) |	\	  W0(_fg) | W0(_fh) ,	\	  W1(_fa) | W1(_fb) | W1(_fc) | W1(_fd) | W1(_fe) | W1(_ff) |	\	  W1(_fg) | W1(_fh) }/* * Country/Region Codes * Numbering from ISO 3166 */enum {    CTRY_ALBANIA              = 8,       /* Albania */    CTRY_ALGERIA              = 12,      /* Algeria */    CTRY_ARGENTINA            = 32,      /* Argentina */    CTRY_ARMENIA              = 51,      /* Armenia */    CTRY_AUSTRALIA            = 36,      /* Australia */    CTRY_AUSTRIA              = 40,      /* Austria */    CTRY_AZERBAIJAN           = 31,      /* Azerbaijan */    CTRY_BAHRAIN              = 48,      /* Bahrain */    CTRY_BELARUS              = 112,     /* Belarus */    CTRY_BELGIUM              = 56,      /* Belgium */    CTRY_BELIZE               = 84,      /* Belize */    CTRY_BOLIVIA              = 68,      /* Bolivia */    CTRY_BRAZIL               = 76,      /* Brazil */    CTRY_BRUNEI_DARUSSALAM    = 96,      /* Brunei Darussalam */    CTRY_BULGARIA             = 100,     /* Bulgaria */    CTRY_CANADA               = 124,     /* Canada */    CTRY_CHILE                = 152,     /* Chile */    CTRY_CHINA                = 156,     /* People's Republic of China */    CTRY_COLOMBIA             = 170,     /* Colombia */    CTRY_COSTA_RICA           = 188,     /* Costa Rica */    CTRY_CROATIA              = 191,     /* Croatia */    CTRY_CYPRUS               = 196,    CTRY_CZECH                = 203,     /* Czech Republic */    CTRY_DENMARK              = 208,     /* Denmark */    CTRY_DOMINICAN_REPUBLIC   = 214,     /* Dominican Republic */    CTRY_ECUADOR              = 218,     /* Ecuador */    CTRY_EGYPT                = 818,     /* Egypt */    CTRY_EL_SALVADOR          = 222,     /* El Salvador */    CTRY_ESTONIA              = 233,     /* Estonia */    CTRY_FAEROE_ISLANDS       = 234,     /* Faeroe Islands */    CTRY_FINLAND              = 246,     /* Finland */    CTRY_FRANCE               = 250,     /* France */    CTRY_FRANCE2              = 255,     /* France2 */    CTRY_GEORGIA              = 268,     /* Georgia */    CTRY_GERMANY              = 276,     /* Germany */    CTRY_GREECE               = 300,     /* Greece */    CTRY_GUATEMALA            = 320,     /* Guatemala */    CTRY_HONDURAS             = 340,     /* Honduras */    CTRY_HONG_KONG            = 344,     /* Hong Kong S.A.R., P.R.C. */    CTRY_HUNGARY              = 348,     /* Hungary */    CTRY_ICELAND              = 352,     /* Iceland */    CTRY_INDIA                = 356,     /* India */    CTRY_INDONESIA            = 360,     /* Indonesia */    CTRY_IRAN                 = 364,     /* Iran */    CTRY_IRAQ                 = 368,     /* Iraq */    CTRY_IRELAND              = 372,     /* Ireland */    CTRY_ISRAEL               = 376,     /* Israel */    CTRY_ITALY                = 380,     /* Italy */    CTRY_JAMAICA              = 388,     /* Jamaica */    CTRY_JAPAN                = 392,     /* Japan */    CTRY_JAPAN1               = 393,     /* Japan (JP1) */    CTRY_JAPAN2               = 394,     /* Japan (JP0) */    CTRY_JAPAN3               = 395,     /* Japan (JP1-1) */    CTRY_JAPAN4               = 396,     /* Japan (JE1) */    CTRY_JAPAN5               = 397,     /* Japan (JE2) */    CTRY_JAPAN6               = 399,     /* Japan (JP6) */    CTRY_JAPAN7		      = 4007,	 /* Japan (J7) */    CTRY_JAPAN8		      = 4008,	 /* Japan (J8) */    CTRY_JAPAN9		      = 4009,	 /* Japan (J9) */    CTRY_JAPAN10	      = 4010,	 /* Japan (J10) */    CTRY_JAPAN11	      = 4011,	 /* Japan (J11) */    CTRY_JAPAN12	      = 4012,	 /* Japan (J12) */    CTRY_JAPAN13	      = 4013,	 /* Japan (J13) */    CTRY_JAPAN14	      = 4014,	 /* Japan (J14) */    CTRY_JAPAN15	      = 4015,	 /* Japan (J15) */    CTRY_JAPAN16	      = 4016,	 /* Japan (J16) */    CTRY_JAPAN17	      = 4017,	 /* Japan (J17) */    CTRY_JAPAN18	      = 4018,	 /* Japan (J18) */    CTRY_JAPAN19	      = 4019,	 /* Japan (J19) */    CTRY_JAPAN20	      = 4020,	 /* Japan (J20) */    CTRY_JAPAN21	      = 4021,	 /* Japan (J21) */    CTRY_JAPAN22	      = 4022,	 /* Japan (J22) */    CTRY_JAPAN23	      = 4023,	 /* Japan (J23) */    CTRY_JAPAN24	      = 4024,	 /* Japan (J24) */     CTRY_JORDAN               = 400,     /* Jordan */    CTRY_KAZAKHSTAN           = 398,     /* Kazakhstan */    CTRY_KENYA                = 404,     /* Kenya */    CTRY_KOREA_NORTH          = 408,     /* North Korea */    CTRY_KOREA_ROC            = 410,     /* South Korea */    CTRY_KOREA_ROC2           = 411,     /* South Korea */    CTRY_KOREA_ROC3           = 412,     /* South Korea */    CTRY_KUWAIT               = 414,     /* Kuwait */    CTRY_LATVIA               = 428,     /* Latvia */    CTRY_LEBANON              = 422,     /* Lebanon */    CTRY_LIBYA                = 434,     /* Libya */    CTRY_LIECHTENSTEIN        = 438,     /* Liechtenstein */    CTRY_LITHUANIA            = 440,     /* Lithuania */    CTRY_LUXEMBOURG           = 442,     /* Luxembourg */    CTRY_MACAU                = 446,     /* Macau */    CTRY_MACEDONIA            = 807,     /* the Former Yugoslav Republic of Macedonia */    CTRY_MALAYSIA             = 458,     /* Malaysia */    CTRY_MALTA		      = 470,	 /* Malta */    CTRY_MEXICO               = 484,     /* Mexico */    CTRY_MONACO               = 492,     /* Principality of Monaco */    CTRY_MOROCCO              = 504,     /* Morocco */    CTRY_NETHERLANDS          = 528,     /* Netherlands */    CTRY_NEW_ZEALAND          = 554,     /* New Zealand */    CTRY_NICARAGUA            = 558,     /* Nicaragua */    CTRY_NORWAY               = 578,     /* Norway */    CTRY_OMAN                 = 512,     /* Oman */    CTRY_PAKISTAN             = 586,     /* Islamic Republic of Pakistan */    CTRY_PANAMA               = 591,     /* Panama */    CTRY_PARAGUAY             = 600,     /* Paraguay */    CTRY_PERU                 = 604,     /* Peru */    CTRY_PHILIPPINES          = 608,     /* Republic of the Philippines */    CTRY_POLAND               = 616,     /* Poland */    CTRY_PORTUGAL             = 620,     /* Portugal */    CTRY_PUERTO_RICO          = 630,     /* Puerto Rico */    CTRY_QATAR                = 634,     /* Qatar */    CTRY_ROMANIA              = 642,     /* Romania */    CTRY_RUSSIA               = 643,     /* Russia */    CTRY_SAUDI_ARABIA         = 682,     /* Saudi Arabia */    CTRY_SINGAPORE            = 702,     /* Singapore */    CTRY_SLOVAKIA             = 703,     /* Slovak Republic */    CTRY_SLOVENIA             = 705,     /* Slovenia */    CTRY_SOUTH_AFRICA         = 710,     /* South Africa */    CTRY_SPAIN                = 724,     /* Spain */    CTRY_SR9                  = 5000,    /* Ubiquiti SR9 (900MHz/GSM) */    CTRY_SWEDEN               = 752,     /* Sweden */    CTRY_SWITZERLAND          = 756,     /* Switzerland */    CTRY_SYRIA                = 760,     /* Syria */    CTRY_TAIWAN               = 158,     /* Taiwan */    CTRY_THAILAND             = 764,     /* Thailand */    CTRY_TRINIDAD_Y_TOBAGO    = 780,     /* Trinidad y Tobago */    CTRY_TUNISIA              = 788,     /* Tunisia */    CTRY_TURKEY               = 792,     /* Turkey */    CTRY_UAE                  = 784,     /* U.A.E. */    CTRY_UKRAINE              = 804,     /* Ukraine */    CTRY_UNITED_KINGDOM       = 826,     /* United Kingdom */    CTRY_UNITED_STATES        = 840,     /* United States */    CTRY_UNITED_STATES_FCC49  = 842,     /* United States (Public Safety)*/    CTRY_URUGUAY              = 858,     /* Uruguay */    CTRY_UZBEKISTAN           = 860,     /* Uzbekistan */    CTRY_VENEZUELA            = 862,     /* Venezuela */    CTRY_VIET_NAM             = 704,     /* Viet Nam */    CTRY_XR9                  = 5001,    /* Ubiquiti XR9 (900MHz/GSM) */    CTRY_GZ901                = 5002,    /* Zcomax GZ-901 (900MHz/GSM) */    CTRY_YEMEN                = 887,     /* Yemen */    CTRY_ZIMBABWE             = 716      /* Zimbabwe */};/* * Mask to check whether a domain is a multidomain or a single domain */#define MULTI_DOMAIN_MASK 0xFF00/* * Enumerated Regulatory Domain Information 8 bit values indicate that * the regdomain is really a pair of unitary regdomains.  12 bit values * are the real unitary regdomains and are the only ones which have the * frequency bitmasks and flags set. */enum {	/*	 * The following regulatory domain definitions are	 * found in the EEPROM. Each regulatory domain	 * can operate in either a 5GHz or 2.4GHz wireless mode or	 * both 5GHz and 2.4GHz wireless modes.	 * In general, the value holds no special	 * meaning and is used to decode into either specific	 * 2.4GHz or 5GHz wireless mode for that particular	 * regulatory domain.	 */	NO_ENUMRD	= 0x00,	NULL1_WORLD	= 0x03,		/* For 11b-only countries (no 11a allowed) */	NULL1_ETSIB	= 0x07,		/* Israel */	NULL1_ETSIC	= 0x08,	FCC1_FCCA	= 0x10,		/* USA */	FCC1_WORLD	= 0x11,		/* Hong Kong */	FCC4_FCCA	= 0x12,		/* USA - Public Safety */	FCC5_FCCB	= 0x13,		/* USA w/ 1/2 and 1/4 width channels */	FCC2_FCCA	= 0x20,		/* Canada */	FCC2_WORLD	= 0x21,		/* Australia & HK */	FCC2_ETSIC	= 0x22,	FRANCE_RES	= 0x31,		/* Legacy France for OEM */	FCC3_FCCA	= 0x3A,		/* USA & Canada w/5470 band, 11h, DFS enabled */	FCC3_WORLD	= 0x3B,		/* USA & Canada w/5470 band, 11h, DFS enabled */	ETSI1_WORLD	= 0x37,	ETSI3_ETSIA	= 0x32,		/* France (optional) */	ETSI2_WORLD	= 0x35,		/* Hungary & others */	ETSI3_WORLD	= 0x36,		/* France & others */	ETSI4_WORLD	= 0x30,	ETSI4_ETSIC	= 0x38,	ETSI5_WORLD	= 0x39,	ETSI6_WORLD	= 0x34,		/* Bulgaria */	ETSI_RESERVED	= 0x33,		/* Reserved (Do not used) */	MKK1_MKKA	= 0x40,		/* Japan (JP1) */	MKK1_MKKB	= 0x41,		/* Japan (JP0) */	APL4_WORLD	= 0x42,		/* Singapore */	MKK2_MKKA	= 0x43,		/* Japan with 4.9G channels */	APL_RESERVED	= 0x44,		/* Reserved (Do not used)  */	APL2_WORLD	= 0x45,		/* Korea */	APL2_APLC	= 0x46,	APL3_WORLD	= 0x47,	MKK1_FCCA	= 0x48,		/* Japan (JP1-1) */	APL2_APLD	= 0x49,		/* Korea with 2.3G channels */	MKK1_MKKA1	= 0x4A,		/* Japan (JE1) */	MKK1_MKKA2	= 0x4B,		/* Japan (JE2) */	MKK1_MKKC	= 0x4C,		/* Japan (MKK1_MKKA,except Ch14) */	APL3_FCCA       = 0x50,	APL1_WORLD	= 0x52,		/* Latin America */	APL1_FCCA	= 0x53,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -