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

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

?? dvhdmirxutil.c

?? the HDMI(High Definition Multimedia Interface) driver code
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
//!	@param		bcnt(I)   : 儕僇僶儕乕梡僟儈乕怣崋弌椡夞悢
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
IW  _HdmiRxDrvIicRecovery(UB bBus, UB bCnt)
{
	IW ret = HDMIDRV_OK;
	return ret;
}

//*******************************************************************
//! @brief		GPIO彂崬傒
//! @retval		張棟寢壥<BR>
//! @param		id (I) :懳徾億乕僩抂巕偺ID斣崋愝掕<BR>
//! @param		lvl (I) :懳徾億乕僩抂巕傊偺弌椡儗儀儖愝掕<BR>
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/4/23
//*******************************************************************
IW _HdmiRxDrvGpioWrite(UB id, IB lvl)
{
	IW ret;
	ret = _dvGpioWrite(id, lvl);
	return ret;
}

//*******************************************************************
//! @brief		HDMI Drv 儘僌儗儀儖愝掕
//! @retval		曄峏慜偺僨僶僢僌儗儀儖
//! @param		lv (I) : 僨僶僢僌儗儀儖(壓婰偺OR傪巜掕偡傞偙偲)
//! @param				 0x00 儘僌弌椡柍岠
//! @param				 0x01 ASSERT儘僌桳岠
//! @param				 0x02 奜晹岞奐API 僩儗乕僗儘僌桳岠
//! @param				 0x04 撪晹娭悢僩儗乕僗儘僌桳岠
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/16
//*******************************************************************
UB _HdmiRxDrvChgLogLv(UB lv)
{
	UB old_lv;
	old_lv = gHdmiRxDrvDbgLvl;
	gHdmiRxDrvDbgLvl = lv;
	return old_lv;
}

/* 巄掕徻嵶僨僶僢僌弌椡 */
void HdmiRxDrvDebugPrint(char* format, ...)
{
	va_list list;
	int result;

	if (gHdmiRxDrvDbgLvl & 0x04) {
		va_start(list, format);
		result = vprintf(format, list);
		va_end( list );
	}
}

/* 巄掕僄儔乕僴儞僪儔乕 */
void HdmiRxDrvErrCatch(char* format, ...)
{
	va_list list;
	int result;

	if (gHdmiRxDrvDbgLvl & 0x01) {
		printf("[HDMI Drv Err] ");
		va_start(list, format);
		result = vprintf(format, list);
		va_end( list );
	}
}

//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%% f-3  private娭悢孮        %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
//*******************************************************************
//! @brief		IIC 彂崬傒梡僷儔儊乕僞愝掕
//! @retval		<BR>
//! @param		pWriteParam  (I/O) : IIC僪儔僀僶 API梡峔憿懱<BR>
//!	@param		pUtilParam  (I/O) : 撪晹巊梡峔憿懱
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static void SetWriteParam(T_IicSend* pWriteParam, const TdvHdmiRxIicParam* pUtilParam)
{
	pWriteParam->ch = pUtilParam->bCh;				// 巊梡Bus傪巜掕
	pWriteParam->add = pUtilParam->bDevAddr >> 1;	// 僨僶僀僗傾僪儗僗(7bit儌乕僪偵曄姺)
	pWriteParam->bcnt = pUtilParam->bNDataSize;		// 彂崬傒僶僀僩悢
	pWriteParam->p_data = pUtilParam->pbData;		// 彂崬傒僨乕僞傾僪儗僗
	pWriteParam->ack = pUtilParam->bAck;			// ACK乛NAK敾掕桳柍
	pWriteParam->cbPtr = NotifyIicWriteCB;			// 彂崬傒姰椆CB娭悢
	pWriteParam->cbPrm = &gWriteCbParam;			// 彂崬傒姰椆CB娭悢僷儔儊乕僞椞堟
}

