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

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

?? ixj-redhat.c

?? mgcp協(xié)議源代碼。支持多種編碼:g711
?? C
?? 第 1 頁 / 共 5 頁
字號:
/** * Redhat Modifications Note: * lines that look like: * 'kill_fasync(j->async_queue, SIGIO);' * had to be changed to: * 'kill_fasync(ixj[board].async_queue, SIGIO, POLL_IN);' * since RedHat has introduced proprietary modifications * into the linux kernel.  Contact www.quicknet.com or * www.redhat.com for details. *//**************************************************************************** *    ixj.c * *    Device Driver for the Internet PhoneJACK and *    Internet LineJACK Telephony Cards. * *    (c) Copyright 1999-2000  Quicknet Technologies, Inc. * *    This program is free software; you can redistribute it and/or *    modify it under the terms of the GNU General Public License *    as published by the Free Software Foundation; either version *    2 of the License, or (at your option) any later version. * * Author:          Ed Okerson, <eokerson@quicknet.net> * * Contributors:    Greg Herlein, <gherlein@quicknet.net> *                  David W. Erhart, <derhart@quicknet.net> *                  John Sellers, <jsellers@quicknet.net> *                  Mike Preston, <mpreston@quicknet.net> *     * Fixes: *  * More information about the hardware related to this driver can be found   * at our website:    http://www.quicknet.net * * IN NO EVENT SHALL QUICKNET TECHNOLOGIES, INC. BE LIABLE TO ANY PARTY FOR * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF QUICKNET * TECHNOLOGIES, INC.HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *     * QUICKNET TECHNOLOGIES, INC. SPECIFICALLY DISCLAIMS ANY WARRANTIES, * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS * ON AN "AS IS" BASIS, AND QUICKNET TECHNOLOGIES, INC. HAS NO OBLIGATION * TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. * ***************************************************************************/static char ixj_c_rcsid[] = "$Id: ixj-REDHAT.c,v 1.1 2001/02/05 20:22:23 zolli Exp $";//#define PERFMON_STATS#define IXJDEBUG 0#define MAXRINGS 5#include <linux/autoconf.h>#if defined(CONFIG_MODVERSIONS) && !defined(MODVERSIONS)#define MODVERSIONS#endif#ifdef MODVERSIONS#include <linux/modversions.h>#endif#ifdef CONFIG_PCMCIA#include <pcmcia/config.h>#include <pcmcia/k_compat.h>#endif#include <linux/module.h>#include <linux/init.h>#include <linux/sched.h>#include <linux/kernel.h>	/* printk() */#include <linux/fs.h>		/* everything... */#include <linux/errno.h>	/* error codes */#include <linux/malloc.h>#include <linux/mm.h>#include <linux/ioport.h>#include <linux/interrupt.h>#include <linux/tqueue.h>#include <linux/proc_fs.h>#include <linux/poll.h>#include <linux/timer.h>#include <linux/delay.h>#include <linux/pci.h>#include <asm/io.h>#include <asm/segment.h>#include <asm/uaccess.h>#ifdef CONFIG_ISAPNP#include "../isapnp/pnpio.h"#include "../isapnp/isapnp.h"#endif#ifdef CONFIG_PCMCIA#include <pcmcia/version.h>#include <pcmcia/cs_types.h>#include <pcmcia/cs.h>#include <pcmcia/cistpl.h>#include <pcmcia/ds.h>#include <pcmcia/cisreg.h>#include <pcmcia/ciscode.h>#endif#include "ixj.h"#define TYPE(dev) (MINOR(dev) >> 4)#define NUM(dev) (MINOR(dev) & 0xf)static int ixjdebug = 0;static int hertz = HZ;static int samplerate = 100;MODULE_PARM(ixjdebug, "i");static IXJ ixj[IXJMAX];static struct timer_list ixj_timer;int ixj_convert_loaded = 0;/************************************************************************** These are function definitions to allow external modules to register* enhanced functionality call backs.*************************************************************************/static int Stub(IXJ * J, unsigned long arg){	return 0;}static IXJ_REGFUNC ixj_DownloadG729 = &Stub;static IXJ_REGFUNC ixj_DownloadTS85 = &Stub;static IXJ_REGFUNC ixj_PreRead = &Stub;static IXJ_REGFUNC ixj_PostRead = &Stub;static IXJ_REGFUNC ixj_PreWrite = &Stub;static IXJ_REGFUNC ixj_PostWrite = &Stub;static IXJ_REGFUNC ixj_PreIoctl = &Stub;static IXJ_REGFUNC ixj_PostIoctl = &Stub;static void ixj_read_frame(int board);static void ixj_write_frame(int board);static void ixj_init_timer(void);static void ixj_add_timer(void);static void ixj_del_timer(void);static void ixj_timeout(unsigned long ptr);static int read_filters(int board);static int LineMonitor(int board);static int ixj_fasync(int fd, struct file *, int mode);static int ixj_hookstate(int board);static int ixj_record_start(int board);static void ixj_record_stop(int board);static void ixj_vad(int board, int arg);static int ixj_play_start(int board);static void ixj_play_stop(int board);static int ixj_set_tone_on(unsigned short arg, int board);static int ixj_set_tone_off(unsigned short, int board);static int ixj_play_tone(int board, char tone);static int idle(int board);static void ixj_ring_on(int board);static void ixj_ring_off(int board);static void aec_stop(int board);static void ixj_ringback(int board);static void ixj_busytone(int board);static void ixj_dialtone(int board);static void ixj_cpt_stop(int board);static char daa_int_read(int board);static int daa_set_mode(int board, int mode);static int ixj_linetest(int board);static int ixj_daa_cid_read(int board);static void DAA_Coeff_US(int board);static void DAA_Coeff_UK(int board);static void DAA_Coeff_France(int board);static void DAA_Coeff_Germany(int board);static void DAA_Coeff_Australia(int board);static void DAA_Coeff_Japan(int board);static int ixj_init_filter(int board, IXJ_FILTER * jf);static int ixj_init_tone(int board, IXJ_TONE * ti);static int ixj_build_cadence(int board, IXJ_CADENCE * cp);static int ixj_build_filter_cadence(int board, IXJ_FILTER_CADENCE * cp);// Serial Control Interface funtionsstatic int SCI_Control(int board, int control);static int SCI_Prepare(int board);static int SCI_WaitHighSCI(int board);static int SCI_WaitLowSCI(int board);static DWORD PCIEE_GetSerialNumber(WORD wAddress);/************************************************************************CT8020/CT8021 Host Programmers ModelHost address	Function					AccessDSPbase +0-1		Aux Software Status Register (reserved)		Read Only2-3		Software Status Register			Read Only4-5		Aux Software Control Register (reserved)	Read Write6-7		Software Control Register			Read Write8-9		Hardware Status Register			Read OnlyA-B		Hardware Control Register			Read WriteC-D Host Transmit (Write) Data Buffer Access Port (buffer input)Write OnlyE-F Host Recieve (Read) Data Buffer Access Port (buffer input)	Read Only************************************************************************/extern __inline__ void ixj_read_HSR(int board){	ixj[board].hsr.bytes.low = inb_p(ixj[board].DSPbase + 8);	ixj[board].hsr.bytes.high = inb_p(ixj[board].DSPbase + 9);}extern __inline__ int IsControlReady(int board){	ixj_read_HSR(board);	return ixj[board].hsr.bits.controlrdy ? 1 : 0;}extern __inline__ int IsPCControlReady(int board){	ixj[board].pccr1.byte = inb_p(ixj[board].XILINXbase + 3);	return ixj[board].pccr1.bits.crr ? 1 : 0;}extern __inline__ int IsStatusReady(int board){	ixj_read_HSR(board);	return ixj[board].hsr.bits.statusrdy ? 1 : 0;}extern __inline__ int IsRxReady(int board){	ixj_read_HSR(board);	return ixj[board].hsr.bits.rxrdy ? 1 : 0;}extern __inline__ int IsTxReady(int board){	ixj_read_HSR(board);	return ixj[board].hsr.bits.txrdy ? 1 : 0;}extern __inline__ BYTE SLIC_GetState(int board){	IXJ *j = &ixj[board];	j->pld_slicr.byte = inb_p(j->XILINXbase + 0x01);	return j->pld_slicr.bits.state;}static BOOL SLIC_SetState(BYTE byState, int board){	BOOL fRetVal = FALSE;	IXJ *j = &ixj[board];	// Set the C1, C2, C3 & B2EN signals.	switch (byState) {	case PLD_SLIC_STATE_OC:		j->pld_slicw.bits.c1 = 0;		j->pld_slicw.bits.c2 = 0;		j->pld_slicw.bits.c3 = 0;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_RINGING:		j->pld_slicw.bits.c1 = 1;		j->pld_slicw.bits.c2 = 0;		j->pld_slicw.bits.c3 = 0;		j->pld_slicw.bits.b2en = 1;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_ACTIVE:		j->pld_slicw.bits.c1 = 0;		j->pld_slicw.bits.c2 = 1;		j->pld_slicw.bits.c3 = 0;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_OHT:	// On-hook transmit		j->pld_slicw.bits.c1 = 1;		j->pld_slicw.bits.c2 = 1;		j->pld_slicw.bits.c3 = 0;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_TIPOPEN:		j->pld_slicw.bits.c1 = 0;		j->pld_slicw.bits.c2 = 0;		j->pld_slicw.bits.c3 = 1;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_STANDBY:		j->pld_slicw.bits.c1 = 1;		j->pld_slicw.bits.c2 = 0;		j->pld_slicw.bits.c3 = 1;		j->pld_slicw.bits.b2en = 1;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_APR:	// Active polarity reversal		j->pld_slicw.bits.c1 = 0;		j->pld_slicw.bits.c2 = 1;		j->pld_slicw.bits.c3 = 1;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	case PLD_SLIC_STATE_OHTPR:	// OHT polarity reversal		j->pld_slicw.bits.c1 = 1;		j->pld_slicw.bits.c2 = 1;		j->pld_slicw.bits.c3 = 1;		j->pld_slicw.bits.b2en = 0;		outb_p(j->pld_slicw.byte, j->XILINXbase + 0x01);		fRetVal = TRUE;		break;	default:		fRetVal = FALSE;		break;	}	return fRetVal;}int ixj_register(int index, IXJ_REGFUNC regfunc){	int cnt;	int retval = 0;	switch (index) {	case G729LOADER:		ixj_DownloadG729 = regfunc;		for (cnt = 0; cnt < IXJMAX; cnt++)			ixj_DownloadG729(&ixj[cnt], 0L);		break;	case TS85LOADER:		ixj_DownloadTS85 = regfunc;		for (cnt = 0; cnt < IXJMAX; cnt++)			ixj_DownloadTS85(&ixj[cnt], 0L);		break;	case PRE_READ:		ixj_PreRead = regfunc;		break;	case POST_READ:		ixj_PostRead = regfunc;		break;	case PRE_WRITE:		ixj_PreWrite = regfunc;		break;	case POST_WRITE:		ixj_PostWrite = regfunc;		break;	case PRE_IOCTL:		ixj_PreIoctl = regfunc;		break;	case POST_IOCTL:		ixj_PostIoctl = regfunc;		break;	default:		retval = 1;	}	return retval;}int ixj_unregister(int index){	int retval = 0;	switch (index) {	case G729LOADER:		ixj_DownloadG729 = &Stub;		break;	case TS85LOADER:		ixj_DownloadTS85 = &Stub;		break;	case PRE_READ:		ixj_PreRead = &Stub;		break;	case POST_READ:		ixj_PostRead = &Stub;		break;	case PRE_WRITE:		ixj_PreWrite = &Stub;		break;	case POST_WRITE:		ixj_PostWrite = &Stub;		break;	case PRE_IOCTL:		ixj_PreIoctl = &Stub;		break;	case POST_IOCTL:		ixj_PostIoctl = &Stub;		break;	default:		retval = 1;	}	return retval;}static void ixj_init_timer(void){	init_timer(&ixj_timer);	ixj_timer.function = ixj_timeout;	ixj_timer.data = (int) NULL;}static void ixj_add_timer(void){	ixj_timer.expires = jiffies + (hertz / samplerate);	add_timer(&ixj_timer);}static void ixj_del_timer(void){	del_timer(&ixj_timer);}static void ixj_tone_timeout(int board){	IXJ *j = &ixj[board];	IXJ_TONE ti;	j->tone_state++;	if (j->tone_state == 3) {		j->tone_state = 0;		if (j->cadence_t) {			j->tone_cadence_state++;			if (j->tone_cadence_state >= j->cadence_t->elements_used) {				switch (j->cadence_t->termination) {				case PLAY_ONCE:					ixj_cpt_stop(board);					break;				case REPEAT_LAST_ELEMENT:					j->tone_cadence_state--;					ixj_play_tone(board, j->cadence_t->ce[j->tone_cadence_state].index);					break;				case REPEAT_ALL:					j->tone_cadence_state = 0;					if (j->cadence_t->ce[j->tone_cadence_state].freq0) {						ti.tone_index = j->cadence_t->ce[j->tone_cadence_state].index;						ti.freq0 = j->cadence_t->ce[j->tone_cadence_state].freq0;						ti.gain0 = j->cadence_t->ce[j->tone_cadence_state].gain0;						ti.freq1 = j->cadence_t->ce[j->tone_cadence_state].freq1;						ti.gain1 = j->cadence_t->ce[j->tone_cadence_state].gain1;						ixj_init_tone(board, &ti);					}					ixj_set_tone_on(j->cadence_t->ce[0].tone_on_time, board);					ixj_set_tone_off(j->cadence_t->ce[0].tone_off_time, board);					ixj_play_tone(board, j->cadence_t->ce[0].index);					break;				}			} else {				if (j->cadence_t->ce[j->tone_cadence_state].gain0) {					ti.tone_index = j->cadence_t->ce[j->tone_cadence_state].index;					ti.freq0 = j->cadence_t->ce[j->tone_cadence_state].freq0;					ti.gain0 = j->cadence_t->ce[j->tone_cadence_state].gain0;					ti.freq1 = j->cadence_t->ce[j->tone_cadence_state].freq1;					ti.gain1 = j->cadence_t->ce[j->tone_cadence_state].gain1;					ixj_init_tone(board, &ti);				}				ixj_set_tone_on(j->cadence_t->ce[j->tone_cadence_state].tone_on_time, board);				ixj_set_tone_off(j->cadence_t->ce[j->tone_cadence_state].tone_off_time, board);				ixj_play_tone(board, j->cadence_t->ce[j->tone_cadence_state].index);			}		}	}}static void ixj_timeout(unsigned long ptr){	int board;	unsigned long jifon;	IXJ *j;	for (board = 0; board < IXJMAX; board++) {		j = &ixj[board];		if (j->DSPbase) {#ifdef PERFMON_STATS			j->timerchecks++;#endif			if (j->tone_state) {				if (!ixj_hookstate(board)) {					ixj_cpt_stop(board);					if (j->m_hook) {						j->m_hook = 0;						j->ex.bits.hookstate = 1;						if (j->async_queue)						{						    kill_fasync(ixj[board].async_queue, SIGIO, POLL_IN);						}					}					continue;				}				if (j->tone_state == 1)					jifon = (hertz * j->tone_on_time * 25 / 100000);				else					jifon = (hertz * j->tone_on_time * 25 / 100000) +					    (hertz * j->tone_off_time * 25 / 100000);				if (time_before(jiffies, j->tone_start_jif + jifon)) {					if (j->tone_state == 1) {						ixj_play_tone(board, j->tone_index);						if (j->dsp.low == 0x20) {							continue;						}					} else {						ixj_play_tone(board, 0);						if (j->dsp.low == 0x20) {							continue;						}					}				} else {					ixj_tone_timeout(board);					if (j->flags.dialtone) {						ixj_dialtone(board);					}					if (j->flags.busytone) {						ixj_busytone(board);						if (j->dsp.low == 0x20) {							continue;						}					}					if (j->flags.ringback) {						ixj_ringback(board);						if (j->dsp.low == 0x20) {							continue;						}					}					if (!j->tone_state) {						if (j->dsp.low == 0x20 || (j->play_mode == -1 && j->rec_mode == -1))							idle(board);						if (j->dsp.low == 0x20 && j->play_mode != -1)							ixj_play_start(board);						if (j->dsp.low == 0x20 && j->rec_mode != -1)							ixj_record_start(board);					}				}			}			if (!j->tone_state || j->dsp.low != 0x20) {				if (IsRxReady(board)) {					ixj_read_frame(board);				}				if (IsTxReady(board)) {					ixj_write_frame(board);				}			}			if (j->flags.cringing) {				if (ixj_hookstate(board) & 1) {					j->flags.cringing = 0;					ixj_ring_off(board);				} else {					if (jiffies - j->ring_cadence_jif >= (.5 * hertz)) {						j->ring_cadence_t--;						if (j->ring_cadence_t == -1)							j->ring_cadence_t = 15;						j->ring_cadence_jif = jiffies;					}					if (j->ring_cadence & 1 << j->ring_cadence_t) {						ixj_ring_on(board);					} else {						ixj_ring_off(board);					}					continue;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美激情| 丝袜美腿亚洲色图| 亚洲午夜免费福利视频| 美女国产一区二区三区| 成人高清视频免费观看| 日韩欧美在线不卡| 亚洲一区二区在线免费观看视频 | 日韩三级精品电影久久久| 国产亚洲欧美激情| 男女男精品视频| 欧美色倩网站大全免费| 国产精品国产三级国产aⅴ入口 | 成人18视频在线播放| 91精品一区二区三区久久久久久| 国产欧美久久久精品影院| 日韩二区三区在线观看| 欧洲亚洲国产日韩| 亚洲欧洲精品天堂一级| 国v精品久久久网| 久久综合九色欧美综合狠狠| 蜜臀av一区二区在线免费观看| 在线视频一区二区免费| 亚洲三级电影全部在线观看高清| 国产精品 欧美精品| 欧美videossexotv100| 日欧美一区二区| 欧美日韩国产大片| 亚洲综合丝袜美腿| 在线亚洲+欧美+日本专区| 亚洲精品中文字幕在线观看| www.欧美日韩| 亚洲男人的天堂在线观看| 99精品在线免费| 亚洲日本青草视频在线怡红院| 国产一区二区三区黄视频 | 精品在线你懂的| 日韩免费观看高清完整版| 亚洲欧美aⅴ...| 色综合天天综合色综合av | 精品久久99ma| 狠狠色综合播放一区二区| 日韩视频在线你懂得| 免费高清在线一区| 亚洲精品一区二区三区蜜桃下载| 韩日欧美一区二区三区| 久久婷婷色综合| a亚洲天堂av| 一区二区三区四区亚洲| 欧美日韩国产免费| 美女脱光内衣内裤视频久久影院| 精品1区2区在线观看| 成人免费视频视频在线观看免费| 国产精品水嫩水嫩| 欧美中文一区二区三区| 免费亚洲电影在线| 久久久精品国产免费观看同学| 国产精品亚洲а∨天堂免在线| 中文字幕av一区 二区| 一本一道久久a久久精品| 午夜精品视频在线观看| 欧美xxxxxxxx| 91啪亚洲精品| 美女脱光内衣内裤视频久久网站 | 中文子幕无线码一区tr| 99国产精品久| 日日夜夜精品视频天天综合网| 欧美xxxxx裸体时装秀| 成人18视频日本| 三级影片在线观看欧美日韩一区二区| 精品久久久久久久人人人人传媒| 成人性色生活片| 亚洲香肠在线观看| 久久精品欧美日韩精品| 色美美综合视频| 国产一区在线精品| 亚洲一级电影视频| 国产清纯在线一区二区www| 91久久精品一区二区三区| 久久99国产精品免费| 亚洲免费av高清| 亚洲精品在线电影| 欧美日韩一级二级三级| 国产精品一区二区在线播放 | 一区二区三区日韩在线观看| 日韩欧美精品在线视频| 99久久精品费精品国产一区二区| 视频一区在线视频| 日韩美女视频19| 久久久亚洲欧洲日产国码αv| 欧洲国内综合视频| 成人激情动漫在线观看| 久久精工是国产品牌吗| 亚洲一区二区三区国产| 国产精品女同互慰在线看| 日韩欧美一二区| 欧美午夜视频网站| 色综合久久综合| 成人av高清在线| 国产成人一区二区精品非洲| 日韩av一级片| 亚洲国产综合人成综合网站| 亚洲天堂2016| 国产精品视频观看| 日本一区二区三区免费乱视频 | 色吧成人激情小说| 丰满少妇久久久久久久| 国产一区福利在线| 欧美aaa在线| 亚洲成av人片| 亚洲成人手机在线| 亚洲成a人v欧美综合天堂下载 | 日韩精品综合一本久道在线视频| 欧美色视频在线| 欧美日韩精品一区二区三区 | 丁香激情综合国产| 国产一区二区在线视频| 韩国精品一区二区| 极品少妇一区二区三区精品视频 | 亚洲精品视频免费观看| 亚洲精品中文在线| 国产精品国产三级国产aⅴ原创| 亚洲国产精品黑人久久久| 日本一区二区三区电影| 欧美国产日韩亚洲一区| 国产精品视频线看| 亚洲欧美日韩国产另类专区| 中文字幕在线观看一区| 亚洲女厕所小便bbb| 亚洲伊人色欲综合网| 亚洲一区二区在线免费看| 亚洲一二三专区| 日本免费新一区视频| 久久99热99| 国产aⅴ精品一区二区三区色成熟| 国产不卡在线视频| 色婷婷久久99综合精品jk白丝| 91视频一区二区三区| 欧美四级电影网| 日韩一区二区三区四区| 久久久久久久综合狠狠综合| 国产精品毛片久久久久久久| 亚洲美女偷拍久久| 亚洲福利视频三区| 麻豆91在线播放免费| 成人免费视频网站在线观看| 在线看国产一区| 日韩免费视频线观看| 国产精品卡一卡二| 亚洲成人先锋电影| 国产电影一区二区三区| 在线视频观看一区| 26uuu国产一区二区三区| 中文字幕在线观看一区| 日韩一区欧美二区| 国产不卡视频一区| 欧美人牲a欧美精品| 久久精品一区八戒影视| 亚洲免费看黄网站| 久久精品国产亚洲5555| 色综合久久综合中文综合网| 日韩午夜小视频| 亚洲三级久久久| 国产真实乱子伦精品视频| 色综合天天综合网国产成人综合天 | 99在线精品视频| 日韩免费成人网| 亚洲欧美自拍偷拍色图| 久久国产乱子精品免费女| 99久久免费国产| 精品国产1区二区| 亚洲bdsm女犯bdsm网站| 粉嫩一区二区三区在线看| 欧美一级搡bbbb搡bbbb| 亚洲色图欧美偷拍| 国产成人av电影在线观看| 制服丝袜激情欧洲亚洲| 亚洲柠檬福利资源导航| 国产成人综合在线观看| 欧美一区二区三区不卡| 依依成人综合视频| 国产馆精品极品| 精品少妇一区二区三区免费观看| 亚洲欧美日韩人成在线播放| 国产精品一品视频| 欧美大片在线观看| 日韩**一区毛片| 欧美三级日韩在线| 樱花影视一区二区| aaa欧美色吧激情视频| 国产丝袜美腿一区二区三区| 麻豆视频一区二区| 欧美一级片在线观看| 午夜伦欧美伦电影理论片| 91福利精品视频| 亚洲精品免费在线| 色婷婷精品久久二区二区蜜臀av | 欧美成人vps| 奇米777欧美一区二区| 制服丝袜亚洲网站| 蜜桃视频在线一区|