linux/drivers/staging/vt6655/card.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 1996, 2003 VIA Networking Technologies, Inc.
   3 * All rights reserved.
   4 *
   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.
   9 *
  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.
  14 *
  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.
  18 *
  19 * File: card.h
  20 *
  21 * Purpose: Provide functions to setup NIC operation mode
  22 *
  23 * Author: Tevin Chen
  24 *
  25 * Date: May 21, 1996
  26 *
  27 */
  28
  29#ifndef __CARD_H__
  30#define __CARD_H__
  31
  32#include "ttype.h"
  33#include <linux/types.h>
  34
  35/*---------------------  Export Definitions -------------------------*/
  36//
  37// Loopback mode
  38//
  39// LOBYTE is MAC LB mode, HIBYTE is MII LB mode
  40#define CARD_LB_NONE            MAKEWORD(MAC_LB_NONE, 0)
  41#define CARD_LB_MAC             MAKEWORD(MAC_LB_INTERNAL, 0)   // PHY must ISO, avoid MAC loopback packet go out
  42#define CARD_LB_PHY             MAKEWORD(MAC_LB_EXT, 0)
  43
  44#define DEFAULT_MSDU_LIFETIME           512  // ms
  45#define DEFAULT_MSDU_LIFETIME_RES_64us  8000 // 64us
  46
  47#define DEFAULT_MGN_LIFETIME            8    // ms
  48#define DEFAULT_MGN_LIFETIME_RES_64us   125  // 64us
  49
  50#define CB_MAX_CHANNEL_24G      14
  51#define CB_MAX_CHANNEL_5G       42 //[20050104] add channel9(5045MHz), 41==>42
  52#define CB_MAX_CHANNEL          (CB_MAX_CHANNEL_24G+CB_MAX_CHANNEL_5G)
  53
  54typedef enum _CARD_PHY_TYPE {
  55        PHY_TYPE_AUTO,
  56        PHY_TYPE_11B,
  57        PHY_TYPE_11G,
  58        PHY_TYPE_11A
  59} CARD_PHY_TYPE, *PCARD_PHY_TYPE;
  60
  61typedef enum _CARD_PKT_TYPE {
  62        PKT_TYPE_802_11_BCN,
  63        PKT_TYPE_802_11_MNG,
  64        PKT_TYPE_802_11_DATA,
  65        PKT_TYPE_802_11_ALL
  66} CARD_PKT_TYPE, *PCARD_PKT_TYPE;
  67
  68typedef enum _CARD_STATUS_TYPE {
  69        CARD_STATUS_MEDIA_CONNECT,
  70        CARD_STATUS_MEDIA_DISCONNECT,
  71        CARD_STATUS_PMKID
  72} CARD_STATUS_TYPE, *PCARD_STATUS_TYPE;
  73
  74typedef enum _CARD_OP_MODE {
  75        OP_MODE_INFRASTRUCTURE,
  76        OP_MODE_ADHOC,
  77        OP_MODE_AP,
  78        OP_MODE_UNKNOWN
  79} CARD_OP_MODE, *PCARD_OP_MODE;
  80
  81/*---------------------  Export Classes  ----------------------------*/
  82
  83/*---------------------  Export Variables  --------------------------*/
  84
  85/*---------------------  Export Functions  --------------------------*/
  86
  87void CARDvSetRSPINF(void *pDeviceHandler, CARD_PHY_TYPE ePHYType);
  88void vUpdateIFS(void *pDeviceHandler);
  89void CARDvUpdateBasicTopRate(void *pDeviceHandler);
  90bool CARDbAddBasicRate(void *pDeviceHandler, unsigned short wRateIdx);
  91bool CARDbIsOFDMinBasicRate(void *pDeviceHandler);
  92void CARDvSetLoopbackMode(unsigned long dwIoBase, unsigned short wLoopbackMode);
  93bool CARDbSoftwareReset(void *pDeviceHandler);
  94void CARDvSetFirstNextTBTT(unsigned long dwIoBase, unsigned short wBeaconInterval);
  95void CARDvUpdateNextTBTT(unsigned long dwIoBase, QWORD qwTSF, unsigned short wBeaconInterval);
  96bool CARDbGetCurrentTSF(unsigned long dwIoBase, PQWORD pqwCurrTSF);
  97QWORD CARDqGetNextTBTT(QWORD qwTSF, unsigned short wBeaconInterval);
  98QWORD CARDqGetTSFOffset(unsigned char byRxRate, QWORD qwTSF1, QWORD qwTSF2);
  99bool CARDbSetTxPower(void *pDeviceHandler, unsigned long ulTxPower);
 100unsigned char CARDbyGetPktType(void *pDeviceHandler);
 101void CARDvSafeResetTx(void *pDeviceHandler);
 102void CARDvSafeResetRx(void *pDeviceHandler);
 103
 104//xxx
 105bool CARDbRadioPowerOff(void *pDeviceHandler);
 106bool CARDbRadioPowerOn(void *pDeviceHandler);
 107//bool CARDbSendPacket(void *pDeviceHandler, void *pPacket, CARD_PKT_TYPE ePktType, unsigned int uLength);
 108bool CARDbIsShortPreamble(void *pDeviceHandler);
 109bool CARDbIsShorSlotTime(void *pDeviceHandler);
 110bool CARDbSetPhyParameter(void *pDeviceHandler, CARD_PHY_TYPE ePHYType, unsigned short wCapInfo, unsigned char byERPField, void *pvSupportRateIEs, void *pvExtSupportRateIEs);
 111bool CARDbUpdateTSF(void *pDeviceHandler, unsigned char byRxRate, QWORD qwBSSTimestamp, QWORD qwLocalTSF);
 112bool CARDbStopTxPacket(void *pDeviceHandler, CARD_PKT_TYPE ePktType);
 113bool CARDbStartTxPacket(void *pDeviceHandler, CARD_PKT_TYPE ePktType);
 114bool CARDbSetBeaconPeriod(void *pDeviceHandler, unsigned short wBeaconInterval);
 115bool CARDbSetBSSID(void *pDeviceHandler, unsigned char *pbyBSSID, CARD_OP_MODE eOPMode);
 116
 117bool
 118CARDbPowerDown(
 119        void *pDeviceHandler
 120);
 121
 122bool CARDbSetTxDataRate(
 123        void *pDeviceHandler,
 124        unsigned short wDataRate
 125);
 126
 127bool CARDbRemoveKey(void *pDeviceHandler, unsigned char *pbyBSSID);
 128
 129bool
 130CARDbAdd_PMKID_Candidate(
 131        void *pDeviceHandler,
 132        unsigned char *pbyBSSID,
 133        bool bRSNCapExist,
 134        unsigned short wRSNCap
 135);
 136
 137void *
 138CARDpGetCurrentAddress(
 139        void *pDeviceHandler
 140);
 141
 142bool
 143CARDbStartMeasure(
 144        void *pDeviceHandler,
 145        void *pvMeasureEIDs,
 146        unsigned int uNumOfMeasureEIDs
 147);
 148
 149bool
 150CARDbChannelSwitch(
 151        void *pDeviceHandler,
 152        unsigned char byMode,
 153        unsigned char byNewChannel,
 154        unsigned char byCount
 155);
 156
 157bool
 158CARDbSetQuiet(
 159        void *pDeviceHandler,
 160        bool bResetQuiet,
 161        unsigned char byQuietCount,
 162        unsigned char byQuietPeriod,
 163        unsigned short wQuietDuration,
 164        unsigned short wQuietOffset
 165);
 166
 167bool
 168CARDbStartQuiet(
 169        void *pDeviceHandler
 170);
 171
 172void
 173CARDvSetPowerConstraint(
 174        void *pDeviceHandler,
 175        unsigned char byChannel,
 176        char byPower
 177);
 178
 179void
 180CARDvGetPowerCapability(
 181        void *pDeviceHandler,
 182        unsigned char *pbyMinPower,
 183        unsigned char *pbyMaxPower
 184);
 185
 186char
 187CARDbyGetTransmitPower(
 188        void *pDeviceHandler
 189);
 190
 191#endif // __CARD_H__
 192