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

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

?? hamaro_drv.c

?? 機頂盒Hamaro解調器驅動。包含自動搜臺
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* hamaro_drv.c */

/*+++ *******************************************************************\
*
*   Copyright and Disclaimer:
*
*       ---------------------------------------------------------------
*       ALL SOFTWARE, APPLICATIONS, DOCUMENTATION, OR MATERIALS        
*       FURNISHED HEREIN IS PROVIDED *AS IS*.  CONEXANT DOES NOT MAKE  
*       ANY WARRANTIES, EITHER EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY
*       DISCLAIMS ANY AND ALL SUCH WARRANTIES TO THE EXTENT PERMITTED  
*       BY LAW, INCLUDING, SPECIFICALLY, ANY IMPLIED WARRANTY ARISING  
*       BY STATUTE OR OTHERWISE IN LAW OR FROM A COURSE OF DEALING OR  
*       USAGE OF TRADE.  CONEXANT DOES NOT MAKE ANY WARRANTIES, EITHER 
*       EXPRESS OR IMPLIED, AND HEREBY EXPRESSLY DISCLAIMS ANY AND ALL 
*       SUCH WARRANTIES WITH RESPECT TO ALL SOFTWARE, APPLICATIONS,    
*       DOCUMENTATION, AND MATERIALS INCLUDING ALL IMPLIED WARRANTIES  
*       OF MERCHANTABILITY, OR OF MERCHANTABLE QUALITY, OR OF FITNESS  
*       FOR ANY PURPOSE, PARTICULAR, SPECIFIC OR OTHERWISE, OR OF      
*       NONINFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OF OTHERS,     
*       RELATING TO THE SOFTWARE, APPLICATIONS, OPERATION,             
*       DOCUMENTATION, DATA OR RESULTS GENERATED BY THE OPERATION OR   
*       USE THEREOF, AND MATERIALS PROVIDED HEREIN.  THE ENTIRE RISK AS
*       TO THE SUBSTANCE, QUALITY AND PERFORMANCE OF SOFTWARE,         
*       APPLICATIONS, AND DOCUMENTATION DESCRIBING SUCH SOFTWARE       
*       REMAINS WITH THE BUYER.                                        
*                                                                      
*       REGARDLESS OF WHETHER ANY REMEDY SET FORTH HEREIN FAILS OF ITS 
*       ESSENTIAL PURPOSE OR OTHERWISE, CONEXANT SHALL NOT BE LIABLE   
*       FOR ANY EXEMPLARY, SPECIAL, PUNITIVE, SPECULATIVE, INDIRECT,   
*       CONSEQUENTIAL OR INCIDENTAL DAMAGES OF ANY KIND (INCLUDING     
*       WITHOUT LIMITATION LOST PROFITS, LOSS OF INCOME, LOSS OF       
*       GOODWILL, OR OTHER TANGIBLE OR INTANGIBLE BUSINESS LOSS)       
*       ARISING OUT OF OR IN CONNECTION WITH, DIRECTLY OR INDIRECTLY,  
*       SOFTWARE, APPLICATIONS, DOCUMENTATION, OR ANY SERVICES OR      
*       MATERIALS PROVIDED HEREUNDER, OR USE OR INABILITY TO USE THE   
*       SOFTWARE, EVEN IF CONEXANT HAS BEEN ADVISED OF THE POSSIBILITY 
*       OF SUCH DAMAGES.                                               
*
*       Copyright (c) 2001 Conexant Systems, Inc.
*       All Rights Reserved.
*       ---------------------------------------------------------------
*
*   Module Revision Id:
*
*       $Header: hamaro_drv.c, 15, 2006-10-20 2:12:16, Xiao Dong Zhang$
*
*   Abstract:
*
*       Contains internal Hamaro Driver software that is called by the API and 
*       other software layers.
*
\******************************************************************* ---*/

