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

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

?? rtusb_io.c

?? r73模塊的無線網卡在Linux下的驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*************************************************************************** * RT2x00 SourceForge Project - http://rt2x00.serialmonkey.com             * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * *   You should have received a copy of the GNU General Public License     * *   along with this program; if not, write to the                         * *   Free Software Foundation, Inc.,                                       * *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * *                                                                         * *   Licensed under the GNU GPL                                            * *   Original code supplied under license from RaLink Inc, 2004.           * ***************************************************************************//*************************************************************************** *	Module Name:	rtusb_io.c * *	Abstract: * *	Revision History: *	Who		When		What *	--------	----------	----------------------------- *	Paul Lin	06-25-2004	created * ***************************************************************************/#include	"rt_config.h"/*	========================================================================	Routine Description: NIC initialization complete	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBFirmwareRun(	IN	PRTMP_ADAPTER	pAd){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x01,		0x8,		0,		NULL,		0);	return Status;}/*	========================================================================	Routine Description: Read various length data from RT2573	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBMultiRead(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	OUT	PVOID			pData,	IN	USHORT			length){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_IN,		0x7,		0,		Offset,		pData,		length);	return Status;}/*	========================================================================	Routine Description: Write various length data to RT2573	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBMultiWrite(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	IN	PVOID			pData,	IN	USHORT			length){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x6,		0,		Offset,		pData,		length);	return Status;}/*	========================================================================	Routine Description: Read 32-bit MAC register	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBReadMACRegister(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	OUT	PULONG			pValue){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_IN,		0x7,		0,		Offset,		pValue,		4);	le32_to_cpus(pValue);	return Status;}/*	========================================================================	Routine Description: Write 32-bit MAC register	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBWriteMACRegister(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	IN	ULONG			Value){	NTSTATUS	Status;	cpu_to_le32s(&Value);	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x6,		0x00,		Offset,		&Value,		4);	return Status;}NTSTATUS	RT73WriteTXRXCSR0(	IN	PRTMP_ADAPTER pAd,	IN	BOOLEAN 	disableRx,	IN	BOOLEAN		dropControl){    ULONG val = 0x0046b032;    if (pAd->PortCfg.BssType != BSS_MONITOR)    {	val |= 0x00100000;		//Drop promiscuous frames if not in rfmon	val |= 0x00200000;		//Drop to_ds (packets from station to access point/distribution system)    }    if (disableRx == TRUE)    {	val |= 0x00010000;    }    if (dropControl == TRUE)    {	val |= 0x00080000;    }    return RTUSBWriteMACRegister(pAd, TXRX_CSR0, val);}/*	========================================================================	Routine Description: Write 32-bit MAC register	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS    RTUSBSetLED(	IN	PRTMP_ADAPTER		pAd,	IN	MCU_LEDCS_STRUC		LedStatus,	IN	USHORT				LedIndicatorStrength){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x0a,		LedStatus.word,		LedIndicatorStrength,		NULL,		0);	return Status;}/*	========================================================================	Routine Description: Read 8-bit BBP register	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBReadBBPRegister(	IN	PRTMP_ADAPTER	pAd,	IN	UCHAR			Id,	IN	PUCHAR			pValue){	PHY_CSR3_STRUC	PhyCsr3;	UINT			i = 0;	// Verify the busy condition	do	{		RTUSBReadMACRegister(pAd, PHY_CSR3, &PhyCsr3.word);		if (!(PhyCsr3.field.Busy == BUSY))			break;		i++;	}	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)));	//DBGPRINT(RT_DEBUG_INFO, "- %s: Pre-busy PHY_CSR3=0x%08x\n",			//__FUNCTION__, PhyCsr3.word);	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))	{		//		// Read failed then Return Default value.		//		*pValue = pAd->BbpWriteLatch[Id];		KPRINT(KERN_NOTICE,				"- BBP read: Pre-busy error or device removed!!!\n");		DBGPRINT(RT_DEBUG_ERROR, "Retry count exhausted or device removed!!!\n");		return STATUS_UNSUCCESSFUL;	}	// Prepare for write material	PhyCsr3.word 				= 0;	PhyCsr3.field.fRead			= 1;	PhyCsr3.field.Busy			= 1;	PhyCsr3.field.RegNum 		= Id;	RTUSBWriteMACRegister(pAd, PHY_CSR3, PhyCsr3.word);	i = 0;	// Verify the busy condition	do	{		RTUSBReadMACRegister(pAd, PHY_CSR3, &PhyCsr3.word);		if (!(PhyCsr3.field.Busy == BUSY))		{			*pValue = (UCHAR)PhyCsr3.field.Value;			break;		}		i++;	}	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)));	//DBGPRINT(RT_DEBUG_INFO, "- %s: Post-busy PHY_CSR3=0x%08x\n",			//__FUNCTION__, PhyCsr3.word);	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))	{		//		// Read failed then Return Default value.		//		*pValue = pAd->BbpWriteLatch[Id];		KPRINT(KERN_NOTICE,				"- BBP read: Post-busy error or device removed!!!\n");		DBGPRINT(RT_DEBUG_ERROR, "Retry count exhausted or device removed!!!\n");		return STATUS_UNSUCCESSFUL;	}	return STATUS_SUCCESS;}/*	========================================================================	Routine Description: Write 8-bit BBP register	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBWriteBBPRegister(	IN	PRTMP_ADAPTER	pAd,	IN	UCHAR			Id,	IN	UCHAR			Value){	PHY_CSR3_STRUC	PhyCsr3;	UINT			i = 0;	// Verify the busy condition	do	{		RTUSBReadMACRegister(pAd, PHY_CSR3, &PhyCsr3.word);		if (!(PhyCsr3.field.Busy == BUSY))			break;		i++;	}	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)));	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))	{		DBGPRINT(RT_DEBUG_ERROR,				"- %s: Busy error=0x%08x or device removed!!!\n",				__FUNCTION__, PhyCsr3.word);		KPRINT(KERN_NOTICE,				"- BBP write: Retry count exhausted or device removed!!!\n");		return STATUS_UNSUCCESSFUL;	}	// Prepare for write material	PhyCsr3.word 				= 0;	PhyCsr3.field.fRead			= 0;	PhyCsr3.field.Value			= Value;	PhyCsr3.field.Busy			= 1;	PhyCsr3.field.RegNum 		= Id;	RTUSBWriteMACRegister(pAd, PHY_CSR3, PhyCsr3.word);	pAd->BbpWriteLatch[Id] = Value;	return STATUS_SUCCESS;}/*	========================================================================	Routine Description: Write RF register through MAC	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBWriteRFRegister(	IN	PRTMP_ADAPTER	pAd,	IN	ULONG			Value){	PHY_CSR4_STRUC	PhyCsr4;	UINT			i = 0;	do	{		RTUSBReadMACRegister(pAd, PHY_CSR4, &PhyCsr4.word);		if (!(PhyCsr4.field.Busy))			break;		i++;	}	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)));	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAd, fRTMP_ADAPTER_NIC_NOT_EXIST)))	{		DBGPRINT(RT_DEBUG_ERROR,				"- %s: Busy error=0x%08x or device removed!!!\n",				__FUNCTION__, PhyCsr4.word);		KPRINT(KERN_NOTICE,				"- RF write: Retry count exhausted or device removed!!!\n");		return STATUS_UNSUCCESSFUL;	}	RTUSBWriteMACRegister(pAd, PHY_CSR4, Value);	return STATUS_SUCCESS;}/*	========================================================================	Routine Description:	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBReadEEPROM(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	OUT	PVOID			pData,	IN	USHORT			length){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_IN,		0x9,		0,		Offset,		pData,		length);	return Status;}/*	========================================================================	Routine Description:	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBWriteEEPROM(	IN	PRTMP_ADAPTER	pAd,	IN	USHORT			Offset,	IN	PVOID			pData,	IN	USHORT			length){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x8,		0,		Offset,		pData,		length);	return Status;}/*	========================================================================	Routine Description:	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS	RTUSBStopRx(	IN	PRTMP_ADAPTER	pAd){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(pAd,             0,             DEVICE_VENDOR_REQUEST_OUT,             0x0C,             0x0,             0x0,             NULL,             0);	return Status;}/*	========================================================================	Routine Description:	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS RTUSBPutToSleep(	IN	PRTMP_ADAPTER	pAd){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x01,		0x07,		0,		NULL,		0);	return Status;}/*	========================================================================	Routine Description:	Arguments:	Return Value:	Note:	========================================================================*/NTSTATUS RTUSBWakeUp(	IN	PRTMP_ADAPTER	pAd){	NTSTATUS	Status;	Status = RTUSB_VendorRequest(		pAd,		0,		DEVICE_VENDOR_REQUEST_OUT,		0x01,		0x09,		0,		NULL,		0);	return Status;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
蜜桃视频在线观看一区二区| 国产精品久久久久久久久久免费看| 国产69精品久久99不卡| 黑人巨大精品欧美一区| 黄色小说综合网站| 日本电影欧美片| 一本一本久久a久久精品综合麻豆| 高清在线不卡av| 播五月开心婷婷综合| 大白屁股一区二区视频| 成人综合在线视频| 91在线porny国产在线看| 色一区在线观看| 欧美日韩国产小视频| 91精品国产全国免费观看| 日韩一区二区三区在线观看 | 蜜臀va亚洲va欧美va天堂| 调教+趴+乳夹+国产+精品| 日韩成人一级大片| 国产成人在线观看| 色综合久久久久综合体| 欧美伦理影视网| 欧美mv和日韩mv的网站| 欧美国产在线观看| 亚洲线精品一区二区三区八戒| 偷拍亚洲欧洲综合| 国产91精品久久久久久久网曝门 | 免费观看91视频大全| 国产一区二区免费看| 色8久久人人97超碰香蕉987| 国产精品毛片a∨一区二区三区| 国产精品免费视频一区| 亚洲国产aⅴ天堂久久| 日本麻豆一区二区三区视频| 国产精品中文欧美| 精品视频在线免费看| 国产夜色精品一区二区av| 国产精品国产三级国产普通话蜜臀| 一区二区三区精品在线观看| 久久97超碰色| 在线亚洲高清视频| 久久女同精品一区二区| 亚洲精品免费视频| 国产一区二区三区视频在线播放| 色中色一区二区| 国产欧美日韩三区| 美女网站色91| 在线观看av一区二区| 国产亚洲精品bt天堂精选| 亚洲高清视频的网址| 成人一区在线看| 91精品免费在线| 一区二区高清视频在线观看| 国产成a人亚洲| 欧美大片国产精品| 亚欧色一区w666天堂| 色婷婷国产精品久久包臀| 国产丝袜欧美中文另类| 免费成人在线网站| 91麻豆精品国产91久久久更新时间| 亚洲三级小视频| 本田岬高潮一区二区三区| 精品sm捆绑视频| 日韩av在线发布| 欧美日韩一卡二卡| 亚洲美女在线国产| av激情成人网| 中文字幕一区二区三| 国产999精品久久久久久| 337p日本欧洲亚洲大胆色噜噜| 三级亚洲高清视频| 欧美色综合网站| 亚洲综合免费观看高清完整版在线| 成人黄色一级视频| 国产欧美日韩亚州综合 | 丝袜亚洲另类丝袜在线| 在线亚洲精品福利网址导航| 洋洋av久久久久久久一区| 在线观看亚洲精品| 午夜在线电影亚洲一区| 欧美精品乱人伦久久久久久| 日日夜夜免费精品视频| 51精品国自产在线| 久久99精品一区二区三区| 精品久久人人做人人爰| 国模冰冰炮一区二区| 日本一区二区综合亚洲| www.成人网.com| 一个色在线综合| 69av一区二区三区| 激情亚洲综合在线| 国产精品素人视频| 欧美在线观看禁18| 91香蕉视频污在线| 一区二区三区欧美视频| 6080日韩午夜伦伦午夜伦| 日本在线不卡视频一二三区| 久久夜色精品一区| 97se亚洲国产综合自在线| 一区二区在线免费观看| 欧美一区二区成人6969| 成人国产精品免费| 亚洲18影院在线观看| 久久久精品天堂| 在线视频欧美区| 国产一区二区三区在线观看精品| 成人免费一区二区三区视频| 欧美顶级少妇做爰| 成人黄页在线观看| 日韩在线观看一区二区| 久久久亚洲午夜电影| 欧美三级蜜桃2在线观看| 国内成人自拍视频| 一区二区欧美视频| 久久一二三国产| 欧美伦理电影网| 99久久99久久精品国产片果冻| 午夜精品成人在线| 中文字幕制服丝袜一区二区三区| 欧美日本国产视频| 97久久人人超碰| 国产精品996| 免费人成精品欧美精品 | 成人黄页在线观看| 毛片不卡一区二区| 亚洲一区二区三区四区在线 | 国产午夜精品美女毛片视频| 欧美唯美清纯偷拍| 成人国产一区二区三区精品| 午夜精品福利在线| 亚洲精品自拍动漫在线| 久久久久久亚洲综合影院红桃| 91国模大尺度私拍在线视频| 丁香六月综合激情| 精品在线观看视频| 青青草国产精品亚洲专区无| 亚洲福利视频一区二区| 最新日韩av在线| 亚洲国产经典视频| 国产清纯在线一区二区www| 欧美一级视频精品观看| 欧美乱妇20p| 欧美群妇大交群中文字幕| 日本高清无吗v一区| 91在线视频免费观看| 国产盗摄精品一区二区三区在线| 久久国产精品一区二区| 日韩精品成人一区二区三区| 亚洲成av人影院| 亚洲成人精品影院| 亚洲高清一区二区三区| 亚洲va在线va天堂| 亚洲va天堂va国产va久| 午夜久久久久久久久久一区二区| 亚洲电影在线播放| 视频一区免费在线观看| 丝袜美腿亚洲综合| 欧美96一区二区免费视频| 日韩高清一级片| 久久99国产精品免费网站| 国产一区二区三区免费看| 国产suv精品一区二区三区| 成人激情午夜影院| 欧洲另类一二三四区| 欧美日韩视频在线一区二区| 91精品国产综合久久精品图片 | 色一情一伦一子一伦一区| 色老头久久综合| 欧美日韩高清一区二区不卡| 7777精品伊人久久久大香线蕉经典版下载| 欧美日韩一区二区三区四区| 欧美精品1区2区| 久久亚洲一区二区三区四区| 欧美激情一区三区| 亚洲精品水蜜桃| 免费av成人在线| 国产大陆亚洲精品国产| 91视频观看视频| 91精品福利在线一区二区三区| 久久久久国色av免费看影院| 成人免费一区二区三区在线观看| 天天色综合成人网| 国产一区二区福利| 在线观看亚洲成人| 久久综合999| 一二三区精品福利视频| 精品一区二区三区的国产在线播放| 成人丝袜高跟foot| 欧美高清精品3d| 欧美激情资源网| 日韩高清电影一区| 99国产精品国产精品毛片| 欧美一区二区福利视频| 日韩伦理av电影| 久久aⅴ国产欧美74aaa| 在线视频中文字幕一区二区| 久久久久99精品一区| 日韩vs国产vs欧美| 91在线国内视频| 国产高清不卡二三区|