PageRenderTime 84ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 1ms

/drivers/net/wireless/tiwlan1251/pform/common/src/osRgstry.c

https://bitbucket.org/cyanogenmod/cm-kernel
C | 5042 lines | 3642 code | 813 blank | 587 comment | 173 complexity | 83a91875127a076c4cc1674f175fb524 MD5 | raw file
Possible License(s): GPL-2.0, LGPL-2.0, AGPL-1.0
  1. /****************************************************************************
  2. **+-----------------------------------------------------------------------+**
  3. **| |**
  4. **| Copyright(c) 1998 - 2008 Texas Instruments. All rights reserved. |**
  5. **| All rights reserved. |**
  6. **| |**
  7. **| Redistribution and use in source and binary forms, with or without |**
  8. **| modification, are permitted provided that the following conditions |**
  9. **| are met: |**
  10. **| |**
  11. **| * Redistributions of source code must retain the above copyright |**
  12. **| notice, this list of conditions and the following disclaimer. |**
  13. **| * Redistributions in binary form must reproduce the above copyright |**
  14. **| notice, this list of conditions and the following disclaimer in |**
  15. **| the documentation and/or other materials provided with the |**
  16. **| distribution. |**
  17. **| * Neither the name Texas Instruments nor the names of its |**
  18. **| contributors may be used to endorse or promote products derived |**
  19. **| from this software without specific prior written permission. |**
  20. **| |**
  21. **| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |**
  22. **| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |**
  23. **| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |**
  24. **| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |**
  25. **| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |**
  26. **| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |**
  27. **| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |**
  28. **| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |**
  29. **| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |**
  30. **| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |**
  31. **| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |**
  32. **| |**
  33. **+-----------------------------------------------------------------------+**
  34. ****************************************************************************/
  35. #if defined(_WINDOWS)
  36. #elif defined( __LINUX__ )
  37. #include "osrgstry_parser.h"
  38. #elif defined(__ARMCC__)
  39. #include "osrgstry_parser.h"
  40. #include "string.h"
  41. #endif
  42. #include "osRgstry.h"
  43. #include "paramOut.h"
  44. #include "osDot11.h"
  45. #include "osApi.h"
  46. /* TODO: remove this line!*/
  47. #include "802_11Defs.h"
  48. extern rate_e RateNumberToHost(UINT8 rateIn);
  49. #define MAX_KEY_BUFFER_LEN 256
  50. #define N_STR(str) NDIS_STRING_CONST(str)
  51. #define INIT_TBL_OFF(field) FIELD_OFFSET(initTable_t, field)
  52. /* Reports */
  53. NDIS_STRING STR_ReportSeverityTable = NDIS_STRING_CONST( "ReportSeverityTable" );
  54. NDIS_STRING STR_ReportModuleTable = NDIS_STRING_CONST( "ReportModuleTable" );
  55. NDIS_STRING STRFilterEnabled = NDIS_STRING_CONST( "Mac_Filter_Enabled");
  56. NDIS_STRING STRnumGroupAddrs = NDIS_STRING_CONST( "numGroupAddrs" );
  57. NDIS_STRING STRGroup_addr0 = NDIS_STRING_CONST( "Group_addr0" );
  58. NDIS_STRING STRGroup_addr1 = NDIS_STRING_CONST( "Group_addr1" );
  59. NDIS_STRING STRGroup_addr2 = NDIS_STRING_CONST( "Group_addr2" );
  60. NDIS_STRING STRGroup_addr3 = NDIS_STRING_CONST( "Group_addr3" );
  61. NDIS_STRING STRGroup_addr4 = NDIS_STRING_CONST( "Group_addr4" );
  62. NDIS_STRING STRGroup_addr5 = NDIS_STRING_CONST( "Group_addr5" );
  63. NDIS_STRING STRGroup_addr6 = NDIS_STRING_CONST( "Group_addr6" );
  64. NDIS_STRING STRGroup_addr7 = NDIS_STRING_CONST( "Group_addr7" );
  65. /* Beacon timing */
  66. /* If Early Wakeup is Enabled, 1251 wakes-up EARLY_WAKEUP_TIME before expected Beacon reception occasion */
  67. /* If Early Wakeup is Disabled, 1251 wakes-up at the expected Beacon reception occasion. */
  68. NDIS_STRING STREarlyWakeup = NDIS_STRING_CONST( "EarlyWakeup" );
  69. NDIS_STRING STRArp_Ip_Addr = NDIS_STRING_CONST( "ArpIp_Addr" );
  70. NDIS_STRING STRArp_Ip_Filter_Ena = NDIS_STRING_CONST( "ArpIp_Filter_ena");
  71. NDIS_STRING STRBeaconFilterDesiredState = NDIS_STRING_CONST( "Beacon_Filter_Desired_State") ;
  72. NDIS_STRING STRBeaconFilterStored = NDIS_STRING_CONST( "Beacon_Filter_Stored") ;
  73. /*this is for configuring table from ini file*/
  74. NDIS_STRING STRBeaconIETableSize = NDIS_STRING_CONST( "Beacon_IE_Table_Size") ;
  75. NDIS_STRING STRBeaconIETable = NDIS_STRING_CONST( "Beacon_IE_Table") ;
  76. NDIS_STRING STRBeaconIETableNumOfElem = NDIS_STRING_CONST( "Beacon_IE_Num_Of_Elem") ;
  77. NDIS_STRING STRTxXferBufferFullTimeToRecovery = NDIS_STRING_CONST( "TxXferBufferFullTimeToRecovery" );
  78. /* ------------------------------------------------------ */
  79. NDIS_STRING STRFirmwareDebug = NDIS_STRING_CONST( "FirmwareDebug" );
  80. NDIS_STRING STRTraceBufferSize = NDIS_STRING_CONST( "TraceBufferSize" );
  81. NDIS_STRING STRPrintTrace = NDIS_STRING_CONST( "PrintTrace" );
  82. NDIS_STRING STRHwACXAccessMethod = NDIS_STRING_CONST( "HwACXAccessMethod" );
  83. NDIS_STRING STRMaxSitesFragCollect = NDIS_STRING_CONST( "MaxSitesFragCollect" );
  84. NDIS_STRING STRNumACXRxDescriptors = NDIS_STRING_CONST( "NumACXRxDescriptors" );
  85. NDIS_STRING STRNumACXTxDescriptors = NDIS_STRING_CONST( "NumACXTxDescriptors" );
  86. NDIS_STRING STRTxFlashEnable = NDIS_STRING_CONST( "TxFlashEnable" );
  87. NDIS_STRING STRBetEnable = NDIS_STRING_CONST( "BetEnable");
  88. NDIS_STRING STRBetMaxConsecutive = NDIS_STRING_CONST( "BetMaxConsecutive");
  89. NDIS_STRING STRMaxFullBeaconInterval = NDIS_STRING_CONST( "MaxlFullBeaconReceptionInterval" );
  90. NDIS_STRING STRBetEnableThreshold = NDIS_STRING_CONST( "BetEnableThreshold");
  91. NDIS_STRING STRBetDisableThreshold = NDIS_STRING_CONST( "BetDisableThreshold");
  92. NDIS_STRING STRNumHostRxDescriptors = NDIS_STRING_CONST( "NumHostRxDescriptors" );
  93. NDIS_STRING STRNumHostTxDescriptors = NDIS_STRING_CONST( "NumHostTxDescriptors" );
  94. NDIS_STRING STRACXMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
  95. NDIS_STRING STRACXRxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
  96. NDIS_STRING STRACXTxMemoryBlockSize = NDIS_STRING_CONST( "ACXMemoryBlockSize" );
  97. NDIS_STRING STRACXUseTxDataInterrupt = NDIS_STRING_CONST( "ACXUseTxDataInterrupt" );
  98. NDIS_STRING STRACXUseInterruptThreshold = NDIS_STRING_CONST( "ACXUseInterruptThreshold" );
  99. NDIS_STRING STRCalibrationChannel2_4 = NDIS_STRING_CONST( "CalibrationChannel24" );
  100. NDIS_STRING STRCalibrationChannel5_0 = NDIS_STRING_CONST( "CalibrationChannel5" );
  101. NDIS_STRING STRdot11RTSThreshold = NDIS_STRING_CONST( "dot11RTSThreshold" );
  102. NDIS_STRING STRRxDisableBroadcast = NDIS_STRING_CONST( "RxDisableBroadcast" );
  103. NDIS_STRING STRRecoveryEnable = NDIS_STRING_CONST( "RecoveryEnable" );
  104. NDIS_STRING STRdot11TxAntenna = NDIS_STRING_CONST( "dot11TxAntenna" );
  105. NDIS_STRING STRdot11RxAntenna = NDIS_STRING_CONST( "dot11RxAntenna" );
  106. NDIS_STRING STRTxCompleteThreshold = NDIS_STRING_CONST( "TxCompleteThreshold" );
  107. NDIS_STRING STRdot11FragThreshold = NDIS_STRING_CONST( "dot11FragmentationThreshold" );
  108. NDIS_STRING STRdot11MaxTxMSDULifetime = NDIS_STRING_CONST( "dot11MaxTransmitMSDULifetime" );
  109. NDIS_STRING STRdot11MaxReceiveLifetime = NDIS_STRING_CONST( "dot11MaxReceiveLifetime" );
  110. NDIS_STRING STRdot11RateFallBackRetryLimit = NDIS_STRING_CONST( "dot11RateFallBackRetryLimit");
  111. NDIS_STRING STRListenInterval = NDIS_STRING_CONST( "dot11ListenInterval" );
  112. NDIS_STRING STRExternalMode = NDIS_STRING_CONST( "DriverExternalMode" );
  113. NDIS_STRING STRWiFiAdHoc = NDIS_STRING_CONST( "WiFiAdhoc" );
  114. NDIS_STRING STRWiFiWmmPS = NDIS_STRING_CONST( "WiFiWmmPS" );
  115. NDIS_STRING STRKeepAliveEnable = NDIS_STRING_CONST( "KeepAliveEnable" );
  116. NDIS_STRING STRdot11DesiredChannel = NDIS_STRING_CONST( "dot11DesiredChannel");
  117. NDIS_STRING STRdot11DesiredSSID = NDIS_STRING_CONST( "dot11DesiredSSID" );
  118. NDIS_STRING STRdot11DesiredBSSType = NDIS_STRING_CONST( "dot11DesiredBSSType" );
  119. NDIS_STRING STRdot11BasicRateMask_B = NDIS_STRING_CONST( "dot11BasicRateMaskB");
  120. NDIS_STRING STRdot11SupportedRateMask_B = NDIS_STRING_CONST( "dot11SupportedRateMaskB");
  121. NDIS_STRING STRdot11BasicRateMask_G = NDIS_STRING_CONST( "dot11BasicRateMaskG");
  122. NDIS_STRING STRdot11SupportedRateMask_G = NDIS_STRING_CONST( "dot11SupportedRateMaskG");
  123. NDIS_STRING STRdot11BasicRateMask_A = NDIS_STRING_CONST( "dot11BasicRateMaskA");
  124. NDIS_STRING STRdot11SupportedRateMask_A = NDIS_STRING_CONST( "dot11SupportedRateMaskA");
  125. NDIS_STRING STRdot11BasicRateMask_AG = NDIS_STRING_CONST( "dot11BasicRateMaskAG");
  126. NDIS_STRING STRdot11SupportedRateMask_AG = NDIS_STRING_CONST( "dot11SupportedRateMaskAG");
  127. NDIS_STRING STRdot11DesiredTxRate = NDIS_STRING_CONST( "dot11DesiredTxRate");
  128. NDIS_STRING STRdot11MgmtCtrlTxRateSelection = NDIS_STRING_CONST( "dot11MgmtCtrlTxRateSelection");
  129. NDIS_STRING STRdot11MgmtCtrlTxRate = NDIS_STRING_CONST( "dot11MgmtCtrlTxRate");
  130. NDIS_STRING STRRadio11_RxLevel = NDIS_STRING_CONST( "Radio11_RxLevel");
  131. NDIS_STRING STRRadio11_LNA = NDIS_STRING_CONST( "Radio11_LNA");
  132. NDIS_STRING STRRadio11_RSSI = NDIS_STRING_CONST( "Radio11_RSSI");
  133. NDIS_STRING STRRadio0D_RxLevel = NDIS_STRING_CONST( "Radio0D_RxLevel");
  134. NDIS_STRING STRRadio0D_LNA = NDIS_STRING_CONST( "Radio0D_LNA");
  135. NDIS_STRING STRRadio0D_RSSI = NDIS_STRING_CONST( "Radio0D_RSSI");
  136. NDIS_STRING STRdot11DesiredNetworkType = NDIS_STRING_CONST( "dot11NetworkType");
  137. NDIS_STRING STRdot11DefaultNetworkType = NDIS_STRING_CONST( "dot11DefaultNetworkType");
  138. NDIS_STRING STRdot11SlotTime = NDIS_STRING_CONST( "ShortSlotTime");
  139. NDIS_STRING STRdot11IbssProtection = NDIS_STRING_CONST( "IbssProtectionType");
  140. NDIS_STRING STRdot11RtsCtsProtection = NDIS_STRING_CONST( "dot11RtsCtsProtection");
  141. NDIS_STRING STRRxEnergyDetection = NDIS_STRING_CONST( "RxEnergyDetection" );
  142. NDIS_STRING STRTxEnergyDetection = NDIS_STRING_CONST( "TxEnergyDetection" );
  143. NDIS_STRING STRCrtCalibrationInterval = NDIS_STRING_CONST( "CrtCalibrationInterval" );
  144. NDIS_STRING STRTddCalibrationInterval = NDIS_STRING_CONST( "TddCalibrationInterval" );
  145. NDIS_STRING STRMacClockRate = NDIS_STRING_CONST( "MacClockRate" );
  146. NDIS_STRING STRArmClockRate = NDIS_STRING_CONST( "ArmClockRate" );
  147. NDIS_STRING STRg80211DraftNumber = NDIS_STRING_CONST( "g80211DraftNumber" );
  148. NDIS_STRING STRRateAdaptationTable0 = NDIS_STRING_CONST( "RateAdaptationTable0" );
  149. NDIS_STRING STRRateAdaptationFBThd0 = NDIS_STRING_CONST( "RateAdaptationFBThd0" );
  150. NDIS_STRING STRRateAdaptationSUThd0 = NDIS_STRING_CONST( "RateAdaptationSUThd0" );
  151. NDIS_STRING STRRateAdaptationTable1 = NDIS_STRING_CONST( "RateAdaptationTable1" );
  152. NDIS_STRING STRRateAdaptationFBThd1 = NDIS_STRING_CONST( "RateAdaptationFBThd1" );
  153. NDIS_STRING STRRateAdaptationSUThd1 = NDIS_STRING_CONST( "RateAdaptationSUThd1" );
  154. NDIS_STRING STRRateAdaptationTable2 = NDIS_STRING_CONST( "RateAdaptationTable2" );
  155. NDIS_STRING STRRateAdaptationFBThd2 = NDIS_STRING_CONST( "RateAdaptationFBThd2" );
  156. NDIS_STRING STRRateAdaptationSUThd2 = NDIS_STRING_CONST( "RateAdaptationSUThd2" );
  157. NDIS_STRING STRRateAdaptationTable3 = NDIS_STRING_CONST( "RateAdaptationTable3" );
  158. NDIS_STRING STRRateAdaptationFBThd3 = NDIS_STRING_CONST( "RateAdaptationFBThd3" );
  159. NDIS_STRING STRRateAdaptationSUThd3 = NDIS_STRING_CONST( "RateAdaptationSUThd3" );
  160. /* Tspec Rate Thresholds */
  161. NDIS_STRING STRRateAdaptationHighTrshAcVO = NDIS_STRING_CONST( "RateAdaptationHighTrshAcVO" );
  162. NDIS_STRING STRRateAdaptationHighTrshAcVI = NDIS_STRING_CONST( "RateAdaptationHighTrshAcVI" );
  163. NDIS_STRING STRRateAdaptationHighTrshAcBE = NDIS_STRING_CONST( "RateAdaptationHighTrshAcBE" );
  164. NDIS_STRING STRRateAdaptationHighTrshAcBK = NDIS_STRING_CONST( "RateAdaptationHighTrshAcBK" );
  165. NDIS_STRING STRRateAdaptationLowTrshAcVO = NDIS_STRING_CONST( "RateAdaptationLowTrshAcVO" );
  166. NDIS_STRING STRRateAdaptationLowTrshAcVI = NDIS_STRING_CONST( "RateAdaptationLowTrshAcVI" );
  167. NDIS_STRING STRRateAdaptationLowTrshAcBE = NDIS_STRING_CONST( "RateAdaptationLowTrshAcBE" );
  168. NDIS_STRING STRRateAdaptationLowTrshAcBK = NDIS_STRING_CONST( "RateAdaptationLowTrshAcBK" );
  169. NDIS_STRING STRdot11ShortPreambleInvoked = NDIS_STRING_CONST( "dot11ShortPreambleInvoked" );
  170. NDIS_STRING STRdot11BeaconPeriod = NDIS_STRING_CONST( "dot11BeaconPeriod" );
  171. NDIS_STRING STRdot11MaxScanTime = NDIS_STRING_CONST( "dot11MaxScanTime" );
  172. NDIS_STRING STRdot11MinScanTime = NDIS_STRING_CONST( "dot11MinScanTime" );
  173. NDIS_STRING STRdot11MaxSiteLifetime = NDIS_STRING_CONST( "dot11MaxSiteLifetime" );
  174. NDIS_STRING STRdot11MaxAuthRetry = NDIS_STRING_CONST( "dot11MaxAuthRetry" );
  175. NDIS_STRING STRdot11MaxAssocRetry = NDIS_STRING_CONST( "dot11MaxAssocRetry" );
  176. NDIS_STRING STRdot11AuthRespTimeout = NDIS_STRING_CONST( "dot11AuthenticationResponseTimeout" );
  177. NDIS_STRING STRdot11AssocRespTimeout = NDIS_STRING_CONST( "dot11AssociationResponseTimeout" );
  178. NDIS_STRING STRConnSelfTimeout = NDIS_STRING_CONST( "ConnSelfTimeout" );
  179. NDIS_STRING STRNumTxDataQueues = NDIS_STRING_CONST( "NumTxDataQueues" );
  180. NDIS_STRING STRCreditCalcTimout = NDIS_STRING_CONST( "CreditCalcTimout" );
  181. NDIS_STRING STRCreditCalcTimerEnabled = NDIS_STRING_CONST( "CreditCalcTimerEnabled" );
  182. NDIS_STRING STRFracOfLifeTimeToDrop = NDIS_STRING_CONST( "FracOfLifeTimeToDrop" );
  183. NDIS_STRING STRAdmCtrlDelayDueToMediumTimeOverUsage = NDIS_STRING_CONST( "AdmCtrlDelayDueToMediumTimeOverUsage" );
  184. NDIS_STRING STRAdmissionDownGradeEnable = NDIS_STRING_CONST( "AdmissionDownGradeEnable" );
  185. NDIS_STRING STRTrafficAdmControlTimeout = NDIS_STRING_CONST("TrafficAdmControlTimeout");
  186. NDIS_STRING STRTrafficAdmControlUseFixedMsduSize = NDIS_STRING_CONST("TrafficAdmCtrlUseFixedMsduSize");
  187. NDIS_STRING STRDesiredMaxSpLen = NDIS_STRING_CONST("DesiredMaxSpLen");
  188. NDIS_STRING STRRateContThreshold = NDIS_STRING_CONST( "RateContThreshold");
  189. NDIS_STRING STRRateStepUpThreshold = NDIS_STRING_CONST( "RateStepUpThreshold");
  190. NDIS_STRING STRFBShortInterval = NDIS_STRING_CONST( "FBShortInterval");
  191. NDIS_STRING STRFBLongInterval = NDIS_STRING_CONST( "FBLongInterval");
  192. NDIS_STRING STRRateAdaptationTimeout = NDIS_STRING_CONST( "RateAdaptationTimeout");
  193. NDIS_STRING STRRateControlEnable = NDIS_STRING_CONST( "RateControlEnable" );
  194. NDIS_STRING STRRatePolicyUserShortRetryLimit = NDIS_STRING_CONST( "RatePolicyUserShortRetryLimit" );
  195. NDIS_STRING STRRatePolicyUserLongRetryLimit = NDIS_STRING_CONST( "RatePolicyUserLongRetryLimit" );
  196. NDIS_STRING STRRatePolicyUserRetriesPerRateCck = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateCck" );
  197. NDIS_STRING STRRatePolicyUserRetriesPerRatePbcc = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRatePbcc" );
  198. NDIS_STRING STRRatePolicyUserRetriesPerRateOfdm = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateOfdm" );
  199. NDIS_STRING STRRatePolicyUserRetriesPerRateOfdmA = NDIS_STRING_CONST( "RatePolicyUserRetriesPerRateOfdmA" );
  200. NDIS_STRING STRRatePolicySGShortRetryLimit = NDIS_STRING_CONST( "RatePolicySGShortRetryLimit" );
  201. NDIS_STRING STRRatePolicySGLongRetryLimit = NDIS_STRING_CONST( "RatePolicySGLongRetryLimit" );
  202. NDIS_STRING STRRatePolicySGRetriesPerRateCck = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateCck" );
  203. NDIS_STRING STRRatePolicySGRetriesPerRatePbcc = NDIS_STRING_CONST( "RatePolicySGRetriesPerRatePbcc" );
  204. NDIS_STRING STRRatePolicySGRetriesPerRateOfdm = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateOfdm" );
  205. NDIS_STRING STRRatePolicySGRetriesPerRateOfdmA = NDIS_STRING_CONST( "RatePolicySGRetriesPerRateOfdmA" );
  206. NDIS_STRING STRdot11FourXEnable = NDIS_STRING_CONST( "Mode4x" );
  207. NDIS_STRING STRdot11AuthenticationMode = NDIS_STRING_CONST( "dot11AuthenticationMode" );
  208. NDIS_STRING STRdot11WEPStatus = NDIS_STRING_CONST( "dot11WEPStatus" );
  209. NDIS_STRING STRdot11ExcludeUnencrypted = NDIS_STRING_CONST( "dot11ExcludeUnencrypted" );
  210. NDIS_STRING STRdot11WEPKeymappingLength = NDIS_STRING_CONST( "dot11WEPKeymappingLength" );
  211. NDIS_STRING STRdot11WEPDefaultKeyID = NDIS_STRING_CONST( "dot11WEPDefaultKeyID" );
  212. NDIS_STRING STRMixedMode = NDIS_STRING_CONST( "MixedMode" );
  213. NDIS_STRING STRWPAMixedMode = NDIS_STRING_CONST( "WPAMixedMode");
  214. NDIS_STRING STRRSNPreAuth = NDIS_STRING_CONST( "RSNPreAuthentication");
  215. NDIS_STRING STRRSNPreAuthTimeout = NDIS_STRING_CONST( "RSNPreAuthTimeout" );
  216. NDIS_STRING STRTimeToResetCountryMs = NDIS_STRING_CONST( "TimeToResetCountryMs" );
  217. NDIS_STRING STRMultiRegulatoryDomainEnabled = NDIS_STRING_CONST( "MultiRegulatoryDomain" );
  218. NDIS_STRING STRSpectrumManagementEnabled = NDIS_STRING_CONST( "SpectrumManagement" );
  219. NDIS_STRING STRScanControlTable24 = NDIS_STRING_CONST( "AllowedChannelsTable24" );
  220. NDIS_STRING STRScanControlTable5 = NDIS_STRING_CONST( "AllowedChannelsTable5" );
  221. /*
  222. Power Manager
  223. */
  224. NDIS_STRING STRPowerMode = NDIS_STRING_CONST( "dot11PowerMode" );
  225. NDIS_STRING STRBeaconReceiveTime = NDIS_STRING_CONST( "BeaconReceiveTime" );
  226. NDIS_STRING STRBaseBandWakeUpTime = NDIS_STRING_CONST( "BaseBandWakeUpTime" );
  227. NDIS_STRING STRHangoverPeriod = NDIS_STRING_CONST( "HangoverPeriod" );
  228. NDIS_STRING STRBeaconListenInterval = NDIS_STRING_CONST( "BeaconListenInterval" );
  229. NDIS_STRING STRDtimListenInterval = NDIS_STRING_CONST( "DtimListenInterval" );
  230. NDIS_STRING STRNConsecutiveBeaconsMissed = NDIS_STRING_CONST( "NConsecutiveBeaconsMissed" );
  231. NDIS_STRING STREnterTo802_11PsRetries = NDIS_STRING_CONST( "EnterTo802_11PsRetries" );
  232. NDIS_STRING STRAutoPowerModeInterval = NDIS_STRING_CONST( "AutoPowerModeInterval" );
  233. NDIS_STRING STRAutoPowerModeActiveTh = NDIS_STRING_CONST( "AutoPowerModeActiveTh" );
  234. NDIS_STRING STRAutoPowerModeDozeTh = NDIS_STRING_CONST( "AutoPowerModeDozeTh" );
  235. NDIS_STRING STRAutoPowerModeDozeMode = NDIS_STRING_CONST( "AutoPowerModeDozeMode" );
  236. NDIS_STRING STRDefaultPowerLevel = NDIS_STRING_CONST( "defaultPowerLevel" );
  237. NDIS_STRING STRPowerSavePowerLevel = NDIS_STRING_CONST( "PowerSavePowerLevel" );
  238. NDIS_STRING STRPsPollDeliveryFailureRecoveryPeriod = NDIS_STRING_CONST( "PsPollDeliveryFailureRecoveryPeriod" );
  239. NDIS_STRING STRPowerMgmtHangOverPeriod = NDIS_STRING_CONST( "PowerMgmtHangOverPeriod" );
  240. NDIS_STRING STRPowerMgmtMode = NDIS_STRING_CONST( "PowerMgmtMode" );
  241. NDIS_STRING STRPowerMgmtNeedToSendNullData = NDIS_STRING_CONST( "PowerMgmtNeedToSendNullData" );
  242. NDIS_STRING STRPowerMgmtNullPktRateModulation = NDIS_STRING_CONST( "PowerMgmtNullPktRateModulation" );
  243. NDIS_STRING STRPowerMgmtNumNullPktRetries = NDIS_STRING_CONST( "PowerMgmtNumNullPktRetries" );
  244. NDIS_STRING STRPowerMgmtPllLockTime = NDIS_STRING_CONST( "PllLockTime" );
  245. NDIS_STRING STRBeaconRxTimeout = NDIS_STRING_CONST( "BeaconRxTimeout" );
  246. NDIS_STRING STRBroadcastRxTimeout = NDIS_STRING_CONST( "BroadcastRxTimeout" );
  247. NDIS_STRING STRRxBroadcastInPs = NDIS_STRING_CONST( "RxBroadcastInPs" );
  248. NDIS_STRING STRConsecutivePsPollDeliveryFailureThreshold = NDIS_STRING_CONST( "ConsecutivePsPollDeliveryFailureThreshold" );
  249. NDIS_STRING STRTxPower = NDIS_STRING_CONST( "TxPower" );
  250. /* Scan SRV */
  251. NDIS_STRING STRNumberOfNoScanCompleteToRecovery = NDIS_STRING_CONST( "NumberOfNoScanCompleteToRecovery" );
  252. NDIS_STRING STRTriggeredScanTimeOut = NDIS_STRING_CONST( "TriggeredScanTimeOut" );
  253. /*-----------------------------------*/
  254. /* Bluetooth support */
  255. /*-----------------------------------*/
  256. NDIS_STRING STRBThWlanCoexistEnable = NDIS_STRING_CONST( "BThWlanCoexistEnable" );
  257. NDIS_STRING STRBThWlanCoexistRate = NDIS_STRING_CONST( "BThWlanCoexistRate" );
  258. NDIS_STRING STRBThWlanCoexistParamsbtHpMaxTime = NDIS_STRING_CONST( "BThWlanCoexistParamsbtHpMaxTime" );
  259. NDIS_STRING STRBThWlanCoexistParamswlanHpMaxTime = NDIS_STRING_CONST( "BThWlanCoexistParamswlanHpMaxTime" );
  260. NDIS_STRING STRBThWlanCoexistParamssenseDisableTimer = NDIS_STRING_CONST( "BThWlanCoexistParamssenseDisableTimer" );
  261. NDIS_STRING STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveRxTimeBeforeBtHp" );
  262. NDIS_STRING STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutWlanPacketCount" );
  263. NDIS_STRING STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp" );
  264. NDIS_STRING STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp" );
  265. NDIS_STRING STRBThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp = NDIS_STRING_CONST( "BThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp" );
  266. NDIS_STRING STRBThWlanCoexistParamstimeoutNextBtLpPacket = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutNextBtLpPacket" );
  267. NDIS_STRING STRBThWlanCoexistParamssgAntennaType = NDIS_STRING_CONST( "BThWlanCoexistParamssgAntennaType" );
  268. NDIS_STRING STRBThWlanCoexistParamssignalingType = NDIS_STRING_CONST( "BThWlanCoexistParamssignalingType" );
  269. NDIS_STRING STRBThWlanCoexistParamsafhLeverageOn = NDIS_STRING_CONST( "BThWlanCoexistParamsafhLeverageOn" );
  270. NDIS_STRING STRBThWlanCoexistParamsnumberQuietCycle = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberQuietCycle" );
  271. NDIS_STRING STRBThWlanCoexistParamsmaxNumCts = NDIS_STRING_CONST( "BThWlanCoexistParamsmaxNumCts" );
  272. NDIS_STRING STRBThWlanCoexistParamsnumberOfWlanPackets = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfWlanPackets" );
  273. NDIS_STRING STRBThWlanCoexistParamsnumberOfBtPackets = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfBtPackets" );
  274. NDIS_STRING STRBThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger = NDIS_STRING_CONST( "BThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger" );
  275. NDIS_STRING STRBThWlanCoexistParamswlanElpHpSupport = NDIS_STRING_CONST( "BThWlanCoexistParamswlanElpHpSupport" );
  276. NDIS_STRING STRBThWlanCoexistParamsbtAntiStarvationPeriod = NDIS_STRING_CONST( "BThWlanCoexistParamsbtAntiStarvationPeriod" );
  277. NDIS_STRING STRBThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod = NDIS_STRING_CONST( "BThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod" );
  278. NDIS_STRING STRBThWlanCoexistParamsackModeDuringBtLpInDualAnt = NDIS_STRING_CONST( "BThWlanCoexistParamsackModeDuringBtLpInDualAnt" );
  279. NDIS_STRING STRBThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable = NDIS_STRING_CONST( "BThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable" );
  280. NDIS_STRING STRBThWlanCoexistParamswakeUpTimeBeforeBeacon = NDIS_STRING_CONST( "BThWlanCoexistParamswakeUpTimeBeforeBeacon" );
  281. NDIS_STRING STRBThWlanCoexistParamshpdmMaxGuardTime = NDIS_STRING_CONST( "BThWlanCoexistParamshpdmMaxGuardTime" );
  282. NDIS_STRING STRBThWlanCoexistParamstimeoutNextWlanPacket = NDIS_STRING_CONST( "BThWlanCoexistParamstimeoutNextWlanPacket" );
  283. NDIS_STRING STRBThWlanCoexistParamssgAutoModeNoCts = NDIS_STRING_CONST( "BThWlanCoexistParamssgAutoModeNoCts" );
  284. NDIS_STRING STRBThWlanCoexistParamsnumOfBtHpRespectedReq = NDIS_STRING_CONST( "BThWlanCoexistParamsnumOfBtHpRespectedReq" );
  285. NDIS_STRING STRBThWlanCoexistParamswlanRxMinRateToRespectBtHp = NDIS_STRING_CONST( "BThWlanCoexistParamswlanRxMinRateToRespectBtHp" );
  286. NDIS_STRING STRBThWlanCoexistScanNumberOfProbes = NDIS_STRING_CONST( "BThWlanCoexistScanNumberOfProbes" );
  287. NDIS_STRING STRBThWlanCoexistScanCompensationPercent = NDIS_STRING_CONST( "BThWlanCoexistScanCompensationPercent" );
  288. NDIS_STRING STRBThWlanCoexistScanCompensationMaxTime = NDIS_STRING_CONST( "BThWlanCoexistScanCompensationMaxTime" );
  289. NDIS_STRING STRBThWlanCoexistBSSLossCompensationPercent = NDIS_STRING_CONST( "BThWlanCoexistBSSLossCompensationPercent" );
  290. NDIS_STRING STRDisableSsidPending = NDIS_STRING_CONST( "DisableSsidPending" );
  291. /*-----------------------------------*/
  292. /* SME Init Params */
  293. /*-----------------------------------*/
  294. NDIS_STRING STRdot11SmeScanEnabled = NDIS_STRING_CONST( "FirstConnScanEnabled" );
  295. NDIS_STRING STRdot11SmeInterScanMin = NDIS_STRING_CONST( "FirstConnInterScanMinTimout" );
  296. NDIS_STRING STRdot11SmeInterScanMax = NDIS_STRING_CONST( "FirstConnInterScanMaxTimout" );
  297. NDIS_STRING STRdot11SmeInterScanDelta = NDIS_STRING_CONST( "FirstConnInterScanDeltaTimout" );
  298. /* SME B/G Scan Params */
  299. NDIS_STRING STRdot11SmeScanBGChannelList = NDIS_STRING_CONST( "FirstConnScanBandB_ChannelList" );
  300. NDIS_STRING STRdot11SmeScanBGMinDwellTime = NDIS_STRING_CONST( "FirstConnScanBandB_MinDwellTime" );
  301. NDIS_STRING STRdot11SmeScanBGMaxDwellTime = NDIS_STRING_CONST( "FirstConnScanBandB_MaxDwellTime" );
  302. NDIS_STRING STRdot11SmeScanBGNumProbReq = NDIS_STRING_CONST( "FirstConnScanBandB_NumOfProbReqs" );
  303. NDIS_STRING STRdot11SmeScanBGProbReqRate = NDIS_STRING_CONST( "FirstConnScanBandB_ProbReqRate" );
  304. NDIS_STRING STRdot11SmeScanBGTxPowerLevel = NDIS_STRING_CONST( "FirstConnScanBandB_TxPowerLevel" );
  305. /* SME A Scan Params */
  306. NDIS_STRING STRdot11SmeScanAChannelList = NDIS_STRING_CONST( "FirstConnScanBandA_ChannelList" );
  307. NDIS_STRING STRdot11SmeScanAMinDwellTime = NDIS_STRING_CONST( "FirstConnScanBandA_MinDwellTime" );
  308. NDIS_STRING STRdot11SmeScanAMaxDwellTime = NDIS_STRING_CONST( "FirstConnScanBandA_MaxDwellTime" );
  309. NDIS_STRING STRdot11SmeScanANumProbReq = NDIS_STRING_CONST( "FirstConnScanBandA_NumOfProbReqs" );
  310. NDIS_STRING STRdot11SmeScanAProbReqRate = NDIS_STRING_CONST( "FirstConnScanBandA_ProbReqRate" );
  311. NDIS_STRING STRdot11SmeScanATxPowerLevel = NDIS_STRING_CONST( "FirstConnScanBandA_TxPowerLevel" );
  312. /*-----------------------------------*/
  313. /* Health Check Init Params */
  314. /*-----------------------------------*/
  315. NDIS_STRING STRHealthMonitorCheckPeriod = NDIS_STRING_CONST( "HealthMonitorCheckPeriod" );
  316. NDIS_STRING STRRecoveryEnabledNoScanComplete = NDIS_STRING_CONST( "RecoveryEnabledNoScanComplete" );
  317. NDIS_STRING STRRecoveryEnabledMboxFailure = NDIS_STRING_CONST( "RecoveryEnabledMboxFailure" );
  318. NDIS_STRING STRRecoveryEnabledHwAwakeFailure = NDIS_STRING_CONST( "RecoveryEnabledHwAwakeFailure" );
  319. NDIS_STRING STRRecoveryEnabledBusError = NDIS_STRING_CONST( "RecoveryEnabledBusError" );
  320. NDIS_STRING STRRecoveryEnabledDeviceError = NDIS_STRING_CONST( "RecoveryEnabledDeviceError" );
  321. NDIS_STRING STRRecoveryEnabledTxStuck = NDIS_STRING_CONST( "RecoveryEnabledTxStuck" );
  322. NDIS_STRING STRRecoveryEnabledDisconnectTimeout = NDIS_STRING_CONST( "RecoveryEnabledDisconnectTimeout" );
  323. NDIS_STRING STRRecoveryEnabledPowerSaveFailure = NDIS_STRING_CONST( "RecoveryEnabledPowerSaveFailure" );
  324. NDIS_STRING STRRecoveryEnabledMeasurementFailure= NDIS_STRING_CONST( "RecoveryEnabledMeasurementFailure" );
  325. /*-----------------------------------*/
  326. /* Hardware ACI recovery */
  327. /*-----------------------------------*/
  328. NDIS_STRING STRHardwareACIMode = NDIS_STRING_CONST("HardwareACIMode" );
  329. NDIS_STRING STRHardwareACIInputCCA = NDIS_STRING_CONST("HardwareACIInputCCA" );
  330. NDIS_STRING STRHardwareACIQualifiedCCA = NDIS_STRING_CONST("HardwareACIQualifiedCCA" );
  331. NDIS_STRING STRHardwareACIStompForRx = NDIS_STRING_CONST("HardwareACIStompForRx" );
  332. NDIS_STRING STRHardwareACIStompForTx = NDIS_STRING_CONST("HardwareACIStompForTx" );
  333. NDIS_STRING STRHardwareACITxCCA = NDIS_STRING_CONST("HardwareACITxCCA" );
  334. /*-----------------------------------*/
  335. /* Tx Power control */
  336. /*-----------------------------------*/
  337. NDIS_STRING STRTxPowerCheckTime = NDIS_STRING_CONST("TxPowerCheckTime");
  338. NDIS_STRING STRTxPowerControlOn = NDIS_STRING_CONST("TxPowerControlOn");
  339. NDIS_STRING STRTxPowerRssiThresh = NDIS_STRING_CONST("TxPowerRssiThresh");
  340. NDIS_STRING STRTxPowerRssiRestoreThresh = NDIS_STRING_CONST("TxPowerRssiRestoreThresh");
  341. NDIS_STRING STRTxPowerTempRecover = NDIS_STRING_CONST("TxPowerTempRecover");
  342. /*-----------------------------------*/
  343. /*-----------------------------------*/
  344. /* QOS Parameters */
  345. /*-----------------------------------*/
  346. NDIS_STRING STRWMEEnable = NDIS_STRING_CONST("WME_Enable");
  347. NDIS_STRING STRTrafficAdmCtrlEnable = NDIS_STRING_CONST("TrafficAdmCtrl_Enable");
  348. NDIS_STRING STRdesiredPsMode = NDIS_STRING_CONST("desiredPsMode");
  349. NDIS_STRING STRQOSmsduLifeTimeBE = NDIS_STRING_CONST("QOS_msduLifeTimeBE");
  350. NDIS_STRING STRQOSmsduLifeTimeBK = NDIS_STRING_CONST("QOS_msduLifeTimeBK");
  351. NDIS_STRING STRQOSmsduLifeTimeVI = NDIS_STRING_CONST("QOS_msduLifeTimeVI");
  352. NDIS_STRING STRQOSmsduLifeTimeVO = NDIS_STRING_CONST("QOS_msduLifeTimeVO");
  353. NDIS_STRING STRQOSrxTimeOutPsPoll = NDIS_STRING_CONST("QOS_rxTimeoutPsPoll");
  354. NDIS_STRING STRQOSrxTimeOutUPSD = NDIS_STRING_CONST("QOS_rxTimeoutUPSD");
  355. NDIS_STRING STRQOStxQueue0Size = NDIS_STRING_CONST("QOS_txQueue0Size");
  356. NDIS_STRING STRQOStxQueue1Size = NDIS_STRING_CONST("QOS_txQueue1Size");
  357. NDIS_STRING STRQOStxQueue2Size = NDIS_STRING_CONST("QOS_txQueue2Size");
  358. NDIS_STRING STRQOStxQueue3Size = NDIS_STRING_CONST("QOS_txQueue3Size");
  359. NDIS_STRING STRQOSwmePsModeBE = NDIS_STRING_CONST("QOS_wmePsModeBE");
  360. NDIS_STRING STRQOSwmePsModeBK = NDIS_STRING_CONST("QOS_wmePsModeBK");
  361. NDIS_STRING STRQOSwmePsModeVI = NDIS_STRING_CONST("QOS_wmePsModeVI");
  362. NDIS_STRING STRQOSwmePsModeVO = NDIS_STRING_CONST("QOS_wmePsModeVO");
  363. NDIS_STRING STRQOSShortRetryLimitBE = NDIS_STRING_CONST("QOS_ShortRetryLimitBE");
  364. NDIS_STRING STRQOSShortRetryLimitBK = NDIS_STRING_CONST("QOS_ShortRetryLimitBK");
  365. NDIS_STRING STRQOSShortRetryLimitVI = NDIS_STRING_CONST("QOS_ShortRetryLimitVI");
  366. NDIS_STRING STRQOSShortRetryLimitVO = NDIS_STRING_CONST("QOS_ShortRetryLimitVO");
  367. NDIS_STRING STRQOSLongRetryLimitBE = NDIS_STRING_CONST("QOS_LongRetryLimitBE");
  368. NDIS_STRING STRQOSLongRetryLimitBK = NDIS_STRING_CONST("QOS_LongRetryLimitBK");
  369. NDIS_STRING STRQOSLongRetryLimitVI = NDIS_STRING_CONST("QOS_LongRetryLimitVI");
  370. NDIS_STRING STRQOSLongRetryLimitVO = NDIS_STRING_CONST("QOS_LongRetryLimitVO");
  371. NDIS_STRING STRQOSAckPolicyBE = NDIS_STRING_CONST("QOS_AckPolicyBE");
  372. NDIS_STRING STRQOSAckPolicyBK = NDIS_STRING_CONST("QOS_AckPolicyBK");
  373. NDIS_STRING STRQOSAckPolicyVI = NDIS_STRING_CONST("QOS_AckPolicyVI");
  374. NDIS_STRING STRQOSAckPolicyVO = NDIS_STRING_CONST("QOS_AckPolicyVO");
  375. NDIS_STRING STRQoSqueue0OverFlowPolicy = NDIS_STRING_CONST("QOS_queue0OverFlowPolicy");
  376. NDIS_STRING STRQoSqueue1OverFlowPolicy = NDIS_STRING_CONST("QOS_queue1OverFlowPolicy");
  377. NDIS_STRING STRQoSqueue2OverFlowPolicy = NDIS_STRING_CONST("QOS_queue2OverFlowPolicy");
  378. NDIS_STRING STRQoSqueue3OverFlowPolicy = NDIS_STRING_CONST("QOS_queue3OverFlowPolicy");
  379. /* HW Tx queues buffers allocation thresholds */
  380. NDIS_STRING STRQOStxBlksHighPrcntBE = NDIS_STRING_CONST("QOS_txBlksHighPrcntBE");
  381. NDIS_STRING STRQOStxBlksHighPrcntBK = NDIS_STRING_CONST("QOS_txBlksHighPrcntBK");
  382. NDIS_STRING STRQOStxBlksHighPrcntVI = NDIS_STRING_CONST("QOS_txBlksHighPrcntVI");
  383. NDIS_STRING STRQOStxBlksHighPrcntVO = NDIS_STRING_CONST("QOS_txBlksHighPrcntVO");
  384. NDIS_STRING STRQOStxBlksLowPrcntBE = NDIS_STRING_CONST("QOS_txBlksLowPrcntBE");
  385. NDIS_STRING STRQOStxBlksLowPrcntBK = NDIS_STRING_CONST("QOS_txBlksLowPrcntBK");
  386. NDIS_STRING STRQOStxBlksLowPrcntVI = NDIS_STRING_CONST("QOS_txBlksLowPrcntVI");
  387. NDIS_STRING STRQOStxBlksLowPrcntVO = NDIS_STRING_CONST("QOS_txBlksLowPrcntVO");
  388. /* Traffic Intensity parameters*/
  389. NDIS_STRING STRTrafficIntensityThresHigh = NDIS_STRING_CONST("TrafficIntensityThresHigh");
  390. NDIS_STRING STRTrafficIntensityThresLow = NDIS_STRING_CONST("TrafficIntensityThresLow");
  391. NDIS_STRING STRTrafficIntensityTestInterval = NDIS_STRING_CONST("TrafficIntensityTestInterval");
  392. NDIS_STRING STRTrafficIntensityThresholdEnabled = NDIS_STRING_CONST("TrafficIntensityThresholdEnabled");
  393. NDIS_STRING STRTrafficMonitorMinIntervalPercentage = NDIS_STRING_CONST("TrafficMonitorMinIntervalPercent");
  394. /* Packet Burst parameters */
  395. NDIS_STRING STRQOSPacketBurstEnable = NDIS_STRING_CONST("QOS_PacketBurstEnable");
  396. NDIS_STRING STRQOSPacketBurstTxOpLimit = NDIS_STRING_CONST("QOS_PacketBurstTxOpLimit");
  397. /*-----------------------------------*/
  398. /* QOS classifier Parameters */
  399. /*-----------------------------------*/
  400. NDIS_STRING STRClsfr_Type = NDIS_STRING_CONST("Clsfr_Type");
  401. NDIS_STRING STRNumOfCodePoints = NDIS_STRING_CONST("NumOfCodePoints");
  402. NDIS_STRING STRNumOfDstPortClassifiers = NDIS_STRING_CONST("NumOfDstPortClassifiers");
  403. NDIS_STRING STRNumOfDstIPPortClassifiers = NDIS_STRING_CONST("NumOfDstIPPortClassifiers");
  404. NDIS_STRING STRDSCPClassifier00_CodePoint = NDIS_STRING_CONST("DSCPClassifier00_CodePoint");
  405. NDIS_STRING STRDSCPClassifier01_CodePoint = NDIS_STRING_CONST("DSCPClassifier01_CodePoint");
  406. NDIS_STRING STRDSCPClassifier02_CodePoint = NDIS_STRING_CONST("DSCPClassifier02_CodePoint");
  407. NDIS_STRING STRDSCPClassifier03_CodePoint = NDIS_STRING_CONST("DSCPClassifier03_CodePoint");
  408. NDIS_STRING STRDSCPClassifier04_CodePoint = NDIS_STRING_CONST("DSCPClassifier04_CodePoint");
  409. NDIS_STRING STRDSCPClassifier05_CodePoint = NDIS_STRING_CONST("DSCPClassifier05_CodePoint");
  410. NDIS_STRING STRDSCPClassifier06_CodePoint = NDIS_STRING_CONST("DSCPClassifier06_CodePoint");
  411. NDIS_STRING STRDSCPClassifier07_CodePoint = NDIS_STRING_CONST("DSCPClassifier07_CodePoint");
  412. NDIS_STRING STRDSCPClassifier08_CodePoint = NDIS_STRING_CONST("DSCPClassifier08_CodePoint");
  413. NDIS_STRING STRDSCPClassifier09_CodePoint = NDIS_STRING_CONST("DSCPClassifier09_CodePoint");
  414. NDIS_STRING STRDSCPClassifier10_CodePoint = NDIS_STRING_CONST("DSCPClassifier10_CodePoint");
  415. NDIS_STRING STRDSCPClassifier11_CodePoint = NDIS_STRING_CONST("DSCPClassifier11_CodePoint");
  416. NDIS_STRING STRDSCPClassifier12_CodePoint = NDIS_STRING_CONST("DSCPClassifier12_CodePoint");
  417. NDIS_STRING STRDSCPClassifier13_CodePoint = NDIS_STRING_CONST("DSCPClassifier13_CodePoint");
  418. NDIS_STRING STRDSCPClassifier14_CodePoint = NDIS_STRING_CONST("DSCPClassifier14_CodePoint");
  419. NDIS_STRING STRDSCPClassifier15_CodePoint = NDIS_STRING_CONST("DSCPClassifier15_CodePoint");
  420. NDIS_STRING STRDSCPClassifier00_DTag = NDIS_STRING_CONST("DSCPClassifier00_DTag");
  421. NDIS_STRING STRDSCPClassifier01_DTag = NDIS_STRING_CONST("DSCPClassifier01_DTag");
  422. NDIS_STRING STRDSCPClassifier02_DTag = NDIS_STRING_CONST("DSCPClassifier02_DTag");
  423. NDIS_STRING STRDSCPClassifier03_DTag = NDIS_STRING_CONST("DSCPClassifier03_DTag");
  424. NDIS_STRING STRDSCPClassifier04_DTag = NDIS_STRING_CONST("DSCPClassifier04_DTag");
  425. NDIS_STRING STRDSCPClassifier05_DTag = NDIS_STRING_CONST("DSCPClassifier05_DTag");
  426. NDIS_STRING STRDSCPClassifier06_DTag = NDIS_STRING_CONST("DSCPClassifier06_DTag");
  427. NDIS_STRING STRDSCPClassifier07_DTag = NDIS_STRING_CONST("DSCPClassifier07_DTag");
  428. NDIS_STRING STRDSCPClassifier08_DTag = NDIS_STRING_CONST("DSCPClassifier08_DTag");
  429. NDIS_STRING STRDSCPClassifier09_DTag = NDIS_STRING_CONST("DSCPClassifier09_DTag");
  430. NDIS_STRING STRDSCPClassifier10_DTag = NDIS_STRING_CONST("DSCPClassifier10_DTag");
  431. NDIS_STRING STRDSCPClassifier11_DTag = NDIS_STRING_CONST("DSCPClassifier11_DTag");
  432. NDIS_STRING STRDSCPClassifier12_DTag = NDIS_STRING_CONST("DSCPClassifier12_DTag");
  433. NDIS_STRING STRDSCPClassifier13_DTag = NDIS_STRING_CONST("DSCPClassifier13_DTag");
  434. NDIS_STRING STRDSCPClassifier14_DTag = NDIS_STRING_CONST("DSCPClassifier14_DTag");
  435. NDIS_STRING STRDSCPClassifier15_DTag = NDIS_STRING_CONST("DSCPClassifier15_DTag");
  436. NDIS_STRING STRPortClassifier00_Port = NDIS_STRING_CONST("PortClassifier00_Port");
  437. NDIS_STRING STRPortClassifier01_Port = NDIS_STRING_CONST("PortClassifier01_Port");
  438. NDIS_STRING STRPortClassifier02_Port = NDIS_STRING_CONST("PortClassifier02_Port");
  439. NDIS_STRING STRPortClassifier03_Port = NDIS_STRING_CONST("PortClassifier03_Port");
  440. NDIS_STRING STRPortClassifier04_Port = NDIS_STRING_CONST("PortClassifier04_Port");
  441. NDIS_STRING STRPortClassifier05_Port = NDIS_STRING_CONST("PortClassifier05_Port");
  442. NDIS_STRING STRPortClassifier06_Port = NDIS_STRING_CONST("PortClassifier06_Port");
  443. NDIS_STRING STRPortClassifier07_Port = NDIS_STRING_CONST("PortClassifier07_Port");
  444. NDIS_STRING STRPortClassifier08_Port = NDIS_STRING_CONST("PortClassifier08_Port");
  445. NDIS_STRING STRPortClassifier09_Port = NDIS_STRING_CONST("PortClassifier09_Port");
  446. NDIS_STRING STRPortClassifier10_Port = NDIS_STRING_CONST("PortClassifier10_Port");
  447. NDIS_STRING STRPortClassifier11_Port = NDIS_STRING_CONST("PortClassifier11_Port");
  448. NDIS_STRING STRPortClassifier12_Port = NDIS_STRING_CONST("PortClassifier12_Port");
  449. NDIS_STRING STRPortClassifier13_Port = NDIS_STRING_CONST("PortClassifier13_Port");
  450. NDIS_STRING STRPortClassifier14_Port = NDIS_STRING_CONST("PortClassifier14_Port");
  451. NDIS_STRING STRPortClassifier15_Port = NDIS_STRING_CONST("PortClassifier15_Port");
  452. NDIS_STRING STRPortClassifier00_DTag = NDIS_STRING_CONST("PortClassifier00_DTag");
  453. NDIS_STRING STRPortClassifier01_DTag = NDIS_STRING_CONST("PortClassifier01_DTag");
  454. NDIS_STRING STRPortClassifier02_DTag = NDIS_STRING_CONST("PortClassifier02_DTag");
  455. NDIS_STRING STRPortClassifier03_DTag = NDIS_STRING_CONST("PortClassifier03_DTag");
  456. NDIS_STRING STRPortClassifier04_DTag = NDIS_STRING_CONST("PortClassifier04_DTag");
  457. NDIS_STRING STRPortClassifier05_DTag = NDIS_STRING_CONST("PortClassifier05_DTag");
  458. NDIS_STRING STRPortClassifier06_DTag = NDIS_STRING_CONST("PortClassifier06_DTag");
  459. NDIS_STRING STRPortClassifier07_DTag = NDIS_STRING_CONST("PortClassifier07_DTag");
  460. NDIS_STRING STRPortClassifier08_DTag = NDIS_STRING_CONST("PortClassifier08_DTag");
  461. NDIS_STRING STRPortClassifier09_DTag = NDIS_STRING_CONST("PortClassifier09_DTag");
  462. NDIS_STRING STRPortClassifier10_DTag = NDIS_STRING_CONST("PortClassifier10_DTag");
  463. NDIS_STRING STRPortClassifier11_DTag = NDIS_STRING_CONST("PortClassifier11_DTag");
  464. NDIS_STRING STRPortClassifier12_DTag = NDIS_STRING_CONST("PortClassifier12_DTag");
  465. NDIS_STRING STRPortClassifier13_DTag = NDIS_STRING_CONST("PortClassifier13_DTag");
  466. NDIS_STRING STRPortClassifier14_DTag = NDIS_STRING_CONST("PortClassifier14_DTag");
  467. NDIS_STRING STRPortClassifier15_DTag = NDIS_STRING_CONST("PortClassifier15_DTag");
  468. NDIS_STRING STRIPPortClassifier00_IPAddress = NDIS_STRING_CONST("IPPortClassifier00_IPAddress");
  469. NDIS_STRING STRIPPortClassifier01_IPAddress = NDIS_STRING_CONST("IPPortClassifier01_IPAddress");
  470. NDIS_STRING STRIPPortClassifier02_IPAddress = NDIS_STRING_CONST("IPPortClassifier02_IPAddress");
  471. NDIS_STRING STRIPPortClassifier03_IPAddress = NDIS_STRING_CONST("IPPortClassifier03_IPAddress");
  472. NDIS_STRING STRIPPortClassifier04_IPAddress = NDIS_STRING_CONST("IPPortClassifier04_IPAddress");
  473. NDIS_STRING STRIPPortClassifier05_IPAddress = NDIS_STRING_CONST("IPPortClassifier05_IPAddress");
  474. NDIS_STRING STRIPPortClassifier06_IPAddress = NDIS_STRING_CONST("IPPortClassifier06_IPAddress");
  475. NDIS_STRING STRIPPortClassifier07_IPAddress = NDIS_STRING_CONST("IPPortClassifier07_IPAddress");
  476. NDIS_STRING STRIPPortClassifier08_IPAddress = NDIS_STRING_CONST("IPPortClassifier08_IPAddress");
  477. NDIS_STRING STRIPPortClassifier09_IPAddress = NDIS_STRING_CONST("IPPortClassifier09_IPAddress");
  478. NDIS_STRING STRIPPortClassifier10_IPAddress = NDIS_STRING_CONST("IPPortClassifier10_IPAddress");
  479. NDIS_STRING STRIPPortClassifier11_IPAddress = NDIS_STRING_CONST("IPPortClassifier11_IPAddress");
  480. NDIS_STRING STRIPPortClassifier12_IPAddress = NDIS_STRING_CONST("IPPortClassifier12_IPAddress");
  481. NDIS_STRING STRIPPortClassifier13_IPAddress = NDIS_STRING_CONST("IPPortClassifier13_IPAddress");
  482. NDIS_STRING STRIPPortClassifier14_IPAddress = NDIS_STRING_CONST("IPPortClassifier14_IPAddress");
  483. NDIS_STRING STRIPPortClassifier15_IPAddress = NDIS_STRING_CONST("IPPortClassifier15_IPAddress");
  484. NDIS_STRING STRIPPortClassifier00_Port = NDIS_STRING_CONST("IPPortClassifier00_Port");
  485. NDIS_STRING STRIPPortClassifier01_Port = NDIS_STRING_CONST("IPPortClassifier01_Port");
  486. NDIS_STRING STRIPPortClassifier02_Port = NDIS_STRING_CONST("IPPortClassifier02_Port");
  487. NDIS_STRING STRIPPortClassifier03_Port = NDIS_STRING_CONST("IPPortClassifier03_Port");
  488. NDIS_STRING STRIPPortClassifier04_Port = NDIS_STRING_CONST("IPPortClassifier04_Port");
  489. NDIS_STRING STRIPPortClassifier05_Port = NDIS_STRING_CONST("IPPortClassifier05_Port");
  490. NDIS_STRING STRIPPortClassifier06_Port = NDIS_STRING_CONST("IPPortClassifier06_Port");
  491. NDIS_STRING STRIPPortClassifier07_Port = NDIS_STRING_CONST("IPPortClassifier07_Port");
  492. NDIS_STRING STRIPPortClassifier08_Port = NDIS_STRING_CONST("IPPortClassifier08_Port");
  493. NDIS_STRING STRIPPortClassifier09_Port = NDIS_STRING_CONST("IPPortClassifier09_Port");
  494. NDIS_STRING STRIPPortClassifier10_Port = NDIS_STRING_CONST("IPPortClassifier10_Port");
  495. NDIS_STRING STRIPPortClassifier11_Port = NDIS_STRING_CONST("IPPortClassifier11_Port");
  496. NDIS_STRING STRIPPortClassifier12_Port = NDIS_STRING_CONST("IPPortClassifier12_Port");
  497. NDIS_STRING STRIPPortClassifier13_Port = NDIS_STRING_CONST("IPPortClassifier13_Port");
  498. NDIS_STRING STRIPPortClassifier14_Port = NDIS_STRING_CONST("IPPortClassifier14_Port");
  499. NDIS_STRING STRIPPortClassifier15_Port = NDIS_STRING_CONST("IPPortClassifier15_Port");
  500. NDIS_STRING STRIPPortClassifier00_DTag = NDIS_STRING_CONST("IPPortClassifier00_DTag");
  501. NDIS_STRING STRIPPortClassifier01_DTag = NDIS_STRING_CONST("IPPortClassifier01_DTag");
  502. NDIS_STRING STRIPPortClassifier02_DTag = NDIS_STRING_CONST("IPPortClassifier02_DTag");
  503. NDIS_STRING STRIPPortClassifier03_DTag = NDIS_STRING_CONST("IPPortClassifier03_DTag");
  504. NDIS_STRING STRIPPortClassifier04_DTag = NDIS_STRING_CONST("IPPortClassifier04_DTag");
  505. NDIS_STRING STRIPPortClassifier05_DTag = NDIS_STRING_CONST("IPPortClassifier05_DTag");
  506. NDIS_STRING STRIPPortClassifier06_DTag = NDIS_STRING_CONST("IPPortClassifier06_DTag");
  507. NDIS_STRING STRIPPortClassifier07_DTag = NDIS_STRING_CONST("IPPortClassifier07_DTag");
  508. NDIS_STRING STRIPPortClassifier08_DTag = NDIS_STRING_CONST("IPPortClassifier08_DTag");
  509. NDIS_STRING STRIPPortClassifier09_DTag = NDIS_STRING_CONST("IPPortClassifier09_DTag");
  510. NDIS_STRING STRIPPortClassifier10_DTag = NDIS_STRING_CONST("IPPortClassifier10_DTag");
  511. NDIS_STRING STRIPPortClassifier11_DTag = NDIS_STRING_CONST("IPPortClassifier11_DTag");
  512. NDIS_STRING STRIPPortClassifier12_DTag = NDIS_STRING_CONST("IPPortClassifier12_DTag");
  513. NDIS_STRING STRIPPortClassifier13_DTag = NDIS_STRING_CONST("IPPortClassifier13_DTag");
  514. NDIS_STRING STRIPPortClassifier14_DTag = NDIS_STRING_CONST("IPPortClassifier14_DTag");
  515. NDIS_STRING STRIPPortClassifier15_DTag = NDIS_STRING_CONST("IPPortClassifier15_DTag");
  516. /*-----------------------------
  517. Rx Data Filter parameters
  518. -----------------------------*/
  519. NDIS_STRING STRRxDataFiltersEnabled = NDIS_STRING_CONST("RxDataFilters_Enabled");
  520. NDIS_STRING STRRxDataFiltersDefaultAction = NDIS_STRING_CONST("RxDataFilters_DefaultAction");
  521. NDIS_STRING STRRxDataFiltersFilter1Offset = NDIS_STRING_CONST("RxDataFilters_Filter1Offset");
  522. NDIS_STRING STRRxDataFiltersFilter1Mask = NDIS_STRING_CONST("RxDataFilters_Filter1Mask");
  523. NDIS_STRING STRRxDataFiltersFilter1Pattern = NDIS_STRING_CONST("RxDataFilters_Filter1Pattern");
  524. NDIS_STRING STRRxDataFiltersFilter2Offset = NDIS_STRING_CONST("RxDataFilters_Filter2Offset");
  525. NDIS_STRING STRRxDataFiltersFilter2Mask = NDIS_STRING_CONST("RxDataFilters_Filter2Mask");
  526. NDIS_STRING STRRxDataFiltersFilter2Pattern = NDIS_STRING_CONST("RxDataFilters_Filter2Pattern");
  527. NDIS_STRING STRRxDataFiltersFilter3Offset = NDIS_STRING_CONST("RxDataFilters_Filter3Offset");
  528. NDIS_STRING STRRxDataFiltersFilter3Mask = NDIS_STRING_CONST("RxDataFilters_Filter3Mask");
  529. NDIS_STRING STRRxDataFiltersFilter3Pattern = NDIS_STRING_CONST("RxDataFilters_Filter3Pattern");
  530. NDIS_STRING STRRxDataFiltersFilter4Offset = NDIS_STRING_CONST("RxDataFilters_Filter4Offset");
  531. NDIS_STRING STRRxDataFiltersFilter4Mask = NDIS_STRING_CONST("RxDataFilters_Filter4Mask");
  532. NDIS_STRING STRRxDataFiltersFilter4Pattern = NDIS_STRING_CONST("RxDataFilters_Filter4Pattern");
  533. /*---------------------------
  534. Measurement parameters
  535. -----------------------------*/
  536. NDIS_STRING STRMeasurTrafficThreshold = NDIS_STRING_CONST( "MeasurTrafficThreshold" );
  537. NDIS_STRING STRMeasurMaxDurationOnNonServingChannel = NDIS_STRING_CONST( "MeasurMaxDurationOnNonServingChannel" );
  538. /*---------------------------
  539. EXC Manager parameters
  540. -----------------------------*/
  541. #ifdef EXC_MODULE_INCLUDED
  542. NDIS_STRING STRExcModeEnabled = NDIS_STRING_CONST( "ExcModeEnabled" );
  543. #endif
  544. NDIS_STRING STRExcTestIgnoreDeAuth0 = NDIS_STRING_CONST( "ExcTestRogeAP" );
  545. /*-----------------------------------*/
  546. /* EEPROM-less support */
  547. /*-----------------------------------*/
  548. NDIS_STRING STREEPROMlessModeSupported = NDIS_STRING_CONST( "EEPROMlessModeSupported" );
  549. NDIS_STRING STRstationMacAddress = NDIS_STRING_CONST("dot11StationID");
  550. /*-----------------------------------*/
  551. /* INI file to configuration */
  552. /*-----------------------------------*/
  553. NDIS_STRING SendINIBufferToUser = NDIS_STRING_CONST("SendINIBufferToUserMode");
  554. void regConvertStringtoMACAddress(UINT8 *staMACAddressString,UINT8 *MacAddressArray);
  555. void regConvertStringtoIpAddress(UINT8 *staIpAddressString,UINT8 *IpAddressArray);
  556. void regConvertStringtoBeaconIETable(UINT8 *staIpAddressString,UINT8 *BeaconIEArray, UINT8 size);
  557. /*-----------------------------------*/
  558. /* Scan concentrator parameters */
  559. /*-----------------------------------*/
  560. NDIS_STRING STRPassiveScanDwellTime = NDIS_STRING_CONST( "DriverPassiveScanDefaultDwellTime" );
  561. // TRS: Scan changes from TI
  562. NDIS_STRING STRMinimumDurationBetweenOidScans = NDIS_STRING_CONST( "MinimumDurationBetweenOidScans" );
  563. //TRS: end of Scan changes from TI
  564. /*
  565. NDIS_STRING STRPctACXRxMemoryPool = NDIS_STRING_CONST( "PctACXRxMemoryPool" );
  566. NDIS_STRING STRSendPacketsPerOID = NDIS_STRING_CONST( "Dot11SendPacketsPerOID" );
  567. NDIS_STRING STRFragCacheSize = NDIS_STRING_CONST( "FragCacheSize" );
  568. */
  569. static int decryptWEP( PCHAR pSrc, PCHAR pDst, ULONG len);
  570. short _btoi ( char *sptr, short slen, int *pi, short base );
  571. static VOID initRadioValusFromRgstryString( PCHAR pSrc, PCHAR pDst, ULONG len);
  572. static void readRates(PTIWLN_ADAPTER_T pAdapter, initTable_t *pInitTable);
  573. static void decryptScanControlTable(PUCHAR src, PUCHAR dst, USHORT len);
  574. static UINT32 regReadIntegerTable(PTIWLN_ADAPTER_T pAdapter,
  575. PNDIS_STRING pParameterName,
  576. PCHAR pDefaultValue,
  577. USHORT defaultLen,
  578. PUCHAR pParameter);
  579. static void assignRegValue(PULONG lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter);
  580. static void parse_filter_request(rxDataFilterRequest_t * request, UINT8 offset, char * mask, UINT8 maskLength, char * pattern, UINT8 patternLength);
  581. /* ---------------------------------------------------------------------------*/
  582. /* Converts a string to a signed int. Assumes base 10. Assumes positive*/
  583. /* number*/
  584. /**/
  585. /* Returns value on success, -1 on failure*/
  586. /**/
  587. /* ---------------------------------------------------------------------------*/
  588. ULONG
  589. tiwlnstrtoi(char *num, UINT length)
  590. {
  591. ULONG value;
  592. if(num == NULL || length == 0 )
  593. {
  594. return 0;
  595. }
  596. for(value=0;length&&*num;num++,length--)
  597. {
  598. if(*num<='9'&&*num>= '0')
  599. {
  600. value=(value*10)+(*num - '0');
  601. }
  602. else { /* Out of range*/
  603. break;
  604. }
  605. }
  606. return value;
  607. }
  608. /*-----------------------------------------------------------------------------
  609. Routine Name:
  610. regReadConfigString
  611. Routine Description:
  612. Arguments:
  613. Return Value:
  614. None
  615. -----------------------------------------------------------------------------*/
  616. BOOLEAN
  617. regReadConfigString(
  618. IN NDIS_HANDLE hConfig,
  619. IN NDIS_STRING *pParmName,
  620. OUT PCHAR pStringOut,
  621. OUT USHORT cbString
  622. )
  623. {
  624. BOOLEAN fRC = FALSE;
  625. NDIS_STATUS rc;
  626. PNDIS_CONFIGURATION_PARAMETER pParameter;
  627. ANSI_STRING strAnsi;
  628. do {
  629. /* Read the string...*/
  630. NdisReadConfiguration( &rc, &pParameter, hConfig, pParmName,
  631. NdisParameterString );
  632. if ( NDIS_STATUS_SUCCESS != rc ) break;
  633. /* convert the string...*/
  634. strAnsi.Length = 0;
  635. strAnsi.MaximumLength = cbString;
  636. strAnsi.Buffer = pStringOut;
  637. rc = NdisUnicodeStringToAnsiString(&strAnsi,
  638. &pParameter->ParameterData.StringData);
  639. if ( NDIS_STATUS_SUCCESS != rc ) break;
  640. /* NULL terminate the output string. If we cannot fit the NULL, that's*/
  641. /* an error...*/
  642. if ( cbString < strAnsi.Length + 1 ) break;
  643. pStringOut[ strAnsi.Length ] = '\0';
  644. fRC = TRUE;
  645. } while( 0 );
  646. return( fRC );
  647. }
  648. /*-----------------------------------------------------------------------------
  649. Routine Name:
  650. regReadRatesConfigArray
  651. Routine Description:
  652. Arguments:
  653. Return Value:
  654. None
  655. -----------------------------------------------------------------------------*/
  656. BOOLEAN
  657. regReadRatesConfigArray(
  658. NDIS_HANDLE SubKeyHandle,
  659. PNDIS_STRING Str,
  660. PUCHAR target,
  661. PUCHAR def,
  662. PULONG size
  663. )
  664. {
  665. BOOLEAN fRC = TRUE;
  666. CHAR str[200];
  667. UCHAR val;
  668. int i,j;
  669. if (!regReadConfigString(SubKeyHandle, Str, (PCHAR)str, 200) ) {
  670. fRC = FALSE;
  671. }
  672. i=j=0;
  673. do
  674. {
  675. val = 0;
  676. if (!fRC) {
  677. val = def[i];
  678. if(!val) break;
  679. }
  680. else
  681. {
  682. if(!str[j])
  683. break;
  684. while (str[j] && (str[j]<'0' || str[j]>'9')) j++;
  685. if (str[j])
  686. {
  687. while (str[j] && str[j]>='0' && str[j]<='9')
  688. {
  689. val=10*val+str[j]-'0';
  690. j++;
  691. }
  692. }
  693. }
  694. target[i++] = val;
  695. }
  696. while (val);
  697. *size = i;
  698. return fRC;
  699. }
  700. /*-----------------------------------------------------------------------------
  701. Routine Name:
  702. convertRatesFromRegistryFormatToDriver
  703. Routine Description:
  704. Arguments:
  705. Return Value:
  706. None
  707. -----------------------------------------------------------------------------*/
  708. rate_e convertRatesFromRegistryFormatToDriver(UCHAR rateIn)
  709. {
  710. switch(rateIn)
  711. {
  712. case 0x1: return DRV_RATE_1M;
  713. case 0x2: return DRV_RATE_2M;
  714. case 0x5: return DRV_RATE_5_5M;
  715. case 0xB: return DRV_RATE_11M;
  716. case 0x16: return DRV_RATE_22M;
  717. case 0x6: return DRV_RATE_6M;
  718. case 0x9: return DRV_RATE_9M;
  719. case 0xC: return DRV_RATE_12M;
  720. case 0x12: return DRV_RATE_18M;
  721. case 0x18: return DRV_RATE_24M;
  722. case 0x24: return DRV_RATE_36M;
  723. case 0x30: return DRV_RATE_48M;
  724. case 0x36: return DRV_RATE_54M;
  725. default: return DRV_RATE_6M;
  726. }
  727. }
  728. /*-----------------------------------------------------------------------------
  729. Routine Name:
  730. regConvertStringtoMACAddress
  731. Routine Description: Converts the MAC Adrress in a form of string readen from the Registry
  732. to the MAC Address Array to be stored in the init_table struct
  733. Arguments:
  734. Return Value:
  735. None
  736. -----------------------------------------------------------------------------*/
  737. void regConvertStringtoMACAddress(UINT8 *staMACAddressString,UINT8 *MacAddressArray)
  738. {
  739. char *ptr;
  740. UINT8 *tmpMacAddr;
  741. UINT8 value = 0, value_l, value_h, add_value;
  742. int i, str_len;
  743. /* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
  744. ptr = (char *)staMACAddressString;
  745. tmpMacAddr = MacAddressArray;
  746. str_len = 3 * MAC_ADDR_LEN - 1;
  747. #if 0
  748. for(i=0; i<MAC_ADDR_LEN ; ptr++)
  749. {
  750. value_l = (*ptr-'0');
  751. /* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
  752. if( value_l < 9)
  753. {
  754. value = value*10 + value_l;
  755. /* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
  756. }
  757. else
  758. {
  759. tmpMacAddr[i] = value;
  760. /* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
  761. value = 0;
  762. i++;
  763. }
  764. }
  765. #else
  766. for(i=0;(i < MAC_ADDR_LEN);ptr++,str_len--)
  767. {
  768. if (str_len > 0) {
  769. /* The value can be or "0-9" or from "a-f" */
  770. value_l = (*ptr - '0');
  771. value_h = (*ptr - 'a');
  772. }
  773. else { /* last element */
  774. value_l = value_h = 16;
  775. }
  776. /*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
  777. if( (value_l <= 9) || (value_h <= 15 ) )
  778. {
  779. /* We are in an expected range */
  780. /* nCheck if 0-9 */
  781. if(value_l <= 9 )
  782. {
  783. add_value = value_l;
  784. }
  785. /* Check if a-f */
  786. else
  787. {
  788. /* 'a' is in fact 10 decimal in hexa */
  789. add_value = value_h + 10;
  790. }
  791. value = value * 16 + add_value;
  792. /*PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
  793. }
  794. else
  795. {
  796. tmpMacAddr[i] = value;
  797. /*PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
  798. value = 0;
  799. i++;
  800. }
  801. }
  802. #endif
  803. }
  804. /*-----------------------------------------------------------------------------
  805. Routine Name:
  806. regFillInitTable
  807. Routine Description:
  808. Arguments:
  809. Return Value:
  810. None
  811. -----------------------------------------------------------------------------*/
  812. VOID
  813. regFillInitTable(
  814. PTIWLN_ADAPTER_T pAdapter,
  815. PVOID pInitTable
  816. )
  817. {
  818. UINT8 radioString[3*RX_LEVEL_TABLE_SIZE];
  819. UINT8 bssidBroadcast[MAC_ADDR_LEN] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
  820. UINT8* RFMD_RxLevel = "bc b3 a9 9a 90 89 80 79 70 68 64 61 60 55 00";
  821. UINT8* RFMD_Lna = "01 01 01 01 01 01 01 01 01 01 01 01 01 01 01";
  822. UINT8* RFMD_Rssi = "0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b c8";
  823. UINT8* MAXIM_RxLevel = "55 4f 4a 43 3a 32 5d 56 4e 46 3e 37 2a 23 1f";
  824. UINT8* MAXIM_Lna = "00 00 00 00 00 00 01 01 01 01 01 01 01 01 01";
  825. UINT8* MAXIM_Rssi = "0a 0f 14 19 1e 23 28 2d 32 37 3c 41 46 4b 5a";
  826. char dummySsidString[MAX_SSID_LEN];
  827. ctrlData_rateAdapt_t RateAdapt;
  828. UCHAR temp[MAX_SUPPORTED_RATES], i;
  829. UINT8 *ClsfrIp = "0a 03 01 c9";
  830. UINT8 ClsfrIpString[16];
  831. UINT8 ClsfrIpStringSize;
  832. /* EEPROM-less : MAC address */
  833. UINT8 regMACstrLen = REG_MAC_ADDR_STR_LEN;
  834. UINT8 staMACAddress[REG_MAC_ADDR_STR_LEN];
  835. UINT8 defStaMacAddress[]= "00 22 11 33 44 55";
  836. UINT8 regArpIpStrLen = REG_ARP_IP_ADDR_STR_LEN ;
  837. UINT8 staArpIpAddress[REG_ARP_IP_ADDR_STR_LEN];
  838. UINT8 defArpIpAddress[] = "0a 00 00 0a" ; /*value by default*/
  839. /*defaults values for beacon IE table*/
  840. /*UINT8 defBeaconIETableSize = 0 ;*/
  841. static UINT8 defBeaconIETable[] = "00 01 01 01 32 01 2a 01 03 01 06 01 07 01 20 01 25 01 23 01 30 01 28 01 2e 01 85 01 dd 01 00 52 f2 02 00 01";
  842. /*UINT8 tmpIeTable[BEACON_FILTER_TABLE_MAX_SIZE] ;*/
  843. UINT8 staBeaconFilterIETable[BEACON_FILTER_STRING_MAX_LEN] ;
  844. UINT8 tmpIeTableSize = 35;
  845. UINT8 strSize = 104 ;
  846. UINT filterOffset = 0;
  847. char filterMask[16];
  848. UINT8 filterMaskLength;
  849. char filterPattern[16];
  850. UINT8 filterPatternLength;
  851. initTable_t* p = (initTable_t*) pInitTable;
  852. USHORT tableLen = 0;
  853. USHORT loopIndex = 0;
  854. static UINT8 ScanControlTable24Tmp[2 * NUM_OF_CHANNELS_24];
  855. static UINT8 ScanControlTable5Tmp[2 * A_5G_BAND_NUM_CHANNELS];
  856. static UINT8 ScanControlTable24Def[2* NUM_OF_CHANNELS_24] = "FFFFFFFFFFFFFFFFFFFFFFFFFFFF";
  857. static UINT8 ScanControlTable5Def[2 * A_5G_BAND_NUM_CHANNELS] = "FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000000000000000000000000000000000000000000000000000000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000000000000000FF000000FF000000FF000000FF00000000000000000000000000000000000000";
  858. UINT8 reportSeverityTableDefaults[WLAN_MAX_SEVERITIES] = "00000000000";
  859. UINT8 reportModuleTableDefaults[WLAN_MAX_LOG_MODULES];
  860. UINT16 reportSeverityTableLen;
  861. UINT16 reportModuleTableLen;
  862. int macIndex ; /*used for group address filtering*/
  863. UINT32 localNumTxDesc;
  864. PRINT(DBG_REGISTRY_LOUD, "TIWL: Reading InitTable parameters\n");
  865. /*set all report modules.as default*/
  866. memset(reportModuleTableDefaults, '1', WLAN_MAX_LOG_MODULES );
  867. /* Reset structure */
  868. NdisZeroMemory(p, sizeof(initTable_t));
  869. NdisZeroMemory(&RateAdapt, sizeof(ctrlData_rateAdapt_t));
  870. /*reads the arp ip from table*/
  871. regReadStringParameter(pAdapter ,&STRArp_Ip_Addr,
  872. (PCHAR)(defArpIpAddress),REG_ARP_IP_ADDR_STR_LEN,
  873. (PUCHAR)staArpIpAddress,&regArpIpStrLen ) ;
  874. regReadIntegerParameter(pAdapter, &STRArp_Ip_Filter_Ena,
  875. DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, MAX_FILTER_ENABLE_VALUE,
  876. sizeof p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled,
  877. (PUCHAR)&p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled );
  878. regConvertStringtoIpAddress(staArpIpAddress, (PUCHAR)&(p->TnetwDrv_InitParams.arpIpFilterParams.arpIpInitParams.addr[0]) );
  879. /* Beacon filter*/
  880. /*is the desired state ENABLED ?*/
  881. regReadIntegerParameter(pAdapter, &STRBeaconFilterDesiredState,
  882. DEF_BEACON_FILTER_ENABLE_VALUE, MIN_BEACON_FILTER_ENABLE_VALUE, MAX_BEACON_FILTER_ENABLE_VALUE,
  883. sizeof p->siteMgrInitParams.beaconFilterParams.desiredState,
  884. (PUCHAR)&p->siteMgrInitParams.beaconFilterParams.desiredState );
  885. regReadIntegerParameter(pAdapter, &STRBeaconFilterStored,
  886. DEF_NUM_STORED_FILTERS, MIN_NUM_STORED_FILTERS, MAX_NUM_STORED_FILTERS,
  887. sizeof p->siteMgrInitParams.beaconFilterParams.numOfStored,
  888. (PUCHAR)&p->siteMgrInitParams.beaconFilterParams.numOfStored );
  889. /*Read the beacon filter IE table*/
  890. /*Read the size of the table*/
  891. regReadIntegerParameter(pAdapter, &STRBeaconIETableSize,
  892. BEACON_FILTER_IE_TABLE_MIN_SIZE, BEACON_FILTER_IE_TABLE_MIN_SIZE,
  893. BEACON_FILTER_IE_TABLE_MAX_SIZE,
  894. sizeof p->siteMgrInitParams.beaconFilterParams.IETableSize,
  895. (PUCHAR)(&p->siteMgrInitParams.beaconFilterParams.IETableSize) );
  896. tmpIeTableSize = p->siteMgrInitParams.beaconFilterParams.IETableSize;
  897. /*Read the number of elements in the table ( this is because 221 has 5 values following it )*/
  898. regReadIntegerParameter(pAdapter, &STRBeaconIETableNumOfElem,
  899. DEF_BEACON_FILTER_IE_TABLE_NUM, BEACON_FILTER_IE_TABLE_MIN_NUM,
  900. BEACON_FILTER_IE_TABLE_MAX_NUM,
  901. sizeof p->siteMgrInitParams.beaconFilterParams.numOfElements,
  902. (PUCHAR)(&p->siteMgrInitParams.beaconFilterParams.numOfElements) );
  903. /*printk("\n OsRgstr tmpIeTableSize = %d numOfElems = %d" , tmpIeTableSize , p->siteMgrInitParams.beaconFilterParams.numOfElements) ;*/
  904. strSize = tmpIeTableSize*2 +tmpIeTableSize - 1 ; /*includes spaces between bytes*/
  905. if ( ( tmpIeTableSize > 0 ) && ( tmpIeTableSize <= BEACON_FILTER_IE_TABLE_MAX_SIZE) )
  906. {
  907. regReadStringParameter(pAdapter, &STRBeaconIETable ,
  908. (PCHAR)(defBeaconIETable), strSize,
  909. (PUCHAR)staBeaconFilterIETable, &strSize);
  910. regConvertStringtoBeaconIETable(staBeaconFilterIETable , (PUCHAR)&p->siteMgrInitParams.beaconFilterParams.IETable[0]/*(PUCHAR)&(tmpIeTable[0] )*/ , tmpIeTableSize);
  911. }
  912. /* MAC ADDRESSES FILTER*/
  913. regReadIntegerParameter(pAdapter, &STRFilterEnabled,
  914. DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE,
  915. MAX_FILTER_ENABLE_VALUE,
  916. sizeof p->TnetwDrv_InitParams.macAddrFilterParams.isFilterEnabled,
  917. (PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.isFilterEnabled);
  918. regReadIntegerParameter(pAdapter, &STRnumGroupAddrs,
  919. NUM_GROUP_ADDRESS_VALUE_DEF, NUM_GROUP_ADDRESS_VALUE_MIN,
  920. NUM_GROUP_ADDRESS_VALUE_MAX,
  921. sizeof p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses,
  922. (PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses);
  923. /*printk("\nOsRgstry Num Of Group Addr:%d \n" , p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses) ;*/
  924. macIndex = p->TnetwDrv_InitParams.macAddrFilterParams.numOfMacAddresses -1 ;
  925. switch( macIndex )
  926. {
  927. case 7:
  928. {
  929. regReadStringParameter(pAdapter, &STRGroup_addr7,
  930. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  931. (PUCHAR)staMACAddress, &regMACstrLen);
  932. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[7].addr);
  933. --macIndex;
  934. }
  935. case 6:
  936. {
  937. regReadStringParameter(pAdapter, &STRGroup_addr6,
  938. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  939. (PUCHAR)staMACAddress, &regMACstrLen);
  940. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[6].addr);
  941. --macIndex;
  942. }
  943. case 5:
  944. {
  945. regReadStringParameter(pAdapter, &STRGroup_addr5,
  946. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  947. (PUCHAR)staMACAddress, &regMACstrLen);
  948. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[5].addr);
  949. --macIndex;
  950. }
  951. case 4:
  952. {
  953. regReadStringParameter(pAdapter, &STRGroup_addr4,
  954. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  955. (PUCHAR)staMACAddress, &regMACstrLen);
  956. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[4].addr);
  957. --macIndex;
  958. }
  959. case 3:
  960. {
  961. regReadStringParameter(pAdapter, &STRGroup_addr3,
  962. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  963. (PUCHAR)staMACAddress, &regMACstrLen);
  964. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[3].addr);
  965. --macIndex;
  966. }
  967. case 2:
  968. {
  969. regReadStringParameter(pAdapter, &STRGroup_addr2,
  970. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  971. (PUCHAR)staMACAddress, &regMACstrLen);
  972. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[2].addr );
  973. --macIndex;
  974. }
  975. case 1:
  976. {
  977. regReadStringParameter(pAdapter, &STRGroup_addr1,
  978. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  979. (PUCHAR)staMACAddress, &regMACstrLen);
  980. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[1].addr);
  981. --macIndex;
  982. }
  983. case 0:
  984. {
  985. regReadStringParameter(pAdapter, &STRGroup_addr0,
  986. (PCHAR)(defStaMacAddress), REG_MAC_ADDR_STR_LEN,
  987. (PUCHAR)staMACAddress, &regMACstrLen);
  988. regConvertStringtoMACAddress(staMACAddress,(PUCHAR) &p->TnetwDrv_InitParams.macAddrFilterParams.macAddrTable[0].addr);
  989. }
  990. default:
  991. {
  992. }
  993. }
  994. /* Read Beacon early wakeup parmeter */
  995. regReadIntegerParameter(pAdapter, &STREarlyWakeup,
  996. EARLY_WAKEUP_ENABLE_DEF, EARLY_WAKEUP_ENABLE_MIN,
  997. EARLY_WAKEUP_ENABLE_MAX,
  998. sizeof(p->TnetwDrv_InitParams.macPreambleParams.earlyWakeUp),
  999. (PUCHAR) &p->TnetwDrv_InitParams.macPreambleParams.earlyWakeUp);
  1000. /* Read TX XFER init parameters */
  1001. regReadIntegerParameter(pAdapter, &STRTxXferBufferFullTimeToRecovery,
  1002. TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_DEF, TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_MIN,
  1003. TX_XFER_HW_BUFFER_FULL_DUR_RECOVERY_MAX,
  1004. sizeof (p->TnetwDrv_InitParams.txXferInitParams.timeToTxStuckMs),
  1005. (PUCHAR) &(p->TnetwDrv_InitParams.txXferInitParams.timeToTxStuckMs));
  1006. /************************/
  1007. /* Read severity table */
  1008. /**********************/
  1009. regReadStringParameter(pAdapter, &STR_ReportSeverityTable,
  1010. (PCHAR)reportSeverityTableDefaults,
  1011. (UCHAR)WLAN_MAX_SEVERITIES,
  1012. (PUCHAR)p->TnetwDrv_InitParams.reportParams.SeverityTable,
  1013. (PUCHAR)&reportSeverityTableLen);
  1014. /***********************/
  1015. /* Read modules table */
  1016. /*********************/
  1017. regReadStringParameter(pAdapter, &STR_ReportModuleTable,
  1018. (PCHAR)reportModuleTableDefaults,
  1019. (UCHAR)WLAN_MAX_LOG_MODULES,
  1020. (PUCHAR)p->TnetwDrv_InitParams.reportParams.ModuleTable,
  1021. (PUCHAR)&reportModuleTableLen);
  1022. /*
  1023. Default SSID should be non-Valid SSID, hence the STA will not try to connect
  1024. */
  1025. for(loopIndex = 0; loopIndex < MAX_SSID_LEN; loopIndex++)
  1026. dummySsidString[loopIndex] = (loopIndex+1);
  1027. /*
  1028. * Read CCK table
  1029. */
  1030. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable0,
  1031. temp, "\x1\x2\x5\xB",
  1032. (PULONG) &RateAdapt.len);
  1033. for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
  1034. RateNumberToHost(temp[i]);
  1035. NdisZeroMemory(temp, sizeof(temp));
  1036. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd0,
  1037. &RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32",
  1038. (PULONG) &RateAdapt.len);
  1039. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd0,
  1040. &RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E",
  1041. (PULONG) &RateAdapt.len);
  1042. NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataCckRateTable,
  1043. &RateAdapt, sizeof(ctrlData_rateAdapt_t));
  1044. /*
  1045. * Read PBCC table
  1046. */
  1047. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable1,
  1048. temp, "\x1\x2\x5\xB\x16",
  1049. (PULONG) &RateAdapt.len);
  1050. for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
  1051. RateNumberToHost(temp[i]);
  1052. NdisZeroMemory(temp, sizeof(temp));
  1053. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd1,
  1054. &RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x32",
  1055. (PULONG) &RateAdapt.len);
  1056. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd1,
  1057. &RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E",
  1058. (PULONG) &RateAdapt.len);
  1059. NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataPbccRateTable,
  1060. &RateAdapt, sizeof(ctrlData_rateAdapt_t));
  1061. /*
  1062. * Read OFDM table
  1063. */
  1064. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable2,
  1065. temp, "\x1\x2\x5\x6\x9\xB\xC\x12\x18\x24\x30\x36",
  1066. (PULONG) &RateAdapt.len);
  1067. for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
  1068. RateNumberToHost(temp[i]);
  1069. NdisZeroMemory(temp, sizeof(temp));
  1070. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd2,
  1071. &RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x32\x32\x32\x2D\x2D\x2D\x2D\x14",
  1072. (PULONG) &RateAdapt.len);
  1073. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd2,
  1074. &RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x1E\x1E\xA\x5\x0",
  1075. (PULONG) &RateAdapt.len);
  1076. NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataOfdmRateTable,
  1077. &RateAdapt, sizeof(ctrlData_rateAdapt_t));
  1078. /*
  1079. * Read OFDMA table
  1080. */
  1081. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationTable3,
  1082. temp, "\x6\x9\xC\x12\x18\x24\x30\x36",
  1083. (PULONG) &RateAdapt.len);
  1084. for(i=0; i<RateAdapt.len; i++) RateAdapt.rateAdaptRatesTable[i] =
  1085. RateNumberToHost(temp[i]);
  1086. NdisZeroMemory(temp, sizeof(temp));
  1087. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationFBThd3,
  1088. &RateAdapt.rateAdaptFBTable[0], "\x32\x32\x32\x32\x2D\x2D\x2D\x14",
  1089. (PULONG) &RateAdapt.len);
  1090. regReadRatesConfigArray(pAdapter->ConfigHandle, &STRRateAdaptationSUThd3,
  1091. &RateAdapt.rateAdaptSUTable[0], "\x1E\x1E\x1E\x1E\x1E\xA\x5\x0",
  1092. (PULONG) &RateAdapt.len);
  1093. NdisMoveMemory(&p->ctrlDataInitParams.rateTable.ctrlDataOfdmARateTable,
  1094. &RateAdapt, sizeof(ctrlData_rateAdapt_t));
  1095. regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcBK,
  1096. RATE_ADAPT_LOW_TRSH_AC_BK_DEF, RATE_ADAPT_LOW_TRSH_AC_BK_MIN,
  1097. RATE_ADAPT_LOW_TRSH_AC_BK_MAX,
  1098. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].lowRateThreshold,
  1099. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].lowRateThreshold);
  1100. regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcBE,
  1101. RATE_ADAPT_LOW_TRSH_AC_BE_DEF, RATE_ADAPT_LOW_TRSH_AC_BE_MIN,
  1102. RATE_ADAPT_LOW_TRSH_AC_BE_MAX,
  1103. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].lowRateThreshold,
  1104. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].lowRateThreshold);
  1105. regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcVI,
  1106. RATE_ADAPT_LOW_TRSH_AC_VI_DEF, RATE_ADAPT_LOW_TRSH_AC_VI_MIN,
  1107. RATE_ADAPT_LOW_TRSH_AC_VI_MAX,
  1108. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].lowRateThreshold,
  1109. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].lowRateThreshold);
  1110. regReadIntegerParameter(pAdapter, &STRRateAdaptationLowTrshAcVO,
  1111. RATE_ADAPT_HIGH_TRSH_AC_VO_DEF, RATE_ADAPT_HIGH_TRSH_AC_VO_MIN,
  1112. RATE_ADAPT_HIGH_TRSH_AC_VO_MAX,
  1113. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].lowRateThreshold,
  1114. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].lowRateThreshold);
  1115. regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcBK,
  1116. RATE_ADAPT_HIGH_TRSH_AC_BK_DEF, RATE_ADAPT_HIGH_TRSH_AC_BK_MIN,
  1117. RATE_ADAPT_HIGH_TRSH_AC_BK_MAX,
  1118. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].highRateThreshold,
  1119. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BK].highRateThreshold);
  1120. regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcBE,
  1121. RATE_ADAPT_HIGH_TRSH_AC_BE_DEF, RATE_ADAPT_HIGH_TRSH_AC_BE_MIN,
  1122. RATE_ADAPT_HIGH_TRSH_AC_BE_MAX,
  1123. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].highRateThreshold,
  1124. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_BE].highRateThreshold);
  1125. regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcVI,
  1126. RATE_ADAPT_HIGH_TRSH_AC_VI_DEF, RATE_ADAPT_HIGH_TRSH_AC_VI_MIN,
  1127. RATE_ADAPT_HIGH_TRSH_AC_VI_MAX,
  1128. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].highRateThreshold,
  1129. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VI].highRateThreshold);
  1130. regReadIntegerParameter(pAdapter, &STRRateAdaptationHighTrshAcVO,
  1131. RATE_ADAPT_HIGH_TRSH_AC_VO_DEF, RATE_ADAPT_HIGH_TRSH_AC_VO_MIN,
  1132. RATE_ADAPT_HIGH_TRSH_AC_VO_MAX,
  1133. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].highRateThreshold,
  1134. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.tspecsRateParameters[QOS_AC_VO].highRateThreshold);
  1135. /* rate Policy Params */
  1136. regReadIntegerParameter(pAdapter, &STRRatePolicyUserShortRetryLimit,
  1137. CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_DEF,
  1138. CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MIN,
  1139. CTRL_DATA_RATE_POLICY_USER_SHORT_RETRY_LIMIT_MAX,
  1140. sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].shortRetryLimit,
  1141. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].shortRetryLimit);
  1142. regReadIntegerParameter(pAdapter, &STRRatePolicyUserLongRetryLimit,
  1143. CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_DEF,
  1144. CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MIN,
  1145. CTRL_DATA_RATE_POLICY_USER_LONG_RETRY_LIMIT_MAX,
  1146. sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].longRetryLimit,
  1147. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[USER_RATE_CLASS].longRetryLimit);
  1148. regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateCck, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_CCK_DEF,
  1149. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1150. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayCck[USER_RATE_CLASS]);
  1151. regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRatePbcc, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_PBCC_DEF,
  1152. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1153. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayPbcc[USER_RATE_CLASS]);
  1154. regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateOfdm, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_OFDM_DEF,
  1155. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1156. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdm[USER_RATE_CLASS]);
  1157. regReadIntegerTable(pAdapter, &STRRatePolicyUserRetriesPerRateOfdmA, CTRL_DATA_RATE_POLICY_USER_RETRIES_PER_RATE_OFDMA_DEF,
  1158. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1159. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdmA[USER_RATE_CLASS]);
  1160. regReadIntegerParameter(pAdapter, &STRRatePolicySGShortRetryLimit,
  1161. CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_DEF,
  1162. CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_MIN,
  1163. CTRL_DATA_RATE_POLICY_SG_SHORT_RETRY_LIMIT_MAX,
  1164. sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].shortRetryLimit,
  1165. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].shortRetryLimit);
  1166. regReadIntegerParameter(pAdapter, &STRRatePolicySGLongRetryLimit,
  1167. CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_DEF,
  1168. CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_MIN,
  1169. CTRL_DATA_RATE_POLICY_SG_LONG_RETRY_LIMIT_MAX,
  1170. sizeof p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].longRetryLimit,
  1171. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTxRatePolicy[SG_RATE_CLASS].longRetryLimit);
  1172. regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateCck, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_CCK_DEF,
  1173. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1174. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayCck[SG_RATE_CLASS]);
  1175. regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRatePbcc, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_PBCC_DEF,
  1176. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1177. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayPbcc[SG_RATE_CLASS]);
  1178. regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateOfdm, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_OFDM_DEF,
  1179. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1180. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdm[SG_RATE_CLASS]);
  1181. regReadIntegerTable(pAdapter, &STRRatePolicySGRetriesPerRateOfdmA, CTRL_DATA_RATE_POLICY_SG_RETRIES_PER_RATE_OFDMA_DEF,
  1182. CTRL_DATA_RATE_POLICY_RETRIES_PER_RATE_MAX_LEN,
  1183. (PUCHAR)&p->ctrlDataInitParams.policyClassRatesArrayOfdmA[SG_RATE_CLASS]);
  1184. regReadIntegerParameter(pAdapter, &STRRxEnergyDetection,
  1185. FALSE, FALSE, TRUE,
  1186. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxEnergyDetection,
  1187. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxEnergyDetection);
  1188. regReadIntegerParameter(pAdapter, &STRTxEnergyDetection,
  1189. FALSE, FALSE, TRUE,
  1190. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxEnergyDetection,
  1191. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxEnergyDetection);
  1192. regReadIntegerParameter(pAdapter, &STRTddCalibrationInterval,
  1193. 300, 1, 0xFFFFFFFF,
  1194. sizeof p->TnetwDrv_InitParams.whalCtrl_init.tddRadioCalTimout,
  1195. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.tddRadioCalTimout);
  1196. regReadIntegerParameter(pAdapter, &STRCrtCalibrationInterval,
  1197. 2, 1, 0xFFFFFFFF,
  1198. sizeof p->TnetwDrv_InitParams.whalCtrl_init.CrtRadioCalTimout,
  1199. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.CrtRadioCalTimout);
  1200. regReadIntegerParameter(pAdapter, &STRMacClockRate,
  1201. 80, 0, 255,
  1202. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMacClock,
  1203. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMacClock);
  1204. regReadIntegerParameter(pAdapter, &STRArmClockRate,
  1205. 80, 0, 255,
  1206. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlArmClock,
  1207. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlArmClock);
  1208. regReadIntegerParameter(pAdapter, &STRg80211DraftNumber,
  1209. DRAFT_6_AND_LATER, DRAFT_5_AND_EARLIER, DRAFT_6_AND_LATER,
  1210. sizeof p->siteMgrInitParams.siteMgrUseDraftNum,
  1211. (PUCHAR)&p->siteMgrInitParams.siteMgrUseDraftNum);
  1212. regReadIntegerParameter(pAdapter, &STRTraceBufferSize,
  1213. /*1024, 0, 1024, sizeof(ULONG), */
  1214. 16, 16, 16,
  1215. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TraceBufferSize,
  1216. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TraceBufferSize);
  1217. regReadIntegerParameter(pAdapter, &STRPrintTrace,
  1218. FALSE, FALSE, TRUE,
  1219. sizeof p->TnetwDrv_InitParams.whalCtrl_init.bDoPrint,
  1220. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.bDoPrint);
  1221. regReadIntegerParameter(pAdapter, &STRFirmwareDebug,
  1222. FALSE, FALSE, TRUE,
  1223. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFirmwareDebug,
  1224. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFirmwareDebug);
  1225. #ifndef TIWLN_WINCE30
  1226. regReadIntegerParameter(pAdapter, &STRHwACXAccessMethod,
  1227. HAL_CTRL_HW_ACCESS_METHOD_DEF, HAL_CTRL_HW_ACCESS_METHOD_MIN,
  1228. HAL_CTRL_HW_ACCESS_METHOD_MAX,
  1229. sizeof p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod,
  1230. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod);
  1231. #else
  1232. /* Slave indirect*/
  1233. p->TnetwDrv_InitParams.whalCtrl_init.hwAccessMethod = 0;
  1234. #endif
  1235. regReadIntegerParameter(pAdapter, &STRMaxSitesFragCollect,
  1236. HAL_CTRL_SITE_FRAG_COLLECT_DEF, HAL_CTRL_SITE_FRAG_COLLECT_MIN,
  1237. HAL_CTRL_SITE_FRAG_COLLECT_MAX,
  1238. sizeof p->TnetwDrv_InitParams.whalCtrl_init.maxSitesFragCollect,
  1239. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.maxSitesFragCollect);
  1240. regReadIntegerParameter(pAdapter, &STRBetEnable,
  1241. HAL_CTRL_BET_ENABLE_DEF, HAL_CTRL_BET_ENABLE_MIN,
  1242. HAL_CTRL_BET_ENABLE_MAX,
  1243. sizeof p->PowerMgrInitParams.BetEnable,
  1244. (PUCHAR)&p->PowerMgrInitParams.BetEnable);
  1245. regReadIntegerParameter(pAdapter, &STRBetMaxConsecutive,
  1246. HAL_CTRL_BET_MAX_CONSC_DEF, HAL_CTRL_BET_MAX_CONSC_MIN,
  1247. HAL_CTRL_BET_MAX_CONSC_MAX,
  1248. sizeof p->PowerMgrInitParams.MaximumConsecutiveET,
  1249. (PUCHAR)&p->PowerMgrInitParams.MaximumConsecutiveET);
  1250. /*--------------- Maximal time between full beacon reception ------------------*/
  1251. regReadIntegerParameter(pAdapter, &STRMaxFullBeaconInterval,
  1252. HAL_CTRL_MAX_FULL_BEACON_DEF, HAL_CTRL_MAX_FULL_BEACON_MIN,
  1253. HAL_CTRL_MAX_FULL_BEACON_MAX,
  1254. sizeof p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval,
  1255. (PUCHAR)&p->PowerMgrInitParams.MaximalFullBeaconReceptionInterval);
  1256. regReadIntegerParameter(pAdapter, &STRBetEnableThreshold,
  1257. HAL_CTRL_BET_ENABLE_THRESHOLD_DEF, HAL_CTRL_BET_ENABLE_THRESHOLD_MIN,
  1258. HAL_CTRL_BET_ENABLE_THRESHOLD_MAX,
  1259. sizeof p->PowerMgrInitParams.BetEnableThreshold,
  1260. (PUCHAR)&p->PowerMgrInitParams.BetEnableThreshold);
  1261. regReadIntegerParameter(pAdapter, &STRBetDisableThreshold,
  1262. HAL_CTRL_BET_DISABLE_THRESHOLD_DEF, HAL_CTRL_BET_DISABLE_THRESHOLD_MIN,
  1263. HAL_CTRL_BET_DISABLE_THRESHOLD_MAX,
  1264. sizeof p->PowerMgrInitParams.BetDisableThreshold,
  1265. (PUCHAR)&p->PowerMgrInitParams.BetDisableThreshold);
  1266. p->TnetwDrv_InitParams.whalCtrl_init.rxMemBlkNumber = 60;
  1267. p->TnetwDrv_InitParams.whalCtrl_init.txMinMemBlkNumber = 60;
  1268. p->TnetwDrv_InitParams.whalCtrl_init.txCompleteTimeout = 500;
  1269. p->TnetwDrv_InitParams.whalCtrl_init.txCompleteThreshold = 1;
  1270. p->TnetwDrv_InitParams.whalCtrl_init.blockSize = HAL_CTRL_ACX_BLOCK_SIZE_DEF;
  1271. p->TnetwDrv_InitParams.whalCtrl_init.UseTxDataInterrupt = HAL_CTRL_USE_TX_DATA_INTR_DEF;
  1272. p->TnetwDrv_InitParams.whalCtrl_init.UsePlcpHeader = HAL_CTRL_USE_PLCP_HDR_DEF;
  1273. regReadIntegerParameter(pAdapter, &STRNumACXRxDescriptors,
  1274. HAL_CTRL_ACX_RX_DESC_DEF, HAL_CTRL_ACX_RX_DESC_MIN,
  1275. HAL_CTRL_ACX_RX_DESC_MAX,
  1276. sizeof p->TnetwDrv_InitParams.whalCtrl_init.rxDescNum,
  1277. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.rxDescNum);
  1278. regReadIntegerParameter(pAdapter, &STRNumACXTxDescriptors,
  1279. HAL_CTRL_ACX_TX_DESC_DEF, HAL_CTRL_ACX_TX_DESC_MIN,
  1280. HAL_CTRL_ACX_TX_DESC_MAX,
  1281. sizeof localNumTxDesc,
  1282. (PUCHAR)&localNumTxDesc);
  1283. regReadIntegerParameter(pAdapter, &STRTxFlashEnable,
  1284. HAL_CTRL_TX_FLASH_ENABLE_DEF, HAL_CTRL_TX_FLASH_ENABLE_MIN,
  1285. HAL_CTRL_TX_FLASH_ENABLE_MAX,
  1286. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxFlashEnable,
  1287. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxFlashEnable);
  1288. p->TnetwDrv_InitParams.whalCtrl_init.numTxQueues = MAX_NUM_OF_TX_QUEUES;
  1289. for (i=0;i<p->TnetwDrv_InitParams.whalCtrl_init.numTxQueues;i++){
  1290. p->TnetwDrv_InitParams.whalCtrl_init.tx_attrib_queue[i].numDesc = localNumTxDesc;/*needed for validation phase only*/
  1291. /* (!!!) must use different priority for each queue */
  1292. p->TnetwDrv_InitParams.whalCtrl_init.tx_attrib_queue[i].priority = i;
  1293. }
  1294. p->TnetwDrv_InitParams.whalCtrl_init.beaconTemplateSize = sizeof(probeRspTemplate_t);
  1295. p->TnetwDrv_InitParams.whalCtrl_init.probeRequestTemplateSize = sizeof(probeReqTemplate_t);
  1296. p->TnetwDrv_InitParams.whalCtrl_init.probeResponseTemplateSize = sizeof(probeRspTemplate_t);
  1297. p->TnetwDrv_InitParams.whalCtrl_init.nullTemplateSize = sizeof(nullDataTemplate_t);
  1298. p->TnetwDrv_InitParams.whalCtrl_init.PsPollTemplateSize = sizeof(psPollTemplate_t);
  1299. p->TnetwDrv_InitParams.whalCtrl_init.qosNullDataTemplateSize = sizeof(QosNullDataTemplate_t);
  1300. regReadIntegerParameter(pAdapter,
  1301. &STRBeaconRxTimeout,
  1302. BCN_RX_TIMEOUT_DEF_VALUE,
  1303. BCN_RX_TIMEOUT_MIN_VALUE,
  1304. BCN_RX_TIMEOUT_MAX_VALUE,
  1305. sizeof p->TnetwDrv_InitParams.whalCtrl_init.BeaconRxTimeout,
  1306. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.BeaconRxTimeout);
  1307. regReadIntegerParameter(pAdapter,
  1308. &STRBroadcastRxTimeout,
  1309. BROADCAST_RX_TIMEOUT_DEF_VALUE,
  1310. BROADCAST_RX_TIMEOUT_MIN_VALUE,
  1311. BROADCAST_RX_TIMEOUT_MAX_VALUE,
  1312. sizeof p->TnetwDrv_InitParams.whalCtrl_init.BroadcastRxTimeout,
  1313. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.BroadcastRxTimeout);
  1314. regReadIntegerParameter(pAdapter,
  1315. &STRRxBroadcastInPs,
  1316. RX_BROADCAST_IN_PS_DEF_VALUE,
  1317. RX_BROADCAST_IN_PS_MIN_VALUE,
  1318. RX_BROADCAST_IN_PS_MAX_VALUE,
  1319. sizeof p->TnetwDrv_InitParams.whalCtrl_init.RxBroadcastInPs,
  1320. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.RxBroadcastInPs);
  1321. regReadIntegerParameter(pAdapter, &STRCalibrationChannel2_4,
  1322. HAL_CTRL_CALIBRATION_CHANNEL_2_4_DEF, HAL_CTRL_CALIBRATION_CHANNEL_2_4_MIN,
  1323. HAL_CTRL_CALIBRATION_CHANNEL_2_4_MAX,
  1324. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel2_4,
  1325. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel2_4);
  1326. regReadIntegerParameter(pAdapter, &STRCalibrationChannel5_0,
  1327. HAL_CTRL_CALIBRATION_CHANNEL_5_0_DEF, HAL_CTRL_CALIBRATION_CHANNEL_5_0_MIN,
  1328. HAL_CTRL_CALIBRATION_CHANNEL_5_0_MAX,
  1329. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel5_0,
  1330. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlCalibrationChannel5_0);
  1331. regReadIntegerParameter(pAdapter,
  1332. &STRConsecutivePsPollDeliveryFailureThreshold,
  1333. CONSECUTIVE_PS_POLL_FAILURE_DEF,
  1334. CONSECUTIVE_PS_POLL_FAILURE_MIN,
  1335. CONSECUTIVE_PS_POLL_FAILURE_MAX,
  1336. sizeof p->TnetwDrv_InitParams.whalCtrl_init.ConsecutivePsPollDeliveryFailureThreshold,
  1337. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.ConsecutivePsPollDeliveryFailureThreshold);
  1338. regReadIntegerParameter(pAdapter, &STRdot11RTSThreshold,
  1339. HAL_CTRL_RTS_THRESHOLD_DEF, HAL_CTRL_RTS_THRESHOLD_MIN,
  1340. HAL_CTRL_RTS_THRESHOLD_MAX,
  1341. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold,
  1342. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold);
  1343. regReadIntegerParameter(pAdapter, &STRRxDisableBroadcast,
  1344. HAL_CTRL_RX_DISABLE_BROADCAST_DEF, HAL_CTRL_RX_DISABLE_BROADCAST_MIN,
  1345. HAL_CTRL_RX_DISABLE_BROADCAST_MAX,
  1346. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxDisableBroadcast,
  1347. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxDisableBroadcast);
  1348. regReadIntegerParameter(pAdapter, &STRRecoveryEnable,
  1349. HAL_CTRL_RECOVERY_ENABLE_DEF, HAL_CTRL_RECOVERY_ENABLE_MIN,
  1350. HAL_CTRL_RECOVERY_ENABLE_MAX,
  1351. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable,
  1352. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable);
  1353. p->healthMonitorInitParams.FullRecoveryEnable = (BOOL)p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRecoveryEnable;
  1354. regReadIntegerParameter(pAdapter, &STRdot11FragThreshold,
  1355. HAL_CTRL_FRAG_THRESHOLD_DEF, HAL_CTRL_FRAG_THRESHOLD_MIN,
  1356. HAL_CTRL_FRAG_THRESHOLD_MAX,
  1357. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold,
  1358. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold);
  1359. regReadIntegerParameter(pAdapter, &STRdot11MaxTxMSDULifetime,
  1360. HAL_CTRL_MAX_TX_MSDU_LIFETIME_DEF, HAL_CTRL_MAX_TX_MSDU_LIFETIME_MIN,
  1361. HAL_CTRL_MAX_TX_MSDU_LIFETIME_MAX,
  1362. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxTxMsduLifetime,
  1363. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxTxMsduLifetime);
  1364. regReadIntegerParameter(pAdapter, &STRdot11MaxReceiveLifetime,
  1365. HAL_CTRL_MAX_RX_MSDU_LIFETIME_DEF, HAL_CTRL_MAX_RX_MSDU_LIFETIME_MIN,
  1366. HAL_CTRL_MAX_RX_MSDU_LIFETIME_MAX,
  1367. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxRxMsduLifetime,
  1368. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlMaxRxMsduLifetime);
  1369. regReadIntegerParameter(pAdapter, &STRdot11RateFallBackRetryLimit,
  1370. HAL_CTRL_RATE_FB_RETRY_LIMIT_DEF, HAL_CTRL_RATE_FB_RETRY_LIMIT_MIN,
  1371. HAL_CTRL_RATE_FB_RETRY_LIMIT_MAX,
  1372. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRateFallbackRetry,
  1373. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRateFallbackRetry);
  1374. regReadIntegerParameter(pAdapter, &STRListenInterval,
  1375. HAL_CTRL_LISTEN_INTERVAL_DEF, HAL_CTRL_LISTEN_INTERVAL_MIN,
  1376. HAL_CTRL_LISTEN_INTERVAL_MAX,
  1377. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlListenInterval,
  1378. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlListenInterval);
  1379. regReadIntegerParameter(pAdapter, &STRdot11TxAntenna,
  1380. HAL_CTRL_TX_ANTENNA_DEF, HAL_CTRL_TX_ANTENNA_MIN,
  1381. HAL_CTRL_TX_ANTENNA_MAX,
  1382. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna,
  1383. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna);
  1384. /* reverse tx antenna value - ACX and utility have reversed values */
  1385. if (p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna == TX_ANTENNA_2)
  1386. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna = TX_ANTENNA_1;
  1387. else
  1388. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxAntenna = TX_ANTENNA_2;
  1389. regReadIntegerParameter(pAdapter, &STRdot11RxAntenna,
  1390. HAL_CTRL_RX_ANTENNA_DEF, HAL_CTRL_RX_ANTENNA_MIN,
  1391. HAL_CTRL_RX_ANTENNA_MAX,
  1392. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxAntenna,
  1393. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRxAntenna);
  1394. regReadIntegerParameter(pAdapter, &STRTxCompleteThreshold,
  1395. HAL_CTRL_TX_CMPLT_THRESHOLD_DEF, HAL_CTRL_TX_CMPLT_THRESHOLD_MIN,
  1396. HAL_CTRL_TX_CMPLT_THRESHOLD_MAX,
  1397. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCompleteThreshold,
  1398. (PUCHAR)&(p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCompleteThreshold));
  1399. pAdapter->ExtMode = TRUE;
  1400. regReadIntegerParameter(pAdapter, &STRdot11DesiredChannel,
  1401. SITE_MGR_CHANNEL_DEF, SITE_MGR_CHANNEL_MIN, SITE_MGR_CHANNEL_MAX,
  1402. sizeof p->siteMgrInitParams.siteMgrDesiredChannel,
  1403. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredChannel);
  1404. memcpy((void *)p->siteMgrInitParams.siteMgrDesiredBSSID.addr, &bssidBroadcast, MAC_ADDR_LEN);
  1405. regReadStringParameter(pAdapter, &STRdot11DesiredSSID,
  1406. (PCHAR)dummySsidString,
  1407. (UCHAR)MAX_SSID_LEN,
  1408. (PUCHAR)p->siteMgrInitParams.siteMgrDesiredSSID.ssidString,
  1409. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredSSID.len);
  1410. regReadIntegerParameter(pAdapter, &STRdot11DesiredNetworkType,
  1411. SITE_MGR_DOT_11_MODE_DEF, SITE_MGR_DOT_11_MODE_MIN, SITE_MGR_DOT_11_MODE_MAX,
  1412. sizeof p->siteMgrInitParams.siteMgrDesiredDot11Mode,
  1413. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredDot11Mode);
  1414. regReadIntegerParameter(pAdapter, &STRdot11SlotTime,
  1415. PHY_SLOT_TIME_SHORT, PHY_SLOT_TIME_LONG, PHY_SLOT_TIME_SHORT,
  1416. sizeof p->siteMgrInitParams.siteMgrDesiredSlotTime,
  1417. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredSlotTime);
  1418. regReadIntegerParameter(pAdapter, &STRdot11RtsCtsProtection,
  1419. 0, 0, 1,
  1420. sizeof p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus,
  1421. (PUCHAR)&p->ctrlDataInitParams.ctrlDataDesiredCtsRtsStatus);
  1422. regReadIntegerParameter(pAdapter, &STRdot11IbssProtection,
  1423. ERP_PROTECTION_STANDARD, ERP_PROTECTION_NONE, ERP_PROTECTION_TI_TRICK,
  1424. sizeof p->ctrlDataInitParams.ctrlDataDesiredIbssProtection,
  1425. (PUCHAR)&p->ctrlDataInitParams.ctrlDataDesiredIbssProtection);
  1426. /* When working in band A, minimum channel is 36 and not 1*/
  1427. if (p->siteMgrInitParams.siteMgrDesiredDot11Mode == DOT11_A_MODE)
  1428. {
  1429. if (p->siteMgrInitParams.siteMgrDesiredChannel < SITE_MGR_CHANNEL_A_MIN)
  1430. p->siteMgrInitParams.siteMgrDesiredChannel = SITE_MGR_CHANNEL_A_MIN;
  1431. }
  1432. /* should be read from the registry */
  1433. p->siteMgrInitParams.siteMgrRadioValues.siteMgr_radiaRadioValues.factorRSSI = 88;
  1434. if(1)
  1435. {
  1436. UINT32 Freq2ChannelTable[] = {0,2412000,2417000,2422000,2427000,2432000,2437000,
  1437. 2442000,2447000,2452000,2457000,
  1438. 2462000,2467000,2472000,2484000};
  1439. memcpy(p->siteMgrInitParams.siteMgrFreq2ChannelTable,
  1440. Freq2ChannelTable,
  1441. SITE_MGR_CHANNEL_MAX+1);
  1442. }
  1443. /* read TX rates from registry */
  1444. readRates(pAdapter, p);
  1445. regReadIntegerParameter(pAdapter, &STRdot11DesiredBSSType,
  1446. SITE_MGR_BSS_TYPE_DEF, BSS_INDEPENDENT, BSS_ANY,
  1447. sizeof p->siteMgrInitParams.siteMgrDesiredBSSType,
  1448. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredBSSType);
  1449. regReadIntegerParameter(pAdapter, &STRdot11BeaconPeriod,
  1450. SITE_MGR_BEACON_INTERVAL_DEF, SITE_MGR_BEACON_INTERVAL_MIN,
  1451. SITE_MGR_BEACON_INTERVAL_MAX,
  1452. sizeof p->siteMgrInitParams.siteMgrDesiredBeaconInterval,
  1453. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredBeaconInterval);
  1454. regReadIntegerParameter(pAdapter, &STRdot11ShortPreambleInvoked,
  1455. SITE_MGR_PREAMBLE_TYPE_DEF, PREAMBLE_LONG, PREAMBLE_SHORT,
  1456. sizeof p->siteMgrInitParams.siteMgrDesiredPreambleType,
  1457. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredPreambleType);
  1458. /* RFMD */
  1459. regReadStringParameter(pAdapter, &STRRadio11_RxLevel,
  1460. (PCHAR)RFMD_RxLevel, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1461. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1462. initRadioValusFromRgstryString( (PCHAR)radioString,
  1463. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioRxLevel,
  1464. RX_LEVEL_TABLE_SIZE);
  1465. regReadStringParameter(pAdapter, &STRRadio11_LNA,
  1466. (PCHAR)RFMD_Lna, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1467. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1468. initRadioValusFromRgstryString( (PCHAR)radioString,
  1469. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioLNA,
  1470. RX_LEVEL_TABLE_SIZE);
  1471. regReadStringParameter(pAdapter, &STRRadio11_RSSI,
  1472. (PCHAR)RFMD_Rssi, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1473. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1474. initRadioValusFromRgstryString( (PCHAR)radioString,
  1475. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_rfmdRadioValues.siteMgr_radioRSSI,
  1476. RX_LEVEL_TABLE_SIZE);
  1477. /* MAXIM */
  1478. regReadStringParameter(pAdapter, &STRRadio0D_RxLevel,
  1479. (PCHAR)MAXIM_RxLevel, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1480. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1481. initRadioValusFromRgstryString( (PCHAR)radioString,
  1482. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioRxLevel,
  1483. RX_LEVEL_TABLE_SIZE);
  1484. regReadStringParameter(pAdapter, &STRRadio0D_LNA,
  1485. (PCHAR)MAXIM_Lna, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1486. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1487. initRadioValusFromRgstryString((PCHAR)radioString,
  1488. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioLNA,
  1489. RX_LEVEL_TABLE_SIZE);
  1490. regReadStringParameter(pAdapter, &STRRadio0D_RSSI,
  1491. (PCHAR)MAXIM_Rssi, (USHORT)SITE_MGR_RX_LEVEL_TABLE_SIZE_DEF,
  1492. radioString, (PUCHAR)&p->siteMgrInitParams.siteMgrRadioValues.RxLevelTableSize);
  1493. initRadioValusFromRgstryString((PCHAR)radioString,
  1494. (PCHAR)p->siteMgrInitParams.siteMgrRadioValues.siteMgr_maximRadioValues.siteMgr_radioRSSI,
  1495. RX_LEVEL_TABLE_SIZE);
  1496. regReadIntegerParameter(pAdapter, &STRExternalMode,
  1497. SITE_MGR_EXTERNAL_MODE_DEF, SITE_MGR_EXTERNAL_MODE_MIN,
  1498. SITE_MGR_EXTERNAL_MODE_MAX,
  1499. sizeof p->siteMgrInitParams.siteMgrExternalConfiguration,
  1500. (PUCHAR)&p->siteMgrInitParams.siteMgrExternalConfiguration);
  1501. regReadIntegerParameter(pAdapter, &STRWiFiAdHoc,
  1502. SITE_MGR_WiFiAdHoc_DEF, SITE_MGR_WiFiAdHoc_MIN, SITE_MGR_WiFiAdHoc_MAX,
  1503. sizeof p->siteMgrInitParams.siteMgrWiFiAdhoc,
  1504. (PUCHAR)&p->siteMgrInitParams.siteMgrWiFiAdhoc);
  1505. regReadIntegerParameter(pAdapter, &STRWiFiWmmPS,
  1506. WIFI_WMM_PS_DEF, WIFI_WMM_PS_MIN, WIFI_WMM_PS_MAX,
  1507. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.WiFiWmmPS,
  1508. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.WiFiWmmPS);
  1509. regReadIntegerParameter(pAdapter, &STRKeepAliveEnable,
  1510. SITE_MGR_KEEP_ALIVE_DEF, SITE_MGR_KEEP_ALIVE_MIN, SITE_MGR_KEEP_ALIVE_MAX,
  1511. sizeof p->siteMgrInitParams.siteMgrDesiredkeepAliveEnable,
  1512. (PUCHAR)&p->siteMgrInitParams.siteMgrDesiredkeepAliveEnable);
  1513. pAdapter->IntMode = (BOOLEAN) p->siteMgrInitParams.siteMgrExternalConfiguration;
  1514. regReadIntegerParameter(pAdapter, &STRConnSelfTimeout,
  1515. CONN_SELF_TIMEOUT_DEF, CONN_SELF_TIMEOUT_MIN, CONN_SELF_TIMEOUT_MAX,
  1516. sizeof p->connInitParams.connSelfTimeout,
  1517. (PUCHAR)&p->connInitParams.connSelfTimeout);
  1518. regReadIntegerParameter(pAdapter, &STRdot11AuthRespTimeout,
  1519. AUTH_RESPONSE_TIMEOUT_DEF, AUTH_RESPONSE_TIMEOUT_MIN, AUTH_RESPONSE_TIMEOUT_MAX,
  1520. sizeof p->authInitParams.authResponseTimeout,
  1521. (PUCHAR)&p->authInitParams.authResponseTimeout);
  1522. regReadIntegerParameter(pAdapter, &STRdot11MaxAuthRetry,
  1523. AUTH_MAX_RETRY_COUNT_DEF, AUTH_MAX_RETRY_COUNT_MIN, AUTH_MAX_RETRY_COUNT_MAX,
  1524. sizeof p->authInitParams.authMaxRetryCount,
  1525. (PUCHAR)&p->authInitParams.authMaxRetryCount);
  1526. regReadIntegerParameter(pAdapter, &STRdot11AssocRespTimeout,
  1527. ASSOC_RESPONSE_TIMEOUT_DEF, ASSOC_RESPONSE_TIMEOUT_MIN, ASSOC_RESPONSE_TIMEOUT_MAX,
  1528. sizeof p->assocInitParams.assocResponseTimeout,
  1529. (PUCHAR)&p->assocInitParams.assocResponseTimeout);
  1530. regReadIntegerParameter(pAdapter, &STRdot11MaxAssocRetry,
  1531. ASSOC_MAX_RETRY_COUNT_DEF, ASSOC_MAX_RETRY_COUNT_MIN, ASSOC_MAX_RETRY_COUNT_MAX,
  1532. sizeof p->assocInitParams.assocMaxRetryCount,
  1533. (PUCHAR)&p->assocInitParams.assocMaxRetryCount);
  1534. regReadIntegerParameter(pAdapter, &STRRxDataFiltersEnabled,
  1535. RX_DATA_FILTERS_ENABLED_DEF, RX_DATA_FILTERS_ENABLED_MIN, RX_DATA_FILTERS_ENABLED_MAX,
  1536. sizeof p->rxDataInitParams.rxDataFiltersEnabled,
  1537. (PUCHAR)&p->rxDataInitParams.rxDataFiltersEnabled);
  1538. regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter1Offset,
  1539. RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
  1540. sizeof filterOffset,
  1541. (PUCHAR) &filterOffset);
  1542. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Mask,
  1543. RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
  1544. (PUCHAR) filterMask,
  1545. (PUCHAR) &filterMaskLength);
  1546. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter1Pattern,
  1547. RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
  1548. (PUCHAR) filterPattern,
  1549. (PUCHAR) &filterPatternLength);
  1550. parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[0], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
  1551. regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter2Offset,
  1552. RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
  1553. sizeof filterOffset,
  1554. (PUCHAR) &filterOffset);
  1555. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Mask,
  1556. RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
  1557. (PUCHAR) filterMask,
  1558. (PUCHAR) &filterMaskLength);
  1559. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter2Pattern,
  1560. RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
  1561. (PUCHAR) filterPattern,
  1562. (PUCHAR) &filterPatternLength);
  1563. parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[1], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
  1564. regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter3Offset,
  1565. RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
  1566. sizeof filterOffset,
  1567. (PUCHAR) &filterOffset);
  1568. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Mask,
  1569. RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
  1570. (PUCHAR) filterMask,
  1571. (PUCHAR) &filterMaskLength);
  1572. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter3Pattern,
  1573. RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
  1574. (PUCHAR) filterPattern,
  1575. (PUCHAR) &filterPatternLength);
  1576. parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[2], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
  1577. regReadIntegerParameter(pAdapter, &STRRxDataFiltersFilter4Offset,
  1578. RX_DATA_FILTERS_FILTER_OFFSET_DEF, RX_DATA_FILTERS_FILTER_OFFSET_MIN, RX_DATA_FILTERS_FILTER_OFFSET_MAX,
  1579. sizeof filterOffset,
  1580. (PUCHAR) &filterOffset);
  1581. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Mask,
  1582. RX_DATA_FILTERS_FILTER_MASK_DEF, RX_DATA_FILTERS_FILTER_MASK_LEN_DEF,
  1583. (PUCHAR) filterMask,
  1584. (PUCHAR) &filterMaskLength);
  1585. regReadStringParameter(pAdapter, &STRRxDataFiltersFilter4Pattern,
  1586. RX_DATA_FILTERS_FILTER_PATTERN_DEF, RX_DATA_FILTERS_FILTER_PATTERN_LEN_DEF,
  1587. (PUCHAR) filterPattern,
  1588. (PUCHAR) &filterPatternLength);
  1589. parse_filter_request(&p->rxDataInitParams.rxDataFilterRequests[3], filterOffset, filterMask, filterMaskLength, filterPattern, filterPatternLength);
  1590. regReadIntegerParameter(pAdapter, &STRRxDataFiltersDefaultAction,
  1591. RX_DATA_FILTERS_DEFAULT_ACTION_DEF, RX_DATA_FILTERS_DEFAULT_ACTION_MIN,
  1592. RX_DATA_FILTERS_DEFAULT_ACTION_MAX,
  1593. sizeof p->rxDataInitParams.rxDataFiltersDefaultAction,
  1594. (PUCHAR)&p->rxDataInitParams.rxDataFiltersDefaultAction);
  1595. regReadIntegerParameter(pAdapter, &STRNumTxDataQueues,
  1596. TX_DATA_NUMBER_OF_DATA_QUEUES_DEF, TX_DATA_NUMBER_OF_DATA_QUEUES_MIN,
  1597. TX_DATA_NUMBER_OF_DATA_QUEUES_MAX,
  1598. sizeof p->txDataInitParams.txDataNumOfDataQueues,
  1599. (PUCHAR)&p->txDataInitParams.txDataNumOfDataQueues);
  1600. regReadIntegerParameter(pAdapter, &STRCreditCalcTimout,
  1601. TX_DATA_CREDIT_CALC_TIMOEUT_DEF, TX_DATA_CREDIT_CALC_TIMOEUT_MIN,
  1602. TX_DATA_CREDIT_CALC_TIMOEUT_MAX,
  1603. sizeof p->txDataInitParams.creditCalculationTimeout,
  1604. (PUCHAR)&p->txDataInitParams.creditCalculationTimeout);
  1605. regReadIntegerParameter(pAdapter, &STRCreditCalcTimerEnabled,
  1606. FALSE, FALSE, TRUE,
  1607. sizeof p->txDataInitParams.bCreditCalcTimerEnabled,
  1608. (PUCHAR)&p->txDataInitParams.bCreditCalcTimerEnabled);
  1609. regReadIntegerParameter(pAdapter, &STRFracOfLifeTimeToDrop,
  1610. TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_DEF, TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_MIN,
  1611. TX_DATA_FRAC_OF_LIFE_TIME_TO_DROP_MAX,
  1612. sizeof p->txDataInitParams.uFracOfLifeTimeToDrop,
  1613. (PUCHAR)&p->txDataInitParams.uFracOfLifeTimeToDrop);
  1614. regReadIntegerParameter(pAdapter, &STRAdmCtrlDelayDueToMediumTimeOverUsage,
  1615. TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_DEF, TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_MIN,
  1616. TX_DATA_ADM_CTRL_DELAY_DUE_TO_MEDIUM_OVER_USAGE_MAX,
  1617. sizeof p->txDataInitParams.admCtrlDelayDueToMediumTimeOverUsage,
  1618. (PUCHAR)&p->txDataInitParams.admCtrlDelayDueToMediumTimeOverUsage);
  1619. regReadIntegerParameter(pAdapter, &STRAdmissionDownGradeEnable,
  1620. TX_DATA_ADM_CTRL_DOWN_GRADE_DEF, TX_DATA_ADM_CTRL_DOWN_GRADE_MIN,
  1621. TX_DATA_ADM_CTRL_DOWN_GRADE_MAX,
  1622. sizeof p->txDataInitParams.admissionDownGradeEnable,
  1623. (PUCHAR)&p->txDataInitParams.admissionDownGradeEnable);
  1624. regReadIntegerParameter(pAdapter, &STRTrafficAdmControlTimeout,
  1625. TRAFFIC_ADM_CONTROL_TIMEOUT_DEF, TRAFFIC_ADM_CONTROL_TIMEOUT_MIN,
  1626. TRAFFIC_ADM_CONTROL_TIMEOUT_MAX,
  1627. sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout,
  1628. (PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlResponseTimeout);
  1629. regReadIntegerParameter(pAdapter, &STRTrafficAdmControlUseFixedMsduSize,
  1630. FALSE, FALSE, TRUE,
  1631. sizeof p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize,
  1632. (PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlInitParams.trafficAdmCtrlUseFixedMsduSize);
  1633. regReadIntegerParameter(pAdapter, &STRDesiredMaxSpLen,
  1634. QOS_MAX_SP_LEN_DEF, QOS_MAX_SP_LEN_MIN,
  1635. QOS_MAX_SP_LEN_MAX,
  1636. sizeof p->qosMngrInitParams.desiredMaxSpLen,
  1637. (PUCHAR)&p->qosMngrInitParams.desiredMaxSpLen);
  1638. regReadIntegerParameter(pAdapter, &STRRateContThreshold,
  1639. CTRL_DATA_CONT_TX_THRESHOLD_DEF, CTRL_DATA_CONT_TX_THRESHOLD_MIN,
  1640. CTRL_DATA_CONT_TX_THRESHOLD_MAX,
  1641. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.contTxPacketsThreshold,
  1642. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.contTxPacketsThreshold);
  1643. regReadIntegerParameter(pAdapter, &STRRateStepUpThreshold,
  1644. CTRL_DATA_STEP_UP_TX_THRESHOLD_DEF, CTRL_DATA_STEP_UP_TX_THRESHOLD_MIN,
  1645. CTRL_DATA_STEP_UP_TX_THRESHOLD_MAX,
  1646. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.stepUpTxPacketsThreshold,
  1647. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.stepUpTxPacketsThreshold);
  1648. regReadIntegerParameter(pAdapter, &STRFBShortInterval,
  1649. CTRL_DATA_FB_SHORT_INTERVAL_DEF, CTRL_DATA_FB_SHORT_INTERVAL_MIN,
  1650. CTRL_DATA_FB_SHORT_INTERVAL_MAX,
  1651. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBShortInterval,
  1652. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBShortInterval);
  1653. regReadIntegerParameter(pAdapter, &STRFBLongInterval,
  1654. CTRL_DATA_FB_LONG_INTERVAL_DEF, CTRL_DATA_FB_LONG_INTERVAL_MIN,
  1655. CTRL_DATA_FB_LONG_INTERVAL_MAX,
  1656. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBLongInterval,
  1657. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.ctrlDataFBLongInterval);
  1658. regReadIntegerParameter(pAdapter, &STRRateAdaptationTimeout,
  1659. RATE_ADAPTATION_TIMEOUT_DEF , RATE_ADAPTATION_TIMEOUT_MIN, RATE_ADAPTATION_TIMEOUT_MAX,
  1660. sizeof p->ctrlDataInitParams.rateAdaptationInitParam.rateAdapt_timeout,
  1661. (PUCHAR)&p->ctrlDataInitParams.rateAdaptationInitParam.rateAdapt_timeout);
  1662. regReadIntegerParameter(pAdapter, &STRRateControlEnable,
  1663. CTRL_DATA_RATE_CONTROL_ENABLE_DEF, CTRL_DATA_RATE_CONTROL_ENABLE_MIN, CTRL_DATA_RATE_CONTROL_ENABLE_MAX,
  1664. sizeof p->ctrlDataInitParams.ctrlDataRateControlEnable,
  1665. (PUCHAR)&p->ctrlDataInitParams.ctrlDataRateControlEnable);
  1666. /* SME Initialization Parameters */
  1667. /* ==================================== */
  1668. regReadIntegerParameter(pAdapter, &STRdot11SmeScanEnabled,
  1669. ENABLE_SME_SCAN_DEF, ENABLE_SME_SCAN_MIN, ENABLE_SME_SCAN_MAX,
  1670. sizeof p->smeInitParams.EnableFirstConnScan,
  1671. (PUCHAR)&p->smeInitParams.EnableFirstConnScan);
  1672. regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanMin,
  1673. SME_INTER_SCAN_MIN_DEF, SME_INTER_SCAN_MIN_MIN, SME_INTER_SCAN_MIN_MAX,
  1674. sizeof p->smeInitParams.InterScanIntervalMin,
  1675. (PUCHAR)&p->smeInitParams.InterScanIntervalMin);
  1676. regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanMax,
  1677. SME_INTER_SCAN_MAX_DEF, SME_INTER_SCAN_MAX_MIN, SME_INTER_SCAN_MAX_MAX,
  1678. sizeof p->smeInitParams.InterScanIntervalMax,
  1679. (PUCHAR)&p->smeInitParams.InterScanIntervalMax);
  1680. regReadIntegerParameter(pAdapter, &STRdot11SmeInterScanDelta,
  1681. SME_INTER_SCAN_DELTA_DEF, SME_INTER_SCAN_DELTA_MIN, SME_INTER_SCAN_DELTA_MAX,
  1682. sizeof p->smeInitParams.InterScanIntervalDelta,
  1683. (PUCHAR)&p->smeInitParams.InterScanIntervalDelta);
  1684. /* B/G scan first scan params */
  1685. /* ---------------------------- */
  1686. regReadIntegerTable(pAdapter, &STRdot11SmeScanBGChannelList, SME_SCAN_BG_LIST_BAND_VAL_DEF,
  1687. SME_SCAN_BG_LIST_BAND_STRING_MAX_SIZE,
  1688. (PUCHAR)&p->smeInitParams.scanParamsBG.channelsList);
  1689. regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGMinDwellTime,
  1690. SME_SCAN_BG_MIN_DWELL_TIME_DEF, SME_SCAN_BG_MIN_DWELL_TIME_MIN, SME_SCAN_BG_MIN_DWELL_TIME_MAX,
  1691. sizeof p->smeInitParams.scanParamsBG.minDwellTime,
  1692. (PUCHAR)&p->smeInitParams.scanParamsBG.minDwellTime);
  1693. regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGMaxDwellTime,
  1694. SME_SCAN_BG_MAX_DWELL_TIME_DEF, SME_SCAN_BG_MAX_DWELL_TIME_MIN, SME_SCAN_BG_MAX_DWELL_TIME_MAX,
  1695. sizeof p->smeInitParams.scanParamsBG.maxDwellTime,
  1696. (PUCHAR)&p->smeInitParams.scanParamsBG.maxDwellTime);
  1697. regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGNumProbReq,
  1698. SME_SCAN_BG_NUM_PROB_REQ_DEF, SME_SCAN_BG_NUM_PROB_REQ_MIN, SME_SCAN_BG_NUM_PROB_REQ_MAX,
  1699. sizeof p->smeInitParams.scanParamsBG.probeReqNumber,
  1700. (PUCHAR)&p->smeInitParams.scanParamsBG.probeReqNumber);
  1701. regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGProbReqRate,
  1702. SME_SCAN_BG_PROB_REQ_RATE_DEF, SME_SCAN_BG_PROB_REQ_RATE_MIN, SME_SCAN_BG_NUM_PROB_REQ_RATE_MAX,
  1703. sizeof p->smeInitParams.scanParamsBG.probeRequestRate,
  1704. (PUCHAR)&p->smeInitParams.scanParamsBG.probeRequestRate);
  1705. regReadIntegerParameter(pAdapter, &STRdot11SmeScanBGTxPowerLevel,
  1706. SME_SCAN_BG_TX_POWER_DEF, SME_SCAN_BG_TX_POWER_MIN, SME_SCAN_BG_TX_POWER_MAX,
  1707. sizeof p->smeInitParams.scanParamsBG.txPowerDbm,
  1708. (PUCHAR)&p->smeInitParams.scanParamsBG.txPowerDbm);
  1709. /* A band first scan params */
  1710. /* ---------------------------- */
  1711. regReadIntegerTable(pAdapter, &STRdot11SmeScanAChannelList, SME_SCAN_A_LIST_BAND_VAL_DEF,
  1712. SME_SCAN_A_LIST_BAND_STRING_MAX_SIZE,
  1713. (PUCHAR)&p->smeInitParams.scanParamsA.channelsList);
  1714. regReadIntegerParameter(pAdapter, &STRdot11SmeScanAMinDwellTime,
  1715. SME_SCAN_A_MIN_DWELL_TIME_DEF, SME_SCAN_A_MIN_DWELL_TIME_MIN, SME_SCAN_A_MIN_DWELL_TIME_MAX,
  1716. sizeof p->smeInitParams.scanParamsA.minDwellTime,
  1717. (PUCHAR)&p->smeInitParams.scanParamsA.minDwellTime);
  1718. regReadIntegerParameter(pAdapter, &STRdot11SmeScanAMaxDwellTime,
  1719. SME_SCAN_A_MAX_DWELL_TIME_DEF, SME_SCAN_A_MAX_DWELL_TIME_MIN, SME_SCAN_A_MAX_DWELL_TIME_MAX,
  1720. sizeof p->smeInitParams.scanParamsA.maxDwellTime,
  1721. (PUCHAR)&p->smeInitParams.scanParamsA.maxDwellTime);
  1722. regReadIntegerParameter(pAdapter, &STRdot11SmeScanANumProbReq,
  1723. SME_SCAN_A_NUM_PROB_REQ_DEF, SME_SCAN_A_NUM_PROB_REQ_MIN, SME_SCAN_A_NUM_PROB_REQ_MAX,
  1724. sizeof p->smeInitParams.scanParamsA.probeReqNumber,
  1725. (PUCHAR)&p->smeInitParams.scanParamsA.probeReqNumber);
  1726. regReadIntegerParameter(pAdapter, &STRdot11SmeScanAProbReqRate,
  1727. SME_SCAN_A_PROB_REQ_RATE_DEF, SME_SCAN_A_PROB_REQ_RATE_MIN, SME_SCAN_A_NUM_PROB_REQ_RATE_MAX,
  1728. sizeof p->smeInitParams.scanParamsA.probeRequestRate,
  1729. (PUCHAR)&p->smeInitParams.scanParamsA.probeRequestRate);
  1730. regReadIntegerParameter(pAdapter, &STRdot11SmeScanATxPowerLevel,
  1731. SME_SCAN_A_TX_POWER_DEF, SME_SCAN_A_TX_POWER_MIN, SME_SCAN_A_TX_POWER_MAX,
  1732. sizeof p->smeInitParams.scanParamsA.txPowerDbm,
  1733. (PUCHAR)&p->smeInitParams.scanParamsA.txPowerDbm);
  1734. regReadIntegerParameter(pAdapter, &STRdot11AuthenticationMode,
  1735. RSN_AUTH_SUITE_DEF, RSN_AUTH_SUITE_MIN, RSN_AUTH_SUITE_MAX,
  1736. sizeof p->rsnInitParams.authSuite,
  1737. (PUCHAR)&p->rsnInitParams.authSuite);
  1738. regReadIntegerParameter(pAdapter, &STRdot11FourXEnable,
  1739. CTRL_DATA_FOUR_X_ENABLE_DEF, CTRL_DATA_FOUR_X_ENABLE_MIN, CTRL_DATA_FOUR_X_ENABLE_MAX,
  1740. sizeof p->ctrlDataInitParams.ctrlDataFourXEnable,
  1741. (PUCHAR)&p->ctrlDataInitParams.ctrlDataFourXEnable);
  1742. /* Soft Gemini Section */
  1743. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistEnable,
  1744. SOFT_GEMINI_ENABLED_DEF, SOFT_GEMINI_ENABLED_MIN, SOFT_GEMINI_ENABLED_MAX,
  1745. sizeof p->SoftGeminiInitParams.SoftGeminiEnable,
  1746. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiEnable);
  1747. regReadIntegerTable(pAdapter, &STRBThWlanCoexistRate, SG_RATES_DEF,
  1748. SG_RATES_STRING_MAX_DEF,
  1749. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiRate);
  1750. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtHpMaxTime,
  1751. SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_DEF, SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MIN, SOFT_GEMINI_PARAMS_BT_HP_MAXTIME_MAX,
  1752. sizeof p->SoftGeminiInitParams.SoftGeminiParam.btHpMaxTime,
  1753. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btHpMaxTime);
  1754. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanHpMaxTime,
  1755. SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_DEF, SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MIN, SOFT_GEMINI_PARAMS_WLAN_HP_MAX_TIME_MAX,
  1756. sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanHpMaxTime,
  1757. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanHpMaxTime);
  1758. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssenseDisableTimer,
  1759. SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_DEF, SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MIN, SOFT_GEMINI_PARAMS_SENSE_DISABLE_TIMER_MAX,
  1760. sizeof p->SoftGeminiInitParams.SoftGeminiParam.senseDisableTimer,
  1761. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.senseDisableTimer);
  1762. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHp,
  1763. SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_MAX,
  1764. sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHp,
  1765. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHp);
  1766. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHp,
  1767. SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_MAX,
  1768. sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHp,
  1769. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHp);
  1770. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveRxTimeBeforeBtHpFastAp,
  1771. SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_RX_TIME_FAST_MAX,
  1772. sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHpFastAp,
  1773. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveRxTimeBeforeBtHpFastAp);
  1774. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveTxTimeBeforeBtHpFastAp,
  1775. SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_PROTECTIVE_TX_TIME_FAST_MAX,
  1776. sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHpFastAp,
  1777. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveTxTimeBeforeBtHpFastAp);
  1778. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsprotectiveWlanCycleTimeForFastAp,
  1779. SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_DEF, SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MIN, SOFT_GEMINI_PARAMS_CYCLE_TIME_FAST_MAX,
  1780. sizeof p->SoftGeminiInitParams.SoftGeminiParam.protectiveWlanCycleTimeForFastAp,
  1781. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.protectiveWlanCycleTimeForFastAp);
  1782. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamstimeoutNextBtLpPacket,
  1783. SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_DEF, SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MIN, SOFT_GEMINI_PARAMS_TIMEOUT_NEXT_BT_LP_PACKET_MAX,
  1784. sizeof p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextBtLpPacket,
  1785. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextBtLpPacket);
  1786. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssgAntennaType,
  1787. SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_DEF, SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MIN, SOFT_GEMINI_PARAMS_SG_ANTENNA_TYPE_MAX,
  1788. sizeof p->SoftGeminiInitParams.SoftGeminiParam.sgAntennaType,
  1789. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.sgAntennaType);
  1790. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssignalingType,
  1791. SOFT_GEMINI_PARAMS_SIGNALING_TYPE_DEF, SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MIN, SOFT_GEMINI_PARAMS_SIGNALING_TYPE_MAX,
  1792. sizeof p->SoftGeminiInitParams.SoftGeminiParam.signalingType,
  1793. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.signalingType);
  1794. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsafhLeverageOn,
  1795. SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_DEF, SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MIN, SOFT_GEMINI_PARAMS_AFH_LEVERAGE_ON_MAX,
  1796. sizeof p->SoftGeminiInitParams.SoftGeminiParam.afhLeverageOn,
  1797. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.afhLeverageOn);
  1798. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberQuietCycle,
  1799. SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_DEF, SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MIN, SOFT_GEMINI_PARAMS_NUMBER_QUIET_CYCLE_MAX,
  1800. sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberQuietCycle,
  1801. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberQuietCycle);
  1802. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsmaxNumCts,
  1803. SOFT_GEMINI_PARAMS_MAX_NUM_CTS_DEF, SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MIN, SOFT_GEMINI_PARAMS_MAX_NUM_CTS_MAX,
  1804. sizeof p->SoftGeminiInitParams.SoftGeminiParam.maxNumCts,
  1805. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.maxNumCts);
  1806. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfWlanPackets,
  1807. SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_DEF, SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_WLAN_PACKETS_MAX,
  1808. sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfWlanPackets,
  1809. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfWlanPackets);
  1810. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfBtPackets,
  1811. SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_DEF, SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MIN, SOFT_GEMINI_PARAMS_NUMBER_OF_BT_PACKETS_MAX,
  1812. sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfBtPackets,
  1813. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfBtPackets);
  1814. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumberOfMissedRxForAvalancheTrigger,
  1815. SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_DEF, SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MIN, SOFT_GEMINI_PARAMS_RX_FOR_AVALANCHE_MAX,
  1816. sizeof p->SoftGeminiInitParams.SoftGeminiParam.numberOfMissedRxForAvalancheTrigger,
  1817. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numberOfMissedRxForAvalancheTrigger);
  1818. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanElpHpSupport,
  1819. SOFT_GEMINI_PARAMS_ELP_HP_DEF, SOFT_GEMINI_PARAMS_ELP_HP_MIN, SOFT_GEMINI_PARAMS_ELP_HP_MAX,
  1820. sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanElpHpSupport,
  1821. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanElpHpSupport);
  1822. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtAntiStarvationPeriod,
  1823. SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_DEF, SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MIN, SOFT_GEMINI_PARAMS_ANTI_STARVE_PERIOD_MAX,
  1824. sizeof p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationPeriod,
  1825. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationPeriod);
  1826. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsbtAntiStarvationNumberOfCyclesWithinThePeriod,
  1827. SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_DEF, SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MIN, SOFT_GEMINI_PARAMS_ANTI_STARVE_NUM_CYCLE_MAX,
  1828. sizeof p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationNumberOfCyclesWithinThePeriod ,
  1829. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.btAntiStarvationNumberOfCyclesWithinThePeriod);
  1830. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsackModeDuringBtLpInDualAnt,
  1831. SOFT_GEMINI_PARAMS_ACK_MODE_DEF, SOFT_GEMINI_PARAMS_ACK_MODE_MIN, SOFT_GEMINI_PARAMS_ACK_MODE_MAX,
  1832. sizeof p->SoftGeminiInitParams.SoftGeminiParam.ackModeDuringBtLpInDualAnt ,
  1833. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.ackModeDuringBtLpInDualAnt);
  1834. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsallowPaSdToggleDuringBtActivityEnable,
  1835. SOFT_GEMINI_PARAMS_ALLOW_PA_SD_DEF, SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MIN, SOFT_GEMINI_PARAMS_ALLOW_PA_SD_MAX,
  1836. sizeof p->SoftGeminiInitParams.SoftGeminiParam.allowPaSdToggleDuringBtActivityEnable ,
  1837. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.allowPaSdToggleDuringBtActivityEnable);
  1838. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswakeUpTimeBeforeBeacon,
  1839. SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_DEF, SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MIN, SOFT_GEMINI_PARAMS_TIME_BEFORE_BEACON_MAX,
  1840. sizeof p->SoftGeminiInitParams.SoftGeminiParam.wakeUpTimeBeforeBeacon ,
  1841. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wakeUpTimeBeforeBeacon);
  1842. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamshpdmMaxGuardTime,
  1843. SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_DEF, SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MIN, SOFT_GEMINI_PARAMS_HPDM_MAX_TIME_MAX,
  1844. sizeof p->SoftGeminiInitParams.SoftGeminiParam.hpdmMaxGuardTime ,
  1845. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.hpdmMaxGuardTime);
  1846. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamstimeoutNextWlanPacket,
  1847. SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_DEF, SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MIN, SOFT_GEMINI_PARAMS_TIME_OUT_NEXT_WLAN_MAX,
  1848. sizeof p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextWlanPacket ,
  1849. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.timeoutNextWlanPacket);
  1850. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamssgAutoModeNoCts,
  1851. SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_DEF, SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MIN, SOFT_GEMINI_PARAMS_AUTO_MODE_NO_CTS_MAX,
  1852. sizeof p->SoftGeminiInitParams.SoftGeminiParam.sgAutoModeNoCts ,
  1853. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.sgAutoModeNoCts);
  1854. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamsnumOfBtHpRespectedReq,
  1855. SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_DEF, SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MIN, SOFT_GEMINI_PARAMS_BT_HP_RESPECTED_MAX,
  1856. sizeof p->SoftGeminiInitParams.SoftGeminiParam.numOfBtHpRespectedReq ,
  1857. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.numOfBtHpRespectedReq);
  1858. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistParamswlanRxMinRateToRespectBtHp,
  1859. SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_DEF, SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MIN, SOFT_GEMINI_PARAMS_WLAN_RX_MIN_RATE_MAX,
  1860. sizeof p->SoftGeminiInitParams.SoftGeminiParam.wlanRxMinRateToRespectBtHp ,
  1861. (PUCHAR)&p->SoftGeminiInitParams.SoftGeminiParam.wlanRxMinRateToRespectBtHp);
  1862. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanNumberOfProbes,
  1863. SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_DEF, SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_MIN, SOFT_GEMINI_SCAN_NUMBER_OF_PROBE_REQUEST_MAX,
  1864. sizeof p->SoftGeminiInitParams.scanNumOfProbeRequest,
  1865. (PUCHAR)&p->SoftGeminiInitParams.scanNumOfProbeRequest);
  1866. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanCompensationPercent,
  1867. SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_DEF, SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_MIN, SOFT_GEMINI_SCAN_COMPENSATION_PERCENT_MAX,
  1868. sizeof p->SoftGeminiInitParams.scanCompensationPercent,
  1869. (PUCHAR)&p->SoftGeminiInitParams.scanCompensationPercent);
  1870. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistScanCompensationMaxTime,
  1871. SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_DEF, SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_MIN, SOFT_GEMINI_SCAN_COMPENSATION_MAX_TIME_MAX,
  1872. sizeof p->SoftGeminiInitParams.scanCompensationMaxTime,
  1873. (PUCHAR)&p->SoftGeminiInitParams.scanCompensationMaxTime);
  1874. regReadIntegerParameter(pAdapter, &STRBThWlanCoexistBSSLossCompensationPercent,
  1875. SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_DEF, SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_MIN, SOFT_GEMINI_BSS_LOSS_COMPENSATION_PERCENT_MAX,
  1876. sizeof p->SoftGeminiInitParams.BSSLossCompensationPercent,
  1877. (PUCHAR)&p->SoftGeminiInitParams.BSSLossCompensationPercent);
  1878. /* update hal 4x params */
  1879. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEnable4x = p->ctrlDataInitParams.ctrlDataFourXEnable;
  1880. /*
  1881. Power Manager
  1882. */
  1883. regReadIntegerParameter(pAdapter,
  1884. &STRPowerMode,
  1885. POWER_MODE_DEF_VALUE,
  1886. POWER_MODE_MIN_VALUE,
  1887. POWER_MODE_MAX_VALUE,
  1888. sizeof p->PowerMgrInitParams.powerMode,
  1889. (PUCHAR)&p->PowerMgrInitParams.powerMode);
  1890. regReadIntegerParameter(pAdapter,
  1891. &STRBeaconReceiveTime,
  1892. BEACON_RECEIVE_TIME_DEF_VALUE,
  1893. BEACON_RECEIVE_TIME_MIN_VALUE,
  1894. BEACON_RECEIVE_TIME_MAX_VALUE,
  1895. sizeof p->PowerMgrInitParams.beaconReceiveTime,
  1896. (PUCHAR)&p->PowerMgrInitParams.beaconReceiveTime);
  1897. regReadIntegerParameter(pAdapter,
  1898. &STRBaseBandWakeUpTime,
  1899. BASE_BAND_WAKE_UP_TIME_DEF_VALUE,
  1900. BASE_BAND_WAKE_UP_TIME_MIN_VALUE,
  1901. BASE_BAND_WAKE_UP_TIME_MAX_VALUE,
  1902. sizeof p->PowerMgrInitParams.BaseBandWakeUpTime,
  1903. (PUCHAR)&p->PowerMgrInitParams.BaseBandWakeUpTime);
  1904. regReadIntegerParameter(pAdapter,
  1905. &STRHangoverPeriod,
  1906. HANGOVER_PERIOD_DEF_VALUE,
  1907. HANGOVER_PERIOD_MIN_VALUE,
  1908. HANGOVER_PERIOD_MAX_VALUE,
  1909. sizeof p->PowerMgrInitParams.hangoverPeriod,
  1910. (PUCHAR)&p->PowerMgrInitParams.hangoverPeriod);
  1911. regReadIntegerParameter(pAdapter,
  1912. &STRBeaconListenInterval,
  1913. BEACON_LISTEN_INTERVAL_DEF_VALUE,
  1914. BEACON_LISTEN_INTERVAL_MIN_VALUE,
  1915. BEACON_LISTEN_INTERVAL_MAX_VALUE,
  1916. sizeof p->PowerMgrInitParams.beaconListenInterval,
  1917. (PUCHAR)&p->PowerMgrInitParams.beaconListenInterval);
  1918. regReadIntegerParameter(pAdapter,
  1919. &STRDtimListenInterval,
  1920. DTIM_LISTEN_INTERVAL_DEF_VALUE,
  1921. DTIM_LISTEN_INTERVAL_MIN_VALUE,
  1922. DTIM_LISTEN_INTERVAL_MAX_VALUE,
  1923. sizeof p->PowerMgrInitParams.dtimListenInterval,
  1924. (PUCHAR)&p->PowerMgrInitParams.dtimListenInterval);
  1925. regReadIntegerParameter(pAdapter,
  1926. &STRNConsecutiveBeaconsMissed,
  1927. N_CONSECUTIVE_BEACONS_MISSED_DEF_VALUE,
  1928. N_CONSECUTIVE_BEACONS_MISSED_MIN_VALUE,
  1929. N_CONSECUTIVE_BEACONS_MISSED_MAX_VALUE,
  1930. sizeof p->PowerMgrInitParams.nConsecutiveBeaconsMissed,
  1931. (PUCHAR)&p->PowerMgrInitParams.nConsecutiveBeaconsMissed);
  1932. regReadIntegerParameter(pAdapter,
  1933. &STREnterTo802_11PsRetries,
  1934. ENTER_TO_802_11_POWER_SAVE_RETRIES_DEF_VALUE,
  1935. ENTER_TO_802_11_POWER_SAVE_RETRIES_MIN_VALUE,
  1936. ENTER_TO_802_11_POWER_SAVE_RETRIES_MAX_VALUE,
  1937. sizeof p->PowerMgrInitParams.EnterTo802_11PsRetries,
  1938. (PUCHAR)&p->PowerMgrInitParams.EnterTo802_11PsRetries);
  1939. regReadIntegerParameter(pAdapter,
  1940. &STRAutoPowerModeInterval,
  1941. AUTO_POWER_MODE_INTERVAL_DEF_VALUE,
  1942. AUTO_POWER_MODE_INTERVAL_MIN_VALUE,
  1943. AUTO_POWER_MODE_INTERVAL_MAX_VALUE,
  1944. sizeof p->PowerMgrInitParams.autoModeInterval,
  1945. (PUCHAR)&p->PowerMgrInitParams.autoModeInterval);
  1946. regReadIntegerParameter(pAdapter,
  1947. &STRAutoPowerModeActiveTh,
  1948. AUTO_POWER_MODE_ACTIVE_TH_DEF_VALUE,
  1949. AUTO_POWER_MODE_ACTIVE_TH_MIN_VALUE,
  1950. AUTO_POWER_MODE_ACTIVE_TH_MAX_VALUE,
  1951. sizeof p->PowerMgrInitParams.autoModeActiveTH,
  1952. (PUCHAR)&p->PowerMgrInitParams.autoModeActiveTH);
  1953. regReadIntegerParameter(pAdapter,
  1954. &STRAutoPowerModeDozeTh,
  1955. AUTO_POWER_MODE_DOZE_TH_DEF_VALUE,
  1956. AUTO_POWER_MODE_DOZE_TH_MIN_VALUE,
  1957. AUTO_POWER_MODE_DOZE_TH_MAX_VALUE,
  1958. sizeof p->PowerMgrInitParams.autoModeDozeTH,
  1959. (PUCHAR)&p->PowerMgrInitParams.autoModeDozeTH);
  1960. regReadIntegerParameter(pAdapter,
  1961. &STRAutoPowerModeDozeMode,
  1962. AUTO_POWER_MODE_DOZE_MODE_DEF_VALUE,
  1963. AUTO_POWER_MODE_DOZE_MODE_MIN_VALUE,
  1964. AUTO_POWER_MODE_DOZE_MODE_MAX_VALUE,
  1965. sizeof p->PowerMgrInitParams.autoModeDozeMode,
  1966. (PUCHAR)&p->PowerMgrInitParams.autoModeDozeMode);
  1967. regReadIntegerParameter(pAdapter,
  1968. &STRDefaultPowerLevel,
  1969. DEFAULT_POWER_LEVEL_DEF_VALUE,
  1970. DEFAULT_POWER_LEVEL_MIN_VALUE,
  1971. DEFAULT_POWER_LEVEL_MAX_VALUE,
  1972. sizeof p->PowerMgrInitParams.defaultPowerLevel,
  1973. (PUCHAR)&p->PowerMgrInitParams.defaultPowerLevel);
  1974. regReadIntegerParameter(pAdapter,
  1975. &STRPowerSavePowerLevel,
  1976. PS_POWER_LEVEL_DEF_VALUE,
  1977. PS_POWER_LEVEL_MIN_VALUE,
  1978. PS_POWER_LEVEL_MAX_VALUE,
  1979. sizeof p->PowerMgrInitParams.PowerSavePowerLevel,
  1980. (PUCHAR)&p->PowerMgrInitParams.PowerSavePowerLevel);
  1981. /*---------------------- Power Management Configuration -----------------------*/
  1982. regReadIntegerParameter(pAdapter,
  1983. &STRPowerMgmtHangOverPeriod,
  1984. HANGOVER_PERIOD_DEF_VALUE,
  1985. HANGOVER_PERIOD_MIN_VALUE,
  1986. HANGOVER_PERIOD_MAX_VALUE,
  1987. sizeof p->PowerMgrInitParams.hangOverPeriod,
  1988. (PUCHAR)&p->PowerMgrInitParams.hangOverPeriod);
  1989. regReadIntegerParameter(pAdapter,
  1990. &STRPowerMgmtNeedToSendNullData,
  1991. POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_DEF_VALUE,
  1992. POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MIN_VALUE,
  1993. POWER_MGMNT_NEED_TO_SEND_NULL_PACKET_MAX_VALUE,
  1994. sizeof p->PowerMgrInitParams.needToSendNullData,
  1995. (PUCHAR)&p->PowerMgrInitParams.needToSendNullData);
  1996. regReadIntegerParameter(pAdapter,
  1997. &STRPowerMgmtNullPktRateModulation,
  1998. POWER_MGMNT_NULL_PACKET_RATE_MOD_DEF_VALUE,
  1999. POWER_MGMNT_NULL_PACKET_RATE_MOD_MIN_VALUE,
  2000. POWER_MGMNT_NULL_PACKET_RATE_MOD_MAX_VALUE,
  2001. sizeof p->PowerMgrInitParams.NullPktRateModulation,
  2002. (PUCHAR)&p->PowerMgrInitParams.NullPktRateModulation);
  2003. regReadIntegerParameter(pAdapter,
  2004. &STRPowerMgmtNumNullPktRetries,
  2005. POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE,
  2006. POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE,
  2007. POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE,
  2008. sizeof p->PowerMgrInitParams.numNullPktRetries,
  2009. (PUCHAR)&p->PowerMgrInitParams.numNullPktRetries);
  2010. regReadIntegerParameter(pAdapter,
  2011. &STRPowerMgmtPllLockTime,
  2012. PLL_LOCK_TIME_DEF_VALUE,
  2013. PLL_LOCK_TIME_MIN_VALUE,
  2014. PLL_LOCK_TIME_MAX_VALUE,
  2015. sizeof p->PowerMgrInitParams.PLLlockTime,
  2016. (PUCHAR)&p->PowerMgrInitParams.PLLlockTime);
  2017. regReadIntegerParameter(pAdapter,
  2018. &STRPsPollDeliveryFailureRecoveryPeriod,
  2019. PS_POLL_FAILURE_PERIOD_DEF,
  2020. PS_POLL_FAILURE_PERIOD_MIN,
  2021. PS_POLL_FAILURE_PERIOD_MAX,
  2022. sizeof p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod,
  2023. (PUCHAR)&p->PowerMgrInitParams.PsPollDeliveryFailureRecoveryPeriod);
  2024. /*--------------- Power Management Wake up conditions ------------------*/
  2025. regReadIntegerParameter(pAdapter, &STRListenInterval,
  2026. HAL_CTRL_LISTEN_INTERVAL_DEF, HAL_CTRL_LISTEN_INTERVAL_MIN,
  2027. HAL_CTRL_LISTEN_INTERVAL_MAX,
  2028. sizeof p->PowerMgrInitParams.listenInterval,
  2029. (PUCHAR)&p->PowerMgrInitParams.listenInterval);
  2030. /*-----------------------------------------------------------------------*/
  2031. /*--------------- Power Server Init Parameters ------------------*/
  2032. regReadIntegerParameter(pAdapter,
  2033. &STRPowerMgmtNumNullPktRetries,
  2034. POWER_MGMNT_NUM_NULL_PACKET_RETRY_DEF_VALUE,
  2035. POWER_MGMNT_NUM_NULL_PACKET_RETRY_MIN_VALUE,
  2036. POWER_MGMNT_NUM_NULL_PACKET_RETRY_MAX_VALUE,
  2037. sizeof p->TnetwDrv_InitParams.PowerSrvInitParams.numNullPktRetries,
  2038. (PUCHAR)&p->TnetwDrv_InitParams.PowerSrvInitParams.numNullPktRetries);
  2039. regReadIntegerParameter(pAdapter,
  2040. &STRPowerMgmtHangOverPeriod,
  2041. HANGOVER_PERIOD_DEF_VALUE,
  2042. HANGOVER_PERIOD_MIN_VALUE,
  2043. HANGOVER_PERIOD_MAX_VALUE,
  2044. sizeof p->TnetwDrv_InitParams.PowerSrvInitParams.hangOverPeriod,
  2045. (PUCHAR)&p->TnetwDrv_InitParams.PowerSrvInitParams.hangOverPeriod);
  2046. /*-----------------------------------------------------------------------*/
  2047. /* Scan SRV */
  2048. regReadIntegerParameter(pAdapter, &STRNumberOfNoScanCompleteToRecovery,
  2049. SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_DEF,
  2050. SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MIN,
  2051. SCAN_SRV_NUMBER_OF_NO_SCAN_COMPLETE_TO_RECOVERY_MAX,
  2052. sizeof (p->TnetwDrv_InitParams.scanSrvInitParams.numberOfNoScanCompleteToRecovery),
  2053. (PUCHAR)&(p->TnetwDrv_InitParams.scanSrvInitParams.numberOfNoScanCompleteToRecovery) );
  2054. regReadIntegerParameter(pAdapter, &STRTriggeredScanTimeOut,
  2055. SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_DEF,
  2056. SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MIN,
  2057. SCAN_SRV_TRIGGERED_SCAN_TIME_OUT_MAX,
  2058. sizeof (p->TnetwDrv_InitParams.scanSrvInitParams.uTriggeredScanTimeOut),
  2059. (PUCHAR)&(p->TnetwDrv_InitParams.scanSrvInitParams.uTriggeredScanTimeOut) );
  2060. /* Regulatory Domain */
  2061. /* Indicate the time in which the STA didn't receive any country code and was not connected, and therefore
  2062. will delete its current country code */
  2063. regReadIntegerParameter(pAdapter, &STRTimeToResetCountryMs,
  2064. REGULATORY_DOMAIN_COUNTRY_TIME_RESET_DEF, REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MIN,
  2065. REGULATORY_DOMAIN_COUNTRY_TIME_RESET_MAX,
  2066. sizeof p->regulatoryDomainInitParams.uTimeOutToResetCountryMs,
  2067. (PUCHAR)&(p->regulatoryDomainInitParams.uTimeOutToResetCountryMs));
  2068. /* 802.11d/h */
  2069. regReadIntegerParameter(pAdapter, &STRMultiRegulatoryDomainEnabled,
  2070. MULTI_REGULATORY_DOMAIN_ENABLED_DEF, MULTI_REGULATORY_DOMAIN_ENABLED_MIN,
  2071. MULTI_REGULATORY_DOMAIN_ENABLED_MAX,
  2072. sizeof p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled,
  2073. (PUCHAR)&(p->regulatoryDomainInitParams.multiRegulatoryDomainEnabled));
  2074. regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled,
  2075. SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN,
  2076. SPECTRUM_MANAGEMENT_ENABLED_MAX,
  2077. sizeof p->regulatoryDomainInitParams.spectrumManagementEnabled,
  2078. (PUCHAR)&(p->regulatoryDomainInitParams.spectrumManagementEnabled));
  2079. regReadIntegerParameter(pAdapter, &STRSpectrumManagementEnabled,
  2080. SPECTRUM_MANAGEMENT_ENABLED_DEF, SPECTRUM_MANAGEMENT_ENABLED_MIN,
  2081. SPECTRUM_MANAGEMENT_ENABLED_MAX,
  2082. sizeof p->SwitchChannelInitParams.dot11SpectrumManagementRequired,
  2083. (PUCHAR)&(p->SwitchChannelInitParams.dot11SpectrumManagementRequired));
  2084. /* Scan Control Tables */
  2085. regReadStringParameter(pAdapter, &STRScanControlTable24,
  2086. (PCHAR)&ScanControlTable24Def[0],(USHORT)(2 * NUM_OF_CHANNELS_24),
  2087. (PUCHAR)&(ScanControlTable24Tmp[0]),
  2088. (PUSHORT)&tableLen);
  2089. for( loopIndex = tableLen ; loopIndex < 2 * NUM_OF_CHANNELS_24 ; loopIndex++)
  2090. ScanControlTable24Tmp[loopIndex] = '0';
  2091. decryptScanControlTable(ScanControlTable24Tmp,(PUCHAR)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable24.tableString[0]),2 * NUM_OF_CHANNELS_24);
  2092. /* Scan Control Tables for 5 Ghz*/
  2093. regReadStringParameter(pAdapter, &STRScanControlTable5,
  2094. (PCHAR)&ScanControlTable5Def[0],(USHORT)(2 * A_5G_BAND_NUM_CHANNELS),
  2095. (PUCHAR)&(ScanControlTable5Tmp[0]),
  2096. (PUSHORT)&tableLen);
  2097. for( loopIndex = tableLen ; loopIndex < 2 * A_5G_BAND_NUM_CHANNELS ; loopIndex++)
  2098. ScanControlTable5Tmp[loopIndex] = '0';
  2099. decryptScanControlTable(ScanControlTable5Tmp,(PUCHAR)&(p->regulatoryDomainInitParams.desiredScanControlTable.ScanControlTable5.tableString[0]),2 * A_5G_BAND_NUM_CHANNELS);
  2100. /* Tx Power */
  2101. regReadIntegerParameter(pAdapter, &STRTxPower,
  2102. MAX_TX_POWER, MIN_TX_POWER, MAX_TX_POWER,
  2103. sizeof p->regulatoryDomainInitParams.desiredTxPower,
  2104. (PUCHAR)&p->regulatoryDomainInitParams.desiredTxPower);
  2105. regReadIntegerParameter(pAdapter, &STRdot11WEPStatus,
  2106. RSN_WEP_STATUS_DEF, RSN_WEP_STATUS_MIN, RSN_WEP_STATUS_MAX,
  2107. sizeof p->rsnInitParams.privacyOn,
  2108. (PUCHAR)&p->rsnInitParams.privacyOn);
  2109. /* reverse privacy value - windows is setting 1 as off */
  2110. /*
  2111. p->rsnInitParams.privacyMode = !(p->rsnInitParams.privacyOn);
  2112. p->rsnInitParams.privacyOn = !(p->rsnInitParams.privacyOn);
  2113. */
  2114. regReadIntegerParameter(pAdapter, &STRdot11WEPDefaultKeyID,
  2115. RSN_DEFAULT_KEY_ID_DEF, RSN_DEFAULT_KEY_ID_MIN,
  2116. RSN_DEFAULT_KEY_ID_MAX,
  2117. sizeof p->rsnInitParams.defaultKeyId,
  2118. (PUCHAR)&p->rsnInitParams.defaultKeyId);
  2119. regReadIntegerParameter(pAdapter, &STRMixedMode,
  2120. RSN_WEPMIXEDMODE_ENABLED_DEF, RSN_WEPMIXEDMODE_ENABLED_MIN,
  2121. RSN_WEPMIXEDMODE_ENABLED_MAX,
  2122. sizeof p->rsnInitParams.mixedMode,
  2123. (PUCHAR)&p->rsnInitParams.mixedMode);
  2124. regReadIntegerParameter(pAdapter, &STRWPAMixedMode,
  2125. RSN_WPAMIXEDMODE_ENABLE_DEF, RSN_WPAMIXEDMODE_ENABLE_MIN,
  2126. RSN_WPAMIXEDMODE_ENABLE_MAX,
  2127. sizeof p->rsnInitParams.WPAMixedModeEnable,
  2128. (PUCHAR)&p->rsnInitParams.WPAMixedModeEnable);
  2129. regReadIntegerParameter(pAdapter, &STRRSNPreAuth,
  2130. RSN_PREAUTH_ENABLE_DEF, RSN_PREAUTH_ENABLE_MIN,
  2131. RSN_PREAUTH_ENABLE_MAX,
  2132. sizeof p->rsnInitParams.preAuthSupport,
  2133. (PUCHAR)&p->rsnInitParams.preAuthSupport);
  2134. regReadIntegerParameter(pAdapter, &STRRSNPreAuthTimeout,
  2135. RSN_PREAUTH_TIMEOUT_DEF, RSN_PREAUTH_TIMEOUT_MIN,
  2136. RSN_PREAUTH_TIMEOUT_MAX,
  2137. sizeof p->rsnInitParams.preAuthTimeout,
  2138. (PUCHAR)&p->rsnInitParams.preAuthTimeout);
  2139. regReadWepKeyParameter(pAdapter, (PUCHAR)p->rsnInitParams.keys, p->rsnInitParams.defaultKeyId);
  2140. /*---------------------------
  2141. QOS parameters
  2142. -----------------------------*/
  2143. regReadIntegerParameter(pAdapter, &STRClsfr_Type,
  2144. CLSFR_TYPE_DEF, CLSFR_TYPE_MIN,
  2145. CLSFR_TYPE_MAX,
  2146. sizeof p->ctrlDataInitParams.ClsfrInitParam.clsfrType,
  2147. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.clsfrType);
  2148. switch(p->ctrlDataInitParams.ClsfrInitParam.clsfrType)
  2149. {
  2150. case D_TAG_CLSFR:
  2151. /* Trivial mapping D-tag to D-tag - no need to read more keys*/
  2152. break;
  2153. case DSCP_CLSFR:
  2154. regReadIntegerParameter(pAdapter, &STRNumOfCodePoints,
  2155. NUM_OF_CODE_POINTS_DEF, NUM_OF_CODE_POINTS_MIN,
  2156. NUM_OF_CODE_POINTS_MAX,
  2157. sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
  2158. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
  2159. regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_CodePoint,
  2160. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2161. CLASSIFIER_CODE_POINT_MAX,
  2162. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint,
  2163. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.CodePoint);
  2164. regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_CodePoint,
  2165. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2166. CLASSIFIER_CODE_POINT_MAX,
  2167. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint,
  2168. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.CodePoint);
  2169. regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_CodePoint,
  2170. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2171. CLASSIFIER_CODE_POINT_MAX,
  2172. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint,
  2173. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.CodePoint);
  2174. regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_CodePoint,
  2175. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2176. CLASSIFIER_CODE_POINT_MAX,
  2177. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint,
  2178. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.CodePoint);
  2179. regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_CodePoint,
  2180. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2181. CLASSIFIER_CODE_POINT_MAX,
  2182. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint,
  2183. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.CodePoint);
  2184. regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_CodePoint,
  2185. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2186. CLASSIFIER_CODE_POINT_MAX,
  2187. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint,
  2188. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.CodePoint);
  2189. regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_CodePoint,
  2190. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2191. CLASSIFIER_CODE_POINT_MAX,
  2192. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint,
  2193. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.CodePoint);
  2194. regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_CodePoint,
  2195. DSCP_CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2196. CLASSIFIER_CODE_POINT_MAX,
  2197. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint,
  2198. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.CodePoint);
  2199. regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_CodePoint,
  2200. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2201. CLASSIFIER_CODE_POINT_MAX,
  2202. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint,
  2203. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.CodePoint);
  2204. regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_CodePoint,
  2205. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2206. CLASSIFIER_CODE_POINT_MAX,
  2207. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint,
  2208. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.CodePoint);
  2209. regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_CodePoint,
  2210. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2211. CLASSIFIER_CODE_POINT_MAX,
  2212. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint,
  2213. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.CodePoint);
  2214. regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_CodePoint,
  2215. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2216. CLASSIFIER_CODE_POINT_MAX,
  2217. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint,
  2218. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.CodePoint);
  2219. regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_CodePoint,
  2220. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2221. CLASSIFIER_CODE_POINT_MAX,
  2222. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint,
  2223. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.CodePoint);
  2224. regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_CodePoint,
  2225. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2226. CLASSIFIER_CODE_POINT_MAX,
  2227. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint,
  2228. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.CodePoint);
  2229. regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_CodePoint,
  2230. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2231. CLASSIFIER_CODE_POINT_MAX,
  2232. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint,
  2233. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.CodePoint);
  2234. regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_CodePoint,
  2235. CLASSIFIER_CODE_POINT_DEF, CLASSIFIER_CODE_POINT_MIN,
  2236. CLASSIFIER_CODE_POINT_MAX,
  2237. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint,
  2238. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.CodePoint);
  2239. regReadIntegerParameter(pAdapter, &STRDSCPClassifier00_DTag,
  2240. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2241. CLASSIFIER_DTAG_MAX,
  2242. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
  2243. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
  2244. regReadIntegerParameter(pAdapter, &STRDSCPClassifier01_DTag,
  2245. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2246. CLASSIFIER_DTAG_MAX,
  2247. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
  2248. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
  2249. regReadIntegerParameter(pAdapter, &STRDSCPClassifier02_DTag,
  2250. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2251. CLASSIFIER_DTAG_MAX,
  2252. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
  2253. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
  2254. regReadIntegerParameter(pAdapter, &STRDSCPClassifier03_DTag,
  2255. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2256. CLASSIFIER_DTAG_MAX,
  2257. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
  2258. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
  2259. regReadIntegerParameter(pAdapter, &STRDSCPClassifier04_DTag,
  2260. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2261. CLASSIFIER_DTAG_MAX,
  2262. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
  2263. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
  2264. regReadIntegerParameter(pAdapter, &STRDSCPClassifier05_DTag,
  2265. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2266. CLASSIFIER_DTAG_MAX,
  2267. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
  2268. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
  2269. regReadIntegerParameter(pAdapter, &STRDSCPClassifier06_DTag,
  2270. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2271. CLASSIFIER_DTAG_MAX,
  2272. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
  2273. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
  2274. regReadIntegerParameter(pAdapter, &STRDSCPClassifier07_DTag,
  2275. DSCP_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2276. CLASSIFIER_DTAG_MAX,
  2277. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
  2278. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
  2279. regReadIntegerParameter(pAdapter, &STRDSCPClassifier08_DTag,
  2280. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2281. CLASSIFIER_DTAG_MAX,
  2282. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
  2283. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
  2284. regReadIntegerParameter(pAdapter, &STRDSCPClassifier09_DTag,
  2285. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2286. CLASSIFIER_DTAG_MAX,
  2287. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
  2288. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
  2289. regReadIntegerParameter(pAdapter, &STRDSCPClassifier10_DTag,
  2290. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2291. CLASSIFIER_DTAG_MAX,
  2292. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
  2293. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
  2294. regReadIntegerParameter(pAdapter, &STRDSCPClassifier11_DTag,
  2295. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2296. CLASSIFIER_DTAG_MAX,
  2297. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
  2298. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
  2299. regReadIntegerParameter(pAdapter, &STRDSCPClassifier12_DTag,
  2300. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2301. CLASSIFIER_DTAG_MAX,
  2302. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
  2303. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
  2304. regReadIntegerParameter(pAdapter, &STRDSCPClassifier13_DTag,
  2305. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2306. CLASSIFIER_DTAG_MAX,
  2307. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
  2308. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
  2309. regReadIntegerParameter(pAdapter, &STRDSCPClassifier14_DTag,
  2310. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2311. CLASSIFIER_DTAG_MAX,
  2312. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
  2313. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
  2314. regReadIntegerParameter(pAdapter, &STRDSCPClassifier15_DTag,
  2315. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2316. CLASSIFIER_DTAG_MAX,
  2317. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
  2318. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
  2319. break;
  2320. case PORT_CLSFR:
  2321. regReadIntegerParameter(pAdapter, &STRNumOfDstPortClassifiers,
  2322. NUM_OF_PORT_CLASSIFIERS_DEF, NUM_OF_PORT_CLASSIFIERS_MIN,
  2323. NUM_OF_PORT_CLASSIFIERS_MAX,
  2324. sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
  2325. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
  2326. regReadIntegerParameter(pAdapter, &STRPortClassifier00_Port,
  2327. PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2328. CLASSIFIER_PORT_MAX,
  2329. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum,
  2330. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstPortNum);
  2331. regReadIntegerParameter(pAdapter, &STRPortClassifier01_Port,
  2332. PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2333. CLASSIFIER_PORT_MAX,
  2334. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum,
  2335. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstPortNum);
  2336. regReadIntegerParameter(pAdapter, &STRPortClassifier02_Port,
  2337. PORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2338. CLASSIFIER_PORT_MAX,
  2339. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum,
  2340. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstPortNum);
  2341. regReadIntegerParameter(pAdapter, &STRPortClassifier03_Port,
  2342. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2343. CLASSIFIER_PORT_MAX,
  2344. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum,
  2345. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstPortNum);
  2346. regReadIntegerParameter(pAdapter, &STRPortClassifier04_Port,
  2347. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2348. CLASSIFIER_PORT_MAX,
  2349. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum,
  2350. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstPortNum);
  2351. regReadIntegerParameter(pAdapter, &STRPortClassifier05_Port,
  2352. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2353. CLASSIFIER_PORT_MAX,
  2354. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum,
  2355. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstPortNum);
  2356. regReadIntegerParameter(pAdapter, &STRPortClassifier06_Port,
  2357. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2358. CLASSIFIER_PORT_MAX,
  2359. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum,
  2360. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstPortNum);
  2361. regReadIntegerParameter(pAdapter, &STRPortClassifier07_Port,
  2362. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2363. CLASSIFIER_PORT_MAX,
  2364. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum,
  2365. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstPortNum);
  2366. regReadIntegerParameter(pAdapter, &STRPortClassifier08_Port,
  2367. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2368. CLASSIFIER_PORT_MAX,
  2369. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum,
  2370. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstPortNum);
  2371. regReadIntegerParameter(pAdapter, &STRPortClassifier09_Port,
  2372. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2373. CLASSIFIER_PORT_MAX,
  2374. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum,
  2375. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstPortNum);
  2376. regReadIntegerParameter(pAdapter, &STRPortClassifier10_Port,
  2377. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2378. CLASSIFIER_PORT_MAX,
  2379. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum,
  2380. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstPortNum);
  2381. regReadIntegerParameter(pAdapter, &STRPortClassifier11_Port,
  2382. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2383. CLASSIFIER_PORT_MAX,
  2384. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum,
  2385. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstPortNum);
  2386. regReadIntegerParameter(pAdapter, &STRPortClassifier12_Port,
  2387. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2388. CLASSIFIER_PORT_MAX,
  2389. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum,
  2390. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstPortNum);
  2391. regReadIntegerParameter(pAdapter, &STRPortClassifier13_Port,
  2392. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2393. CLASSIFIER_PORT_MAX,
  2394. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum,
  2395. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstPortNum);
  2396. regReadIntegerParameter(pAdapter, &STRPortClassifier14_Port,
  2397. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2398. CLASSIFIER_PORT_MAX,
  2399. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum,
  2400. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstPortNum);
  2401. regReadIntegerParameter(pAdapter, &STRPortClassifier15_Port,
  2402. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2403. CLASSIFIER_PORT_MAX,
  2404. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum,
  2405. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstPortNum);
  2406. regReadIntegerParameter(pAdapter, &STRPortClassifier00_DTag,
  2407. PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2408. CLASSIFIER_DTAG_MAX,
  2409. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
  2410. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
  2411. regReadIntegerParameter(pAdapter, &STRPortClassifier01_DTag,
  2412. PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2413. CLASSIFIER_DTAG_MAX,
  2414. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
  2415. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
  2416. regReadIntegerParameter(pAdapter, &STRPortClassifier02_DTag,
  2417. PORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2418. CLASSIFIER_DTAG_MAX,
  2419. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
  2420. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
  2421. regReadIntegerParameter(pAdapter, &STRPortClassifier03_DTag,
  2422. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2423. CLASSIFIER_DTAG_MAX,
  2424. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
  2425. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
  2426. regReadIntegerParameter(pAdapter, &STRPortClassifier04_DTag,
  2427. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2428. CLASSIFIER_DTAG_MAX,
  2429. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
  2430. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
  2431. regReadIntegerParameter(pAdapter, &STRPortClassifier05_DTag,
  2432. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2433. CLASSIFIER_DTAG_MAX,
  2434. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
  2435. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
  2436. regReadIntegerParameter(pAdapter, &STRPortClassifier06_DTag,
  2437. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2438. CLASSIFIER_DTAG_MAX,
  2439. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
  2440. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
  2441. regReadIntegerParameter(pAdapter, &STRPortClassifier07_DTag,
  2442. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2443. CLASSIFIER_DTAG_MAX,
  2444. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
  2445. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
  2446. regReadIntegerParameter(pAdapter, &STRPortClassifier08_DTag,
  2447. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2448. CLASSIFIER_DTAG_MAX,
  2449. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
  2450. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
  2451. regReadIntegerParameter(pAdapter, &STRPortClassifier09_DTag,
  2452. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2453. CLASSIFIER_DTAG_MAX,
  2454. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
  2455. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
  2456. regReadIntegerParameter(pAdapter, &STRPortClassifier10_DTag,
  2457. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2458. CLASSIFIER_DTAG_MAX,
  2459. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
  2460. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
  2461. regReadIntegerParameter(pAdapter, &STRPortClassifier11_DTag,
  2462. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2463. CLASSIFIER_DTAG_MAX,
  2464. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
  2465. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
  2466. regReadIntegerParameter(pAdapter, &STRPortClassifier12_DTag,
  2467. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2468. CLASSIFIER_DTAG_MAX,
  2469. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
  2470. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
  2471. regReadIntegerParameter(pAdapter, &STRPortClassifier13_DTag,
  2472. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2473. CLASSIFIER_DTAG_MAX,
  2474. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
  2475. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
  2476. regReadIntegerParameter(pAdapter, &STRPortClassifier14_DTag,
  2477. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2478. CLASSIFIER_DTAG_MAX,
  2479. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
  2480. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
  2481. regReadIntegerParameter(pAdapter, &STRPortClassifier15_DTag,
  2482. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2483. CLASSIFIER_DTAG_MAX,
  2484. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
  2485. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
  2486. break;
  2487. case IPPORT_CLSFR:
  2488. regReadIntegerParameter(pAdapter, &STRNumOfDstIPPortClassifiers,
  2489. NUM_OF_IPPORT_CLASSIFIERS_DEF, NUM_OF_IPPORT_CLASSIFIERS_MIN,
  2490. NUM_OF_IPPORT_CLASSIFIERS_MAX,
  2491. sizeof p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries,
  2492. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.NumOfActiveEntries);
  2493. regReadStringParameter(pAdapter, &STRIPPortClassifier00_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2494. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstIPAddress, 4);
  2495. regReadStringParameter(pAdapter, &STRIPPortClassifier01_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2496. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstIPAddress, 4);
  2497. regReadStringParameter(pAdapter, &STRIPPortClassifier02_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2498. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstIPAddress, 4);
  2499. regReadStringParameter(pAdapter, &STRIPPortClassifier03_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2500. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstIPAddress, 4);
  2501. regReadStringParameter(pAdapter, &STRIPPortClassifier04_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2502. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstIPAddress, 4);
  2503. regReadStringParameter(pAdapter, &STRIPPortClassifier05_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2504. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstIPAddress, 4);
  2505. regReadStringParameter(pAdapter, &STRIPPortClassifier06_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2506. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstIPAddress, 4);
  2507. regReadStringParameter(pAdapter, &STRIPPortClassifier07_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2508. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstIPAddress, 4);
  2509. regReadStringParameter(pAdapter, &STRIPPortClassifier08_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2510. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstIPAddress, 4);
  2511. regReadStringParameter(pAdapter, &STRIPPortClassifier09_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2512. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstIPAddress, 4);
  2513. regReadStringParameter(pAdapter, &STRIPPortClassifier10_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2514. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstIPAddress, 4);
  2515. regReadStringParameter(pAdapter, &STRIPPortClassifier11_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2516. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstIPAddress, 4);
  2517. regReadStringParameter(pAdapter, &STRIPPortClassifier12_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2518. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstIPAddress, 4);
  2519. regReadStringParameter(pAdapter, &STRIPPortClassifier13_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2520. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstIPAddress, 4);
  2521. regReadStringParameter(pAdapter, &STRIPPortClassifier14_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2522. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstIPAddress, 4);
  2523. regReadStringParameter(pAdapter, &STRIPPortClassifier15_IPAddress, (PCHAR)(ClsfrIp), 11, (PUCHAR)ClsfrIpString, &ClsfrIpStringSize);
  2524. initRadioValusFromRgstryString( (PCHAR)(ClsfrIpString), (PCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstIPAddress, 4);
  2525. regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_Port,
  2526. IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2527. CLASSIFIER_PORT_MAX,
  2528. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum,
  2529. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].Dscp.DstIPPort.DstPortNum);
  2530. regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_Port,
  2531. IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2532. CLASSIFIER_PORT_MAX,
  2533. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum,
  2534. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].Dscp.DstIPPort.DstPortNum);
  2535. regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_Port,
  2536. IPPORT_CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2537. CLASSIFIER_PORT_MAX,
  2538. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum,
  2539. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].Dscp.DstIPPort.DstPortNum);
  2540. regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_Port,
  2541. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2542. CLASSIFIER_PORT_MAX,
  2543. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum,
  2544. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].Dscp.DstIPPort.DstPortNum);
  2545. regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_Port,
  2546. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2547. CLASSIFIER_PORT_MAX,
  2548. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum,
  2549. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].Dscp.DstIPPort.DstPortNum);
  2550. regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_Port,
  2551. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2552. CLASSIFIER_PORT_MAX,
  2553. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum,
  2554. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].Dscp.DstIPPort.DstPortNum);
  2555. regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_Port,
  2556. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2557. CLASSIFIER_PORT_MAX,
  2558. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum,
  2559. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].Dscp.DstIPPort.DstPortNum);
  2560. regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_Port,
  2561. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2562. CLASSIFIER_PORT_MAX,
  2563. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum,
  2564. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].Dscp.DstIPPort.DstPortNum);
  2565. regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_Port,
  2566. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2567. CLASSIFIER_PORT_MAX,
  2568. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum,
  2569. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].Dscp.DstIPPort.DstPortNum);
  2570. regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_Port,
  2571. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2572. CLASSIFIER_PORT_MAX,
  2573. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum,
  2574. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].Dscp.DstIPPort.DstPortNum);
  2575. regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_Port,
  2576. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2577. CLASSIFIER_PORT_MAX,
  2578. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum,
  2579. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].Dscp.DstIPPort.DstPortNum);
  2580. regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_Port,
  2581. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2582. CLASSIFIER_PORT_MAX,
  2583. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum,
  2584. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].Dscp.DstIPPort.DstPortNum);
  2585. regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_Port,
  2586. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2587. CLASSIFIER_PORT_MAX,
  2588. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum,
  2589. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].Dscp.DstIPPort.DstPortNum);
  2590. regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_Port,
  2591. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2592. CLASSIFIER_PORT_MAX,
  2593. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum,
  2594. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].Dscp.DstIPPort.DstPortNum);
  2595. regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_Port,
  2596. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2597. CLASSIFIER_PORT_MAX,
  2598. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum,
  2599. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].Dscp.DstIPPort.DstPortNum);
  2600. regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_Port,
  2601. CLASSIFIER_PORT_DEF, CLASSIFIER_PORT_MIN,
  2602. CLASSIFIER_PORT_MAX,
  2603. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum,
  2604. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].Dscp.DstIPPort.DstPortNum);
  2605. regReadIntegerParameter(pAdapter, &STRIPPortClassifier00_DTag,
  2606. IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2607. CLASSIFIER_DTAG_MAX,
  2608. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag,
  2609. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[0].DTag);
  2610. regReadIntegerParameter(pAdapter, &STRIPPortClassifier01_DTag,
  2611. IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2612. CLASSIFIER_DTAG_MAX,
  2613. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag,
  2614. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[1].DTag);
  2615. regReadIntegerParameter(pAdapter, &STRIPPortClassifier02_DTag,
  2616. IPPORT_CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2617. CLASSIFIER_DTAG_MAX,
  2618. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag,
  2619. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[2].DTag);
  2620. regReadIntegerParameter(pAdapter, &STRIPPortClassifier03_DTag,
  2621. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2622. CLASSIFIER_DTAG_MAX,
  2623. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag,
  2624. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[3].DTag);
  2625. regReadIntegerParameter(pAdapter, &STRIPPortClassifier04_DTag,
  2626. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2627. CLASSIFIER_DTAG_MAX,
  2628. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag,
  2629. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[4].DTag);
  2630. regReadIntegerParameter(pAdapter, &STRIPPortClassifier05_DTag,
  2631. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2632. CLASSIFIER_DTAG_MAX,
  2633. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag,
  2634. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[5].DTag);
  2635. regReadIntegerParameter(pAdapter, &STRIPPortClassifier06_DTag,
  2636. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2637. CLASSIFIER_DTAG_MAX,
  2638. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag,
  2639. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[6].DTag);
  2640. regReadIntegerParameter(pAdapter, &STRIPPortClassifier07_DTag,
  2641. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2642. CLASSIFIER_DTAG_MAX,
  2643. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag,
  2644. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[7].DTag);
  2645. regReadIntegerParameter(pAdapter, &STRIPPortClassifier08_DTag,
  2646. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2647. CLASSIFIER_DTAG_MAX,
  2648. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag,
  2649. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[8].DTag);
  2650. regReadIntegerParameter(pAdapter, &STRIPPortClassifier09_DTag,
  2651. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2652. CLASSIFIER_DTAG_MAX,
  2653. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag,
  2654. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[9].DTag);
  2655. regReadIntegerParameter(pAdapter, &STRIPPortClassifier10_DTag,
  2656. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2657. CLASSIFIER_DTAG_MAX,
  2658. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag,
  2659. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[10].DTag);
  2660. regReadIntegerParameter(pAdapter, &STRIPPortClassifier11_DTag,
  2661. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2662. CLASSIFIER_DTAG_MAX,
  2663. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag,
  2664. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[11].DTag);
  2665. regReadIntegerParameter(pAdapter, &STRIPPortClassifier12_DTag,
  2666. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2667. CLASSIFIER_DTAG_MAX,
  2668. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag,
  2669. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[12].DTag);
  2670. regReadIntegerParameter(pAdapter, &STRIPPortClassifier13_DTag,
  2671. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2672. CLASSIFIER_DTAG_MAX,
  2673. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag,
  2674. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[13].DTag);
  2675. regReadIntegerParameter(pAdapter, &STRIPPortClassifier14_DTag,
  2676. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2677. CLASSIFIER_DTAG_MAX,
  2678. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag,
  2679. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[14].DTag);
  2680. regReadIntegerParameter(pAdapter, &STRIPPortClassifier15_DTag,
  2681. CLASSIFIER_DTAG_DEF, CLASSIFIER_DTAG_MIN,
  2682. CLASSIFIER_DTAG_MAX,
  2683. sizeof p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag,
  2684. (PUCHAR)&p->ctrlDataInitParams.ClsfrInitParam.ClsfrTable[15].DTag);
  2685. break;
  2686. }
  2687. /* ---------------------------
  2688. Traffic Intensity Threshold
  2689. ---------------------------*/
  2690. regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresHigh,
  2691. CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_DEF,
  2692. CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MIN,
  2693. CTRL_DATA_TRAFFIC_THRESHOLD_HIGH_MAX,
  2694. sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold,
  2695. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uHighThreshold);
  2696. regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresLow,
  2697. CTRL_DATA_TRAFFIC_THRESHOLD_LOW_DEF,
  2698. CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MIN,
  2699. CTRL_DATA_TRAFFIC_THRESHOLD_LOW_MAX,
  2700. sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold,
  2701. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.uLowThreshold);
  2702. regReadIntegerParameter(pAdapter, &STRTrafficIntensityTestInterval,
  2703. CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_DEF,
  2704. CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MIN,
  2705. CTRL_DATA_TRAFFIC_THRESHOLD_INTERVAL_MAX,
  2706. sizeof p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval,
  2707. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThreshold.TestInterval);
  2708. regReadIntegerParameter(pAdapter, &STRTrafficIntensityThresholdEnabled,
  2709. CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_DEF,
  2710. CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MIN,
  2711. CTRL_DATA_TRAFFIC_THRESHOLD_ENABLED_MAX,
  2712. sizeof p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled,
  2713. (PUCHAR)&p->ctrlDataInitParams.ctrlDataTrafficThresholdEnabled);
  2714. regReadIntegerParameter(pAdapter, &STRTrafficMonitorMinIntervalPercentage,
  2715. TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_DEF,
  2716. TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MIN,
  2717. TRAFFIC_MONITOR_MIN_INTERVAL_PERCENT_MAX,
  2718. sizeof(BOOL), (PUCHAR)&p->trafficMonitorMinIntervalPercentage);
  2719. regReadIntegerParameter(pAdapter, &STRWMEEnable,
  2720. WME_ENABLED_DEF, WME_ENABLED_MIN,
  2721. WME_ENABLED_MAX,
  2722. sizeof p->qosMngrInitParams.wmeEnable,
  2723. (PUCHAR)&p->qosMngrInitParams.wmeEnable);
  2724. regReadIntegerParameter(pAdapter, &STRTrafficAdmCtrlEnable,
  2725. QOS_TRAFFIC_ADM_CTRL_ENABLED_DEF, QOS_TRAFFIC_ADM_CTRL_ENABLED_MIN,
  2726. QOS_TRAFFIC_ADM_CTRL_ENABLED_MAX,
  2727. sizeof p->qosMngrInitParams.trafficAdmCtrlEnable,
  2728. (PUCHAR)&p->qosMngrInitParams.trafficAdmCtrlEnable);
  2729. regReadIntegerParameter(pAdapter, &STRdesiredPsMode,
  2730. QOS_DESIRED_PS_MODE_DEF, QOS_DESIRED_PS_MODE_MIN,
  2731. QOS_DESIRED_PS_MODE_MAX,
  2732. sizeof p->qosMngrInitParams.desiredPsMode,
  2733. (PUCHAR)&p->qosMngrInitParams.desiredPsMode);
  2734. regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBE,
  2735. QOS_MSDU_LIFE_TIME_BE_DEF, QOS_MSDU_LIFE_TIME_BE_MIN,
  2736. QOS_MSDU_LIFE_TIME_BE_MAX,
  2737. sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE],
  2738. (PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BE]);
  2739. regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeBK,
  2740. QOS_MSDU_LIFE_TIME_BK_DEF, QOS_MSDU_LIFE_TIME_BK_MIN,
  2741. QOS_MSDU_LIFE_TIME_BK_MAX,
  2742. sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK],
  2743. (PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_BK]);
  2744. regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVI,
  2745. QOS_MSDU_LIFE_TIME_VI_DEF, QOS_MSDU_LIFE_TIME_VI_MIN,
  2746. QOS_MSDU_LIFE_TIME_VI_MAX,
  2747. sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI],
  2748. (PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VI]);
  2749. regReadIntegerParameter(pAdapter, &STRQOSmsduLifeTimeVO,
  2750. QOS_MSDU_LIFE_TIME_VO_DEF, QOS_MSDU_LIFE_TIME_VO_MIN,
  2751. QOS_MSDU_LIFE_TIME_VO_MAX,
  2752. sizeof p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO],
  2753. (PUCHAR)&p->qosMngrInitParams.MsduLifeTime[QOS_AC_VO]);
  2754. regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutPsPoll,
  2755. QOS_RX_TIMEOUT_PS_POLL_DEF, QOS_RX_TIMEOUT_PS_POLL_MIN,
  2756. QOS_RX_TIMEOUT_PS_POLL_MAX,
  2757. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.psPoll,
  2758. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.psPoll);
  2759. regReadIntegerParameter(pAdapter, &STRQOSrxTimeOutUPSD,
  2760. QOS_RX_TIMEOUT_UPSD_DEF, QOS_RX_TIMEOUT_UPSD_MIN,
  2761. QOS_RX_TIMEOUT_UPSD_MAX,
  2762. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.UPSD,
  2763. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.rxTimeOut.UPSD);
  2764. /* Note: The PsPoll wait timeout should be aligned with the UPSD setting */
  2765. /* p->PowerMgrInitParams.HwPsPollResponseTimeout = (UINT8)p->qosMngrInitParams.rxTimeout.UPSD;*/
  2766. regReadIntegerParameter(pAdapter, &STRQOStxQueue0Size,
  2767. QOS_TX_QUEUE0_SIZE_DEF, QOS_TX_QUEUE0_SIZE_MIN,
  2768. QOS_TX_QUEUE0_SIZE_MAX,
  2769. sizeof p->qosMngrInitParams.TxQueueSize[0],
  2770. (PUCHAR)&p->qosMngrInitParams.TxQueueSize[0]);
  2771. regReadIntegerParameter(pAdapter, &STRQOStxQueue1Size,
  2772. QOS_TX_QUEUE1_SIZE_DEF, QOS_TX_QUEUE1_SIZE_MIN,
  2773. QOS_TX_QUEUE1_SIZE_MAX,
  2774. sizeof p->qosMngrInitParams.TxQueueSize[1],
  2775. (PUCHAR)&p->qosMngrInitParams.TxQueueSize[1]);
  2776. regReadIntegerParameter(pAdapter, &STRQOStxQueue2Size,
  2777. QOS_TX_QUEUE2_SIZE_DEF, QOS_TX_QUEUE2_SIZE_MIN,
  2778. QOS_TX_QUEUE2_SIZE_MAX,
  2779. sizeof p->qosMngrInitParams.TxQueueSize[2],
  2780. (PUCHAR)&p->qosMngrInitParams.TxQueueSize[2]);
  2781. regReadIntegerParameter(pAdapter, &STRQOStxQueue3Size,
  2782. QOS_TX_QUEUE3_SIZE_DEF, QOS_TX_QUEUE3_SIZE_MIN,
  2783. QOS_TX_QUEUE3_SIZE_MAX,
  2784. sizeof p->qosMngrInitParams.TxQueueSize[3],
  2785. (PUCHAR)&p->qosMngrInitParams.TxQueueSize[3]);
  2786. regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBE,
  2787. QOS_WME_PS_MODE_BE_DEF, QOS_WME_PS_MODE_BE_MIN,
  2788. QOS_WME_PS_MODE_BE_MAX,
  2789. sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE],
  2790. (PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BE]);
  2791. regReadIntegerParameter(pAdapter, &STRQOSwmePsModeBK,
  2792. QOS_WME_PS_MODE_BK_DEF, QOS_WME_PS_MODE_BK_MIN,
  2793. QOS_WME_PS_MODE_BK_MAX,
  2794. sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK],
  2795. (PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_BK]);
  2796. regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVI,
  2797. QOS_WME_PS_MODE_VI_DEF, QOS_WME_PS_MODE_VI_MIN,
  2798. QOS_WME_PS_MODE_VI_MAX,
  2799. sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI],
  2800. (PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VI]);
  2801. regReadIntegerParameter(pAdapter, &STRQOSwmePsModeVO,
  2802. QOS_WME_PS_MODE_VO_DEF, QOS_WME_PS_MODE_VO_MIN,
  2803. QOS_WME_PS_MODE_VO_MAX,
  2804. sizeof p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO],
  2805. (PUCHAR)&p->qosMngrInitParams.desiredWmeAcPsMode[QOS_AC_VO]);
  2806. /* HW Tx queues buffers allocation high threshold */
  2807. regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntBE,
  2808. QOS_TX_BLKS_HIGH_PRCNT_BE_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2809. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2810. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BE],
  2811. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BE]);
  2812. regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntBK,
  2813. QOS_TX_BLKS_HIGH_PRCNT_BK_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2814. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2815. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BK],
  2816. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_BK]);
  2817. regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntVI,
  2818. QOS_TX_BLKS_HIGH_PRCNT_VI_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2819. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2820. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VI],
  2821. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VI]);
  2822. regReadIntegerParameter(pAdapter, &STRQOStxBlksHighPrcntVO,
  2823. QOS_TX_BLKS_HIGH_PRCNT_VO_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2824. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2825. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VO],
  2826. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksHighPercentPerAc[QOS_AC_VO]);
  2827. /* HW Tx queues buffers allocation low threshold */
  2828. regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntBE,
  2829. QOS_TX_BLKS_LOW_PRCNT_BE_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2830. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2831. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BE],
  2832. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BE]);
  2833. regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntBK,
  2834. QOS_TX_BLKS_LOW_PRCNT_BK_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2835. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2836. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BK],
  2837. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_BK]);
  2838. regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntVI,
  2839. QOS_TX_BLKS_LOW_PRCNT_VI_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2840. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2841. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VI],
  2842. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VI]);
  2843. regReadIntegerParameter(pAdapter, &STRQOStxBlksLowPrcntVO,
  2844. QOS_TX_BLKS_LOW_PRCNT_VO_DEF, QOS_TX_BLKS_HIGH_PRCNT_MIN,
  2845. QOS_TX_BLKS_HIGH_PRCNT_MAX,
  2846. sizeof p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VO],
  2847. (PUCHAR)&p->TnetwDrv_InitParams.whalCtrl_init.TxBlocksLowPercentPerAc[QOS_AC_VO]);
  2848. regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBE,
  2849. QOS_SHORT_RETRY_LIMIT_BE_DEF, QOS_SHORT_RETRY_LIMIT_BE_MIN,
  2850. QOS_SHORT_RETRY_LIMIT_BE_MAX,
  2851. sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE],
  2852. (PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BE]);
  2853. regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitBK,
  2854. QOS_SHORT_RETRY_LIMIT_BK_DEF, QOS_SHORT_RETRY_LIMIT_BK_MIN,
  2855. QOS_SHORT_RETRY_LIMIT_BK_MAX,
  2856. sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK],
  2857. (PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_BK]);
  2858. regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVI,
  2859. QOS_SHORT_RETRY_LIMIT_VI_DEF, QOS_SHORT_RETRY_LIMIT_VI_MIN,
  2860. QOS_SHORT_RETRY_LIMIT_VI_MAX,
  2861. sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI],
  2862. (PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VI]);
  2863. regReadIntegerParameter(pAdapter, &STRQOSShortRetryLimitVO,
  2864. QOS_SHORT_RETRY_LIMIT_VO_DEF, QOS_SHORT_RETRY_LIMIT_VO_MIN,
  2865. QOS_SHORT_RETRY_LIMIT_VO_MAX,
  2866. sizeof p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO],
  2867. (PUCHAR)&p->qosMngrInitParams.ShortRetryLimit[QOS_AC_VO]);
  2868. regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBE,
  2869. QOS_LONG_RETRY_LIMIT_BE_DEF, QOS_LONG_RETRY_LIMIT_BE_MIN,
  2870. QOS_LONG_RETRY_LIMIT_BE_MAX,
  2871. sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE],
  2872. (PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BE]);
  2873. regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitBK,
  2874. QOS_LONG_RETRY_LIMIT_BK_DEF, QOS_LONG_RETRY_LIMIT_BK_MIN,
  2875. QOS_LONG_RETRY_LIMIT_BK_MAX,
  2876. sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK],
  2877. (PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_BK]);
  2878. regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVI,
  2879. QOS_LONG_RETRY_LIMIT_VI_DEF, QOS_LONG_RETRY_LIMIT_VI_MIN,
  2880. QOS_LONG_RETRY_LIMIT_VI_MAX,
  2881. sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI],
  2882. (PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VI]);
  2883. regReadIntegerParameter(pAdapter, &STRQOSLongRetryLimitVO,
  2884. QOS_LONG_RETRY_LIMIT_VO_DEF, QOS_LONG_RETRY_LIMIT_VO_MIN,
  2885. QOS_LONG_RETRY_LIMIT_VO_MAX,
  2886. sizeof p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO],
  2887. (PUCHAR)&p->qosMngrInitParams.LongRetryLimit[QOS_AC_VO]);
  2888. regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBE,
  2889. QOS_ACK_POLICY_BE_DEF, QOS_ACK_POLICY_BE_MIN,
  2890. QOS_ACK_POLICY_BE_MAX,
  2891. sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BE],
  2892. (PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BE]);
  2893. regReadIntegerParameter(pAdapter, &STRQOSAckPolicyBK,
  2894. QOS_ACK_POLICY_BK_DEF, QOS_ACK_POLICY_BK_MIN,
  2895. QOS_ACK_POLICY_BK_MAX,
  2896. sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_BK],
  2897. (PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_BK]);
  2898. regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVI,
  2899. QOS_ACK_POLICY_VI_DEF, QOS_ACK_POLICY_VI_MIN,
  2900. QOS_ACK_POLICY_VI_MAX,
  2901. sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VI],
  2902. (PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VI]);
  2903. regReadIntegerParameter(pAdapter, &STRQOSAckPolicyVO,
  2904. QOS_ACK_POLICY_VO_DEF, QOS_ACK_POLICY_VO_MIN,
  2905. QOS_ACK_POLICY_VO_MAX,
  2906. sizeof p->qosMngrInitParams.acAckPolicy[QOS_AC_VO],
  2907. (PUCHAR)&p->qosMngrInitParams.acAckPolicy[QOS_AC_VO]);
  2908. regReadIntegerParameter(pAdapter, &STRQoSqueue0OverFlowPolicy,
  2909. QOS_QUEUE_0_OVFLOW_POLICY_DEF, QOS_QUEUE_0_OVFLOW_POLICY_MIN,
  2910. QOS_QUEUE_0_OVFLOW_POLICY_MAX,
  2911. sizeof p->qosMngrInitParams.QueueOvFlowPolicy[0],
  2912. (PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[0]);
  2913. regReadIntegerParameter(pAdapter, &STRQoSqueue1OverFlowPolicy,
  2914. QOS_QUEUE_1_OVFLOW_POLICY_DEF, QOS_QUEUE_1_OVFLOW_POLICY_MIN,
  2915. QOS_QUEUE_1_OVFLOW_POLICY_MAX,
  2916. sizeof p->qosMngrInitParams.QueueOvFlowPolicy[1],
  2917. (PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[1]);
  2918. regReadIntegerParameter(pAdapter, &STRQoSqueue2OverFlowPolicy,
  2919. QOS_QUEUE_2_OVFLOW_POLICY_DEF, QOS_QUEUE_2_OVFLOW_POLICY_MIN,
  2920. QOS_QUEUE_2_OVFLOW_POLICY_MAX,
  2921. sizeof p->qosMngrInitParams.QueueOvFlowPolicy[2],
  2922. (PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[2]);
  2923. regReadIntegerParameter(pAdapter, &STRQoSqueue3OverFlowPolicy,
  2924. QOS_QUEUE_3_OVFLOW_POLICY_DEF, QOS_QUEUE_3_OVFLOW_POLICY_MIN,
  2925. QOS_QUEUE_3_OVFLOW_POLICY_MAX,
  2926. sizeof p->qosMngrInitParams.QueueOvFlowPolicy[3],
  2927. (PUCHAR)&p->qosMngrInitParams.QueueOvFlowPolicy[3]);
  2928. /* Packet Burst parameters */
  2929. regReadIntegerParameter(pAdapter, &STRQOSPacketBurstEnable,
  2930. QOS_PACKET_BURST_ENABLE_DEF, QOS_PACKET_BURST_ENABLE_MIN,
  2931. QOS_PACKET_BURST_ENABLE_MAX,
  2932. sizeof p->qosMngrInitParams.PacketBurstEnable,
  2933. (PUCHAR)&p->qosMngrInitParams.PacketBurstEnable);
  2934. PRINTF(DBG_REGISTRY,( "STRQOSPacketBurstEnable = %d\n", p->qosMngrInitParams.PacketBurstEnable));
  2935. regReadIntegerParameter(pAdapter, &STRQOSPacketBurstTxOpLimit,
  2936. QOS_PACKET_BURST_TXOP_LIMIT_DEF, QOS_PACKET_BURST_TXOP_LIMIT_MIN,
  2937. QOS_PACKET_BURST_TXOP_LIMIT_MAX,
  2938. sizeof p->qosMngrInitParams.PacketBurstTxOpLimit,
  2939. (PUCHAR)&p->qosMngrInitParams.PacketBurstTxOpLimit);
  2940. /*---------------------------
  2941. Measurement parameters
  2942. -----------------------------*/
  2943. regReadIntegerParameter(pAdapter, &STRMeasurTrafficThreshold,
  2944. MEASUREMENT_TRAFFIC_THRSHLD_DEF, MEASUREMENT_TRAFFIC_THRSHLD_MIN, MEASUREMENT_TRAFFIC_THRSHLD_MAX,
  2945. sizeof p->measurementInitParams.trafficIntensityThreshold,
  2946. (PUCHAR)&p->measurementInitParams.trafficIntensityThreshold);
  2947. regReadIntegerParameter(pAdapter, &STRMeasurMaxDurationOnNonServingChannel,
  2948. MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_DEF, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MIN, MEASUREMENT_MAX_DUR_NON_SRV_CHANNEL_MAX,
  2949. sizeof p->measurementInitParams.maxDurationOnNonServingChannel,
  2950. (PUCHAR)&p->measurementInitParams.maxDurationOnNonServingChannel);
  2951. /*---------------------------
  2952. EXC Manager parameters
  2953. -----------------------------*/
  2954. #ifdef EXC_MODULE_INCLUDED
  2955. regReadIntegerParameter(pAdapter, &STRExcModeEnabled,
  2956. EXC_MNGR_ENABLE_DEF, EXC_MNGR_ENABLE_MIN, EXC_MNGR_ENABLE_MAX,
  2957. sizeof p->excMngrParams.excEnabled,
  2958. (PUCHAR)&p->excMngrParams.excEnabled);
  2959. p->measurementInitParams.excEnabled = p->excMngrParams.excEnabled;
  2960. #endif
  2961. regReadIntegerParameter(pAdapter, &STRExcTestIgnoreDeAuth0,
  2962. EXC_TEST_IGNORE_DEAUTH_0_DEF, EXC_TEST_IGNORE_DEAUTH_0_MIN, EXC_TEST_IGNORE_DEAUTH_0_MAX,
  2963. sizeof p->apConnParams.ignoreDeauthReason0,
  2964. (PUCHAR)&p->apConnParams.ignoreDeauthReason0);
  2965. /*---------------------------
  2966. EEPROM less support
  2967. -----------------------------*/
  2968. regReadIntegerParameter(pAdapter, &STREEPROMlessModeSupported,
  2969. HAL_CTRL_EEPROMLESS_ENABLE_DEF, HAL_CTRL_EEPROMLESS_ENABLE_MIN,
  2970. HAL_CTRL_EEPROMLESS_ENABLE_MAX,
  2971. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable,
  2972. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable);
  2973. pAdapter->EepromSupported = p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlEepromLessEnable;
  2974. regReadStringParameter(pAdapter, &STRstationMacAddress,
  2975. (PCHAR)(defStaMacAddress), 11,
  2976. (PUCHAR)staMACAddress, &regMACstrLen);
  2977. /*reads the arp ip from table*/
  2978. regReadStringParameter(pAdapter ,&STRArp_Ip_Addr,
  2979. (PCHAR)(defArpIpAddress),REG_ARP_IP_ADDR_STR_LEN,
  2980. (PUCHAR)staArpIpAddress,&regArpIpStrLen ) ;
  2981. regReadIntegerParameter(pAdapter, &STRArp_Ip_Filter_Ena,
  2982. DEF_FILTER_ENABLE_VALUE, MIN_FILTER_ENABLE_VALUE, MAX_FILTER_ENABLE_VALUE,
  2983. sizeof p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled,
  2984. (PUCHAR)&p->TnetwDrv_InitParams.arpIpFilterParams.isFilterEnabled);
  2985. regConvertStringtoIpAddress(staArpIpAddress, (PUCHAR)&(p->TnetwDrv_InitParams.arpIpFilterParams.arpIpInitParams.addr[0]) );
  2986. initRadioValusFromRgstryString( (PCHAR)(staMACAddress),
  2987. (PCHAR)&(p->TnetwDrv_InitParams.whalCtrl_init.StaMacAddress[0]),
  2988. 6);
  2989. /*fource FragThreshold to be even value (round it down)MR WLAN00003501*/
  2990. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold &= 0xFFFE;
  2991. /*----------------------------------
  2992. Health Monitor registry init
  2993. ------------------------------------*/
  2994. /* this time out is common to HealthCheck and TX power adjust */
  2995. regReadIntegerParameter(pAdapter, &STRHealthMonitorCheckPeriod,
  2996. DEF_TX_POWER_ADJUST_TIME_OUT, 0, 65000, /* in msec */
  2997. sizeof p->healthMonitorInitParams.healthCheckPeriod,
  2998. (PUCHAR)&p->healthMonitorInitParams.healthCheckPeriod);
  2999. /* No scan complete recovery enabled */
  3000. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledNoScanComplete,
  3001. 1, 0, 1, /* default is enabled */
  3002. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]),
  3003. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ NO_SCAN_COMPLETE_FAILURE ]) );
  3004. /* Mailbox failure recovery enabled */
  3005. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMboxFailure,
  3006. 1, 0, 1, /* default is enabled */
  3007. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]),
  3008. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MBOX_FAILURE ]) );
  3009. /* HW awake failure recovery enabled */
  3010. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledHwAwakeFailure,
  3011. 1, 0, 1, /* default is enabled */
  3012. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]),
  3013. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ HW_AWAKE_FAILURE ]) );
  3014. /* Bus error recovery enabled */
  3015. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledBusError,
  3016. 1, 0, 1, /* default is enabled */
  3017. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_ERROR ]),
  3018. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ BUS_ERROR ]) );
  3019. /* Device error recovery enabled */
  3020. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledDeviceError,
  3021. 1, 0, 1, /* default is enabled */
  3022. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ DEVICE_ERROR ]),
  3023. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ DEVICE_ERROR ]) );
  3024. /* TX stuck recovery enabled */
  3025. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledTxStuck,
  3026. 1, 0, 1, /* default is enabled */
  3027. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]),
  3028. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ TX_STUCK ]) );
  3029. /* disconnect timeout recovery enabled */
  3030. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledDisconnectTimeout,
  3031. 0, 0, 1, /* default is enabled */
  3032. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]),
  3033. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ DISCONNECT_TIMEOUT ]) );
  3034. /* Power save failure recovery enabled */
  3035. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledPowerSaveFailure,
  3036. 1, 0, 1, /* default is enabled */
  3037. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]),
  3038. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ POWER_SAVE_FAILURE ]) );
  3039. /* Measurement failure recovery enabled */
  3040. regReadIntegerParameter(pAdapter, &STRRecoveryEnabledMeasurementFailure,
  3041. 1, 0, 1, /* default is enabled */
  3042. sizeof (p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]),
  3043. (PUCHAR)&(p->healthMonitorInitParams.recoveryTriggerEnabled[ MEASUREMENT_FAILURE ]) );
  3044. /*-----------------------------------*/
  3045. /* Hardware ACI recovery */
  3046. /*-----------------------------------*/
  3047. regReadIntegerParameter(pAdapter, &STRHardwareACIMode,
  3048. HAL_CTRL_ACI_MODE_DEF, HAL_CTRL_ACI_MODE_MIN,
  3049. HAL_CTRL_ACI_MODE_MAX,
  3050. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlACIMode,
  3051. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlACIMode);
  3052. regReadIntegerParameter(pAdapter, &STRHardwareACIInputCCA,
  3053. HAL_CTRL_ACI_INPUT_CCA_DEF, HAL_CTRL_ACI_INPUT_CCA_MIN,
  3054. HAL_CTRL_ACI_INPUT_CCA_MAX,
  3055. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlInputCCA,
  3056. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlInputCCA);
  3057. regReadIntegerParameter(pAdapter, &STRHardwareACIQualifiedCCA,
  3058. HAL_CTRL_ACI_QUALIFIED_CCA_DEF, HAL_CTRL_ACI_QUALIFIED_CCA_MIN,
  3059. HAL_CTRL_ACI_QUALIFIED_CCA_MAX,
  3060. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlQualifiedCCA,
  3061. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlQualifiedCCA);
  3062. regReadIntegerParameter(pAdapter, &STRHardwareACIStompForRx,
  3063. HAL_CTRL_ACI_STOMP_FOR_RX_DEF, HAL_CTRL_ACI_STOMP_FOR_RX_MIN,
  3064. HAL_CTRL_ACI_STOMP_FOR_RX_MAX,
  3065. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForRx,
  3066. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForRx);
  3067. regReadIntegerParameter(pAdapter, &STRHardwareACIStompForTx,
  3068. HAL_CTRL_ACI_STOMP_FOR_TX_DEF, HAL_CTRL_ACI_STOMP_FOR_TX_MIN,
  3069. HAL_CTRL_ACI_STOMP_FOR_TX_MAX,
  3070. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForTx,
  3071. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlStompForTx);
  3072. regReadIntegerParameter(pAdapter, &STRHardwareACITxCCA,
  3073. HAL_CTRL_ACI_TX_CCA_DEF, HAL_CTRL_ACI_TX_CCA_MIN,
  3074. HAL_CTRL_ACI_TX_CCA_MAX,
  3075. sizeof p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCCA,
  3076. (PUCHAR)&p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlTxCCA);
  3077. /*----------------------------------
  3078. TX power adjust
  3079. ------------------------------------*/
  3080. regReadIntegerParameter(pAdapter, &STRTxPowerCheckTime,
  3081. 1, 1, 1200, /* in units of 5000 ms */
  3082. sizeof p->siteMgrInitParams.TxPowerCheckTime,
  3083. (PUCHAR)&p->siteMgrInitParams.TxPowerCheckTime);
  3084. regReadIntegerParameter(pAdapter, &STRTxPowerControlOn,
  3085. 1, 0, 1, /* on/off (1/0) default is on */
  3086. sizeof p->siteMgrInitParams.TxPowerControlOn,
  3087. (PUCHAR)&p->siteMgrInitParams.TxPowerControlOn);
  3088. regReadIntegerParameter(pAdapter, &STRTxPowerRssiThresh,
  3089. 38, 0, 200, /* the value is positive and will be translated by driver */
  3090. sizeof p->siteMgrInitParams.TxPowerRssiThresh,
  3091. (PUCHAR)&p->siteMgrInitParams.TxPowerRssiThresh);
  3092. regReadIntegerParameter(pAdapter, &STRTxPowerRssiRestoreThresh,
  3093. 45, 0, 200, /* the value is positive and will be translated by driver */
  3094. sizeof p->siteMgrInitParams.TxPowerRssiRestoreThresh,
  3095. (PUCHAR)&p->siteMgrInitParams.TxPowerRssiRestoreThresh);
  3096. regReadIntegerParameter(pAdapter, &STRTxPowerTempRecover,
  3097. MIN_TX_POWER, MIN_TX_POWER, MAX_TX_POWER, /* Set Min value for Atheros fix */
  3098. sizeof p->regulatoryDomainInitParams.uTemporaryTxPower,
  3099. (PUCHAR)&p->regulatoryDomainInitParams.uTemporaryTxPower);
  3100. /*----------------------------------
  3101. end of TX power adjust
  3102. ------------------------------------*/
  3103. /*----------------------------------
  3104. Scan Concentrator
  3105. ------------------------------------*/
  3106. regReadIntegerParameter( pAdapter, &STRPassiveScanDwellTime,
  3107. SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_DEF, SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_MIN, SCAN_CNCN_DRIVER_DEFAULT_DWELL_TIME_MAX,
  3108. sizeof p->scanConcentratorInitParams.passiveScanDwellTime,
  3109. (PUCHAR)&p->scanConcentratorInitParams.passiveScanDwellTime );
  3110. //TRS: Scan changes from TI
  3111. regReadIntegerParameter( pAdapter, &STRMinimumDurationBetweenOidScans,
  3112. SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_DEF, SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_MIN, SCAN_CNCN_MIN_DURATION_FOR_OID_SCANS_MAX,
  3113. sizeof p->scanConcentratorInitParams.minimumDurationBetweenOidScans,
  3114. (PUCHAR)&p->scanConcentratorInitParams.minimumDurationBetweenOidScans );
  3115. //TRS: end ofScan changes from TI
  3116. /*
  3117. * set etherMaxPayloadSize parameter for MTU size setting
  3118. */
  3119. if(p->ctrlDataInitParams.ctrlDataFourXEnable == TRUE)
  3120. {
  3121. if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_ANY)
  3122. {
  3123. /*disable 4x if we are in any mode*/
  3124. p->ctrlDataInitParams.ctrlDataFourXEnable = FALSE;
  3125. pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
  3126. }
  3127. else
  3128. if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_INDEPENDENT)
  3129. {
  3130. pAdapter->etherMaxPayloadSize = IBSS_FOUR_X_MODE_PAYLOAD_SIZE;
  3131. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlRtsThreshold = HAL_CTRL_RTS_THRESHOLD_MAX;
  3132. p->TnetwDrv_InitParams.halCtrlConfigParams.halCtrlFragThreshold = HAL_CTRL_FRAG_THRESHOLD_MAX;
  3133. p->ctrlDataInitParams.ctrlDataFourXEnable = FALSE;
  3134. }
  3135. else
  3136. if(p->siteMgrInitParams.siteMgrDesiredBSSType == BSS_INFRASTRUCTURE)
  3137. {
  3138. pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
  3139. }
  3140. }
  3141. else
  3142. {
  3143. pAdapter->etherMaxPayloadSize = NOT_FOUR_X_MODE_PAYLOAD_SIZE;
  3144. }
  3145. }
  3146. /*-----------------------------------------------------------------------------
  3147. Routine Name:
  3148. regReadParameters
  3149. Routine Description:
  3150. Arguments:
  3151. Return Value:
  3152. None
  3153. -----------------------------------------------------------------------------*/
  3154. VOID
  3155. regReadIntegerParameter(
  3156. PTIWLN_ADAPTER_T pAdapter,
  3157. PNDIS_STRING pParameterName,
  3158. ULONG defaultValue,
  3159. ULONG minValue,
  3160. ULONG maxValue,
  3161. UCHAR parameterSize,
  3162. PUCHAR pParameter
  3163. )
  3164. {
  3165. PNDIS_CONFIGURATION_PARAMETER RetValue;
  3166. NDIS_STATUS Status;
  3167. ULONG value;
  3168. NdisReadConfiguration(&Status, &RetValue,
  3169. pAdapter->ConfigHandle, pParameterName,
  3170. NdisParameterInteger);
  3171. if(Status != NDIS_STATUS_SUCCESS) {
  3172. NdisReadConfiguration(&Status, &RetValue,
  3173. pAdapter->ConfigHandle, pParameterName,
  3174. NdisParameterString
  3175. );
  3176. if(Status == NDIS_STATUS_SUCCESS) {
  3177. assignRegValue(&value, RetValue);
  3178. RetValue->ParameterData.IntegerData = value;
  3179. }
  3180. }
  3181. if (Status != NDIS_STATUS_SUCCESS ||
  3182. RetValue->ParameterData.IntegerData < minValue ||
  3183. RetValue->ParameterData.IntegerData > maxValue)
  3184. {
  3185. PRINTF(DBG_REGISTRY,( "NdisReadConfiguration fail\n"));
  3186. value = defaultValue;
  3187. } else
  3188. {
  3189. value = RetValue->ParameterData.IntegerData;
  3190. }
  3191. switch (parameterSize)
  3192. {
  3193. case 1:
  3194. *((PUCHAR) pParameter) = (UCHAR) value;
  3195. break;
  3196. case 2:
  3197. *((PUSHORT) pParameter) = (USHORT) value;
  3198. break;
  3199. case 4:
  3200. *((PULONG) pParameter) = (ULONG) value;
  3201. break;
  3202. default:
  3203. PRINT(DBG_REGISTRY_ERROR, "TIWL: Illegal Registry parameter size\n");
  3204. break;
  3205. }
  3206. }
  3207. /*-----------------------------------------------------------------------------
  3208. Routine Name:
  3209. regReadParameters
  3210. Routine Description:
  3211. Arguments:
  3212. Return Value:
  3213. None
  3214. -----------------------------------------------------------------------------*/
  3215. VOID
  3216. regReadStringParameter(
  3217. PTIWLN_ADAPTER_T pAdapter,
  3218. PNDIS_STRING pParameterName,
  3219. PCHAR pDefaultValue,
  3220. USHORT defaultLen,
  3221. PUCHAR pParameter,
  3222. void* pParameterSize
  3223. )
  3224. {
  3225. PNDIS_CONFIGURATION_PARAMETER RetValue;
  3226. NDIS_STATUS Status;
  3227. ANSI_STRING ansiString;
  3228. PUCHAR pSizeChar = 0;
  3229. PUSHORT pSizeShort = 0;
  3230. if(defaultLen <= 256)
  3231. {
  3232. pSizeChar = (PUCHAR)pParameterSize;
  3233. ansiString.MaximumLength = 256;
  3234. }
  3235. else
  3236. {
  3237. pSizeShort = (PUSHORT)pParameterSize;
  3238. ansiString.MaximumLength = 32576;
  3239. }
  3240. NdisReadConfiguration(&Status, &RetValue,
  3241. pAdapter->ConfigHandle, pParameterName,
  3242. NdisParameterString);
  3243. if (Status == NDIS_STATUS_SUCCESS)
  3244. {
  3245. ansiString.Buffer = (PCHAR)pParameter;
  3246. NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData);
  3247. if(defaultLen <= 256)
  3248. *pSizeChar = (UCHAR)ansiString.Length;
  3249. else
  3250. *pSizeShort = (USHORT)ansiString.Length;
  3251. } else
  3252. {
  3253. if(defaultLen <= 256)
  3254. *pSizeChar = (UCHAR)defaultLen;
  3255. else
  3256. *pSizeShort = (USHORT)defaultLen;
  3257. memcpy(pParameter, pDefaultValue, defaultLen);
  3258. }
  3259. PRINTF(DBG_REGISTRY_LOUD, ("Read String Registry: %c%c%c%c%c%c%c%c%c%c%c%c = %s\n",
  3260. pParameterName->Buffer[0],
  3261. pParameterName->Buffer[1],
  3262. pParameterName->Buffer[2],
  3263. pParameterName->Buffer[3],
  3264. pParameterName->Buffer[4],
  3265. pParameterName->Buffer[5],
  3266. pParameterName->Buffer[6],
  3267. pParameterName->Buffer[7],
  3268. pParameterName->Buffer[8],
  3269. pParameterName->Buffer[9],
  3270. pParameterName->Buffer[10],
  3271. pParameterName->Buffer[11],
  3272. pParameter));
  3273. }
  3274. /*-----------------------------------------------------------------------------
  3275. Routine Name:
  3276. regReadParameters
  3277. Routine Description:
  3278. Arguments:
  3279. Return Value:
  3280. None
  3281. -----------------------------------------------------------------------------*/
  3282. VOID
  3283. regReadUnicodeStringParameter(
  3284. PTIWLN_ADAPTER_T pAdapter,
  3285. PNDIS_STRING pParameterName,
  3286. PCHAR pDefaultValue,
  3287. UCHAR defaultLen,
  3288. PUCHAR pParameter,
  3289. PUCHAR pParameterSize
  3290. )
  3291. {
  3292. PNDIS_CONFIGURATION_PARAMETER RetValue;
  3293. NDIS_STATUS Status;
  3294. NdisReadConfiguration(&Status, &RetValue,
  3295. pAdapter->ConfigHandle, pParameterName,
  3296. NdisParameterString);
  3297. if (Status == NDIS_STATUS_SUCCESS)
  3298. {
  3299. *pParameterSize = (UCHAR)RetValue->ParameterData.StringData.Length;
  3300. memcpy(pParameter, (PUCHAR)RetValue->ParameterData.StringData.Buffer, *pParameterSize);
  3301. } else
  3302. {
  3303. *pParameterSize = defaultLen;
  3304. memcpy(pParameter, pDefaultValue, defaultLen);
  3305. }
  3306. }
  3307. /*-----------------------------------------------------------------------------
  3308. Routine Name:
  3309. regReadParameters
  3310. Routine Description:
  3311. Arguments:
  3312. Return Value:
  3313. None
  3314. -----------------------------------------------------------------------------*/
  3315. VOID
  3316. regReadWepKeyParameter(
  3317. PTIWLN_ADAPTER_T pAdapter,
  3318. PUCHAR pKeysStructure,
  3319. UINT8 defaultKeyId
  3320. )
  3321. {
  3322. NDIS_STATUS status;
  3323. securityKeys_t *pSecKeys;
  3324. int i;
  3325. int len;
  3326. UCHAR Buf[MAX_KEY_BUFFER_LEN];
  3327. PNDIS_CONFIGURATION_PARAMETER RetValue;
  3328. ANSI_STRING ansiString;
  3329. NDIS_STRING STRdot11DefaultWEPKey[4] =
  3330. { NDIS_STRING_CONST( "dot11WEPDefaultKey1" ),
  3331. NDIS_STRING_CONST( "dot11WEPDefaultKey2" ),
  3332. NDIS_STRING_CONST( "dot11WEPDefaultKey3" ),
  3333. NDIS_STRING_CONST( "dot11WEPDefaultKey4" )
  3334. };
  3335. PRINTF(DBG_REGISTRY_LOUD, ("Reading WEP keys\n"));
  3336. pSecKeys = (securityKeys_t*)pKeysStructure;
  3337. /**/
  3338. /* Read WEP from registry*/
  3339. /**/
  3340. for ( i = 0; i < DOT11_MAX_DEFAULT_WEP_KEYS; i++ )
  3341. {
  3342. NdisReadConfiguration(&status, &RetValue,
  3343. pAdapter->ConfigHandle, &STRdot11DefaultWEPKey[i],
  3344. NdisParameterString);
  3345. if(status == NDIS_STATUS_SUCCESS)
  3346. {
  3347. ansiString.Buffer = (PCHAR)Buf;
  3348. ansiString.MaximumLength = MAX_KEY_BUFFER_LEN;
  3349. pSecKeys->keyIndex = i;
  3350. pSecKeys->keyType = WEP_KEY;
  3351. NdisZeroMemory((void *)pSecKeys->macAddress.addr, 6);
  3352. if(((char *)(RetValue->ParameterData.StringData.Buffer))[1] == 0)
  3353. {
  3354. NdisUnicodeStringToAnsiString(&ansiString, &RetValue->ParameterData.StringData);
  3355. len = decryptWEP((PCHAR)Buf, (PCHAR)pSecKeys->encKey, ansiString.Length);
  3356. } else {
  3357. len = decryptWEP((PCHAR)RetValue->ParameterData.StringData.Buffer,
  3358. (PCHAR)pSecKeys->encKey,
  3359. RetValue->ParameterData.StringData.Length);
  3360. }
  3361. if(len < ACX_64BITS_WEP_KEY_LENGTH_BYTES)
  3362. {
  3363. PRINTF(DBG_REGISTRY_ERROR, ("Error: minimum WEP key size is 5 bytes(%d)\n", len));
  3364. pSecKeys->keyType = NULL_KEY;
  3365. len = 0;
  3366. }
  3367. else if(len < ACX_128BITS_WEP_KEY_LENGTH_BYTES)
  3368. {
  3369. len = ACX_64BITS_WEP_KEY_LENGTH_BYTES;
  3370. }
  3371. else if(len < ACX_256BITS_WEP_KEY_LENGTH_BYTES)
  3372. {
  3373. len = ACX_128BITS_WEP_KEY_LENGTH_BYTES;
  3374. }
  3375. else
  3376. len = ACX_256BITS_WEP_KEY_LENGTH_BYTES;
  3377. pSecKeys->encLen = (UINT8)len;
  3378. } else
  3379. {
  3380. pSecKeys->keyType = NULL_KEY;
  3381. pSecKeys->encLen = 0;
  3382. }
  3383. /*create local keys cache*/
  3384. pAdapter->DefaultWepKeys[i].KeyIndex = i;
  3385. if(i==defaultKeyId)
  3386. pAdapter->DefaultWepKeys[i].KeyIndex |= 0x80000000;
  3387. pAdapter->DefaultWepKeys[i].KeyLength = pSecKeys->encLen;
  3388. NdisMoveMemory((void *)pAdapter->DefaultWepKeys[i].KeyMaterial,
  3389. (void *)pSecKeys->encKey, pSecKeys->encLen);
  3390. pAdapter->DefaultWepKeys[i].Length = sizeof(OS_802_11_WEP);
  3391. pSecKeys++;
  3392. }
  3393. }
  3394. #define iswhite(c) ( (c==' ') || (c=='\t') || (c=='\n') )
  3395. /*
  3396. *
  3397. * Fun: isnumber
  3398. *
  3399. * Desc: check if the ascii character is a number in the given base
  3400. *
  3401. * Ret: 1 if number is a digit, 0 if not.
  3402. *
  3403. * Notes: none
  3404. *
  3405. * File: btoi.c
  3406. *
  3407. */
  3408. BOOLEAN
  3409. isnumber ( short *pi, char c, short base )
  3410. {
  3411. /* return 1 if c is a digit in the give base, else return 0 */
  3412. /* place value of digit at pi */
  3413. if ( base == 16 )
  3414. {
  3415. if ( '0' <= c && c <= '9' )
  3416. {
  3417. *pi = c - '0';
  3418. return (1);
  3419. }
  3420. else if ( 'a' <= c && c <= 'f' )
  3421. {
  3422. *pi = c - 'a' + 10 ;
  3423. return (1);
  3424. }
  3425. else if ( 'A' <= c && c <= 'F' )
  3426. {
  3427. *pi = c - 'A' + 10 ;
  3428. return (1);
  3429. }
  3430. else
  3431. {
  3432. return (0);
  3433. }
  3434. }
  3435. c -= '0';
  3436. if ( 0 <= (signed char)c && c < base )
  3437. {
  3438. *pi = c ;
  3439. return (1);
  3440. }
  3441. else
  3442. {
  3443. return (0);
  3444. }
  3445. } /* end of isnumber */
  3446. short
  3447. _btoi ( char *sptr, short slen, int *pi, short base )
  3448. {
  3449. char *s, c ;
  3450. short d, sign ;
  3451. int result ;
  3452. char saved ;
  3453. s = sptr ;
  3454. result = 0 ;
  3455. saved = sptr [slen];
  3456. sptr [slen] = '\0';
  3457. /* skip initial white space */
  3458. /* while ( (c = *s++) && iswhite(c) ); */
  3459. do
  3460. {
  3461. c = *s++;
  3462. if (!(c && iswhite(c)))
  3463. break;
  3464. }while(1);
  3465. --s ;
  3466. /* recognize optional sign */
  3467. if ( *s == '-' )
  3468. {
  3469. sign = - 1 ;
  3470. s++ ;
  3471. }
  3472. else if ( *s == '+' )
  3473. {
  3474. sign = 1 ;
  3475. s++ ;
  3476. }
  3477. else
  3478. {
  3479. sign = 1 ;
  3480. }
  3481. /* recognize optional hex# prefix */
  3482. if ((base == 16) && ((*s == '0') && ((*(s + 1) == 'x') || (*(s + 1) == 'X'))
  3483. ))
  3484. s += 2 ;
  3485. /* recognize digits */
  3486. /* for (; (c = *s++) && isnumber(&d, c, base) ; )
  3487. {
  3488. result = base * result + d ;
  3489. }
  3490. */
  3491. while(1)
  3492. {
  3493. c = *s++;
  3494. if (!(c && isnumber(&d, c, base)))
  3495. break;
  3496. result = base * result + d ;
  3497. };
  3498. *pi = sign * result ;
  3499. sptr [slen] = saved ; /* restore character which we changed to null */
  3500. return (s - sptr - 1);
  3501. } /* end of _btoi */
  3502. static int decryptWEP
  3503. (
  3504. PCHAR pSrc,
  3505. PCHAR pDst,
  3506. ULONG len
  3507. )
  3508. {
  3509. /**/
  3510. /* key to use for encryption*/
  3511. /**/
  3512. static LPCSTR lpEncryptKey = "jkljz98c&2>a+t)cl5[d=n3;\"f_um6\\d~v%$HO1";
  3513. int cnEncryptLen = strlen(lpEncryptKey);
  3514. char cIn, cCrypt, cHex[3];
  3515. int i, j, nLen;
  3516. int nPos;
  3517. nLen = len / 2;
  3518. nPos = len;
  3519. /* start reading from end*/
  3520. nPos = len - 2;
  3521. for(i = 0; (i < nLen) && (nPos >= 0); i++, nPos -= 2)
  3522. {
  3523. /* get hex character*/
  3524. cHex[0] = pSrc[nPos];
  3525. cHex[1] = pSrc[nPos + 1];
  3526. cHex[2] = 0;
  3527. _btoi ( cHex, 2, &j, 16);
  3528. cIn = (char) j;
  3529. cCrypt = lpEncryptKey[i % cnEncryptLen];
  3530. cIn = cIn ^ cCrypt;
  3531. pDst[i] = cIn;
  3532. }
  3533. PRINTF(DBG_REGISTRY_LOUD, ("First 5 bytes of WEP: %x-%x-%x-%x-%x\n",
  3534. pDst[0],
  3535. pDst[1],
  3536. pDst[2],
  3537. pDst[3],
  3538. pDst[4]));
  3539. return nLen;
  3540. }
  3541. static VOID initRadioValusFromRgstryString
  3542. (
  3543. PCHAR pSrc,
  3544. PCHAR pDst,
  3545. ULONG len
  3546. )
  3547. {
  3548. int j;
  3549. ULONG count;
  3550. for (count = 0 ; count < len ; count++)
  3551. {
  3552. _btoi((char *) (pSrc+(count*3)), 2, &j, 16 );
  3553. pDst[count] = (UINT8) j;
  3554. }
  3555. }
  3556. /*-----------------------------------------------------------------------------
  3557. Routine Name:
  3558. regReadParameters
  3559. Routine Description:
  3560. Arguments:
  3561. Return Value:
  3562. None
  3563. -----------------------------------------------------------------------------*/
  3564. VOID
  3565. regReadParameters(
  3566. PTIWLN_ADAPTER_T pAdapter
  3567. )
  3568. {
  3569. NDIS_STRING SlotNumberStr = NDIS_STRING_CONST("SlotNumber");
  3570. PNDIS_CONFIGURATION_PARAMETER RetValue;
  3571. NDIS_STATUS Status;
  3572. NdisReadConfiguration(&Status, &RetValue,
  3573. pAdapter->ConfigHandle, &SlotNumberStr,
  3574. NdisParameterInteger);
  3575. if (Status != NDIS_STATUS_SUCCESS)
  3576. pAdapter->SlotNumber = 0;
  3577. else
  3578. pAdapter->SlotNumber = RetValue->ParameterData.IntegerData;
  3579. PRINTF(DBG_REGISTRY_VERY_LOUD, ("TIWL: SlotNumber-%ld\n", pAdapter->SlotNumber));
  3580. }
  3581. /*-----------------------------------------------------------------------------
  3582. Routine Name:
  3583. regWriteInstanceNumber
  3584. Routine Description:
  3585. Arguments:
  3586. Return Value:
  3587. None
  3588. -----------------------------------------------------------------------------*/
  3589. VOID
  3590. regWriteInstanceNumber(
  3591. PTIWLN_ADAPTER_T pAdapter
  3592. )
  3593. {
  3594. #ifdef _WINDOWS
  3595. #endif /* _WINDOWS */
  3596. }
  3597. #ifdef TI_DBG
  3598. VOID
  3599. regReadLastDbgState(
  3600. PTIWLN_ADAPTER_T pAdapter
  3601. )
  3602. {
  3603. NDIS_STRING OsDbgStr = NDIS_STRING_CONST("OsDbgState");
  3604. PNDIS_CONFIGURATION_PARAMETER Value;
  3605. NDIS_STATUS Status;
  3606. NdisReadConfiguration(&Status, &Value,
  3607. pAdapter->ConfigHandle, &OsDbgStr,
  3608. NdisParameterInteger
  3609. );
  3610. if (Status != NDIS_STATUS_SUCCESS)
  3611. {
  3612. TiDebugFlag = ((DBG_NDIS_OIDS | DBG_INIT | DBG_RECV | DBG_SEND | DBG_IOCTL | DBG_INTERRUPT) << 16) |
  3613. DBG_SEV_VERY_LOUD | DBG_SEV_INFO | DBG_SEV_LOUD | DBG_SEV_ERROR | DBG_SEV_FATAL_ERROR;
  3614. } else
  3615. {
  3616. PRINTF(DBG_REGISTRY_VERY_LOUD, ("TIWL: New Flag - 0x%lX\n", Value->ParameterData.IntegerData));
  3617. TiDebugFlag = Value->ParameterData.IntegerData;
  3618. }
  3619. }
  3620. VOID
  3621. regWriteLastDbgState(
  3622. PTIWLN_ADAPTER_T pAdapter
  3623. )
  3624. {
  3625. NDIS_STRING OsDbgStr = NDIS_STRING_CONST("OsDbgState");
  3626. NDIS_CONFIGURATION_PARAMETER Value;
  3627. NDIS_STATUS Status;
  3628. Value.ParameterType = NdisParameterInteger;
  3629. Value.ParameterData.IntegerData = TiDebugFlag;
  3630. NdisWriteConfiguration(&Status, pAdapter->ConfigHandle,
  3631. &OsDbgStr, &Value);
  3632. }
  3633. #endif
  3634. static void readRates(PTIWLN_ADAPTER_T pAdapter, initTable_t *pInitTable)
  3635. {
  3636. /*
  3637. ** B band
  3638. */
  3639. regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_B,
  3640. BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11,
  3641. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE],
  3642. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_B_MODE]);
  3643. regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_B,
  3644. SUPPORTED_RATE_SET_1_2_5_5_11_22, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_1_2_5_5_11_22,
  3645. sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE],
  3646. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_B_MODE]);
  3647. /*
  3648. ** G band (B&G rates)
  3649. */
  3650. regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_G,
  3651. BASIC_RATE_SET_1_2_5_5_11, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2_5_5_11,
  3652. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE],
  3653. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_G_MODE]);
  3654. regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_G,
  3655. SUPPORTED_RATE_SET_ALL, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL,
  3656. sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE],
  3657. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_G_MODE]);
  3658. /*
  3659. ** A band
  3660. */
  3661. regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_A,
  3662. BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24, BASIC_RATE_SET_6_12_24,
  3663. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE],
  3664. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_A_MODE]);
  3665. regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_A,
  3666. SUPPORTED_RATE_SET_UP_TO_54, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_UP_TO_54,
  3667. sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE],
  3668. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_A_MODE]);
  3669. /*
  3670. ** Dual band (A&G)
  3671. */
  3672. regReadIntegerParameter(pAdapter, &STRdot11BasicRateMask_AG,
  3673. BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2, BASIC_RATE_SET_1_2,
  3674. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE],
  3675. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryBasicRate[DOT11_DUAL_MODE]);
  3676. regReadIntegerParameter(pAdapter, &STRdot11SupportedRateMask_AG,
  3677. SUPPORTED_RATE_SET_ALL_OFDM, SUPPORTED_RATE_SET_1_2, SUPPORTED_RATE_SET_ALL_OFDM,
  3678. sizeof pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE],
  3679. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstrySuppRate[DOT11_DUAL_MODE]);
  3680. /* Tx Rate */
  3681. regReadIntegerParameter(pAdapter, &STRdot11DesiredTxRate,
  3682. REG_RATE_AUTO_BIT, REG_RATE_AUTO_BIT, REG_RATE_54M_OFDM_BIT,
  3683. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredTxRate,
  3684. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredTxRate);
  3685. /* Management & Ctrl Tx rate Selection (Fix rate/MinBasic/Max basic) */
  3686. regReadIntegerParameter(pAdapter, &STRdot11MgmtCtrlTxRateSelection,
  3687. MAX_BASIC_TX_RATE, MIN_BASIC_TX_RATE, SPECIFIC_TX_RATE,
  3688. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRateOption,
  3689. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRateOption);
  3690. /* Management & Ctrl Tx rate (HW generated packets) */
  3691. regReadIntegerParameter(pAdapter, &STRdot11MgmtCtrlTxRate,
  3692. REG_RATE_2M_BIT, REG_RATE_1M_BIT, REG_RATE_54M_OFDM_BIT,
  3693. sizeof pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRate,
  3694. (PUCHAR)&pInitTable->siteMgrInitParams.siteMgrRegstryDesiredMgmtCtrlTxRate);
  3695. }
  3696. static void decryptScanControlTable(PUCHAR src, PUCHAR dst, USHORT len)
  3697. {
  3698. USHORT i;
  3699. int parityFlag = 0;
  3700. char tmp = 0;
  3701. char finalChar = 0;
  3702. for(i=0; i < len; i++)
  3703. {
  3704. switch(src[i])
  3705. {
  3706. case 'A':
  3707. case 'a':
  3708. tmp = 10;
  3709. break;
  3710. case 'B':
  3711. case 'b':
  3712. tmp = 11;
  3713. break;
  3714. case 'C':
  3715. case 'c':
  3716. tmp = 12;
  3717. break;
  3718. case 'D':
  3719. case 'd':
  3720. tmp = 13;
  3721. break;
  3722. case 'E':
  3723. case 'e':
  3724. tmp = 14;
  3725. break;
  3726. case 'F':
  3727. case 'f':
  3728. tmp = 15;
  3729. break;
  3730. default:
  3731. if( (src[i] >='0') && (src[i] <= '9') )
  3732. tmp = (src[i] - '0');
  3733. else
  3734. return; /* ERROR input char */
  3735. }
  3736. if(parityFlag == 0)
  3737. finalChar = tmp << 4;
  3738. else
  3739. {
  3740. finalChar |= (tmp & 0x0f);
  3741. dst[i/2] = finalChar;
  3742. }
  3743. parityFlag = 1-parityFlag;
  3744. }
  3745. }
  3746. VOID regReadNetworkAddress(PTIWLN_ADAPTER_T pAdapter)
  3747. {
  3748. NDIS_STATUS Status;
  3749. PVOID pvNetworkAddress;
  3750. UINT cbNetworkAddress;
  3751. NdisReadNetworkAddress( &Status, &pvNetworkAddress, &cbNetworkAddress, pAdapter->ConfigHandle );
  3752. if ( ( NDIS_STATUS_SUCCESS == Status ) && ( ETH_ADDR_SIZE == cbNetworkAddress ) ) {
  3753. NdisMoveMemory( pAdapter->CurrentAddr, pvNetworkAddress, ETH_ADDR_SIZE);
  3754. pAdapter->bCurrentAddrFromRegistry = TRUE;
  3755. }
  3756. }
  3757. /*-----------------------------------------------------------------------------
  3758. Routine Name:
  3759. regReadIntegerTable
  3760. Routine Description:
  3761. reads any table format and insert it to another string.
  3762. the delimiters of the tables can be:
  3763. - space (" ")
  3764. - comma (",")
  3765. the table reads only integers thus its reads the following chars:
  3766. - "0" till "9"
  3767. - minus sign ("-")
  3768. Arguments:
  3769. Return Value:
  3770. zero on success else - error number.
  3771. -----------------------------------------------------------------------------*/
  3772. UINT32
  3773. regReadIntegerTable(
  3774. PTIWLN_ADAPTER_T pAdapter,
  3775. PNDIS_STRING pParameterName,
  3776. PCHAR pDefaultValue,
  3777. USHORT defaultLen,
  3778. PUCHAR pParameter
  3779. )
  3780. {
  3781. UINT32 parameterIndex = 0;
  3782. int myNumber;
  3783. UINT32 index;
  3784. UINT32 bufferSize = 0;
  3785. char tempBuffer[15];
  3786. char *pTempBuffer = tempBuffer;
  3787. UINT32 tempBufferIndex = 0;
  3788. BOOL isDigit;
  3789. BOOL numberReady;
  3790. BOOL isSign;
  3791. BOOL endOfLine;
  3792. UINT32 debugInfo = 0;
  3793. CHAR Buffer[MAX_KEY_BUFFER_LEN];
  3794. PCHAR pBuffer = (PCHAR)&Buffer;
  3795. regReadStringParameter(pAdapter,
  3796. pParameterName,
  3797. pDefaultValue,
  3798. defaultLen,
  3799. (PUCHAR)pBuffer,
  3800. &bufferSize);
  3801. index=0;
  3802. do { /* Parsing one line */
  3803. isSign = FALSE;
  3804. isDigit = FALSE;
  3805. numberReady = FALSE;
  3806. tempBufferIndex = 0;
  3807. endOfLine = FALSE;
  3808. while ((numberReady==FALSE) && (index<bufferSize))
  3809. {
  3810. /* Parsing one number */
  3811. switch (pBuffer[index])
  3812. {
  3813. case '0':
  3814. case '1':
  3815. case '2':
  3816. case '3':
  3817. case '4':
  3818. case '5':
  3819. case '6':
  3820. case '7':
  3821. case '8':
  3822. case '9':
  3823. pTempBuffer[tempBufferIndex] = pBuffer[index];
  3824. ++tempBufferIndex;
  3825. isDigit = TRUE;
  3826. break;
  3827. case '-':
  3828. pTempBuffer[tempBufferIndex] = pBuffer[index];
  3829. ++tempBufferIndex;
  3830. if (isDigit==TRUE)
  3831. {
  3832. PRINTF(DBG_REGISTRY_INFO, ("Error in read parameter %c in line index %d\n\
  3833. The sign '-' isn't in place!\n",pBuffer[index],index));
  3834. debugInfo = 1;
  3835. }
  3836. isSign = TRUE;
  3837. break;
  3838. case ' ':
  3839. case '\t': /* tab char */
  3840. /* for space discard*/
  3841. if ((isDigit==FALSE) && (isSign==FALSE))
  3842. {
  3843. break;
  3844. }
  3845. /*
  3846. else we are continue to the code of the case ','
  3847. */
  3848. case '\0':
  3849. endOfLine = TRUE;
  3850. case ',':
  3851. /* end of number reading */
  3852. pTempBuffer[tempBufferIndex] = '\0';
  3853. if (isDigit == FALSE)
  3854. {
  3855. PRINTF(DBG_REGISTRY_INFO, ("Error in end of number delimiter. number isn't ready.\
  3856. check index %d",index));
  3857. debugInfo = 2;
  3858. }
  3859. numberReady = TRUE;
  3860. break;
  3861. default:
  3862. PRINTF(DBG_REGISTRY_INFO, ("%s(%d) Error - unexpected parameter %c.\n",
  3863. __FILE__,__LINE__,pBuffer[index]));
  3864. debugInfo = 3;
  3865. break;
  3866. }/* switch( pBuffer[index] ) */
  3867. if (debugInfo != 0)
  3868. {
  3869. return debugInfo;
  3870. }
  3871. ++index;
  3872. }/* while (numberReady==FALSE)*/
  3873. if (pTempBuffer[0] == '-')
  3874. {
  3875. ++pTempBuffer;
  3876. myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex-1);
  3877. myNumber = -(myNumber);
  3878. }
  3879. else
  3880. {
  3881. myNumber = tiwlnstrtoi(pTempBuffer,tempBufferIndex);
  3882. }
  3883. pParameter[parameterIndex] = myNumber;
  3884. ++parameterIndex;
  3885. }while ((index<bufferSize)&&(endOfLine==FALSE));
  3886. return debugInfo;
  3887. }
  3888. void assignRegValue(PULONG lValue, PNDIS_CONFIGURATION_PARAMETER ndisParameter)
  3889. {
  3890. char b[8];
  3891. ANSI_STRING a = {0, 0, 0};
  3892. a.MaximumLength = sizeof(b);
  3893. a.Buffer=(PCHAR)b;
  3894. if(ndisParameter->ParameterData.StringData.Length <= sizeof (b) * 2)
  3895. {
  3896. if ( ((char *)(ndisParameter->ParameterData.StringData.Buffer))[1] == 0 )
  3897. {
  3898. NdisUnicodeStringToAnsiString ( &a, &(ndisParameter)->ParameterData.StringData );
  3899. *lValue = tiwlnstrtoi ( (char *)a.Buffer, a.Length );
  3900. } else {
  3901. *lValue = tiwlnstrtoi ( (char *)(ndisParameter->ParameterData.StringData.Buffer), ndisParameter->ParameterData.StringData.Length);
  3902. }
  3903. } else {
  3904. *lValue = 0;
  3905. }
  3906. }
  3907. /*-----------------------------------------------------------------------------
  3908. Routine Name:
  3909. regConvertStringtoIpAddress
  3910. Routine Description: Converts the Ip Adrress in a form of string readen from the Registry
  3911. to the Ip Address Array to be stored in the init_table struct
  3912. Arguments:
  3913. Return Value:
  3914. None
  3915. -----------------------------------------------------------------------------*/
  3916. void regConvertStringtoIpAddress(UINT8 *staIpAddressString,UINT8 *IpAddressArray)
  3917. {
  3918. char *ptr;
  3919. UINT8 *tmpIpAddr;
  3920. UINT8 value=0,value_l,value_h,add_value;
  3921. int i;
  3922. /* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
  3923. ptr=(char *)staIpAddressString;
  3924. tmpIpAddr = IpAddressArray;
  3925. #if 0
  3926. for(i=0 ; i<4 ; ptr++)
  3927. {
  3928. value_l = (*ptr-'0');
  3929. /* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
  3930. if( value_l < 9)
  3931. {
  3932. value = value*10 + value_l;
  3933. /* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
  3934. }
  3935. else
  3936. {
  3937. tmpIpAddr[i] = value;
  3938. /* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
  3939. value = 0;
  3940. i++;
  3941. }
  3942. }
  3943. #else
  3944. for(i=0 ; i<4 ; ptr++)
  3945. {
  3946. /* The value can be or "0-9" or from "a-f" */
  3947. value_l = (*ptr-'0');
  3948. value_h = (*ptr - 'a');
  3949. /*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
  3950. if( (value_l <= 9) || (value_h <= 15 ) )
  3951. {
  3952. /* We are in an expected range */
  3953. /* nCheck if 0-9 */
  3954. if(value_l <= 9 )
  3955. {
  3956. add_value = value_l;
  3957. }
  3958. /* Check if a-f */
  3959. else
  3960. {
  3961. /* 'a' is in fact 10 decimal in hexa */
  3962. add_value = value_h + 10;
  3963. }
  3964. value = value*16 + add_value;
  3965. /* PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
  3966. }
  3967. else
  3968. {
  3969. tmpIpAddr[i] = value;
  3970. /* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
  3971. value = 0;
  3972. i++;
  3973. }
  3974. }
  3975. #endif
  3976. }
  3977. /*-----------------------------------------------------------------------------
  3978. Routine Name:
  3979. regConvertStringtoIpAddress
  3980. Routine Description: Converts the Ip Adrress in a form of string readen from the Registry
  3981. to the Ip Address Array to be stored in the init_table struct
  3982. Arguments:
  3983. Return Value:
  3984. None
  3985. -----------------------------------------------------------------------------*/
  3986. void regConvertStringtoBeaconIETable(UINT8 *staIpAddressString,UINT8 *IpAddressArray, UINT8 size)
  3987. {
  3988. char *ptr;
  3989. UINT8 *tmpIpAddr;
  3990. UINT8 value = 0, value_l, value_h, add_value;
  3991. int i, str_len;
  3992. /* Take the pointer to the string MAC Address to convert it to the Array MAC Address */
  3993. ptr = (char *)staIpAddressString;
  3994. tmpIpAddr = IpAddressArray;
  3995. str_len = 3 * size - 1;
  3996. #if 0
  3997. for(i=0 ; i<size ; ptr++)
  3998. {
  3999. value_l = (*ptr-'0');
  4000. /* PRINTF(DBG_REGISTRY,("value_l [%d] *ptr %c value %d\n",value_l,*ptr,value));*/
  4001. if( value_l < 9)
  4002. {
  4003. value = value*10 + value_l;
  4004. /* PRINTF(DBG_REGISTRY,("value %d value_l %d \n",value,value_l));*/
  4005. }
  4006. else
  4007. {
  4008. tmpIpAddr[i] = value;
  4009. /* PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %d\n",i,tmpMacAddr[i]));*/
  4010. value = 0;
  4011. i++;
  4012. }
  4013. }
  4014. #else
  4015. for(i=0;(i < size);ptr++,str_len--)
  4016. {
  4017. if (str_len > 0) {
  4018. /* The value can be or "0-9" or from "a-f" */
  4019. value_l = (*ptr - '0');
  4020. value_h = (*ptr - 'a');
  4021. }
  4022. else { /* last element */
  4023. value_l = value_h = 16;
  4024. }
  4025. /*PRINTF(DBG_REGISTRY,("value_l [%d] value_h [%d] *ptr %c value %d\n",value_l,value_h,*ptr,value));*/
  4026. if( (value_l <= 9) || (value_h <= 15 ) )
  4027. {
  4028. /* We are in an expected range */
  4029. /* nCheck if 0-9 */
  4030. if(value_l <= 9 )
  4031. {
  4032. add_value = value_l;
  4033. }
  4034. /* Check if a-f */
  4035. else
  4036. {
  4037. /* 'a' is in fact 10 decimal in hexa */
  4038. add_value = value_h + 10;
  4039. }
  4040. value = value * 16 + add_value;
  4041. /*PRINTF(DBG_REGISTRY,("value %d add_value %d \n",value,add_value));*/
  4042. }
  4043. else
  4044. {
  4045. tmpIpAddr[i] = value;
  4046. /*PRINTF(DBG_REGISTRY,("tmpMacAddr[%d] is %x\n",i,tmpMacAddr[i]));*/
  4047. value = 0;
  4048. i++;
  4049. }
  4050. }
  4051. #endif
  4052. }
  4053. //TRS:WDK provide callback functions
  4054. #if defined(_WINDOWS)
  4055. #endif
  4056. //TRS end
  4057. static void parse_hex_string(char * pString, tiUINT8 StrLength, tiUINT8 * pBuffer, tiUINT8 * Length)
  4058. {
  4059. char ch;
  4060. int iter = 0;
  4061. while ((iter < StrLength) && ((ch = pString[iter]) != '\0'))
  4062. {
  4063. UINT8 val = ((ch >= '0' && ch <= '9') ? (ch - '0') :
  4064. (ch >= 'A' && ch <= 'F') ? (0xA + ch - 'A') :
  4065. (ch >= 'a' && ch <= 'f') ? (0xA + ch - 'a') : 0);
  4066. /* even indexes go to the lower nibble, odd indexes push them to the */
  4067. /* higher nibble and then go themselves to the lower nibble. */
  4068. if (iter % 2)
  4069. pBuffer[iter / 2] = ((pBuffer[iter / 2] << (BIT_TO_BYTE_FACTOR / 2)) | val);
  4070. else
  4071. pBuffer[iter / 2] = val;
  4072. ++iter;
  4073. }
  4074. /* iter = 0 len = 0, iter = 1 len = 1, iter = 2 len = 1, and so on... */
  4075. *Length = (iter + 1) / 2;
  4076. }
  4077. static void parse_binary_string(char * pString, tiUINT8 StrLength, tiUINT8 * pBuffer, tiUINT8 * Length)
  4078. {
  4079. char ch;
  4080. int iter = 0;
  4081. while ((iter < StrLength) && ((ch = pString[iter]) != '\0'))
  4082. {
  4083. UINT8 val = (ch == '1' ? 1 : 0);
  4084. if (iter % BIT_TO_BYTE_FACTOR)
  4085. pBuffer[iter / BIT_TO_BYTE_FACTOR] |= (val << (iter % BIT_TO_BYTE_FACTOR));
  4086. else
  4087. pBuffer[iter / BIT_TO_BYTE_FACTOR] = val;
  4088. ++iter;
  4089. }
  4090. /* iter = 0 len = 0, iter = 1 len = 1, iter = 8 len = 1, and so on... */
  4091. *Length = (iter + BIT_TO_BYTE_FACTOR - 1) / BIT_TO_BYTE_FACTOR;
  4092. }
  4093. static void parse_filter_request(rxDataFilterRequest_t * request, UINT8 offset, char * mask, UINT8 maskLength, char * pattern, UINT8 patternLength)
  4094. {
  4095. request->offset = offset;
  4096. request->maskLength = request->patternLength = 0;
  4097. if (maskLength > 0)
  4098. {
  4099. parse_binary_string(mask, maskLength, request->mask, &request->maskLength);
  4100. parse_hex_string(pattern, patternLength, request->pattern, &request->patternLength);
  4101. }
  4102. }