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

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

?? le1vediag.c

?? Zalink50114----TDMoIP芯片驅動源碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*****************************************************************************
 * 版權所有 (C)2001-2005, 深圳市中興通訊股份有限公司。
 * 
 * 文件名稱:    Diagnose_prj_lib.c
 * 文件標識:    
 * 內容摘要:    診斷模塊源文件
 * 其它說明: 
 * 當前版本:    V2.6.0.3
 * 作    者:           史宏鋒133458
 * 完成日期:       年  月  日
 * 當前責任人-1:史宏鋒133458
 * 當前責任人-2:
 * 歷史責任人-3: 
 * 歷史責任人-2:
 * 歷史責任人-1:
 *
 * 修改記錄1:   
 *    修改日期: 
 *    版 本 號: 
 *    修 改 人: 
 *    修改內容: 
 * 修改記錄2:…
 *****************************************************************************/
/* 頭文件包含 */
#include "../Diagnose/include/Diag_prj_ex.h"
#include "le1veFpgalib.h"
#include "le1veFpgaDma.h"

 /* 常量定義*/

/* 文件內部使用的宏*/
 
/*  文件內部使用的數據類型*/
#define LE1VE_CPLD_OFFSET 0x1F00
#define LE1VE_FPGA_OFFSET 0x500
/*  全局變量*/
extern UINT16 b_physIfType(UINT8 unitNum);
extern UINT32 drv_pm4354ReadReg(UINT32 slotNum, UINT8 chip, UINT32 addr, UINT8 i);
zlStatusE  le1veDignoseDisplayClockinfo(UINT32 slot, char *buff);
extern LE1VE_PCI_DRV_CTRL  *gpLe1veDrvCtrl[];
/*  本地變量(即靜態全局變量)*/
 
/*  局部函數原型 */
/******************************************************
 Function:
  drv_le1veBufferShow()

 Description:
  打印BD Buffer信息
 Inputs:
  pDrv LE1VE_PCI_DRV_CTRL指針
  buffer 回顯字符串指針
 Outputs:
  buffer 

 Returns:
   OK or ERROR
 Remarks:
  *******************************************************/
int drv_le1veBDShow(LE1VE_PCI_DRV_CTRL *pDrv, char *buffer)
{
   int rxIndex = 0;
   int txIndex = 0;
   LE1VE_RMD *pRmd = NULL;
   LE1VE_TMD *pTmd = NULL;
   UINT32 tmp_le1veRMD0 = 0;
   UINT32 tmp_le1veTMD0 = 0;
   
   
   if((NULL == pDrv) || (NULL == buffer))
       return ERROR;
   /* 回顯Rx*/
   sprintf((buffer+strlen(buffer)),"Rx BD Table:\n");
   /*遍列BD 接受表*/

   while(rxIndex<pDrv->rringSize)
   {
       pRmd = pDrv->pRring + rxIndex;
	   tmp_le1veRMD0 = Drv_Swap32(pRmd->RMD0);
	   if( tmp_le1veRMD0 & RMD0_OWN)
	   {
	       sprintf((buffer+strlen(buffer)),"Rx Buffer Index %d hold a packet Descriptor:0x%08x \tbuffer pointer:%08x\n",
		   	rxIndex, tmp_le1veRMD0, Drv_Swap32(mapPhysToVirt(pRmd->RMD1)));    
	   }
       else if(Drv_Swap32(mapPhysToVirt(pRmd->RMD1)) != 0)
       {
           sprintf((buffer+strlen(buffer)),"Rx Buffer Index %d is free Descriptor:0x%08x\tbufer pointer:%08x\n",
		   	rxIndex, tmp_le1veRMD0, Drv_Swap32(mapPhysToVirt(pRmd->RMD1)));
       }
	   else
	   {
	       sprintf((buffer+strlen(buffer)),"Rx Buffer Index %d ERROR Descriptor:0x%08x\n",rxIndex,tmp_le1veRMD0);

	   }
	   rxIndex++;
       
   }
   
   /* 回顯Tx*/
   sprintf((buffer+strlen(buffer)),"Tx BD Table:\n");
   /*遍列BD 發送表*/
   while(txIndex < pDrv->tringSize) 
   {
       pTmd = pDrv->pTring + txIndex;
	   tmp_le1veTMD0 = Drv_Swap32(pTmd->TMD0) ;
	   if(tmp_le1veTMD0 & TMD0_OWN)
	   {
	       sprintf((buffer+strlen(buffer)),"Tx Buffer Index %d has a packet Descriptor:0x%08x\tbuffer pointer:%08x\n",
		   	txIndex, tmp_le1veTMD0, Drv_Swap32(mapPhysToVirt(pTmd->TMD1)));    
	   }
       else if(Drv_Swap32(mapPhysToVirt(pTmd->TMD1)) != 0)
       {
           sprintf((buffer+strlen(buffer)),"Tx Buffer Index %d to be freed Descriptor:0x%08x\tbufer pointer:%08x\n",
		   	txIndex, tmp_le1veTMD0, Drv_Swap32(mapPhysToVirt(pTmd->TMD1)));
       }
	   else
	   {
	       sprintf((buffer+strlen(buffer)),"Tx Buffer Index %d not used\n",txIndex);
	   }
	   txIndex++;
   }
   return OK;
}

