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

📄 operfunc.h

📁 Windows CE 6.0 BSP for VOIP sample phone. Intel PXA270 platform.
💻 H
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
/** @file openfunc.h
 *  @This file contains the function prototypes for MRVDRV operation 
 *   functions
 *
 *  Copyright (c) Marvell Semiconductor, Inc. 
 */
 
#ifndef _OPERFUNC_H_    /* filename in CAPS */
#define _OPERFUNC_H_


/*
===============================================================================
            PRIVATE PROCEDURES
===============================================================================
*/

VOID 
InitAdapterObject(
    IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS 
AllocateAdapterBuffer(
    IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
InitSyncObjects(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS 
SetUpStationHW(
	IN PMRVDRV_ADAPTER Adapter,
	IN  NDIS_HANDLE  WrapperConfigurationContext
	);

PMRVDRV_ADAPTER AllocateAdapter(
	);
	
BOOL
AddKeyValues (
       IN LPWSTR KeyName, 
       IN PREG_VALUE_DESCR Vals
       );

VOID
FreeAdapter(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID 
FreeAdapterObject(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
FreeAdapterBuffer(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
CleanUpStationHW(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
DisableInterrupt(
    IN PMRVDRV_ADAPTER Adapter
    );

VOID
EnableInterrupt(
    IN PMRVDRV_ADAPTER Adapter
    );

ULONG
GetConnectionStatus(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
SetMacPacketFilter(
	IN PMRVDRV_ADAPTER Adapter, 
	IN ULONG CurrentPacketFilter
	);

NDIS_STATUS
SetMacPacketFilterOID(
	IN PMRVDRV_ADAPTER Adapter, 
	IN ULONG CurrentPacketFilter
	);

VOID
ReadStatsCounters(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS 
ReadRegistryInfo(
    IN PMRVDRV_ADAPTER Adapter,
    IN NDIS_HANDLE RegHdl
	);

VOID
HandleRxReadyEvent(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
HandleMACEvent(
	IN PMRVDRV_ADAPTER Adapter, 
	IN UINT INTCode
	);

 

NDIS_STATUS
HandleTxSingleDoneEvent(
	IN PMRVDRV_ADAPTER Adapter
	); 

VOID
HandleTxDMADoneEvent(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
HandleTxPPADoneEvent(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
HandleCommandFinishedEvent(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
HandleNDISSendPacket(
	IN PMRVDRV_ADAPTER Adapter,
	IN PNDIS_PACKET Packet,
	IN UINT Index,
	IN BOOLEAN SpinLockAcquired
	);

NDIS_STATUS AllocateCmdBuffer(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS FreeCmdBuffer(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS ResetCmdBuffer(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
ProcessHostCommand(
	IN PMRVDRV_ADAPTER Adapter,
	IN PUCHAR pCmdBuf
	);

NDIS_STATUS
PrepareAndSendCommand(
	IN PMRVDRV_ADAPTER Adapter,
	IN USHORT Cmd,
	IN USHORT CmdOPtion,
	IN USHORT INTOPtion, 
	IN NDIS_OID PendingOID,
	IN USHORT PendingInfo,
	IN USHORT BatchQNum,
	IN BOOLEAN IsLastBatchCmd,
	IN PULONG BytesWritten,
	IN PULONG BytesRead,
	IN PULONG BytesNeeded,
	IN PVOID InformationBuffer
	);

USHORT 
GetExpectedRetCode(
	IN USHORT Cmd
	);

NDIS_STATUS AllocateRxQ(
	IN PMRVDRV_ADAPTER Adapter
	);

/* 
NDIS_STATUS
FreeSingleTxBuffer(
IN PMRVDRV_ADAPTER Adapter
); 
*/

int 
ReadRxFrame(
	PMRVDRV_ADAPTER Adapter,
	ULONG *pFrameLen
	);

NDIS_STATUS
CleanUpSingleTxBuffer(
IN PMRVDRV_ADAPTER Adapter
);

NDIS_STATUS 
FreeRxQ(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
ResetRxPDQ(
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
SetStationPowerState(
    PMRVDRV_ADAPTER Adapter,
	NDIS_DEVICE_POWER_STATE NewPowerState,
	IN NDIS_OID Oid,
	IN PULONG BytesRead,
	IN PULONG BytesNeeded,
	IN PVOID InformationBuffer
);

NDIS_STATUS
CheckCurrentSationStatus(
	IN PMRVDRV_ADAPTER Adapter
);

BOOLEAN
InsertNdisPacketToTXPkQ(
     	IN PNDIS_PACKET Packet,
     	IN PTX_PKT_T pSendPacket     	
);


NDIS_STATUS
SendSinglePacket(
	IN PMRVDRV_ADAPTER Adapter,
	IN PTX_PKT_T  Packet
);    

NDIS_STATUS 
AllocateSingleTx(
	IN PMRVDRV_ADAPTER Adapter
); 

CmdCtrlNode *
GetFreeCmdCtrlNode(
	IN PMRVDRV_ADAPTER Adapter
);

VOID
ReturnCmdNode(
	IN PMRVDRV_ADAPTER Adapter,
	CmdCtrlNode *TempNode
);

VOID
SetCmdCtrlNode(
	IN PMRVDRV_ADAPTER Adapter,
	IN  CmdCtrlNode *pTempNode,
	IN  NDIS_OID PendingOID,
	IN  USHORT PendingInfo,
	IN  USHORT INTOption,
	IN  USHORT BatchQNum,
	IN  BOOLEAN IsLastBatchCmd,
	IN  PULONG BytesWritten,
	IN  PULONG BytesRead,
	IN  PULONG BytesNeeded,
	IN  PVOID InformationBuffer
);

VOID 
CleanUpCmdCtrlNode(
	IN  CmdCtrlNode *pTempNode
);

VOID
InsertCmdToQueue(
	IN PMRVDRV_ADAPTER Adapter,
	IN CmdCtrlNode *pTempCmd
	);

VOID
GetCmdFromQueueToExecute(	
	IN PMRVDRV_ADAPTER Adapter
	);

NDIS_STATUS
InterpretBSSDescription(
	IN PMRVDRV_ADAPTER Adapter,
	PVOID pRetCommandBuffer,
	ULONG ulBSSDescriptionListSize
#ifdef BG_SCAN
  	,USHORT  nHostCmdRet
#endif 
);

VOID 
RemoveTheActiveSsidEntry(
	IN PMRVDRV_ADAPTER Adapter
);	

VOID
ResetAdapterObject(
	PMRVDRV_ADAPTER Adapter
);

void
SendAutoAssociationCmds(
	IN PMRVDRV_ADAPTER Adapter
);

void
SendDesiredSSIDCmds(
	IN PMRVDRV_ADAPTER Adapter
);

NDIS_STATUS 
FirmwareDownload(
    IN PMRVDRV_ADAPTER Adapter
);

IX_STATUS
cf_HostBootFirmwareDownload(
	PCF_OBJECT pCf,
    IN PMRVDRV_ADAPTER Adapter
);

///NDIS_STATUS
///AddWEPKey(
///	IN PMRVDRV_ADAPTER Adapter,
///    IN PNDIS_802_11_SSID pInputSSID,
///    IN PNDIS_802_11_WEP pWEP
///);

///NDIS_STATUS
///RemoveWEPKey(
///	IN PMRVDRV_ADAPTER Adapter,
///    IN PNDIS_802_11_SSID pInputSSID,
///    IN PNDIS_802_11_WEP pWEP
///);

///NDIS_STATUS
///SearchWEPKey(
///	IN PMRVDRV_ADAPTER Adapter,
///    IN PNDIS_802_11_SSID pInputSSID,
///    OUT PNDIS_802_11_WEP pWEP
///);

///VOID
///WEP_Encrypt(
///	IN PMRVDRV_ADAPTER Adapter,
///    IN PUCHAR Buf,
///    IN ULONG Len
///);


VOID
ResetDisconnectStatus(
	IN PMRVDRV_ADAPTER Adapter
);

VOID
ResetSingleTxDoneAck(
	IN PMRVDRV_ADAPTER Adapter
);

VOID 
HandleHostPendGetOid(
	USHORT Ret, 
	PMRVDRV_ADAPTER Adapter,
	PHostCmd_DS_GEN pRetPtr
);

VOID 
HandleHostPendSetOid(
	USHORT Ret, 
	PMRVDRV_ADAPTER Adapter
);


NDIS_STATUS
HandleHostCmdFailure(
	USHORT Ret, 
	PMRVDRV_ADAPTER Adapter,
	PHostCmd_DS_GEN pRetPtr
	);

VOID
MacEventDisconnected(
	PMRVDRV_ADAPTER Adapter,
	UINT TimerValue,
	BOOLEAN PowerFlag
);

VOID
HandleHardwareSpec(
	PHostCmd_DS_GET_HW_SPEC pHWSpec,
	PMRVDRV_ADAPTER Adapter
);

VOID
HandleScanResponse(
	PHostCmd_DS_802_11_SCAN_RSP pScanResponse,
	PMRVDRV_ADAPTER Adapter
);

VOID
HandleAssocReassoc(
	PHostCmd_DS_802_11_ASSOCIATE_RESULT pAssoResult,
	PMRVDRV_ADAPTER Adapter
);

VOID
HandleAdHocJoinStart(
	PHostCmd_DS_802_11_AD_HOC_RESULT pAdHocResult,
	USHORT Ret,
	PMRVDRV_ADAPTER Adapter
);

VOID 
HandleEnableQosWmeCommand(
	PHostCmd_CMD_QOS_WME_ENABLE_STATE pCmd,
	PMRVDRV_ADAPTER Adapter
);

VOID
HandleWmeACParamsCommand(
	PHostCmd_CMD_QOS_WME_ACCESS_CATEGORY_PARAMETERS pCmd,
	PMRVDRV_ADAPTER Adapter
);

VOID 
SetupDataRate(
	USHORT CMDOption,
	PHostCmd_DS_802_11_DATA_RATE pDataRate,
	PMRVDRV_ADAPTER Adapter,
	PVOID InformationBuffer
	);

VOID
SetupWepKeys(
	NDIS_OID PendingOID,
	PHostCmd_DS_802_11_SET_WEP pSetWEP,
	PNDIS_802_11_WEP pNewWEP,
	PVOID InformationBuffer,
	PMRVDRV_ADAPTER Adapter,
	USHORT CmdOption
	);

NDIS_STATUS
SetupAssociationExt (
	PHostCmd_DS_802_11_ASSOCIATE_EXT pAsso,
	USHORT PendingInfo,
	PMRVDRV_ADAPTER Adapter, 
	CmdCtrlNode *pTempCmd,
	PVOID InformationBuffer
	);

VOID 
SetupAdHocStart(
	PHostCmd_DS_802_11_AD_HOC_START pAdHocStart,
	USHORT PendingInfo,
    PMRVDRV_ADAPTER Adapter, 
   	CmdCtrlNode *pTempCmd,
	PVOID InformationBuffer
	);

NDIS_STATUS
SetupAdHocJoin(
	PHostCmd_DS_802_11_AD_HOC_JOIN pAdHocJoin,
	USHORT PendingInfo,
    PMRVDRV_ADAPTER Adapter, 
   	CmdCtrlNode *pTempCmd,
	PVOID InformationBuffer
    );

VOID
InitializeWirelessConfig(
	PMRVDRV_ADAPTER Adapter
	);

VOID
CopyBSSIDInfo(
	PMRVDRV_ADAPTER Adapter
);

VOID
PSWakeup(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
PSSleep(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
PSConfirmSleep(
	IN PMRVDRV_ADAPTER Adapter
	);

VOID
MakePsCmd(
	IN PMRVDRV_ADAPTER Adapter,
	IN CmdCtrlNode *pTempCmd,
	IN USHORT SubCmd
	);

NDIS_STATUS
cf_DownloadFWImageHelperMode(
	PCF_OBJECT pCf,
    IN PMRVDRV_ADAPTER Adapter
);

NDIS_STATUS
cf_DownloadHelperImage(
	PCF_OBJECT pCf,
    IN PMRVDRV_ADAPTER Adapter
);


VOID
UpdatePowerSaveState(
	IN PMRVDRV_ADAPTER Adapter,
	IN CmdCtrlNode *pTempNode,
	IN ULONG  PsEvent
);



UCHAR ConvertNDISRateToFWIndex(UCHAR  NDISRate);


UCHAR ConvertFWIndexToNDISRate(UCHAR  FWIndex);

VOID CleanUpTimers(PMRVDRV_ADAPTER Adapter);

VOID
RegularIeFilter(UCHAR *IeBuf, USHORT *pBufLen);

VOID 
SetRegionCode(IN PMRVDRV_ADAPTER Adapter);

NDIS_STATUS
DownloadCommand(
	IN PMRVDRV_ADAPTER Adapter,
	IN CmdCtrlNode *pTempNode
	);

VOID FreeSingleTx(
	IN PMRVDRV_ADAPTER Adapter
	);


VOID
InfraBssReconnectStart(
		IN PMRVDRV_ADAPTER Adapter,
		IN USHORT reason );

VOID
InfraBssReconnectStop(
		PMRVDRV_ADAPTER Adapter);

VOID
ReConnectHandler(
		PMRVDRV_ADAPTER Adapter);

NDIS_STATUS
SetupScanCommand (
	PMRVDRV_ADAPTER Adapter);


#ifdef ACTIVE_ROAMING
NDIS_STATUS
SetupScanOneChannelCommand (
	PMRVDRV_ADAPTER Adapter);
#endif



#ifdef ENABLE_802_11D

UCHAR 
region_2_code(
	IN CHAR *region
);

VOID
ResetAllScanTypeAndPower(
	IN PMRVDRV_ADAPTER Adapter
);

VOID
UpdateScanTypeFromCountryIE(
	IN PMRVDRV_ADAPTER Adapter, 
	IN UCHAR BssidListIndex   
);

VOID 
GenerateDomainInfoFromCountryIE( 
	IN MrvlIEtypes_DomainParamSet_t  *pDomainInfo,
       IN IEEEtypes_CountryInfoFullSet_t  *pCountryIE
);

VOID
Enable_11d( 
	IN PMRVDRV_ADAPTER Adapter, 
	IN BOOLEAN enable 
);

VOID 
SetDomainInfo( 
	IN PMRVDRV_ADAPTER Adapter, 
	IEEEtypes_CountryInfoFullSet_t  *pCountryIE 
);

#endif 

// plus ++
USHORT Wpa2RsnIeAdjust(UCHAR *Dest, UCHAR *Src, USHORT RsnIeLen, UCHAR Mode);
UCHAR WpaIeAdjust(UCHAR *Dest, UCHAR *Src, UCHAR RsnIeLen, UCHAR Mode);
// plus --

#ifdef PMKID_CACHE_CAP
void ResetPmkidCache( IN PMRVDRV_ADAPTER Adapter );
int SavePmkidToCache( IN PMRVDRV_ADAPTER Adapter, IN PNDIS_802_11_PMKID pNewPmkid );
int FindPmkidInCache( IN PMRVDRV_ADAPTER Adapter, IN UCHAR *pBssid );
void DbgDumpCurrentPmkidCache( IN PMRVDRV_ADAPTER Adapter );
void OsNotify_RSN( IN PMRVDRV_ADAPTER Adapter );
#endif //PMKID_CACHE_CAP

VOID
AddHiddenApToList(
         	IN PMRVDRV_ADAPTER Adapter,
         	IN ULONG index);

VOID
ResetHiddenTryFlag(
		IN PMRVDRV_ADAPTER Adapter);
		
ULONG
FindHiddenApToTry(
		PMRVDRV_ADAPTER Adapter);
		
VOID
FastHiddenApAssociate(
		PMRVDRV_ADAPTER Adapter);
		
VOID
FastHiddenApResponse(	
		PHostCmd_DS_802_11_ASSOCIATE_RESULT pAssoResult,
		PMRVDRV_ADAPTER Adapter);				
				
VOID
ResetAdapterBuffer(PMRVDRV_ADAPTER Adapter);

NDIS_STATUS 
MrvDrvSetEncryptionStatus(
		IN PMRVDRV_ADAPTER		Adapter,
		IN NDIS_802_11_ENCRYPTION_STATUS	EncryptionStatus,
  		IN NDIS_OID 				 Oid, 
		IN PVOID 				InformationBuffer,  
		OUT PULONG 				BytesRead,	 
		OUT PULONG 				BytesNeeded );

int 
SetupKeyMaterial(
		PMRVDRV_ADAPTER Adapter, 
		PHostCmd_DS_802_11_KEY_MATERIAL  pKeyMaterial, 
		USHORT option, 
		USHORT enable, 
		void *InformationBuffer);
	
#ifdef BG_SCAN
VOID
SetupBgScanCurrentSSID(
		IN PMRVDRV_ADAPTER Adapter,
		IN ULONG ScanInterval
		);

NDIS_STATUS 
EnableBgScan( 
		IN	PMRVDRV_ADAPTER Adapter,
		IN	BOOLEAN bEnable
		);

VOID 
DumpBgScanConfig ( 
		IN POID_MRVL_DS_BG_SCAN_CONFIG  pBgScanCfg 
		);

VOID 
SaveCurrentBgScanConfig ( 
		IN PMRVDRV_ADAPTER pAdapter, 
		IN PVOID InformationBuffer, 
		IN ULONG InformationBufferLength 
		);

#endif

#ifdef ACTIVE_ROAMING

VOID
SetUpLowRssiValue(
		IN PMRVDRV_ADAPTER Adapter
		);

BOOLEAN
CheckCurrentSsidBssidRssiInList(
		IN PMRVDRV_ADAPTER Adapter
		);

VOID
ActiveRoamingHandler(
		IN PMRVDRV_ADAPTER Adapter);


VOID
ActiveRoamingStart(
		IN PMRVDRV_ADAPTER Adapter
);

VOID
ActiveRoamingStop(
		IN PMRVDRV_ADAPTER Adapter
);
#endif
//dralee_20060613
VOID SetRadioControl(PMRVDRV_ADAPTER Adapter);


VOID
MyDPC(   PMRVDRV_ADAPTER Adapter );

#ifdef MRVL_MIC_ERROR
BOOL IsInMicErrorPeriod( PMRVDRV_ADAPTER pAdapter );
#endif

UINT8 EncryptionStateCheck(IN PMRVDRV_ADAPTER Adapter);


#ifdef TT_WEP_1
void TurnOnWepBit( PMRVDRV_ADAPTER pAdapter, BOOLEAN bTurnOn );
#endif


#endif /* _OPERFUNC_H_ */


⌨️ 快捷键说明

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