#include <time.h>                      /* ANSI Standard */
#include <string.h>                    /* ANSI Standard */
#include <stdlib.h>                    /* ANSI Standard (used for labs() )*/

#define HAMAROEXT                       /* forces globals to be static to this function */

#include "hamaro.h"                     /* Hamaro include files, ordered */
#include "hamaro_regs.h"                /* Hamaro Internal */

/*******************************************************************************************************/
/* static arrays visible to this file only */
/*******************************************************************************************************/
static int       dvb_cr_equate[] = {1,2,3,4,5,6,7,0};
static HAMARO_CODERATE  dvb_cr_list[] =  {HAMARO_CODERATE_1DIV2,HAMARO_CODERATE_2DIV3,HAMARO_CODERATE_3DIV4,
                                   HAMARO_CODERATE_4DIV5,HAMARO_CODERATE_5DIV6,HAMARO_CODERATE_6DIV7,
                                   HAMARO_CODERATE_7DIV8,HAMARO_CODERATE_NONE};
#if HAMARO_INCLUDE_DEBUG
/*******************************************************************************************************/
/* DRIVER_SetError() */
/*******************************************************************************************************/
void       HAMARO_DRIVER_SetError(            /* function to record error number into nim */
HAMARO_NIM        *nim,                       /* nim pointer */
HAMAROERRNO   err,                        /* API error number */
char       *filename,                  /* filename (or useful info) (or NULL) where error occurred */
int        lineno)                     /* line number where error occurred */
{
  /* usage:  It is important to place this error-recording function at or near */
  /* point of error, in order to track and find program and line of error      */
  /* see:  Macro -> HAMARO_DRIVER_SET_ERROR */

  /* validate nim, if invalid nim, nothing to do, so bail */
  if (nim == NULL)  return;
  /* if (HAMARO_DRIVER_ValidNim(nim) == False)  return;  No need to validate */

  /* record only the first error, not the last one encountered */
  if (nim->__errno == HAMARO_NOERR)
  {
    nim->__errno = err;
    nim->errfname = filename;
    nim->errline = lineno;
  }
  return;

}  /* HAMARO_DRIVER_Seterror() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_GetError() */
/*******************************************************************************************************/
char  *HAMARO_DRIVER_GetError(                /* function to retrieve  string info concerning error no in nim */
HAMAROERRNO   err)                        /* error number */
{
  int  i;
  static HAMARO_NIM_ERROR  nimerr[] =                      /* static list of errors (add to list as needed) */
  {
    {HAMARO_NOERR,       "(No error)"},                /* No error encountered */
    {HAMARO_BADPTR,      "Bad pointer"},               /* bad pointer passed to API function */
    {HAMARO_INVALID_NIM, "Bad HAMARO_NIM pointer"},           /* bad nim pointer passed to API */
    {HAMARO_NIM_OPENED,  "HAMARO_NIM already opened"},        /* bad nim pointer passed to API */
    {HAMARO_SBIO_NULL,   "User SBIO functs are NULL"}, /* user-supplied SBRead or SBWrite funct is NULL */
    {HAMARO_TIMER_NULL,  "Invalid Timer() function"},  /* timer specified at init is not valid */
    {HAMARO_NIM_NULL,    "HAMARO_NIM ptr is NULL"},           /* nim pointer passed is null */
    {HAMARO_IO_READERR,  "I/O Err: read"},             /* error encountered at read demod */
    {HAMARO_IO_WRITERR,  "I/O Err: write"},            /* error encountered at write demod */
    {HAMARO_INVALID_TUNER,"tuner type is not valid"},  /* tuner-type invalid or not supported */
    {HAMARO_TUNER_PARMS, "tunerparms pointer is NULL"},/* tuner-parms pointer is NULL */
    {HAMARO_CONST_IQBUF, "NULL at ConstGetPoints()"},  /* NULL pointer pased at HAMARO_ConstGetPoints() */
    {HAMARO_CONST_IQLOW, "Too few ConstGetPoints()"},  /* too few constellation pts, reduce count or try later */
    {HAMARO_BAD_PARM,    "API: Bad parm passed"},      /* bad parameter passed by caller -- see fil/line to determine error */
    {HAMARO_SETILLEGAL,  "Warn: API illegal setting"}, /* requested setting is illegal and ignored */
    {HAMARO_BAD_RTNVAL,  "API: Bad return value"},     /* hardware returned a n invalid result */
    {HAMARO_PARM_RANGE,  "API: Parm bounds error"},    /* parm passed was out of valid range */
    {HAMARO_LOCKIND_ERR,     "API: Error reading lockind"},/* unable to read a lockind register */
    {HAMARO_REG_MATCH_IDX,   "Register index corrupt"},    /* Register array built in hamaro_reg.h is corrupt */
    {HAMARO_REG_MATCH_TRX,   "Register translate error"},  /* unable to translate from raw to enum */
    {HAMARO_REG_MATCH_DTRX,  "Register detranslate error"},/* unable to translate from raw to enum */
    {HAMARO_REG_VERFY_IDX,   "Reg.Map: Idx != rec no"},    /* register map index does not match linear position */
    {HAMARO_REG_VERFY_ADDR,  "Reg.Map: Addr range err"},   /* reg.map addr variable out of range */
    {HAMARO_REG_VERFY_REGRW, "Reg.Map: regrw field err"},  /* reg.map regrw field contains invalid data */
    {HAMARO_REG_VERFY_REGFLT,"Reg.Map: bad filter val"},   /* reg.map regfilter field contains invalid data */
    {HAMARO_REG_VERFY_REGDTP,"Reg.Map: bad data type"},    /* reg.map regdaattype field contains invalid data */
    {HAMARO_REG_VERFY_DFLT,  "Reg.Map: Default bound err"},/* reg.map default value is out of bounds */
    {HAMARO_REG_VERFY_BCNT,  "Reg.Map: Bit cnt/len err"},  /* reg.map bit count/length are questionable */
    {HAMARO_REG_VERFY_DTLEN, "Reg.Map: data type/len err"},/* reg.map regdattype inconsistent with length */
    {HAMARO_REG_HDWR_REWTERR,"Read/Mask/Wt err at write"}, /* I/O err at SBWrite() at read/write/mask */
    {HAMARO_REG_HDWR_REGRDO, "Write attempt to r/o reg"},  /* I/O error: write attempt to RO register */
    {HAMARO_REG_HDWR_REGWTO, "Read attempt to w/o reg"},   /* I/O error: read attempt to WO register */
    {HAMARO_RANGE,       "Warn:Write Bounds Error"},   /* Register written with bounds error data */
    {HAMARO_INIT_XTAL,   "Init: xtal bounds error"},   /* crystal freq is out-of-bounds */
    {HAMARO_INIT_VCO,    "Init: vcoinit neither T/F"}, /* vcoinit is neither True nor False */
    {HAMARO_INIT_MPEG,   "Init: Default MPEG is NULL"},/* Mpeg (default settings) struct is NULL */
    {HAMARO_INIT_TUNER,  "Init: HAMAROTuner parm bad"},      /* tuner parm passed is invalid */
    {HAMARO_DEMOD_ERR,   "Demod has invalid setting"}, /* demod register read has invalid setting */
    {HAMARO_VITSETTING,  "Demod viterbi setting null"},/* demod viterbi search list is set to zero */
    {HAMARO_ERRBYTE,     "Demod not set for BYTEerr"}, /* demod is not set to return BYTE error counts */
    {HAMARO_NOTSUPPORT,  "Feature not supported"},     /* asked-for feature not supported by driver */
    {HAMARO_INVALID_VCONO,       "HAMAROTuner: Invalid vco no"},     /* invalid vco number selected in driver */
    {HAMARO_BAD_BP,      "HAMAROTuner: Invalid BP pct"},     /* invalid breakpoint% */
    {HAMARO_BAD_CXCTL,   "HAMAROTuner: Invalid ctl bits"},   /* invalid setting for tuner control bits (b20,19) */
    {HAMARO_BAD_CXDATA,  "HAMAROTuner: data range error"},   /* data to be sent to tuner fails range check */
    {HAMARO_BAD_CXMETH,  "HAMAROTuner: io method setting"},  /* tuner i/o method is invalid see TUNER_io_method setting */
    {HAMARO_TUNERERR,    "HAMAROTuner: default setting err"},/* unable to set tuner to default i/o settings */
    {HAMARO_TUNERIO,     "HAMAROTuner: unable perform I/O"}, /* unable to write data to tuner */
    {HAMARO_BAD_DIV,     "API: Averted div by zero"},  /* trapped a div by zero err, results are undef */
    {HAMARO_BAD_TUNERPARMS,  "HAMAROTuner: Bad Parms passed"},   /* tunerparms passed by caller contains invalid settings */
    {HAMARO_TUNEREDGE,   "HAMAROTuner: Can't find VCO edge"},/* unable to find a tuner edge */
    {HAMARO_VITSET,      "Viterbi coderate settings"}, /* viterbi code rate settings are wrong/bad */
    {HAMARO_IQ_IO,       "Demod: Err reading IQ pair"},/* demod: unable to read I, Q paired data */
    {HAMARO_CXTYPE,      "Demod: Unable to ID demod"}, /* unable to determine demod type (CxType) */
    {HAMARO_BADCXDATABND,"HAMAROTuner: band range error"},   /* band data sent to tuner fails data range test */
    {HAMARO_BADCXDATAVGA,"HAMAROTuner: VGA range error"},    /* vga data sent to tuner fails data range test */
    {HAMARO_BADCXDATAVCA,"HAMAROTuner: VCA range error"},    /* vca data sent to tuner fails data range test */
    {HAMARO_BADCXDATAPLL,"HAMAROTuner: data range error"},   /* pll data sent to tuner fails data range test */
    {HAMARO_TUNERREF,    "HAMAROTuner: Invalif Ref Divider"},/* invalid refernce divider passed as parm to funct */
    {HAMARO_TUNERVCO,    "No valid VCO exists for the selected frequency: VCO  edge detection required."},
                                                    /* ^^ No valid VCO exists for the selected frequency (detect VCO edges) */
    {HAMARO_LNB_MSGLEN,  "LNB message too short"},     /* unable to send a short LNB message */
    {HAMARO_LNB_STALLED, "LNB message stalled"},       /* unable to send LNB message in time allocated */
    {HAMARO_LNB_BUSY,    "LNB message BUSY"},          /* LNB message busy flag is not set (should be set -> 0x01 indicates NOT busy) */
    {HAMARO_DEMOD_REVB_SINGLE,"Invalid use of RevB SW"},/*   (invalid use of Rev B SW) */
    {HAMARO_DISEQC_RXLEN,"Diseqc: Rx buffer too short"},/* passed-in rx buffer len was <= 0 */
    {HAMARO_DISEQC_VERSION,"Diseqc: No Rx HW on demod"},/* demod does not contain this capability */
    {HAMARO_DISEQC_TIMEOUT,"Diseqc: Rx Timeout"},      /*  demod took to long to rx diseqc message */
    {HAMARO_PDMFOUT,      "Error setting pdmfout reg"},/*  error setting pdmfout register */
                                                    /* end-of-list of errors -- must be last record */
    {HAMARO_IQ_NULL,     "HAMARO_IQPAK pointer is NULL"},     /* HAMARO_IQPAK constellation pointer is NULL */
    {HAMARO_SCE_DEADLOCK,"SCE Deadlock"},              /* Symbol Clock Estimator deadlock */
    {HAMARO_DEMOD_UNSUPPORTED,"Demod: Not supported by driver"}, /* demod is not supported by the driver */
    {HAMARO_EOERR,       "(end of err list)"}          /* timer specified at init is not valid */
  };

  /* find the error string, report it back to collar */
  for (i = 1 ; nimerr[i].__errno != HAMARO_EOERR ; i++)
  {
    if (nimerr[i].__errno == err)
    {
      return(nimerr[i].errstr);
    }
  }

  return(nimerr[0].errstr);

}  /* HAMARO_DRIVER_GetError() */
#endif /* HAMARO_INCLUDE_DEBUG */

