亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? devlibif.c

?? Atheros AP Test with Agilent N4010A source code
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* devlibif.c - contians wrapper functions for devlib */

/* Copyright (c) 2000 Atheros Communications, Inc., All Rights Reserved */

#include <time.h>
#include <errno.h>
#ifndef VXWORKS
#include <malloc.h>
#endif

#include "wlantype.h"
#include "athreg.h"
#include "manlib.h"
#include "mConfig.h"

#include "dk_client.h"

#if defined(VXWORKS) 
#include "hw.h"
#include "hwext.h"
#else
#include "common_hw.h"
#endif

#include "perlarry.h"
#include "dk_cmds.h"

#include "dk_common.h"
#ifdef __ATH_DJGPPDOS__
#include <unistd.h>
#endif

extern MDK_WLAN_DRV_INFO globDrvInfo; /* Global driver info */

static void printRxStats(RX_STATS_STRUCT *pRxStats);
static void printTxStats(TX_STATS_STRUCT *pTxStats);
A_UINT32 OScfgRead(A_UINT32 devNum,A_UINT32 regOffset);
void selectDevice (A_UINT32 devNum,A_UINT32 deviceType, DEVICE_MAP *devMap,MEM_SETUP *mem);

/******************************************************************************
 * Wrappers for setup function calls to manlib
 */

A_UINT32 m_eepromRead
(
 	A_UINT32 devNum, 
 	A_UINT32 eepromOffset
) 
{
	return eepromRead(devNum, eepromOffset);
}

void m_eepromWrite
(
 	A_UINT32 devNum, 
 	A_UINT32 eepromOffset, 
 	A_UINT32 eepromValue
)
{
	eepromWrite(devNum, eepromOffset, eepromValue);
}

PDWORDBUFFER m_eepromReadBlock
(
	A_UINT32 devNum,
	A_UINT32 startOffset,
	A_UINT32 length
) 
{
    	PDWORDBUFFER	pDwordBuffer = NULL;

	pDwordBuffer = (PDWORDBUFFER) A_MALLOC(sizeof(DWORDBUFFER));
    	if (!pDwordBuffer) {
        	return(NULL);
    	}

	pDwordBuffer->pDword = (A_UINT32 *)A_MALLOC(length * 4);
	if(!pDwordBuffer->pDword) {
		A_FREE(pDwordBuffer);
 		return(NULL);
 	}
	
	pDwordBuffer->Length = (A_UINT16)length * 4;

	eepromReadBlock(devNum, startOffset, length, pDwordBuffer->pDword);

    	/* 2 malloc's get free'd in typemap */
	return pDwordBuffer;
}


void m_eepromWriteBlock
(
 	A_UINT32 devNum, 
 	A_UINT32 startOffset, 
	PDWORDBUFFER pDwordBuffer
)
{
	eepromWriteBlock(devNum, startOffset, pDwordBuffer->Length/4,pDwordBuffer->pDword);
}


A_UINT32 m_resetDevice
(
 	A_UINT32 devNum, 
 	PDATABUFFER mac, 
 	PDATABUFFER bss, 
 	A_UINT32 freq, 
 	A_UINT32 turbo 
)
{
	MDK_WLAN_DEV_INFO *pdevInfo;
	PIPE_CMD pipeCmd;
	A_UINT16 devIndex;

	
	resetDevice(devNum, mac->pData, bss->pData, freq, turbo);
	
	devIndex = getDevIndex(devNum);
	
	if (devIndex != (A_UINT16)-1) {
		pdevInfo = globDrvInfo.pDevInfoArray[devIndex];

		if(!pdevInfo->pdkInfo->haveEvent) {
			pipeCmd.CMD_U.CREATE_EVENT_CMD.type = ISR_INTERRUPT;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.persistent = 1;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.param1 = 0;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.param2 = 0;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.param3 = 0;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.eventHandle.eventID = DEVLIB_EVENT_ID;
			pipeCmd.CMD_U.CREATE_EVENT_CMD.eventHandle.f2Handle = (A_UINT16)devIndex;

			hwCreateEvent(devIndex, &pipeCmd);
			pdevInfo->pdkInfo->haveEvent = TRUE;
		} 
	}
	return 0;
}

