日韩av色在线_av不卡在线观看_亚洲国产精品第一页_在线看日本不卡_色成人综合网_国产丝袜在线视频_国产精成人品localhost_国产91富婆露脸刺激对白_韩国视频一区_国产精品人成电影

Hi,歡迎來到嵌入式培訓(xùn)高端品牌 - 華清遠(yuǎn)見教育科技集團(tuán)<北京總部官網(wǎng)>,專注嵌入式工程師培養(yǎng)15年!
當(dāng)前位置: > 華清遠(yuǎn)見教育科技集團(tuán) > 嵌入式學(xué)習(xí) > 講師博文 > Linux USB gadget設(shè)備驅(qū)動解析(2)---驅(qū)動調(diào)試
Linux USB gadget設(shè)備驅(qū)動解析(2)---驅(qū)動調(diào)試
時(shí)間:2016-12-29作者:華清遠(yuǎn)見

這一節(jié)主要把在實(shí)現(xiàn)“linux模擬U盤功能”過程中的一些調(diào)試過程記錄下來,并加以解析。

一、背景知識 
    1、USB Mass Storage類規(guī)范概述 
       USB 組織在universal Serial Bus Mass Storage Class Spaceification 1.1版本中定義了海量存儲設(shè)備類(Mass Storage Class)的規(guī)范,這個(gè)類規(guī)范包括四個(gè) 
        獨(dú)立的子類規(guī)范,即: 
       1. USB Mass Storage Class Control/Bulk/Interrupt (CBI) Transport
       2.USB Mass Storage Class Bulk-Only Transport
       3.USB Mass Storage Class ATA Command Block 
       4.USB Mass Storage Class UFI Command Specification 
       前兩個(gè)子規(guī)范定義了數(shù)據(jù)/命令/狀態(tài)在USB 上的傳輸方法。Bulk- Only 傳輸規(guī)范僅僅使用Bulk 端點(diǎn)傳送數(shù)據(jù)/命令/狀態(tài),CBI 傳輸規(guī)范則使用Control/Bulk/Interrupt 三種類型的端點(diǎn)進(jìn)行數(shù)據(jù)/命令/狀態(tài)傳送。后兩個(gè)子規(guī)范則定義了存儲介質(zhì)的操作命令。ATA 命令規(guī)范用于硬盤,UFI 命令規(guī)范是針對USB 移動存儲。 
       Microsoft Windows 中提供對Mass Storage 協(xié)議的支持,因此USB 移動設(shè)備只需要遵循 Mass Storage 協(xié)議來組織數(shù)據(jù)和處理命令,即可實(shí)現(xiàn)與PC 機(jī)交換數(shù)據(jù)。而Flash 的存儲單元組織形式采用FAT16 文件系統(tǒng),這樣,就可以直接在Windows的瀏覽器中通過可移動磁盤來交換數(shù)據(jù)了,Windows 負(fù)責(zé)對FAT16 文件系統(tǒng)的管理,USB 設(shè)備不需要干預(yù)FAT16 文件系統(tǒng)操作的具體細(xì)節(jié)。 
       USB(Host)唯一通過描述符了解設(shè)備的有關(guān)信息,根據(jù)這些信息,建立起通信,在這 些描述符中,規(guī)定了設(shè)備所使用的協(xié)議、端點(diǎn)情況等。因此,正確地提供描述符,是USB 設(shè)備正常工作的先決條件。 
       Linux-2.6.26內(nèi)核中在利用USB gadget驅(qū)動實(shí)現(xiàn)模擬U盤時(shí)主要涉及到file_storage.c、s3c2410_udc.c等驅(qū)動文件(這些文件的具體結(jié)構(gòu),將在下一篇文章中描述)。此時(shí)我們想先從這些代碼中找到USB描述描述符,從中確定使用的存儲類規(guī)范,從而確定協(xié)議。確定通訊協(xié)議是我們調(diào)試的基礎(chǔ)。 
       存儲類規(guī)范是由接口描述符決定的。接口描述符各項(xiàng)的定義義如下:

   其中,bInterfaceClass、bInterfaceSubClass、bInterfaceProtocol可以判斷出設(shè)備是否是存儲類,以及屬于哪種存儲子類和存儲介質(zhì)的操作命令。
       在file_storage.c文件中,

   /* USB protocol value = the transport method */
       #define USB_PR_CBI     0x00         // Control/Bulk/Interrupt
       #define USB_PR_CB      0x01         // Control/Bulk w/o interrupt
       #define USB_PR_BULK        0x50           // Bulk-only

   /* USB subclass value = the protocol encapsulation */
       #define USB_SC_RBC   0x01           // Reduced Block Commands (flash)
       #define USB_SC_8020  0x02           // SFF-8020i, MMC-2, ATAPI (CD-ROM)
       #define USB_SC_QIC   0x03           // QIC-157 (tape)
       #define USB_SC_UFI   0x04           // UFI (floppy)
       #define USB_SC_8070  0x05           // SFF-8070i (removable)
       #define USB_SC_SCSI  0x06           // Transparent SCSI

      默認(rèn)的情況是:
               mod_data = {                                    // Default values
                         .transport_parm                      = "BBB",
                         .protocol_parm                        = "SCSI",
                         ……

    默認(rèn)的賦值如下:
        bInterfaceClass=08 表示:存儲類
        bInterfaceSubClass=0x06 表示:透明的SCSI指令
        bInterfaceProtocol=0x50 表示:bulk-only 傳輸

    2、Bulk-Only 傳輸協(xié)議 
        下面看看Bulk-Only 傳輸協(xié)議:(詳細(xì)的規(guī)范請閱讀《Universal Serial BusMass Storage ClassBulk-Only Transport》) 
        設(shè)備插入到USB 后,USB 即對設(shè)備進(jìn)行搜索,并要求設(shè)備提供相應(yīng)的描述符。在USBHost 得到上述描述符后,即完成了設(shè)備的配置,識別出為Bulk-Only 的Mass Storage 設(shè)備, 然后即進(jìn)入Bulk-Only 傳輸方式。在此方式下,USB 與設(shè)備間的所有數(shù)據(jù)均通過Bulk-In和Bulk-Out 來進(jìn)行傳輸,不再通過控制端點(diǎn)傳輸任何數(shù)據(jù)。 
        在這種傳輸方式下,有三種類型的數(shù)據(jù)在USB 和設(shè)備之間傳送,CBW、CSW 和普通數(shù)據(jù)。CBW(Command Block Wrapper,即命令塊包)是從USB Host 發(fā)送到設(shè)備的命令, 命令格式遵從接口中的bInterfaceSubClass 所指定的命令塊,這里為SCSI 傳輸命令集。USB設(shè)備需要將SCSI 命令從CBW 中提取出來,執(zhí)行相應(yīng)的命令,完成以后,向Host 發(fā)出反映 當(dāng)前命令執(zhí)行狀態(tài)的CSW(Command Status Wrapper),Host 根據(jù)CSW 來決定是否繼續(xù)發(fā) 送下一個(gè)CBW 或是數(shù)據(jù)。Host 要求USB 設(shè)備執(zhí)行的命令可能為發(fā)送數(shù)據(jù),則此時(shí)需要將 特定數(shù)據(jù)傳送出去,完畢后發(fā)出CSW,以使Host 進(jìn)行下一步的操作。USB 設(shè)備所執(zhí)行的操 

 作可用下圖描述: 

CBW的格式如下:

dCBWSignature: 
        CBW的標(biāo)識,固定值:43425355h (little endian)。
    dCBWTag: 
        主機(jī)發(fā)送的一個(gè)命令塊標(biāo)識,設(shè)備需要原樣作為dCSWTag(CSW中的一部分)再發(fā)送給Host;主要用于關(guān)聯(lián)CSW到對應(yīng)的CBW。 
    dCBWDataTransferLength: 
        本次CBW命令要求在命令與回應(yīng)之間傳輸?shù)淖止?jié)數(shù)。如果為0,則不傳輸數(shù)據(jù)。
    bmCBWFlags: 
        反映數(shù)據(jù)傳輸?shù)姆较颍? 表示來自Host,1 表示發(fā)至Host; 
    bCBWLUN: 
        對于有多個(gè)LUN邏輯單元的設(shè)備,用來選擇具體目標(biāo)。如果沒有多個(gè)LUN,則寫0。
    bCBWCBLength: 
        命令的長度,范圍在0~16.

