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

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

?? reg0299.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* **************************************************************************************
 *  Copyright (c) 2004 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: .c $             
 *
 * Description:
 * ============
 * 
 * 
 * Log:
 * ====
 * $Revision: $
 * Last Modified by $Author:  $ at $Modtime: $ 
 **************************************************************************************** */
#include "Config.h"		// Global Configuration - do not remove!

#ifdef FTA_SUPPORT

#ifdef SATELLITE_299

#include "Devices\Demodulator\0299\def.h"
#include "Devices\Demodulator\0299\0229.h"
#include "Devices\Demodulator\0299\reg0299.h"
#include "Devices\I2C\i2c.h"
#include "Kernel\Ker_API.h"
#include "Services\Include\_heap.h"

/******** AddReg  ************************************************************/
/*	Add a new register to the register map									 */
/*****************************************************************************/
void AddReg(DEMOD_HANDLE handle, int Id,char * Name,char Address,char Reset)
{
	REGISTER *pReg;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	
	pReg = &(sDemodData->RegMap[Id]);
	
	pReg->Addr	= Address;
	pReg->Reset	= Reset;
	pReg->Value	= 0x00;
}

/******** FieldCreateMask ****************************************************/
/*	Create the mask of the field according the informations store in the  	 */
/*	FIELD structure															 */
/*****************************************************************************/
unsigned char FieldCreateMask(DEMOD_HANDLE handle, int field)
{
	int i;
	unsigned char mask=0;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	
	/*	Create mask	*/
	for (i = 0; i < sDemodData->FieldMap[field].Bits; i++)
	{
		mask <<= 1 ;
		mask +=  1 ;
	}
	  
	mask = mask << sDemodData->FieldMap[field].Pos;
	
	return mask;
}

/******** AddField  **********************************************************/
/*	Add a field to the field map											 */
/*****************************************************************************/
void AddField(DEMOD_HANDLE handle, int RegId, int FieldId,char * Name, char Pos, char NbBits, char Type)
{
	FIELD *pField; 
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	
	pField = &(sDemodData->FieldMap[FieldId]);
	
	pField->Reg=	RegId;
	pField->Pos=	Pos;
	pField->Bits=	NbBits;
	pField->Type=	Type;
	pField->Mask=	FieldCreateMask(handle, FieldId);
}

/******** RegSetOneRegister **************************************************/
/*	Set Register value													  	 */
/*	INPUT :  data, register id												 */
/*****************************************************************************/
void RegSetOneRegister(DEMOD_HANDLE handle, int reg_id, unsigned char Data)   
{
	UINT8 i = 5;
	BOOL bRes = FALSE;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;

	while ( (FALSE == bRes) && (i != 0) )
	{
		bRes = i2c_write(DEMOD_WRITE_ID, sDemodData->RegMap[reg_id].Addr, Data);

		if (TRUE == bRes)
		{
			break;
		}

		Ker_SleepUs(10000UL);
		i--;
	} 

#ifdef _DEBUG
	if (FALSE == bRes)
	{
		tr_printf(("WARNING: RegSetOneRegister(%04x, %04x) FAILED!\n",
				   sDemodData->RegMap[reg_id].Addr, Data));
	}
#endif
	
	sDemodData->RegMap[reg_id].Value=Data;  
}

/******** RegGetOneRegister **************************************************/
/*	Get Register value													  	 */
/*	INPUT :  register id													 */
/*	RETURN :  data															 */     
/*****************************************************************************/
int RegGetOneRegister(DEMOD_HANDLE handle, int reg_id)         
{
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	UINT8 i = 5;
	BOOL bRes = FALSE;

	while ( (FALSE == bRes) && (i != 0) )
	{
		bRes = i2c_read(DEMOD_WRITE_ID, sDemodData->RegMap[reg_id].Addr, &(sDemodData->RegMap[reg_id].Value));

		if (TRUE == bRes)
		{
			break;
		}

		Ker_SleepUs(10000UL);
		i--;
	}

#ifdef _DEBUG
	if (FALSE == bRes)
	{
		tr_printf(("WARNING: RegGetOneRegister(%04x) FAILED!\n",
				   sDemodData->RegMap[reg_id].Addr));
	}
#endif
	
	return sDemodData->RegMap[reg_id].Value;
}

