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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ch365dll.h

?? C++編寫的針對CP5611 PCI卡的通訊程序Demo
?? H
?? 第 1 頁 / 共 2 頁
字號:
// 2003.09.10
// 2003.12.08 V1.2
// 2004.05.08 V1.3
// 2004.12.10 V1.5
// 2005.10.20 V1.6
//****************************************
//**  Copyright  (C)  W.ch  1999-2004   **
//**  Web:  http://www.winchiphead.com  **
//****************************************
//**  DLL for PCI interface chip CH365  **
//**  C, VC5.0                          **
//****************************************
//
// PCI總線接口芯片CH365的應(yīng)用層接口庫  V1.6
// 南京沁恒電子有限公司  作者: W.ch 2005.10
// CH365-DLL  V1.6 ,    Support: IO/MEM/INT
// 運行環(huán)境: Windows 98/ME, Windows 2000/XP
//

#ifndef		_CH365_DLL_H
#define		_CH365_DLL_H

#ifdef __cplusplus
extern "C" {
#endif


#define		mOFFSET( s, m )			( (ULONG) & ( ( ( s * ) 0 ) -> m ) )	// 定義獲取結(jié)構(gòu)成員相對偏移地址的宏

#ifndef		max
#define		max( a, b )				( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )	// 較大值
#endif

#ifndef		min
#define		min( a, b )				( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )	// 較小值
#endif

#ifdef		ExAllocatePool
#undef		ExAllocatePool						// 刪除帶TAG的內(nèi)存分配
#endif

#ifndef		NTSTATUS
typedef		LONG	NTSTATUS;					// 返回狀態(tài)
#endif


typedef	struct	_PCI_CONFIG {					// 定義PCI配置空間數(shù)據(jù)結(jié)構(gòu)
	USHORT			mPcVendorId;				// 00H 供應(yīng)商標(biāo)識
	USHORT			mPcDeviceId;				// 02H 設(shè)備標(biāo)識
	USHORT			mPcCommandReg;				// 04H 命令寄存器
	USHORT			mPcStatusReg;				// 06H 狀態(tài)寄存器
	UCHAR			mPcRevisionId;				// 08H 修改標(biāo)識
	UCHAR			mPcProgramIf;				// 09H 寄存器級編程接口
	UCHAR			mPcSubClass;				// 0AH 子類代碼
	UCHAR			mPcBaseClass;				// 0BH 基本分類代碼
	UCHAR			mPcCacheLine;				// 0CH 緩存行長度
	UCHAR			mPcLatenTimer;				// 0DH 延遲計數(shù)器
	UCHAR			mPcHeaderType;				// 0EH 頭標(biāo)類型
	UCHAR			mPcBistReg;					// 0FH 內(nèi)含自測試寄存器
	ULONG			mPcBaseAddr0;				// 10H 基址寄存器0
	ULONG			mPcBaseAddr1;				// 14H 基址寄存器1
	ULONG			mPcBaseAddr2;				// 18H 基址寄存器2
	ULONG			mPcBaseAddr3;				// 1CH 基址寄存器3
	ULONG			mPcBaseAddr4;				// 20H 基址寄存器4
	ULONG			mPcBaseAddr5;				// 24H 基址寄存器5
	ULONG			mPcCardCis;					// 28H
	USHORT			mPcSubSysVen;				// 2CH 子系統(tǒng)供應(yīng)商標(biāo)識
	USHORT			mPcSubSysDev;				// 2EH 子系統(tǒng)設(shè)備標(biāo)識
	ULONG			mPcExpansRom;				// 30H 擴展ROM基址寄存器
	UCHAR			mPcCapPtr;					// 34H
	UCHAR			mPcReserved1[3];			// 35H
	ULONG			mPcReserved2;				// 38H
	UCHAR			mPcInterLine;				// 3CH 中斷線寄存器
	UCHAR			mPcInterPin;				// 3DH 中斷引腳寄存器
	UCHAR			mPcMinGrant;				// 3EH
	UCHAR			mPcMaxLatency;				// 3FH
} mPCI_CONFIG, *mPPCI_CONFIG;

typedef	struct	_PCI_EXP_ROM {					// PCI擴展ROM的數(shù)據(jù)結(jié)構(gòu)
	UCHAR			mPerRomSig[4];				// 00H PCI擴展ROM簽名字符串'PCIR'
	USHORT			mPerVendorId;				// 04H 供應(yīng)商標(biāo)識
	USHORT			mPerDeviceId;				// 06H 設(shè)備標(biāo)識
	USHORT			mPerVpdPtr;					// 08H 重要產(chǎn)品數(shù)據(jù)指針
	USHORT			mPerStrucLen;				// 0AH PCI擴展ROM數(shù)據(jù)結(jié)構(gòu)的長度
	UCHAR			mPerRevision;				// 0CH PCI擴展ROM數(shù)據(jù)結(jié)構(gòu)的修改版本
	UCHAR			mPerProgramIf;				// 0DH 寄存器級編程接口
	UCHAR			mPerSubClass;				// 0EH 子類代碼
	UCHAR			mPerBaseClass;				// 0FH 基本分類代碼
	USHORT			mPerImageLen;				// 10H 映像長度
	USHORT			mPerImageRev;				// 12H 映像中代碼/數(shù)據(jù)的修改版本
	UCHAR			mPerCodeType;				// 14H 代碼類型
	UCHAR			mPerIndicator;				// 15H 映像指示標(biāo)志
	USHORT			mPerReserved;				// 16H
} mPCI_EXP_ROM, *mPPCI_EXP_ROM;

typedef	struct	_CH365_CFG_REG {				// CH365芯片的配置寄存器
	mPCI_CONFIG		mCh365CfgPci;				// 00H-3FH,共64字節(jié)為標(biāo)準(zhǔn)PCI配置空間
	UCHAR			mCh365CfgCtrl;				// 40H 芯片控制寄存器,高5位只讀
	UCHAR			mCh365CfgDin;				// 41H 8位總線輸入端口,只讀
	UCHAR			mCh365CfgState;				// 42H 芯片狀態(tài)寄存器,只讀
	UCHAR			mCh365CfgResv;				// 43H
} mCH365_CFG_REG, *mPCH365_CFG_REG;

typedef	struct	_CH365_IO_REG {					// CH365芯片的I/O空間
	UCHAR			mCh365IoPort[0xf0];			// 00H-EFH,共240字節(jié)為標(biāo)準(zhǔn)的I/O端口
	union	{									// 以字或者以字節(jié)為單位進行存取
		USHORT		mCh365MemAddr;				// F0H 存儲器接口: A15-A0地址設(shè)定寄存器
		struct	{								// 以字節(jié)為單位進行存取
			UCHAR	mCh365MemAddrL;				// F0H 存儲器接口: A7-A0地址設(shè)定寄存器
			UCHAR	mCh365MemAddrH;				// F1H 存儲器接口: A15-A8地址設(shè)定寄存器
		};
	};
	UCHAR			mCh365IoResv2;				// F2H
	UCHAR			mCh365MemData;				// F3H 存儲器接口: 存儲器數(shù)據(jù)存取寄存器
	UCHAR			mCh365I2cData;				// F4H I2C串行接口: I2C數(shù)據(jù)存取寄存器
	UCHAR			mCh365I2cCtrl;				// F5H I2C串行接口: I2C控制和狀態(tài)寄存器
	UCHAR			mCh365I2cAddr;				// F6H I2C串行接口: I2C地址設(shè)定寄存器
	UCHAR			mCh365I2cDev;				// F7H I2C串行接口: I2C設(shè)備地址和命令寄存器
	UCHAR			mCh365IoCtrl;				// F8H 芯片控制寄存器,高5位只讀
	UCHAR			mCh365IoBuf;				// F9H 本地數(shù)據(jù)輸入緩存寄存器
	UCHAR			mCh365Speed;				// FAH 芯片速度控制寄存器
	UCHAR			mCh365IoResv3;				// FBH
	UCHAR			mCh365IoTime;				// FCH 硬件循環(huán)計數(shù)寄存器
	UCHAR			mCh365IoResv4[3];			// FDH
} mCH365_IO_REG, *mPCH365_IO_REG;

typedef	struct	_CH365_MEM_REG {				// CH365芯片的存儲器空間
	UCHAR			mCh365MemPort[0x8000];		// 0000H-7FFFH,共32768字節(jié)為標(biāo)準(zhǔn)的存儲器單元
} mCH365_MEM_REG, *mPCH365_MEM_REG;

typedef	struct	_WIN32_COMMAND {				// 定義WIN32命令接口結(jié)構(gòu)
	union	{
		ULONG		mFunction;					// 輸入時指定功能代碼
		NTSTATUS	mStatus;					// 輸出時返回操作狀態(tài)
	};
	PVOID			mAddress;					// 起始地址,返回地址
	ULONG			mLength;					// 存取長度,返回后續(xù)數(shù)據(jù)的長度
	UCHAR			mBuffer[4];					// 數(shù)據(jù)緩沖區(qū),長度為0至32KB
} mWIN32_COMMAND, *mPWIN32_COMMAND;

// WIN32應(yīng)用層接口命令
#define		IOCTL_CH365_COMMAND		( FILE_DEVICE_UNKNOWN << 16 | FILE_ANY_ACCESS << 14 | 0x0f36 << 2 | METHOD_BUFFERED )	// 專用接口

#define		mWIN32_COMMAND_HEAD		mOFFSET( mWIN32_COMMAND, mBuffer )	// WIN32命令接口的頭長度

#define		mCH365_MAX_NUMBER		16			// 最多同時連接的CH365數(shù)

#define		mMAX_BUFFER_LENGTH		max( sizeof( mCH365_IO_REG ), sizeof( mCH365_MEM_REG ) )	// 數(shù)據(jù)緩沖區(qū)最大長度

#define		mMAX_COMMAND_LENGTH		( mWIN32_COMMAND_HEAD + mMAX_BUFFER_LENGTH )	// 最大數(shù)據(jù)長度加上命令結(jié)構(gòu)頭的長度

#define		mCH365_MEM_BASE_AUTO	( (PVOID)0xffffffff )	// 自動設(shè)定CH365的存儲器基址

#define		mCH365_INT_LINE_AUTO	0xffffffff				// 自動檢測CH365的中斷號


// 寄存器的位定義
#define		mBitAddr15Out			0x01		// 設(shè)定A15輸出值,1*:high,0:low
#define		mBitSysExtOut			0x02		// 設(shè)定SYS_EX輸出值,1:high,0*:low
#define		mBitIntAction			0x04		// 設(shè)定中斷激活狀態(tài),1:action,0*:inaction
#define		mBitPciIdDef			0x01		// 只讀,PCI設(shè)備標(biāo)識的當(dāng)前選擇,1*:default,0:external
#define		mBitPortHit				0x04		// 只讀,本地硬件定址功能的啟用狀態(tài),1:啟用,0*:禁用
#define		mBitInterRom			0x10		// 只讀,內(nèi)部Mini-ROM功能的啟用狀態(tài),1:啟用,0*:禁用
#define		mBitSysExtOe			0x40		// 只讀,SYS_EX輸出三態(tài)控制/輸出使能,1*:啟用,0:禁用
#define		mBitIntEnable			0x80		// 只讀,中斷功能的啟用狀態(tài),1:啟用,0*:禁用
#define		mBitI2cStatus			0x01		// I2C接口的操作控制和狀態(tài),1:開始/正在操作,0*:空閑/操作完成
#define		mBitI2cSclOut			0x80		// 選擇I2C接口的SCL輸出,1:SYS_EX,0*:A15
#define		mBitSpeedAct			0x07		// 速度控制,激活狀態(tài)的脈沖寬度,實際寬度為該值乘以30nS
#define		mBitSpeedInact			0x10		// 速度控制,非激活狀態(tài)的空閑寬度,1:前45nS/后15nS,0:前15nS/后15nS
#define		mBitSpeedPreft			0x80		// 速度控制,預(yù)取狀態(tài)控制位,1:預(yù)取位有效,0:預(yù)取位無效


// 應(yīng)用層接口的功能代碼
#define		mFuncNoOperation		0x00000000	// 無操作
#define		mFuncGetVersion			0x00000001	// 獲取驅(qū)動程序版本號
#define		mFuncGetIoBaseAddr		0x00000004	// 讀取I/O端口基址
#define		mFuncSetIoBaseAddr		0x00000005	// 設(shè)置I/O端口基址
#define		mFuncGetMemBaseAddr		0x00000006	// 讀取存儲器基址
#define		mFuncSetMemBaseAddr		0x00000007	// 設(shè)置存儲器基址,自動設(shè)定存儲器基址
#define		mFuncGetInterLine		0x00000008	// 讀取中斷號
#define		mFuncSetInterLine		0x00000009	// 設(shè)置中斷號,自動檢測中斷號
#define		mFuncWaitInterrupt		0x0000000a	// 等待中斷,直到CH365產(chǎn)生中斷
#define		mFuncAbortWaitInter		0x0000000b	// 放棄等待中斷,終止等待
#define		mFuncSetExclusive		0x0000000c	// 設(shè)置獨占使用
#define		mFuncReadIoByte			0x00000010	// 讀取輸入輸出端口,在同一個端口地址以字節(jié)為單位連續(xù)讀取
#define		mFuncReadIoWord			0x00000011	// 讀取輸入輸出端口,在同一個端口地址以字為單位連續(xù)讀取
#define		mFuncReadIoDword		0x00000012	// 讀取輸入輸出端口,在同一個端口地址以雙字為單位連續(xù)讀取
#define		mFuncReadIoBlock		0x00000013	// 讀取輸入輸出端口,每讀取一個字節(jié),端口地址加一
#define		mFuncWriteIoByte		0x00000014	// 寫入輸入輸出端口,在同一個端口地址以字節(jié)為單位連續(xù)寫入
#define		mFuncWriteIoWord		0x00000015	// 寫入輸入輸出端口,在同一個端口地址以字為單位連續(xù)寫入
#define		mFuncWriteIoDword		0x00000016	// 寫入輸入輸出端口,在同一個端口地址以雙字為單位連續(xù)寫入
#define		mFuncWriteIoBlock		0x00000017	// 寫入輸入輸出端口,每寫入一個字節(jié),端口地址加一
#define		mFuncReadMemByte		0x00000018	// 讀取存儲器/寄存器
#define		mFuncReadMemWord		0x00000019	// 讀取存儲器/寄存器
#define		mFuncReadMemDword		0x0000001a	// 讀取存儲器/寄存器
#define		mFuncWriteMemByte		0x0000001c	// 寫入存儲器/寄存器
#define		mFuncWriteMemWord		0x0000001d	// 寫入存儲器/寄存器
#define		mFuncWriteMemDword		0x0000001e	// 寫入存儲器/寄存器
#define		mFuncReadConfig			0x00000020	// 讀取PCI配置空間
#define		mFuncWriteConfig		0x00000021	// 寫入PCI配置空間
#define		mFuncReadBuffer1		0x00000024	// 讀取中斷命令緩沖區(qū)1
#define		mFuncWriteBuffer1		0x00000025	// 寫入中斷命令緩沖區(qū)1
#define		mFuncReadBuffer2		0x00000026	// 讀取中斷命令緩沖區(qū)2
#define		mFuncWriteBuffer2		0x00000027	// 寫入中斷命令緩沖區(qū)2


typedef		VOID	( CALLBACK	* mPCH365_INT_ROUTINE ) ( VOID );		// 中斷服務(wù)程序


HANDLE	WINAPI	CH365OpenDevice(  // 打開CH365設(shè)備,返回句柄,出錯則無效
	BOOL			iEnableMemory,  // 是否需要支持存儲器
	BOOL			iEnableInterrupt );  // 是否需要支持中斷


VOID	WINAPI	CH365CloseDevice( );  // 關(guān)閉CH365設(shè)備


ULONG	WINAPI	CH365GetVersion( );  // 獲得DLL版本號,返回版本號


ULONG	WINAPI	CH365DriverCommand(  // 直接傳遞命令給驅(qū)動程序,出錯則返回0,否則返回數(shù)據(jù)長度
	mPWIN32_COMMAND	ioCommand );  // 命令結(jié)構(gòu)的指針
// 該程序在調(diào)用后返回數(shù)據(jù)長度,并且仍然返回命令結(jié)構(gòu),如果是讀操作,則數(shù)據(jù)返回在命令結(jié)構(gòu)中,
// 返回的數(shù)據(jù)長度在操作失敗時為0,操作成功時為整個命令結(jié)構(gòu)的長度,例如讀一個字節(jié),則返回mWIN32_COMMAND_HEAD+1,
// 命令結(jié)構(gòu)在調(diào)用前,分別提供:命令功能代碼,起始地址(可選),存取數(shù)據(jù)的長度(可選),
// 命令結(jié)構(gòu)在調(diào)用后,分別返回:操作狀態(tài)代碼,返回的基址(可選),后續(xù)數(shù)據(jù)的長度(可選),
//   操作狀態(tài)代碼是由WINDOWS定義的代碼,可以參考NTSTATUS.H,
//   返回的基址只適用于下列命令:獲取I/O基址,獲取存儲器基址,獲取中斷號,對于其它命令則保持輸入時的起始地址
//   后續(xù)數(shù)據(jù)的長度是指讀操作返回的數(shù)據(jù)長度,數(shù)據(jù)存放在隨后的緩沖區(qū)中,對于寫操作一般為0


ULONG	WINAPI	CH365GetDrvVersion( );  // 獲得驅(qū)動程序版本號,返回版本號,出錯則返回0


BOOL	WINAPI	CH365GetIoBaseAddr(  // 獲取I/O端口的基址
	mPCH365_IO_REG	*oIoBaseAddr );  // 保存I/O端口基址的單元地址


BOOL	WINAPI	CH365SetIoBaseAddr(  // 設(shè)定I/O端口的基址
	mPCH365_IO_REG	iIoBaseAddr );  // 指定I/O端口基址


BOOL	WINAPI	CH365GetMemBaseAddr(  // 獲取存儲器的基址
	mPCH365_MEM_REG	*oMemBaseAddr );  // 保存存儲器基址的單元地址


BOOL	WINAPI	CH365SetMemBaseAddr(  // 設(shè)定存儲器的基址
	mPCH365_MEM_REG	iMemBaseAddr );  // 指定存儲器基址,為0則關(guān)閉存儲器,為-1則自動設(shè)定


BOOL	WINAPI	CH365GetIntLine(  // 獲取中斷號
	PULONG			oIntLine );  // 保存中斷號的單元地址


BOOL	WINAPI	CH365SetIntLine(  // 設(shè)定中斷號
	ULONG			iIntLine );  // 指定中斷號,為0則關(guān)閉中斷,為-1則自動檢測并設(shè)定


BOOL	WINAPI	CH365WaitInterrupt( );  // 等待中斷事件


BOOL	WINAPI	CH365AbortWaitInt( );  // 放棄等待中斷


BOOL	WINAPI	CH365SetIntRoutine(  // 設(shè)定中斷服務(wù)程序
	mPCH365_INT_ROUTINE	iIntRoutine );  // 指定中斷服務(wù)程序,為NULL則取消中斷服務(wù),否則在中斷時調(diào)用該程序


BOOL	WINAPI	CH365ReadIntCommand(  // 讀取中斷命令緩沖區(qū)
	mPWIN32_COMMAND	oCommand,  // 指向一個足夠大的緩沖區(qū),用于保存讀取的命令結(jié)構(gòu)
	ULONG			iCmdIndex );  // 中斷命令序號,為1或者2


BOOL	WINAPI	CH365WriteIntCommand(  // 寫入中斷命令緩沖區(qū)
	mPWIN32_COMMAND	iCommand,  // 指向作為中斷命令的命令結(jié)構(gòu)
	ULONG			iCmdIndex );  // 中斷命令序號,為1或者2


BOOL	WINAPI	CH365ReadIoByte(  // 從I/O端口讀取一個字節(jié)
	PVOID			iAddr,  // 指定I/O端口的地址
	PUCHAR			oByte );  // 指向一個字節(jié)單元,用于保存讀取的字節(jié)數(shù)據(jù)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91日韩一区二区三区| 成人av动漫在线| 国产精品女人毛片| 欧美日韩电影在线播放| 国产乱码精品一品二品| 亚洲电影视频在线| 国产精品网曝门| 日韩久久免费av| 色婷婷国产精品| 国产电影一区在线| 久久精品国产精品亚洲综合| 亚洲欧洲中文日韩久久av乱码| 亚洲精品在线观| 538prom精品视频线放| 91小视频在线| 成人天堂资源www在线| 美女网站在线免费欧美精品| 一区二区三区在线观看国产| 中文成人av在线| 久久影院午夜论| 日韩免费一区二区三区在线播放| 日本乱码高清不卡字幕| heyzo一本久久综合| 欧美精品少妇一区二区三区| 在线视频一区二区三| 97se亚洲国产综合在线| 国产91色综合久久免费分享| 韩国v欧美v日本v亚洲v| 蜜臀精品久久久久久蜜臀| 午夜精品久久久久久久99水蜜桃 | 精品伦理精品一区| 7777精品伊人久久久大香线蕉超级流畅 | 欧美xxxx在线观看| 91精品国产丝袜白色高跟鞋| 欧美精品自拍偷拍| 一本到高清视频免费精品| 一本久道久久综合中文字幕| 99久久精品国产一区二区三区| 国产精品自拍在线| 国产成人8x视频一区二区| 国产精品18久久久久久久久久久久| 精品一区二区三区免费观看| 久久99这里只有精品| 久草在线在线精品观看| 精品一区精品二区高清| 国产高清亚洲一区| 成人18精品视频| 91免费视频大全| 欧美亚洲国产一卡| 欧美日韩国产高清一区二区三区| 欧美巨大另类极品videosbest | 欧美大片国产精品| 精品国产a毛片| 国产蜜臀av在线一区二区三区| 中文欧美字幕免费| 亚洲精品国产无天堂网2021| 性欧美疯狂xxxxbbbb| 免费在线看一区| 国产乱人伦偷精品视频不卡| 国产91丝袜在线播放0| 91啪九色porn原创视频在线观看| 欧美性色综合网| 91精品国模一区二区三区| 精品国产乱码久久久久久久久| 欧美经典一区二区三区| 亚洲精品美国一| 蜜臀av一区二区三区| 国产麻豆一精品一av一免费| eeuss鲁片一区二区三区在线看| 国产欧美综合色| 亚洲美女电影在线| 日本美女视频一区二区| 国产成人自拍网| 欧美午夜精品久久久久久孕妇 | 欧美国产欧美亚州国产日韩mv天天看完整| 国产精品女上位| 视频一区欧美日韩| 国产精品自在在线| 欧美在线观看视频一区二区| 精品粉嫩超白一线天av| 亚洲欧美电影一区二区| 男女性色大片免费观看一区二区| 国产激情视频一区二区在线观看| 日本韩国一区二区| 26uuu国产日韩综合| 亚洲欧美一区二区三区国产精品| 肉色丝袜一区二区| 99视频一区二区三区| 欧美一区二区黄色| 国产精品国产成人国产三级| 日韩电影网1区2区| 91香蕉视频mp4| 精品1区2区在线观看| 亚洲成av人影院| 成人激情开心网| 欧美一级片在线看| 一区二区三区中文字幕| 国产精品一二三四五| 欧美日韩日日摸| 中文字幕 久热精品 视频在线| 视频一区在线视频| 一本色道久久综合狠狠躁的推荐| 日韩免费成人网| 首页亚洲欧美制服丝腿| 色婷婷久久99综合精品jk白丝| 精品国产电影一区二区| 日韩高清一区二区| 在线视频一区二区免费| 亚洲天堂精品在线观看| 国产福利一区二区三区视频在线| 在线不卡中文字幕| 亚洲一卡二卡三卡四卡| www.亚洲免费av| 国产亚洲欧美日韩俺去了| 男人的j进女人的j一区| 中文字幕一区二区日韩精品绯色| 国产伦精品一区二区三区视频青涩| 欧美一区二区视频观看视频| 亚洲成av人在线观看| 欧美性大战久久久| 夜夜嗨av一区二区三区 | 精品日韩99亚洲| 日韩精品91亚洲二区在线观看| 在线视频一区二区免费| 亚洲三级在线免费观看| 99精品视频在线观看| 国产精品久久久久久久久搜平片| 国产精品综合二区| 久久久久久免费| 激情文学综合丁香| 久久久久久日产精品| 国产激情偷乱视频一区二区三区| 久久久久久久久久久久久夜| 国产美女主播视频一区| 久久一二三国产| 国产成人精品网址| 国产精品污污网站在线观看 | 日韩欧美国产不卡| 美女视频免费一区| 欧美tk丨vk视频| 激情综合色播激情啊| 久久蜜臀中文字幕| 成人免费高清在线| 亚洲欧洲日本在线| 在线免费视频一区二区| 亚洲第一会所有码转帖| 日韩亚洲欧美在线| 国产资源在线一区| 国产精品色哟哟| 99久久免费国产| 亚洲永久精品国产| 欧美男人的天堂一二区| 久久er精品视频| 国产精品网友自拍| 欧美三级电影在线看| 全国精品久久少妇| 2014亚洲片线观看视频免费| 高清国产一区二区| 亚洲色图在线视频| 4438x成人网最大色成网站| 久久国产精品99精品国产| 国产精品毛片大码女人| 在线亚洲高清视频| 男男视频亚洲欧美| 国产精品欧美一区喷水| 色先锋久久av资源部| 日韩有码一区二区三区| 久久精品夜色噜噜亚洲a∨| www.欧美色图| 亚洲成人在线免费| 久久九九久精品国产免费直播| 91香蕉视频污| 精品一区二区三区日韩| 亚洲视频在线一区二区| 欧美一级淫片007| 国产二区国产一区在线观看| 亚洲午夜久久久久久久久电影网| 精品99999| 欧美性受极品xxxx喷水| 国产精品一色哟哟哟| 亚洲日本护士毛茸茸| 日韩三级视频在线观看| 不卡的看片网站| 免费一级片91| 亚洲欧美日韩中文字幕一区二区三区| 欧美在线观看视频一区二区| 国产乱妇无码大片在线观看| 亚洲成人动漫av| 国产精品九色蝌蚪自拍| 日韩精品最新网址| 色嗨嗨av一区二区三区| 国产福利一区二区| 免费在线看成人av| 一二三四区精品视频| 国产精品色呦呦| 午夜精品福利一区二区三区av| 久久蜜桃一区二区| 欧美日韩aaaaaa| 色综合天天综合给合国产| 国产精品中文欧美|