summaryrefslogtreecommitdiffstats
path: root/tools/tools
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-01-29 23:24:21 +0000
committersam <sam@FreeBSD.org>2009-01-29 23:24:21 +0000
commit6f18a2ad6388b5e3e9bb9378a69934783b13fa21 (patch)
tree6a94facc7f49dafeb347a7644db64975d50067e1 /tools/tools
parentd134c940ba7222414e83d6ed9041e21fd8593fcf (diff)
downloadFreeBSD-src-6f18a2ad6388b5e3e9bb9378a69934783b13fa21.zip
FreeBSD-src-6f18a2ad6388b5e3e9bb9378a69934783b13fa21.tar.gz
update for hal changes
Diffstat (limited to 'tools/tools')
-rw-r--r--tools/tools/ath/athrd/athrd.18
-rw-r--r--tools/tools/ath/athrd/athrd.c687
2 files changed, 239 insertions, 456 deletions
diff --git a/tools/tools/ath/athrd/athrd.1 b/tools/tools/ath/athrd/athrd.1
index 8edc79e..ef9f007 100644
--- a/tools/tools/ath/athrd/athrd.1
+++ b/tools/tools/ath/athrd/athrd.1
@@ -28,7 +28,7 @@
.\"
.\" $FreeBSD$
.\"/
-.Dd January 15, 2009
+.Dd January 27, 2009
.Dt ATHRD 1
.Os
.Sh NAME
@@ -36,7 +36,7 @@
.Nd list channels and transmit power for a country/regulatory domain
.Sh SYNOPSIS
.Nm
-.Op Fl aioedlpcfr4ABGT
+.Op Fl aedlpcfr4ABGT
.Op Fl m Ar mode
.Bk
.Op Ar country
@@ -61,10 +61,6 @@ use as G channels and similary for A and T channels.
With this option
.Nm
will list all channels.
-.It Fl i
-Calculate channels based on indoor use.
-.It Fl o
-Calculate channels based on outdoor use (default).
.It Fl e
Calculate channels not assuming extended channel mode.
.It Fl d
diff --git a/tools/tools/ath/athrd/athrd.c b/tools/tools/ath/athrd/athrd.c
index eaaf861..4cacddf 100644
--- a/tools/tools/ath/athrd/athrd.c
+++ b/tools/tools/ath/athrd/athrd.c
@@ -31,6 +31,10 @@
#include "opt_ah.h"
#include "ah.h"
+
+#include <net80211/_ieee80211.h>
+#include <net80211/ieee80211_regdomain.h>
+
#include "ah_internal.h"
#include "ah_eeprom_v3.h" /* XXX */
@@ -40,13 +44,9 @@
#include <string.h>
#include <unistd.h>
-#define IEEE80211_CHAN_MAX 255
-#define IEEE80211_REGCLASSIDS_MAX 10
-
int ath_hal_debug = 0;
HAL_CTRY_CODE cc = CTRY_DEFAULT;
HAL_REG_DOMAIN rd = 169; /* FCC */
-HAL_BOOL outdoor = AH_TRUE;
HAL_BOOL Amode = 1;
HAL_BOOL Bmode = 1;
HAL_BOOL Gmode = 1;
@@ -169,12 +169,12 @@ getChannelEdges(struct ath_hal *ah, u_int16_t flags, u_int16_t *low, u_int16_t *
struct ath_hal_private *ahp = AH_PRIVATE(ah);
HAL_CAPABILITIES *pCap = &ahp->ah_caps;
- if (flags & CHANNEL_5GHZ) {
+ if (flags & IEEE80211_CHAN_5GHZ) {
*low = pCap->halLow5GhzChan;
*high = pCap->halHigh5GhzChan;
return AH_TRUE;
}
- if (flags & CHANNEL_2GHZ) {
+ if (flags & IEEE80211_CHAN_2GHZ) {
*low = pCap->halLow2GhzChan;
*high = pCap->halHigh2GhzChan;
return AH_TRUE;
@@ -208,158 +208,6 @@ getWirelessModes(struct ath_hal *ah)
return mode;
}
-/*
- * Country/Region Codes from MS WINNLS.H
- * Numbering from ISO 3166
- */
-enum CountryCode {
- 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_GSM = 843, /* 900MHz/GSM */
- 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_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_YEMEN = 887, /* Yemen */
- CTRY_ZIMBABWE = 716 /* Zimbabwe */
-};
-
-
/* 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
@@ -381,7 +229,6 @@ enum EnumRd {
NULL1_WORLD = 0x03, /* For 11b-only countries (no 11a allowed) */
NULL1_ETSIB = 0x07, /* Israel */
NULL1_ETSIC = 0x08,
- NULL1_GSM = 0x09, /* GSM-only operation */
FCC1_FCCA = 0x10, /* USA */
FCC1_WORLD = 0x11, /* Hong Kong */
FCC4_FCCA = 0x12, /* USA - Public Safety */
@@ -531,7 +378,6 @@ enum EnumRd {
NULL1 = 0x0198,
WORLD = 0x0199,
- GSM = 0x019a,
DEBUG_REG_DMN = 0x01ff,
};
#define DEF_REGDMN FCC1_FCCA
@@ -545,7 +391,6 @@ static struct {
D(NULL1_WORLD), /* For 11b-only countries (no 11a allowed) */
D(NULL1_ETSIB), /* Israel */
D(NULL1_ETSIC),
- D(NULL1_GSM), /* GSM-only operation */
D(FCC1_FCCA), /* USA */
D(FCC1_WORLD), /* Hong Kong */
D(FCC4_FCCA), /* USA - Public Safety */
@@ -682,7 +527,6 @@ static struct {
D(NULL1),
D(WORLD),
- D(GSM),
D(DEBUG_REG_DMN),
#undef D
};
@@ -734,163 +578,151 @@ typedef struct {
HAL_REG_DOMAIN regDmnEnum;
const char* isoName;
const char* name;
- HAL_BOOL allow11g;
- HAL_BOOL allow11aTurbo;
- HAL_BOOL allow11gTurbo;
- u_int16_t outdoorChanStart;
} COUNTRY_CODE_TO_ENUM_RD;
-#define YES AH_TRUE
-#define NO AH_FALSE
-/* Index into table to avoid DEBUG and NO COUNTRY SET entries */
-#define CTRY_ONLY_INDEX 2
/*
* Country Code Table to Enumerated RD
*/
-
static COUNTRY_CODE_TO_ENUM_RD allCountries[] = {
- {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG", YES, YES, YES, 7000 },
- {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET", YES, YES, YES, 7000 },
- {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA", YES, NO, YES, 7000 },
- {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA", YES, NO, YES, 7000 },
- {CTRY_ARGENTINA, APL3_WORLD, "AR", "ARGENTINA", NO, NO, NO, 7000 },
- {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA", YES, NO, YES, 7000 },
- {CTRY_AUSTRALIA, FCC2_WORLD, "AU", "AUSTRALIA", YES, YES, YES, 7000 },
- {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA", YES, NO, YES, 7000 },
- {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN", YES, YES, YES, 7000 },
- {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN", YES, NO, YES, 7000 },
- {CTRY_BELARUS, NULL1_WORLD, "BY", "BELARUS", YES, NO, YES, 7000 },
- {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM", YES, NO, YES, 7000 },
- {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE", YES, YES, YES, 7000 },
- {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLVIA", YES, YES, YES, 7000 },
- {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL", YES, NO, NO, 7000 },
- {CTRY_BRUNEI_DARUSSALAM,APL1_WORLD,"BN", "BRUNEI DARUSSALAM", YES, YES, YES, 7000 },
- {CTRY_BULGARIA, ETSI6_WORLD, "BG", "BULGARIA", YES, NO, YES, 7000 },
- {CTRY_CANADA, FCC2_FCCA, "CA", "CANADA", YES, YES, YES, 7000 },
- {CTRY_CHILE, APL6_WORLD, "CL", "CHILE", YES, YES, YES, 7000 },
- {CTRY_CHINA, APL1_WORLD, "CN", "CHINA", YES, YES, YES, 7000 },
- {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA", YES, NO, YES, 7000 },
- {CTRY_COSTA_RICA, NULL1_WORLD, "CR", "COSTA RICA", YES, NO, YES, 7000 },
- {CTRY_CROATIA, ETSI3_WORLD, "HR", "CROATIA", YES, NO, YES, 7000 },
- {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS", YES, YES, YES, 7000 },
- {CTRY_CZECH, ETSI3_WORLD, "CZ", "CZECH REPUBLIC", YES, NO, YES, 7000 },
- {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK", YES, NO, YES, 7000 },
- {CTRY_DOMINICAN_REPUBLIC,FCC1_FCCA,"DO", "DOMINICAN REPUBLIC", YES, YES, YES, 7000 },
- {CTRY_ECUADOR, NULL1_WORLD, "EC", "ECUADOR", NO, NO, NO, 7000 },
- {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT", YES, NO, YES, 7000 },
- {CTRY_EL_SALVADOR, NULL1_WORLD, "SV", "EL SALVADOR", YES, NO, YES, 7000 },
- {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA", YES, NO, YES, 7000 },
- {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND", YES, NO, YES, 7000 },
- {CTRY_FRANCE, ETSI3_WORLD, "FR", "FRANCE", YES, NO, YES, 7000 },
- {CTRY_FRANCE2, ETSI3_WORLD, "F2", "FRANCE_RES", YES, NO, YES, 7000 },
- {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA", YES, YES, YES, 7000 },
- {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY", YES, NO, YES, 7000 },
- {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE", YES, NO, YES, 7000 },
- {CTRY_GSM, NULL1_GSM, "GS", "GSM", YES, NO, NO, 7000 },
- {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA", YES, YES, YES, 7000 },
- {CTRY_HONDURAS, NULL1_WORLD, "HN", "HONDURAS", YES, NO, YES, 7000 },
- {CTRY_HONG_KONG, FCC2_WORLD, "HK", "HONG KONG", YES, YES, YES, 7000 },
- {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY", YES, NO, YES, 7000 },
- {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND", YES, NO, YES, 7000 },
- {CTRY_INDIA, APL6_WORLD, "IN", "INDIA", YES, NO, YES, 7000 },
- {CTRY_INDONESIA, APL1_WORLD, "ID", "INDONESIA", YES, NO, YES, 7000 },
- {CTRY_IRAN, APL1_WORLD, "IR", "IRAN", YES, YES, YES, 7000 },
- {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND", YES, NO, YES, 7000 },
- {CTRY_ISRAEL, NULL1_WORLD, "IL", "ISRAEL", YES, NO, YES, 7000 },
- {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY", YES, NO, YES, 7000 },
- {CTRY_JAPAN, MKK1_MKKA, "JP", "JAPAN", YES, NO, NO, 7000 },
- {CTRY_JAPAN1, MKK1_MKKB, "JP", "JAPAN1", YES, NO, NO, 7000 },
- {CTRY_JAPAN2, MKK1_FCCA, "JP", "JAPAN2", YES, NO, NO, 7000 },
- {CTRY_JAPAN3, MKK2_MKKA, "JP", "JAPAN3", YES, NO, NO, 7000 },
- {CTRY_JAPAN4, MKK1_MKKA1, "JP", "JAPAN4", YES, NO, NO, 7000 },
- {CTRY_JAPAN5, MKK1_MKKA2, "JP", "JAPAN5", YES, NO, NO, 7000 },
- {CTRY_JAPAN6, MKK1_MKKC, "JP", "JAPAN6", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7", YES, NO, NO, 7000 },
- {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8", YES, NO, NO, 7000 },
- {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10", YES, NO, NO, 7000 },
- {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11", YES, NO, NO, 7000 },
- {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13", YES, NO, NO, 7000 },
- {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14", YES, NO, NO, 7000 },
- {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN16, MKK6_MKKB, "JP", "JAPAN16", YES, NO, NO, 7000 },
- {CTRY_JAPAN17, MKK6_MKKA2, "JP", "JAPAN17", YES, NO, NO, 7000 },
- {CTRY_JAPAN18, MKK6_MKKC, "JP", "JAPAN18", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN19, MKK7_MKKB, "JP", "JAPAN19", YES, NO, NO, 7000 },
- {CTRY_JAPAN20, MKK7_MKKA2, "JP", "JAPAN20", YES, NO, NO, 7000 },
- {CTRY_JAPAN21, MKK7_MKKC, "JP", "JAPAN21", YES, NO, NO, 7000 },
-
- {CTRY_JAPAN22, MKK8_MKKB, "JP", "JAPAN22", YES, NO, NO, 7000 },
- {CTRY_JAPAN23, MKK8_MKKA2, "JP", "JAPAN23", YES, NO, NO, 7000 },
- {CTRY_JAPAN24, MKK8_MKKC, "JP", "JAPAN24", YES, NO, NO, 7000 },
-
- {CTRY_JORDAN, APL4_WORLD, "JO", "JORDAN", YES, NO, YES, 7000 },
- {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN", YES, NO, YES, 7000 },
- {CTRY_KOREA_NORTH, APL2_WORLD, "KP", "NORTH KOREA", YES, YES, YES, 7000 },
- {CTRY_KOREA_ROC, APL2_WORLD, "KR", "KOREA REPUBLIC", YES, NO, NO, 7000 },
- {CTRY_KOREA_ROC2, APL2_WORLD, "K2", "KOREA REPUBLIC2",YES, NO, NO, 7000 },
- {CTRY_KOREA_ROC3, APL9_WORLD, "K3", "KOREA REPUBLIC3",YES, NO, NO, 7000 },
- {CTRY_KUWAIT, NULL1_WORLD, "KW", "KUWAIT", YES, NO, YES, 7000 },
- {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA", YES, NO, YES, 7000 },
- {CTRY_LEBANON, NULL1_WORLD, "LB", "LEBANON", YES, NO, YES, 7000 },
- {CTRY_LIECHTENSTEIN,ETSI1_WORLD, "LI", "LIECHTENSTEIN", YES, NO, YES, 7000 },
- {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA", YES, NO, YES, 7000 },
- {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG", YES, NO, YES, 7000 },
- {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU", YES, YES, YES, 7000 },
- {CTRY_MACEDONIA, NULL1_WORLD, "MK", "MACEDONIA", YES, NO, YES, 7000 },
- {CTRY_MALAYSIA, APL8_WORLD, "MY", "MALAYSIA", YES, NO, NO, 7000 },
- {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA", YES, NO, YES, 7000 },
- {CTRY_MEXICO, FCC1_FCCA, "MX", "MEXICO", YES, YES, YES, 7000 },
- {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO", YES, YES, YES, 7000 },
- {CTRY_MOROCCO, NULL1_WORLD, "MA", "MOROCCO", YES, NO, YES, 7000 },
- {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS", YES, NO, YES, 7000 },
- {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ", "NEW ZEALAND", YES, NO, YES, 7000 },
- {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY", YES, NO, YES, 7000 },
- {CTRY_OMAN, APL6_WORLD, "OM", "OMAN", YES, NO, YES, 7000 },
- {CTRY_PAKISTAN, NULL1_WORLD, "PK", "PAKISTAN", YES, NO, YES, 7000 },
- {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA", YES, YES, YES, 7000 },
- {CTRY_PERU, APL1_WORLD, "PE", "PERU", YES, NO, YES, 7000 },
- {CTRY_PHILIPPINES, APL1_WORLD, "PH", "PHILIPPINES", YES, YES, YES, 7000 },
- {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND", YES, NO, YES, 7000 },
- {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL", YES, NO, YES, 7000 },
- {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO", YES, YES, YES, 7000 },
- {CTRY_QATAR, NULL1_WORLD, "QA", "QATAR", YES, NO, YES, 7000 },
- {CTRY_ROMANIA, NULL1_WORLD, "RO", "ROMANIA", YES, NO, YES, 7000 },
- {CTRY_RUSSIA, NULL1_WORLD, "RU", "RUSSIA", YES, NO, YES, 7000 },
- {CTRY_SAUDI_ARABIA,NULL1_WORLD, "SA", "SAUDI ARABIA", YES, NO, YES, 7000 },
- {CTRY_SINGAPORE, APL6_WORLD, "SG", "SINGAPORE", YES, YES, YES, 7000 },
- {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAK REPUBLIC",YES, NO, YES, 7000 },
- {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA", YES, NO, YES, 7000 },
- {CTRY_SOUTH_AFRICA,FCC3_WORLD, "ZA", "SOUTH AFRICA", YES, NO, YES, 7000 },
- {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN", YES, NO, YES, 7000 },
- {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN", YES, NO, YES, 7000 },
- {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND", YES, NO, YES, 7000 },
- {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIA", YES, NO, YES, 7000 },
- {CTRY_TAIWAN, APL3_FCCA, "TW", "TAIWAN", YES, YES, YES, 7000 },
- {CTRY_THAILAND, NULL1_WORLD, "TH", "THAILAND", YES, NO, YES, 7000 },
- {CTRY_TRINIDAD_Y_TOBAGO,ETSI4_WORLD,"TT", "TRINIDAD & TOBAGO", YES, NO, YES, 7000 },
- {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA", YES, NO, YES, 7000 },
- {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY", YES, NO, YES, 7000 },
- {CTRY_UKRAINE, NULL1_WORLD, "UA", "UKRAINE", YES, NO, YES, 7000 },
- {CTRY_UAE, NULL1_WORLD, "AE", "UNITED ARAB EMIRATES", YES, NO, YES, 7000 },
- {CTRY_UNITED_KINGDOM, ETSI1_WORLD,"GB", "UNITED KINGDOM", YES, NO, YES, 7000 },
- {CTRY_UNITED_STATES, FCC1_FCCA, "US", "UNITED STATES", YES, YES, YES, 5825 },
- {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS", "UNITED STATES (PUBLIC SAFETY)", YES, YES, YES, 7000 },
- {CTRY_URUGUAY, APL2_WORLD, "UY", "URUGUAY", YES, NO, YES, 7000 },
- {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN", YES, YES, YES, 7000 },
- {CTRY_VENEZUELA, APL2_ETSIC, "VE", "VENEZUELA", YES, NO, YES, 7000 },
- {CTRY_VIET_NAM, NULL1_WORLD, "VN", "VIET NAM", YES, NO, YES, 7000 },
- {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN", YES, NO, YES, 7000 },
- {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE", YES, NO, YES, 7000 }
+ {CTRY_DEBUG, NO_ENUMRD, "DB", "DEBUG" },
+ {CTRY_DEFAULT, DEF_REGDMN, "NA", "NO_COUNTRY_SET" },
+ {CTRY_ALBANIA, NULL1_WORLD, "AL", "ALBANIA" },
+ {CTRY_ALGERIA, NULL1_WORLD, "DZ", "ALGERIA" },
+ {CTRY_ARGENTINA, APL3_WORLD, "AR", "ARGENTINA" },
+ {CTRY_ARMENIA, ETSI4_WORLD, "AM", "ARMENIA" },
+ {CTRY_AUSTRALIA, FCC2_WORLD, "AU", "AUSTRALIA" },
+ {CTRY_AUSTRIA, ETSI1_WORLD, "AT", "AUSTRIA" },
+ {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ", "AZERBAIJAN" },
+ {CTRY_BAHRAIN, APL6_WORLD, "BH", "BAHRAIN" },
+ {CTRY_BELARUS, NULL1_WORLD, "BY", "BELARUS" },
+ {CTRY_BELGIUM, ETSI1_WORLD, "BE", "BELGIUM" },
+ {CTRY_BELIZE, APL1_ETSIC, "BZ", "BELIZE" },
+ {CTRY_BOLIVIA, APL1_ETSIC, "BO", "BOLVIA" },
+ {CTRY_BRAZIL, FCC3_WORLD, "BR", "BRAZIL" },
+ {CTRY_BRUNEI_DARUSSALAM,APL1_WORLD,"BN", "BRUNEI DARUSSALAM" },
+ {CTRY_BULGARIA, ETSI6_WORLD, "BG", "BULGARIA" },
+ {CTRY_CANADA, FCC2_FCCA, "CA", "CANADA" },
+ {CTRY_CHILE, APL6_WORLD, "CL", "CHILE" },
+ {CTRY_CHINA, APL1_WORLD, "CN", "CHINA" },
+ {CTRY_COLOMBIA, FCC1_FCCA, "CO", "COLOMBIA" },
+ {CTRY_COSTA_RICA, NULL1_WORLD, "CR", "COSTA RICA" },
+ {CTRY_CROATIA, ETSI3_WORLD, "HR", "CROATIA" },
+ {CTRY_CYPRUS, ETSI1_WORLD, "CY", "CYPRUS" },
+ {CTRY_CZECH, ETSI3_WORLD, "CZ", "CZECH REPUBLIC" },
+ {CTRY_DENMARK, ETSI1_WORLD, "DK", "DENMARK" },
+ {CTRY_DOMINICAN_REPUBLIC,FCC1_FCCA,"DO", "DOMINICAN REPUBLIC" },
+ {CTRY_ECUADOR, NULL1_WORLD, "EC", "ECUADOR" },
+ {CTRY_EGYPT, ETSI3_WORLD, "EG", "EGYPT" },
+ {CTRY_EL_SALVADOR, NULL1_WORLD, "SV", "EL SALVADOR" },
+ {CTRY_ESTONIA, ETSI1_WORLD, "EE", "ESTONIA" },
+ {CTRY_FINLAND, ETSI1_WORLD, "FI", "FINLAND" },
+ {CTRY_FRANCE, ETSI3_WORLD, "FR", "FRANCE" },
+ {CTRY_FRANCE2, ETSI3_WORLD, "F2", "FRANCE_RES" },
+ {CTRY_GEORGIA, ETSI4_WORLD, "GE", "GEORGIA" },
+ {CTRY_GERMANY, ETSI1_WORLD, "DE", "GERMANY" },
+ {CTRY_GREECE, ETSI1_WORLD, "GR", "GREECE" },
+ {CTRY_GUATEMALA, FCC1_FCCA, "GT", "GUATEMALA" },
+ {CTRY_HONDURAS, NULL1_WORLD, "HN", "HONDURAS" },
+ {CTRY_HONG_KONG, FCC2_WORLD, "HK", "HONG KONG" },
+ {CTRY_HUNGARY, ETSI1_WORLD, "HU", "HUNGARY" },
+ {CTRY_ICELAND, ETSI1_WORLD, "IS", "ICELAND" },
+ {CTRY_INDIA, APL6_WORLD, "IN", "INDIA" },
+ {CTRY_INDONESIA, APL1_WORLD, "ID", "INDONESIA" },
+ {CTRY_IRAN, APL1_WORLD, "IR", "IRAN" },
+ {CTRY_IRELAND, ETSI1_WORLD, "IE", "IRELAND" },
+ {CTRY_ISRAEL, NULL1_WORLD, "IL", "ISRAEL" },
+ {CTRY_ITALY, ETSI1_WORLD, "IT", "ITALY" },
+ {CTRY_JAPAN, MKK1_MKKA, "JP", "JAPAN" },
+ {CTRY_JAPAN1, MKK1_MKKB, "JP", "JAPAN1" },
+ {CTRY_JAPAN2, MKK1_FCCA, "JP", "JAPAN2" },
+ {CTRY_JAPAN3, MKK2_MKKA, "JP", "JAPAN3" },
+ {CTRY_JAPAN4, MKK1_MKKA1, "JP", "JAPAN4" },
+ {CTRY_JAPAN5, MKK1_MKKA2, "JP", "JAPAN5" },
+ {CTRY_JAPAN6, MKK1_MKKC, "JP", "JAPAN6" },
+
+ {CTRY_JAPAN7, MKK3_MKKB, "JP", "JAPAN7" },
+ {CTRY_JAPAN8, MKK3_MKKA2, "JP", "JAPAN8" },
+ {CTRY_JAPAN9, MKK3_MKKC, "JP", "JAPAN9" },
+
+ {CTRY_JAPAN10, MKK4_MKKB, "JP", "JAPAN10" },
+ {CTRY_JAPAN11, MKK4_MKKA2, "JP", "JAPAN11" },
+ {CTRY_JAPAN12, MKK4_MKKC, "JP", "JAPAN12" },
+
+ {CTRY_JAPAN13, MKK5_MKKB, "JP", "JAPAN13" },
+ {CTRY_JAPAN14, MKK5_MKKA2, "JP", "JAPAN14" },
+ {CTRY_JAPAN15, MKK5_MKKC, "JP", "JAPAN15" },
+
+ {CTRY_JAPAN16, MKK6_MKKB, "JP", "JAPAN16" },
+ {CTRY_JAPAN17, MKK6_MKKA2, "JP", "JAPAN17" },
+ {CTRY_JAPAN18, MKK6_MKKC, "JP", "JAPAN18" },
+
+ {CTRY_JAPAN19, MKK7_MKKB, "JP", "JAPAN19" },
+ {CTRY_JAPAN20, MKK7_MKKA2, "JP", "JAPAN20" },
+ {CTRY_JAPAN21, MKK7_MKKC, "JP", "JAPAN21" },
+
+ {CTRY_JAPAN22, MKK8_MKKB, "JP", "JAPAN22" },
+ {CTRY_JAPAN23, MKK8_MKKA2, "JP", "JAPAN23" },
+ {CTRY_JAPAN24, MKK8_MKKC, "JP", "JAPAN24" },
+
+ {CTRY_JORDAN, APL4_WORLD, "JO", "JORDAN" },
+ {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ", "KAZAKHSTAN" },
+ {CTRY_KOREA_NORTH, APL2_WORLD, "KP", "NORTH KOREA" },
+ {CTRY_KOREA_ROC, APL2_WORLD, "KR", "KOREA REPUBLIC" },
+ {CTRY_KOREA_ROC2, APL2_WORLD, "K2", "KOREA REPUBLIC2" },
+ {CTRY_KOREA_ROC3, APL9_WORLD, "K3", "KOREA REPUBLIC3" },
+ {CTRY_KUWAIT, NULL1_WORLD, "KW", "KUWAIT" },
+ {CTRY_LATVIA, ETSI1_WORLD, "LV", "LATVIA" },
+ {CTRY_LEBANON, NULL1_WORLD, "LB", "LEBANON" },
+ {CTRY_LIECHTENSTEIN,ETSI1_WORLD, "LI", "LIECHTENSTEIN" },
+ {CTRY_LITHUANIA, ETSI1_WORLD, "LT", "LITHUANIA" },
+ {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU", "LUXEMBOURG" },
+ {CTRY_MACAU, FCC2_WORLD, "MO", "MACAU" },
+ {CTRY_MACEDONIA, NULL1_WORLD, "MK", "MACEDONIA" },
+ {CTRY_MALAYSIA, APL8_WORLD, "MY", "MALAYSIA" },
+ {CTRY_MALTA, ETSI1_WORLD, "MT", "MALTA" },
+ {CTRY_MEXICO, FCC1_FCCA, "MX", "MEXICO" },
+ {CTRY_MONACO, ETSI4_WORLD, "MC", "MONACO" },
+ {CTRY_MOROCCO, NULL1_WORLD, "MA", "MOROCCO" },
+ {CTRY_NETHERLANDS, ETSI1_WORLD, "NL", "NETHERLANDS" },
+ {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ", "NEW ZEALAND" },
+ {CTRY_NORWAY, ETSI1_WORLD, "NO", "NORWAY" },
+ {CTRY_OMAN, APL6_WORLD, "OM", "OMAN" },
+ {CTRY_PAKISTAN, NULL1_WORLD, "PK", "PAKISTAN" },
+ {CTRY_PANAMA, FCC1_FCCA, "PA", "PANAMA" },
+ {CTRY_PERU, APL1_WORLD, "PE", "PERU" },
+ {CTRY_PHILIPPINES, APL1_WORLD, "PH", "PHILIPPINES" },
+ {CTRY_POLAND, ETSI1_WORLD, "PL", "POLAND" },
+ {CTRY_PORTUGAL, ETSI1_WORLD, "PT", "PORTUGAL" },
+ {CTRY_PUERTO_RICO, FCC1_FCCA, "PR", "PUERTO RICO" },
+ {CTRY_QATAR, NULL1_WORLD, "QA", "QATAR" },
+ {CTRY_ROMANIA, NULL1_WORLD, "RO", "ROMANIA" },
+ {CTRY_RUSSIA, NULL1_WORLD, "RU", "RUSSIA" },
+ {CTRY_SAUDI_ARABIA,NULL1_WORLD, "SA", "SAUDI ARABIA" },
+ {CTRY_SINGAPORE, APL6_WORLD, "SG", "SINGAPORE" },
+ {CTRY_SLOVAKIA, ETSI1_WORLD, "SK", "SLOVAK REPUBLIC" },
+ {CTRY_SLOVENIA, ETSI1_WORLD, "SI", "SLOVENIA" },
+ {CTRY_SOUTH_AFRICA,FCC3_WORLD, "ZA", "SOUTH AFRICA" },
+ {CTRY_SPAIN, ETSI1_WORLD, "ES", "SPAIN" },
+ {CTRY_SWEDEN, ETSI1_WORLD, "SE", "SWEDEN" },
+ {CTRY_SWITZERLAND, ETSI1_WORLD, "CH", "SWITZERLAND" },
+ {CTRY_SYRIA, NULL1_WORLD, "SY", "SYRIA" },
+ {CTRY_TAIWAN, APL3_FCCA, "TW", "TAIWAN" },
+ {CTRY_THAILAND, NULL1_WORLD, "TH", "THAILAND" },
+ {CTRY_TRINIDAD_Y_TOBAGO,ETSI4_WORLD,"TT", "TRINIDAD & TOBAGO" },
+ {CTRY_TUNISIA, ETSI3_WORLD, "TN", "TUNISIA" },
+ {CTRY_TURKEY, ETSI3_WORLD, "TR", "TURKEY" },
+ {CTRY_UKRAINE, NULL1_WORLD, "UA", "UKRAINE" },
+ {CTRY_UAE, NULL1_WORLD, "AE", "UNITED ARAB EMIRATES" },
+ {CTRY_UNITED_KINGDOM, ETSI1_WORLD,"GB", "UNITED KINGDOM" },
+ {CTRY_UNITED_STATES, FCC1_FCCA, "US", "UNITED STATES" },
+ {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS", "UNITED STATES (PUBLIC SAFETY)" },
+ {CTRY_URUGUAY, APL2_WORLD, "UY", "URUGUAY" },
+ {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ", "UZBEKISTAN" },
+ {CTRY_VENEZUELA, APL2_ETSIC, "VE", "VENEZUELA" },
+ {CTRY_VIET_NAM, NULL1_WORLD, "VN", "VIET NAM" },
+ {CTRY_YEMEN, NULL1_WORLD, "YE", "YEMEN" },
+ {CTRY_ZIMBABWE, NULL1_WORLD, "ZW", "ZIMBABWE" }
};
-#undef YES
-#undef NO
static HAL_BOOL
cclookup(const char *name, HAL_REG_DOMAIN *rd, HAL_CTRY_CODE *cc)
@@ -952,12 +784,13 @@ cclist()
}
static HAL_BOOL
-setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
+setRateTable(struct ath_hal *ah, const struct ieee80211_channel *chan,
int16_t tpcScaleReduction, int16_t powerLimit,
int16_t *pMinPower, int16_t *pMaxPower);
static void
-calctxpower(struct ath_hal *ah, int nchan, HAL_CHANNEL *chans,
+calctxpower(struct ath_hal *ah,
+ int nchan, const struct ieee80211_channel *chans,
int16_t tpcScaleReduction, int16_t powerLimit, int16_t *txpow)
{
int16_t minpow;
@@ -979,12 +812,12 @@ int isdfs = 0;
int is4ms = 0;
static int
-anychan(const HAL_CHANNEL *chans, int nc, int flag)
+anychan(const struct ieee80211_channel *chans, int nc, int flag)
{
int i;
for (i = 0; i < nc; i++)
- if ((chans[i].privFlags & flag) != 0)
+ if ((chans[i].ic_flags & flag) != 0)
return 1;
return 0;
}
@@ -993,9 +826,9 @@ static __inline int
mapgsm(u_int freq, u_int flags)
{
freq *= 10;
- if (flags & CHANNEL_QUARTER)
+ if (flags & IEEE80211_CHAN_QUARTER)
freq += 5;
- else if (flags & CHANNEL_HALF)
+ else if (flags & IEEE80211_CHAN_HALF)
freq += 10;
else
freq += 20;
@@ -1014,93 +847,85 @@ mappsb(u_int freq, u_int flags)
int
ath_hal_mhz2ieee(struct ath_hal *ah, u_int freq, u_int flags)
{
- if (flags & CHANNEL_2GHZ) { /* 2GHz band */
+ if (flags & IEEE80211_CHAN_2GHZ) { /* 2GHz band */
if (freq == 2484)
return 14;
- if (freq < 2484) {
- if (ath_hal_isgsmsku(ah))
- return mapgsm(freq, flags);
+ if (freq < 2484)
return ((int)freq - 2407) / 5;
- } else
+ else
return 15 + ((freq - 2512) / 20);
- } else if (flags & CHANNEL_5GHZ) {/* 5Ghz band */
- if (ath_hal_ispublicsafetysku(ah) &&
- IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) {
+ } else if (flags & IEEE80211_CHAN_5GHZ) {/* 5Ghz band */
+ if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq))
return mappsb(freq, flags);
- } else if ((flags & CHANNEL_A) && (freq <= 5000)) {
+ else if ((flags & IEEE80211_CHAN_A) && (freq <= 5000))
return (freq - 4000) / 5;
- } else {
+ else
return (freq - 5000) / 5;
- }
} else { /* either, guess */
if (freq == 2484)
return 14;
- if (freq < 2484) {
- if (ath_hal_isgsmsku(ah))
- return mapgsm(freq, flags);
+ if (freq < 2484)
return ((int)freq - 2407) / 5;
- }
if (freq < 5000) {
- if (ath_hal_ispublicsafetysku(ah) &&
- IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq)) {
+ if (IS_CHAN_IN_PUBLIC_SAFETY_BAND(freq))
return mappsb(freq, flags);
- } else if (freq > 4900) {
+ else if (freq > 4900)
return (freq - 4000) / 5;
- } else {
+ else
return 15 + ((freq - 2512) / 20);
- }
}
return (freq - 5000) / 5;
}
}
-#define IS_CHAN_DFS(_c) (((_c)->privFlags & CHANNEL_DFS) != 0)
-#define IS_CHAN_4MS(_c) (((_c)->privFlags & CHANNEL_4MS_LIMIT) != 0)
+#define IEEE80211_IS_CHAN_4MS(_c) \
+ (((_c)->ic_flags & IEEE80211_CHAN_4MSXMIT) != 0)
static void
-dumpchannels(struct ath_hal *ah, int nc, HAL_CHANNEL *chans, int16_t *txpow)
+dumpchannels(struct ath_hal *ah, int nc,
+ const struct ieee80211_channel *chans, int16_t *txpow)
{
int i;
for (i = 0; i < nc; i++) {
- HAL_CHANNEL *c = &chans[i];
+ const struct ieee80211_channel *c = &chans[i];
int type;
if (showchannels)
printf("%s%3d", sep,
- ath_hal_mhz2ieee(ah, c->channel, c->channelFlags));
+ ath_hal_mhz2ieee(ah, c->ic_freq, c->ic_flags));
else
- printf("%s%u", sep, c->channel);
- if (IS_CHAN_HALF_RATE(c))
+ printf("%s%u", sep, c->ic_freq);
+ if (IEEE80211_IS_CHAN_HALF(c))
type = 'H';
- else if (IS_CHAN_QUARTER_RATE(c))
+ else if (IEEE80211_IS_CHAN_QUARTER(c))
type = 'Q';
- else if (IS_CHAN_TURBO(c))
+ else if (IEEE80211_IS_CHAN_TURBO(c))
type = 'T';
- else if (IS_CHAN_HT(c))
+ else if (IEEE80211_IS_CHAN_HT(c))
type = 'N';
- else if (IS_CHAN_A(c))
+ else if (IEEE80211_IS_CHAN_A(c))
type = 'A';
- else if (IS_CHAN_108G(c))
+ else if (IEEE80211_IS_CHAN_108G(c))
type = 'T';
- else if (IS_CHAN_G(c))
+ else if (IEEE80211_IS_CHAN_G(c))
type = 'G';
else
type = 'B';
- if (dopassive && IS_CHAN_PASSIVE(c))
+ if (dopassive && IEEE80211_IS_CHAN_PASSIVE(c))
type = tolower(type);
if (isdfs && is4ms)
printf("%c%c%c %d.%d", type,
- IS_CHAN_DFS(c) ? '*' : ' ',
- IS_CHAN_4MS(c) ? '4' : ' ',
+ IEEE80211_IS_CHAN_DFS(c) ? '*' : ' ',
+ IEEE80211_IS_CHAN_4MS(c) ? '4' : ' ',
txpow[i]/2, (txpow[i]%2)*5);
else if (isdfs)
printf("%c%c %d.%d", type,
- IS_CHAN_DFS(c) ? '*' : ' ',
+ IEEE80211_IS_CHAN_DFS(c) ? '*' : ' ',
txpow[i]/2, (txpow[i]%2)*5);
else if (is4ms)
printf("%c%c %d.%d", type,
- IS_CHAN_4MS(c) ? '4' : ' ',
+ IEEE80211_IS_CHAN_4MS(c) ? '4' : ' ',
txpow[i]/2, (txpow[i]%2)*5);
else
printf("%c %d.%d", type, txpow[i]/2, (txpow[i]%2)*5);
@@ -1112,25 +937,12 @@ dumpchannels(struct ath_hal *ah, int nc, HAL_CHANNEL *chans, int16_t *txpow)
}
static void
-checkchannels(struct ath_hal *ah, HAL_CHANNEL *chans, int nchan)
-{
- int i;
-
- for (i = 0; i < nchan; i++) {
- HAL_CHANNEL *c = &chans[i];
- if (!ath_hal_checkchannel(ah, c))
- printf("Channel %u (0x%x) disallowed\n",
- c->channel, c->channelFlags);
- }
-}
-
-static void
-intersect(HAL_CHANNEL *dst, int16_t *dtxpow, int *nd,
- const HAL_CHANNEL *src, int16_t *stxpow, int ns)
+intersect(struct ieee80211_channel *dst, int16_t *dtxpow, int *nd,
+ const struct ieee80211_channel *src, int16_t *stxpow, int ns)
{
int i = 0, j, k, l;
while (i < *nd) {
- for (j = 0; j < ns && dst[i].channel != src[j].channel; j++)
+ for (j = 0; j < ns && dst[i].ic_freq != src[j].ic_freq; j++)
;
if (j < ns && dtxpow[i] == stxpow[j]) {
for (k = i+1, l = i; k < *nd; k++, l++)
@@ -1149,7 +961,7 @@ usage(const char *progname)
}
static HAL_BOOL
-getChipPowerLimits(struct ath_hal *ah, HAL_CHANNEL *chans, u_int32_t nchan)
+getChipPowerLimits(struct ath_hal *ah, struct ieee80211_channel *chan)
{
}
@@ -1199,25 +1011,23 @@ main(int argc, char *argv[])
static const u_int16_t tpcScaleReductionTable[5] =
{ 0, 3, 6, 9, MAX_RATE_POWER };
struct ath_hal_private ahp;
- HAL_CHANNEL achans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel achans[IEEE80211_CHAN_MAX];
int16_t atxpow[IEEE80211_CHAN_MAX];
- HAL_CHANNEL bchans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel bchans[IEEE80211_CHAN_MAX];
int16_t btxpow[IEEE80211_CHAN_MAX];
- HAL_CHANNEL gchans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel gchans[IEEE80211_CHAN_MAX];
int16_t gtxpow[IEEE80211_CHAN_MAX];
- HAL_CHANNEL tchans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel tchans[IEEE80211_CHAN_MAX];
int16_t ttxpow[IEEE80211_CHAN_MAX];
- HAL_CHANNEL tgchans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel tgchans[IEEE80211_CHAN_MAX];
int16_t tgtxpow[IEEE80211_CHAN_MAX];
- HAL_CHANNEL nchans[IEEE80211_CHAN_MAX];
+ struct ieee80211_channel nchans[IEEE80211_CHAN_MAX];
int16_t ntxpow[IEEE80211_CHAN_MAX];
int i, na, nb, ng, nt, ntg, nn;
HAL_BOOL showall = AH_FALSE;
HAL_BOOL extendedChanMode = AH_TRUE;
int modes = 0;
int16_t tpcReduction, powerLimit;
- int8_t regids[IEEE80211_REGCLASSIDS_MAX];
- int nregids;
int showdfs = 0;
int show4ms = 0;
@@ -1239,7 +1049,7 @@ main(int argc, char *argv[])
tpcReduction = tpcScaleReductionTable[0];
powerLimit = MAX_RATE_POWER;
- while ((i = getopt(argc, argv, "acdefoilm:pr4ABGhHNT")) != -1)
+ while ((i = getopt(argc, argv, "acdeflm:pr4ABGhHNT")) != -1)
switch (i) {
case 'a':
showall = AH_TRUE;
@@ -1256,12 +1066,6 @@ main(int argc, char *argv[])
case 'f':
showchannels = AH_FALSE;
break;
- case 'o':
- outdoor = AH_TRUE;
- break;
- case 'i':
- outdoor = AH_FALSE;
- break;
case 'l':
cclist();
rdlist();
@@ -1362,93 +1166,76 @@ main(int argc, char *argv[])
printf("\n%s (0x%x, %u)\n",
getrdname(rd), rd, rd);
- if (modes == 0)
+ if (modes == 0) {
+ /* NB: no HAL_MODE_HT */
modes = HAL_MODE_11A | HAL_MODE_11B |
- HAL_MODE_11G | HAL_MODE_TURBO | HAL_MODE_108G |
- HAL_MODE_HT;
+ HAL_MODE_11G | HAL_MODE_TURBO | HAL_MODE_108G;
+ }
na = nb = ng = nt = ntg = nn = 0;
if (modes & HAL_MODE_11G) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- gchans, IEEE80211_CHAN_MAX, &ng,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, HAL_MODE_11G, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, gchans, ng);
+ if (ath_hal_getchannels(&ahp.h, gchans, IEEE80211_CHAN_MAX, &ng,
+ HAL_MODE_11G, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, ng, gchans, tpcReduction, powerLimit, gtxpow);
if (showdfs)
- isdfs |= anychan(gchans, ng, CHANNEL_DFS);
+ isdfs |= anychan(gchans, ng, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(gchans, ng, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(gchans, ng, IEEE80211_CHAN_4MSXMIT);
}
}
if (modes & HAL_MODE_11B) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- bchans, IEEE80211_CHAN_MAX, &nb,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, HAL_MODE_11B, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, bchans, nb);
+ if (ath_hal_getchannels(&ahp.h, bchans, IEEE80211_CHAN_MAX, &nb,
+ HAL_MODE_11B, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, nb, bchans, tpcReduction, powerLimit, btxpow);
if (showdfs)
- isdfs |= anychan(bchans, nb, CHANNEL_DFS);
+ isdfs |= anychan(bchans, nb, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(bchans, nb, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(bchans, nb, IEEE80211_CHAN_4MSXMIT);
}
}
if (modes & HAL_MODE_11A) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- achans, IEEE80211_CHAN_MAX, &na,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, HAL_MODE_11A, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, achans, na);
+ if (ath_hal_getchannels(&ahp.h, achans, IEEE80211_CHAN_MAX, &na,
+ HAL_MODE_11A, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, na, achans, tpcReduction, powerLimit, atxpow);
if (showdfs)
- isdfs |= anychan(achans, na, CHANNEL_DFS);
+ isdfs |= anychan(achans, na, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(achans, na, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(achans, na, IEEE80211_CHAN_4MSXMIT);
}
}
if (modes & HAL_MODE_TURBO) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- tchans, IEEE80211_CHAN_MAX, &nt,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, HAL_MODE_TURBO, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, tchans, nt);
+ if (ath_hal_getchannels(&ahp.h, tchans, IEEE80211_CHAN_MAX, &nt,
+ HAL_MODE_TURBO, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, nt, tchans, tpcReduction, powerLimit, ttxpow);
if (showdfs)
- isdfs |= anychan(tchans, nt, CHANNEL_DFS);
+ isdfs |= anychan(tchans, nt, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(tchans, nt, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(tchans, nt, IEEE80211_CHAN_4MSXMIT);
}
}
if (modes & HAL_MODE_108G) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- tgchans, IEEE80211_CHAN_MAX, &ntg,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, HAL_MODE_108G, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, tgchans, ntg);
+ if (ath_hal_getchannels(&ahp.h, tgchans, IEEE80211_CHAN_MAX, &ntg,
+ HAL_MODE_108G, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, ntg, tgchans, tpcReduction, powerLimit, tgtxpow);
if (showdfs)
- isdfs |= anychan(tgchans, ntg, CHANNEL_DFS);
+ isdfs |= anychan(tgchans, ntg, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(tgchans, ntg, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(tgchans, ntg, IEEE80211_CHAN_4MSXMIT);
}
}
if (modes & HAL_MODE_HT) {
ahp.ah_currentRD = rd;
- if (ath_hal_init_channels(&ahp.h,
- nchans, IEEE80211_CHAN_MAX, &nn,
- regids, IEEE80211_REGCLASSIDS_MAX, &nregids,
- cc, modes & HAL_MODE_HT, outdoor, extendedChanMode)) {
- checkchannels(&ahp.h, nchans, nn);
+ if (ath_hal_getchannels(&ahp.h, nchans, IEEE80211_CHAN_MAX, &nn,
+ modes & HAL_MODE_HT, cc, rd, extendedChanMode) == HAL_OK) {
calctxpower(&ahp.h, nn, nchans, tpcReduction, powerLimit, ntxpow);
if (showdfs)
- isdfs |= anychan(nchans, nn, CHANNEL_DFS);
+ isdfs |= anychan(nchans, nn, IEEE80211_CHAN_DFS);
if (show4ms)
- is4ms |= anychan(nchans, nn, CHANNEL_4MS_LIMIT);
+ is4ms |= anychan(nchans, nn, IEEE80211_CHAN_4MSXMIT);
}
}
@@ -1623,7 +1410,7 @@ interpolate(u_int16_t target, u_int16_t srcLeft, u_int16_t srcRight,
* channel, and number of channels
*/
static void
-ar5212GetTargetPowers(struct ath_hal *ah, HAL_CHANNEL *chan,
+ar5212GetTargetPowers(struct ath_hal *ah, const struct ieee80211_channel *chan,
TRGT_POWER_INFO *powInfo,
u_int16_t numChannels, TRGT_POWER_INFO *pNewPower)
{
@@ -1636,7 +1423,7 @@ ar5212GetTargetPowers(struct ath_hal *ah, HAL_CHANNEL *chan,
for (i = 0; i < numChannels; i++)
tempChannelList[i] = powInfo[i].testChannel;
- ar5212GetLowerUpperValues(chan->channel, tempChannelList,
+ ar5212GetLowerUpperValues(chan->ic_freq, tempChannelList,
numChannels, &clo, &chi);
/* Get the indices for the channel */
@@ -1655,13 +1442,13 @@ ar5212GetTargetPowers(struct ath_hal *ah, HAL_CHANNEL *chan,
* Get the lower and upper channels, target powers,
* and interpolate between them.
*/
- pNewPower->twicePwr6_24 = interpolate(chan->channel, clo, chi,
+ pNewPower->twicePwr6_24 = interpolate(chan->ic_freq, clo, chi,
powInfo[ixlo].twicePwr6_24, powInfo[ixhi].twicePwr6_24);
- pNewPower->twicePwr36 = interpolate(chan->channel, clo, chi,
+ pNewPower->twicePwr36 = interpolate(chan->ic_freq, clo, chi,
powInfo[ixlo].twicePwr36, powInfo[ixhi].twicePwr36);
- pNewPower->twicePwr48 = interpolate(chan->channel, clo, chi,
+ pNewPower->twicePwr48 = interpolate(chan->ic_freq, clo, chi,
powInfo[ixlo].twicePwr48, powInfo[ixhi].twicePwr48);
- pNewPower->twicePwr54 = interpolate(chan->channel, clo, chi,
+ pNewPower->twicePwr54 = interpolate(chan->ic_freq, clo, chi,
powInfo[ixlo].twicePwr54, powInfo[ixhi].twicePwr54);
}
@@ -1681,7 +1468,7 @@ findEdgePower(struct ath_hal *ah, u_int ctl)
* operating channel and mode.
*/
static HAL_BOOL
-setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
+setRateTable(struct ath_hal *ah, const struct ieee80211_channel *chan,
int16_t tpcScaleReduction, int16_t powerLimit,
int16_t *pMinPower, int16_t *pMaxPower)
{
@@ -1694,7 +1481,7 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
int16_t scaledPower;
u_int8_t cfgCtl;
- twiceMaxRDPower = chan->maxRegTxPower * 2;
+ twiceMaxRDPower = chan->ic_maxregpower * 2;
*pMaxPower = -MAX_RATE_POWER;
*pMinPower = MAX_RATE_POWER;
@@ -1702,16 +1489,16 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
cfgCtl = ath_hal_getctl(ah, chan);
rep = findEdgePower(ah, cfgCtl);
if (rep != AH_NULL)
- twiceMaxEdgePower = ar5212GetMaxEdgePower(chan->channel, rep);
+ twiceMaxEdgePower = ar5212GetMaxEdgePower(chan->ic_freq, rep);
else
twiceMaxEdgePower = MAX_RATE_POWER;
- if (IS_CHAN_G(chan)) {
+ if (IEEE80211_IS_CHAN_G(chan)) {
/* Check for a CCK CTL for 11G CCK powers */
cfgCtl = (cfgCtl & 0xFC) | 0x01;
rep = findEdgePower(ah, cfgCtl);
if (rep != AH_NULL)
- twiceMaxEdgePowerCck = ar5212GetMaxEdgePower(chan->channel, rep);
+ twiceMaxEdgePowerCck = ar5212GetMaxEdgePower(chan->ic_freq, rep);
else
twiceMaxEdgePowerCck = MAX_RATE_POWER;
} else {
@@ -1720,7 +1507,7 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
}
/* Get Antenna Gain reduction */
- if (IS_CHAN_5GHZ(chan)) {
+ if (IEEE80211_IS_CHAN_5GHZ(chan)) {
twiceAntennaGain = antennaGainMax[0];
} else {
twiceAntennaGain = antennaGainMax[1];
@@ -1728,9 +1515,9 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
twiceAntennaReduction =
ath_hal_getantennareduction(ah, chan, twiceAntennaGain);
- if (IS_CHAN_OFDM(chan)) {
+ if (IEEE80211_IS_CHAN_OFDM(chan)) {
/* Get final OFDM target powers */
- if (IS_CHAN_G(chan)) {
+ if (IEEE80211_IS_CHAN_G(chan)) {
/* TODO - add Turbo 2.4 to this mode check */
ar5212GetTargetPowers(ah, chan, trgtPwr_11g,
numTargetPwr_11g, &targetPowerOfdm);
@@ -1750,7 +1537,7 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
* this unless specially configured. Then we limit
* power only for non-AP operation.
*/
- if (IS_CHAN_TURBO(chan)
+ if (IEEE80211_IS_CHAN_TURBO(chan)
#ifdef AH_ENABLE_AP_SUPPORT
&& AH_PRIVATE(ah)->ah_opmode != HAL_M_HOSTAP
#endif
@@ -1767,7 +1554,7 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
* constraint on 2.4GHz channels.
*/
if (eeversion >= AR_EEPROM_VER4_0 &&
- IS_CHAN_2GHZ(chan))
+ IEEE80211_IS_CHAN_2GHZ(chan))
scaledPower = AH_MIN(scaledPower,
turbo2WMaxPower2);
}
@@ -1811,7 +1598,7 @@ setRateTable(struct ath_hal *ah, HAL_CHANNEL *chan,
twiceMaxEdgePower, tpcScaleReduction * 2);
}
- if (IS_CHAN_CCK(chan) || IS_CHAN_G(chan)) {
+ if (IEEE80211_IS_CHAN_CCK(chan)) {
/* Get final CCK target powers */
ar5212GetTargetPowers(ah, chan, trgtPwr_11b,
numTargetPwr_11b, &targetPowerCck);
OpenPOWER on IntegriCloud