//*******************************************************************
//! @brief		IIC 撉崬傒傒梡僷儔儊乕僞愝掕
//! @retval		<BR>
//! @param		pReadParam  (I/O) : IIC僪儔僀僶 API梡峔憿懱<BR>
//!	@param		pUtilParam  (I/O) : 撪晹巊梡峔憿懱
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static void SetReadParam(T_IicRcv* pReadParam, TdvHdmiRxIicParam* pUtilParam)
{
	pReadParam->ch = pUtilParam->bCh;				// 巊梡Bus傪巜掕
	pReadParam->add = pUtilParam->bDevAddr >> 1;	// 僨僶僀僗傾僪儗僗(7bit儌乕僪偵曄姺)
	pReadParam->bcnt = pUtilParam->bNDataSize;		// 撉崬傒僶僀僩悢
	pReadParam->p_data = pUtilParam->pbData;		// 撉崬傒僨乕僞傾僪儗僗
	pReadParam->ack = pUtilParam->bAck;				// ACK乛NAK敾掕桳柍
	pReadParam->cbPtr = NotifyIicReadCB;			// 撉崬傒姰椆CB娭悢
	pReadParam->cbPrm = &gReadCbParam;				// 撉崬傒姰椆CB娭悢僷儔儊乕僞椞堟
}

//*******************************************************************
//! @brief		僙儅僼僅ID庢摼
//! @retval		僙儅僼僅ID (0 < ret) : 惓忢廔椆<BR>
//!	@retval		偦偺懠 丗 堎忢廔椆
//! @param		semid (I)  丗僙儅僼僅ID<BR>
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static ID GetSemId(IW ch)
{
	ID ret;

	if (ch == DV_HDMIRX_DEF_IIC_CH) {
		ret = DV_HDMIRX_DEF_RES_SEM2;
	} else {
		ret = DVHDMI_E_INVAL;
	}
	return ret;
}

//*******************************************************************
//! @brief		僙儅僼僅憖嶌
//! @retval		張棟寢壥BR>
//! @param		semid (I)  丗僙儅僼僅ID<BR>
//! @param		semop(I) 丗僙儅僼僅憖嶌僼儔僌
//!						   儘僢僋(DV_HDMIRX_DEF_SEM_LOCK)
//!						   傾儞儘僢僋(DV_HDMIRX_DEF_SEM_UNLOCK) 
//! @param		timeout(I) : 僞僀儉傾僂僩抣 0:僞僀儉傾僂僩側(cè)偟 
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static ER SemOp(ID semid, IW semop, UW timeout)
{
	ER ercd = 0;

	if (semop == DV_HDMIRX_DEF_SEM_LOCK) {
		if (timeout > 0) {
			ercd = twai_sem(semid, (TMO)timeout);
		} else {
			ercd = wai_sem(semid);
		}
	} else if (semop == DV_HDMIRX_DEF_SEM_UNLOCK) {
		ercd = isig_sem(semid);
	} else {
		ercd = E_PAR;
	}
	return ercd;
}

//*******************************************************************
//! @brief		嫟捠僷儔儊乕僞敾掕
//! @retval		張棟寢壥BR>
//! @param		pInParam (I/O)丗撉傒彂偒懳徾IIC忣曬峔憿懱<BR>
//! @param		rw_mode (I): 撉傒彂偒儌乕僪庬暿 
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static IW ParamCheck(TdvHdmiRxIicParam * pInParam, IW rw_mode)
{
	IW ret;
	ret = HDMIDRV_OK;

	if ( pInParam== NULL ) {
		ret = DVHDMI_E_INVAL;
	}

	if ( pInParam->pbData == NULL || pInParam->bNDataSize <=0 ) {
		ret =DVHDMI_E_INVAL;
	}

	// 巊梡Bus偑0偱傕1偱傕側(cè)偄応崌
	if (pInParam->bCh != 2) {
		ret =DVHDMI_E_INVAL;
	}

	// 弶婜壔嵪傒敾掕
	if (gInitFlag == 0) {
		ret =DVHDMI_E_NONINIT;
	}
	
	// R/W儌乕僪傪愝掕
	pInParam->bMode = rw_mode;
	return ret;
}