/*******************************************************************************************************/
/* HAMARO_DRIVER_preinit() */
/*******************************************************************************************************/
void HAMARO_DRIVER_preinit()                  /* function to pre-init tuner/demod strings (data must be available */
{                                      /* prior to successful InitEnv() for GUI access) */
  static  int driver_inited = False;
  
  static unsigned int ts_list[] = /* tuners-supported list */
      {
#if HAMARO_INCLUDE_ROSIE
       (unsigned int)HAMARO_CX24108,     /* tuner enum (rosie) */
#endif
#if HAMARO_INCLUDE_VIPER
       (unsigned int)HAMARO_CX24128,     /* tuner enum (viper) */
#endif
#if HAMARO_INCLUDE_RATTLER
	   (unsigned int)HAMARO_CX24113,     /* tuner enum (Rattler) */
#endif
      0};                         /* zero marks end-of-list */
  
  static char  *ts_names[HAMARO_MAX_TUNERSUPPORT] =
      {
#if HAMARO_INCLUDE_ROSIE
       HAMARO_ROSIE_TYPE_STRING,                 /* rosie */
#endif
#if HAMARO_INCLUDE_VIPER
       HAMARO_VIPER_TYPE_STRING,                 /* Viper */
#endif
#if HAMARO_INCLUDE_RATTLER
	   HAMARO_RATTLER_TYPE_STRING,               /* Rattler */
#endif
      NULL};                      /* NULL marks end-of-list */

  if (driver_inited == False)
  {
    hamaro_tuners_supported = ts_list;     /* list of supported tuners */
    _hamaro_tuners_supported = &ts_names[0];
  }

  driver_inited = True;
  return;

}  /* HAMARO_DRIVER_preinit() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_ValidateNim() */
/*******************************************************************************************************/
BOOL HAMARO_DRIVER_ValidateNim(               /* function to test nim for NULL and inclusion in HAMARO_NIM_LIST */
HAMARO_NIM  *nim)                             /* pointer to nim */
{
  HAMARO_DRIVER_preinit();

  /* test for NULL nim */
  if (nim == NULL)
  {
    /* invalid nim or already allocated */
    HAMARO_DRIVER_SET_ERROR(nim,HAMARO_NIM_NULL);
  }
  else
  {
    /* nim was not NULL, so test other validity properties */
    return(HAMARO_DRIVER_ValidNim(nim));
  }

  return(False);

}  /* HAMARO_DRIVER_ValidNim() */