void m_setResetParams
(
 	A_UINT32 devNum, 
 	A_CHAR fileName[256],
 	A_UINT32 eePromLoad,
	A_UINT32 forceCfgLoad,
	A_UINT32 mode,
	A_UINT16 initCodeFlag
)
{
	setResetParams(devNum, fileName,(A_BOOL)eePromLoad,(A_BOOL)forceCfgLoad,(A_UCHAR)mode, initCodeFlag);
}

void m_getDeviceInfo
(
 	A_UINT32 devNum, 
 	SUB_DEV_INFO *pDevStruct		
)
{
	getDeviceInfo(devNum, pDevStruct);
}

A_UINT32 m_checkRegs
(
 A_UINT32 devNum
)
{	
	printf("check regs called \n");
	return 0;
}

void m_changeChannel
(
 	A_UINT32 devNum,
 	A_UINT32 freq
)
{
    	changeChannel(devNum, freq);

	return;
}

A_UINT32 m_checkProm
(
 	A_UINT32 devNum,
 	A_UINT32 enablePrint
)
{
    	return checkProm(devNum, enablePrint);
}

void m_rereadProm
(
 	A_UINT32 devNum
)
{
    	rereadProm(devNum);
}

void m_txDataSetup
(
 	A_UINT32 devNum, 
 	A_UINT32 rateMask, 
 	PDATABUFFER dest, 
 	A_UINT32 numDescPerRate, 
 	A_UINT32 dataBodyLength, 
 	PDATABUFFER dataPattern, 
 	A_UINT32 retries, 
 	A_UINT32 antenna, 
 	A_UINT32 broadcast
)
{
	txDataSetup(devNum, rateMask, dest->pData, numDescPerRate, dataBodyLength, 
		dataPattern->pData, dataPattern->Length, retries, antenna, broadcast);

	return;
}

void m_txDataBegin
(
 	A_UINT32 devNum,
 	A_UINT32 timeout,
 	A_UINT32 remoteStats
)
{
	txDataBegin(devNum, timeout, remoteStats);

	return;
}


void m_rxDataSetup
(
 	A_UINT32 devNum,
 	A_UINT32 numDesc,
 	A_UINT32 dataBodyLength,
 	A_UINT32 enablePPM
)
{
	rxDataSetup(devNum, numDesc, dataBodyLength, enablePPM);

	return;
}

void m_txDataStart
(
	A_UINT32 devNum
)
{
	txDataStart(devNum);
	return;
}

void m_rxDataStart
(
	A_UINT32 devNum
)
{
	rxDataStart(devNum);
	return;
}

void m_rxDataBegin
(
 	A_UINT32 devNum,
 	A_UINT32 waitTime,
 	A_UINT32 timeout,
 	A_UINT32 remoteStats,
 	A_UINT32 enableCompare, 
 	PDATABUFFER dataPattern
)
{
	rxDataBegin(devNum, waitTime, timeout, remoteStats, enableCompare, dataPattern->pData, dataPattern->Length);

	return;
}

void m_txrxDataBegin
(
 	A_UINT32 devNum,
 	A_UINT32 waitTime,
 	A_UINT32 timeout,
 	A_UINT32 remoteStats,
 	A_UINT32 enableCompare, 
 	PDATABUFFER dataPattern
)
{
	txrxDataBegin(devNum, waitTime, timeout, remoteStats, enableCompare, dataPattern->pData, dataPattern->Length);

	return;
}

void m_cleanupTxRxMemory
(
 	A_UINT32 devNum,
 	A_UINT32 flags
)
{
	cleanupTxRxMemory(devNum,flags);
	
	return;
}