//*******************************************************************
//! @brief		IIC bus 彂崬傒僒僽娭悢
//! @retval		張棟寢壥BR>
//! @param		pInParam (I/O):IIC僨僶僀僗忣曬峔憿懱<BR>
//! @note		<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static IW HdmiRxDrvIicWrite( TdvHdmiRxIicParam * pInParam )
{
	T_IicSend inParam;
	ID semid;
	UW timeout;
	ER ercd;
	IW result;
	IW ret = HDMIDRV_OK;

	// IIC捠怣僷儔儊乕僞愝掕
	SetWriteParam(&inParam, pInParam);

	// 僙儅僼僅ID偺庢摼
	semid = GetSemId(pInParam->bCh);

	// 僞僀儉傾僂僩抣庢摼
	timeout = (pInParam->nTimeOut > 0) ? pInParam->nTimeOut : 0;

	// 僙儅僼僅妉摼
	ercd = SemOp(semid, DV_HDMIRX_DEF_SEM_LOCK, timeout);
	switch (ercd) {
		case E_OK :		// 僙儅僼僅妉摼惉岟
			break;
		case E_TMOUT :	// 僙儅僼僅妉摼 僞僀儉傾僂僩
			ret = DVHDMI_E_SEM_TIMEOUT;
			goto End_Of_HdmiRxDrvIicWrite;
			break;
		default :		// 僙儅僼僅妉摼 僄儔乕
			ret = DVHDMI_E_KERNEL;
			goto End_Of_HdmiRxDrvIicWrite;
			break;
	}

#ifdef HDMI_IIC_SIMPLE_DLY
	// 僄儔乕僼儔僌傪弶婜壔
	gHdmiRxNotifyIicWriteTimeOut = 0;
#else
	// 婲彴梫媮梡偺帺僞僗僋ID傪庢摼
	get_tid(&gWupTaskId);
#endif

	// I2C捠怣憲怣奐巒
	result = _dvIicSend(&inParam);
	if (result != DV_E_OK ) {
		ret = result;
		_dvIicStop(inParam.ch);
		if (pInParam->bMode == DV_HDMIRX_DEF_WRITE) {
			SemOp(semid, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
#ifdef HDMI_IIC_SIMPLE_DLY
			// 僶僗奐曻懸偪
			WAIT(HDMI_IIC_WAIT);
#endif
		}
		goto End_Of_HdmiRxDrvIicWrite;
	}

#ifdef HDMI_IIC_SIMPLE_DLY
	// 彂崬傒姰椆CB懸偪
	ercd = SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_LOCK, gIicWrapTimeOut);
	if (ercd != E_OK) {
		// 僄儔乕帪偼憲庴怣嫮惂廔椆
		if (ercd == E_TMOUT) {
			// 憲庴怣懸偪梡僙儅僼僅偺夝彍
			gHdmiRxNotifyIicWriteTimeOut = 1;
			SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
		}
		_dvIicStop(inParam.ch);
		ret = DVHDMI_E_TIMEOUT;
	} else {
#else
	// 彂崬傒姰椆CB懸偪
	ercd = tslp_tsk((TMO)gIicWrapTimeOut);
	if (ercd != E_OK) {
		// 僞僀儉傾僂僩帪偼憲庴怣嫮惂廔椆
		ret = DVHDMI_E_TIMEOUT;
	} else {
#endif
		// 彂崬傒姰椆敾掕
		switch (gWriteCbParam.sts) {
			case 0:
				// 彂偒崬傒惓忢廔椆
				break;
			default:
			case 1:
				ret = DVHDMI_E_SEND_SLAVE;
				break;
			case 2:
				// 僨乕僞憲怣帪偵NACK傪庴怣 憡庤僨僶僀僗偑BUSY偺壜擻惈偑偁傞偨傔
				// 忋埵憌偱堦掕帪娫屻偵儕僩儔僀
				ret = DVHDMI_E_NACK;
				break;
		}
	}

	// 彂崬傒儌乕僪偺応崌偺傒僙儅僼僅傪奐曻
	// 撉傒崬傒偺応崌偼懕偗偰張棟傪峴偆偨傔暿搑奐曻偡傞
	if (pInParam->bMode == DV_HDMIRX_DEF_WRITE) {
		SemOp(semid, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
#ifdef HDMI_IIC_SIMPLE_DLY
		// 僶僗奐曻懸偪
		WAIT(HDMI_IIC_WAIT);
#endif
	}
End_Of_HdmiRxDrvIicWrite :
	return ret;
}

//*******************************************************************
//! @brief		IIC撉崬傒僒僽娭悢
//! @retval		張棟寢壥<BR>
//! @param		pInParam (I/O) : IIC僨僶僀僗忣曬峔憿懱<BR>
//!	@param		bReadMode(I) :  僒僽傾僪儗僗巜掕儌乕僪(0)
//!								僒僽傾僪儗僗巜掕柍偟儌乕僪(1)
//! @note		IIC捠怣傪峴偄儗僕僗僞偺抣傪撉傒崬傓<BR>
//! @attention	<BR>
//! @author		Y.Takeuchi
//! @date		2007/3/22
//*******************************************************************
static IW HdmiRxDrvIicRead( TdvHdmiRxIicParam * pInParam, UB bReadMode )
{
	T_IicRcv inReadParam; 
	UW temp;
	ID semid;
	ER ercd;
	IW result;
	UW timeout;
	IW ret = HDMIDRV_OK;

	// 僙儅僼僅ID偺庢摼
	semid = GetSemId(pInParam->bCh);

	if (bReadMode == 0) {
		// 僒僽傾僪儗僗巜掕撉崬傒儌乕僪
		// 僒僽傾僪儗僗巜掕偱撉傒崬傓応崌偼Write帪偵僙儅僼僅偺儘僢僋傪
		// 峴偭偰偄傞偨傔偙偙偱偼僙儅僼僅儘僢僋偼峴傢側(cè)偄

		// 撉崬傒僨乕僞僶僢僼傽偺愭摢偐傜儗僕僗僞傾僪儗僗偑奿擺偝傟偰偄傞
		// 撉崬傒偺慜偵僨僶僀僗偵懳偟偰儗僕僗僞傾僪儗僗傪彂偒崬傓偨傔
		// 撉崬傒僨乕僞僒僀僘傪戅旔偝偣偰儗僕僗僞傾僪儗僗傪愝掕偟
		// bNRegAddrSize僶僀僩彂偒崬傓
		if (pInParam->bNRegAddrSize <= 0) {
			ret = DVHDMI_E_INVAL;
			goto End_Of_HdmiRxDrvIicRead;
		}
		temp = pInParam->bNDataSize;
		pInParam->bNDataSize = pInParam->bNRegAddrSize;
		ret = HdmiRxDrvIicWrite(pInParam);
		if (ret != HDMIDRV_OK) {
			goto End_Of_HdmiRxDrvIicRead;
		}
		pInParam->bNDataSize = temp;
	} else {
		// 僒僽傾僪儗僗巜掕柍偟撉崬傒儌乕僪
		// 僞僀儉傾僂僩抣庢摼
		timeout = (pInParam->nTimeOut > 0) ? pInParam->nTimeOut : 0;
		// 僙儅僼僅妉摼
		ercd = SemOp(semid, DV_HDMIRX_DEF_SEM_LOCK, timeout);
	}

	// IIC捠怣僷儔儊乕僞愝掕
	SetReadParam(&inReadParam, pInParam);


#ifdef HDMI_IIC_SIMPLE_DLY
	// 僄儔乕僼儔僌傪弶婜壔
	gHdmiRxNotifyIicReadTimeOut = 0;
#else
	// 婲彴梫媮梡偺帺僞僗僋ID傪庢摼
	get_tid(&gWupTaskId);
#endif

	// IIC捠怣庴怣奐巒
	result = _dvIicRcv(&inReadParam);
	if (result != DV_E_OK ) {
		ret = result;
		_dvIicStop(inReadParam.ch);
		goto End_Of_HdmiRxDrvIicRead;
	}

#ifdef HDMI_IIC_SIMPLE_DLY
	// 彂崬傒姰椆CB懸偪
	ercd = SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_LOCK, gIicWrapTimeOut);
	if (ercd != E_OK) {
		// 僄儔乕帪偼憲庴怣嫮惂廔椆
		if (ercd == E_TMOUT) {
			// 憲庴怣懸偪梡僙儅僼僅偺夝彍
			gHdmiRxNotifyIicReadTimeOut = 1;
			SemOp(DV_HDMIRX_DEF_RES_SEM1, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
			_dvIicStop(inReadParam.ch);
		}
		ret = DVHDMI_E_TIMEOUT;
	} else {
#else
	// 彂崬傒姰椆CB懸偪
	ercd = tslp_tsk((TMO)gIicWrapTimeOut);
	if (ercd != E_OK) {
		// 僞僀儉傾僂僩帪偼憲庴怣嫮惂廔椆
		ret = DVHDMI_E_TIMEOUT;
		_dvIicStop(inReadParam.ch);
	} else {
#endif
		switch (gReadCbParam.sts) {
			case 0:
				// 惓忢廔椆
				break;
			default:
			case 1:
				ret = DVHDMI_E_SEND_SLAVE;
				break;
		}
	}

End_Of_HdmiRxDrvIicRead :
#ifdef HDMI_IIC_SIMPLE_DLY
	// 僶僗奐曻懸偪
	WAIT(HDMI_IIC_WAIT);
#endif
	// 僙儅僼僅曉媝
	SemOp(semid, DV_HDMIRX_DEF_SEM_UNLOCK, 0);
	return ret;
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区女| 99re热视频精品| 风流少妇一区二区| 中文在线一区二区| 夜夜精品视频一区二区 | 高清不卡在线观看| 欧美色精品在线视频| 国产欧美日韩在线| 免费人成在线不卡| 欧美自拍偷拍午夜视频| 欧美国产一区在线| 麻豆一区二区三| 欧美日韩精品三区| 亚洲欧美另类图片小说| 国产精品美女久久久久久久久| 久久男人中文字幕资源站| 欧美喷水一区二区| 亚洲精品视频在线观看网站| 国产夫妻精品视频| 精品国产亚洲在线| 日本网站在线观看一区二区三区| 在线免费观看成人短视频| 国产精品久久久久久久久免费相片 | 欧美性一二三区| 综合自拍亚洲综合图不卡区| 国产传媒久久文化传媒| www成人在线观看| 久久99精品久久久久婷婷| 91精品欧美一区二区三区综合在 | 久久精品夜色噜噜亚洲a∨| 美国十次了思思久久精品导航| 国产精品毛片久久久久久久| 国内精品嫩模私拍在线| 欧美精品一区二区三区蜜臀| 久久国产免费看| 精品对白一区国产伦| 国产自产视频一区二区三区| 欧美刺激脚交jootjob| 韩国一区二区在线观看| 精品日韩欧美一区二区| 国产一区二区免费在线| 国产日产精品一区| av在线一区二区三区| 自拍偷拍亚洲欧美日韩| 在线观看国产日韩| 午夜精品123| 精品毛片乱码1区2区3区| 国产一区二区在线观看免费| 日本一区二区三区电影| 99视频在线精品| 亚洲午夜羞羞片| 日韩视频在线观看一区二区| 国产一区二区三区观看| 日韩一区欧美小说| 欧美日韩不卡视频| 国产综合久久久久久鬼色| 国产精品卡一卡二卡三| 在线免费精品视频| 六月丁香婷婷色狠狠久久| 久久久99精品免费观看不卡| 色综合久久久久久久久| 日本在线播放一区二区三区| 久久久久国产一区二区三区四区| www.成人网.com| 日韩av一区二区三区四区| 久久亚洲影视婷婷| 欧美中文字幕一区二区三区亚洲| 免费在线观看成人| 亚洲特级片在线| 日韩欧美资源站| 成人高清视频免费观看| 丝袜亚洲另类欧美| 国产欧美精品一区| 欧美丰满美乳xxx高潮www| 国产精品77777竹菊影视小说| 亚洲青青青在线视频| 欧美成人bangbros| 91久久精品一区二区三| 国产精品影视网| 日日夜夜精品免费视频| 国产精品国产a| 日韩欧美国产午夜精品| 在线精品视频免费播放| 国产精品一区二区男女羞羞无遮挡| 一级日本不卡的影视| 国产丝袜在线精品| 日韩欧美黄色影院| 欧美综合一区二区| 丁香啪啪综合成人亚洲小说| 久久99热这里只有精品| 中文字幕成人网| 精品日韩在线观看| 91精品欧美综合在线观看最新| 99精品一区二区三区| 国产精品一区二区久激情瑜伽| 天天综合天天做天天综合| 最好看的中文字幕久久| 欧美国产综合一区二区| 精品999在线播放| 欧美一区二区视频在线观看2022| 在线免费观看视频一区| 成人激情小说乱人伦| 国产乱人伦偷精品视频不卡 | 久久99在线观看| 午夜精品久久久久久不卡8050| 亚洲女与黑人做爰| 国产精品私人影院| 国产日韩精品一区二区三区| 日韩免费高清视频| 欧美一区日本一区韩国一区| 欧美人狂配大交3d怪物一区| 在线亚洲一区观看| 色嗨嗨av一区二区三区| 色系网站成人免费| 一本色道久久综合精品竹菊| 色天天综合色天天久久| 色哟哟国产精品| 在线观看日韩av先锋影音电影院| 91浏览器打开| 在线一区二区观看| 欧美色综合天天久久综合精品| 欧洲精品一区二区三区在线观看| 色菇凉天天综合网| 欧美日韩国产另类不卡| 欧美日韩一区高清| 91精品国产高清一区二区三区蜜臀| 8x福利精品第一导航| 精品三级在线观看| 欧美激情一区三区| 亚洲色图欧洲色图婷婷| 亚洲午夜久久久久久久久电影院| 亚洲国产精品一区二区www| 午夜精品免费在线| 久久99国产精品久久99| 国产成人av影院| 在线视频欧美区| 日韩一卡二卡三卡四卡| 久久久亚洲高清| 日韩毛片一二三区| 污片在线观看一区二区| 激情综合一区二区三区| 不卡av在线免费观看| 欧美色男人天堂| 波多野结衣亚洲| 婷婷综合五月天| 无码av中文一区二区三区桃花岛| 天天av天天翘天天综合网 | 欧美日韩国产精品自在自线| 日韩欧美区一区二| 日本一区二区三区免费乱视频| 亚洲麻豆国产自偷在线| 日本欧美一区二区| 99热在这里有精品免费| 91精品国产aⅴ一区二区| 国产精品久久毛片| 视频一区免费在线观看| 高清beeg欧美| 欧美精品v国产精品v日韩精品| 欧美国产乱子伦| 日本伊人午夜精品| 色偷偷久久一区二区三区| 精品91自产拍在线观看一区| 亚洲美女偷拍久久| 国产成人综合亚洲网站| 3d动漫精品啪啪1区2区免费| 中文字幕在线不卡一区二区三区| 青青青伊人色综合久久| 97久久精品人人做人人爽| 2021久久国产精品不只是精品| 一区二区理论电影在线观看| 国产91丝袜在线播放| 日韩欧美电影在线| 亚洲成av人**亚洲成av**| 不卡视频在线看| 国产日韩欧美亚洲| 久久99精品一区二区三区三区| 日本道色综合久久| 中文字幕在线观看不卡| 国产成人精品www牛牛影视| 欧美一级一级性生活免费录像| 一区二区三区四区国产精品| 成人午夜av影视| 日本一区二区三区高清不卡| 精品一区二区三区视频| 67194成人在线观看| 亚洲一区av在线| 91影视在线播放| 国产精品国产三级国产专播品爱网| 免费成人结看片| 欧美一二三区在线观看| 天堂成人免费av电影一区| 欧美色综合久久| 婷婷丁香激情综合| 欧美日韩国产在线观看| 国产激情视频一区二区在线观看 | 精品一区二区三区免费视频| 欧美精选在线播放| 亚洲成av人片在www色猫咪| 欧美网站一区二区| 午夜婷婷国产麻豆精品|