⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 card.h

📁 WinCE5.0部分核心源码
💻 H
📖 第 1 页 / 共 2 页
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// This source code is licensed under Microsoft Shared Source License
// Version 1.0 for Windows CE.
// For a copy of the license visit http://go.microsoft.com/fwlink/?LinkId=3223.
//
// Copyright 2001, Cisco Systems, Inc.  All rights reserved.
// No part of this source, or the resulting binary files, may be reproduced,
// transmitted or redistributed in any form or by any means, electronic or
// mechanical, for any purpose, without the express written permission of Cisco.
//
//---------------------------------------------------------------------------
// Card.h
//---------------------------------------------------------------------------
// Description:
//
// Revision History:
//
// Date        
//---------------------------------------------------------------------------
// 10/24/00     jbeaujon        -Initial Revision
//
// 05/04/01     spb001          -Added "fast" initialization option.  By changing
//                               the InitFW() to only reset the device on the 
//                               first call.  InitFW1() must then be called to 
//                               finish the initialization. Subsequent calls to InitFW()
//                               will work as prior to changes.
//
// 05/10/01     spb004          -Work around for network card not sending an updatelinkstatus
//                               interrupt when it should
//
// 07/18/01     spb023          -Added firmware flashing during cbInit for Windows XP
//
// 07/23/01     spb026          -Changed the was firmware flashing is done during
//                               init to a blocking call because it Broke WCZ.  Note
//                               this is an NIDS5 thing only
//
// 08/01/01     spb027          -Added ability to cancel the flash
//
// 08/13/01     raf             -Magic Packet mode addition
//---------------------------------------------------------------------------
//      Card.h
#ifndef __card_h__
#define __card_h__
#include "NDISVER.h"
#include "AiroOid.h"
#include "hwx500.h"
#include "hwx500p.h"
#include "802_11.h"

#define FREQUENCY_DS        0
#define FREQUENCY_HOPPER    1

extern UINT     CardType;       
extern UINT     FrequencyType;      // DS = 0, HOPPER=1 
extern UINT     DriverMajorVersion;  
extern UINT     DriverMinorVersion;     
extern char     *Ver_FileVersionStr;
extern char     *CardName;      
extern char     *DriverName;        

extern char *   VxdLoadName;
extern char *   VxdUnloadName;  

//#define       BOOL    BOOLEAN
//#define       PBOOL   PBOOLEAN
#if DBG
    #if 1
        #define DBGOUT(a)           DbgPrint(a)
        #define DBGOUT2(a,b)        DbgPrint(a,b)
        #define DBGOUT3(a,b,c)      DbgPrint(a,b,c)             
        #define DBGOUT4(a,b,c,d)    DbgPrint(a,b,c,d)
    #endif
    #if 0
        #define PRINT(a)            DbgPrint(a)
        #define PRINT2(a,b)         DbgPrint(a,b)
        #define PRINT3(a,b,c)       DbgPrint(a,b,c)             
        #define PRINT4(a,b,c,d)     DbgPrint(a,b,c,d)

        #define SAY(a)              DbgPrint(a)
        #define SAY2(a,b)           DbgPrint(a,b)
        #define SAY3(a,b,c)         DbgPrint(a,b,c)             
        #define SAY4(a,b,c,d)       DbgPrint(a,b,c,d)

    #else
//  
        #define SAY(a)
        #define SAY2(a,b)
        #define SAY3(a,b,c)
        #define SAY4(a,b,c,d)

        #define PRINT(a)            
        #define PRINT2(a,b)         
        #define PRINT3(a,b,c)                   
        #define PRINT4(a,b,c,d) 

    #endif
#else
        #define SAY(a)
        #define SAY2(a,b)
        #define SAY3(a,b,c)
        #define SAY4(a,b,c,d)
        //      
        #define PRINT(a)            
        #define PRINT2(a,b)     
        #define PRINT3(a,b,c)                       
        #define PRINT4(a,b,c,d) 
        //
        #define DBGOUT(a)           
        #define DBGOUT2(a,b)        
        #define DBGOUT3(a,b,c)      
        #define DBGOUT4(a,b,c,d)    

