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

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

?? isp_pci.c

?? 這個linux源代碼是很全面的~基本完整了~使用c編譯的~由于時間問題我沒有親自測試~但就算用來做參考資料也是非常好的
?? C
?? 第 1 頁 / 共 4 頁
字號:
/* @(#)isp_pci.c 1.25 *//* * Qlogic ISP Host Adapter PCI specific probe and attach routines *--------------------------------------- * Copyright (c) 1998, 1999, 2000, 2001 by Matthew Jacob * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions, and the following disclaimer, *    without modification, immediately at the beginning of the file. * 2. The name of the author may not be used to endorse or promote products *    derived from this software without specific prior written permission. * * Alternatively, this software may be distributed under the terms of the * the GNU Public License ("GPL"). * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. *  * Matthew Jacob * Feral Software * PMB #825 * 5214-F Diamond Hts Blvd * San Francisco, CA, 94131 * mjacob@feral.com */#include "isp_linux.h"#if	defined(__powerpc__) || defined(__sparc__)static int isp_pci_mapmem = 0xffffffff;#elsestatic int isp_pci_mapmem = 0;#endif#if	defined(__sparc__)#undef	ioremap_nocache#define	ioremap_nocache	ioremap#endifstatic int isplinux_pci_init(struct Scsi_Host *);static u_int16_t isp_pci_rd_reg(struct ispsoftc *, int);static void isp_pci_wr_reg(struct ispsoftc *, int, u_int16_t);#if !(defined(ISP_DISABLE_1080_SUPPORT) && defined(ISP_DISABLE_12160_SUPPORT))static u_int16_t isp_pci_rd_reg_1080(struct ispsoftc *, int);static void isp_pci_wr_reg_1080(struct ispsoftc *, int, u_int16_t);#endifstatic intisp_pci_rd_isr(struct ispsoftc *, u_int16_t *, u_int16_t *, u_int16_t *);#ifndef	ISP_DISABLE_2300_SUPPORTstatic intisp_pci_rd_isr_2300(struct ispsoftc *, u_int16_t *, u_int16_t *, u_int16_t *);#endifstatic int isp_pci_mbxdma(struct ispsoftc *);static intisp_pci_dmasetup(struct ispsoftc *, XS_T *, ispreq_t *, u_int16_t *, u_int16_t);#if	LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)static void isp_pci_dmateardown(struct ispsoftc *, XS_T *, u_int16_t);#else#define	isp_pci_dmateardown	NULL#endifstatic void isp_pci_reset1(struct ispsoftc *);static void isp_pci_dumpregs(struct ispsoftc *, const char *);#ifndef	ISP_CODE_ORG#define	ISP_CODE_ORG		0x1000#endif#ifndef	ISP_DISABLE_1020_SUPPORT#include "asm_1040.h"#define	ISP_1040_RISC_CODE	(u_int16_t *) isp_1040_risc_code#else#define	ISP_1040_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_1080_SUPPORT#include "asm_1080.h"#define	ISP_1080_RISC_CODE	(u_int16_t *) isp_1080_risc_code#else#define	ISP_1080_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_12160_SUPPORT#include "asm_12160.h"#define	ISP_12160_RISC_CODE	(u_int16_t *) isp_12160_risc_code#else#define	ISP_12160_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_2100_SUPPORT#include "asm_2100.h"#define	ISP_2100_RISC_CODE	(u_int16_t *) isp_2100_risc_code#else#define	ISP_2100_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_2200_SUPPORT#include "asm_2200.h"#define	ISP_2200_RISC_CODE	(u_int16_t *) isp_2200_risc_code#else#define	ISP_2200_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_2300_SUPPORT#include "asm_2300.h"#define	ISP_2300_RISC_CODE	(u_int16_t *) isp_2300_risc_code#else#define	ISP_2300_RISC_CODE	NULL#endif#ifndef	ISP_DISABLE_1020_SUPPORTstatic struct ispmdvec mdvec = {    isp_pci_rd_isr,    isp_pci_rd_reg,    isp_pci_wr_reg,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_1040_RISC_CODE,    BIU_BURST_ENABLE|BIU_PCI_CONF1_FIFO_64};#endif#ifndef	ISP_DISABLE_1080_SUPPORTstatic struct ispmdvec mdvec_1080 = {    isp_pci_rd_isr,    isp_pci_rd_reg_1080,    isp_pci_wr_reg_1080,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_1080_RISC_CODE,    BIU_BURST_ENABLE|BIU_PCI_CONF1_FIFO_128};#endif#ifndef	ISP_DISABLE_12160_SUPPORTstatic struct ispmdvec mdvec_12160 = {    isp_pci_rd_isr,    isp_pci_rd_reg_1080,    isp_pci_wr_reg_1080,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_12160_RISC_CODE,    BIU_BURST_ENABLE|BIU_PCI_CONF1_FIFO_128};#endif#ifndef	ISP_DISABLE_2100_SUPPORTstatic struct ispmdvec mdvec_2100 = {    isp_pci_rd_isr,    isp_pci_rd_reg,    isp_pci_wr_reg,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_2100_RISC_CODE};#endif#ifndef	ISP_DISABLE_2200_SUPPORTstatic struct ispmdvec mdvec_2200 = {    isp_pci_rd_isr,    isp_pci_rd_reg,    isp_pci_wr_reg,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_2200_RISC_CODE};#endif#ifndef	ISP_DISABLE_2300_SUPPORTstatic struct ispmdvec mdvec_2300 = {    isp_pci_rd_isr_2300,    isp_pci_rd_reg,    isp_pci_wr_reg,    isp_pci_mbxdma,    isp_pci_dmasetup,    isp_pci_dmateardown,    NULL,    isp_pci_reset1,    isp_pci_dumpregs,    ISP_2300_RISC_CODE};#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP1020#define	PCI_DEVICE_ID_QLOGIC_ISP1020	0x1020#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP1020#define	PCI_DEVICE_ID_QLOGIC_ISP1020	0x1020#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP1080#define	PCI_DEVICE_ID_QLOGIC_ISP1080	0x1080#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP12160#define	PCI_DEVICE_ID_QLOGIC_ISP12160	0x1216#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP1240#define	PCI_DEVICE_ID_QLOGIC_ISP1240	0x1240#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP1280#define	PCI_DEVICE_ID_QLOGIC_ISP1280	0x1280#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP2100#define	PCI_DEVICE_ID_QLOGIC_ISP2100	0x2100#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP2200#define	PCI_DEVICE_ID_QLOGIC_ISP2200	0x2200#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP2300#define	PCI_DEVICE_ID_QLOGIC_ISP2300	0x2300#endif#ifndef	PCI_DEVICE_ID_QLOGIC_ISP2312#define	PCI_DEVICE_ID_QLOGIC_ISP2312	0x2312#endif#define	PCI_DFLT_LTNCY	0x40#define	PCI_DFLT_LNSZ	0x10#define	PCI_CMD_ISP	\ (PCI_COMMAND_MASTER|PCI_COMMAND_INVALIDATE|PCI_COMMAND_PARITY|PCI_COMMAND_SERR)/* * Encapsulating softc... Order of elements is important. The tag * pci_isp must come first because of multiple structure punning * (Scsi_Host * == struct isp_pcisoftc * == struct ispsofct *). */struct isp_pcisoftc {    struct ispsoftc	pci_isp;    struct pci_dev *	pci_dev;    vm_offset_t		port;	/* I/O port address */    vm_offset_t		paddr;	/* Physical Memory Address */    vm_offset_t		vaddr;	/* Mapped Memory Address */    vm_offset_t		poff[_NREG_BLKS];    union pstore	params;#ifdef	LINUX_ISP_TARGET_MODE    tmd_cmd_t		rpool[NTGT_CMDS];#endif};/* * Gratefully borrowed from Gerard Roudier's sym53c8xx driver */static INLINE vm_offset_tmap_pci_mem(u_long base, u_long size){    u_long page_base	= ((u_long) base) & PAGE_MASK;    u_long page_offs	= ((u_long) base) - page_base;    u_long map_size =  roundup(page_offs+size, PAGE_SIZE);    u_long page_remapped = (u_long) ioremap_nocache(page_base, map_size);    (void) map_size;    return (vm_offset_t) (page_remapped ? (page_remapped + page_offs) : 0);}static INLINEvoid unmap_pci_mem(vm_offset_t vaddr, u_long size){    if (vaddr)	iounmap((void *) (vaddr & PAGE_MASK));}static INLINE int map_isp_mem(struct isp_pcisoftc *isp_pci, u_short cmd, vm_offset_t mem_base){    if (cmd & PCI_COMMAND_MEMORY) {	isp_pci->paddr = __pa(mem_base);	isp_pci->paddr &= PCI_BASE_ADDRESS_MEM_MASK;	isp_pci->vaddr = map_pci_mem(isp_pci->paddr, 0xff);	return (isp_pci->vaddr != (vm_offset_t) 0);    }    return (0);}static INLINE int map_isp_io(struct isp_pcisoftc *isp_pci, u_short cmd, vm_offset_t io_base){    if ((cmd & PCI_COMMAND_IO) && (io_base & 3) == 1) {   	isp_pci->port = io_base & PCI_BASE_ADDRESS_IO_MASK;	if (check_region(isp_pci->port, 0xff)) {	    return (0);	}	request_region(isp_pci->port, 0xff, "isp");	return (1);    }    return (0);}#define	ISP_PCI_BUS	pcidev->bus->number#define	ISP_PCI_DEVICE	pcidev->devfn#define	ISEARCH_RESET	pcidev = NULL#define	ISEARCH(x)	\  (pcidev = pci_find_device(PCI_VENDOR_ID_QLOGIC, x, pcidev)) != NULL#define	ISEARCH_NEXT#define	ISTORE_ARGS		struct pci_dev *pcidev#define	ISTORE_FNDARGS		ISTORE_ARGS#define	ISTORE_FNCARGS		pcidev#define	ISTORE_ISP_INFO(x)	(x)->pci_dev = pcidevstatic INLINE struct isp_pcisoftc *isplinux_pci_addhost(Scsi_Host_Template *tmpt, ISTORE_FNDARGS){    struct Scsi_Host *host;    struct ispsoftc *isp;    struct isp_pcisoftc *pci_isp;    host = scsi_register(tmpt, sizeof(struct isp_pcisoftc));    if (host == NULL) {	printk("isp_detect: scsi_register failed\n");	return (NULL);    }    pci_isp = (struct isp_pcisoftc *) host->hostdata;    if (pci_isp == NULL) {	printk("isp_detect: cannot get softc out of scsi_register\n");	return (NULL);    }    ISTORE_ISP_INFO(pci_isp);    isp = (struct ispsoftc *) pci_isp;    isp->isp_host = host;    isp->isp_osinfo.storep = &pci_isp->params;    if (isplinux_pci_init(host)) {	scsi_unregister(host);	return (NULL);    }    isp->isp_next = isplist;    isplist = isp;#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,4)    scsi_set_pci_device(host, pci_isp->pci_dev);#endif    return (pci_isp);}intisplinux_pci_detect(Scsi_Host_Template *tmpt){    static const char *fmt =	"ISP SCSI and Fibre Channel Host Adapter Driver\n"	"      Linux Platform Version %d.%d\n"	"      Common Core Code Version %d.%d\n"	"      Built on %s, %s\n";    int nfound = 0;    struct isp_pcisoftc *pci_isp;    ISTORE_ARGS;    if (pci_present() == 0) {	return (0);    }    printk(fmt, ISP_PLATFORM_VERSION_MAJOR, ISP_PLATFORM_VERSION_MINOR,	ISP_CORE_VERSION_MAJOR, ISP_CORE_VERSION_MINOR, __DATE__ , __TIME__ );#ifndef	ISP_DISABLE_1020_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP1020); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif#ifndef	ISP_DISABLE_1080_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP1240); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP1080); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP1280); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif#ifndef	ISP_DISABLE_12160_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP12160); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif#ifndef	ISP_DISABLE_2100_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP2100); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif#ifndef	ISP_DISABLE_2200_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP2200); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif#ifndef	ISP_DISABLE_2300_SUPPORT    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP2300); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }    for (ISEARCH_RESET; ISEARCH(PCI_DEVICE_ID_QLOGIC_ISP2312); ISEARCH_NEXT) {	pci_isp = isplinux_pci_addhost(tmpt, ISTORE_FNCARGS);        if (pci_isp) {		nfound++;	}    }#endif    return (nfound);}voidisplinux_pci_release(struct Scsi_Host *host){    struct ispsoftc *isp = (struct ispsoftc *) host->hostdata;    struct isp_pcisoftc *pcs = (struct isp_pcisoftc *) host->hostdata;    free_irq(host->irq, pcs);    if (pcs->vaddr != 0) {	unmap_pci_mem(pcs->vaddr, 0xff);	pcs->vaddr = 0;    } else {	release_region(pcs->port, 0xff);	pcs->port = 0;    }    kfree(isp->isp_xflist);#if	LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,0)    pci_free_consistent(pcs->pci_dev, RQUEST_QUEUE_LEN(isp) * QENTRY_LEN,	isp->isp_rquest, isp->isp_rquest_dma);    pci_free_consistent(pcs->pci_dev, RESULT_QUEUE_LEN(isp) * QENTRY_LEN,	isp->isp_result, isp->isp_result_dma);    if (IS_FC(isp)) {	pci_free_consistent(pcs->pci_dev, ISP2100_SCRLEN,	    FCPARAM(isp)->isp_scratch, FCPARAM(isp)->isp_scdma);    }#else    RlsPages(isp->isp_rquest, IspOrder(RQUEST_QUEUE_LEN(isp)));    RlsPages(isp->isp_result, IspOrder(RESULT_QUEUE_LEN(isp)));    if (IS_FC(isp) && FCPARAM(isp)->isp_scratch) {	RlsPages(FCPARAM(isp)->isp_scratch, 1);    }#endif}static intisplinux_pci_init(struct Scsi_Host *host){    static char *nomap = "cannot map either memory or I/O space";    unsigned long io_base, mem_base;    unsigned int irq, pci_cmd_isp = PCI_CMD_ISP;    struct isp_pcisoftc *isp_pci;    u_char rev, lnsz, timer;    u_short vid, did, cmd;    char loc[32];    struct ispsoftc *isp;    isp_pci = (struct isp_pcisoftc *) host->hostdata;    isp = (struct ispsoftc *) isp_pci;    sprintf(loc, "isp@<PCI%d,Slot%d,Func%d>", isp_pci->pci_dev->bus->number,	PCI_SLOT(isp_pci->pci_dev->devfn), PCI_FUNC(isp_pci->pci_dev->devfn));    if (PRDW(isp_pci, PCI_COMMAND, &cmd) ||	PRDB(isp_pci, PCI_CACHE_LINE_SIZE, &lnsz) ||	PRDB(isp_pci, PCI_LATENCY_TIMER, &timer) ||	PRDB(isp_pci, PCI_CLASS_REVISION, &rev)) {	printk("%s: error reading PCI configuration", loc);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲影院久久精品| 精品三级在线看| 91首页免费视频| 国产一区在线视频| 久久国产综合精品| 黄色资源网久久资源365| 男女男精品视频| 免费人成黄页网站在线一区二区| 亚洲国产日产av| 丝袜美腿亚洲一区| 日本最新不卡在线| 精品综合免费视频观看| 国产一区二区毛片| 国产高清无密码一区二区三区| 国产一区二区三区不卡在线观看| 国产一区美女在线| 成人午夜大片免费观看| 色综合网色综合| 在线免费观看一区| 欧美精品xxxxbbbb| 日韩一级精品视频在线观看| 日韩亚洲欧美一区| 久久综合中文字幕| 国产精品麻豆视频| 亚洲尤物视频在线| 蜜乳av一区二区三区| 国产主播一区二区三区| 成人美女视频在线观看| 在线观看中文字幕不卡| 在线不卡的av| 国产亚洲一本大道中文在线| 中文字幕在线一区免费| 亚洲一区二区在线视频| 蜜桃久久久久久| 成人性视频免费网站| 在线视频欧美精品| 精品国产麻豆免费人成网站| 中文字幕高清不卡| 亚洲大型综合色站| 狠狠色丁香婷综合久久| 99久久er热在这里只有精品66| 欧美日韩色一区| 欧美精品一区二区三| 国产精品久久久久久久久晋中| 亚洲成人精品一区| 国产精品一线二线三线| 色综合天天综合网国产成人综合天 | 一区二区三区不卡在线观看| 日韩av电影天堂| 成人小视频在线| 欧美久久久久久久久| 国产亚洲污的网站| 天堂午夜影视日韩欧美一区二区| 国产精品亚洲а∨天堂免在线| 91久久精品一区二区三| 欧美xxx久久| 一区二区三区免费在线观看| 精品写真视频在线观看| 欧美中文字幕一区二区三区| 精品国产一区二区国模嫣然| 亚洲精品成人少妇| 国产自产2019最新不卡| 在线播放91灌醉迷j高跟美女| 国产日本一区二区| 三级不卡在线观看| 一本一道久久a久久精品综合蜜臀| 欧美一级片在线看| 亚洲综合色自拍一区| 不卡的av网站| 精品国免费一区二区三区| 一片黄亚洲嫩模| 国产**成人网毛片九色 | 国产精品国产三级国产aⅴ入口| 亚洲va欧美va人人爽午夜| 国产成人在线视频免费播放| 91精品综合久久久久久| 自拍av一区二区三区| 国产另类ts人妖一区二区| 欧美美女喷水视频| 亚洲欧美日韩国产手机在线| 国产真实乱对白精彩久久| 欧美日韩高清不卡| 玉足女爽爽91| 成人高清视频在线| 久久亚洲私人国产精品va媚药| 亚洲国产精品欧美一二99| 99久久综合精品| 久久久久久日产精品| 美国欧美日韩国产在线播放| 欧美三区在线观看| 亚洲欧美另类图片小说| 成人精品免费网站| 国产清纯白嫩初高生在线观看91 | 精品一区二区日韩| 制服丝袜中文字幕一区| 亚洲高清免费观看高清完整版在线观看| 粉嫩aⅴ一区二区三区四区| 亚洲精品一区二区在线观看| 免费成人在线影院| 9191精品国产综合久久久久久| 亚洲国产美女搞黄色| 在线观看视频一区| 亚洲一区av在线| 欧美天堂一区二区三区| 亚洲一区二区三区四区的| 91福利小视频| 一区二区三区美女视频| 色94色欧美sute亚洲线路一久| 亚洲欧洲中文日韩久久av乱码| 成人黄色小视频| 国产精品麻豆视频| 99精品桃花视频在线观看| 中文字幕在线不卡一区| 91亚洲精品久久久蜜桃网站| 综合精品久久久| 色综合久久66| 亚洲妇熟xx妇色黄| 欧美日韩电影一区| 日韩精品91亚洲二区在线观看| 欧美狂野另类xxxxoooo| 人人精品人人爱| 亚洲精品一区二区三区香蕉| 国产精品18久久久久久久久久久久 | 中文字幕一区三区| 99精品久久99久久久久| 亚洲欧美偷拍三级| 欧美午夜一区二区| 亚洲成人你懂的| 日韩一区二区三区视频| 激情综合网天天干| 国产欧美日韩精品一区| 不卡在线观看av| 亚洲精品五月天| 欧美精品色综合| 九九九精品视频| 国产精品激情偷乱一区二区∴| 91在线码无精品| 日韩精品电影一区亚洲| 久久久久久久久久久久久夜| 99久久免费国产| 亚洲成人黄色小说| 精品精品欲导航| 成人一区二区三区视频在线观看| 亚洲女人的天堂| 日韩一级完整毛片| 成人av电影在线| 日韩二区在线观看| 久久久www免费人成精品| 99精品视频在线播放观看| 五月婷婷综合网| 国产欧美日韩三区| 欧美色视频一区| 国产美女一区二区三区| 一区二区三区四区高清精品免费观看| 日韩一区二区三区四区| 99re视频精品| 久久电影网站中文字幕 | 国内国产精品久久| √…a在线天堂一区| 91精品在线观看入口| 成人高清免费观看| 日产国产高清一区二区三区 | 国产在线精品免费av| 曰韩精品一区二区| 国产色婷婷亚洲99精品小说| 欧美探花视频资源| 粉嫩13p一区二区三区| 秋霞午夜鲁丝一区二区老狼| 一色屋精品亚洲香蕉网站| 欧美一级黄色录像| 色婷婷久久综合| 狠狠色狠狠色综合系列| 午夜欧美视频在线观看| 久久九九久久九九| 91精品在线免费观看| 色老头久久综合| 成人三级伦理片| 蜜臀av性久久久久蜜臀aⅴ流畅 | 国产精品福利一区二区三区| 日韩精品一区二区三区四区| 91福利视频网站| 成人精品国产一区二区4080| 久久99久久99| 日韩精品一区第一页| 一区精品在线播放| 久久久亚洲高清| 91麻豆精品91久久久久同性| 欧美亚男人的天堂| 成人午夜av在线| 国产馆精品极品| 美国欧美日韩国产在线播放 | 欧美性视频一区二区三区| 国产a区久久久| 久久99精品一区二区三区三区| 午夜电影一区二区三区| 亚洲精品免费在线| 国产精品白丝在线| 国产精品成人免费在线| 国产拍欧美日韩视频二区| 久久嫩草精品久久久精品一|