/******** RegSetRegisters *****************************************************/
/*	Set Registers values in burst mode 									  	 */
/*	INPUT : a buffer for data, first register address, last register address */
/*****************************************************************************/
void RegSetRegisters(DEMOD_HANDLE handle, int FirstReg, int NbRegs)
{
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	unsigned char *Data;
	UINT8 i = 5;
	BOOL bRes = FALSE;
		
	Data = (unsigned char *)MEM_Allocate(DEFAULT_HEAP, (NbRegs));
	
	/*	Read sDemodData->RegMap structure	*/
	for (i=0;i<NbRegs;i++)
	{
		Data[i]=sDemodData->RegMap[FirstReg+i].Value;
	}

	while ( (FALSE == bRes) && (i != 0) )
	{
		bRes = i2c_write_string(DEMOD_WRITE_ID, sDemodData->RegMap[FirstReg].Addr, NbRegs, Data, NbRegs);

		if (TRUE == bRes)
		{
			break;
		}

		Ker_SleepUs(10000UL);
		i--;
	} 

#ifdef _DEBUG
	if (FALSE == bRes)
	{
		tr_printf(("WARNING: RegSetRegisters(%04x) FAILED!\n",
				   sDemodData->RegMap[FirstReg].Addr));
	}
#endif

	MEM_Free(DEFAULT_HEAP, Data);
}

/******** RegGetRegisters ***************************************************/
/*	Get Registers values in burst mode 									  	*/
/*	INPUT : first register address, last register address 					*/
/****************************************************************************/
void RegGetRegisters(DEMOD_HANDLE handle, int FirstReg, int NbRegs)
{
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	unsigned char Data[16];
	UINT8 i = 5;
	BOOL bRes = FALSE;
	
    if (NbRegs > 16)
    {
        tr_printf(("RegGetRegisters: unexpected number of registers!!!\n"));
        return;
    }

	/* I2C access */
	while ( (FALSE == bRes) && (i != 0) )
	{
		bRes = i2c_read_string(DEMOD_WRITE_ID, sDemodData->RegMap[FirstReg].Addr, NbRegs, Data);

		if (TRUE == bRes)
		{
			break;
		}

		Ker_SleepUs(10000UL);
		i--;
	} 

#ifdef _DEBUG
	if (FALSE == bRes)
	{
		tr_printf(("WARNING: RegGetRegisters(%04x) FAILED!\n",
				   sDemodData->RegMap[FirstReg].Addr));
	}
#endif

	/* Update sDemodData->RegMap structure */
	for (i=0; i<NbRegs; i++)
	{
		sDemodData->RegMap[FirstReg+i].Value = Data[i];
	}
}

/******** RegReset ***********************************************************/
/*	Set Chip register values according Default Values stored in ValRegReset	 */
/*																			 */
/*****************************************************************************/
void RegReset( DEMOD_HANDLE handle )
{
	int reg ;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;

	for ( reg = 0 ; reg < NBREG ; reg++ )
	{
		RegSetOneRegister(handle, reg,sDemodData->RegMap[reg].Reset);
	}
}
  
/******** FieldSetVal ***************************************************************/
/*	Compute the new value of the register with the value of the field				*/
/*	Input : index of the field, value of the field			        				*/
/*	Output: NONE								  				      				*/
/************************************************************************************/
void FieldSetVal(DEMOD_HANDLE handle,int field, long fieldval)
{
	FIELD *pfield;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	
	pfield=&(sDemodData->FieldMap[field]);						/*	Just for code simplification	*/
	
	if(pfield->Type == DEMOD_SIGNED)
		fieldval = (fieldval > 0 ) ? fieldval : fieldval + (1<<pfield->Bits);	/*	compute signed fieldval	*/
  
	fieldval = pfield->Mask & (fieldval << pfield->Pos);	/*	Shift and mask value	*/
	sDemodData->RegMap[pfield->Reg].Value = (sDemodData->RegMap[pfield->Reg].Value & (~pfield->Mask)) + fieldval;	/*	Concat register value and fieldval	*/
}

