Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
regd_common.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008-2009 Atheros Communications Inc.
3  *
4  * Permission to use, copy, modify, and/or distribute this software for any
5  * purpose with or without fee is hereby granted, provided that the above
6  * copyright notice and this permission notice appear in all copies.
7  *
8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
9  * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
10  * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
11  * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
12  * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
13  * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
14  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15  */
16 
17 #ifndef REGD_COMMON_H
18 #define REGD_COMMON_H
19 
20 enum EnumRd {
21  NO_ENUMRD = 0x00,
22  NULL1_WORLD = 0x03,
23  NULL1_ETSIB = 0x07,
24  NULL1_ETSIC = 0x08,
25  FCC1_FCCA = 0x10,
26  FCC1_WORLD = 0x11,
27  FCC4_FCCA = 0x12,
28  FCC5_FCCA = 0x13,
29  FCC6_FCCA = 0x14,
30 
31  FCC2_FCCA = 0x20,
32  FCC2_WORLD = 0x21,
33  FCC2_ETSIC = 0x22,
34  FCC6_WORLD = 0x23,
35  FRANCE_RES = 0x31,
36  FCC3_FCCA = 0x3A,
37  FCC3_WORLD = 0x3B,
38 
39  ETSI1_WORLD = 0x37,
40  ETSI3_ETSIA = 0x32,
41  ETSI2_WORLD = 0x35,
42  ETSI3_WORLD = 0x36,
43  ETSI4_WORLD = 0x30,
44  ETSI4_ETSIC = 0x38,
45  ETSI5_WORLD = 0x39,
46  ETSI6_WORLD = 0x34,
47  ETSI_RESERVED = 0x33,
48 
49  MKK1_MKKA = 0x40,
50  MKK1_MKKB = 0x41,
51  APL4_WORLD = 0x42,
52  MKK2_MKKA = 0x43,
53  APL_RESERVED = 0x44,
54  APL2_WORLD = 0x45,
55  APL2_APLC = 0x46,
56  APL3_WORLD = 0x47,
57  MKK1_FCCA = 0x48,
58  APL2_APLD = 0x49,
59  MKK1_MKKA1 = 0x4A,
60  MKK1_MKKA2 = 0x4B,
61  MKK1_MKKC = 0x4C,
62 
63  APL3_FCCA = 0x50,
64  APL1_WORLD = 0x52,
65  APL1_FCCA = 0x53,
66  APL1_APLA = 0x54,
67  APL1_ETSIC = 0x55,
68  APL2_ETSIC = 0x56,
69  APL5_WORLD = 0x58,
70  APL6_WORLD = 0x5B,
71  APL7_FCCA = 0x5C,
72  APL8_WORLD = 0x5D,
73  APL9_WORLD = 0x5E,
74 
75  WOR0_WORLD = 0x60,
76  WOR1_WORLD = 0x61,
77  WOR2_WORLD = 0x62,
78  WOR3_WORLD = 0x63,
79  WOR4_WORLD = 0x64,
80  WOR5_ETSIC = 0x65,
81 
82  WOR01_WORLD = 0x66,
83  WOR02_WORLD = 0x67,
84  EU1_WORLD = 0x68,
85 
86  WOR9_WORLD = 0x69,
87  WORA_WORLD = 0x6A,
88  WORB_WORLD = 0x6B,
89  WORC_WORLD = 0x6C,
90 
91  MKK3_MKKB = 0x80,
92  MKK3_MKKA2 = 0x81,
93  MKK3_MKKC = 0x82,
94 
95  MKK4_MKKB = 0x83,
96  MKK4_MKKA2 = 0x84,
97  MKK4_MKKC = 0x85,
98 
99  MKK5_MKKB = 0x86,
100  MKK5_MKKA2 = 0x87,
101  MKK5_MKKC = 0x88,
102 
103  MKK6_MKKB = 0x89,
104  MKK6_MKKA2 = 0x8A,
105  MKK6_MKKC = 0x8B,
106 
107  MKK7_MKKB = 0x8C,
108  MKK7_MKKA2 = 0x8D,
109  MKK7_MKKC = 0x8E,
110 
111  MKK8_MKKB = 0x8F,
112  MKK8_MKKA2 = 0x90,
113  MKK8_MKKC = 0x91,
114 
115  MKK14_MKKA1 = 0x92,
116  MKK15_MKKA1 = 0x93,
117 
118  MKK10_FCCA = 0xD0,
119  MKK10_MKKA1 = 0xD1,
120  MKK10_MKKC = 0xD2,
121  MKK10_MKKA2 = 0xD3,
122 
123  MKK11_MKKA = 0xD4,
124  MKK11_FCCA = 0xD5,
125  MKK11_MKKA1 = 0xD6,
126  MKK11_MKKC = 0xD7,
127  MKK11_MKKA2 = 0xD8,
128 
129  MKK12_MKKA = 0xD9,
130  MKK12_FCCA = 0xDA,
131  MKK12_MKKA1 = 0xDB,
132  MKK12_MKKC = 0xDC,
133  MKK12_MKKA2 = 0xDD,
134 
135  MKK13_MKKB = 0xDE,
136 
137  MKK3_MKKA = 0xF0,
138  MKK3_MKKA1 = 0xF1,
139  MKK3_FCCA = 0xF2,
140  MKK4_MKKA = 0xF3,
141  MKK4_MKKA1 = 0xF4,
142  MKK4_FCCA = 0xF5,
143  MKK9_MKKA = 0xF6,
144  MKK10_MKKA = 0xF7,
145  MKK6_MKKA1 = 0xF8,
146  MKK6_FCCA = 0xF9,
147  MKK7_MKKA1 = 0xFA,
148  MKK7_FCCA = 0xFB,
149  MKK9_FCCA = 0xFC,
150  MKK9_MKKA1 = 0xFD,
151  MKK9_MKKC = 0xFE,
152  MKK9_MKKA2 = 0xFF,
153 
154  WORLD = 0x0199,
155  DEBUG_REG_DMN = 0x01ff,
156 };
157 
158 /* Regpair to CTL band mapping */
159 static struct reg_dmn_pair_mapping regDomainPairs[] = {
160  /* regpair, 5 GHz CTL, 2 GHz CTL */
161  {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
165 
166  {FCC2_FCCA, CTL_FCC, CTL_FCC},
169  {FCC3_FCCA, CTL_FCC, CTL_FCC},
171  {FCC4_FCCA, CTL_FCC, CTL_FCC},
172  {FCC5_FCCA, CTL_FCC, CTL_FCC},
173  {FCC6_FCCA, CTL_FCC, CTL_FCC},
175 
176  {ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
177  {ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
178  {ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
179  {ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
180  {ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
181  {ETSI6_WORLD, CTL_ETSI, CTL_ETSI},
182 
183  /* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
184  {ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
185  {FRANCE_RES, CTL_ETSI, CTL_ETSI},
186 
188  {FCC1_FCCA, CTL_FCC, CTL_FCC},
194  {APL6_WORLD, CTL_ETSI, CTL_ETSI},
195  {APL8_WORLD, CTL_ETSI, CTL_ETSI},
196  {APL9_WORLD, CTL_ETSI, CTL_ETSI},
197 
198  {APL3_FCCA, CTL_FCC, CTL_FCC},
199  {APL7_FCCA, CTL_FCC, CTL_FCC},
203 
204  {MKK1_MKKA, CTL_MKK, CTL_MKK},
205  {MKK1_MKKB, CTL_MKK, CTL_MKK},
207  {MKK1_MKKA1, CTL_MKK, CTL_MKK},
208  {MKK1_MKKA2, CTL_MKK, CTL_MKK},
209  {MKK1_MKKC, CTL_MKK, CTL_MKK},
210 
211  {MKK2_MKKA, CTL_MKK, CTL_MKK},
212  {MKK3_MKKA, CTL_MKK, CTL_MKK},
213  {MKK3_MKKB, CTL_MKK, CTL_MKK},
214  {MKK3_MKKA1, CTL_MKK, CTL_MKK},
215  {MKK3_MKKA2, CTL_MKK, CTL_MKK},
216  {MKK3_MKKC, CTL_MKK, CTL_MKK},
218 
219  {MKK4_MKKA, CTL_MKK, CTL_MKK},
220  {MKK4_MKKB, CTL_MKK, CTL_MKK},
221  {MKK4_MKKA1, CTL_MKK, CTL_MKK},
222  {MKK4_MKKA2, CTL_MKK, CTL_MKK},
223  {MKK4_MKKC, CTL_MKK, CTL_MKK},
225 
226  {MKK5_MKKB, CTL_MKK, CTL_MKK},
227  {MKK5_MKKA2, CTL_MKK, CTL_MKK},
228  {MKK5_MKKC, CTL_MKK, CTL_MKK},
229 
230  {MKK6_MKKB, CTL_MKK, CTL_MKK},
231  {MKK6_MKKA1, CTL_MKK, CTL_MKK},
232  {MKK6_MKKA2, CTL_MKK, CTL_MKK},
233  {MKK6_MKKC, CTL_MKK, CTL_MKK},
235 
236  {MKK7_MKKB, CTL_MKK, CTL_MKK},
237  {MKK7_MKKA1, CTL_MKK, CTL_MKK},
238  {MKK7_MKKA2, CTL_MKK, CTL_MKK},
239  {MKK7_MKKC, CTL_MKK, CTL_MKK},
241 
242  {MKK8_MKKB, CTL_MKK, CTL_MKK},
243  {MKK8_MKKA2, CTL_MKK, CTL_MKK},
244  {MKK8_MKKC, CTL_MKK, CTL_MKK},
245 
246  {MKK9_MKKA, CTL_MKK, CTL_MKK},
248  {MKK9_MKKA1, CTL_MKK, CTL_MKK},
249  {MKK9_MKKA2, CTL_MKK, CTL_MKK},
250  {MKK9_MKKC, CTL_MKK, CTL_MKK},
251 
252  {MKK10_MKKA, CTL_MKK, CTL_MKK},
254  {MKK10_MKKA1, CTL_MKK, CTL_MKK},
255  {MKK10_MKKA2, CTL_MKK, CTL_MKK},
256  {MKK10_MKKC, CTL_MKK, CTL_MKK},
257 
258  {MKK11_MKKA, CTL_MKK, CTL_MKK},
260  {MKK11_MKKA1, CTL_MKK, CTL_MKK},
261  {MKK11_MKKA2, CTL_MKK, CTL_MKK},
262  {MKK11_MKKC, CTL_MKK, CTL_MKK},
263 
264  {MKK12_MKKA, CTL_MKK, CTL_MKK},
266  {MKK12_MKKA1, CTL_MKK, CTL_MKK},
267  {MKK12_MKKA2, CTL_MKK, CTL_MKK},
268  {MKK12_MKKC, CTL_MKK, CTL_MKK},
269 
270  {MKK13_MKKB, CTL_MKK, CTL_MKK},
271  {MKK14_MKKA1, CTL_MKK, CTL_MKK},
272  {MKK15_MKKA1, CTL_MKK, CTL_MKK},
273 
274  {WOR0_WORLD, NO_CTL, NO_CTL},
275  {WOR1_WORLD, NO_CTL, NO_CTL},
276  {WOR2_WORLD, NO_CTL, NO_CTL},
277  {WOR3_WORLD, NO_CTL, NO_CTL},
278  {WOR4_WORLD, NO_CTL, NO_CTL},
279  {WOR5_ETSIC, NO_CTL, NO_CTL},
280  {WOR01_WORLD, NO_CTL, NO_CTL},
281  {WOR02_WORLD, NO_CTL, NO_CTL},
282  {EU1_WORLD, NO_CTL, NO_CTL},
283  {WOR9_WORLD, NO_CTL, NO_CTL},
284  {WORA_WORLD, NO_CTL, NO_CTL},
285  {WORB_WORLD, NO_CTL, NO_CTL},
286  {WORC_WORLD, NO_CTL, NO_CTL},
287 };
288 
289 static struct country_code_to_enum_rd allCountries[] = {
290  {CTRY_DEBUG, NO_ENUMRD, "DB"},
291  {CTRY_DEFAULT, FCC1_FCCA, "CO"},
292  {CTRY_ALBANIA, NULL1_WORLD, "AL"},
293  {CTRY_ALGERIA, NULL1_WORLD, "DZ"},
294  {CTRY_ARGENTINA, FCC3_WORLD, "AR"},
295  {CTRY_ARMENIA, ETSI4_WORLD, "AM"},
296  {CTRY_ARUBA, ETSI1_WORLD, "AW"},
297  {CTRY_AUSTRALIA, FCC2_WORLD, "AU"},
298  {CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
299  {CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
300  {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
301  {CTRY_BAHRAIN, APL6_WORLD, "BH"},
302  {CTRY_BANGLADESH, NULL1_WORLD, "BD"},
303  {CTRY_BARBADOS, FCC2_WORLD, "BB"},
304  {CTRY_BELARUS, ETSI1_WORLD, "BY"},
305  {CTRY_BELGIUM, ETSI1_WORLD, "BE"},
306  {CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
307  {CTRY_BELIZE, APL1_ETSIC, "BZ"},
308  {CTRY_BOLIVIA, APL1_ETSIC, "BO"},
309  {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
310  {CTRY_BRAZIL, FCC3_WORLD, "BR"},
312  {CTRY_BULGARIA, ETSI6_WORLD, "BG"},
313  {CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
314  {CTRY_CANADA, FCC3_FCCA, "CA"},
315  {CTRY_CANADA2, FCC6_FCCA, "CA"},
316  {CTRY_CHILE, APL6_WORLD, "CL"},
317  {CTRY_CHINA, APL1_WORLD, "CN"},
318  {CTRY_COLOMBIA, FCC1_FCCA, "CO"},
319  {CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
320  {CTRY_CROATIA, ETSI1_WORLD, "HR"},
321  {CTRY_CYPRUS, ETSI1_WORLD, "CY"},
322  {CTRY_CZECH, ETSI3_WORLD, "CZ"},
323  {CTRY_DENMARK, ETSI1_WORLD, "DK"},
325  {CTRY_ECUADOR, FCC1_WORLD, "EC"},
326  {CTRY_EGYPT, ETSI3_WORLD, "EG"},
327  {CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
328  {CTRY_ESTONIA, ETSI1_WORLD, "EE"},
329  {CTRY_FINLAND, ETSI1_WORLD, "FI"},
330  {CTRY_FRANCE, ETSI1_WORLD, "FR"},
331  {CTRY_GEORGIA, ETSI4_WORLD, "GE"},
332  {CTRY_GERMANY, ETSI1_WORLD, "DE"},
333  {CTRY_GREECE, ETSI1_WORLD, "GR"},
334  {CTRY_GREENLAND, ETSI1_WORLD, "GL"},
335  {CTRY_GRENADA, FCC3_FCCA, "GD"},
336  {CTRY_GUAM, FCC1_FCCA, "GU"},
337  {CTRY_GUATEMALA, FCC1_FCCA, "GT"},
338  {CTRY_HAITI, ETSI1_WORLD, "HT"},
339  {CTRY_HONDURAS, NULL1_WORLD, "HN"},
340  {CTRY_HONG_KONG, FCC3_WORLD, "HK"},
341  {CTRY_HUNGARY, ETSI1_WORLD, "HU"},
342  {CTRY_ICELAND, ETSI1_WORLD, "IS"},
343  {CTRY_INDIA, APL6_WORLD, "IN"},
344  {CTRY_INDONESIA, NULL1_WORLD, "ID"},
345  {CTRY_IRAN, APL1_WORLD, "IR"},
346  {CTRY_IRELAND, ETSI1_WORLD, "IE"},
347  {CTRY_ISRAEL, NULL1_WORLD, "IL"},
348  {CTRY_ITALY, ETSI1_WORLD, "IT"},
349  {CTRY_JAMAICA, FCC3_WORLD, "JM"},
350 
351  {CTRY_JAPAN, MKK1_MKKA, "JP"},
352  {CTRY_JAPAN1, MKK1_MKKB, "JP"},
353  {CTRY_JAPAN2, MKK1_FCCA, "JP"},
354  {CTRY_JAPAN3, MKK2_MKKA, "JP"},
355  {CTRY_JAPAN4, MKK1_MKKA1, "JP"},
356  {CTRY_JAPAN5, MKK1_MKKA2, "JP"},
357  {CTRY_JAPAN6, MKK1_MKKC, "JP"},
358  {CTRY_JAPAN7, MKK3_MKKB, "JP"},
359  {CTRY_JAPAN8, MKK3_MKKA2, "JP"},
360  {CTRY_JAPAN9, MKK3_MKKC, "JP"},
361  {CTRY_JAPAN10, MKK4_MKKB, "JP"},
362  {CTRY_JAPAN11, MKK4_MKKA2, "JP"},
363  {CTRY_JAPAN12, MKK4_MKKC, "JP"},
364  {CTRY_JAPAN13, MKK5_MKKB, "JP"},
365  {CTRY_JAPAN14, MKK5_MKKA2, "JP"},
366  {CTRY_JAPAN15, MKK5_MKKC, "JP"},
367  {CTRY_JAPAN16, MKK6_MKKB, "JP"},
368  {CTRY_JAPAN17, MKK6_MKKA2, "JP"},
369  {CTRY_JAPAN18, MKK6_MKKC, "JP"},
370  {CTRY_JAPAN19, MKK7_MKKB, "JP"},
371  {CTRY_JAPAN20, MKK7_MKKA2, "JP"},
372  {CTRY_JAPAN21, MKK7_MKKC, "JP"},
373  {CTRY_JAPAN22, MKK8_MKKB, "JP"},
374  {CTRY_JAPAN23, MKK8_MKKA2, "JP"},
375  {CTRY_JAPAN24, MKK8_MKKC, "JP"},
376  {CTRY_JAPAN25, MKK3_MKKA, "JP"},
377  {CTRY_JAPAN26, MKK3_MKKA1, "JP"},
378  {CTRY_JAPAN27, MKK3_FCCA, "JP"},
379  {CTRY_JAPAN28, MKK4_MKKA1, "JP"},
380  {CTRY_JAPAN29, MKK4_FCCA, "JP"},
381  {CTRY_JAPAN30, MKK6_MKKA1, "JP"},
382  {CTRY_JAPAN31, MKK6_FCCA, "JP"},
383  {CTRY_JAPAN32, MKK7_MKKA1, "JP"},
384  {CTRY_JAPAN33, MKK7_FCCA, "JP"},
385  {CTRY_JAPAN34, MKK9_MKKA, "JP"},
386  {CTRY_JAPAN35, MKK10_MKKA, "JP"},
387  {CTRY_JAPAN36, MKK4_MKKA, "JP"},
388  {CTRY_JAPAN37, MKK9_FCCA, "JP"},
389  {CTRY_JAPAN38, MKK9_MKKA1, "JP"},
390  {CTRY_JAPAN39, MKK9_MKKC, "JP"},
391  {CTRY_JAPAN40, MKK9_MKKA2, "JP"},
392  {CTRY_JAPAN41, MKK10_FCCA, "JP"},
393  {CTRY_JAPAN42, MKK10_MKKA1, "JP"},
394  {CTRY_JAPAN43, MKK10_MKKC, "JP"},
395  {CTRY_JAPAN44, MKK10_MKKA2, "JP"},
396  {CTRY_JAPAN45, MKK11_MKKA, "JP"},
397  {CTRY_JAPAN46, MKK11_FCCA, "JP"},
398  {CTRY_JAPAN47, MKK11_MKKA1, "JP"},
399  {CTRY_JAPAN48, MKK11_MKKC, "JP"},
400  {CTRY_JAPAN49, MKK11_MKKA2, "JP"},
401  {CTRY_JAPAN50, MKK12_MKKA, "JP"},
402  {CTRY_JAPAN51, MKK12_FCCA, "JP"},
403  {CTRY_JAPAN52, MKK12_MKKA1, "JP"},
404  {CTRY_JAPAN53, MKK12_MKKC, "JP"},
405  {CTRY_JAPAN54, MKK12_MKKA2, "JP"},
406  {CTRY_JAPAN57, MKK13_MKKB, "JP"},
407  {CTRY_JAPAN58, MKK14_MKKA1, "JP"},
408  {CTRY_JAPAN59, MKK15_MKKA1, "JP"},
409 
410  {CTRY_JORDAN, ETSI2_WORLD, "JO"},
411  {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
412  {CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
413  {CTRY_KOREA_ROC, APL9_WORLD, "KR"},
414  {CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
415  {CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
416  {CTRY_KUWAIT, ETSI3_WORLD, "KW"},
417  {CTRY_LATVIA, ETSI1_WORLD, "LV"},
418  {CTRY_LEBANON, NULL1_WORLD, "LB"},
420  {CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
421  {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
422  {CTRY_MACAU, FCC2_WORLD, "MO"},
423  {CTRY_MACEDONIA, NULL1_WORLD, "MK"},
424  {CTRY_MALAYSIA, APL8_WORLD, "MY"},
425  {CTRY_MALTA, ETSI1_WORLD, "MT"},
426  {CTRY_MEXICO, FCC1_FCCA, "MX"},
427  {CTRY_MONACO, ETSI4_WORLD, "MC"},
428  {CTRY_MOROCCO, APL4_WORLD, "MA"},
429  {CTRY_NEPAL, APL1_WORLD, "NP"},
430  {CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
432  {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ"},
433  {CTRY_NORWAY, ETSI1_WORLD, "NO"},
434  {CTRY_OMAN, FCC3_WORLD, "OM"},
435  {CTRY_PAKISTAN, NULL1_WORLD, "PK"},
436  {CTRY_PANAMA, FCC1_FCCA, "PA"},
438  {CTRY_PERU, APL1_WORLD, "PE"},
439  {CTRY_PHILIPPINES, APL1_WORLD, "PH"},
440  {CTRY_POLAND, ETSI1_WORLD, "PL"},
441  {CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
442  {CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
443  {CTRY_QATAR, APL1_WORLD, "QA"},
444  {CTRY_ROMANIA, NULL1_WORLD, "RO"},
445  {CTRY_RUSSIA, NULL1_WORLD, "RU"},
448  {CTRY_SINGAPORE, APL6_WORLD, "SG"},
449  {CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
450  {CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
451  {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
452  {CTRY_SPAIN, ETSI1_WORLD, "ES"},
453  {CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
454  {CTRY_SWEDEN, ETSI1_WORLD, "SE"},
455  {CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
456  {CTRY_SYRIA, NULL1_WORLD, "SY"},
457  {CTRY_TAIWAN, APL3_FCCA, "TW"},
458  {CTRY_THAILAND, FCC3_WORLD, "TH"},
460  {CTRY_TUNISIA, ETSI3_WORLD, "TN"},
461  {CTRY_TURKEY, ETSI3_WORLD, "TR"},
462  {CTRY_UKRAINE, NULL1_WORLD, "UA"},
463  {CTRY_UAE, NULL1_WORLD, "AE"},
465  {CTRY_UNITED_STATES, FCC3_FCCA, "US"},
466  /* This "PS" is for US public safety actually... to support this we
467  * would need to assign new special alpha2 to CRDA db as with the world
468  * regdomain and use another alpha2 */
470  {CTRY_URUGUAY, FCC3_WORLD, "UY"},
471  {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
472  {CTRY_VENEZUELA, APL2_ETSIC, "VE"},
473  {CTRY_VIET_NAM, NULL1_WORLD, "VN"},
474  {CTRY_YEMEN, NULL1_WORLD, "YE"},
475  {CTRY_ZIMBABWE, NULL1_WORLD, "ZW"},
476 };
477 
478 #endif