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

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

?? ether2114x.c

?? 著名操作系統Plan 9的第三版的部分核心源代碼。現在很難找到了。Plan 9是bell實驗室開發的Unix后繼者。
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* * Digital Semiconductor DECchip 21140 PCI Fast Ethernet LAN Controller * as found on the Digital Fast EtherWORKS PCI 10/100 adapter (DE-500-X). * To do: *	thresholds; *	ring sizing; *	handle more error conditions; *	all the rest of it... */#include "u.h"#include "lib.h"#include "mem.h"#include "dat.h"#include "fns.h"#include "io.h"#include "etherif.h"#define DEBUG		1#define debug		if(DEBUG)printenum {	Nrde		= 4,	Ntde		= 1,};enum {					/* CRS0 - Bus Mode */	Swr		= 0x00000001,	/* Software Reset */	Bar		= 0x00000002,	/* Bus Arbitration */	Dsl		= 0x0000007C,	/* Descriptor Skip Length (field) */	Ble		= 0x00000080,	/* Big/Little Endian */	Pbl		= 0x00003F00,	/* Programmable Burst Length (field) */	Cal		= 0x0000C000,	/* Cache Alignment (field) */	Cal8		= 0x00004000,	/* 8 longword boundary alignment */	Cal16		= 0x00008000,	/* 16 longword boundary alignment */	Cal32		= 0x0000C000,	/* 32 longword boundary alignment */	Tap		= 0x000E0000,	/* Transmit Automatic Polling (field) */	Dbo		= 0x00100000,	/* Descriptor Byte Ordering Mode */	Rml		= 0x00200000,	/* Read Multiple */}; enum {					/* CSR[57] - Status and Interrupt Enable */	Ti		= 0x00000001,	/* Transmit Interrupt */	Tps		= 0x00000002,	/* Transmit Process Stopped */	Tu		= 0x00000004,	/* Transmit buffer Unavailable */	Tjt		= 0x00000008,	/* Transmit Jabber Timeout */	Unf		= 0x00000020,	/* transmit UNderFlow */	Ri		= 0x00000040,	/* Receive Interrupt */	Ru		= 0x00000080,	/* Receive buffer Unavailable */	Rps		= 0x00000100,	/* Receive Process Stopped */	Rwt		= 0x00000200,	/* Receive Watchdog Timeout */	Eti		= 0x00000400,	/* Early Transmit Interrupt */	Gte		= 0x00000800,	/* General purpose Timer Expired */	Fbe		= 0x00002000,	/* Fatal Bit Error */	Ais		= 0x00008000,	/* Abnormal Interrupt Summary */	Nis		= 0x00010000,	/* Normal Interrupt Summary */	Rs		= 0x000E0000,	/* Receive process State (field) */	Ts		= 0x00700000,	/* Transmit process State (field) */	Eb		= 0x03800000,	/* Error bits */};enum {					/* CSR6 - Operating Mode */	Hp		= 0x00000001,	/* Hash/Perfect receive filtering mode */	Sr		= 0x00000002,	/* Start/stop Receive */	Ho		= 0x00000004,	/* Hash-Only filtering mode */	Pb		= 0x00000008,	/* Pass Bad frames */	If		= 0x00000010,	/* Inverse Filtering */	Sb		= 0x00000020,	/* Start/stop Backoff counter */	Pr		= 0x00000040,	/* Promiscuous Mode */	Pm		= 0x00000080,	/* Pass all Multicast */	Fd		= 0x00000200,	/* Full Duplex mode */	Om		= 0x00000C00,	/* Operating Mode (field) */	Fc		= 0x00001000,	/* Force Collision */	St		= 0x00002000,	/* Start/stop Transmission Command */	Tr		= 0x0000C000,	/* ThReshold control bits (field) */	Tr128		= 0x00000000,	Tr256		= 0x00004000,	Tr512		= 0x00008000,	Tr1024		= 0x0000C000,	Ca		= 0x00020000,	/* CApture effect enable */	Ps		= 0x00040000,	/* Port Select */	Hbd		= 0x00080000,	/* HeartBeat Disable */	Imm		= 0x00100000,	/* IMMediate mode */	Sf		= 0x00200000,	/* Store and Forward */	Ttm		= 0x00400000,	/* Transmit Threshold Mode */	Pcs		= 0x00800000,	/* PCS function */	Scr		= 0x01000000,	/* SCRambler mode */	Mbo		= 0x02000000,	/* Must Be One */	Ra		= 0x40000000,	/* Receive All */	Sc		= 0x80000000,	/* Special Capture effect enable */	TrMODE		= Sf,		/* default transmission threshold */};enum {					/* CSR9 - ROM and MII Management */	Scs		= 0x00000001,	/* serial ROM chip select */	Sclk		= 0x00000002,	/* serial ROM clock */	Sdi		= 0x00000004,	/* serial ROM data in */	Sdo		= 0x00000008,	/* serial ROM data out */	Ss		= 0x00000800,	/* serial ROM select */	Wr		= 0x00002000,	/* write */	Rd		= 0x00004000,	/* read */	Mdc		= 0x00010000,	/* MII management clock */	Mdo		= 0x00020000,	/* MII management write data */	Mii		= 0x00040000,	/* MII management operation mode */	Mdi		= 0x00080000,	/* MII management data in */};enum {					/* CSR12 - General-Purpose Port */	Gpc		= 0x00000100,	/* General Purpose Control */	De500xFSYM	= 0x00000001,	/* output, force 100Mb mode */	De500xHD	= 0x00000008,	/* output, half-duplex mode */	De500xNoSYM	= 0x00000040,	/* input, 100Mb mode unavailable */	De500xNoTBT	= 0x00000080,	/* input, 10Mb mode unavailable */};typedef struct Des {	int	status;	int	control;	ulong	addr;	void*	bp;} Des;enum {					/* status */	Of		= 0x00000001,	/* Rx: OverFlow */	Ce		= 0x00000002,	/* Rx: CRC Error */	Db		= 0x00000004,	/* Rx: Dribbling Bit */	Re		= 0x00000008,	/* Rx: Report on MII Error */	Rw		= 0x00000010,	/* Rx: Receive Watchdog */	Ft		= 0x00000020,	/* Rx: Frame Type */	Cs		= 0x00000040,	/* Rx: Collision Seen */	Tl		= 0x00000080,	/* Rx: Frame too Long */	Ls		= 0x00000100,	/* Rx: Last deScriptor */	Fs		= 0x00000200,	/* Rx: First deScriptor */	Mf		= 0x00000400,	/* Rx: Multicast Frame */	Rf		= 0x00000800,	/* Rx: Runt Frame */	Dt		= 0x00003000,	/* Rx: Data Type (field) */	De		= 0x00004000,	/* Rx: Descriptor Error */	Fl		= 0x3FFF0000,	/* Rx: Frame Length (field) */	Ff		= 0x40000000,	/* Rx: Filtering Fail */	Def		= 0x00000001,	/* Tx: DEFerred */	Uf		= 0x00000002,	/* Tx: UnderFlow error */	Lf		= 0x00000004,	/* Tx: Link Fail report */	Cc		= 0x00000078,	/* Tx: Collision Count (field) */	Hf		= 0x00000080,	/* Tx: Heartbeat Fail */	Ec		= 0x00000100,	/* Tx: Excessive Collisions */	Lc		= 0x00000200,	/* Tx: Late Collision */	Nc		= 0x00000400,	/* Tx: No Carrier */	Lo		= 0x00000800,	/* Tx: LOss of carrier */	To		= 0x00004000,	/* Tx: Transmission jabber timeOut */	Es		= 0x00008000,	/* [RT]x: Error Summary */	Own		= 0x80000000,	/* [RT]x: OWN bit */};enum {					/* control */	Bs1		= 0x000007FF,	/* [RT]x: Buffer 1 Size */	Bs2		= 0x003FF800,	/* [RT]x: Buffer 2 Size */	Ch		= 0x01000000,	/* [RT]x: second address CHained */	Er		= 0x02000000,	/* [RT]x: End of Ring */	Ft0		= 0x00400000,	/* Tx: Filtering Type 0 */	Dpd		= 0x00800000,	/* Tx: Disabled PaDding */	Ac		= 0x04000000,	/* Tx: Add CRC disable */	Set		= 0x08000000,	/* Tx: SETup packet */	Ft1		= 0x10000000,	/* Tx: Filtering Type 1 */	Fseg		= 0x20000000,	/* Tx: First SEGment */	Lseg		= 0x40000000,	/* Tx: Last SEGment */	Ic		= 0x80000000,	/* Tx: Interrupt on Completion */};enum {					/* PHY registers */	Bmcr		= 0,		/* Basic Mode Control */	Bmsr		= 1,		/* Basic Mode Status */	Phyidr1		= 2,		/* PHY Identifier #1 */	Phyidr2		= 3,		/* PHY Identifier #2 */	Anar		= 4,		/* Auto-Negotiation Advertisment */	Anlpar		= 5,		/* Auto-Negotiation Link Partner Ability */	Aner		= 6,		/* Auto-Negotiation Expansion */};typedef struct Ctlr Ctlr;typedef struct Ctlr {	int	port;	Pcidev*	pcidev;	Ctlr*	next;	int	active;	uchar	srom[128];	uchar*	sromea;			/* MAC address */	uchar*	leaf;	int	sct;			/* selected connection type */	int	k;			/* info block count */	uchar*	infoblock[16];	int	sctk;			/* sct block index */	int	curk;			/* current block index */	uchar*	type5block;	int	phy[32];		/* logical to physical map */	int	phyreset;		/* reset bitmap */	int	curphyad;	int	fdx;	int	ttm;	uchar	fd;			/* option */	int	medium;			/* option */	int	csr6;			/* CSR6 - operating mode */	int	mask;			/* CSR[57] - interrupt mask */	int	mbps;	Des*	rdr;			/* receive descriptor ring */	int	nrdr;			/* size of rdr */	int	rdrx;			/* index into rdr */	Des*	tdr;			/* transmit descriptor ring */	int	ntdr;			/* size of tdr */	int	tdrh;			/* host index into tdr */	int	tdri;			/* interface index into tdr */	ulong	of;			/* receive statistics */	ulong	ce;	ulong	cs;	ulong	tl;	ulong	rf;	ulong	de;	ulong	uf;			/* transmit statistics */	ulong	ec;	ulong	lc;	ulong	nc;	ulong	lo;	ulong	to;} Ctlr;static Ctlr* ctlrhead;static Ctlr* ctlrtail;#define csr32r(c, r)	(inl((c)->port+((r)*8)))#define csr32w(c, r, l)	(outl((c)->port+((r)*8), (ulong)(l)))static uchar setup[Eaddrlen*2*16];static voidattach(Ether* ether){	Ctlr *ctlr;	ctlr = ether->ctlr;	if((ctlr->csr6 & Sr) == 0){		ctlr->csr6 |= Sr;		csr32w(ctlr, 6, ctlr->csr6);	}}static voidtransmit(Ether* ether){	Ctlr *ctlr;	Des *des;	RingBuf *tb;	ctlr = ether->ctlr;	des = &ctlr->tdr[ctlr->tdri];	tb = &ether->tb[ether->ti];	if((des->status & Own) == 0 && tb->owner == Interface){		ctlr->tdr[PREV(ctlr->tdri, ctlr->ntdr)].control &= ~Ic;		des->addr = PADDR(tb->pkt);		des->bp = tb->pkt;		des->control |= Ic|Lseg|Fseg|tb->len;		des->status = Own;		csr32w(ctlr, 1, 0);	}}static voidinterrupt(Ureg*, void* arg){	Ctlr *ctlr;	Ether *ether;	int len, status;	Des *des;	RingBuf *ring;	ether = arg;	ctlr = ether->ctlr;	while((status = csr32r(ctlr, 5)) & (Nis|Ais)){		/*		 * Acknowledge the interrupts and mask-out		 * the ones that are implicitly handled.		 */		csr32w(ctlr, 5, status);		status &= (ctlr->mask & ~(Nis|Ais|Ti));		/*		 * Received packets.		 */		if(status & Ri){			des = &ctlr->rdr[ctlr->rdrx];			while((des->status & Own) == 0){				len = ((des->status & Fl)>>16)-4;				if(des->status & Es){					if(des->status & Of)						ctlr->of++;					if(des->status & Ce)						ctlr->ce++;					if(des->status & Cs)						ctlr->cs++;					if(des->status & Tl)						ctlr->tl++;					if(des->status & Rf)						ctlr->rf++;					if(des->status & De)						ctlr->de++;				}				else{					ring = &ether->rb[ether->ri];					if(ring->owner == Interface){						ring->owner = Host;						ring->len = len;						memmove(ring->pkt, des->bp, len);						ether->ri = NEXT(ether->ri, ether->nrb);					}				}				des->control &= Er;				des->control |= ROUNDUP(sizeof(Etherpkt)+4, 4);				des->status = Own;				ctlr->rdrx = NEXT(ctlr->rdrx, ctlr->nrdr);				des = &ctlr->rdr[ctlr->rdrx];			}			status &= ~Ri;		}		/*		 * Check the transmit side:		 *	check for Transmit Underflow and Adjust		 *	the threshold upwards;		 *	free any transmitted buffers and try to		 *	top-up the ring.		 */		if(status & Unf){			csr32w(ctlr, 6, ctlr->csr6 & ~St);			switch(ctlr->csr6 & Tr){			case Tr128:				len = Tr256;				break;			case Tr256:				len = Tr512;				break;			case Tr512:				len = Tr1024;				break;			default:			case Tr1024:				len = Sf;				break;			}			ctlr->csr6 = (ctlr->csr6 & ~Tr)|len;			csr32w(ctlr, 6, ctlr->csr6);			csr32w(ctlr, 5, Tps);			status &= ~(Unf|Tps);		}		des = &ctlr->tdr[ctlr->tdri];		while((des->status & Own) == 0 && des->bp){			if(des->status & Es){				if(des->status & Uf)					ctlr->uf++;				if(des->status & Ec)					ctlr->ec++;				if(des->status & Lc)					ctlr->lc++;				if(des->status & Nc)					ctlr->nc++;				if(des->status & Lo)					ctlr->lo++;				if(des->status & To)					ctlr->to++;			}			ring = &ether->tb[ether->ti];			ring->owner = Host;			/*			 */			if((uchar*)des->bp != setup)				ether->ti = NEXT(ether->ti, ether->ntb);			des->control &= Er;			des->bp = 0;			ctlr->tdri = NEXT(ctlr->tdri, ctlr->ntdr);			des = &ctlr->tdr[ctlr->tdri];		}		transmit(ether);		/*		 * Anything left not catered for?		 */		if(status)			panic("#l%d: status %8.8uX\n", ether->ctlrno, status);	}}static voidctlrinit(Ether* ether){	Ctlr *ctlr;	Des *des;	int i;	uchar bi[Eaddrlen*2];	ctlr = ether->ctlr;	/*	 * Allocate and initialise the receive ring;	 * allocate and initialise the transmit ring;	 * unmask interrupts and start the transmit side;	 * create and post a setup packet to initialise	 * the physical ethernet address.	 */	ctlr->rdr = malloc(ctlr->nrdr*sizeof(Des));	for(des = ctlr->rdr; des < &ctlr->rdr[ctlr->nrdr]; des++){		des->bp = malloc(sizeof(Etherpkt)+4);		des->status = Own;		des->control = ROUNDUP(sizeof(Etherpkt)+4, 4);		des->addr = PADDR(des->bp);	}	ctlr->rdr[ctlr->nrdr-1].control |= Er;	ctlr->rdrx = 0;	csr32w(ctlr, 3, PADDR(ctlr->rdr));	ctlr->tdr = malloc(ctlr->ntdr*sizeof(Des));	ctlr->tdr[ctlr->ntdr-1].control |= Er;	ctlr->tdrh = 0;	ctlr->tdri = 0;	csr32w(ctlr, 4, PADDR(ctlr->tdr));	ctlr->mask = Nis|Ais|Fbe|Rwt|Rps|Ru|Ri|Unf|Tjt|Tps|Ti;	csr32w(ctlr, 7, ctlr->mask);	ctlr->csr6 |= St;	csr32w(ctlr, 6, ctlr->csr6);	for(i = 0; i < Eaddrlen/2; i++){		bi[i*4] = ether->ea[i*2];		bi[i*4+1] = ether->ea[i*2+1];		bi[i*4+2] = ether->ea[i*2+1];		bi[i*4+3] = ether->ea[i*2];	}	memset(setup, 0xFF, sizeof(bi));	for(i = sizeof(bi); i < sizeof(bi)*16; i += sizeof(bi))		memmove(setup+i, bi, sizeof(bi));	des = &ctlr->tdr[ctlr->tdrh];	des->bp = setup;	des->addr = PADDR(setup);	des->control |= Ic|Set|sizeof(setup);	des->status = Own;	ctlr->tdrh = NEXT(ctlr->tdrh, ctlr->ntdr);	csr32w(ctlr, 1, 0);}static voidcsr9w(Ctlr* ctlr, int data){	csr32w(ctlr, 9, data);	microdelay(1);}static intmiimdi(Ctlr* ctlr, int n){	int data, i;	/*	 * Read n bits from the MII Management Register.	 */	data = 0;	for(i = n-1; i >= 0; i--){		if(csr32r(ctlr, 9) & Mdi)			data |= (1<<i);		csr9w(ctlr, Mii|Mdc);		csr9w(ctlr, Mii);	}	csr9w(ctlr, 0);	return data;}static voidmiimdo(Ctlr* ctlr, int bits, int n){	int i, mdo;	/*	 * Write n bits to the MII Management Register.	 */	for(i = n-1; i >= 0; i--){		if(bits & (1<<i))			mdo = Mdo;		else			mdo = 0;		csr9w(ctlr, mdo);		csr9w(ctlr, mdo|Mdc);		csr9w(ctlr, mdo);	}}static intmiir(Ctlr* ctlr, int phyad, int regad){	int data;	/*	 * Preamble;	 * ST+OP+PHYAD+REGAD;	 * TA + 16 data bits.	 */	miimdo(ctlr, 0xFFFFFFFF, 32);	miimdo(ctlr, 0x1800|(phyad<<5)|regad, 14);	data = miimdi(ctlr, 18);	if(data & 0x10000)		return -1;	return data & 0xFFFF;}static voidmiiw(Ctlr* ctlr, int phyad, int regad, int data){	/*	 * Preamble;	 * ST+OP+PHYAD+REGAD+TA + 16 data bits;	 * Z.	 */	miimdo(ctlr, 0xFFFFFFFF, 32);	data &= 0xFFFF;	data |= (0x05<<(5+5+2+16))|(phyad<<(5+2+16))|(regad<<(2+16))|(0x02<<16);	miimdo(ctlr, data, 32);	csr9w(ctlr, Mdc);	csr9w(ctlr, 0);}static intsromr(Ctlr* ctlr, int r){	int i, op, data;	/*	 * This sequence for reading a 16-bit register 'r'	 * in the EEPROM is taken straight from Section	 * 7.4 of the 21140 Hardware Reference Manual.	 */	csr9w(ctlr, Rd|Ss);	csr9w(ctlr, Rd|Ss|Scs);	csr9w(ctlr, Rd|Ss|Sclk|Scs);	csr9w(ctlr, Rd|Ss);	op = 0x06;	for(i = 3-1; i >= 0; i--){		data = Rd|Ss|(((op>>i) & 0x01)<<2)|Scs;		csr9w(ctlr, data);		csr9w(ctlr, data|Sclk);		csr9w(ctlr, data);	}	for(i = 6-1; i >= 0; i--){		data = Rd|Ss|(((r>>i) & 0x01)<<2)|Scs;		csr9w(ctlr, data);		csr9w(ctlr, data|Sclk);		csr9w(ctlr, data);	}	data = 0;	for(i = 16-1; i >= 0; i--){		csr9w(ctlr, Rd|Ss|Sclk|Scs);		if(csr32r(ctlr, 9) & Sdo)			data |= (1<<i);		csr9w(ctlr, Rd|Ss|Scs);	}	csr9w(ctlr, 0);	return data & 0xFFFF;}static voidsoftreset(Ctlr* ctlr){	/*	 * Soft-reset the controller and initialise bus mode.	 * Delay should be >= 50 PCI cycles (2×S @ 25MHz).	 */	csr32w(ctlr, 0, Swr);	microdelay(10);	csr32w(ctlr, 0, Rml|Cal16);	delay(1);}static inttype5block(Ctlr* ctlr, uchar* block){	int csr15, i, len;	/*	 * Reset or GPR sequence. Reset should be once only,	 * before the GPR sequence.	 * Note 'block' is not a pointer to the block head but	 * a pointer to the data in the block starting at the	 * reset length value so type5block can be used for the	 * sequences contained in type 1 and type 3 blocks.	 * The SROM docs state the 21140 type 5 block is the	 * same as that for the 21143, but the two controllers	 * use different registers and sequence-element lengths	 * so the 21140 code here is a guess for a real type 5	 * sequence.	 */	len = *block++;	if(ctlr->pcidev->did == 0x0009){		for(i = 0; i < len; i++){			csr32w(ctlr, 12, *block);			block++;		}		return len;	}	for(i = 0; i < len; i++){		csr15 = *block++<<16;		csr15 |= *block++<<24;		csr32w(ctlr, 15, csr15);		debug("%8.8uX ", csr15);	}	return 2*len;}static inttypephylink(Ctlr* ctlr, uchar*){	int an, bmcr, bmsr, csr6, x;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品视频免费在线| 一区二区成人在线| 国产精品视频九色porn| 亚洲国产一区视频| www.欧美.com| 国产精品每日更新在线播放网址 | 欧美剧情电影在线观看完整版免费励志电影 | 51精品国自产在线| 69久久99精品久久久久婷婷| 亚洲品质自拍视频| 91色porny在线视频| 欧美成人官网二区| 成人激情小说乱人伦| 久久精品亚洲精品国产欧美 | 日韩毛片一二三区| 91小视频免费观看| 自拍偷拍国产精品| 欧美色图第一页| 夜夜揉揉日日人人青青一国产精品 | 中文一区二区在线观看| 风流少妇一区二区| 日本一道高清亚洲日美韩| 精品1区2区在线观看| 激情综合网av| 麻豆高清免费国产一区| 欧美福利视频导航| 精品国产乱码久久久久久牛牛 | 激情五月婷婷综合| 欧美亚洲综合网| 亚洲视频综合在线| 99在线精品免费| 国产精品久久久久久福利一牛影视| 久久99九九99精品| 欧美xxx久久| 国产一区二区三区免费播放| 欧美一区二区播放| 日韩在线观看一区二区| 777亚洲妇女| 老鸭窝一区二区久久精品| 7777精品伊人久久久大香线蕉经典版下载 | 一区二区三区毛片| 色www精品视频在线观看| 亚洲少妇屁股交4| 色激情天天射综合网| 亚洲精品你懂的| 欧美日韩一本到| 秋霞午夜鲁丝一区二区老狼| 精品久久久久一区| 国产成人在线影院 | 久久久高清一区二区三区| 国产乱码精品一区二区三区五月婷 | 亚洲一区在线视频| 欧美一区二区视频在线观看 | 欧美中文字幕一区| 美女视频黄a大片欧美| 久久先锋资源网| 91亚洲国产成人精品一区二区三| 一区二区三区色| 欧美videos中文字幕| 国产99精品国产| 亚洲第一狼人社区| 精品国产网站在线观看| gogogo免费视频观看亚洲一| 一区二区免费在线播放| 日韩精品一区二区三区蜜臀| jlzzjlzz亚洲女人18| 亚洲高清免费在线| 欧美激情一区三区| 精品视频123区在线观看| 国精产品一区一区三区mba视频| 国产精品久久久久久一区二区三区| 欧美性大战久久久久久久蜜臀 | 欧美激情一区不卡| 这里只有精品电影| 不卡视频在线看| 麻豆国产精品官网| 亚洲国产裸拍裸体视频在线观看乱了| 日韩一区二区免费高清| 91尤物视频在线观看| 老汉av免费一区二区三区| 18成人在线视频| 久久久久9999亚洲精品| 91精品国产一区二区三区香蕉| 成人h动漫精品| 国产麻豆精品95视频| 亚洲va欧美va国产va天堂影院| 欧美高清在线精品一区| 日韩精品资源二区在线| 日本精品裸体写真集在线观看| 国产制服丝袜一区| 免费观看日韩av| 五月天视频一区| 亚洲国产乱码最新视频| 亚洲三级免费观看| 久久免费美女视频| 日韩欧美中文字幕精品| 欧美精品vⅰdeose4hd| 91黄色免费观看| 91一区一区三区| 成年人午夜久久久| 国产成人亚洲综合色影视 | 天天影视色香欲综合网老头| 亚洲欧洲色图综合| 中文字幕巨乱亚洲| 欧美激情一区二区三区全黄 | 日韩久久久精品| 日韩精品一区二区三区老鸭窝| 欧美精品在线观看一区二区| 在线观看亚洲一区| 在线视频一区二区免费| 一本大道久久精品懂色aⅴ| 成人av资源下载| www.性欧美| 99久久99久久久精品齐齐 | 国产精品系列在线播放| 国产精品亚洲专一区二区三区 | 日韩av一区二区三区四区| 日韩国产欧美视频| 欧美aaa在线| 国产精品888| 99久久国产综合精品麻豆| 91亚洲精华国产精华精华液| 91免费观看视频| 欧美三级电影在线看| 欧美一区二区在线播放| 欧美va在线播放| 国产精品无遮挡| 亚洲男同1069视频| 亚洲国产日韩a在线播放| 日韩黄色免费网站| 国产精品一区一区三区| 成人午夜电影网站| 日本电影欧美片| 日韩视频一区二区三区| 2023国产一二三区日本精品2022| 国产日韩综合av| 亚洲一区二区三区四区五区黄 | 国产欧美日韩精品a在线观看| 国产精品欧美久久久久一区二区| 亚洲三级在线看| 久久精品国产网站| 99久久精品免费精品国产| 欧美日韩一区二区三区四区| 制服丝袜成人动漫| 欧美激情综合在线| 午夜影院在线观看欧美| 国产资源精品在线观看| 成人99免费视频| 日韩欧美一区二区在线视频| 国产精品免费视频观看| 亚洲电影视频在线| 大白屁股一区二区视频| 在线免费亚洲电影| 久久久久久免费| 天使萌一区二区三区免费观看| 激情久久五月天| 欧美性一级生活| 中日韩av电影| 精品一区在线看| 欧美亚洲动漫精品| 中文字幕+乱码+中文字幕一区| 亚洲va韩国va欧美va| 懂色一区二区三区免费观看| 欧美人xxxx| 亚洲乱码中文字幕综合| 国产精品一区一区| 日韩欧美国产一二三区| 亚洲黄色片在线观看| 国产成人免费视频网站| 欧美一区二区日韩| 亚洲亚洲精品在线观看| 国产成人精品综合在线观看| 日韩一区二区三区视频| 一区二区三区**美女毛片| 高清不卡在线观看| 亚洲精品一区二区三区四区高清| 亚洲一区二区三区四区不卡| 成年人网站91| 国产精品欧美一级免费| 国产精品1区二区.| caoporen国产精品视频| 精品久久人人做人人爰| 首页国产欧美久久| 欧美日韩在线免费视频| 亚洲三级在线看| 99视频一区二区| 粉嫩av一区二区三区在线播放 | 久久精品72免费观看| 欧美日韩一区二区电影| 亚洲欧美日韩小说| 99国产精品久久久久久久久久久| 国产区在线观看成人精品| 狠狠色综合日日| 久久亚洲欧美国产精品乐播| 裸体健美xxxx欧美裸体表演| 欧美久久免费观看| 三级欧美在线一区| 91精品国产综合久久婷婷香蕉| 亚洲影院在线观看| 精品视频全国免费看|