#endif

#define     DEFAULT_MULTICASTLISTMAX            128
#define     DEFAULT_INTERRUPTNUMBER             5       // Default value for Adapter->InterruptNumber
#define     CIS_ATTRIBMEM_SIZE                  2048    
#define     CTL_ATTRIBMEM_SIZE                  128
#define     ESS_ID1_LENGTH                      33
#define     MAX_CONFIGURATIONS                  100


#define     DEFAULT_MEDIA_DISCONNECT_DAMPER     10
#define     DEFAULT_AUTO_CONFIG_PASSIVE_DAMPER  30
#define     DEFAULT_AUTO_CONFIG_ACTIVE_DAMPER   8


//#include "Core.h"
#include "support.h"
//#include "CardCmd.h"
#include "AiroDef.h"

typedef enum {
    INDICATE_OK,
    SKIPPED,
    ABORT,
    CARD_BAD
} INDICATE_STATUS;

typedef enum {   // magic packet modes
    MP_POWERED,  // running state
    MP_SENT,     // card is enabled, but some oids still need to come through
    MP_ENABLED   // next oids will be after a wakeup
} MP_MODE;


/*
NDIS_ERROR_CODE_RESOURCE_CONFLICT
NDIS_ERROR_CODE_OUT_OF_RESOURCES
NDIS_ERROR_CODE_HARDWARE_FAILURE
NDIS_ERROR_CODE_ADAPTER_NOT_FOUND
NDIS_ERROR_CODE_INTERRUPT_CONNECT
NDIS_ERROR_CODE_DRIVER_FAILURE
NDIS_ERROR_CODE_BAD_VERSION
NDIS_ERROR_CODE_TIMEOUT
NDIS_ERROR_CODE_NETWORK_ADDRESS
NDIS_ERROR_CODE_UNSUPPORTED_CONFIGURATION
NDIS_ERROR_CODE_INVALID_VALUE_FROM_ADAPTER
NDIS_ERROR_CODE_MISSING_CONFIGURATION_PARAMETER
NDIS_ERROR_CODE_BAD_IO_BASE_ADDRESS
NDIS_ERROR_CODE_RECEIVE_SPACE_SMALL
NDIS_ERROR_CODE_ADAPTER_DISABLED
*/
typedef enum {
        RESOURCE_CONFLICT               =0x01,
        OUT_OF_RESOURCES                =0x02,
        HARDWARE_FAILURE                =0x03,
        ADAPTER_NOT_FOUND               =0x04,
        INTERRUPT_CONNECT               =0x05,
        DRIVER_FAILURE                  =0x06,
        BAD_VERSION                     =0x07,
        TIMEOUT                         =0x08,
        _NETWORK_ADDRESS                =0x09,
        UNSUPPORTED_CONFIGURATION       =0x0A,
        INVALID_VALUE_FROM_ADAPTER      =0x0B,
        MISSING_CONFIGURATION_PARAMETER =0x0C,
        BAD_IO_BASE_ADDRESS             =0x0D,
        RECEIVE_SPACE_SMALL             =0x0E,
        ADAPTER_DISABLED                =0x0F,
        VXD_NOTLOADED                   =0x10,
        BAD_ATTRIBMEM_BASE_ADDRESS      =0x11,
}AIRONET_ERRORLOG_CODE;