PDWORDBUFFER m_txGetStats
(
 	A_UINT32 devNum, 
 	A_UINT32 rateInMb,
 	A_UINT32 remote
)
{
    	PDWORDBUFFER	pStruct = NULL;

	pStruct = (PDWORDBUFFER) A_MALLOC(sizeof(DWORDBUFFER));
    	if (!pStruct) {
        	return(NULL);
    	}

	pStruct->pDword = (A_UINT32 *)A_MALLOC(sizeof(TX_STATS_STRUCT));
	if(!pStruct->pDword) {
		A_FREE(pStruct);
		return(NULL);
	}
	
	pStruct->Length = sizeof(TX_STATS_STRUCT);
	txGetStats(devNum, rateInMb, remote, (TX_STATS_STRUCT *)pStruct->pDword);

	//check for errors
    	if (getMdkErrNo(devNum)) {
        	A_FREE(pStruct->pDword);
        	A_FREE(pStruct);
        	return(NULL);
    	}

    	/* 2 malloc's get free'd in typemap */
	return pStruct;
}

PDWORDBUFFER m_txPrintStats
(
 	A_UINT32 devNum, 
 	A_UINT32 rateInMb,
 	A_UINT32 remote
)
{
    	PDWORDBUFFER	pStruct = NULL;

	pStruct = m_txGetStats(devNum, rateInMb, remote);
	
	if (pStruct != NULL) printTxStats((TX_STATS_STRUCT *)pStruct->pDword);

    	/* 2 malloc's get free'd in typemap */
	return pStruct;
}

void printTxStats
(
 	TX_STATS_STRUCT *pTxStats
)
{
	uiPrintf("Good Packets           %10lu  ", pTxStats->goodPackets);
	uiPrintf("Ack sig strnth min     %10lu\n", pTxStats->ackSigStrengthMin);
	uiPrintf("Underruns              %10lu  ", pTxStats->underruns);
	uiPrintf("Ack sig strenth avg    %10lu\n", pTxStats->ackSigStrengthAvg);
	uiPrintf("Throughput             %10.2f  ",(float) pTxStats->throughput/1000);
	uiPrintf("Ack sig strenth max    %10lu\n", pTxStats->ackSigStrengthMax);
	uiPrintf("Excess retries         %10lu  ", pTxStats->excessiveRetries);
	uiPrintf("short retries 4        %10lu\n", pTxStats->shortRetry4); 
	uiPrintf("short retries 1        %10lu  ", pTxStats->shortRetry1); 
	uiPrintf("short retries 5        %10lu\n", pTxStats->shortRetry5); 
	uiPrintf("short retries 2        %10lu  ", pTxStats->shortRetry2); 
	uiPrintf("short retries 6-10     %10lu\n", pTxStats->shortRetry6to10); 
	uiPrintf("short retries 3        %10lu  ", pTxStats->shortRetry3); 
	uiPrintf("short retries 11-15    %10lu\n", pTxStats->shortRetry11to15); 
/*	uiPrintf("long  retries 1        %10lu  ", pTxStats->longRetry1); 
	uiPrintf("long  retries 2        %10lu\n", pTxStats->longRetry2); 
	uiPrintf("long  retries 3        %10lu  ", pTxStats->longRetry3); 
	uiPrintf("long  retries 4        %10lu\n", pTxStats->longRetry4); 
	uiPrintf("long  retries 5        %10lu  ", pTxStats->longRetry5); 
	uiPrintf("long  retries 6-10     %10lu\n", pTxStats->longRetry6to10); 
	uiPrintf("long  retries 11-15    %10lu\n", pTxStats->longRetry11to15);  */
}

PDWORDBUFFER m_rxGetStats
(
 	A_UINT32 devNum,
 	A_UINT32 rateInMb,
 	A_UINT32 remote
)
{

    	PDWORDBUFFER	pStruct = NULL;

	pStruct = (PDWORDBUFFER) A_MALLOC(sizeof(DWORDBUFFER));
    	if (!pStruct) {
        	return(NULL);
    	}

	pStruct->pDword = (A_UINT32 *)A_MALLOC(sizeof(RX_STATS_STRUCT));
	if(!pStruct->pDword) {
		A_FREE(pStruct);
		return(NULL);
	}
	pStruct->Length = sizeof(RX_STATS_STRUCT);
	rxGetStats(devNum, rateInMb, remote, (RX_STATS_STRUCT *)pStruct->pDword);

	//check for errors
//    	if (mdkErrno) {
//        	A_FREE(pStruct->pDword);
//        	A_FREE(pStruct);
//        	return(NULL);
//   	}

    	/* 2 malloc's get free'd in typemap */
	return pStruct;
}