CBWCB: 
        傳輸?shù)木唧w命令,符合bInterfaceSubClass.中定義的命令規(guī)范,此處是SCSI
    CSW命令格式如下:


    dCSWSignature: 
        CSW的標(biāo)識,固定值:53425355h (little endian)
    dCSWTag: 
        設(shè)置這個(gè)標(biāo)識和CBW中的dCBWTag一致,參照上面關(guān)于dCBWTag的解釋
    dCSWDataResidue: 
        還需要傳送的數(shù)據(jù),此數(shù)據(jù)根據(jù)dCBWDataTransferLength-本次已經(jīng)傳送的數(shù)據(jù)得到 
    bCSWStatus: 
        指示命令的執(zhí)行狀態(tài)。如果命令正確執(zhí)行,bCSWStatus 返回0 即可。

3、SCSI指令集

Bulk-Only 的CBW 中的CBWCB 中的內(nèi)容即為如下格式的命令塊描述符(Command Block Descriptor)。SCSI-2 有三種字長的命令,6 字節(jié)、10字節(jié)和12字節(jié),Microsoft Windows 環(huán)境下支持12 字節(jié)長的命令。 


    Operation Code: 
        操作代碼,表示特定的命令。高3 位為Group Code,共有8 種組合, 
    即8 個(gè)組,低5 五位為Command Code,可以有32 種命令。 
    Logicol unit Number: 
        為了兼容SCSI-1 而設(shè)的,此處可以不必關(guān)心。 
    Logical block address: 
        為高位在前,低位在后的邏輯塊地址,即扇區(qū)地址。第2 位為高位,第3、4、5 依次為低位。 
    Transfer length: 
        為需要從邏輯塊地址處開始傳輸?shù)纳葏^(qū)數(shù)(比如在Write 命令中)。 
    Parameter list length: 
        為需要傳輸?shù)臄?shù)據(jù)長度(比如在Mode Sense 命令中); 
    Allocation length: 
        為初始程序?yàn)榉祷財(cái)?shù)據(jù)所分配的大字節(jié)數(shù),此值可以為零,表示不需要傳送數(shù)據(jù)。 
        SCSI指令集的Direct Accesss 類型存儲介質(zhì)的傳輸命令有許多, Mass Storage協(xié)議只用到了其中的一些。更多的SCSI指令參見://en.wikipedia.org/wiki/SCSI_command 
    指令代碼      指令名稱            說明
    04h          Format Unit      格式化存儲單元
    12h          Inquiry          索取器件信息
    1Bh          Start/Stop        load/unload
    55h          Mode select     允許Host對外部設(shè)備設(shè)置參數(shù)。 
    5Ah          Mode  Sense      向host傳輸參數(shù) 
    Eh  Prevent/Allow Medium Removal    寫保護(hù)
    >28h         Read(10)          Host讀存儲介質(zhì)中的二進(jìn)制數(shù)據(jù)
    A8h         Read(12)          同上,不過比較詳細(xì)一點(diǎn)
    25h         Read Capacity       要求設(shè)備返回當(dāng)前容量
    23h         Read Format Capacity   查詢當(dāng)前容量及可用空間  
    03h         Request  Sense        請求設(shè)備向主機(jī)返回執(zhí)行結(jié)果,及狀態(tài)數(shù)據(jù) 
    01h        Rexero Unit          返回零軌道
    2Bh         Seek(10)          為設(shè)備分配到特定地址
    1Dh         Send  Diagnostic      執(zhí)行固件復(fù)位并執(zhí)行診斷
    00h        Test Unit Ready       請求設(shè)備報(bào)告是否處于Ready狀態(tài) 
    2Fh         Verify               在存儲中驗(yàn)證數(shù)據(jù)
    2Ah         Write(10)          從主機(jī)向介質(zhì)寫二進(jìn)制數(shù)據(jù)
    AAh         Write(12)          同上,不過比較詳細(xì)    
    2Eh        Write and Verify      寫二進(jìn)制數(shù)據(jù)并驗(yàn)證 

