132176cfdSRui Paulo /*- 232176cfdSRui Paulo * Copyright (c) 2005-2008 Sam Leffler, Errno Consulting 332176cfdSRui Paulo * All rights reserved. 432176cfdSRui Paulo * 532176cfdSRui Paulo * Redistribution and use in source and binary forms, with or without 632176cfdSRui Paulo * modification, are permitted provided that the following conditions 732176cfdSRui Paulo * are met: 832176cfdSRui Paulo * 1. Redistributions of source code must retain the above copyright 932176cfdSRui Paulo * notice, this list of conditions and the following disclaimer. 1032176cfdSRui Paulo * 2. Redistributions in binary form must reproduce the above copyright 1132176cfdSRui Paulo * notice, this list of conditions and the following disclaimer in the 1232176cfdSRui Paulo * documentation and/or other materials provided with the distribution. 1332176cfdSRui Paulo * 1432176cfdSRui Paulo * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 1532176cfdSRui Paulo * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 1632176cfdSRui Paulo * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 1732176cfdSRui Paulo * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 1832176cfdSRui Paulo * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 1932176cfdSRui Paulo * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 2032176cfdSRui Paulo * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 2132176cfdSRui Paulo * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 2232176cfdSRui Paulo * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 2332176cfdSRui Paulo * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2432176cfdSRui Paulo * 25*085ff963SMatthew Dillon * $FreeBSD$ 2632176cfdSRui Paulo */ 2732176cfdSRui Paulo #ifndef _NET80211_IEEE80211_REGDOMAIN_H_ 2832176cfdSRui Paulo #define _NET80211_IEEE80211_REGDOMAIN_H_ 2932176cfdSRui Paulo 3032176cfdSRui Paulo /* 3132176cfdSRui Paulo * 802.11 regulatory domain definitions. 3232176cfdSRui Paulo */ 3332176cfdSRui Paulo 3432176cfdSRui Paulo /* 3532176cfdSRui Paulo * ISO 3166 Country/Region Codes 3632176cfdSRui Paulo * http://ftp.ics.uci.edu/pub/ietf/http/related/iso3166.txt 3732176cfdSRui Paulo */ 3832176cfdSRui Paulo enum ISOCountryCode { 3932176cfdSRui Paulo CTRY_AFGHANISTAN = 4, 4032176cfdSRui Paulo CTRY_ALBANIA = 8, /* Albania */ 4132176cfdSRui Paulo CTRY_ALGERIA = 12, /* Algeria */ 4232176cfdSRui Paulo CTRY_AMERICAN_SAMOA = 16, 4332176cfdSRui Paulo CTRY_ANDORRA = 20, 4432176cfdSRui Paulo CTRY_ANGOLA = 24, 4532176cfdSRui Paulo CTRY_ANGUILLA = 660, 4632176cfdSRui Paulo CTRY_ANTARTICA = 10, 4732176cfdSRui Paulo CTRY_ANTIGUA = 28, /* Antigua and Barbuda */ 4832176cfdSRui Paulo CTRY_ARGENTINA = 32, /* Argentina */ 4932176cfdSRui Paulo CTRY_ARMENIA = 51, /* Armenia */ 5032176cfdSRui Paulo CTRY_ARUBA = 533, /* Aruba */ 5132176cfdSRui Paulo CTRY_AUSTRALIA = 36, /* Australia */ 5232176cfdSRui Paulo CTRY_AUSTRIA = 40, /* Austria */ 5332176cfdSRui Paulo CTRY_AZERBAIJAN = 31, /* Azerbaijan */ 5432176cfdSRui Paulo CTRY_BAHAMAS = 44, /* Bahamas */ 5532176cfdSRui Paulo CTRY_BAHRAIN = 48, /* Bahrain */ 5632176cfdSRui Paulo CTRY_BANGLADESH = 50, /* Bangladesh */ 5732176cfdSRui Paulo CTRY_BARBADOS = 52, 5832176cfdSRui Paulo CTRY_BELARUS = 112, /* Belarus */ 5932176cfdSRui Paulo CTRY_BELGIUM = 56, /* Belgium */ 6032176cfdSRui Paulo CTRY_BELIZE = 84, 6132176cfdSRui Paulo CTRY_BENIN = 204, 6232176cfdSRui Paulo CTRY_BERMUDA = 60, 6332176cfdSRui Paulo CTRY_BHUTAN = 64, 6432176cfdSRui Paulo CTRY_BOLIVIA = 68, /* Bolivia */ 6532176cfdSRui Paulo CTRY_BOSNIA_AND_HERZEGOWINA = 70, 6632176cfdSRui Paulo CTRY_BOTSWANA = 72, 6732176cfdSRui Paulo CTRY_BOUVET_ISLAND = 74, 6832176cfdSRui Paulo CTRY_BRAZIL = 76, /* Brazil */ 6932176cfdSRui Paulo CTRY_BRITISH_INDIAN_OCEAN_TERRITORY = 86, 7032176cfdSRui Paulo CTRY_BRUNEI_DARUSSALAM = 96, /* Brunei Darussalam */ 7132176cfdSRui Paulo CTRY_BULGARIA = 100, /* Bulgaria */ 7232176cfdSRui Paulo CTRY_BURKINA_FASO = 854, 7332176cfdSRui Paulo CTRY_BURUNDI = 108, 7432176cfdSRui Paulo CTRY_CAMBODIA = 116, 7532176cfdSRui Paulo CTRY_CAMEROON = 120, 7632176cfdSRui Paulo CTRY_CANADA = 124, /* Canada */ 7732176cfdSRui Paulo CTRY_CAPE_VERDE = 132, 7832176cfdSRui Paulo CTRY_CAYMAN_ISLANDS = 136, 7932176cfdSRui Paulo CTRY_CENTRAL_AFRICAN_REPUBLIC = 140, 8032176cfdSRui Paulo CTRY_CHAD = 148, 8132176cfdSRui Paulo CTRY_CHILE = 152, /* Chile */ 8232176cfdSRui Paulo CTRY_CHINA = 156, /* People's Republic of China */ 8332176cfdSRui Paulo CTRY_CHRISTMAS_ISLAND = 162, 8432176cfdSRui Paulo CTRY_COCOS_ISLANDS = 166, 8532176cfdSRui Paulo CTRY_COLOMBIA = 170, /* Colombia */ 8632176cfdSRui Paulo CTRY_COMOROS = 174, 8732176cfdSRui Paulo CTRY_CONGO = 178, 8832176cfdSRui Paulo CTRY_COOK_ISLANDS = 184, 8932176cfdSRui Paulo CTRY_COSTA_RICA = 188, /* Costa Rica */ 9032176cfdSRui Paulo CTRY_COTE_DIVOIRE = 384, 9132176cfdSRui Paulo CTRY_CROATIA = 191, /* Croatia (local name: Hrvatska) */ 9232176cfdSRui Paulo CTRY_CYPRUS = 196, /* Cyprus */ 9332176cfdSRui Paulo CTRY_CZECH = 203, /* Czech Republic */ 9432176cfdSRui Paulo CTRY_DENMARK = 208, /* Denmark */ 9532176cfdSRui Paulo CTRY_DJIBOUTI = 262, 9632176cfdSRui Paulo CTRY_DOMINICA = 212, 9732176cfdSRui Paulo CTRY_DOMINICAN_REPUBLIC = 214, /* Dominican Republic */ 9832176cfdSRui Paulo CTRY_EAST_TIMOR = 626, 9932176cfdSRui Paulo CTRY_ECUADOR = 218, /* Ecuador */ 10032176cfdSRui Paulo CTRY_EGYPT = 818, /* Egypt */ 10132176cfdSRui Paulo CTRY_EL_SALVADOR = 222, /* El Salvador */ 10232176cfdSRui Paulo CTRY_EQUATORIAL_GUINEA = 226, 10332176cfdSRui Paulo CTRY_ERITREA = 232, 10432176cfdSRui Paulo CTRY_ESTONIA = 233, /* Estonia */ 10532176cfdSRui Paulo CTRY_ETHIOPIA = 210, 10632176cfdSRui Paulo CTRY_FALKLAND_ISLANDS = 238, /* (Malvinas) */ 10732176cfdSRui Paulo CTRY_FAEROE_ISLANDS = 234, /* Faeroe Islands */ 10832176cfdSRui Paulo CTRY_FIJI = 242, 10932176cfdSRui Paulo CTRY_FINLAND = 246, /* Finland */ 11032176cfdSRui Paulo CTRY_FRANCE = 250, /* France */ 11132176cfdSRui Paulo CTRY_FRANCE2 = 255, /* France (Metropolitan) */ 11232176cfdSRui Paulo CTRY_FRENCH_GUIANA = 254, 11332176cfdSRui Paulo CTRY_FRENCH_POLYNESIA = 258, 11432176cfdSRui Paulo CTRY_FRENCH_SOUTHERN_TERRITORIES = 260, 11532176cfdSRui Paulo CTRY_GABON = 266, 11632176cfdSRui Paulo CTRY_GAMBIA = 270, 11732176cfdSRui Paulo CTRY_GEORGIA = 268, /* Georgia */ 11832176cfdSRui Paulo CTRY_GERMANY = 276, /* Germany */ 11932176cfdSRui Paulo CTRY_GHANA = 288, 12032176cfdSRui Paulo CTRY_GIBRALTAR = 292, 12132176cfdSRui Paulo CTRY_GREECE = 300, /* Greece */ 12232176cfdSRui Paulo CTRY_GREENLAND = 304, 12332176cfdSRui Paulo CTRY_GRENADA = 308, 12432176cfdSRui Paulo CTRY_GUADELOUPE = 312, 12532176cfdSRui Paulo CTRY_GUAM = 316, 12632176cfdSRui Paulo CTRY_GUATEMALA = 320, /* Guatemala */ 12732176cfdSRui Paulo CTRY_GUINEA = 324, 12832176cfdSRui Paulo CTRY_GUINEA_BISSAU = 624, 12932176cfdSRui Paulo CTRY_GUYANA = 328, 13032176cfdSRui Paulo /* XXX correct remainder */ 13132176cfdSRui Paulo CTRY_HAITI = 332, 13232176cfdSRui Paulo CTRY_HONDURAS = 340, /* Honduras */ 13332176cfdSRui Paulo CTRY_HONG_KONG = 344, /* Hong Kong S.A.R., P.R.C. */ 13432176cfdSRui Paulo CTRY_HUNGARY = 348, /* Hungary */ 13532176cfdSRui Paulo CTRY_ICELAND = 352, /* Iceland */ 13632176cfdSRui Paulo CTRY_INDIA = 356, /* India */ 13732176cfdSRui Paulo CTRY_INDONESIA = 360, /* Indonesia */ 13832176cfdSRui Paulo CTRY_IRAN = 364, /* Iran */ 13932176cfdSRui Paulo CTRY_IRAQ = 368, /* Iraq */ 14032176cfdSRui Paulo CTRY_IRELAND = 372, /* Ireland */ 14132176cfdSRui Paulo CTRY_ISRAEL = 376, /* Israel */ 14232176cfdSRui Paulo CTRY_ITALY = 380, /* Italy */ 14332176cfdSRui Paulo CTRY_JAMAICA = 388, /* Jamaica */ 14432176cfdSRui Paulo CTRY_JAPAN = 392, /* Japan */ 14532176cfdSRui Paulo CTRY_JORDAN = 400, /* Jordan */ 14632176cfdSRui Paulo CTRY_KAZAKHSTAN = 398, /* Kazakhstan */ 14732176cfdSRui Paulo CTRY_KENYA = 404, /* Kenya */ 14832176cfdSRui Paulo CTRY_KOREA_NORTH = 408, /* North Korea */ 14932176cfdSRui Paulo CTRY_KOREA_ROC = 410, /* South Korea */ 15032176cfdSRui Paulo CTRY_KOREA_ROC2 = 411, /* South Korea */ 15132176cfdSRui Paulo CTRY_KUWAIT = 414, /* Kuwait */ 15232176cfdSRui Paulo CTRY_LATVIA = 428, /* Latvia */ 15332176cfdSRui Paulo CTRY_LEBANON = 422, /* Lebanon */ 15432176cfdSRui Paulo CTRY_LIBYA = 434, /* Libya */ 15532176cfdSRui Paulo CTRY_LIECHTENSTEIN = 438, /* Liechtenstein */ 15632176cfdSRui Paulo CTRY_LITHUANIA = 440, /* Lithuania */ 15732176cfdSRui Paulo CTRY_LUXEMBOURG = 442, /* Luxembourg */ 15832176cfdSRui Paulo CTRY_MACAU = 446, /* Macau */ 15932176cfdSRui Paulo CTRY_MACEDONIA = 807, /* the Former Yugoslav Republic of Macedonia */ 16032176cfdSRui Paulo CTRY_MALAYSIA = 458, /* Malaysia */ 16132176cfdSRui Paulo CTRY_MALTA = 470, /* Malta */ 16232176cfdSRui Paulo CTRY_MEXICO = 484, /* Mexico */ 16332176cfdSRui Paulo CTRY_MONACO = 492, /* Principality of Monaco */ 16432176cfdSRui Paulo CTRY_MOROCCO = 504, /* Morocco */ 16532176cfdSRui Paulo CTRY_NEPAL = 524, /* Nepal */ 16632176cfdSRui Paulo CTRY_NETHERLANDS = 528, /* Netherlands */ 16732176cfdSRui Paulo CTRY_NEW_ZEALAND = 554, /* New Zealand */ 16832176cfdSRui Paulo CTRY_NICARAGUA = 558, /* Nicaragua */ 16932176cfdSRui Paulo CTRY_NORWAY = 578, /* Norway */ 17032176cfdSRui Paulo CTRY_OMAN = 512, /* Oman */ 17132176cfdSRui Paulo CTRY_PAKISTAN = 586, /* Islamic Republic of Pakistan */ 17232176cfdSRui Paulo CTRY_PANAMA = 591, /* Panama */ 17332176cfdSRui Paulo CTRY_PARAGUAY = 600, /* Paraguay */ 17432176cfdSRui Paulo CTRY_PERU = 604, /* Peru */ 17532176cfdSRui Paulo CTRY_PHILIPPINES = 608, /* Republic of the Philippines */ 17632176cfdSRui Paulo CTRY_POLAND = 616, /* Poland */ 17732176cfdSRui Paulo CTRY_PORTUGAL = 620, /* Portugal */ 17832176cfdSRui Paulo CTRY_PUERTO_RICO = 630, /* Puerto Rico */ 17932176cfdSRui Paulo CTRY_QATAR = 634, /* Qatar */ 18032176cfdSRui Paulo CTRY_ROMANIA = 642, /* Romania */ 18132176cfdSRui Paulo CTRY_RUSSIA = 643, /* Russia */ 18232176cfdSRui Paulo CTRY_SAUDI_ARABIA = 682, /* Saudi Arabia */ 18332176cfdSRui Paulo CTRY_SINGAPORE = 702, /* Singapore */ 18432176cfdSRui Paulo CTRY_SLOVAKIA = 703, /* Slovak Republic */ 18532176cfdSRui Paulo CTRY_SLOVENIA = 705, /* Slovenia */ 18632176cfdSRui Paulo CTRY_SOUTH_AFRICA = 710, /* South Africa */ 18732176cfdSRui Paulo CTRY_SPAIN = 724, /* Spain */ 18832176cfdSRui Paulo CTRY_SRILANKA = 144, /* Sri Lanka */ 18932176cfdSRui Paulo CTRY_SWEDEN = 752, /* Sweden */ 19032176cfdSRui Paulo CTRY_SWITZERLAND = 756, /* Switzerland */ 19132176cfdSRui Paulo CTRY_SYRIA = 760, /* Syria */ 19232176cfdSRui Paulo CTRY_TAIWAN = 158, /* Taiwan */ 19332176cfdSRui Paulo CTRY_THAILAND = 764, /* Thailand */ 19432176cfdSRui Paulo CTRY_TRINIDAD_Y_TOBAGO = 780, /* Trinidad y Tobago */ 19532176cfdSRui Paulo CTRY_TUNISIA = 788, /* Tunisia */ 19632176cfdSRui Paulo CTRY_TURKEY = 792, /* Turkey */ 19732176cfdSRui Paulo CTRY_UAE = 784, /* U.A.E. */ 19832176cfdSRui Paulo CTRY_UKRAINE = 804, /* Ukraine */ 19932176cfdSRui Paulo CTRY_UNITED_KINGDOM = 826, /* United Kingdom */ 20032176cfdSRui Paulo CTRY_UNITED_STATES = 840, /* United States */ 20132176cfdSRui Paulo CTRY_URUGUAY = 858, /* Uruguay */ 20232176cfdSRui Paulo CTRY_UZBEKISTAN = 860, /* Uzbekistan */ 20332176cfdSRui Paulo CTRY_VENEZUELA = 862, /* Venezuela */ 20432176cfdSRui Paulo CTRY_VIET_NAM = 704, /* Viet Nam */ 20532176cfdSRui Paulo CTRY_YEMEN = 887, /* Yemen */ 20632176cfdSRui Paulo CTRY_ZIMBABWE = 716, /* Zimbabwe */ 20732176cfdSRui Paulo 20832176cfdSRui Paulo /* NB: from here down not listed in 3166; they come from Atheros */ 20932176cfdSRui Paulo CTRY_DEBUG = 0x1ff, /* debug */ 21032176cfdSRui Paulo CTRY_DEFAULT = 0, /* default */ 21132176cfdSRui Paulo 21232176cfdSRui Paulo CTRY_UNITED_STATES_FCC49 = 842, /* United States (Public Safety)*/ 21332176cfdSRui Paulo CTRY_KOREA_ROC3 = 412, /* South Korea */ 21432176cfdSRui Paulo 21532176cfdSRui Paulo CTRY_JAPAN1 = 393, /* Japan (JP1) */ 21632176cfdSRui Paulo CTRY_JAPAN2 = 394, /* Japan (JP0) */ 21732176cfdSRui Paulo CTRY_JAPAN3 = 395, /* Japan (JP1-1) */ 21832176cfdSRui Paulo CTRY_JAPAN4 = 396, /* Japan (JE1) */ 21932176cfdSRui Paulo CTRY_JAPAN5 = 397, /* Japan (JE2) */ 22032176cfdSRui Paulo CTRY_JAPAN6 = 399, /* Japan (JP6) */ 22132176cfdSRui Paulo CTRY_JAPAN7 = 4007, /* Japan (J7) */ 22232176cfdSRui Paulo CTRY_JAPAN8 = 4008, /* Japan (J8) */ 22332176cfdSRui Paulo CTRY_JAPAN9 = 4009, /* Japan (J9) */ 22432176cfdSRui Paulo CTRY_JAPAN10 = 4010, /* Japan (J10) */ 22532176cfdSRui Paulo CTRY_JAPAN11 = 4011, /* Japan (J11) */ 22632176cfdSRui Paulo CTRY_JAPAN12 = 4012, /* Japan (J12) */ 22732176cfdSRui Paulo CTRY_JAPAN13 = 4013, /* Japan (J13) */ 22832176cfdSRui Paulo CTRY_JAPAN14 = 4014, /* Japan (J14) */ 22932176cfdSRui Paulo CTRY_JAPAN15 = 4015, /* Japan (J15) */ 23032176cfdSRui Paulo CTRY_JAPAN16 = 4016, /* Japan (J16) */ 23132176cfdSRui Paulo CTRY_JAPAN17 = 4017, /* Japan (J17) */ 23232176cfdSRui Paulo CTRY_JAPAN18 = 4018, /* Japan (J18) */ 23332176cfdSRui Paulo CTRY_JAPAN19 = 4019, /* Japan (J19) */ 23432176cfdSRui Paulo CTRY_JAPAN20 = 4020, /* Japan (J20) */ 23532176cfdSRui Paulo CTRY_JAPAN21 = 4021, /* Japan (J21) */ 23632176cfdSRui Paulo CTRY_JAPAN22 = 4022, /* Japan (J22) */ 23732176cfdSRui Paulo CTRY_JAPAN23 = 4023, /* Japan (J23) */ 23832176cfdSRui Paulo CTRY_JAPAN24 = 4024, /* Japan (J24) */ 23932176cfdSRui Paulo }; 24032176cfdSRui Paulo 24132176cfdSRui Paulo enum RegdomainCode { 24232176cfdSRui Paulo SKU_FCC = 0x10, /* FCC, aka United States */ 24332176cfdSRui Paulo SKU_CA = 0x20, /* North America, aka Canada */ 24432176cfdSRui Paulo SKU_ETSI = 0x30, /* Europe */ 24532176cfdSRui Paulo SKU_ETSI2 = 0x32, /* Europe w/o HT40 in 5GHz */ 24632176cfdSRui Paulo SKU_ETSI3 = 0x33, /* Europe - channel 36 */ 24732176cfdSRui Paulo SKU_FCC3 = 0x3a, /* FCC w/5470 band, 11h, DFS */ 24832176cfdSRui Paulo SKU_JAPAN = 0x40, 24932176cfdSRui Paulo SKU_KOREA = 0x45, 25032176cfdSRui Paulo SKU_APAC = 0x50, /* Asia Pacific */ 25132176cfdSRui Paulo SKU_APAC2 = 0x51, /* Asia Pacific w/ DFS on mid-band */ 25232176cfdSRui Paulo SKU_APAC3 = 0x5d, /* Asia Pacific w/o ISM band */ 25332176cfdSRui Paulo SKU_ROW = 0x81, /* China/Taiwan/Rest of World */ 25432176cfdSRui Paulo SKU_NONE = 0xf0, /* "Region Free" */ 25532176cfdSRui Paulo SKU_DEBUG = 0x1ff, 25632176cfdSRui Paulo 25732176cfdSRui Paulo /* NB: from here down private */ 25832176cfdSRui Paulo SKU_SR9 = 0x0298, /* Ubiquiti SR9 (900MHz/GSM) */ 25932176cfdSRui Paulo SKU_XR9 = 0x0299, /* Ubiquiti XR9 (900MHz/GSM) */ 26032176cfdSRui Paulo SKU_GZ901 = 0x029a, /* Zcomax GZ-901 (900MHz/GSM) */ 261f501b47dSMatthew Dillon SKU_XC900M = 0x029b, /* Xagyl XC900M (900MHz/GSM) */ 262*085ff963SMatthew Dillon /* 263*085ff963SMatthew Dillon * The XC900M by default uses the 264*085ff963SMatthew Dillon * same mapping as the XR9. It 265*085ff963SMatthew Dillon * can optionally use a slightly 266*085ff963SMatthew Dillon * offset channel spacing (905MHz- 267*085ff963SMatthew Dillon * 925MHz) versus the XR9 (907MHz- 268*085ff963SMatthew Dillon * 922MHz), giving an extra channel. 269*085ff963SMatthew Dillon * This requires a jumper on the 270*085ff963SMatthew Dillon * NIC to be changed. 271*085ff963SMatthew Dillon */ 27232176cfdSRui Paulo }; 27332176cfdSRui Paulo 27432176cfdSRui Paulo #if defined(__KERNEL__) || defined(_KERNEL) 27532176cfdSRui Paulo struct ieee80211com; 27632176cfdSRui Paulo void ieee80211_regdomain_attach(struct ieee80211com *); 27732176cfdSRui Paulo void ieee80211_regdomain_detach(struct ieee80211com *); 27832176cfdSRui Paulo struct ieee80211vap; 27932176cfdSRui Paulo void ieee80211_regdomain_vattach(struct ieee80211vap *); 28032176cfdSRui Paulo void ieee80211_regdomain_vdetach(struct ieee80211vap *); 28132176cfdSRui Paulo 28232176cfdSRui Paulo struct ieee80211_regdomain; 28332176cfdSRui Paulo int ieee80211_init_channels(struct ieee80211com *, 28432176cfdSRui Paulo const struct ieee80211_regdomain *, const uint8_t bands[]); 28532176cfdSRui Paulo struct ieee80211_channel; 28632176cfdSRui Paulo void ieee80211_sort_channels(struct ieee80211_channel *chans, int nchans); 28732176cfdSRui Paulo struct ieee80211_appie; 28832176cfdSRui Paulo struct ieee80211_appie *ieee80211_alloc_countryie(struct ieee80211com *); 28932176cfdSRui Paulo struct ieee80211_regdomain_req; 29032176cfdSRui Paulo int ieee80211_setregdomain(struct ieee80211vap *, 29132176cfdSRui Paulo struct ieee80211_regdomain_req *); 29232176cfdSRui Paulo #endif /* defined(__KERNEL__) || defined(_KERNEL) */ 29332176cfdSRui Paulo #endif /* _NET80211_IEEE80211_REGDOMAIN_H_ */ 294