/******************************************************
 Function:
  drv_le1veShowCardInfo()

 Description:
  打印E1VE板基本信息
 Inputs:
  slotNum 槽位號
  buffer 回顯字符串指針
 Outputs:
  buffer 

 Returns:
   OK or ERROR
 Remarks:
  *******************************************************/
int drv_le1veShowCardInfo(int slotNum, char *buffer)
{
     int i,j;
     UINT32 value;
     if(CARD_TMD_OVER_IP_4_1 == b_physIfType(slotNum))
     {
         sprintf(buffer,"========\tSlot: %d E1VE Card\t ========\n",slotNum);
     }
     else
     {
         sprintf(buffer,"========\tSlot: %d T1VE Card\t========\n",slotNum);
     }
     sprintf(buffer+strlen(buffer),"Hardware: PM4354\t Zl50114\n");
     sprintf(buffer+strlen(buffer),"PM4354 Key Register Value:");
     for(j=0;j<4; j++)
     {
         sprintf(buffer+strlen(buffer),"\nPort %d",j);
	     for(i=0;i<=0xFF;i++)
	     {  		
	         if (0 == (i % 16))
	             sprintf ((buffer+strlen(buffer)),"\n%08x:", i);
			 value = drv_pm4354ReadReg(slotNum, 0, i, j);
	         sprintf((buffer+strlen(buffer)),"%02x ", (value & 0xFF));
	     }
     }
	 sprintf(buffer+strlen(buffer),"\nkey register:\n");
	 sprintf(buffer+strlen(buffer),"reg 0x0 : 0-2.048 E1 1 - 1.544 T1\n");
	 sprintf(buffer+strlen(buffer),"reg 0x6 : \n");
     sprintf(buffer+strlen(buffer),"reg 0x1D : bit 1 : 1 - full  0 - empty  bit 0: 1 -slip clear on read\n");
	 sprintf(buffer+strlen(buffer),"reg 0x21 : bit 1 : 1 - full  0 - empty  bit 0: 1 -slip clear on read\n");
	 sprintf(buffer+strlen(buffer),"reg 0xbb : bit [1:0]sync clock selection 0-port 0 1-port 1 2-port 2 3-port3\n");
	 sprintf(buffer+strlen(buffer),"reg 0xF9 : bit[2-0] threshold settings for the incoming signal\n");

     strcat(buffer,"\n\nZl5011x ADM Block Key Register Value:");
     for(i=0;i<=0x48;i=i+4)
     {
        if(0 ==(i % 16))
	     sprintf((buffer+strlen(buffer)),"\n%08x:",i);
	 ZL5011X_REG_READ(slotNum, ZL5011X_ADM_BASE + i, &value);
	 sprintf((buffer+strlen(buffer)),"%08x ", value);
     }
     sprintf((buffer+strlen(buffer)),"\nZl5011x GM Block key Register Value:\t\n");
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x0, &value);
	 sprintf((buffer+strlen(buffer)),"gm_head_reg(0x0):\t %08x\tHead register for storing the starting address of the first (head) granule\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x4, &value);
	 sprintf((buffer+strlen(buffer)),"gm_tail_reg(0x4):\t %08x\tTail register for storing the starting address of the (tail) granule\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x8, &value);
	 sprintf((buffer+strlen(buffer)),"gm_grn_cnt_reg(0x8):\t %08x\tStoring the number of free granules\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0xc, &value);
	 sprintf((buffer+strlen(buffer)),"gm_cnt_limit(0xc):\t %08x\tStoring the threshold for free granule counter\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x10, &value);
	 sprintf((buffer+strlen(buffer)),"gm_int_mask(0x10):\t %08x\tInterrupt mask bits\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x14, &value);
	 sprintf((buffer+strlen(buffer)),"gm_adm_int_reg(0x14):\t %08x\tADM interrupt register\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x1c, &value);
	 sprintf((buffer+strlen(buffer)),"gm_gnt_cnt(0x14):\t %08x\tTotal number of granted granules\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x20, &value);
	 sprintf((buffer+strlen(buffer)),"gm_rls_cnt(0x20):\t %08x\tTotal number of released granules\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x100, &value);
	 sprintf((buffer+strlen(buffer)),"gm_pla_gnt_cnt(0x100):\t %08x\tGranted granules to PLA\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x104, &value);
	 sprintf((buffer+strlen(buffer)),"gm_prx_gnt_cnt(0x104):\t %08x\tGranted granules to PRX\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x108, &value);
	 sprintf((buffer+strlen(buffer)),"gm_cpu_gnt_cnt(0x108):\t %08x\tGranted granules to CPU\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x10c, &value);
	 sprintf((buffer+strlen(buffer)),"gm_rtp_gnt_cnt(0x10c):\t %08x\tGranted granules to PE\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x110, &value);
	 sprintf((buffer+strlen(buffer)),"gm_pla_rls_cnt(0x100):\t %08x\tReleased granules from PLA\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x114, &value);
	 sprintf((buffer+strlen(buffer)),"gm_tfm_rls_cnt(0x114):\t %08x\tReleased granules from TFM\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x118, &value);
	 sprintf((buffer+strlen(buffer)),"gm_tfq_rls_cnt(0x118):\t %08x\tReleased granules from TFQ\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x11c, &value);
	 sprintf((buffer+strlen(buffer)),"gm_ptx_rls_cnt(0x11c):\t %08x\tReleased granules from PTX\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x120, &value);
	 sprintf((buffer+strlen(buffer)),"gm_pkq_rls_cnt(0x120):\t %08x\tReleased granules from PKQ\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x124, &value);
	 sprintf((buffer+strlen(buffer)),"gm_pkc_rls_cnt(0x124):\t %08x\tReleased granules from PKC\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x128, &value);
	 sprintf((buffer+strlen(buffer)),"gm_cpu_rls_cnt(0x128):\t %08x\tReleased granules from CPU\n",value);
     ZL5011X_REG_READ(slotNum, ZL5011X_GM_BASE + 0x12c, &value);
	 sprintf((buffer+strlen(buffer)),"gm_rtp_rls_cnt(0x12c):\t %08x\tReleased granules from PE\n",value);
 
     sprintf((buffer+strlen(buffer)),"Zl5011x MM Block key Register Value:\t\n");
     ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x0, &value);
	 sprintf((buffer+strlen(buffer)),"GRNBASE(0x0):\t\t %08x\tBase address of granule data memory area\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x4, &value);
	 sprintf((buffer+strlen(buffer)),"GRNDESBASE(0x4):\t %08x\tBase address of granule descriptor memory area\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x8, &value);
	 sprintf((buffer+strlen(buffer)),"IMEMSTATUS(0x8):\t %08x\tIndicates a failing internal memory\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x10, &value);
	 sprintf((buffer+strlen(buffer)),"IMEMSTATUS(0xc):\t %08x\tExternal Memory interface control\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x14, &value);
	 sprintf((buffer+strlen(buffer)),"EMEMENB(0x14):\t\t %08x\tExternal Memory interface control\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x20, &value);
	 sprintf((buffer+strlen(buffer)),"EMEMPARITY1(0x20):\t %08x\tExternal Memory Parity Configuration\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x24, &value);
	 sprintf((buffer+strlen(buffer)),"EMEMPARITY2(0x24):\t %08x\tExternal Memory Parity Error Interrupt Trip Point\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_MM_BASE + 0x28, &value);
	 sprintf((buffer+strlen(buffer)),"EMEMPTYCNT(0x28):\t %08x\tExternal Memory Parity Status\n",value);

	 sprintf((buffer+strlen(buffer)),"Zl5011x PAC Block key Register Value:\t\n");
	 ZL5011X_REG_READ(slotNum, ZL5011X_PAC_BASE + 0x4, &value);
	 sprintf((buffer+strlen(buffer)),"pac_setup(0x4):\t\t %08x\tDefines PAC operating modes, TDM data rate,differential timestamp sampling frequency\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PAC_BASE + 0x24c, &value);
	 sprintf((buffer+strlen(buffer)),"pac_status(0x24c):\t %08x\tInterrupts\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PAC_BASE + 0x250, &value);
	 sprintf((buffer+strlen(buffer)),"pac_mask(0x250):\t %08x\tMasks for interrupts\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PAC_BASE + 0x254, &value);
	 sprintf((buffer+strlen(buffer)),"pac_clear(0x254):\t %08x\tInterrupt clear commands\n",value);

	 sprintf((buffer+strlen(buffer)),"Zl5011x PKC Block key Register Value:\t\n");
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x48, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_INT_SRC(0x48):\t %08x\tInterrupt is pending\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x4c, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_INT_MASK(0x4c):\t %08x\tIMask the pending interrupt\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x50, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_INT_POLL(0x50):\t %08x\tPolling the interrupt source register (PKC_INT_SRC) status\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2040, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PC_TMPL_C0(0x2040):\t %08x\tCount packets matched against pre_classifier template 0\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2048, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PC_TMPL_C1(0x2048):\t %08x\tCount packets matched against pre_classifier template 1\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2050, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PC_TMPL_C2(0x2050):\t %08x\tCount packets matched against pre_classifier template 2\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2058, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PC_TMPL_C3(0x2058):\t %08x\tCount packets matched against pre_classifier template 3\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2060, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PC_NM_C(0x2060):\t %08x\tCount packets not matching any pre_classifier templates\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2064, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_IP_CS_ERR_C(0x2064): %08x\tCount IP checksum failure packets\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x2068, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_CE_NM_C(0x2068):\t %08x\tCount pkts not matching any rule\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKC_BASE + 0x206c, &value);
	 sprintf((buffer+strlen(buffer)),"PKC_PV_NM_C(0x206c):\t %08x\tCount packets failing post verifier\n",value);

	 
	 sprintf((buffer+strlen(buffer)),"Zl5011x PKI Block key Register Value:\t\n");
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKI_BASE + 0x0, &value);
	 sprintf((buffer+strlen(buffer)),"pki0_ctrl(0x0):\t\t %08x\tPKI Port 0 Control Register\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKI_BASE + 0x4, &value);
	 sprintf((buffer+strlen(buffer)),"pki1_ctrl(0x4):\t\t %08x\tPKI Port 1 Control Register\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKI_BASE + 0x8, &value);
	 sprintf((buffer+strlen(buffer)),"pki2_ctrl(0x8):\t\t %08x\tPKI Port 2 Control Register\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PKI_BASE + 0xc, &value);
	 sprintf((buffer+strlen(buffer)),"pki3_ctrl(0xc):\t\t %08x\tPKI Port 3 Control Register\n",value);
	 
     sprintf((buffer+strlen(buffer)),"Zl5011x PLA Block key Register Value:\t\n");
	 ZL5011X_REG_READ(slotNum, ZL5011X_PLA_BASE + 0x60008, &value);
	 sprintf((buffer+strlen(buffer)),"Pre_Tmi_ovf(0x60008):\t %08x\tTask manager interface overflow pre-mask interrupt\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PLA_BASE + 0x6000c, &value);
	 sprintf((buffer+strlen(buffer)),"Tmi_ovf(0x6000c):\t %08x\tTask manager interface overflow post mask interrupt\n",value);
	 ZL5011X_REG_READ(slotNum, ZL5011X_PLA_BASE + 0x60010, &value);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲欧美在线观看| 99久久99久久精品国产片果冻| 精品视频一区三区九区| 亚洲午夜激情网站| 欧美日韩美女一区二区| 五月天丁香久久| 精品国产乱码久久久久久久久 | 久久综合中文字幕| 国产二区国产一区在线观看| 国产女主播一区| 在线一区二区三区四区| 日精品一区二区三区| 精品国产a毛片| 成人av在线看| 天堂成人国产精品一区| 精品精品国产高清一毛片一天堂| 国产成人午夜视频| 亚洲一区二区四区蜜桃| 久久综合五月天婷婷伊人| 99精品热视频| 麻豆精品在线播放| 最新中文字幕一区二区三区| 欧美日韩国产首页在线观看| 国产美女在线精品| 亚洲影视资源网| 久久在线观看免费| 欧美日韩一区中文字幕| 懂色av一区二区夜夜嗨| 午夜精品视频一区| 国产欧美日韩视频一区二区| 欧美精品一二三| 成人久久视频在线观看| 日韩二区三区四区| 日韩一区在线免费观看| 欧美大度的电影原声| 91热门视频在线观看| 精品一二三四在线| 亚洲成人综合视频| 中文字幕中文字幕中文字幕亚洲无线| 欧美丰满少妇xxxbbb| 99精品视频一区| 国产成人午夜精品5599| 免费在线看成人av| 一区二区三区精密机械公司| 久久久久久**毛片大全| 欧美一区二区三区日韩视频| 91在线国内视频| 懂色av一区二区三区蜜臀| 日韩国产精品大片| 亚洲一二三四久久| 中文字幕一区二区5566日韩| 久久夜色精品一区| 欧美变态口味重另类| 欧美猛男超大videosgay| 99久久久久久99| 岛国精品在线播放| 国产一区二区三区久久悠悠色av| 日韩成人免费在线| 午夜av一区二区| 亚洲成人av电影在线| 亚洲精品中文字幕在线观看| 国产精品美日韩| 日本一区二区成人在线| 久久综合色8888| 欧美精品一区二区三区蜜桃 | 精品国产凹凸成av人网站| 4438x亚洲最大成人网| 在线看国产一区二区| 99久久伊人精品| 91亚洲资源网| 91亚洲国产成人精品一区二区三| 丁香六月久久综合狠狠色| 成人免费三级在线| 成人免费va视频| 成人黄色av电影| 波波电影院一区二区三区| 成人少妇影院yyyy| 99r国产精品| 91成人国产精品| 欧美精品一二三| 日韩精品一区二区三区中文不卡| 日韩一级二级三级| 精品日韩在线观看| 国产日韩欧美高清| 成人欧美一区二区三区小说| 亚洲欧美日韩一区二区三区在线观看| 亚洲三级理论片| 一区二区三区视频在线观看| 亚洲国产精品久久久男人的天堂| 视频一区视频二区在线观看| 麻豆视频一区二区| 国产成人一区在线| 日本韩国欧美三级| 91 com成人网| 久久久久久99久久久精品网站| 国产精品久久久久一区| 一区二区三区电影在线播| 五月天婷婷综合| 国产大陆亚洲精品国产| 99精品欧美一区二区三区综合在线| 在线精品视频小说1| 欧美电视剧免费全集观看| 中文字幕欧美国产| 亚洲午夜精品久久久久久久久| 久久精品国产秦先生| 成人h精品动漫一区二区三区| 在线观看视频91| 欧美成人一区二区三区| 欧美激情综合网| 天天爽夜夜爽夜夜爽精品视频| 久久99日本精品| 色综合夜色一区| 日韩欧美在线123| 亚洲免费观看高清完整| 久久99精品久久久久久久久久久久 | 国产精品一区2区| 色天使久久综合网天天| 欧美一级日韩免费不卡| 1024成人网色www| 蜜臀久久99精品久久久久宅男 | 久久精品国产一区二区| 99精品黄色片免费大全| 日韩免费观看2025年上映的电影| 国产精品二三区| 青青草国产精品亚洲专区无| 91亚洲国产成人精品一区二区三| 日韩欧美亚洲一区二区| 亚洲久本草在线中文字幕| 国产在线播放一区| 欧美二区乱c少妇| 中文字幕在线观看不卡| 理论电影国产精品| 欧美色老头old∨ideo| 国产精品美女www爽爽爽| 久久精品理论片| 欧美精品免费视频| 一区二区三区波多野结衣在线观看 | 久久九九国产精品| 免费在线观看日韩欧美| 色八戒一区二区三区| 亚洲国产成人在线| 国产一区二区三区香蕉| 欧美一区二区在线视频| 久久精品99国产国产精| 国产精品一区一区| 日韩免费看网站| 日韩一区国产二区欧美三区| 国产成人免费在线| 91精品综合久久久久久| 一区二区三区精品在线| av一区二区久久| 欧美激情在线免费观看| 国产乱码精品一区二区三区五月婷| 51精品视频一区二区三区| 亚洲高清一区二区三区| 91久久久免费一区二区| 亚洲欧美一区二区不卡| av一区二区三区| 1024国产精品| 一本到三区不卡视频| 亚洲欧洲精品一区二区三区不卡| 成人a区在线观看| 国产精品二区一区二区aⅴ污介绍| 国产.精品.日韩.另类.中文.在线.播放| 日韩欧美一级二级三级久久久| 日本欧美一区二区| 欧美夫妻性生活| 麻豆精品久久精品色综合| 日韩精品在线一区二区| 久久91精品久久久久久秒播| 亚洲精品一线二线三线无人区| 久久97超碰色| 国产精品天天看| 91香蕉视频mp4| 一区二区三区不卡视频在线观看| 欧美三级乱人伦电影| 日韩高清在线一区| 久久人人爽人人爽| 99免费精品在线| 亚洲自拍偷拍图区| 日韩精品专区在线| 成人精品视频一区| 亚洲最快最全在线视频| 欧美美女bb生活片| 精品一区二区在线播放| 国产欧美一区二区在线观看| 99国产欧美另类久久久精品| 亚洲一区二区三区视频在线 | 亚洲精品大片www| 欧美日韩成人综合天天影院| 理论片日本一区| 中文字幕av资源一区| 在线观看视频一区二区欧美日韩| 天涯成人国产亚洲精品一区av| 精品免费日韩av| 成人av网在线| 亚洲高清不卡在线观看| 久久久99精品久久| 在线观看亚洲一区| 国产精品91xxx|