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

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

?? xircom_pgs.s

?? linux和2410結合開發 用他可以生成2410所需的zImage文件
?? S
?? 第 1 頁 / 共 2 頁
字號:
/*  $Id: loop.s,v 1.23 2000/03/20 09:49:06 warner Exp $ *  *  Firmware for the Keyspan PDA Serial Adapter, a USB serial port based on *  the EzUSB microcontroller. *  *  (C) Copyright 2000 Brian Warner <warner@lothar.com> *  * 	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. *  *  "Keyspan PDA Serial Adapter" is probably a copyright of Keyspan, the *  company. *  *  This serial adapter is basically an EzUSB chip and an RS-232 line driver *  in a little widget that has a DB-9 on one end and a USB plug on the other. *  It uses the EzUSB's internal UART0 (using the pins from Port C) and timer2 *  as a baud-rate generator. The wiring is: *   PC0/RxD0 <- rxd (DB9 pin 2)         PC4 <- dsr pin 6 *   PC1/TxD0 -> txd pin 3               PC5 <- ri  pin 9 *   PC2      -> rts pin 7               PC6 <- dcd pin 1 *   PC3      <- cts pin 8               PC7 -> dtr pin 4 *   PB1 -> line driver standby * *  The EzUSB register constants below come from their excellent documentation *  and sample code (which used to be available at www.anchorchips.com, but *  that has now been absorbed into Cypress' site and the CD-ROM contents *  don't appear to be available online anymore). If we get multiple *  EzUSB-based drivers into the kernel, it might be useful to pull them out *  into a separate .h file. *  * THEORY OF OPERATION: * *   There are two 256-byte ring buffers, one for tx, one for rx. * *   EP2out is pure tx data. When it appears, the data is copied into the tx *   ring and serial transmission is started if it wasn't already running. The *   "tx buffer empty" interrupt may kick off another character if the ring *   still has data. If the host is tx-blocked because the ring filled up, *   it will request a "tx unthrottle" interrupt. If sending a serial character *   empties the ring below the desired threshold, we set a bit that will send *   up the tx unthrottle message as soon as the rx buffer becomes free. * *   EP2in (interrupt) is used to send both rx chars and rx status messages *   (only "tx unthrottle" at this time) back up to the host. The first byte *   of the rx message indicates data (0) or status msg (1). Status messages *   are sent before any data. * *   Incoming serial characters are put into the rx ring by the serial *   interrupt, and the EP2in buffer sent if it wasn't already in transit. *   When the EP2in buffer returns, the interrupt prompts us to send more *   rx chars (or status messages) if they are pending. * *   Device control happens through "vendor specific" control messages on EP0. *   All messages are destined for the "Interface" (with the index always 0, *   so that if their two-port device might someday use similar firmware, we *   can use index=1 to refer to the second port). The messages defined are: * *    bRequest = 0 : set baud/bits/parity *               1 : unused *               2 : reserved for setting HW flow control (CTSRTS) *               3 : get/set "modem info" (pin states: DTR, RTS, DCD, RI, etc) *               4 : set break (on/off) *               5 : reserved for requesting interrupts on pin state change *               6 : query buffer room or chars in tx buffer *               7 : request tx unthrottle interrupt * *  The host-side driver is set to recognize the device ID values stashed in *  serial EEPROM (0x06cd, 0x0103), program this firmware into place, then *  start it running. This firmware will use EzUSB's "renumeration" trick by *  simulating a bus disconnect, then reconnect with a different device ID *  (encoded in the desc_device descriptor below). The host driver then *  recognizes the new device ID and glues it to the real serial driver code. * * USEFUL DOCS: *  EzUSB Technical Reference Manual: <http://www.anchorchips.com> *  8051 manuals: everywhere, but try www.dalsemi.com because the EzUSB is *   basically the Dallas enhanced 8051 code. Remember that the EzUSB IO ports *   use totally different registers! *  USB 1.1 spec: www.usb.org * * HOW TO BUILD: *  gcc -x assembler-with-cpp -P -E -o keyspan_pda.asm keyspan_pda.s *  as31 -l keyspan_pda.asm *  mv keyspan_pda.obj keyspan_pda.hex *  perl ezusb_convert.pl keyspan_pda < keyspan_pda.hex > keyspan_pda_fw.h * Get as31 from <http://www.pjrc.com/tech/8051/index.html>, and hack on it * a bit to make it build. * * THANKS: *  Greg Kroah-Hartman, for coordinating the whole usb-serial thing. *  AnchorChips, for making such an incredibly useful little microcontroller. *  KeySpan, for making a handy, cheap ($40) widget that was so easy to take *           apart and trace with an ohmmeter. * * TODO: *  lots. grep for TODO. Interrupt safety needs stress-testing. Better flow *  control. Interrupting host upon change in DCD, etc, counting transitions. *  Need to find a safe device id to use (the one used by the Keyspan firmware *  under Windows would be ideal.. can anyone figure out what it is?). Parity. *  More baud rates. Oh, and the string-descriptor-length silicon bug *  workaround should be implemented, but I'm lazy, and the consequence is *  that the device name strings that show up in your kernel log will have *  lots of trailing binary garbage in them (appears as ????). Device strings *  should be made more accurate. * * Questions, bugs, patches to Brian. * *  -Brian Warner <warner@lothar.com> * */	#define HIGH(x) (((x) & 0xff00) / 256)#define LOW(x) ((x) & 0xff)#define dpl1 0x84#define dph1 0x85#define dps 0x86;;; our bit assignments#define TX_RUNNING 0#define DO_TX_UNTHROTTLE 1		;; stack from 0x60 to 0x7f: should really set SP to 0x60-1, not 0x60#define STACK #0x60-1#define EXIF 0x91#define EIE 0xe8	.flag EUSB, EIE.0	.flag ES0, IE.4#define EP0CS #0x7fb4#define EP0STALLbit #0x01#define IN0BUF #0x7f00#define IN0BC #0x7fb5#define OUT0BUF #0x7ec0#define OUT0BC #0x7fc5		#define IN2BUF #0x7e00#define IN2BC #0x7fb9#define IN2CS #0x7fb8#define OUT2BC #0x7fc9#define OUT2CS #0x7fc8#define OUT2BUF #0x7dc0#define IN4BUF #0x7d00#define IN4BC #0x7fbd#define IN4CS #0x7fbc#define OEB #0x7f9d#define OUTB #0x7f97#define OEC #0x7f9e#define OUTC #0x7f98#define PINSC #0x7f9b#define PORTBCFG #0x7f94#define PORTCCFG #0x7f95#define OEA	#0x7f9c#define IN07IRQ #0x7fa9#define OUT07IRQ #0x7faa#define IN07IEN #0x7fac#define OUT07IEN #0x7fad#define USBIRQ #0x7fab#define USBIEN #0x7fae#define USBBAV #0x7faf#define USBCS #0x7fd6#define SUDPTRH #0x7fd4#define SUDPTRL #0x7fd5#define SETUPDAT #0x7fe8			;; usb interrupt : enable is EIE.0 (0xe8), flag is EXIF.4 (0x91)	.org 0	ljmp start	;; interrupt vectors	.org 23H	ljmp serial_int	.byte 0		.org 43H	ljmp USB_Jump_Table	.byte 0			; filled in by the USB core;;; local variables. These are not initialized properly: do it by hand.	.org 30Hrx_ring_in:	.byte 0rx_ring_out:	.byte 0tx_ring_in:	.byte 0tx_ring_out:	.byte 0tx_unthrottle_threshold:	.byte 0			.org 0x100H		; wants to be on a page boundaryUSB_Jump_Table:	ljmp	ISR_Sudav	; Setup Data Available	.byte 0	ljmp	0		; Start of Frame	.byte 0	ljmp	0		; Setup Data Loading	.byte 0	ljmp	0		; Global Suspend	.byte 	0	ljmp	0		; USB Reset  		.byte	0	ljmp	0		; Reserved	.byte	0	ljmp	0		; End Point 0 In	.byte	0	ljmp	0		; End Point 0 Out	.byte	0	ljmp	0		; End Point 1 In	.byte	0	ljmp	0		; End Point 1 Out	.byte	0	ljmp	ISR_Ep2in	.byte	0	ljmp	ISR_Ep2out	.byte	0	.org 0x200		start:	mov SP,STACK-1 ; set stack	;; clear local variables	clr a	mov tx_ring_in, a	mov tx_ring_out, a	mov rx_ring_in, a	mov rx_ring_out, a	mov tx_unthrottle_threshold, a	clr TX_RUNNING	clr DO_TX_UNTHROTTLE		;; clear fifo with "fe"	mov r1, 0	mov a, #0xfe	mov dptr, #tx_ringclear_tx_ring_loop:	movx @dptr, a	inc dptr	djnz r1, clear_tx_ring_loop	mov a, #0xfd	mov dptr, #rx_ringclear_rx_ring_loop:	movx @dptr, a	inc dptr	djnz r1, clear_rx_ring_loop;;; turn on the RS-232 driver chip (bring the STANDBY pin low);;; on Xircom the STANDBY is wired to PB6 and PC4 	mov dptr, PORTBCFG        mov a, #0xBf        movx @dptr, a	mov dptr, PORTCCFG        mov a, #0xef        movx @dptr, a		;; set OEC.4        mov a, #0x10        mov dptr,OEC        movx @dptr,a        ;; clear PC4        mov a, #0x00        mov dptr,OUTC        movx @dptr,a	;; set OEB.6	mov a, #0x40	mov dptr,OEB	movx @dptr,a	;; clear PB6	mov a, #0x00	mov dptr,OUTB	movx @dptr,a	;; set OEC.[17]	mov a, #0x82	mov dptr,OEC	movx @dptr,a	;; set PORTCCFG.[01] to route TxD0,RxD0 to serial port	mov dptr, PORTCCFG	mov a, #0x03	movx @dptr, a		;; set up interrupts, autovectoring	;; set BKPT	mov dptr, USBBAV	movx a,@dptr	setb acc.0		; AVEN bit to 0	movx @dptr, a	mov a,#0x01		; enable SUDAV:	setup data available (for ep0)	mov dptr, USBIRQ	movx @dptr, a		; clear SUDAVI	mov dptr, USBIEN	movx @dptr, a		mov dptr, IN07IEN	mov a,#0x04		; enable IN2 int	movx @dptr, a		mov dptr, OUT07IEN	mov a,#0x04		; enable OUT2 int	movx @dptr, a	mov dptr, OUT2BC	movx @dptr, a		; arm OUT2;;	mov a, #0x84		; turn on RTS, DTR;;	mov dptr,OUTC;;	movx @dptr, a	mov a, #0x7             ; turn on  DTR        mov dptr,USBBAV        movx @dptr, a	mov a, #0x20             ; turn on the RED led         mov dptr,OEA        movx @dptr, a	mov a, #0x80            ; turn on  RTS        mov dptr,OUTC        movx @dptr, a	;; setup the serial port. 9600 8N1.	mov a,#0x53		; mode 1, enable rx, clear int	mov SCON, a	;;  using timer2, in 16-bit baud-rate-generator mode	;;   (xtal 12MHz, internal fosc 24MHz)	;;  RCAP2H,RCAP2L = 65536 - fosc/(32*baud)	;;  57600: 0xFFF2.F, say 0xFFF3	;;   9600: 0xFFB1.E, say 0xFFB2	;;    300: 0xF63C#define BAUD 9600#define BAUD_TIMEOUT(rate) (65536 - (24 * 1000 * 1000) / (32 * rate))#define BAUD_HIGH(rate) HIGH(BAUD_TIMEOUT(rate))#define BAUD_LOW(rate) LOW(BAUD_TIMEOUT(rate))			mov T2CON, #030h	; rclk=1,tclk=1,cp=0,tr2=0(enable later)	mov r3, #5	acall set_baud	setb TR2	mov SCON, #050h	#if 0	mov r1, #0x40	mov a, #0x41send:		mov SBUF, a	inc a	anl a, #0x3F	orl a, #0x40;	xrl a, #0x02wait1:		jnb TI, wait1	clr TI	djnz r1, send;done:	sjmp done#endif		setb EUSB	setb EA	setb ES0	;acall dump_stat	;; hey, what say we RENUMERATE! (TRM p.62)	mov a, #0	mov dps, a	mov dptr, USBCS	mov a, #0x02		; DISCON=0, DISCOE=0, RENUM=1	movx @dptr, a	;; now presence pin is floating, simulating disconnect. wait 0.5s	mov r1, #46renum_wait1:	mov r2, #0renum_wait2:	mov r3, #0renum_wait3:	djnz r3, renum_wait3	djnz r2, renum_wait2	djnz r1, renum_wait1	; wait about n*(256^2) 6MHz clocks	mov a, #0x06		; DISCON=0, DISCOE=1, RENUM=1	movx @dptr, a	;; we are back online. the host device will now re-query us		main:	sjmp main	ISR_Sudav:	push dps	push dpl	push dph	push dpl1	push dph1	push acc	mov a,EXIF	clr acc.4	mov EXIF,a		; clear INT2 first	mov dptr, USBIRQ	; clear USB int	mov a,#01h	movx @dptr,a	;; get request type	mov dptr, SETUPDAT	movx a, @dptr	mov r1, a		; r1 = bmRequestType	inc dptr	movx a, @dptr	mov r2, a		; r2 = bRequest	inc dptr	movx a, @dptr	mov r3, a		; r3 = wValueL	inc dptr	movx a, @dptr	mov r4, a		; r4 = wValueH	;; main switch on bmRequest.type: standard or vendor	mov a, r1	anl a, #0x60	cjne a, #0x00, setup_bmreq_type_not_standard	;; standard request: now main switch is on bRequest	ljmp setup_bmreq_is_standard	setup_bmreq_type_not_standard:		;; a still has bmreq&0x60	cjne a, #0x40, setup_bmreq_type_not_vendor	;; Anchor reserves bRequest 0xa0-0xaf, we use small ones	;; switch on bRequest. bmRequest will always be 0x41 or 0xc1	cjne r2, #0x00, setup_ctrl_not_00	;; 00 is set baud, wValue[0] has baud rate index	lcall set_baud		; index in r3, carry set if error	jc setup_bmreq_type_not_standard__do_stall	ljmp setup_done_acksetup_bmreq_type_not_standard__do_stall:	ljmp setup_stallsetup_ctrl_not_00:	cjne r2, #0x01, setup_ctrl_not_01	;; 01 is reserved for set bits (parity). TODO	ljmp setup_stallsetup_ctrl_not_01:	cjne r2, #0x02, setup_ctrl_not_02	;; 02 is set HW flow control. TODO	ljmp setup_stallsetup_ctrl_not_02:	cjne r2, #0x03, setup_ctrl_not_03	;; 03 is control pins (RTS, DTR).	ljmp control_pins	; will jump to setup_done_ack,				;  or setup_return_one_bytesetup_ctrl_not_03:	cjne r2, #0x04, setup_ctrl_not_04	;; 04 is send break (really "turn break on/off"). TODO	cjne r3, #0x00, setup_ctrl_do_break_on	;; do break off: restore PORTCCFG.1 to reconnect TxD0 to serial port	mov dptr, PORTCCFG	movx a, @dptr	orl a, #0x02	movx @dptr, a	ljmp setup_done_acksetup_ctrl_do_break_on:	;; do break on: clear PORTCCFG.0, set TxD high(?) (b1 low)	mov dptr, OUTC	movx a, @dptr	anl a, #0xfd		; ~0x02	movx @dptr, a	mov dptr, PORTCCFG	movx a, @dptr	anl a, #0xfd		; ~0x02	movx @dptr, a	ljmp setup_done_acksetup_ctrl_not_04:	cjne r2, #0x05, setup_ctrl_not_05	;; 05 is set desired interrupt bitmap. TODO	ljmp setup_stallsetup_ctrl_not_05:	cjne r2, #0x06, setup_ctrl_not_06	;; 06 is query room	cjne r3, #0x00, setup_ctrl_06_not_00	;; 06, wValue[0]=0 is query write_room	mov a, tx_ring_out	setb c	subb a, tx_ring_in	; out-1-in = 255 - (in-out)	ljmp setup_return_one_bytesetup_ctrl_06_not_00:	cjne r3, #0x01, setup_ctrl_06_not_01	;; 06, wValue[0]=1 is query chars_in_buffer	mov a, tx_ring_in	clr c	subb a, tx_ring_out	; in-out	ljmp setup_return_one_bytesetup_ctrl_06_not_01:		ljmp setup_stallsetup_ctrl_not_06:	cjne r2, #0x07, setup_ctrl_not_07	;; 07 is request tx unthrottle interrupt	mov tx_unthrottle_threshold, r3; wValue[0] is threshold value	ljmp setup_done_acksetup_ctrl_not_07:	ljmp setup_stall	setup_bmreq_type_not_vendor:	ljmp setup_stallsetup_bmreq_is_standard:		cjne r2, #0x00, setup_breq_not_00	;; 00:	Get_Status (sub-switch on bmRequestType: device, ep, int)	cjne r1, #0x80, setup_Get_Status_not_device	;; Get_Status(device)	;;  are we self-powered? no. can we do remote wakeup? no	;;   so return two zero bytes. This is reusablesetup_return_two_zero_bytes:	mov dptr, IN0BUF	clr a	movx @dptr, a	inc dptr	movx @dptr, a	mov dptr, IN0BC	mov a, #2	movx @dptr, a	ljmp setup_done_acksetup_Get_Status_not_device:	cjne r1, #0x82, setup_Get_Status_not_endpoint	;; Get_Status(endpoint)	;;  must get stall bit for ep[wIndexL], return two bytes, bit in lsb 0	;; for now: cheat. TODO	sjmp setup_return_two_zero_bytessetup_Get_Status_not_endpoint:	cjne r1, #0x81, setup_Get_Status_not_interface	;; Get_Status(interface): return two zeros	sjmp setup_return_two_zero_bytessetup_Get_Status_not_interface:		ljmp setup_stall	setup_breq_not_00:	cjne r2, #0x01, setup_breq_not_01	;; 01:	Clear_Feature (sub-switch on wValueL: stall, remote wakeup)	cjne r3, #0x00, setup_Clear_Feature_not_stall	;; Clear_Feature(stall). should clear a stall bit. TODO	ljmp setup_stallsetup_Clear_Feature_not_stall:	cjne r3, #0x01, setup_Clear_Feature_not_rwake	;; Clear_Feature(remote wakeup). ignored.	ljmp setup_done_acksetup_Clear_Feature_not_rwake:	ljmp setup_stall	setup_breq_not_01:	cjne r2, #0x03, setup_breq_not_03	;; 03:	Set_Feature (sub-switch on wValueL: stall, remote wakeup)	cjne r3, #0x00, setup_Set_Feature_not_stall	;; Set_Feature(stall). Should set a stall bit. TODO	ljmp setup_stallsetup_Set_Feature_not_stall:	cjne r3, #0x01, setup_Set_Feature_not_rwake	;; Set_Feature(remote wakeup). ignored.	ljmp setup_done_acksetup_Set_Feature_not_rwake:	ljmp setup_stall	setup_breq_not_03:		cjne r2, #0x06, setup_breq_not_06	;; 06:	Get_Descriptor (s-switch on wValueH: dev, config[n], string[n])	cjne r4, #0x01, setup_Get_Descriptor_not_device	;; Get_Descriptor(device)	mov dptr, SUDPTRH	mov a, #HIGH(desc_device)	movx @dptr, a	mov dptr, SUDPTRL	mov a, #LOW(desc_device)	movx @dptr, a	ljmp setup_done_acksetup_Get_Descriptor_not_device:	cjne r4, #0x02, setup_Get_Descriptor_not_config	;; Get_Descriptor(config[n])	cjne r3, #0x00, setup_stall; only handle n==0	;; Get_Descriptor(config[0])	mov dptr, SUDPTRH	mov a, #HIGH(desc_config1)	movx @dptr, a	mov dptr, SUDPTRL	mov a, #LOW(desc_config1)	movx @dptr, a	ljmp setup_done_acksetup_Get_Descriptor_not_config:	cjne r4, #0x03, setup_Get_Descriptor_not_string	;; Get_Descriptor(string[wValueL])	;;  if (wValueL >= maxstrings) stall	mov a, #((desc_strings_end-desc_strings)/2)	clr c	subb a,r3		; a=4, r3 = 0..3 . if a<=0 then stall	jc  setup_stall	jz  setup_stall	mov a, r3	add a, r3		; a = 2*wValueL

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精久久久久久久久久久| 中文字幕在线观看不卡| 久久久亚洲高清| 亚洲美女一区二区三区| 亚洲国产色一区| 国产成人免费av在线| 欧美日本在线视频| 中文字幕在线观看一区| 国产精品自拍网站| 欧美一区二区三区四区在线观看| 国产精品女主播av| 国产一区二区三区久久悠悠色av| 欧美日韩成人综合| 亚洲美女屁股眼交3| 国产91清纯白嫩初高中在线观看 | 成人丝袜18视频在线观看| 正在播放亚洲一区| 亚洲乱码国产乱码精品精98午夜| 国内精品视频666| 日韩欧美精品在线| 日韩vs国产vs欧美| 欧美精品久久久久久久多人混战| 亚洲美女电影在线| 91麻豆国产精品久久| 国产精品嫩草99a| 国产成a人无v码亚洲福利| 欧美大胆人体bbbb| 久色婷婷小香蕉久久| 欧美一级高清大全免费观看| 五月婷婷欧美视频| 欧美二区三区的天堂| 亚洲福利一二三区| 欧美精品久久久久久久久老牛影院| 亚洲永久精品大片| 在线一区二区三区四区五区 | 日本一区二区视频在线观看| 激情综合五月婷婷| 久久久精品天堂| 国产成人亚洲综合a∨婷婷| 久久九九国产精品| 高清不卡一二三区| 日韩理论片网站| 91视视频在线观看入口直接观看www | 国产精品高潮呻吟久久| 97精品超碰一区二区三区| 亚洲色图欧美偷拍| 欧美日韩亚洲综合一区| 免费在线观看视频一区| 亚洲精品一线二线三线无人区| 悠悠色在线精品| 日韩欧美成人激情| 国产九色精品成人porny| 国产欧美日韩精品在线| 在线观看成人小视频| 欧美另类z0zxhd电影| 久久综合视频网| 久久99在线观看| 日韩美女在线视频| 亚洲欧美视频在线观看| 韩国成人福利片在线播放| 成人动漫精品一区二区| 欧美性视频一区二区三区| 欧美一级免费大片| 夜夜亚洲天天久久| 亚洲欧美乱综合| 色婷婷亚洲综合| 国内精品写真在线观看| 精品久久人人做人人爱| 亚洲成a人v欧美综合天堂下载 | 欧美日韩dvd在线观看| 国产一区二区在线看| 日本乱人伦aⅴ精品| 中文字幕亚洲在| av在线综合网| 一区二区三区不卡视频| 91浏览器打开| 亚洲午夜电影在线| 欧美电影精品一区二区| 国产白丝精品91爽爽久久 | 91精品国产综合久久婷婷香蕉| 亚洲一二三四在线观看| 在线免费精品视频| 麻豆视频观看网址久久| 五月婷婷另类国产| 欧美日韩国产首页| 久久99精品国产| 国产精品久久久久婷婷| 欧美日韩国产精品成人| 国产精品18久久久久久久久久久久| 一区二区三区在线观看视频 | 男女男精品视频网| 亚洲日本护士毛茸茸| 91在线国产观看| 成人午夜电影网站| 麻豆精品视频在线| 丁香六月综合激情| 亚洲在线观看免费视频| 亚洲欧洲性图库| 国产精品女上位| 亚洲天堂免费看| 亚洲视频在线观看三级| 日本一区二区三区四区在线视频| ㊣最新国产の精品bt伙计久久| 欧美群妇大交群中文字幕| 日本韩国欧美一区| 91在线云播放| 欧美午夜免费电影| 99久久精品99国产精品| 男女激情视频一区| 成人av在线资源| 国产乱一区二区| 成人精品gif动图一区| 国产麻豆成人传媒免费观看| 久久成人免费日本黄色| 亚洲激情校园春色| 亚洲午夜成aⅴ人片| 成人午夜电影网站| 在线观看网站黄不卡| 69精品人人人人| 国产欧美一区二区精品仙草咪| 国产精品久久久久久久久果冻传媒 | 精品视频资源站| 亚洲色图丝袜美腿| 国产精品18久久久久久久久| 91麻豆精品国产91久久久久| 精品动漫一区二区三区在线观看| 欧美成人激情免费网| 国产日产精品1区| 亚洲成人在线网站| 国产大陆a不卡| 欧美精选在线播放| 综合网在线视频| 久久精品99久久久| 欧美日韩国产高清一区二区三区 | 日韩一级欧美一级| 日韩精品一区二区三区视频| 国产精品护士白丝一区av| 一区二区三国产精华液| 老司机精品视频线观看86| 岛国精品在线播放| 欧美一区欧美二区| 国产精品国产三级国产普通话蜜臀| 亚洲资源中文字幕| 岛国一区二区在线观看| 日韩欧美区一区二| 亚洲激情在线激情| 97se狠狠狠综合亚洲狠狠| 日韩精品中文字幕一区二区三区| 国产精品美女久久福利网站| 五月天激情小说综合| 色乱码一区二区三区88| 国产精品成人免费| 精品一区二区久久久| 欧美一区二区三区电影| 国产精品久久久久影院色老大| 久久精品免费观看| 日韩三级精品电影久久久 | 69堂亚洲精品首页| 午夜一区二区三区视频| 欧美色网一区二区| 亚洲va欧美va天堂v国产综合| 欧美视频中文一区二区三区在线观看| 国产欧美一区二区三区在线老狼| 精品中文字幕一区二区小辣椒 | 欧美中文字幕一区二区三区亚洲| 日本一区二区三区在线观看| 日韩成人免费在线| 91精品国产91久久久久久一区二区| 亚洲精品菠萝久久久久久久| 欧美午夜不卡视频| 日本不卡视频在线观看| 日韩午夜电影在线观看| 国产成人精品在线看| 国产精品不卡视频| 欧美唯美清纯偷拍| 麻豆91在线看| 国产精品成人免费在线| 7777精品伊人久久久大香线蕉超级流畅 | 成人高清视频在线观看| 亚洲午夜av在线| 日韩欧美一级在线播放| 国产精品一区二区久久精品爱涩| 国产精品久久毛片| 欧美一级片在线观看| eeuss影院一区二区三区| 亚洲成人1区2区| 一区精品在线播放| 日韩欧美久久一区| 在线观看日韩国产| 91丨porny丨蝌蚪视频| 国产综合成人久久大片91| 亚洲一区二区三区四区不卡| 国产日韩精品一区| 4438x成人网最大色成网站| 日本久久一区二区三区| 成人性视频免费网站| 男男成人高潮片免费网站| 国产精品自拍在线| 美日韩一区二区三区| 日韩av高清在线观看|