168e8e04eSSam Leffler /*- 2*4d846d26SWarner Losh * SPDX-License-Identifier: BSD-2-Clause 3fe267a55SPedro F. Giffuni * 4b032f27cSSam Leffler * Copyright (c) 2005-2008 Sam Leffler, Errno Consulting 568e8e04eSSam Leffler * All rights reserved. 668e8e04eSSam Leffler * 768e8e04eSSam Leffler * Redistribution and use in source and binary forms, with or without 868e8e04eSSam Leffler * modification, are permitted provided that the following conditions 968e8e04eSSam Leffler * are met: 1068e8e04eSSam Leffler * 1. Redistributions of source code must retain the above copyright 1168e8e04eSSam Leffler * notice, this list of conditions and the following disclaimer. 1268e8e04eSSam Leffler * 2. Redistributions in binary form must reproduce the above copyright 1368e8e04eSSam Leffler * notice, this list of conditions and the following disclaimer in the 1468e8e04eSSam Leffler * documentation and/or other materials provided with the distribution. 1568e8e04eSSam Leffler * 1668e8e04eSSam Leffler * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1768e8e04eSSam Leffler * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1868e8e04eSSam Leffler * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1968e8e04eSSam Leffler * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 2068e8e04eSSam Leffler * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 2168e8e04eSSam Leffler * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2268e8e04eSSam Leffler * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2368e8e04eSSam Leffler * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2468e8e04eSSam Leffler * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2568e8e04eSSam Leffler * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2668e8e04eSSam Leffler */ 2768e8e04eSSam Leffler #ifndef _NET80211_IEEE80211_REGDOMAIN_H_ 2868e8e04eSSam Leffler #define _NET80211_IEEE80211_REGDOMAIN_H_ 2968e8e04eSSam Leffler 3068e8e04eSSam Leffler /* 3168e8e04eSSam Leffler * 802.11 regulatory domain definitions. 3268e8e04eSSam Leffler */ 3368e8e04eSSam Leffler 3468e8e04eSSam Leffler /* 3568e8e04eSSam Leffler * ISO 3166 Country/Region Codes 3668e8e04eSSam Leffler * http://ftp.ics.uci.edu/pub/ietf/http/related/iso3166.txt 3768e8e04eSSam Leffler */ 3868e8e04eSSam Leffler enum ISOCountryCode { 3968e8e04eSSam Leffler CTRY_AFGHANISTAN = 4, 4068e8e04eSSam Leffler CTRY_ALBANIA = 8, /* Albania */ 4168e8e04eSSam Leffler CTRY_ALGERIA = 12, /* Algeria */ 4268e8e04eSSam Leffler CTRY_AMERICAN_SAMOA = 16, 4368e8e04eSSam Leffler CTRY_ANDORRA = 20, 4468e8e04eSSam Leffler CTRY_ANGOLA = 24, 4568e8e04eSSam Leffler CTRY_ANGUILLA = 660, 46b032f27cSSam Leffler CTRY_ANTARTICA = 10, 47b032f27cSSam Leffler CTRY_ANTIGUA = 28, /* Antigua and Barbuda */ 4868e8e04eSSam Leffler CTRY_ARGENTINA = 32, /* Argentina */ 4968e8e04eSSam Leffler CTRY_ARMENIA = 51, /* Armenia */ 50b032f27cSSam Leffler CTRY_ARUBA = 533, /* Aruba */ 5168e8e04eSSam Leffler CTRY_AUSTRALIA = 36, /* Australia */ 5268e8e04eSSam Leffler CTRY_AUSTRIA = 40, /* Austria */ 5368e8e04eSSam Leffler CTRY_AZERBAIJAN = 31, /* Azerbaijan */ 54b032f27cSSam Leffler CTRY_BAHAMAS = 44, /* Bahamas */ 5568e8e04eSSam Leffler CTRY_BAHRAIN = 48, /* Bahrain */ 56b032f27cSSam Leffler CTRY_BANGLADESH = 50, /* Bangladesh */ 57b032f27cSSam Leffler CTRY_BARBADOS = 52, 5868e8e04eSSam Leffler CTRY_BELARUS = 112, /* Belarus */ 5968e8e04eSSam Leffler CTRY_BELGIUM = 56, /* Belgium */ 60b032f27cSSam Leffler CTRY_BELIZE = 84, 61b032f27cSSam Leffler CTRY_BENIN = 204, 62b032f27cSSam Leffler CTRY_BERMUDA = 60, 63b032f27cSSam Leffler CTRY_BHUTAN = 64, 6468e8e04eSSam Leffler CTRY_BOLIVIA = 68, /* Bolivia */ 65b032f27cSSam Leffler CTRY_BOSNIA_AND_HERZEGOWINA = 70, 66b032f27cSSam Leffler CTRY_BOTSWANA = 72, 67b032f27cSSam Leffler CTRY_BOUVET_ISLAND = 74, 6868e8e04eSSam Leffler CTRY_BRAZIL = 76, /* Brazil */ 69b032f27cSSam Leffler CTRY_BRITISH_INDIAN_OCEAN_TERRITORY = 86, 7068e8e04eSSam Leffler CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */ 7168e8e04eSSam Leffler CTRY_BULGARIA = 100, /* Bulgaria */ 72b032f27cSSam Leffler CTRY_BURKINA_FASO = 854, 73b032f27cSSam Leffler CTRY_BURUNDI = 108, 74b032f27cSSam Leffler CTRY_CAMBODIA = 116, 75b032f27cSSam Leffler CTRY_CAMEROON = 120, 7668e8e04eSSam Leffler CTRY_CANADA = 124, /* Canada */ 77b032f27cSSam Leffler CTRY_CAPE_VERDE = 132, 78b032f27cSSam Leffler CTRY_CAYMAN_ISLANDS = 136, 79b032f27cSSam Leffler CTRY_CENTRAL_AFRICAN_REPUBLIC = 140, 80b032f27cSSam Leffler CTRY_CHAD = 148, 8168e8e04eSSam Leffler CTRY_CHILE = 152, /* Chile */ 8268e8e04eSSam Leffler CTRY_CHINA = 156, /* People's Republic of China */ 83b032f27cSSam Leffler CTRY_CHRISTMAS_ISLAND = 162, 84b032f27cSSam Leffler CTRY_COCOS_ISLANDS = 166, 8568e8e04eSSam Leffler CTRY_COLOMBIA = 170, /* Colombia */ 86b032f27cSSam Leffler CTRY_COMOROS = 174, 87b032f27cSSam Leffler CTRY_CONGO = 178, 88b032f27cSSam Leffler CTRY_COOK_ISLANDS = 184, 8968e8e04eSSam Leffler CTRY_COSTA_RICA = 188, /* Costa Rica */ 90b032f27cSSam Leffler CTRY_COTE_DIVOIRE = 384, 91b032f27cSSam Leffler CTRY_CROATIA = 191, /* Croatia (local name: Hrvatska) */ 9268e8e04eSSam Leffler CTRY_CYPRUS = 196, /* Cyprus */ 9368e8e04eSSam Leffler CTRY_CZECH = 203, /* Czech Republic */ 9468e8e04eSSam Leffler CTRY_DENMARK = 208, /* Denmark */ 95b032f27cSSam Leffler CTRY_DJIBOUTI = 262, 96b032f27cSSam Leffler CTRY_DOMINICA = 212, 9768e8e04eSSam Leffler CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */ 98b032f27cSSam Leffler CTRY_EAST_TIMOR = 626, 9968e8e04eSSam Leffler CTRY_ECUADOR = 218, /* Ecuador */ 10068e8e04eSSam Leffler CTRY_EGYPT = 818, /* Egypt */ 10168e8e04eSSam Leffler CTRY_EL_SALVADOR = 222, /* El Salvador */ 102b032f27cSSam Leffler CTRY_EQUATORIAL_GUINEA = 226, 103b032f27cSSam Leffler CTRY_ERITREA = 232, 10468e8e04eSSam Leffler CTRY_ESTONIA = 233, /* Estonia */ 105b032f27cSSam Leffler CTRY_ETHIOPIA = 210, 106b032f27cSSam Leffler CTRY_FALKLAND_ISLANDS = 238, /* (Malvinas) */ 10768e8e04eSSam Leffler CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */ 108b032f27cSSam Leffler CTRY_FIJI = 242, 10968e8e04eSSam Leffler CTRY_FINLAND = 246, /* Finland */ 11068e8e04eSSam Leffler CTRY_FRANCE = 250, /* France */ 111b032f27cSSam Leffler CTRY_FRANCE2 = 255, /* France (Metropolitan) */ 112b032f27cSSam Leffler CTRY_FRENCH_GUIANA = 254, 113b032f27cSSam Leffler CTRY_FRENCH_POLYNESIA = 258, 114b032f27cSSam Leffler CTRY_FRENCH_SOUTHERN_TERRITORIES = 260, 115b032f27cSSam Leffler CTRY_GABON = 266, 116b032f27cSSam Leffler CTRY_GAMBIA = 270, 11768e8e04eSSam Leffler CTRY_GEORGIA = 268, /* Georgia */ 11868e8e04eSSam Leffler CTRY_GERMANY = 276, /* Germany */ 119b032f27cSSam Leffler CTRY_GHANA = 288, 120b032f27cSSam Leffler CTRY_GIBRALTAR = 292, 12168e8e04eSSam Leffler CTRY_GREECE = 300, /* Greece */ 122b032f27cSSam Leffler CTRY_GREENLAND = 304, 123b032f27cSSam Leffler CTRY_GRENADA = 308, 124b032f27cSSam Leffler CTRY_GUADELOUPE = 312, 125b032f27cSSam Leffler CTRY_GUAM = 316, 12668e8e04eSSam Leffler CTRY_GUATEMALA = 320, /* Guatemala */ 127b032f27cSSam Leffler CTRY_GUINEA = 324, 128b032f27cSSam Leffler CTRY_GUINEA_BISSAU = 624, 129b032f27cSSam Leffler CTRY_GUYANA = 328, 130b032f27cSSam Leffler /* XXX correct remainder */ 131b032f27cSSam Leffler CTRY_HAITI = 332, 13268e8e04eSSam Leffler CTRY_HONDURAS = 340, /* Honduras */ 13368e8e04eSSam Leffler CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */ 13468e8e04eSSam Leffler CTRY_HUNGARY = 348, /* Hungary */ 13568e8e04eSSam Leffler CTRY_ICELAND = 352, /* Iceland */ 13668e8e04eSSam Leffler CTRY_INDIA = 356, /* India */ 13768e8e04eSSam Leffler CTRY_INDONESIA = 360, /* Indonesia */ 13868e8e04eSSam Leffler CTRY_IRAN = 364, /* Iran */ 13968e8e04eSSam Leffler CTRY_IRAQ = 368, /* Iraq */ 14068e8e04eSSam Leffler CTRY_IRELAND = 372, /* Ireland */ 14168e8e04eSSam Leffler CTRY_ISRAEL = 376, /* Israel */ 14268e8e04eSSam Leffler CTRY_ITALY = 380, /* Italy */ 14368e8e04eSSam Leffler CTRY_JAMAICA = 388, /* Jamaica */ 14468e8e04eSSam Leffler CTRY_JAPAN = 392, /* Japan */ 14568e8e04eSSam Leffler CTRY_JORDAN = 400, /* Jordan */ 14668e8e04eSSam Leffler CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ 14768e8e04eSSam Leffler CTRY_KENYA = 404, /* Kenya */ 14868e8e04eSSam Leffler CTRY_KOREA_NORTH = 408, /* North Korea */ 14968e8e04eSSam Leffler CTRY_KOREA_ROC = 410, /* South Korea */ 15068e8e04eSSam Leffler CTRY_KOREA_ROC2 = 411, /* South Korea */ 15168e8e04eSSam Leffler CTRY_KUWAIT = 414, /* Kuwait */ 15268e8e04eSSam Leffler CTRY_LATVIA = 428, /* Latvia */ 15368e8e04eSSam Leffler CTRY_LEBANON = 422, /* Lebanon */ 15468e8e04eSSam Leffler CTRY_LIBYA = 434, /* Libya */ 15568e8e04eSSam Leffler CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */ 15668e8e04eSSam Leffler CTRY_LITHUANIA = 440, /* Lithuania */ 15768e8e04eSSam Leffler CTRY_LUXEMBOURG = 442, /* Luxembourg */ 15868e8e04eSSam Leffler CTRY_MACAU = 446, /* Macau */ 15968e8e04eSSam Leffler CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */ 16068e8e04eSSam Leffler CTRY_MALAYSIA = 458, /* Malaysia */ 161b032f27cSSam Leffler CTRY_MALTA = 470, /* Malta */ 16268e8e04eSSam Leffler CTRY_MEXICO = 484, /* Mexico */ 16368e8e04eSSam Leffler CTRY_MONACO = 492, /* Principality of Monaco */ 16468e8e04eSSam Leffler CTRY_MOROCCO = 504, /* Morocco */ 165b032f27cSSam Leffler CTRY_NEPAL = 524, /* Nepal */ 16668e8e04eSSam Leffler CTRY_NETHERLANDS = 528, /* Netherlands */ 16768e8e04eSSam Leffler CTRY_NEW_ZEALAND = 554, /* New Zealand */ 16868e8e04eSSam Leffler CTRY_NICARAGUA = 558, /* Nicaragua */ 16968e8e04eSSam Leffler CTRY_NORWAY = 578, /* Norway */ 17068e8e04eSSam Leffler CTRY_OMAN = 512, /* Oman */ 17168e8e04eSSam Leffler CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */ 17268e8e04eSSam Leffler CTRY_PANAMA = 591, /* Panama */ 17368e8e04eSSam Leffler CTRY_PARAGUAY = 600, /* Paraguay */ 17468e8e04eSSam Leffler CTRY_PERU = 604, /* Peru */ 17568e8e04eSSam Leffler CTRY_PHILIPPINES = 608, /* Republic of the Philippines */ 17668e8e04eSSam Leffler CTRY_POLAND = 616, /* Poland */ 17768e8e04eSSam Leffler CTRY_PORTUGAL = 620, /* Portugal */ 17868e8e04eSSam Leffler CTRY_PUERTO_RICO = 630, /* Puerto Rico */ 17968e8e04eSSam Leffler CTRY_QATAR = 634, /* Qatar */ 18068e8e04eSSam Leffler CTRY_ROMANIA = 642, /* Romania */ 18168e8e04eSSam Leffler CTRY_RUSSIA = 643, /* Russia */ 18268e8e04eSSam Leffler CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */ 18368e8e04eSSam Leffler CTRY_SINGAPORE = 702, /* Singapore */ 18468e8e04eSSam Leffler CTRY_SLOVAKIA = 703, /* Slovak Republic */ 18568e8e04eSSam Leffler CTRY_SLOVENIA = 705, /* Slovenia */ 18668e8e04eSSam Leffler CTRY_SOUTH_AFRICA = 710, /* South Africa */ 18768e8e04eSSam Leffler CTRY_SPAIN = 724, /* Spain */ 188b032f27cSSam Leffler CTRY_SRILANKA = 144, /* Sri Lanka */ 18968e8e04eSSam Leffler CTRY_SWEDEN = 752, /* Sweden */ 19068e8e04eSSam Leffler CTRY_SWITZERLAND = 756, /* Switzerland */ 19168e8e04eSSam Leffler CTRY_SYRIA = 760, /* Syria */ 19268e8e04eSSam Leffler CTRY_TAIWAN = 158, /* Taiwan */ 19368e8e04eSSam Leffler CTRY_THAILAND = 764, /* Thailand */ 19468e8e04eSSam Leffler CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */ 19568e8e04eSSam Leffler CTRY_TUNISIA = 788, /* Tunisia */ 19668e8e04eSSam Leffler CTRY_TURKEY = 792, /* Turkey */ 19768e8e04eSSam Leffler CTRY_UAE = 784, /* U.A.E. */ 19868e8e04eSSam Leffler CTRY_UKRAINE = 804, /* Ukraine */ 19968e8e04eSSam Leffler CTRY_UNITED_KINGDOM = 826, /* United Kingdom */ 20068e8e04eSSam Leffler CTRY_UNITED_STATES = 840, /* United States */ 20168e8e04eSSam Leffler CTRY_URUGUAY = 858, /* Uruguay */ 20268e8e04eSSam Leffler CTRY_UZBEKISTAN = 860, /* Uzbekistan */ 20368e8e04eSSam Leffler CTRY_VENEZUELA = 862, /* Venezuela */ 20468e8e04eSSam Leffler CTRY_VIET_NAM = 704, /* Viet Nam */ 20568e8e04eSSam Leffler CTRY_YEMEN = 887, /* Yemen */ 20668e8e04eSSam Leffler CTRY_ZIMBABWE = 716, /* Zimbabwe */ 20784e7c588SSam Leffler 20884e7c588SSam Leffler /* NB: from here down not listed in 3166; they come from Atheros */ 20984e7c588SSam Leffler CTRY_DEBUG = 0x1ff, /* debug */ 21084e7c588SSam Leffler CTRY_DEFAULT = 0, /* default */ 21184e7c588SSam Leffler 21284e7c588SSam Leffler CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/ 21384e7c588SSam Leffler CTRY_KOREA_ROC3 = 412, /* South Korea */ 21484e7c588SSam Leffler 21584e7c588SSam Leffler CTRY_JAPAN1 = 393, /* Japan (JP1) */ 21684e7c588SSam Leffler CTRY_JAPAN2 = 394, /* Japan (JP0) */ 21784e7c588SSam Leffler CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ 21884e7c588SSam Leffler CTRY_JAPAN4 = 396, /* Japan (JE1) */ 21984e7c588SSam Leffler CTRY_JAPAN5 = 397, /* Japan (JE2) */ 22084e7c588SSam Leffler CTRY_JAPAN6 = 399, /* Japan (JP6) */ 22184e7c588SSam Leffler CTRY_JAPAN7 = 4007, /* Japan (J7) */ 22284e7c588SSam Leffler CTRY_JAPAN8 = 4008, /* Japan (J8) */ 22384e7c588SSam Leffler CTRY_JAPAN9 = 4009, /* Japan (J9) */ 22484e7c588SSam Leffler CTRY_JAPAN10 = 4010, /* Japan (J10) */ 22584e7c588SSam Leffler CTRY_JAPAN11 = 4011, /* Japan (J11) */ 22684e7c588SSam Leffler CTRY_JAPAN12 = 4012, /* Japan (J12) */ 22784e7c588SSam Leffler CTRY_JAPAN13 = 4013, /* Japan (J13) */ 22884e7c588SSam Leffler CTRY_JAPAN14 = 4014, /* Japan (J14) */ 22984e7c588SSam Leffler CTRY_JAPAN15 = 4015, /* Japan (J15) */ 23084e7c588SSam Leffler CTRY_JAPAN16 = 4016, /* Japan (J16) */ 23184e7c588SSam Leffler CTRY_JAPAN17 = 4017, /* Japan (J17) */ 23284e7c588SSam Leffler CTRY_JAPAN18 = 4018, /* Japan (J18) */ 23384e7c588SSam Leffler CTRY_JAPAN19 = 4019, /* Japan (J19) */ 23484e7c588SSam Leffler CTRY_JAPAN20 = 4020, /* Japan (J20) */ 23584e7c588SSam Leffler CTRY_JAPAN21 = 4021, /* Japan (J21) */ 23684e7c588SSam Leffler CTRY_JAPAN22 = 4022, /* Japan (J22) */ 23784e7c588SSam Leffler CTRY_JAPAN23 = 4023, /* Japan (J23) */ 23884e7c588SSam Leffler CTRY_JAPAN24 = 4024, /* Japan (J24) */ 23968e8e04eSSam Leffler }; 24068e8e04eSSam Leffler 241b032f27cSSam Leffler enum RegdomainCode { 242b032f27cSSam Leffler SKU_FCC = 0x10, /* FCC, aka United States */ 243b032f27cSSam Leffler SKU_CA = 0x20, /* North America, aka Canada */ 244b032f27cSSam Leffler SKU_ETSI = 0x30, /* Europe */ 245b032f27cSSam Leffler SKU_ETSI2 = 0x32, /* Europe w/o HT40 in 5GHz */ 246b032f27cSSam Leffler SKU_ETSI3 = 0x33, /* Europe - channel 36 */ 247b032f27cSSam Leffler SKU_FCC3 = 0x3a, /* FCC w/5470 band, 11h, DFS */ 248b032f27cSSam Leffler SKU_JAPAN = 0x40, 249b032f27cSSam Leffler SKU_KOREA = 0x45, 250b032f27cSSam Leffler SKU_APAC = 0x50, /* Asia Pacific */ 251b032f27cSSam Leffler SKU_APAC2 = 0x51, /* Asia Pacific w/ DFS on mid-band */ 252b032f27cSSam Leffler SKU_APAC3 = 0x5d, /* Asia Pacific w/o ISM band */ 253b032f27cSSam Leffler SKU_ROW = 0x81, /* China/Taiwan/Rest of World */ 254b032f27cSSam Leffler SKU_NONE = 0xf0, /* "Region Free" */ 25584e7c588SSam Leffler SKU_DEBUG = 0x1ff, 25684e7c588SSam Leffler 25784e7c588SSam Leffler /* NB: from here down private */ 25884e7c588SSam Leffler SKU_SR9 = 0x0298, /* Ubiquiti SR9 (900MHz/GSM) */ 25984e7c588SSam Leffler SKU_XR9 = 0x0299, /* Ubiquiti XR9 (900MHz/GSM) */ 26084e7c588SSam Leffler SKU_GZ901 = 0x029a, /* Zcomax GZ-901 (900MHz/GSM) */ 2612f760a04SAdrian Chadd SKU_XC900M = 0x029b, /* Xagyl XC900M (900MHz/GSM) */ 2622f760a04SAdrian Chadd /* 2632f760a04SAdrian Chadd * The XC900M by default uses the 2642f760a04SAdrian Chadd * same mapping as the XR9. It 2652f760a04SAdrian Chadd * can optionally use a slightly 2662f760a04SAdrian Chadd * offset channel spacing (905MHz- 2672f760a04SAdrian Chadd * 925MHz) versus the XR9 (907MHz- 2682f760a04SAdrian Chadd * 922MHz), giving an extra channel. 2692f760a04SAdrian Chadd * This requires a jumper on the 2702f760a04SAdrian Chadd * NIC to be changed. 2712f760a04SAdrian Chadd */ 272b032f27cSSam Leffler }; 273b032f27cSSam Leffler 27468e8e04eSSam Leffler #if defined(__KERNEL__) || defined(_KERNEL) 27584e7c588SSam Leffler struct ieee80211com; 27668e8e04eSSam Leffler void ieee80211_regdomain_attach(struct ieee80211com *); 27768e8e04eSSam Leffler void ieee80211_regdomain_detach(struct ieee80211com *); 27884e7c588SSam Leffler struct ieee80211vap; 279b032f27cSSam Leffler void ieee80211_regdomain_vattach(struct ieee80211vap *); 280b032f27cSSam Leffler void ieee80211_regdomain_vdetach(struct ieee80211vap *); 28168e8e04eSSam Leffler 28284e7c588SSam Leffler struct ieee80211_regdomain; 283b032f27cSSam Leffler int ieee80211_init_channels(struct ieee80211com *, 284b032f27cSSam Leffler const struct ieee80211_regdomain *, const uint8_t bands[]); 28584e7c588SSam Leffler struct ieee80211_channel; 28684e7c588SSam Leffler void ieee80211_sort_channels(struct ieee80211_channel *chans, int nchans); 287b032f27cSSam Leffler struct ieee80211_appie; 288b032f27cSSam Leffler struct ieee80211_appie *ieee80211_alloc_countryie(struct ieee80211com *); 289b032f27cSSam Leffler struct ieee80211_regdomain_req; 290b032f27cSSam Leffler int ieee80211_setregdomain(struct ieee80211vap *, 291b032f27cSSam Leffler struct ieee80211_regdomain_req *); 29268e8e04eSSam Leffler #endif /* defined(__KERNEL__) || defined(_KERNEL) */ 29368e8e04eSSam Leffler #endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */ 294