PDWORDBUFFER m_rxPrintStats
(
 	A_UINT32 devNum,
 	A_UINT32 rateInMb,
 	A_UINT32 remote
)
{
    	PDWORDBUFFER	pStruct = NULL;

	pStruct = m_rxGetStats(devNum, rateInMb, remote);
	
	if (pStruct != NULL) printRxStats((RX_STATS_STRUCT *)pStruct->pDword);

    	/* 2 malloc's get free'd in typemap */
	return pStruct;
}

void printRxStats
(
 	RX_STATS_STRUCT *pRxStats
)
{
	uiPrintf("Good Packets           %10lu  ", pRxStats->goodPackets);
	uiPrintf("Data sig strenth min   %10lu\n", pRxStats->DataSigStrengthMin);
	uiPrintf("CRC-Failure Packets    %10lu  ", pRxStats->crcPackets);
	uiPrintf("Data sig strenth avg   %10lu\n", pRxStats->DataSigStrengthAvg);
	uiPrintf("Bad CRC Miscomps       %10lu  ", pRxStats->bitMiscompares);
	uiPrintf("Data sig strenth max   %10lu\n", pRxStats->DataSigStrengthMax);
	uiPrintf("Good Packet Miscomps   %10lu  ", pRxStats->bitErrorCompares);
	uiPrintf("PPM min                %10ld\n", pRxStats->ppmMin);
	uiPrintf("Single dups            %10lu  ", pRxStats->singleDups);
	uiPrintf("PPM avg                %10ld\n", pRxStats->ppmAvg);
	uiPrintf("Multiple dups          %10lu  ", pRxStats->multipleDups);
	uiPrintf("PPM max                %10ld\n", pRxStats->ppmMax);
#ifdef MAUI
	uiPrintf("Decrypt errors         %10lu\n", pRxStats->decrypErrors);
#endif
	return;
}

// Display RX Data
PDATABUFFER m_rxGetData
(
 	A_UINT32 devNum,
 	A_UINT32 bufferNum,
 	A_UINT16 sizeBuffer
)
{
    	PDATABUFFER	pStruct = NULL;


	pStruct = (PDATABUFFER) A_MALLOC(sizeof(DATABUFFER));
	if (!pStruct) {
		return(NULL);
	}

	pStruct->pData = (A_UCHAR *)A_MALLOC(sizeBuffer);
	if(!pStruct->pData) {
		A_FREE(pStruct);
		return(NULL);
	}
	pStruct->Length = sizeBuffer;
	rxGetData(devNum, bufferNum, pStruct->pData, sizeBuffer);

	//check for errors
    	if (getMdkErrNo(devNum)) {
        	A_FREE(pStruct->pData);
        	A_FREE(pStruct);
        	return(NULL);
    	}

	return pStruct;
}

// Continuous Transmit Functions
void m_txContBegin
(
 	A_UINT32 devNum, 
 	A_UINT32 type, 
 	A_UINT32 typeOption1,
 	A_UINT32 typeOption2, 
 	A_UINT32 antenna
)
{
	txContBegin(devNum, type, typeOption1, typeOption2, antenna);

	return;

}

void m_txContFrameBegin
(
 	A_UINT32 devNum, 
	A_UINT32 length,
	A_UINT32 ifswait,
 	A_UINT32 typeOption1,
 	A_UINT32 typeOption2, 
 	A_UINT32 antenna,
	A_BOOL   performStabilizePower,
	A_UINT32 numDescriptors,
	A_UCHAR *dest
)
{
	txContFrameBegin(devNum, length, ifswait, typeOption1, typeOption2, antenna, performStabilizePower, numDescriptors, dest);

	return;

}