對于不同的命令,其命令塊描述符略有不同,其要求的返回內(nèi)容也有所不同,根據(jù)相 應(yīng)的文檔,可以對每種請求作出適當(dāng)?shù)幕貞?yīng)。比如,下面是INQUIRY 請求的命令塊描述符和其返回內(nèi)容的數(shù)據(jù)格式:如:INQUIRY 
    命令描述符: 

返回?cái)?shù)據(jù)格式 


        Host 會依次發(fā)出INQUIRY、Read Capacity、UFI Mode Sense 請求,如果上述請求的返回結(jié)果都正確,則Host 會發(fā)出READ 命令,讀取文件系統(tǒng)0 簇0 扇區(qū)的MBR 數(shù)據(jù),進(jìn)入文件系統(tǒng)識別階段。 

4、利用USB View觀察結(jié)果 
       可通過USB View軟件查看到USB設(shè)置階段獲取到的信息。

 
        二出現(xiàn)的主要問題 
            在調(diào)試過程中遇到了一個(gè)問題。現(xiàn)象是:在目標(biāo)板加載完驅(qū)動后,即執(zhí)行完:
            # insmod g_file_storage.ko file=/dev/mtdblock2 stall=0 removable=1
         后,接好USB線。此時(shí)在windows端設(shè)備出有usb storage設(shè)備加入,但出現(xiàn)不了盤符。
         下面記錄下調(diào)試過程。