/******** RegSetField ***********************************************************/
/*	Set Chip register bits of the field "field" to the value "value"			*/
/*	Input : index of the field and value to write						    	*/
/********************************************************************************/
void RegSetField(DEMOD_HANDLE handle, int field,int value)
{
	FIELD *pfield;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;
	
	pfield=&(sDemodData->FieldMap[field]);						/*	Just for code simplification   */
	RegGetOneRegister(handle,pfield->Reg);					/*	Read the register	*/
	FieldSetVal(handle,field,value);						/*	Compute new sDemodData->RegMap value */
	RegSetOneRegister(handle,pfield->Reg,sDemodData->RegMap[pfield->Reg].Value);      	/*	Write the register */
}

/******** FieldGetVal ***************************************************************/
/*	Compute the value of the field with the register value store in  REGMAP			*/
/*	Input : index of the field								        				*/
/*	Output: value of the field								        				*/
/************************************************************************************/
int FieldGetVal(DEMOD_HANDLE handle, int field)
{
	int value;
	FIELD *pfield;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;

	pfield = &(sDemodData->FieldMap[field]);						 /* Just for code simplification */
	value = (sDemodData->RegMap[pfield->Reg].Value & pfield->Mask) >> pfield->Pos;	/* Extract field */
	
	if ((pfield->Type == DEMOD_SIGNED) && (value & (1<<(pfield->Bits-1))))
	{
		/* Compute signed value */
		value = value - (1<<pfield->Bits);
	}
	
	return value;
}

/******** RegGetField ***************************************************************/
/*	Get Chip register Value (bitwise) then store Value in structure REGMAP			*/
/*	Input : index of the field								        				*/
/*	Output: value of the field								        				*/
/************************************************************************************/
int	 RegGetField(DEMOD_HANDLE handle, int field)
{
	FIELD *pfield;
	DEMOD_SAT_DATA *sDemodData = (DEMOD_SAT_DATA*)handle;

	pfield=&(sDemodData->FieldMap[field]);						/*	Just for code simplification	*/

	/* I2C Read : register address set-up */
	RegGetOneRegister(handle,pfield->Reg);					/*	Read the register	*/     

	return FieldGetVal(handle,field);
}