/*******************************************************************************************************/
/* HAMARO_DRIVER_ValidateNimIq() */
/*******************************************************************************************************/
BOOL  HAMARO_DRIVER_ValidateNimIq(            /* function to validate nim IQ pointer */
HAMARO_NIM   *nim)                            /* pointer to nim */
{
  
  if (nim->iqpak == NULL)
  {
    /* invalid nim or already allocated */
    HAMARO_DRIVER_SET_ERROR(nim,HAMARO_IQ_NULL);
    return(False);
  }

  return(True);

}  /* HAMARO_DRIVER_ValidateNimIq() */



/*******************************************************************************************************/
/* HAMARO_DRIVER_ValidNim() */
/*******************************************************************************************************/
BOOL HAMARO_DRIVER_ValidNim(                  /* function to validate a nim pointer */
HAMARO_NIM  *nim)                             /* pointer to nim */
{
  int  i;

  HAMARO_DRIVER_preinit();

  /* test nims saved via init env for validity */
  for (i = 0 ; i < HAMARO_MAX_NIMS ; i++)
  {
    if (hamaro_nim_list.nim[i] == nim)  return(True);
  }
  return(False);

}  /* HAMARO_DRIVER_ValidNim() */


/*******************************************************************************************************/
/* _HAMARO_DRIVER_wait() */
/*******************************************************************************************************/
BOOL  _HAMARO_DRIVER_wait(                     /* function to wait a specified number of ms */
HAMARO_NIM  *nim,                             /* pointer to nim */
int  mscount)                          /* ms to wait */
{
   clock_t current_tick, stop_tick;

   if ((nim == NULL) || (mscount < 0))
   {
      return (False);
   }

   /* determine the stop tick */
   if ((stop_tick = clock()) == (clock_t)-1)
   {
      return (False);
   }
   stop_tick += (CLOCKS_PER_SEC / 1000) * mscount;

   /* countinue testing time until ms count is achieved */
   while ((current_tick = clock()) != (clock_t)-1)
   {
      if (current_tick > stop_tick)
      {
         return (True);
      }
   }

   return (False);
}  /* _HAMARO_DRIVER_wait() */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品热视频| 欧美不卡一区二区三区| 日韩欧美另类在线| 国产精品福利影院| 美女一区二区在线观看| 91亚洲大成网污www| 日韩一区二区中文字幕| 亚洲精品亚洲人成人网在线播放| 日韩二区三区四区| 国产99久久久国产精品潘金 | 日韩一区二区三区av| 国产精品无人区| 久久99精品久久久久久| 欧美日韩情趣电影| 亚洲欧美激情插| 成人一区二区在线观看| 日韩美女一区二区三区| 亚洲国产va精品久久久不卡综合| 成人av电影在线网| 日本一区二区三区四区在线视频 | 欧美高清激情brazzers| 亚洲欧美激情一区二区| 成人高清免费观看| 国产亚洲欧美一区在线观看| 日韩二区三区四区| 欧美久久高跟鞋激| 亚洲国产精品久久久久秋霞影院| 91免费版pro下载短视频| 国产欧美一区视频| 国产麻豆视频一区二区| 精品国产不卡一区二区三区| 美女视频网站久久| 日韩限制级电影在线观看| 天堂在线一区二区| 欧美精品精品一区| 五月天激情小说综合| 欧美亚洲国产一卡| 亚洲国产毛片aaaaa无费看| 色婷婷久久综合| 亚洲大型综合色站| 欧美色精品天天在线观看视频| 亚洲综合在线五月| 欧美日韩1区2区| 日韩成人午夜电影| 在线观看视频91| 五月天亚洲精品| 精品久久久久久亚洲综合网| 激情综合一区二区三区| 国产欧美一区二区精品久导航 | 日本欧美久久久久免费播放网| 欧美三级三级三级爽爽爽| 午夜视频一区二区三区| 91精品欧美久久久久久动漫| 久久精品免费观看| 国产精品午夜电影| 在线精品视频一区二区三四| 日韩av电影天堂| 久久男人中文字幕资源站| 成人av小说网| 亚洲成人免费影院| 91精品国产欧美一区二区18| 另类中文字幕网| 中文字幕在线不卡一区| 欧美唯美清纯偷拍| 狠狠色狠狠色综合系列| 中文子幕无线码一区tr| 在线国产亚洲欧美| 极品瑜伽女神91| 一区二区三区欧美| 欧美一区二区啪啪| www.av精品| 蜜臀av一区二区| 国产精品国产自产拍高清av王其| 欧美日韩中字一区| 国产白丝精品91爽爽久久| 亚洲一卡二卡三卡四卡无卡久久| 欧美一区二区网站| 99久久免费视频.com| 日韩av电影免费观看高清完整版| 国产亚洲一二三区| 欧美一级理论性理论a| 成人v精品蜜桃久久一区| 亚洲成av人片在线观看无码| 久久蜜桃av一区精品变态类天堂 | 丰满少妇久久久久久久| 亚洲国产aⅴ天堂久久| 久久久久久9999| 欧美老年两性高潮| 99热精品国产| 韩国精品主播一区二区在线观看 | 中文字幕亚洲在| 精品sm捆绑视频| 欧美日韩国产高清一区二区| 成人精品高清在线| 国产乱码精品1区2区3区| 亚洲小说春色综合另类电影| 国产精品亲子伦对白| 91精品国产综合久久小美女| 色哟哟一区二区| 粉嫩av一区二区三区粉嫩| 日韩中文字幕麻豆| 亚洲成人免费视| 国产精品国产三级国产三级人妇 | 国产三级精品视频| 欧美一二三区在线| 欧美精品色综合| 欧美三级资源在线| 色哟哟日韩精品| 91亚洲精华国产精华精华液| 波多野结衣中文字幕一区| 国产一区二区三区视频在线播放| 日韩av电影免费观看高清完整版 | 91成人免费电影| a级精品国产片在线观看| 国产永久精品大片wwwapp| 日韩av一区二区在线影视| 一区二区三区加勒比av| 亚洲三级免费电影| 亚洲视频 欧洲视频| 国产精品护士白丝一区av| 国产欧美综合色| 自拍偷拍欧美精品| 国产精品久久久久久久岛一牛影视| 久久久久99精品国产片| 久久久蜜桃精品| 久久久国产精华| 欧美高清在线一区二区| 欧美国产成人在线| 亚洲婷婷综合色高清在线| 中文字幕制服丝袜一区二区三区 | 2023国产精华国产精品| 精品国产91亚洲一区二区三区婷婷| 日韩一区二区免费在线电影| 精品入口麻豆88视频| 久久九九全国免费| 欧美国产欧美亚州国产日韩mv天天看完整 | 国产亚洲成年网址在线观看| 欧美国产欧美综合| 亚洲精品视频一区二区| 亚洲狠狠爱一区二区三区| 日韩国产精品久久久| 国产精品自拍av| av爱爱亚洲一区| 欧美男人的天堂一二区| 日韩欧美成人一区二区| 欧美高清在线精品一区| 亚洲福利视频导航| 久久99精品国产.久久久久| 成人一区二区三区中文字幕| 在线亚洲免费视频| 日韩视频免费观看高清在线视频| 精品成人私密视频| 一区二区三区在线观看视频| 日韩va亚洲va欧美va久久| 国产成人免费视频精品含羞草妖精| 99视频精品免费视频| 日韩一区二区免费高清| 国产欧美精品一区二区色综合| 亚洲另类在线制服丝袜| 免费av网站大全久久| av成人免费在线观看| 欧美一区二区免费观在线| 亚洲少妇最新在线视频| 麻豆精品国产91久久久久久| 99精品1区2区| 精品成人一区二区三区| 亚洲国产综合在线| 成人午夜免费av| 91精品在线观看入口| 亚洲免费av在线| 国产高清在线精品| 欧美丰满少妇xxxbbb| 亚洲精品欧美激情| 国产精一品亚洲二区在线视频| 欧美日韩一区久久| 17c精品麻豆一区二区免费| 久久精品免费观看| 欧美丰满高潮xxxx喷水动漫| 亚洲激情中文1区| 成人激情校园春色| 26uuu久久综合| 美女精品一区二区| 欧美日韩免费视频| 一区二区三区四区在线| 国产不卡免费视频| 久久久一区二区三区捆绑**| 午夜精品福利久久久| 色综合中文字幕| 成人免费小视频| a4yy欧美一区二区三区| 亚洲国产激情av| 国产精品中文欧美| 久久久五月婷婷| 国产在线精品视频| 欧美成人精品1314www| 日本不卡在线视频| 91精品国产色综合久久久蜜香臀| 亚洲图片一区二区| 欧美三级韩国三级日本一级| 亚洲欧美色图小说|