調(diào)試過程 
      根據(jù)規(guī)范,當(dāng)完成SCSI指令集中Inquiry 命令時(shí),可以出現(xiàn)盤符。所以可以通過bushound軟件查看通訊過程,找出原因。
      下面是利用bushound工具在出現(xiàn)問題時(shí)采集到的數(shù)據(jù)。
      Dev     Phase    Data                                                                   Info             Time       Cmd.Phase. Ofs 

  --- ----- --------------------------------- ---------- ----- -----------
      26      CTL      80 06 00 01 - 00 00 12 00                                          GET DESCRIPTR         0us           1.1.0 
      26      DI       12 01 10 01 - 00 00 00 10 - 25 05 a5 a4 - 12 03 01 02 ........%....... 4.8ms                           1.2.0 
                       03 01 ..                                                                                               1.2.16 
      26      CTL      80 06 00 02 - 00 00 09 00                                          GET DESCRIPTR         14us          2.1.0 
      26      DI       09 02 20 00 - 01 01 04 c0 - 01                                     .. ......             3.9ms         2.2.0 
      26      CTL      80 06 00 02 - 00 00 20 00                                          GET DESCRIPTR         16us          3.1.0 
      26      DI       09 02 20 00 - 01 01 04 c0 - 01 09 04 00 - 00 02 08 06   .. ............. 4.9ms           3.2.0
                       50 05 07 05 - 81 02 40 00 - 00 07 05 02 - 02 40 00 00 P.....@......@..                  3.2.16  
      26      CTL      80 06 00 03 - 00 00 02 00                                          GET DESCRIPTR         60us          4.1.0 
      26      DI       09 02 20 00 - 01 01 04 c0 - 01                                     .. ......             3.9ms         2.2.0 
      26      DI       04 03                                                                 ..                 3.9ms         3.1.0 
      26      CTL      80 06 00 03 - 00 00 04 00                                          GET DESCRIPTR         15us          5.1.0 
      26      DI       04 03 09 04                                                             ....             3.9ms         6.1.0
      26     CTL      80 06 03 03 - 09 04 02 00                                          GET DESCRIPTR        10us            1.2.16 
      26      DI       1a 03                                                                   ....            4.0ms           6.2.0 
      26     CTL      80 06 03 03 - 09 04 1a 00                                           GET DESCRIPTR        18us            7.1.0 
      26      DI      1a 03 33 00 - 37 00 32 00 - 30 00 34 00 - 31 00 37 00 ..3.7.2.0.4.1.7. 4.9ms             7.2.0 
                      35 00 36 00 - 37 00 37 00 - 35 00                                   5.6.7.7.5. 7.2.16 
      26     CTL      00 09 01 00 - 00 00 00 00                                           SET CONFIG         16us              8.1.0 
      26     CTL      01 0b 00 00 - 00 00 00 00                                           SET INTERFACE      60ms              9.1.0 
      26     CTL      a1 fe 00 00 - 00 00 01 00                                           CLASS               62ms              10.1.0 
      26     DI             00 .                                                                              3.9ms           10.2.0 
      26     DO        55 53 42 43 - 08 60 e0 86 - 24 00 00 00 - 80 00 06 12 USBC.`..$....... 985us           11.1.0 
                      00 00 00 24 - 00 00 00 00 - 00 00 00 00 - 00 00 00       ...$...........                11.1.16 
      26      DI      00 80 02 02 - 1f 00 00 00 - 4c 69 6e 75 - 78 20 20 20      ........Linux 1.0ms             12.1.0 
                      46 69 6c 65 - 2d 53 74 6f - 72 20 47 61 - 64 67 65 74           File-Stor Gadget        12.1.16 
                      30 33 31 32                                                       0312                  12.1.32 
      26     CTL      80 06 00 02 - 00 00 20 00                                        GET DESCRIPTR           893ms           13.1.0 

      26     DI       09 02 20 00 - 01 01 04 c0 - 01 09 04 00 - 00 02 08 06 .. ............. 4.1ms           13.2.0 
                      50 05 07 05 - 81 02 40 00 - 00 07 05 02 - 02 40 00 00 P.....@......@..                13.2.16 
      26      CTL     80 06 00 02 - 00 00 20 00                                             GET DESCRIPTR         2.7sc        14.1.0 
      26      DI      09 02 20 00 - 01 01 04 c0 - 01 09 04 00 - 00 02 08 06 .. .............  4.4ms           14.2.0 
                      50 05 07 05 - 81 02 40 00 - 00 07 05 02 - 02 40 00 00 P.....@......@..                   14.2.16 
      26      USTS 05 00 00 c0                                                              no response       2.8sc             15.1.0

注意上面紅色部分的代碼,DO發(fā)出了55 53 42 43開始的CBW命令塊,命令碼是12,即Inquiry命令。要求目標(biāo)返回Inquiry命令要求的數(shù)據(jù),長度是0x24。接下來設(shè)備端通過DI返回了設(shè)備信息。按照規(guī)范,在返回完了數(shù)據(jù)后,設(shè)備端還應(yīng)該通過DI向系統(tǒng)返回CSW的值。但實(shí)際的捕獲內(nèi)容并沒有。所以導(dǎo)致不能正確出現(xiàn)盤符。
    在file_storage.c發(fā)送數(shù)據(jù)時(shí)都會調(diào)用到start_transfer()函數(shù)。在此函數(shù)中加入printk調(diào)試語句,觀察現(xiàn)象。發(fā)現(xiàn)只要加入的調(diào)試語句,windows端就能夠正常設(shè)別設(shè)備了。于是,可以猜測是因?yàn)樾枰谶B續(xù)兩次發(fā)送之間加上一些延時(shí)。在函數(shù)中加入udelay(800)后,windows系統(tǒng)可以正常發(fā)現(xiàn)設(shè)備了。具體的代碼架構(gòu),將在下一遍文章中解析。
    下面是程序正常后,用bushound捕獲到的數(shù)據(jù)。


    紅色部分,可以看出設(shè)備正確的按照規(guī)范在發(fā)送完數(shù)據(jù)后,返回CSW信息。


      四、總結(jié)做好USB gadget驅(qū)動、或者USB host驅(qū)動調(diào)試需要:
        ·掌握一定的知識基礎(chǔ)
        包括:USB協(xié)議、具體的類設(shè)備規(guī)范、USB驅(qū)動程序架構(gòu)、USB設(shè)備端控制器操作等。
        ·合理利用調(diào)試工具。
        包括:USB view 、bushound 、及一些硬件USB信號分析儀。

發(fā)表評論
評論列表(網(wǎng)友評論僅供網(wǎng)友表達(dá)個(gè)人看法,并不表明本站同意其觀點(diǎn)或證實(shí)其描述)
久草视频在线观| 国产天堂素人系列在线视频| 欧美性x x x| 日本xxxxx18| 久久久www成人免费精品张筱雨| 国产精品免费久久久久| 亚洲一区色图| 自拍偷自拍亚洲精品被多人伦好爽| 天天做天天摸天天爽天天爱| 国产乱淫a∨片免费视频| www.自拍偷拍| 日韩一级片免费视频| 国产精品96久久久久久又黄又硬| 日韩午夜av一区| 国产精品伦一区| 美女精品网站| 久久精品凹凸全集| 国产v日韩v欧美v| 1024在线视频| 国产偷窥女洗浴在线观看亚洲| 日韩在线视频不卡| 国产熟女高潮一区二区三区 | 欧美日韩视频专区在线播放| 不卡视频一二三四| 欧美激情1区2区3区| 四虎成人精品一区二区免费网站| 日韩黄色影院| av五月婷婷| 亚洲国产综合久久精品小蝴蝶| 免费观看成人毛片| 亚洲av无码国产精品麻豆天美| 欧美综合在线播放| 欧美一区二区三区精美影视| www.综合网.com| 久久亚洲国产成人亚| 最近中文字幕免费观看| 老司机深夜福利网站| 性欧美在线视频| 美女黄色免费看| 九色一区二区| 成人黄色在线免费| 午夜伦理精品一区| 色婷婷av一区二区三区在线观看| 69堂精品视频| 精品久久香蕉国产线看观看亚洲 | 亚洲日本中文字幕免费在线不卡| 在线欧美小视频| 亚洲精品视频免费看| av激情综合网| 精东粉嫩av免费一区二区三区| 欧美日韩国产一区精品一区| 欧美大奶一区二区| 四虎影视精品永久在线观看| 不卡一本毛片| 黄网站在线免费| 成人高清网站| 四虎在线视频| 日本视频一二区| 菠萝蜜视频网站入口| 国产又粗又爽| 久久性生活视频| 婷婷在线免费观看| 国产精品无码AV| 夜夜狠狠擅视频| 中文字幕在线观看视频免费| 欧美精品xxxxx| 伊人在线视频观看| 国产第一页精品| 国产精品密蕾丝袜| 日本成人免费视频| 九九热免费在线| 无码人妻aⅴ一区二区三区69岛| 无码人妻一区二区三区精品视频| 天堂av在线网站| 成人一区二区三| 不卡av免费在线| 日日摸天天爽天天爽视频| 中文字幕日本最新乱码视频| 国产美女主播在线播放| 国产精品成人久久电影| 黄色激情在线视频| 日韩av在线播放不卡| 国产xxxx振车| 亚洲一区二区三区av无码| 欧美久久在线观看| 97视频在线免费| 欧美一级片免费播放| 欧美日韩国产色站一区二区三区| 杨幂一区二区三区免费看视频| 亚洲日本va| 香蕉免费一区二区三区在线观看 | 亚洲国产一区二区三区在线| 欧美精品v日韩精品v国产精品| 国产亚洲第一区| 欧美日韩综合久久| 黄色一级视频播放| 黄色片久久久久| jizz18女人| 亚洲一区二区三区三州| 欧美xxxxx精品| 国产黄色录像视频| 午夜69成人做爰视频| 国产在线视频99| 九九热视频精品| 伊人久久成人网| 天天色综合av| 四虎永久在线观看| 78国产伦精品一区二区三区| 激情校园亚洲图片| 男人天堂资源在线| 日本在线视频网址| 在线不卡一区| 免费av一区二区三区四区| 天天久久综合| 亚洲综合99| 福利一区二区在线| 亚洲欧美另类在线| 欧美制服丝袜第一页| 日韩精品一区二区在线| 国产亚洲欧美日韩精品| 亚州精品天堂中文字幕| 国产精品劲爆视频| 久久久综合亚洲91久久98| 天天成人综合网| 天堂一区在线观看| 中国特黄一级片| 天天干天天操天天操| 日韩在线观看视频网站| 岳张嘴把我的精子吞下去| videoxxxx另类日本极品| 成人高清免费在线| 91国产精品| 国产精品99久久精品| 麻豆91在线播放免费| 国产视频视频一区| 色香色香欲天天天影视综合网| 亚洲电影免费观看高清完整版在线 | 亚洲伊人观看| 国产精品综合二区| 有码一区二区三区| 日韩久久免费av| 久久久免费精品视频| 国产乱码精品一区二区三区卡| 韩日视频在线观看| 国产美女免费网站| 夜夜爽8888| 国产黄色小视频| 欧美理论在线观看| 日韩三级一区| 欧美 日韩 国产 一区| 成人免费福利片| 欧美日韩国产一区二区| 亚洲三级黄色在线观看| 国产精品亚洲综合天堂夜夜| 看一级黄色录像| 中文字幕中文字幕一区| 一区二区免费视频| 亚洲欧美国产一本综合首页| 国产精品99久久久久久久久久久久| 亚洲成人第一| 亚洲天堂2024| 亚洲男人天堂网址| jizzjizzjizz中国| 欧美男男video| 国产欧美日韩精品一区二区三区 | 成人免费看视频网站| 欧美色图国产精品| 国产成人av一区二区三区在线观看| 亚洲电影在线播放| 欧美成年人视频网站| 欧美日韩一区二区三区在线视频| 亚洲精品乱码久久久久久动漫| 日韩精品视频免费播放| 国产精品入口麻豆完整版| 国产精品一区在线看| av成人app永久免费| 久久99热99| 91传媒视频在线播放| 68精品久久久久久欧美| 91成人在线视频观看| 大胸美女被爆操| 亚洲视频在线观看不卡| 韩国精品视频| 欧美禁忌电影网| 91视频www| 日韩精品视频免费专区在线播放| 成人av男人的天堂| 中文字幕制服丝袜| 好吊视频一二三区| 国产小视频免费在线观看| 欧美裸体在线版观看完整版| 中文字幕第一区综合| 日韩在线视频免费观看| 欧美精品一区二区视频 | h视频在线观看网站| 成人mm视频在线观看| 日本午夜一区二区| 欧美日韩免费视频| 国产欧美中文字幕| 在线视频日韩欧美| 性生交生活影碟片| av午夜在线| 欧美久久久久| 欧美日韩免费网站| 国产suv精品一区二区| 免费黄色福利视频| 中文字幕在线观看欧美| 在线黄色av| 日本不卡高清| 亚洲综合在线视频| 国产成人精品在线播放| 国产成人在线综合| 亚洲日本中文字幕在线| 黄页在线观看免费| 日韩高清一级片| 日韩久久久精品| 蜜桃日韩视频| 国产女人18水真多毛片18精品| 成年免费视频| 偷拍一区二区| 曰韩精品一区二区| 国产精品中文久久久久久久| 国产伦精品一区二区三区精品| 四虎www4hu永久免费| 中文字幕资源网在线观看免费 | 亚洲美女精品成人在线视频| 国产手机视频在线观看| 亚洲中文字幕无码爆乳av| 小水嫩精品福利视频导航| 香蕉视频国产精品| 在线免费不卡电影| 精品蜜桃传媒| 久久久久久久伊人| 中国在线观看免费国语版电影| 久久视频国产| 在线观看国产精品网站| 欧美国产一区二区在线| 国产在线视频你懂的| 欧美视频综合| 亚洲综合精品四区| 亚洲欧洲国产精品| 成人黄色片视频| 人妻va精品va欧美va| 唐人社导航福利精品| 久久婷婷国产综合国色天香| 97在线视频免费| 91黄色免费视频| 先锋影院av| 99精品视频在线观看播放| 欧美日韩成人综合| 日韩人妻一区二区三区蜜桃视频| 国产精品伦理一区| 久久人体大尺度| 亚洲国产精品精华液2区45| 国产精品一区二区电影| 手机在线免费看片| www.中文字幕久久久| 另类调教123区| 欧美成年人视频网站| 51调教丨国产调教视频| 国产亚洲无码精品| 成人午夜福利一区二区| 国产黄色一级电影| av成人激情| 色青青草原桃花久久综合 | 97人人澡人人爽| 亚洲男人第一av| a在线免费观看| 91麻豆国产香蕉久久精品| 国产精品久久视频| 高h视频免费观看| 日韩大片在线永久免费观看网站| 国产一区二区精品久久99| 91精品国产乱码久久久久久久久| 国产1区2区在线观看| 青青色在线视频| 国产一区二区三区在线观看免费视频| 久久久久久久久久久成人| 国产熟妇久久777777| 性感av在线播放| 懂色中文一区二区在线播放| 国产精品男人爽免费视频1| 国产盗摄x88av| 久久久久久久久免费视频| 成人av在线看| 91久久精品国产| 中文字幕福利视频| 黄色欧美视频| 91福利国产成人精品照片| 一二三四视频社区在线| 国产高清av| 欧美激情第二页| 久久影院免费观看| 国产精品一区二区亚洲| 最新真实国产在线视频| 久久嫩草精品久久久精品| 国产伦精品一区二区三区高清| 国产欧美日韩成人| ccyy激情综合| 欧美mv日韩mv| 丰满少妇xbxb毛片日本| 噜噜噜噜噜在线视频| 久久亚洲影视婷婷| 日本不卡在线播放| 欧美性xxxx禁忌| 欧美日本一区二区视频在线观看| 欧美成年人视频网站| 成熟的女同志hd| 高清毛片在线观看| 色国产综合视频| 91看片在线免费观看| 最新天堂资源在线资源| 91免费精品国自产拍在线不卡| 久久99精品久久久久久三级| 婷婷在线观看视频| 欧美日韩三级电影在线| 国模私拍一区二区三区| 成人毛片一区二区三区| 999久久久精品一区二区| 亚洲精品视频免费| 懂色av粉嫩av蜜臀av一区二区三区| heyzo中文字幕在线| 91福利视频在线| 深夜视频在线观看| 久热国产在线| 欧美性xxxxxx| 国产永久免费网站| 国产精品一二三区视频| 亚洲毛片av在线| 少妇无码av无码专区在线观看| 激情婷婷丁香| 先锋影音在av资源看片| 777精品久无码人妻蜜桃| 手机在线观看毛片| 在免费jizzjizz在线视频| 日韩福利视频导航| 97视频资源在线观看| 美女把尿口扒开让男人桶在线观看| 欧美性久久久| 国产精品视频自在线| 天堂av手机版| 午夜亚洲性色视频| 国产高清精品一区二区| 欧美多人野外伦交| 麻豆精品视频在线| 欧美精品亚洲| 中文字幕www| 久久人人爽人人爽| 国产免费黄色一级片| 水莓100在线视频| 亚洲韩国一区二区三区| 色18美女社区| 人人澡人人添人人爽一区二区| 欧美午夜在线一二页| 一区二区三区四区免费| 成人午夜毛片| 伊人精品在线观看| 性色av一区二区三区四区| 日韩免费久久| 国产精品女人网站| 网曝门事件国产精品二区| 久久97超碰国产精品超碰| 亚洲国产婷婷香蕉久久久久久99| 交视频在线观看国产| 夜夜嗨av一区二区三区中文字幕| 亚洲精品成人在线播放| 91探花在线观看| 精品一区电影国产| 精品久久久久久久久久久久久久久久| 黑丝美女一区二区| 国产伊人精品在线| 91精彩视频| 国产亚洲欧美激情| 一级黄色录像在线观看| 一区二区精品伦理...| 亚洲网站在线看| 国产又粗又长视频| 国产精品久久久久毛片大屁完整版| 久久国产手机看片| 在线天堂日本| 狠狠色狠色综合曰曰| 日韩av片在线| 欧美欧美黄在线二区| 成人免费福利在线| 美女被c网站| 亚洲卡通动漫在线| 国产美女视频免费观看下载软件| 青草综合视频| 欧美大片在线看| 717影院理论午夜伦不卡久久| 国产精品中文字幕一区二区三区| 熟女少妇在线视频播放| 欧美人与禽性xxxxx杂性| 亚洲天堂精品在线| 亚洲精品国产片| 国产精品一二三四区| 国产极品美女高潮无套久久久| 国产调教在线| 欧美精品在线观看91| 四虎地址8848jia|