void m_txContEnd
(
 	A_UINT32 devNum
)
{
    	txContEnd(devNum);

	return;
}

void m_setAntenna
(
 	A_UINT32 devNum, 
 	A_UINT32 antenna
)
{
    	setAntenna(devNum, antenna);

	return;
}

void m_setPowerScale
(
 	A_UINT32 devNum, 
 	A_UINT32 powerScale
)
{
    	setPowerScale(devNum, powerScale);

	return;
}

void m_setTransmitPower
(
 	A_UINT32 devNum, 
 	PDATABUFFER txPowerArray
)
{
	if (txPowerArray->Length != 17) {
		uiPrintf("Error in m_setTransmitPower: Given txPowerArray is not 17 bytes in size: %d\n", txPowerArray->Length);
		return;
	}
	setTransmitPower(devNum, txPowerArray->pData);

	return;
}

void m_setSingleTransmitPower
(
 	A_UINT32 devNum, 
 	A_UCHAR pcdac 
)
{
	setSingleTransmitPower(devNum, pcdac);

	return;
}

void m_specifySubSystemID
(
 	A_UINT32 devNum, 
 	A_UINT16 subsystemID 
)
{
	specifySubSystemID(devNum, subsystemID);

	return;
}

void m_devSleep
(
 	A_UINT32 devNum
)
{
	devSleep(devNum);

	return;
}