typedef struct _EXTENDED_PARAMS {
    u16     RxMode;
    u16     FragThreshhold;
    u16     RTSThreshhold;
    u16     ShortRetryLimit;
    u16     LongRetryLimit;
    u16     TxMSDULifetime;
    u16     RxMSDULifetime;
    u16     stationary  ;
    u16     ordering    ;
    u16     ScanMode    ;
    u16     ProbeDelay;
    u16     ProbeEnergyTO;
    u16     ProbeRespTO;
    u16     BeaconListenTO;
    u16     JoinNetTO;
    u16     AuthenTO;
    u16     AuthenType;
    u16     AssociationTO;
    u16     SpecAPTO    ;
    u16     OfflineScanInterv;
    u16     OfflineScanDuar;
    u16     LinkLossDelay;
    u16     MaxBeaconLT;
    u16     ResfreshInterv;
    u16     RcvDTIM ;
    u16     ListenInterv;
    u16     FastListenInterv;
    u16     ListenDecay;
    u16     FastListenDecay;
    u16     BeaconPeriod;
    u16     AtimDuration;
    u16     HopPeriod;
    u16     HopSet;
    u16     HopPattern;
    u16     RadioType;
    u16     Diversity;
    u16     TransmitPower;
    u16     RSSIThreshhold; // 0x76
    u8      NodeName[16];   // 0x80
    u16     ARLThreshhold;  // 0x90
    u16     ARLDecay;       // 0x92
    u16     ARLDelay;       // 0x94
    //----------------------------------------------------
    u16     LM2000Preamble; // 0x78
    u16     LM2000param;    // 0x7a
    u16     LM2000WaitTime; // 0x7c
    u16     LM2000FindRtr;  // 0x7e
    u16     RcvErrors;
    u16     AutoSave;
    u16     RadioConfig;
    u16     timing802_11;
    u16     CWminmax[2];

}EXTENDED_PARAMS;

#define IMAGE_SIZE  (1024 * 128) 

typedef struct  
{
    NDIS_MINIPORT_TIMER m_timer;
    int                 m_Prevdelay;
    int                 m_delay;
    int                 m_Progress;      // -1 = failed, 0 = finished, 1 = in progress 
    int                 m_state;
    void                (*m_FlashStateProc)();
    char                m_ImageBuf[IMAGE_SIZE];
    int                 m_block;
    int                 m_ImageBufOff;
    BOOLEAN             m_useTimer;     //spb026
}FLASH_STRUCT;

