regd_common.h 14 KB

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