void m_getEepromStruct
(
 	A_UINT32 devNum,
 	A_UINT16 eepStructFlag,

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区在线播放| 亚州成人在线电影| 欧美精品久久99久久在免费线 | 日韩1区2区3区| 久久精品一二三| 色婷婷av一区二区三区软件| 久久精品国产一区二区三| 国产日产欧产精品推荐色 | 一区二区欧美在线观看| 精品国产三级a在线观看| 91影院在线观看| 日韩不卡一区二区三区| 国产精品乱码一区二三区小蝌蚪| 欧美三级日韩三级国产三级| 国内精品在线播放| 日韩中文字幕不卡| 中文字幕佐山爱一区二区免费| 7777精品久久久大香线蕉| 成人av电影免费观看| 日本美女一区二区| 亚洲美女一区二区三区| 久久亚洲精精品中文字幕早川悠里 | 成人99免费视频| 国产精品国模大尺度视频| 日韩一区二区三区在线观看| 国产高清在线精品| 日本va欧美va欧美va精品| 亚洲视频一二三| 日本一区二区成人在线| 欧美日韩精品欧美日韩精品一综合| 9i看片成人免费高清| 国内成人自拍视频| 欧美aaaaaa午夜精品| 亚洲国产中文字幕在线视频综合| 久久精品免费在线观看| 精品少妇一区二区三区视频免付费 | 欧美日韩国产免费| 中文字幕欧美一| 久久综合精品国产一区二区三区| 色狠狠一区二区三区香蕉| 国产不卡在线播放| 成人丝袜18视频在线观看| 国产九色精品成人porny| 久久电影网电视剧免费观看| 麻豆久久久久久久| 国产精品香蕉一区二区三区| 国产99久久久国产精品潘金| 成人午夜视频福利| yourporn久久国产精品| 91天堂素人约啪| 91高清视频免费看| 欧美日韩精品电影| 日韩一区二区在线看| 欧美成人精品3d动漫h| 精品精品国产高清一毛片一天堂| 精品国产乱码久久久久久老虎| 日韩三级在线观看| 久久网站最新地址| 中文字幕的久久| 有码一区二区三区| 视频在线观看国产精品| 精久久久久久久久久久| 成人黄色国产精品网站大全在线免费观看 | 日本久久电影网| 欧美揉bbbbb揉bbbbb| 日韩一级片在线观看| 久久久久亚洲综合| 亚洲人成精品久久久久久| 午夜激情久久久| 国产精品自产自拍| 91蝌蚪国产九色| 91精品国产综合久久久久| 欧美精品一区二区三区久久久| 中文成人综合网| 亚洲午夜视频在线观看| 另类小说综合欧美亚洲| 成人av在线播放网址| 91激情五月电影| 久久一日本道色综合| 一区二区三区.www| 精品亚洲免费视频| 91在线观看美女| 日韩三级视频中文字幕| 综合久久综合久久| 久久99在线观看| 99国产精品99久久久久久| 91精品久久久久久蜜臀| 国产精品色哟哟网站| 日韩精品一级二级| 99视频超级精品| 欧美xxx久久| 一区二区三区四区在线免费观看| 欧美96一区二区免费视频| 91麻豆精品视频| 精品久久一区二区| 一区二区三区日韩精品视频| 国产毛片一区二区| 91精品综合久久久久久| 国产精品理伦片| 久久精品国产99国产| 91精品办公室少妇高潮对白| 久久精品夜色噜噜亚洲aⅴ| 午夜久久电影网| 91麻豆swag| 日本一区二区三区视频视频| 免费观看久久久4p| 日本国产一区二区| 中文字幕av不卡| 国产综合色在线| 欧美一区二区三区性视频| 亚洲精品国产第一综合99久久| 国产专区综合网| 欧美一区二区三区视频免费播放 | 蜜臀av一区二区在线免费观看| 一本大道av一区二区在线播放 | 亚洲国产日韩av| 91麻豆精品一区二区三区| 日本一区二区三区四区在线视频| 久久97超碰国产精品超碰| 欧美一级二级在线观看| 亚洲福利视频一区二区| 欧美在线|欧美| 亚洲精品免费视频| 一本大道久久a久久精二百 | 亚洲一级在线观看| 在线观看免费一区| 亚洲久本草在线中文字幕| 91丨九色丨蝌蚪丨老版| 国产精品网站在线观看| 东方aⅴ免费观看久久av| 国产日韩欧美麻豆| 成人综合激情网| 国产精品理论片| 91在线视频观看| 亚洲激情网站免费观看| 99久久精品免费看国产免费软件| 国产精品水嫩水嫩| 成人综合婷婷国产精品久久| 国产精品久久久久久久裸模| 成人黄色在线视频| 亚洲欧美另类图片小说| 色婷婷av一区二区三区软件| 亚洲制服丝袜在线| 精品视频在线免费| 日韩激情av在线| 正在播放一区二区| 奇米四色…亚洲| 久久婷婷色综合| 不卡视频在线观看| 一区二区三区在线观看国产| 欧美日韩亚洲不卡| 蜜臀av一级做a爰片久久| 欧美精品一区二区三区在线播放| 国产盗摄一区二区| 自拍偷拍国产亚洲| 欧美国产精品久久| 国产精品乡下勾搭老头1| 国产精品久久久久久久久搜平片 | 成人欧美一区二区三区白人 | 亚洲激情五月婷婷| 91麻豆精品国产91久久久| 国产一区二区三区| 亚洲欧美日韩电影| 51午夜精品国产| 国产成人一区在线| 一区二区免费看| 欧美电影免费提供在线观看| 国产福利91精品一区二区三区| 中文字幕乱码亚洲精品一区| 欧美影院一区二区三区| 久久97超碰色| 亚洲视频1区2区| 日韩一区二区麻豆国产| 成人毛片在线观看| 亚洲成人激情自拍| 精品美女在线观看| 91福利国产成人精品照片| 麻豆免费精品视频| 国产精品久久久久精k8| 在线不卡中文字幕播放| 黄色资源网久久资源365| 亚洲欧美另类综合偷拍| 日韩无一区二区| 97久久精品人人做人人爽50路| 亚洲成人在线网站| 久久女同互慰一区二区三区| 一本一本久久a久久精品综合麻豆| 婷婷成人综合网| 国产精品激情偷乱一区二区∴| 欧美电影影音先锋| 99久久久精品| 麻豆成人91精品二区三区| 中文字幕一区三区| 欧美成人午夜电影| 欧美又粗又大又爽| 国产99久久久精品| 免费在线观看成人| 亚洲女子a中天字幕| 久久这里只有精品首页| 在线观看日韩一区|