| /* |
| * regulatoryDomain.h |
| * |
| * Copyright(c) 1998 - 2009 Texas Instruments. All rights reserved. |
| * All rights reserved. |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions |
| * are met: |
| * |
| * * Redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer. |
| * * Redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in |
| * the documentation and/or other materials provided with the |
| * distribution. |
| * * Neither the name Texas Instruments nor the names of its |
| * contributors may be used to endorse or promote products derived |
| * from this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| /** \file regulatoryDomain.h |
| * \brief regulatoryDomain module internal header file |
| * |
| * \see regulatoryDomain.c |
| */ |
| |
| /***************************************************************************/ |
| /* */ |
| /* MODULE: regulatoryDomain.h */ |
| /* PURPOSE: regulatoryDomain module internal header file */ |
| /* */ |
| /***************************************************************************/ |
| #ifndef __REGULATORY_DOMAIN_H__ |
| #define __REGULATORY_DOMAIN_H__ |
| |
| #include "paramOut.h" |
| #include "fsm.h" |
| #include "802_11Defs.h" |
| |
| #define BG_24G_BAND_CHANNEL_HOPS 1 |
| #define BG_24G_BAND_MIN_CHANNEL 1 |
| |
| #define A_5G_BAND_CHANNEL_HOPS 4 |
| |
| #define A_5G_BAND_MIN_MIDDLE_BAND_DFS_CHANNEL 52 |
| #define A_5G_BAND_MAX_MIDDLE_BAND_DFS_CHANNEL 64 |
| #define A_5G_BAND_MIN_UPPER_BAND_DFS_CHANNEL 100 |
| #define A_5G_BAND_MAX_UPPER_BAND_DFS_CHANNEL 140 |
| |
| |
| typedef struct |
| { |
| TI_BOOL channelValidityPassive; /*TI_TRUE-valid, TI_FALSE-invalid */ |
| TI_BOOL channelValidityActive; /*TI_TRUE-valid, TI_FALSE-invalid */ |
| TI_BOOL bChanneInCountryIe; |
| |
| TI_UINT8 uMaxTxPowerDomain; /* |
| * Holds ONLY the default limitation (Application) |
| * or according to 11d country code IE |
| * Updated on init phase or upon receiving new country code IE |
| */ |
| TI_UINT32 timestamp; |
| } channelCapability_t; |
| |
| |
| typedef struct |
| { |
| /* Variables read from registry */ |
| /********************************/ |
| /* 802.11h enabled or disabled */ |
| TI_BOOL spectrumManagementEnabled; |
| /* 802.11d enabled or disabled */ |
| TI_BOOL regulatoryDomainEnabled; |
| /* scan availability channels from registry */ |
| scanControlTable_t scanControlTable; |
| /* Desired Temp Tx Power */ |
| TI_UINT8 uDesiredTemporaryTxPower; |
| /* Actual Temp Tx Power */ |
| TI_UINT8 uTemporaryTxPower; |
| /* User configuration for max Tx power */ |
| TI_UINT8 uUserMaxTxPower; |
| /* Tx Power Control adjustment flag on=TI_TRUE\off=TI_FALSE */ |
| TI_BOOL bTemporaryTxPowerEnable; |
| |
| /* Internal reg domain variables */ |
| /*********************************/ |
| |
| /* Power Constraint IE 32 in DBM/10, valid only when 802.11h is enabled */ |
| TI_UINT8 uPowerConstraint; |
| /* External TX Power Control in DBM/10, valid only when 802.11h is disabled */ |
| TI_UINT8 uExternTxPowerPreferred; |
| |
| TI_UINT8 minDFS_channelNum; |
| TI_UINT8 maxDFS_channelNum; |
| |
| TCountry country24; /* Detected County IE for 2.4 Ghz */ |
| TCountry country5; /* Detected County IE for 5 Ghz */ |
| TI_BOOL country_2_4_WasFound; |
| TI_BOOL country_5_WasFound; |
| TI_UINT32 uLastCountryReceivedTS; |
| TI_UINT32 uTimeOutToResetCountryMs; |
| channelCapability_t supportedChannels_band_5[A_5G_BAND_NUM_CHANNELS]; |
| channelCapability_t supportedChannels_band_2_4[NUM_OF_CHANNELS_24]; |
| |
| /* set the size of the array to max of B_G & A, so that the array doesnt overflow. +3 for word alignment */ |
| TI_UINT8 pDefaultChannels[A_5G_BAND_NUM_CHANNELS+3]; |
| /* merge 4.02/4.03 evaluate the +3 above and adjust or hSiteMgr and below will be |
| will be unaligned accesses. Expect it might now be +1 since 2 UINT8 variable |
| have been added in 4.03 (max and min DFS_channelNum above) */ |
| |
| |
| /* Handles to other objects */ |
| TI_HANDLE hSiteMgr; |
| TI_HANDLE hTWD; |
| TI_HANDLE hSwitchChannel; |
| TI_HANDLE hReport; |
| TI_HANDLE hOs; |
| |
| |
| } regulatoryDomain_t; |
| |
| |
| |
| |
| |
| #endif /* __REGULATORY_DOMAIN_H__*/ |