typedef struct _D100_LIST_ENTRY {

    LIST_ENTRY  Link;

} D100_LIST_ENTRY, *PD100_LIST_ENTRY;


 
typedef struct  _CARD{
    USHORT              m_SlotNumber;       //PCI slot
    NDIS_MINIPORT_TIMER m_CardTimer;
    BOOLEAN             m_InterruptHandled;
    BOOLEAN             m_CardTimerIsSet;
    USHORT              m_IntActive;
    USHORT              m_IntMask;
    USHORT              m_CmdIntMask;
    USHORT              m_cmd;
    FID                 m_fid;
    FLASH_STRUCT        FlashSt;
    //-----------------------------------------------------------------------
    // 
    //-----------------------------------------------------------------------
    NDIS_HANDLE         m_MAHandle;
    BOOLEAN             m_InitDone;
    BOOLEAN             m_IsFlashing;
    STFLASH_PROGRESS    m_FlashProgress;
    IN NDIS_HANDLE      m_CfgHandle;
    char                m_ImageNameBuf[512];
    NDIS_STRING         m_ImageName;
    char                *m_VxdLoadName;
    char                *m_VxdUnloadName;
    //-----------------------------------------------------------------------
    // CARD HW RESOURCES & THEIR FLAGS
    //-----------------------------------------------------------------------
    BOOLEAN             m_IsMacEnabled; 
    BOOLEAN             m_WasMacEnabled;    
    BOOLEAN             m_IsPolling;    
    BOOLEAN             m_PrevCmdDone;
    int                 m_PrevCmdTick;
    USHORT              m_PrevCommand;
    UINT                m_FrequencyType;        
    UINT                m_CardType;     
    char                m_CardName[32];     
    char                m_DriverName[32];       
    NDIS_MINIPORT_INTERRUPT Interrupt;      // Interrupt object.
    NDIS_INTERFACE_TYPE m_BusType;
    char                m_FormFactor[20];// "PCMCIA", "ISA", "PCI"
    ULONG               m_XmitReg;
    ULONG               m_RcvReg;
    ULONG               m_IOBase;
    USHORT              m_PortIOLen;
    ULONG               m_IOBase8Bit;
    USHORT              m_PortIOLen8Bit;
    ULONG               m_InitialPort;
    ULONG               m_InitialPort8Bit;
    BOOLEAN             m_IsIO;
    BOOLEAN             m_IsIO16;
    PUCHAR              m_MemBase;
    UCHAR               *m_pAttribMemBase;
    UCHAR               m_InterruptNumber;
    UCHAR               *m_XmitMemBase;
    UCHAR               *m_RcvMemBase;
    BOOLEAN             m_InterruptRegistered;
    BOOLEAN             m_IoRegistered;
    BOOLEAN             m_AttribMemRegistered;
    //BOOLEAN               m_SharedMemRegistered;
    ULONG               m_FWVersion;
//    USHORT              m_SoftwareCapabilities; //0x0076
//---------------------- CARD CONFIG VARIABLES
    USHORT              m_RadioChannel;
    UINT                m_MagicPacketMode;
    ULONG               m_PromiscuousMode;
    USHORT              m_PowerSaveMode;
    USHORT              m_MaxPSP;               //BOOLEAN
    BOOLEAN             IsAssociated;
    BOOLEAN             IsAwake;
    int                 KeepAwake;
    USHORT              m_InfrastructureMode;
    USHORT              m_RTSRetryLimit;
    USHORT              m_DataRetryLimit;
    UCHAR               m_SystemID[sizeof(UINT)];           // FOR TMA ONLY
    UCHAR               m_ESS_ID1[ESS_ID1_LENGTH];
    short               m_ESS_IDLen1;
    BOOLEAN             m_MacIdOveride;
    UCHAR               m_AdapterName[16];
    UCHAR               m_SupportedRates[8];
    USHORT              m_SelectedRate;
    UINT                m_LinkSpeed;
    BOOLEAN             m_UseSavedConfig;   
    USHORT              m_Diversity;
    USHORT              m_TransmitPower;
// 
// Removed 11/29/00 -- not needed.
// 
//    USHORT              m_Authentication;
    BOOLEAN             m_ResetOnHang;
    int                 m_ResetTick;
//
// ---------------------- radio stats
//
    ULONG               m_FramesXmitGood;           // Good Frames Transmitted
    ULONG               m_FramesXmitBad;            // Bad Frames Transmitted
    ULONG               m_FramesRcvGood;            // Good Frames Received
    ULONG               m_FramesRcvBad;             // CRC errors counted
    ULONG               m_FramesRcvOverRun;         // missed packet counted
    ULONG               m_FrameAlignmentErrors;     // FAE errors counted
    ULONG               m_FramesXmitOneCollision;   // Frames Transmitted with one collision
    ULONG               m_FramesXmitManyCollisions; // Frames Transmitted with > 1 collision
    UINT                m_ReceivePacketCount;
//
// ---------------------- DRIVER VARIABLES
    UINT                m_MaxMulticastList;
    UCHAR               m_Addresses[DEFAULT_MULTICASTLISTMAX][AIRONET_LENGTH_OF_ADDRESS];
    UCHAR               m_PermanentAddress[AIRONET_LENGTH_OF_ADDRESS];// The ethernet address that is burned into
    UCHAR               m_StationAddress[AIRONET_LENGTH_OF_ADDRESS];// The ethernet address currently in use.
    ULONG               m_PacketFilter;
    ULONG               m_MaxLookAhead;     // The lookahead buffer size in use.
    ULONG               m_CurMulticastSize; // The current size of multicast address
    PNDIS_PACKET        m_Packet;
    BOOLEAN             m_CardStarted;
    BOOLEAN             m_CardPresent;
    int                 m_TxIntPending;
    UINT                m_PacketRxLen;      // Total length of a received packet.
    UCHAR               *m_Lookahead;   // Lookahead buffer
#if NDISVER == 3
    UCHAR               m_RcvBuf[RX_BUF_SIZE];  // Lookahead buffer
#else
#define NUMRFD          8            
    UCHAR               m_RcvBuf[NUMRFD][RX_BUF_SIZE];  // Lookahead buffer

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -