2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License along
16 * with this program; if not, write to the Free Software Foundation, Inc.,
17 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
21 * Purpose: Provide functions to setup NIC operation mode
33 //#if !defined(__DEVICE_H__)
36 #if !defined(__TTYPE_H__)
43 /*--------------------- Export Definitions -------------------------*/
47 // LOBYTE is MAC LB mode, HIBYTE is MII LB mode
48 #define CARD_LB_NONE MAKEWORD(MAC_LB_NONE, 0)
49 #define CARD_LB_MAC MAKEWORD(MAC_LB_INTERNAL, 0) // PHY must ISO, avoid MAC loopback packet go out
50 #define CARD_LB_PHY MAKEWORD(MAC_LB_EXT, 0)
53 #define DEFAULT_MSDU_LIFETIME 512 // ms
54 #define DEFAULT_MSDU_LIFETIME_RES_64us 8000 // 64us
56 #define DEFAULT_MGN_LIFETIME 8 // ms
57 #define DEFAULT_MGN_LIFETIME_RES_64us 125 // 64us
59 #define CB_MAX_CHANNEL_24G 14
60 #define CB_MAX_CHANNEL_5G 42 //[20050104] add channel9(5045MHz), 41==>42
61 #define CB_MAX_CHANNEL (CB_MAX_CHANNEL_24G+CB_MAX_CHANNEL_5G)
63 typedef enum _CARD_PHY_TYPE {
68 } CARD_PHY_TYPE, *PCARD_PHY_TYPE;
70 typedef enum _CARD_PKT_TYPE {
75 } CARD_PKT_TYPE, *PCARD_PKT_TYPE;
77 typedef enum _CARD_STATUS_TYPE {
78 CARD_STATUS_MEDIA_CONNECT,
79 CARD_STATUS_MEDIA_DISCONNECT,
81 } CARD_STATUS_TYPE, *PCARD_STATUS_TYPE;
83 typedef enum _CARD_OP_MODE {
84 OP_MODE_INFRASTRUCTURE,
88 } CARD_OP_MODE, *PCARD_OP_MODE;
92 /*--------------------- Export Classes ----------------------------*/
94 /*--------------------- Export Variables --------------------------*/
96 /*--------------------- Export Functions --------------------------*/
98 extern "C" { /* Assume C declarations for C++ */
99 #endif /* __cplusplus */
101 BOOL ChannelValid(UINT CountryCode, UINT ChannelIndex);
102 void CARDvSetRSPINF(PVOID pDeviceHandler, CARD_PHY_TYPE ePHYType);
103 void vUpdateIFS(PVOID pDeviceHandler);
104 void CARDvUpdateBasicTopRate(PVOID pDeviceHandler);
105 BOOL CARDbAddBasicRate(PVOID pDeviceHandler, WORD wRateIdx);
106 BOOL CARDbIsOFDMinBasicRate(PVOID pDeviceHandler);
107 void CARDvSetLoopbackMode(DWORD_PTR dwIoBase, WORD wLoopbackMode);
108 BOOL CARDbSoftwareReset(PVOID pDeviceHandler);
109 void CARDvSetFirstNextTBTT(DWORD_PTR dwIoBase, WORD wBeaconInterval);
110 void CARDvUpdateNextTBTT(DWORD_PTR dwIoBase, QWORD qwTSF, WORD wBeaconInterval);
111 BOOL CARDbGetCurrentTSF(DWORD_PTR dwIoBase, PQWORD pqwCurrTSF);
112 QWORD CARDqGetNextTBTT(QWORD qwTSF, WORD wBeaconInterval);
113 QWORD CARDqGetTSFOffset(BYTE byRxRate, QWORD qwTSF1, QWORD qwTSF2);
114 BOOL CARDbSetTxPower(PVOID pDeviceHandler, ULONG ulTxPower);
115 BYTE CARDbyGetPktType(PVOID pDeviceHandler);
116 VOID CARDvSafeResetTx(PVOID pDeviceHandler);
117 VOID CARDvSafeResetRx(PVOID pDeviceHandler);
120 BOOL CARDbRadioPowerOff(PVOID pDeviceHandler);
121 BOOL CARDbRadioPowerOn(PVOID pDeviceHandler);
122 BOOL CARDbSetChannel(PVOID pDeviceHandler, UINT uConnectionChannel);
123 //BOOL CARDbSendPacket(PVOID pDeviceHandler, PVOID pPacket, CARD_PKT_TYPE ePktType, UINT uLength);
124 BOOL CARDbIsShortPreamble(PVOID pDeviceHandler);
125 BOOL CARDbIsShorSlotTime(PVOID pDeviceHandler);
126 BOOL CARDbSetPhyParameter(PVOID pDeviceHandler, CARD_PHY_TYPE ePHYType, WORD wCapInfo, BYTE byERPField, PVOID pvSupportRateIEs, PVOID pvExtSupportRateIEs);
127 BOOL CARDbUpdateTSF(PVOID pDeviceHandler, BYTE byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF);
128 BOOL CARDbStopTxPacket(PVOID pDeviceHandler, CARD_PKT_TYPE ePktType);
129 BOOL CARDbStartTxPacket(PVOID pDeviceHandler, CARD_PKT_TYPE ePktType);
130 BOOL CARDbSetBeaconPeriod(PVOID pDeviceHandler, WORD wBeaconInterval);
131 BOOL CARDbSetBSSID(PVOID pDeviceHandler, PBYTE pbyBSSID, CARD_OP_MODE eOPMode);
138 BOOL CARDbSetTxDataRate(
139 PVOID pDeviceHandler,
144 BOOL CARDbRemoveKey (PVOID pDeviceHandler, PBYTE pbyBSSID);
147 CARDbAdd_PMKID_Candidate (
148 IN PVOID pDeviceHandler,
150 IN BOOL bRSNCapExist,
155 CARDpGetCurrentAddress (
156 IN PVOID pDeviceHandler
160 VOID CARDvInitChannelTable(PVOID pDeviceHandler);
161 BYTE CARDbyGetChannelMapping(PVOID pDeviceHandler, BYTE byChannelNumber, CARD_PHY_TYPE ePhyType);
165 IN PVOID pDeviceHandler,
166 IN PVOID pvMeasureEIDs,
167 IN UINT uNumOfMeasureEIDs
172 IN PVOID pDeviceHandler,
174 IN BYTE byNewChannel,
180 IN PVOID pDeviceHandler,
182 IN BYTE byQuietCount,
183 IN BYTE byQuietPeriod,
184 IN WORD wQuietDuration,
190 IN PVOID pDeviceHandler
194 CARDvSetCountryInfo (
195 IN PVOID pDeviceHandler,
196 IN CARD_PHY_TYPE ePHYType,
201 CARDvSetPowerConstraint (
202 IN PVOID pDeviceHandler,
208 CARDvGetPowerCapability (
209 IN PVOID pDeviceHandler,
210 OUT PBYTE pbyMinPower,
211 OUT PBYTE pbyMaxPower
215 CARDbySetSupportChannels (
216 IN PVOID pDeviceHandler,
221 CARDbyGetTransmitPower (
222 IN PVOID pDeviceHandler
226 CARDbChannelGetList (
227 IN UINT uCountryCodeIdx,
228 OUT PBYTE pbyChannelTable
233 IN PVOID pDeviceHandler,
238 CARDbGetChannelMapInfo(
239 IN PVOID pDeviceHandler,
240 IN UINT uChannelIndex,
241 OUT PBYTE pbyChannelNumber,
246 CARDvSetChannelMapInfo(
247 IN PVOID pDeviceHandler,
248 IN UINT uChannelIndex,
253 CARDvClearChannelMapInfo(
254 IN PVOID pDeviceHandler
258 CARDbyAutoChannelSelect(
259 IN PVOID pDeviceHandler,
260 CARD_PHY_TYPE ePHYType
263 BYTE CARDbyGetChannelNumber(PVOID pDeviceHandler, BYTE byChannelIndex);
266 } /* End of extern "C" { */
267 #endif /* __cplusplus */