/********* RegInit ****************************************************************/
/*	This function initializes in memory the STV0197 registers					  */
/*	configure & initialize the REGISTERS : 8bit registers						  */
/*	configure & initialize the FIELD : subset of 8 bit registers				  */
/*  FIELD is for example a bit status, or a coefficient, etc ...				  */
/*	initialize in memory the default registers values of the STV0197			  */ 
/*  STV0197 Default values are stored in ValRegReset array						  */
/*  Define Which Registers to display in the register Map with MemReg array		  */		
/**********************************************************************************/
void RegInit(DEMOD_HANDLE handle)
{
	/* REGISTER INITIALISATION */
	/*	ID	*/
	AddReg(handle,R_ID,"ID",0x00,0xA1);
	AddField(handle,R_ID,ID,"ID",0,8,DEMOD_UNSIGNED);

	/*	RCR	*/
	AddReg(handle,R_RCR,"RCR",0x01,0x13);
	AddField(handle,R_RCR,K,"K",6,2,DEMOD_UNSIGNED);
	AddField(handle,R_RCR,DIRCLK,"DIRCLK",5,1,DEMOD_UNSIGNED);
	AddField(handle,R_RCR,M,"M",0,5,DEMOD_UNSIGNED);

	/*	MCR	*/
	AddReg(handle,R_MCR,"MCR",0x02,0x30);
	AddField(handle,R_MCR,STDBY,"STDBY",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_MCR,VCO,"VCO",6,1,DEMOD_UNSIGNED);
	AddField(handle,R_MCR,SERCLK,"SERCLK",3,1,DEMOD_UNSIGNED);
	AddField(handle,R_MCR,P,"P",0,3,DEMOD_UNSIGNED);

	/*	ACR	*/
	AddReg(handle,R_ACR,"ACR",0x03,0x00);
	AddField(handle,R_ACR,ACR,"ACR",0,8,DEMOD_UNSIGNED);

	/*	F22RR	*/
	AddReg(handle,R_F22FR,"F22RR",0x04,0x72);
	AddField(handle,R_F22FR,F22FR,"F22RR",0,8,DEMOD_UNSIGNED);

	/*	I2CRPT	*/
	AddReg(handle,R_I2CRPT,"I2CRPT",0x05,0x05);
	AddField(handle,R_I2CRPT,I2CT,"I2CT",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_I2CRPT,SCLT,"SCLT",2,1,DEMOD_UNSIGNED);
	AddField(handle,R_I2CRPT,SDAT,"SDAT",0,1,DEMOD_UNSIGNED);

	/*	DACR1	*/
	AddReg(handle,R_DACR1,"DACR1",0x06,0x84);
	AddField(handle,R_DACR1,DACMODE,"DACMODE",5,3,DEMOD_UNSIGNED);
	AddField(handle,R_DACR1,DACMSB,"DACMSB",0,4,DEMOD_UNSIGNED);

	/*	DACR2	*/
	AddReg(handle,R_DACR2,"DACR2",0x07,0xce);
	AddField(handle,R_DACR2,DACLSB,"DACLSB",0,8,DEMOD_UNSIGNED);

	/*	DISEQC	*/
	AddReg(handle,R_DISEQC,"DISEQC",0x08,0xe3);
	AddField(handle,R_DISEQC,LOCKOUTPUT,"LOCKOUTPUT",6,2,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQC,LOCKCONFIGURATION,"LOCKCONFIGURATION",5,1,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQC,UNMODULATEDBURST,"UNMODULATEDBURST",2,1,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQC,DISEQCMODE,"DISEQCMODE",0,2,DEMOD_UNSIGNED);

	/*	DISEQCFIFO	*/
	AddReg(handle,R_DISEQCFIFO,"DISEQCFIFO",0x09,0xFF);
	AddField(handle,R_DISEQCFIFO,DISEQCFIFO,"DISEQCFIFO",0,8,DEMOD_UNSIGNED);

	/*	DISEQCSTATUS	*/
	AddReg(handle,R_DISEQCSTATUS,"DISEQCSTATUS",0x0A,0xC6);
	AddField(handle,R_DISEQCSTATUS,INPORT,"INPUTPORT",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQCSTATUS,SDATINPUTSTATE,"SDATINPUTSTATE",6,1,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQCSTATUS,FIFOEMPTY,"FIFOEMPTY",1,1,DEMOD_UNSIGNED);
	AddField(handle,R_DISEQCSTATUS,FIFOFULL,"FIFOFULL",0,1,DEMOD_UNSIGNED);

	/*	RES	*/
	AddReg(handle,R_RES,"RES",0x0B,0x00);
	AddField(handle,R_RES,DEMOD_0299_RESERVED,"RESERVED",0,8,DEMOD_UNSIGNED);

	/*	IOCFG	*/
	AddReg(handle,R_IOCFG,"IOCFG",0x0C,0xf1);
	AddField(handle,R_IOCFG,OP1CONTROL,"OP1CONTROL",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_IOCFG,OP1VALUE,"OP1VALUE",6,1,DEMOD_UNSIGNED);
	AddField(handle,R_IOCFG,OP0CONTROL,"OP0CONTROL",5,1,DEMOD_UNSIGNED);
	AddField(handle,R_IOCFG,OP0VALUE,"OP0VALUE",4,1,DEMOD_UNSIGNED);
	AddField(handle,R_IOCFG,NYQUISTFILTER,"NYQUISTFILTER",1,2,DEMOD_UNSIGNED);
	AddField(handle,R_IOCFG,IQ,"IQ",0,1,DEMOD_UNSIGNED);

	/*	AGC1C	*/
	AddReg(handle,R_AGC1C,"AGC1C",0x0D,0x81);
	AddField(handle,R_AGC1C,DCADJ,"DCADJ",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_AGC1C,BETA_AGC1,"BETA_AGC1",0,3,DEMOD_UNSIGNED);

	/*	RTC	*/
	AddReg(handle,R_RTC,"RTC",0x0E,0x22);
	AddField(handle,R_RTC,ALPHA_TMG,"ALPHA_TMG",4,3,DEMOD_UNSIGNED);
	AddField(handle,R_RTC,BETA_TMG,"BETA_TMG",0,3,DEMOD_UNSIGNED);

	/*	AGC1R	*/
	AddReg(handle,R_AGC1R,"AGC1R",0x0F,0xd9);
	AddField(handle,R_AGC1R,IAGC,"IAGC",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_AGC1R,AGC1_REF,"AGC1_REF",0,6,DEMOD_UNSIGNED);

	/*	AGC2O	*/
	AddReg(handle,R_AGC2O,"AGC2O",0x10,0x3e);
	AddField(handle,R_AGC2O,AGC2COEF,"AGC2COEF",5,3,DEMOD_UNSIGNED);
	AddField(handle,R_AGC2O,AGC2_REF,"AGC2_REF",0,5,DEMOD_UNSIGNED);

	/*	TLSR	*/
	AddReg(handle,R_TLSR,"TLSR",0x11,0x74);
	AddField(handle,R_TLSR,STEP_MINUS,"STEP_MINUS",4,4,DEMOD_UNSIGNED);
	AddField(handle,R_TLSR,STEP_PLUS,"STEP_PLUS",0,4,DEMOD_UNSIGNED);

	/*	CFD	*/
	AddReg(handle,R_CFD,"CFD",0x12,0x77);
	AddField(handle,R_CFD,CFD_ALGO,"CFD_ALGO",7,1,DEMOD_UNSIGNED);
	AddField(handle,R_CFD,BETA_FC,"BETA_FC",4,3,DEMOD_UNSIGNED);
	AddField(handle,R_CFD,FDTC,"FDTC",2,2,DEMOD_UNSIGNED);
	AddField(handle,R_CFD,LDL,"LDL",0,2,DEMOD_UNSIGNED);

	/*	ACLC	*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合在线| 男女性色大片免费观看一区二区 | 欧美乱妇15p| 亚洲九九爱视频| 色国产精品一区在线观看| 亚洲精品国产无天堂网2021| 欧美美女激情18p| 欧美电影一区二区| 欧美一区二区在线免费播放| 欧美性受xxxx| 日韩三级视频中文字幕| 91精品国产一区二区三区蜜臀| 制服.丝袜.亚洲.中文.综合| 亚洲激情中文1区| 欧美精品一区二区三区在线播放| 精品视频在线看| 亚洲最色的网站| 日韩一区二区精品| 国产麻豆一精品一av一免费 | 国产成人在线影院| 国产精品久久久久久久岛一牛影视| 99re免费视频精品全部| 一区二区视频免费在线观看| 欧美一区二区日韩| 成人精品视频一区二区三区尤物| 亚洲一区二区五区| 久久久久国产一区二区三区四区| 99精品国产99久久久久久白柏| 亚洲成av人片在线| 中文字幕成人在线观看| 欧美日韩成人综合天天影院 | 五月婷婷综合激情| 国产亚洲一区字幕| 777午夜精品视频在线播放| 国产精品一区二区三区乱码| 亚洲精品免费一二三区| 精品国产一区二区国模嫣然| 91天堂素人约啪| 精品一区二区三区蜜桃| 综合激情成人伊人| 久久亚洲精品小早川怜子| 日本精品一级二级| 高清在线观看日韩| 日本成人中文字幕| 亚洲蜜臀av乱码久久精品| 精品国产一区二区三区久久影院 | 亚洲欧洲美洲综合色网| 91精品国产一区二区三区蜜臀 | 成人av在线观| 精品在线免费观看| 亚洲18女电影在线观看| 自拍偷在线精品自拍偷无码专区| 日韩你懂的在线播放| 欧洲一区在线电影| 丁香亚洲综合激情啪啪综合| 美女爽到高潮91| 亚洲成人高清在线| 亚洲狠狠丁香婷婷综合久久久| 亚洲精品在线一区二区| 91精品国产福利在线观看| 日本乱码高清不卡字幕| 91色综合久久久久婷婷| 成人性生交大片免费看在线播放 | 国产一区二区三区在线观看免费| 亚洲gay无套男同| 日韩毛片高清在线播放| 欧美高清在线精品一区| 久久久精品影视| 欧美va亚洲va在线观看蝴蝶网| 制服丝袜国产精品| 91精品国产综合久久久久| 欧美日韩免费一区二区三区 | 日韩影院精彩在线| 亚洲一区二区三区四区在线 | 精品人在线二区三区| 在线播放一区二区三区| 欧美日韩成人一区二区| 欧美色精品天天在线观看视频| 99久久精品国产一区二区三区| jlzzjlzz亚洲女人18| 成人动漫一区二区三区| 99re亚洲国产精品| 色狠狠色狠狠综合| 欧美日韩国产高清一区二区三区 | 精品国产一区二区三区av性色 | 成人动漫一区二区三区| www.激情成人| 91色porny| 在线看国产日韩| 欧美日韩黄视频| 日韩女优av电影| 国产三级精品三级在线专区| 国产精品免费丝袜| 亚洲精品亚洲人成人网| 亚洲一区av在线| 免费在线观看成人| 国产麻豆精品一区二区| hitomi一区二区三区精品| 91色porny蝌蚪| 日韩一级黄色片| 国产三级精品在线| 一区二区三区影院| 蜜桃91丨九色丨蝌蚪91桃色| 狠狠色丁香婷婷综合| 成人ar影院免费观看视频| 一本大道久久a久久精二百| 欧美日韩国产色站一区二区三区| 日韩欧美你懂的| 国产精品久久久久久妇女6080| 亚洲欧美电影院| 蜜臀精品一区二区三区在线观看 | 色狠狠色噜噜噜综合网| 日韩欧美一级精品久久| 国产精品久久久久一区| 午夜欧美在线一二页| 激情文学综合插| 91免费视频观看| 日韩欧美中文字幕制服| 中文字幕视频一区| 午夜久久久久久久久久一区二区| 狠狠色丁香婷婷综合久久片| 色哟哟精品一区| 久久亚洲春色中文字幕久久久| 亚洲欧美日韩在线| 久久国产福利国产秒拍| 欧美亚一区二区| 国产欧美一区二区精品秋霞影院 | 精品国产乱码久久久久久闺蜜| 中文字幕在线不卡一区| 麻豆久久久久久久| 在线欧美一区二区| 国产日韩影视精品| 青草国产精品久久久久久| 91小视频在线| 国产喷白浆一区二区三区| 日日摸夜夜添夜夜添国产精品| www.久久久久久久久| 精品国产区一区| 肉色丝袜一区二区| 91尤物视频在线观看| 国产婷婷一区二区| 久久99热这里只有精品| 欧美精选在线播放| 亚洲精品一二三四区| 成人av在线观| 欧美国产1区2区| 国产一区二区三区观看| 欧美一级精品在线| 亚洲国产精品久久不卡毛片| 成人免费高清视频| 久久久精品日韩欧美| 裸体一区二区三区| 欧美精品少妇一区二区三区| 亚洲精品乱码久久久久久日本蜜臀| 国产精品一卡二卡| 2021久久国产精品不只是精品| 丝袜诱惑制服诱惑色一区在线观看| 91丨国产丨九色丨pron| 亚洲色图另类专区| 99久免费精品视频在线观看 | 一本久久a久久精品亚洲| 中国色在线观看另类| 国产麻豆精品视频| 久久免费视频色| 久热成人在线视频| 欧美zozo另类异族| 精品亚洲porn| 欧美精品一区二区三区视频 | 午夜电影一区二区| 欧美午夜精品电影| 午夜精品一区二区三区电影天堂 | 一区二区三区四区av| 色综合一区二区三区| 亚洲欧美色综合| 日本韩国欧美在线| 亚洲国产人成综合网站| 欧美日韩黄色影视| 麻豆久久一区二区| 国产校园另类小说区| 粉嫩嫩av羞羞动漫久久久| 国产欧美日韩亚州综合 | 欧美男男青年gay1069videost| 亚洲一区在线视频| 欧美美女网站色| 久久99久久99小草精品免视看| 亚洲精品在线电影| 国产91清纯白嫩初高中在线观看| 中文一区二区在线观看| 91小视频在线| 婷婷一区二区三区| 久久综合色8888| 99久久精品国产网站| 亚洲一区二区五区| 精品理论电影在线| 成人a免费在线看| 亚洲成人av在线电影| 精品国产凹凸成av人网站| 成人不卡免费av| 亚洲丶国产丶欧美一区二区三区| 日韩亚洲欧美成人一区|