rlm_domain.h 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626
  1. /*
  2. ** Id: //Department/DaVinci/BRANCHES/MT6620_WIFI_DRIVER_V2_3/include/mgmt/rlm_domain.h#1
  3. */
  4. /*! \file "rlm_domain.h"
  5. \brief
  6. */
  7. /*
  8. ** Log: rlm_domain.h
  9. *
  10. * 09 29 2011 cm.chang
  11. * NULL
  12. * Change the function prototype of rlmDomainGetChnlList()
  13. *
  14. * 09 08 2011 cm.chang
  15. * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
  16. * Use new fields ucChannelListMap and ucChannelListIndex in NVRAM
  17. *
  18. * 08 31 2011 cm.chang
  19. * [WCXRP00000969] [MT6620 Wi-Fi][Driver][FW] Channel list for 5G band based on country code
  20. * .
  21. *
  22. * 06 01 2011 cm.chang
  23. * [WCXRP00000756] [MT6620 Wi-Fi][Driver] 1. AIS follow channel of BOW 2. Provide legal channel function
  24. * Provide legal channel function based on domain
  25. *
  26. * 12 07 2010 cm.chang
  27. * [WCXRP00000238] MT6620 Wi-Fi][Driver][FW] Support regulation domain setting from NVRAM and supplicant
  28. * 1. Country code is from NVRAM or supplicant
  29. * 2. Change band definition in CMD/EVENT.
  30. *
  31. * 07 08 2010 cp.wu
  32. *
  33. * [WPD00003833] [MT6620 and MT5931] Driver migration - move to new repository.
  34. *
  35. * 06 28 2010 cm.chang
  36. * [WPD00003841][LITE Driver] Migrate RLM/CNM to host driver
  37. * 1st draft code for RLM module
  38. *
  39. * 02 23 2010 kevin.huang
  40. * [BORA00000603][WIFISYS] [New Feature] AAA Module Support
  41. * Add support scan channel 1~14 and update scan result's frequency infou1rwduu`wvpghlqg|n`slk+mpdkb
  42. *
  43. * 01 13 2010 cm.chang
  44. * [BORA00000018]Integrate WIFI part into BORA for the 1st time
  45. * Provide query function about full channel list.
  46. *
  47. * Dec 1 2009 mtk01104
  48. * [BORA00000018] Integrate WIFI part into BORA for the 1st time
  49. * Declare public rDomainInfo
  50. *
  51. **
  52. */
  53. #ifndef _RLM_DOMAIN_H
  54. #define _RLM_DOMAIN_H
  55. /*******************************************************************************
  56. * C O M P I L E R F L A G S
  57. ********************************************************************************
  58. */
  59. /*******************************************************************************
  60. * E X T E R N A L R E F E R E N C E S
  61. ********************************************************************************
  62. */
  63. /*******************************************************************************
  64. * C O N S T A N T S
  65. ********************************************************************************
  66. */
  67. #define MAX_SUBBAND_NUM 6
  68. #define MAX_SUBBAND_NUM_5G 8
  69. #define COUNTRY_CODE_NULL ((UINT_16)0x0)
  70. /* ISO/IEC 3166-1 two-character country codes */
  71. #define COUNTRY_CODE_AD (((UINT_16) 'A' << 8) | (UINT_16) 'D') /* Andorra */
  72. #define COUNTRY_CODE_AE (((UINT_16) 'A' << 8) | (UINT_16) 'E') /* UAE */
  73. #define COUNTRY_CODE_AF (((UINT_16) 'A' << 8) | (UINT_16) 'F') /* Afghanistan */
  74. #define COUNTRY_CODE_AG (((UINT_16) 'A' << 8) | (UINT_16) 'G') /* Antigua & Barbuda */
  75. #define COUNTRY_CODE_AI (((UINT_16) 'A' << 8) | (UINT_16) 'I') /* Anguilla */
  76. #define COUNTRY_CODE_AL (((UINT_16) 'A' << 8) | (UINT_16) 'L') /* Albania */
  77. #define COUNTRY_CODE_AM (((UINT_16) 'A' << 8) | (UINT_16) 'M') /* Armenia */
  78. #define COUNTRY_CODE_AN (((UINT_16) 'A' << 8) | (UINT_16) 'N') /* Netherlands Antilles */
  79. #define COUNTRY_CODE_AO (((UINT_16) 'A' << 8) | (UINT_16) 'O') /* Angola */
  80. #define COUNTRY_CODE_AR (((UINT_16) 'A' << 8) | (UINT_16) 'R') /* Argentina */
  81. #define COUNTRY_CODE_AS (((UINT_16) 'A' << 8) | (UINT_16) 'S') /* American Samoa (USA) */
  82. #define COUNTRY_CODE_AT (((UINT_16) 'A' << 8) | (UINT_16) 'T') /* Austria */
  83. #define COUNTRY_CODE_AU (((UINT_16) 'A' << 8) | (UINT_16) 'U') /* Australia */
  84. #define COUNTRY_CODE_AW (((UINT_16) 'A' << 8) | (UINT_16) 'W') /* Aruba */
  85. #define COUNTRY_CODE_AZ (((UINT_16) 'A' << 8) | (UINT_16) 'Z') /* Azerbaijan */
  86. #define COUNTRY_CODE_BA (((UINT_16) 'B' << 8) | (UINT_16) 'A') /* Bosnia and Herzegovina */
  87. #define COUNTRY_CODE_BB (((UINT_16) 'B' << 8) | (UINT_16) 'B') /* Barbados */
  88. #define COUNTRY_CODE_BD (((UINT_16) 'B' << 8) | (UINT_16) 'D') /* Bangladesh */
  89. #define COUNTRY_CODE_BE (((UINT_16) 'B' << 8) | (UINT_16) 'E') /* Belgium */
  90. #define COUNTRY_CODE_BF (((UINT_16) 'B' << 8) | (UINT_16) 'F') /* Burkina Faso */
  91. #define COUNTRY_CODE_BG (((UINT_16) 'B' << 8) | (UINT_16) 'G') /* Bulgaria */
  92. #define COUNTRY_CODE_BH (((UINT_16) 'B' << 8) | (UINT_16) 'H') /* Bahrain */
  93. #define COUNTRY_CODE_BI (((UINT_16) 'B' << 8) | (UINT_16) 'I') /* Burundi */
  94. #define COUNTRY_CODE_BJ (((UINT_16) 'B' << 8) | (UINT_16) 'J') /* Benin */
  95. #define COUNTRY_CODE_BM (((UINT_16) 'B' << 8) | (UINT_16) 'M') /* Bermuda */
  96. #define COUNTRY_CODE_BN (((UINT_16) 'B' << 8) | (UINT_16) 'N') /* Brunei */
  97. #define COUNTRY_CODE_BO (((UINT_16) 'B' << 8) | (UINT_16) 'O') /* Bolivia */
  98. #define COUNTRY_CODE_BR (((UINT_16) 'B' << 8) | (UINT_16) 'R') /* Brazil */
  99. #define COUNTRY_CODE_BS (((UINT_16) 'B' << 8) | (UINT_16) 'S') /* Bahamas */
  100. #define COUNTRY_CODE_BT (((UINT_16) 'B' << 8) | (UINT_16) 'T') /* Bhutan */
  101. #define COUNTRY_CODE_BW (((UINT_16) 'B' << 8) | (UINT_16) 'W') /* Botswana */
  102. #define COUNTRY_CODE_BY (((UINT_16) 'B' << 8) | (UINT_16) 'Y') /* Belarus */
  103. #define COUNTRY_CODE_BZ (((UINT_16) 'B' << 8) | (UINT_16) 'Z') /* Belize */
  104. #define COUNTRY_CODE_CA (((UINT_16) 'C' << 8) | (UINT_16) 'A') /* Canada */
  105. #define COUNTRY_CODE_CD (((UINT_16) 'C' << 8) | (UINT_16) 'D') /* Congo. Democratic Republic of the */
  106. #define COUNTRY_CODE_CF (((UINT_16) 'C' << 8) | (UINT_16) 'F') /* Central African Republic */
  107. #define COUNTRY_CODE_CG (((UINT_16) 'C' << 8) | (UINT_16) 'G') /* Congo. Republic of the */
  108. #define COUNTRY_CODE_CH (((UINT_16) 'C' << 8) | (UINT_16) 'H') /* Switzerland */
  109. #define COUNTRY_CODE_CI (((UINT_16) 'C' << 8) | (UINT_16) 'I') /* Cote d'lvoire */
  110. #define COUNTRY_CODE_CK (((UINT_16) 'C' << 8) | (UINT_16) 'K') /* Cook Island */
  111. #define COUNTRY_CODE_CL (((UINT_16) 'C' << 8) | (UINT_16) 'L') /* Chile */
  112. #define COUNTRY_CODE_CM (((UINT_16) 'C' << 8) | (UINT_16) 'M') /* Cameroon */
  113. #define COUNTRY_CODE_CN (((UINT_16) 'C' << 8) | (UINT_16) 'N') /* China */
  114. #define COUNTRY_CODE_CO (((UINT_16) 'C' << 8) | (UINT_16) 'O') /* Columbia */
  115. #define COUNTRY_CODE_CR (((UINT_16) 'C' << 8) | (UINT_16) 'R') /* Costa Rica */
  116. #define COUNTRY_CODE_CU (((UINT_16) 'C' << 8) | (UINT_16) 'U') /* Cuba */
  117. #define COUNTRY_CODE_CV (((UINT_16) 'C' << 8) | (UINT_16) 'V') /* Cape Verde */
  118. #define COUNTRY_CODE_CX (((UINT_16) 'C' << 8) | (UINT_16) 'X') /* "Christmas Island(Australia) */
  119. #define COUNTRY_CODE_CY (((UINT_16) 'C' << 8) | (UINT_16) 'Y') /* Cyprus */
  120. #define COUNTRY_CODE_CZ (((UINT_16) 'C' << 8) | (UINT_16) 'Z') /* Czech */
  121. #define COUNTRY_CODE_DE (((UINT_16) 'D' << 8) | (UINT_16) 'E') /* Germany */
  122. #define COUNTRY_CODE_DJ (((UINT_16) 'D' << 8) | (UINT_16) 'J') /* Djibouti */
  123. #define COUNTRY_CODE_DK (((UINT_16) 'D' << 8) | (UINT_16) 'K') /* Denmark */
  124. #define COUNTRY_CODE_DM (((UINT_16) 'D' << 8) | (UINT_16) 'M') /* Dominica */
  125. #define COUNTRY_CODE_DO (((UINT_16) 'D' << 8) | (UINT_16) 'O') /* Dominican Republic */
  126. #define COUNTRY_CODE_DZ (((UINT_16) 'D' << 8) | (UINT_16) 'Z') /* Algeria */
  127. #define COUNTRY_CODE_EC (((UINT_16) 'E' << 8) | (UINT_16) 'C') /* Ecuador */
  128. #define COUNTRY_CODE_EE (((UINT_16) 'E' << 8) | (UINT_16) 'E') /* Estonia */
  129. #define COUNTRY_CODE_EG (((UINT_16) 'E' << 8) | (UINT_16) 'G') /* Egypt */
  130. #define COUNTRY_CODE_EH (((UINT_16) 'E' << 8) | (UINT_16) 'H') /* Western Sahara (Morocco) */
  131. #define COUNTRY_CODE_ER (((UINT_16) 'E' << 8) | (UINT_16) 'R') /* Eritrea */
  132. #define COUNTRY_CODE_ES (((UINT_16) 'E' << 8) | (UINT_16) 'S') /* Spain */
  133. #define COUNTRY_CODE_ET (((UINT_16) 'E' << 8) | (UINT_16) 'T') /* Ethiopia */
  134. #define COUNTRY_CODE_EU (((UINT_16) 'E' << 8) | (UINT_16) 'U') /* Europe */
  135. #define COUNTRY_CODE_FI (((UINT_16) 'F' << 8) | (UINT_16) 'I') /* Finland */
  136. #define COUNTRY_CODE_FJ (((UINT_16) 'F' << 8) | (UINT_16) 'J') /* Fiji */
  137. #define COUNTRY_CODE_FK (((UINT_16) 'F' << 8) | (UINT_16) 'K') /* Falkland Island */
  138. #define COUNTRY_CODE_FM (((UINT_16) 'F' << 8) | (UINT_16) 'M') /* Micronesia */
  139. #define COUNTRY_CODE_FO (((UINT_16) 'F' << 8) | (UINT_16) 'O') /* Faroe Island */
  140. #define COUNTRY_CODE_FR (((UINT_16) 'F' << 8) | (UINT_16) 'R') /* France */
  141. #define COUNTRY_CODE_FR (((UINT_16) 'F' << 8) | (UINT_16) 'R') /* Wallis and Futuna (France) */
  142. #define COUNTRY_CODE_GA (((UINT_16) 'G' << 8) | (UINT_16) 'A') /* Gabon */
  143. #define COUNTRY_CODE_GB (((UINT_16) 'G' << 8) | (UINT_16) 'B') /* United Kingdom */
  144. #define COUNTRY_CODE_GD (((UINT_16) 'G' << 8) | (UINT_16) 'D') /* Grenada */
  145. #define COUNTRY_CODE_GE (((UINT_16) 'G' << 8) | (UINT_16) 'E') /* Georgia */
  146. #define COUNTRY_CODE_GF (((UINT_16) 'G' << 8) | (UINT_16) 'F') /* French Guiana */
  147. #define COUNTRY_CODE_GG (((UINT_16) 'G' << 8) | (UINT_16) 'G') /* Guernsey */
  148. #define COUNTRY_CODE_GH (((UINT_16) 'G' << 8) | (UINT_16) 'H') /* Ghana */
  149. #define COUNTRY_CODE_GI (((UINT_16) 'G' << 8) | (UINT_16) 'I') /* Gibraltar */
  150. #define COUNTRY_CODE_GM (((UINT_16) 'G' << 8) | (UINT_16) 'M') /* Gambia */
  151. #define COUNTRY_CODE_GN (((UINT_16) 'G' << 8) | (UINT_16) 'N') /* Guinea */
  152. #define COUNTRY_CODE_GP (((UINT_16) 'G' << 8) | (UINT_16) 'P') /* Guadeloupe */
  153. #define COUNTRY_CODE_GQ (((UINT_16) 'G' << 8) | (UINT_16) 'Q') /* Equatorial Guinea */
  154. #define COUNTRY_CODE_GR (((UINT_16) 'G' << 8) | (UINT_16) 'R') /* Greece */
  155. #define COUNTRY_CODE_GT (((UINT_16) 'G' << 8) | (UINT_16) 'T') /* Guatemala */
  156. #define COUNTRY_CODE_GU (((UINT_16) 'G' << 8) | (UINT_16) 'U') /* Guam */
  157. #define COUNTRY_CODE_GW (((UINT_16) 'G' << 8) | (UINT_16) 'W') /* Guinea-Bissau */
  158. #define COUNTRY_CODE_GY (((UINT_16) 'G' << 8) | (UINT_16) 'Y') /* Guyana */
  159. #define COUNTRY_CODE_HK (((UINT_16) 'H' << 8) | (UINT_16) 'K') /* Hong Kong */
  160. #define COUNTRY_CODE_HN (((UINT_16) 'H' << 8) | (UINT_16) 'N') /* Honduras */
  161. #define COUNTRY_CODE_HR (((UINT_16) 'H' << 8) | (UINT_16) 'R') /* Croatia */
  162. #define COUNTRY_CODE_HT (((UINT_16) 'H' << 8) | (UINT_16) 'T') /* Haiti */
  163. #define COUNTRY_CODE_HU (((UINT_16) 'H' << 8) | (UINT_16) 'U') /* Hungary */
  164. #define COUNTRY_CODE_ID (((UINT_16) 'I' << 8) | (UINT_16) 'D') /* Indonesia */
  165. #define COUNTRY_CODE_IE (((UINT_16) 'I' << 8) | (UINT_16) 'E') /* Ireland */
  166. #define COUNTRY_CODE_IL (((UINT_16) 'I' << 8) | (UINT_16) 'L') /* Israel */
  167. #define COUNTRY_CODE_IM (((UINT_16) 'I' << 8) | (UINT_16) 'M') /* Isle of Man */
  168. #define COUNTRY_CODE_IN (((UINT_16) 'I' << 8) | (UINT_16) 'N') /* India */
  169. #define COUNTRY_CODE_IQ (((UINT_16) 'I' << 8) | (UINT_16) 'Q') /* Iraq */
  170. #define COUNTRY_CODE_IR (((UINT_16) 'I' << 8) | (UINT_16) 'R') /* Iran */
  171. #define COUNTRY_CODE_IS (((UINT_16) 'I' << 8) | (UINT_16) 'S') /* Iceland */
  172. #define COUNTRY_CODE_IT (((UINT_16) 'I' << 8) | (UINT_16) 'T') /* Italy */
  173. #define COUNTRY_CODE_JE (((UINT_16) 'J' << 8) | (UINT_16) 'E') /* Jersey */
  174. #define COUNTRY_CODE_JM (((UINT_16) 'J' << 8) | (UINT_16) 'M') /* Jameica */
  175. #define COUNTRY_CODE_JO (((UINT_16) 'J' << 8) | (UINT_16) 'O') /* Jordan */
  176. #define COUNTRY_CODE_JP (((UINT_16) 'J' << 8) | (UINT_16) 'P') /* Japan */
  177. #define COUNTRY_CODE_KE (((UINT_16) 'K' << 8) | (UINT_16) 'E') /* Kenya */
  178. #define COUNTRY_CODE_KG (((UINT_16) 'K' << 8) | (UINT_16) 'G') /* Kyrgyzstan */
  179. #define COUNTRY_CODE_KH (((UINT_16) 'K' << 8) | (UINT_16) 'H') /* Cambodia */
  180. #define COUNTRY_CODE_KI (((UINT_16) 'K' << 8) | (UINT_16) 'I') /* Kiribati */
  181. #define COUNTRY_CODE_KM (((UINT_16) 'K' << 8) | (UINT_16) 'M') /* Comoros */
  182. #define COUNTRY_CODE_KN (((UINT_16) 'K' << 8) | (UINT_16) 'N') /* Saint Kitts and Nevis */
  183. #define COUNTRY_CODE_KP (((UINT_16) 'K' << 8) | (UINT_16) 'P') /* North Korea */
  184. #define COUNTRY_CODE_KR (((UINT_16) 'K' << 8) | (UINT_16) 'R') /* South Korea */
  185. #define COUNTRY_CODE_KW (((UINT_16) 'K' << 8) | (UINT_16) 'W') /* Kuwait */
  186. #define COUNTRY_CODE_KY (((UINT_16) 'K' << 8) | (UINT_16) 'Y') /* Cayman Islands */
  187. #define COUNTRY_CODE_KZ (((UINT_16) 'K' << 8) | (UINT_16) 'Z') /* Kazakhstan */
  188. #define COUNTRY_CODE_LA (((UINT_16) 'L' << 8) | (UINT_16) 'A') /* Laos */
  189. #define COUNTRY_CODE_LB (((UINT_16) 'L' << 8) | (UINT_16) 'B') /* Lebanon */
  190. #define COUNTRY_CODE_LC (((UINT_16) 'L' << 8) | (UINT_16) 'C') /* Saint Lucia */
  191. #define COUNTRY_CODE_LI (((UINT_16) 'L' << 8) | (UINT_16) 'I') /* Liechtenstein */
  192. #define COUNTRY_CODE_LK (((UINT_16) 'L' << 8) | (UINT_16) 'K') /* Sri Lanka */
  193. #define COUNTRY_CODE_LR (((UINT_16) 'L' << 8) | (UINT_16) 'R') /* Liberia */
  194. #define COUNTRY_CODE_LS (((UINT_16) 'L' << 8) | (UINT_16) 'S') /* Lesotho */
  195. #define COUNTRY_CODE_LT (((UINT_16) 'L' << 8) | (UINT_16) 'T') /* Lithuania */
  196. #define COUNTRY_CODE_LU (((UINT_16) 'L' << 8) | (UINT_16) 'U') /* Luxemburg */
  197. #define COUNTRY_CODE_LV (((UINT_16) 'L' << 8) | (UINT_16) 'V') /* Latvia */
  198. #define COUNTRY_CODE_LY (((UINT_16) 'L' << 8) | (UINT_16) 'Y') /* Libya */
  199. #define COUNTRY_CODE_MA (((UINT_16) 'M' << 8) | (UINT_16) 'A') /* Morocco */
  200. #define COUNTRY_CODE_MC (((UINT_16) 'M' << 8) | (UINT_16) 'C') /* Monaco */
  201. #define COUNTRY_CODE_MD (((UINT_16) 'M' << 8) | (UINT_16) 'D') /* Moldova */
  202. #define COUNTRY_CODE_ME (((UINT_16) 'M' << 8) | (UINT_16) 'E') /* Montenegro */
  203. #define COUNTRY_CODE_MF (((UINT_16) 'M' << 8) | (UINT_16) 'F') /* Saint Martin / Sint Marteen
  204. (Added on window's list) */
  205. #define COUNTRY_CODE_MG (((UINT_16) 'M' << 8) | (UINT_16) 'G') /* Madagascar */
  206. #define COUNTRY_CODE_MH (((UINT_16) 'M' << 8) | (UINT_16) 'H') /* Marshall Islands */
  207. #define COUNTRY_CODE_MK (((UINT_16) 'M' << 8) | (UINT_16) 'K') /* Macedonia */
  208. #define COUNTRY_CODE_ML (((UINT_16) 'M' << 8) | (UINT_16) 'L') /* Mali */
  209. #define COUNTRY_CODE_MM (((UINT_16) 'M' << 8) | (UINT_16) 'M') /* Myanmar */
  210. #define COUNTRY_CODE_MN (((UINT_16) 'M' << 8) | (UINT_16) 'N') /* Mongolia */
  211. #define COUNTRY_CODE_MO (((UINT_16) 'M' << 8) | (UINT_16) 'O') /* Macao */
  212. #define COUNTRY_CODE_MP (((UINT_16) 'M' << 8) | (UINT_16) 'P') /* Northern Mariana Islands (Rota Island.
  213. Saipan and Tinian Island) */
  214. #define COUNTRY_CODE_MQ (((UINT_16) 'M' << 8) | (UINT_16) 'Q') /* Martinique (France) */
  215. #define COUNTRY_CODE_MR (((UINT_16) 'M' << 8) | (UINT_16) 'R') /* Mauritania */
  216. #define COUNTRY_CODE_MS (((UINT_16) 'M' << 8) | (UINT_16) 'S') /* Montserrat (UK) */
  217. #define COUNTRY_CODE_MT (((UINT_16) 'M' << 8) | (UINT_16) 'T') /* Malta */
  218. #define COUNTRY_CODE_MU (((UINT_16) 'M' << 8) | (UINT_16) 'U') /* Mauritius */
  219. #define COUNTRY_CODE_MV (((UINT_16) 'M' << 8) | (UINT_16) 'V') /* Maldives */
  220. #define COUNTRY_CODE_MW (((UINT_16) 'M' << 8) | (UINT_16) 'W') /* Malawi */
  221. #define COUNTRY_CODE_MX (((UINT_16) 'M' << 8) | (UINT_16) 'X') /* Mexico */
  222. #define COUNTRY_CODE_MY (((UINT_16) 'M' << 8) | (UINT_16) 'Y') /* Malaysia */
  223. #define COUNTRY_CODE_MZ (((UINT_16) 'M' << 8) | (UINT_16) 'Z') /* Mozambique */
  224. #define COUNTRY_CODE_NA (((UINT_16) 'N' << 8) | (UINT_16) 'A') /* Namibia */
  225. #define COUNTRY_CODE_NC (((UINT_16) 'N' << 8) | (UINT_16) 'C') /* New Caledonia */
  226. #define COUNTRY_CODE_NE (((UINT_16) 'N' << 8) | (UINT_16) 'E') /* Niger */
  227. #define COUNTRY_CODE_NF (((UINT_16) 'N' << 8) | (UINT_16) 'F') /* Norfolk Island */
  228. #define COUNTRY_CODE_NG (((UINT_16) 'N' << 8) | (UINT_16) 'G') /* Nigeria */
  229. #define COUNTRY_CODE_NI (((UINT_16) 'N' << 8) | (UINT_16) 'I') /* Nicaragua */
  230. #define COUNTRY_CODE_NL (((UINT_16) 'N' << 8) | (UINT_16) 'L') /* Netherlands */
  231. #define COUNTRY_CODE_NO (((UINT_16) 'N' << 8) | (UINT_16) 'O') /* Norway */
  232. #define COUNTRY_CODE_NP (((UINT_16) 'N' << 8) | (UINT_16) 'P') /* Nepal */
  233. #define COUNTRY_CODE_NR (((UINT_16) 'N' << 8) | (UINT_16) 'R') /* Nauru */
  234. #define COUNTRY_CODE_NU (((UINT_16) 'N' << 8) | (UINT_16) 'U') /* Niue */
  235. #define COUNTRY_CODE_NZ (((UINT_16) 'N' << 8) | (UINT_16) 'Z') /* New Zealand */
  236. #define COUNTRY_CODE_OM (((UINT_16) 'O' << 8) | (UINT_16) 'M') /* Oman */
  237. #define COUNTRY_CODE_PA (((UINT_16) 'P' << 8) | (UINT_16) 'A') /* Panama */
  238. #define COUNTRY_CODE_PE (((UINT_16) 'P' << 8) | (UINT_16) 'E') /* Peru */
  239. #define COUNTRY_CODE_PF (((UINT_16) 'P' << 8) | (UINT_16) 'F') /* "French Polynesia */
  240. #define COUNTRY_CODE_PG (((UINT_16) 'P' << 8) | (UINT_16) 'G') /* Papua New Guinea */
  241. #define COUNTRY_CODE_PH (((UINT_16) 'P' << 8) | (UINT_16) 'H') /* Philippines */
  242. #define COUNTRY_CODE_PK (((UINT_16) 'P' << 8) | (UINT_16) 'K') /* Pakistan */
  243. #define COUNTRY_CODE_PL (((UINT_16) 'P' << 8) | (UINT_16) 'L') /* Poland */
  244. #define COUNTRY_CODE_PM (((UINT_16) 'P' << 8) | (UINT_16) 'M') /* Saint Pierre and Miquelon */
  245. #define COUNTRY_CODE_PN (((UINT_16) 'P' << 8) | (UINT_16) 'N') /* Pitcairn Islands */
  246. #define COUNTRY_CODE_PR (((UINT_16) 'P' << 8) | (UINT_16) 'R') /* Puerto Rico (USA) */
  247. #define COUNTRY_CODE_PS (((UINT_16) 'P' << 8) | (UINT_16) 'S') /* Palestinian Authority */
  248. #define COUNTRY_CODE_PT (((UINT_16) 'P' << 8) | (UINT_16) 'T') /* Portugal */
  249. #define COUNTRY_CODE_PW (((UINT_16) 'P' << 8) | (UINT_16) 'W') /* Palau */
  250. #define COUNTRY_CODE_PY (((UINT_16) 'P' << 8) | (UINT_16) 'Y') /* Paraguay */
  251. #define COUNTRY_CODE_QA (((UINT_16) 'Q' << 8) | (UINT_16) 'A') /* Qatar */
  252. #define COUNTRY_CODE_RE (((UINT_16) 'R' << 8) | (UINT_16) 'E') /* Reunion (France) */
  253. #define COUNTRY_CODE_RKS (((UINT_16) 'R' << 8) | (UINT_16) 'K') /* Kosvo (Added on window's list) */
  254. #define COUNTRY_CODE_RO (((UINT_16) 'R' << 8) | (UINT_16) 'O') /* Romania */
  255. #define COUNTRY_CODE_RS (((UINT_16) 'R' << 8) | (UINT_16) 'S') /* Serbia */
  256. #define COUNTRY_CODE_RU (((UINT_16) 'R' << 8) | (UINT_16) 'U') /* Russia */
  257. #define COUNTRY_CODE_RW (((UINT_16) 'R' << 8) | (UINT_16) 'W') /* Rwanda */
  258. #define COUNTRY_CODE_SA (((UINT_16) 'S' << 8) | (UINT_16) 'A') /* Saudi Arabia */
  259. #define COUNTRY_CODE_SB (((UINT_16) 'S' << 8) | (UINT_16) 'B') /* Solomon Islands */
  260. #define COUNTRY_CODE_SC (((UINT_16) 'S' << 8) | (UINT_16) 'C') /* Seychelles */
  261. #define COUNTRY_CODE_SD (((UINT_16) 'S' << 8) | (UINT_16) 'D') /* Sudan */
  262. #define COUNTRY_CODE_SE (((UINT_16) 'S' << 8) | (UINT_16) 'E') /* Sweden */
  263. #define COUNTRY_CODE_SG (((UINT_16) 'S' << 8) | (UINT_16) 'G') /* Singapole */
  264. #define COUNTRY_CODE_SI (((UINT_16) 'S' << 8) | (UINT_16) 'I') /* Slovenia */
  265. #define COUNTRY_CODE_SK (((UINT_16) 'S' << 8) | (UINT_16) 'K') /* Slovakia */
  266. #define COUNTRY_CODE_SL (((UINT_16) 'S' << 8) | (UINT_16) 'L') /* Sierra Leone */
  267. #define COUNTRY_CODE_SM (((UINT_16) 'S' << 8) | (UINT_16) 'M') /* San Marino */
  268. #define COUNTRY_CODE_SN (((UINT_16) 'S' << 8) | (UINT_16) 'N') /* Senegal */
  269. #define COUNTRY_CODE_SO (((UINT_16) 'S' << 8) | (UINT_16) 'O') /* Somalia */
  270. #define COUNTRY_CODE_SR (((UINT_16) 'S' << 8) | (UINT_16) 'R') /* Suriname */
  271. #define COUNTRY_CODE_SS (((UINT_16) 'S' << 8) | (UINT_16) 'S') /* South_Sudan */
  272. #define COUNTRY_CODE_ST (((UINT_16) 'S' << 8) | (UINT_16) 'T') /* Sao Tome and Principe */
  273. #define COUNTRY_CODE_SV (((UINT_16) 'S' << 8) | (UINT_16) 'V') /* El Salvador */
  274. #define COUNTRY_CODE_SY (((UINT_16) 'S' << 8) | (UINT_16) 'Y') /* Syria */
  275. #define COUNTRY_CODE_SZ (((UINT_16) 'S' << 8) | (UINT_16) 'Z') /* Swaziland */
  276. #define COUNTRY_CODE_TC (((UINT_16) 'T' << 8) | (UINT_16) 'C') /* Turks and Caicos Islands (UK) */
  277. #define COUNTRY_CODE_TD (((UINT_16) 'T' << 8) | (UINT_16) 'D') /* Chad */
  278. #define COUNTRY_CODE_TF (((UINT_16) 'T' << 8) | (UINT_16) 'F') /* French Southern and Antarctic Lands */
  279. #define COUNTRY_CODE_TG (((UINT_16) 'T' << 8) | (UINT_16) 'G') /* Togo */
  280. #define COUNTRY_CODE_TH (((UINT_16) 'T' << 8) | (UINT_16) 'H') /* Thailand */
  281. #define COUNTRY_CODE_TJ (((UINT_16) 'T' << 8) | (UINT_16) 'J') /* Tajikistan */
  282. #define COUNTRY_CODE_TL (((UINT_16) 'T' << 8) | (UINT_16) 'L') /* East Timor */
  283. #define COUNTRY_CODE_TM (((UINT_16) 'T' << 8) | (UINT_16) 'M') /* Turkmenistan */
  284. #define COUNTRY_CODE_TN (((UINT_16) 'T' << 8) | (UINT_16) 'N') /* Tunisia */
  285. #define COUNTRY_CODE_TO (((UINT_16) 'T' << 8) | (UINT_16) 'O') /* Tonga */
  286. #define COUNTRY_CODE_TR (((UINT_16) 'T' << 8) | (UINT_16) 'R') /* Turkey */
  287. #define COUNTRY_CODE_TT (((UINT_16) 'T' << 8) | (UINT_16) 'T') /* Trinidad and Tobago */
  288. #define COUNTRY_CODE_TV (((UINT_16) 'T' << 8) | (UINT_16) 'V') /* Tuvalu */
  289. #define COUNTRY_CODE_TW (((UINT_16) 'T' << 8) | (UINT_16) 'W') /* Taiwan */
  290. #define COUNTRY_CODE_TZ (((UINT_16) 'T' << 8) | (UINT_16) 'Z') /* Tanzania */
  291. #define COUNTRY_CODE_UA (((UINT_16) 'U' << 8) | (UINT_16) 'A') /* Ukraine */
  292. #define COUNTRY_CODE_UG (((UINT_16) 'U' << 8) | (UINT_16) 'G') /* Ugnada */
  293. #define COUNTRY_CODE_US (((UINT_16) 'U' << 8) | (UINT_16) 'S') /* US */
  294. #define COUNTRY_CODE_UY (((UINT_16) 'U' << 8) | (UINT_16) 'Y') /* Uruguay */
  295. #define COUNTRY_CODE_UZ (((UINT_16) 'U' << 8) | (UINT_16) 'Z') /* Uzbekistan */
  296. #define COUNTRY_CODE_VA (((UINT_16) 'V' << 8) | (UINT_16) 'A') /* Vatican (Holy See) */
  297. #define COUNTRY_CODE_VC (((UINT_16) 'V' << 8) | (UINT_16) 'C') /* Saint Vincent and the Grenadines */
  298. #define COUNTRY_CODE_VE (((UINT_16) 'V' << 8) | (UINT_16) 'E') /* Venezuela */
  299. #define COUNTRY_CODE_VG (((UINT_16) 'V' << 8) | (UINT_16) 'G') /* British Virgin Islands */
  300. #define COUNTRY_CODE_VI (((UINT_16) 'V' << 8) | (UINT_16) 'I') /* US Virgin Islands */
  301. #define COUNTRY_CODE_VN (((UINT_16) 'V' << 8) | (UINT_16) 'N') /* Vietnam */
  302. #define COUNTRY_CODE_VU (((UINT_16) 'V' << 8) | (UINT_16) 'U') /* Vanuatu */
  303. #define COUNTRY_CODE_WS (((UINT_16) 'W' << 8) | (UINT_16) 'S') /* Samoa */
  304. #define COUNTRY_CODE_YE (((UINT_16) 'Y' << 8) | (UINT_16) 'E') /* Yemen */
  305. #define COUNTRY_CODE_YT (((UINT_16) 'Y' << 8) | (UINT_16) 'T') /* Mayotte (France) */
  306. #define COUNTRY_CODE_ZA (((UINT_16) 'Z' << 8) | (UINT_16) 'A') /* South Africa */
  307. #define COUNTRY_CODE_ZM (((UINT_16) 'Z' << 8) | (UINT_16) 'M') /* Zambia */
  308. #define COUNTRY_CODE_ZW (((UINT_16) 'Z' << 8) | (UINT_16) 'W') /* Zimbabwe */
  309. #define COUNTRY_CODE_UDF (((UINT_16) 'U' << 8) | (UINT_16) 'D') /* for User Defined channel list and
  310. passive scan channel list */
  311. #define COUNTRY_CODE_FF (((UINT_16) 'F' << 8) | (UINT_16) 'F') /* enable open for all channel for Certification */
  312. #define COUNTRY_CODE_FE (((UINT_16) 'F' << 8) | (UINT_16) 'E') /* disable open for all channel for Certification */
  313. /* dot11RegDomainsSupportValue */
  314. #define MIB_REG_DOMAIN_FCC 0x10 /* FCC (US) */
  315. #define MIB_REG_DOMAIN_IC 0x20 /* IC or DOC (Canada) */
  316. #define MIB_REG_DOMAIN_ETSI 0x30 /* ETSI (Europe) */
  317. #define MIB_REG_DOMAIN_SPAIN 0x31 /* Spain */
  318. #define MIB_REG_DOMAIN_FRANCE 0x32 /* France */
  319. #define MIB_REG_DOMAIN_JAPAN 0x40 /* MPHPT (Japan) */
  320. #define MIB_REG_DOMAIN_OTHER 0x00 /* other */
  321. /*2.4G*/
  322. #define BAND_2G4_LOWER_BOUND 1
  323. #define BAND_2G4_UPPER_BOUND 14
  324. /*5G SubBand FCC spec*/
  325. #define UNII1_LOWER_BOUND 36
  326. #define UNII1_UPPER_BOUND 48
  327. #define UNII2A_LOWER_BOUND 52
  328. #define UNII2A_UPPER_BOUND 64
  329. #define UNII2C_LOWER_BOUND 100
  330. #define UNII2C_UPPER_BOUND 144
  331. #define UNII3_LOWER_BOUND 149
  332. #define UNII3_UPPER_BOUND 173
  333. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  334. #define POWER_LIMIT_TABLE_NULL 0xFFFF
  335. #define MAX_TX_POWER 63
  336. #define MIN_TX_POWER -64
  337. #define MAX_CMD_SUPPORT_CHANNEL_NUM 64
  338. #endif
  339. /*******************************************************************************
  340. * D A T A T Y P E S
  341. ********************************************************************************
  342. */
  343. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  344. typedef enum _ENUM_POWER_LIMIT_T {
  345. PWR_LIMIT_CCK,
  346. PWR_LIMIT_20M,
  347. PWR_LIMIT_40M,
  348. PWR_LIMIT_80M,
  349. PWR_LIMIT_160M,
  350. PWR_LIMIT_NUM
  351. } ENUM_POWER_LIMIT_T, *P_ENUM_POWER_LIMIT_T;
  352. #endif
  353. typedef enum _ENUM_POWER_LIMIT_SUBBAND_T {
  354. POWER_LIMIT_2G4,
  355. POWER_LIMIT_UNII1,
  356. POWER_LIMIT_UNII2A,
  357. POWER_LIMIT_UNII2C,
  358. POWER_LIMIT_UNII3,
  359. POWER_LIMIT_SUBAND_NUM
  360. } ENUM_POWER_LIMIT_SUBBAND_T, *P_ENUM_POWER_LIMIT_SUBBAND_T;
  361. /* Define channel offset in unit of 5MHz bandwidth */
  362. typedef enum _ENUM_CHNL_SPAN_T {
  363. CHNL_SPAN_5 = 1,
  364. CHNL_SPAN_10 = 2,
  365. CHNL_SPAN_20 = 4,
  366. CHNL_SPAN_40 = 8
  367. } ENUM_CHNL_SPAN_T, *P_ENUM_CHNL_SPAN_T;
  368. /* Define BSS operating bandwidth */
  369. typedef enum _ENUM_CHNL_BW_T {
  370. CHNL_BW_20,
  371. CHNL_BW_20_40,
  372. CHNL_BW_10,
  373. CHNL_BW_5
  374. } ENUM_CHNL_BW_T, *P_ENUM_CHNL_BW_T;
  375. #if 0
  376. /* If channel width is CHNL_BW_20_40, the first channel will be SCA and
  377. * the second channel is SCB, then iteratively.
  378. * Note the final channel will not be SCA.
  379. */
  380. typedef struct _DOMAIN_SUBBAND_INFO {
  381. UINT_8 ucRegClass;
  382. ENUM_BAND_T eBand;
  383. ENUM_CHNL_SPAN_T eChannelSpan;
  384. UINT_8 ucFirstChannelNum;
  385. UINT_8 ucNumChannels;
  386. ENUM_CHNL_BW_T eChannelBw;
  387. BOOLEAN fgDfsNeeded;
  388. BOOLEAN fgIbssProhibited;
  389. } DOMAIN_SUBBAND_INFO, *P_DOMAIN_SUBBAND_INFO;
  390. /* Use it as all available channel list for STA */
  391. typedef struct _DOMAIN_INFO_ENTRY {
  392. UINT_16 u2CountryCode;
  393. UINT_16 u2MibRegDomainValue;
  394. /* If different attributes, put them into different rSubBands.
  395. * For example, DFS shall be used or not.
  396. */
  397. DOMAIN_SUBBAND_INFO rSubBand[MAX_SUBBAND_NUM];
  398. } DOMAIN_INFO_ENTRY, *P_DOMAIN_INFO_ENTRY;
  399. #else /* New definition 20110830 */
  400. /* In all bands, the first channel will be SCA and the second channel is SCB,
  401. * then iteratively.
  402. * Note the final channel will not be SCA.
  403. */
  404. typedef struct _DOMAIN_SUBBAND_INFO {
  405. /* Note1: regulation class depends on operation bandwidth and RF band.
  406. * For example: 2.4GHz, 1~13, 20MHz ==> regulation class = 81
  407. * 2.4GHz, 1~13, SCA ==> regulation class = 83
  408. * 2.4GHz, 1~13, SCB ==> regulation class = 84
  409. * Note2: TX power limit is not specified here because path loss is unknown
  410. */
  411. UINT_8 ucRegClass; /* Regulation class for 20MHz */
  412. UINT_8 ucBand; /* Type: ENUM_BAND_T */
  413. UINT_8 ucChannelSpan; /* Type: ENUM_CHNL_SPAN_T */
  414. UINT_8 ucFirstChannelNum;
  415. UINT_8 ucNumChannels;
  416. UINT_8 ucReserved; /* Type: BOOLEAN (fgDfsNeeded) */
  417. } DOMAIN_SUBBAND_INFO, *P_DOMAIN_SUBBAND_INFO;
  418. /* Use it as all available channel list for STA */
  419. typedef struct _DOMAIN_INFO_ENTRY {
  420. PUINT_16 pu2CountryGroup;
  421. UINT_32 u4CountryNum;
  422. /* If different attributes, put them into different rSubBands.
  423. * For example, DFS shall be used or not.
  424. */
  425. DOMAIN_SUBBAND_INFO rSubBand[MAX_SUBBAND_NUM];
  426. } DOMAIN_INFO_ENTRY, *P_DOMAIN_INFO_ENTRY;
  427. #endif
  428. /* The following definitions are not used yet */
  429. typedef enum _ENUM_CH_SET_2G4_T {
  430. CH_SET_2G4_NA,
  431. CH_SET_2G4_1_11,
  432. CH_SET_2G4_1_13,
  433. CH_SET_2G4_1_14,
  434. CH_SET_2G4_NUM
  435. } ENUM_CH_SET_2G4_T, *P_ENUM_CH_SET_2G4_T;
  436. typedef enum _ENUM_CH_SET_UNII_LOW_T {
  437. CH_SET_UNII_LOW_NA,
  438. CH_SET_UNII_LOW_36_48,
  439. CH_SET_UNII_LOW_NUM
  440. } ENUM_CH_SET_UNII_LOW_T, *P_ENUM_CH_SET_UNII_LOW_T;
  441. typedef enum _ENUM_CH_SET_UNII_MID_T {
  442. CH_SET_UNII_MID_NA,
  443. CH_SET_UNII_MID_52_64,
  444. CH_SET_UNII_MID_NUM
  445. } ENUM_CH_SET_UNII_MID_T, *P_ENUM_CH_SET_UNII_MID_T;
  446. typedef enum _ENUM_CH_SET_UNII_WW_T {
  447. CH_SET_UNII_WW_NA,
  448. CH_SET_UNII_WW_100_128,
  449. CH_SET_UNII_WW_100_140,
  450. CH_SET_UNII_WW_100_116_132_140,
  451. CH_SET_UNII_WW_NUM
  452. } ENUM_CH_SET_UNII_WW_T, *P_ENUM_CH_SET_UNII_WW_T;
  453. typedef enum _ENUM_CH_SET_UNII_UPPER_T {
  454. CH_SET_UNII_UPPER_NA,
  455. CH_SET_UNII_UPPER_149_161,
  456. CH_SET_UNII_UPPER_149_165,
  457. CH_SET_UNII_UPPER_149_173,
  458. CH_SET_UNII_UPPER_NUM
  459. } ENUM_CH_SET_UNII_UPPER_T, *P_ENUM_CH_SET_UNII_UPPER_T;
  460. typedef struct _COUNTRY_CH_SET_T {
  461. ENUM_CH_SET_2G4_T e2G4;
  462. ENUM_CH_SET_UNII_LOW_T eUniiLow;
  463. ENUM_CH_SET_UNII_MID_T eUniiMid;
  464. ENUM_CH_SET_UNII_WW_T eUniiWw;
  465. ENUM_CH_SET_UNII_UPPER_T eUniiUpper;
  466. } COUNTRY_CH_SET_T, *P_COUNTRY_CH_SET_T;
  467. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  468. typedef struct _CHANNEL_POWER_LIMIT {
  469. UINT_8 ucCentralCh;
  470. INT_8 cPwrLimitCCK;
  471. INT_8 cPwrLimit20;
  472. INT_8 cPwrLimit40;
  473. INT_8 cPwrLimit80;
  474. INT_8 cPwrLimit160;
  475. UINT_8 ucFlag;
  476. UINT_8 aucReserved[1];
  477. } CHANNEL_POWER_LIMIT, *P_CHANNEL_POWER_LIMIT;
  478. typedef struct _COUNTRY_CHANNEL_POWER_LIMIT {
  479. UINT_8 aucCountryCode[2];
  480. UINT_8 ucCountryFlag;
  481. UINT_8 ucChannelNum;
  482. UINT_8 aucReserved[4];
  483. CHANNEL_POWER_LIMIT rChannelPowerLimit[80];
  484. } COUNTRY_CHANNEL_POWER_LIMIT, *P_COUNTRY_CHANNEL_POWER_LIMIT;
  485. #define CHANNEL_PWR_LIMIT(_channel, _pwrLimit_cck, _pwrLimit_bw20, \
  486. _pwrLimit_bw40, _pwrLimit_bw80, _pwrLimit_bw160, _ucFlag) \
  487. { \
  488. .ucCentralCh = (_channel), \
  489. .cPwrLimitCCK = (_pwrLimit_cck), \
  490. .cPwrLimit20 = (_pwrLimit_bw20), \
  491. .cPwrLimit40 = (_pwrLimit_bw40), \
  492. .cPwrLimit80 = (_pwrLimit_bw80), \
  493. .cPwrLimit160 = (_pwrLimit_bw160), \
  494. .ucFlag = (_ucFlag), \
  495. .aucReserved = {0} \
  496. }
  497. typedef struct _COUNTRY_POWER_LIMIT_TABLE_DEFAULT {
  498. UINT_8 aucCountryCode[2];
  499. /* 0: ch 1 ~14 , 1: ch 36 ~48, 2: ch 52 ~64, 3: ch 100 ~144, 4: ch 149 ~165 */
  500. INT_8 aucPwrLimitSubBand[POWER_LIMIT_SUBAND_NUM];
  501. /* bit0: cPwrLimit2G4, bit1: cPwrLimitUnii1; bit2: cPwrLimitUnii2A;
  502. * bit3: cPwrLimitUnii2C; bit4: cPwrLimitUnii3; mW: 0, mW\MHz : 1 */
  503. UINT_8 ucPwrUnit;
  504. } COUNTRY_POWER_LIMIT_TABLE_DEFAULT, *P_COUNTRY_POWER_LIMIT_TABLE_DEFAULT;
  505. typedef struct _COUNTRY_POWER_LIMIT_TABLE_CONFIGURATION {
  506. UINT_8 aucCountryCode[2];
  507. UINT_8 ucCentralCh;
  508. INT_8 aucPwrLimit[PWR_LIMIT_NUM];
  509. } COUNTRY_POWER_LIMIT_TABLE_CONFIGURATION, *P_COUNTRY_POWER_LIMIT_TABLE_CONFIGURATION;
  510. typedef struct _SUBBAND_CHANNEL_T {
  511. UINT_8 ucStartCh;
  512. UINT_8 ucEndCh;
  513. UINT_8 ucInterval;
  514. UINT_8 ucReserved;
  515. } SUBBAND_CHANNEL_T, *P_SUBBAND_CHANNEL_T;
  516. #endif
  517. /*******************************************************************************
  518. * P U B L I C D A T A
  519. ********************************************************************************
  520. */
  521. /*******************************************************************************
  522. * P R I V A T E D A T A
  523. ********************************************************************************
  524. */
  525. /*******************************************************************************
  526. * M A C R O S
  527. ********************************************************************************
  528. */
  529. #define CAL_CH_OFFSET_80M(_PRIMARY_CH, _CENTRAL_CH) \
  530. (((_PRIMARY_CH - _CENTRAL_CH) + 6) >> 2)
  531. #define CAL_CH_OFFSET_160M(_PRIMARY_CH, _CENTRAL_CH) \
  532. (((_PRIMARY_CH - _CENTRAL_CH) + 14) >> 2)
  533. /*******************************************************************************
  534. * F U N C T I O N D E C L A R A T I O N S
  535. ********************************************************************************
  536. */
  537. UINT32 rlmDomainSupOperatingClassIeFill(UINT_8 *pBuf);
  538. P_DOMAIN_INFO_ENTRY rlmDomainGetDomainInfo(P_ADAPTER_T prAdapter);
  539. VOID
  540. rlmDomainGetChnlList(P_ADAPTER_T prAdapter,
  541. ENUM_BAND_T eSpecificBand,
  542. UINT_8 ucMaxChannelNum, PUINT_8 pucNumOfChannel, P_RF_CHANNEL_INFO_T paucChannelList);
  543. VOID rlmDomainSendCmd(P_ADAPTER_T prAdapter, BOOLEAN fgIsOid);
  544. VOID rlmDomainPassiveScanSendCmd(P_ADAPTER_T prAdapter, BOOLEAN fgIsOid);
  545. BOOLEAN rlmDomainIsLegalChannel(P_ADAPTER_T prAdapter, ENUM_BAND_T eBand, UINT_8 ucChannel);
  546. BOOLEAN rlmDomainCheckChannelEntryValid(P_ADAPTER_T prAdapter, UINT_8 ucCentralCh);
  547. UINT_8 rlmDomainGetCenterChannel(ENUM_BAND_T eBand, UINT_8 ucPriChannel, ENUM_CHNL_EXT_T eExtend);
  548. BOOLEAN rlmDomainIsValidRfSetting(P_ADAPTER_T prAdapter, ENUM_BAND_T eBand,
  549. UINT_8 ucPriChannel, ENUM_CHNL_EXT_T eExtend,
  550. ENUM_CHANNEL_WIDTH_T eChannelWidth, UINT_8 ucChannelS1, UINT_8 ucChannelS2);
  551. #if CFG_SUPPORT_PWR_LIMIT_COUNTRY
  552. BOOLEAN
  553. rlmDomainCheckPowerLimitValid(P_ADAPTER_T prAdapter,
  554. COUNTRY_POWER_LIMIT_TABLE_CONFIGURATION rPowerLimitTableConfiguration,
  555. UINT_8 ucPwrLimitNum);
  556. VOID rlmDomainCheckCountryPowerLimitTable(P_ADAPTER_T prAdapter);
  557. UINT_16 rlmDomainPwrLimitDefaultTableDecision(P_ADAPTER_T prAdapter, UINT_16 u2CountryCode);
  558. VOID rlmDomainSendPwrLimitCmd(P_ADAPTER_T prAdapter);
  559. #endif
  560. /*******************************************************************************
  561. * F U N C T I O N S
  562. ********************************************************************************
  563. */
  564. #endif /* _RLM_DOMAIN_H */