日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux下usb驱动配置文件,Linux环境下USB的原理、驱动和配置

發布時間:2025/3/12 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux下usb驱动配置文件,Linux环境下USB的原理、驱动和配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

隨著生活水平的提高,人們對USB設備的使用也越來越多,鑒于Linux在硬件配置上尚不能全部即插即用,因此關于Linux如何配置和使用,成為困擾我們的一大問題。本文引用地址:http://www.eepw.com.cn/article/70029.htm

linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

什么是USB?

USB是英文Universal Serial Bus的縮寫,意為通用串行總線。USB最初是為了替代許多不同的低速總線(包括并行、串行和鍵盤連接)而設計的,它以單一類型的總線連接各種不同的類型的設備。USB的發展已經超越了這些低速的連接方式,它現在可以支持幾乎所有可以連接到PC上的設備。最新的USB規范修訂了理論上高達480Mbps的高速連接。Linux內核支持兩種主要類型的USB驅動程序:宿主系統上的驅動程序和設備上的驅動程序,從宿主的觀點來看(一個普通的宿主也就是一個PC機),宿主系統的USB設備驅動程序控制插入其中的USB設備,而USB設備的驅動程序控制該設備如何作為一個USB設備和主機通信。

USB的具體構成

在動手寫USB驅動程序這前,讓我們先看看寫的USB驅動程序在內核中的結構,如下圖:

USB驅動程序存在于不同的內核子系統和USB硬件控制器之間,USB核心為USB驅動程序提供了一個用于訪問和控制USB硬件的接口,而不必考慮系統當前存在的各種不同類型的USB硬件控制器。USB是一個非常復雜的設備,linux內核為我們提供了一個稱為USB的核心的子系統來處理大部分的復雜性,USB設備包括配置(configuration)、接口(interface)和端點(endpoint),USB設備綁定到接口上,而不是整個USB設備。如下圖所示:

USB通信最基本的形式是通過端點(USB端點分中斷、批量、等時、控制四種,每種用途不同),USB端點只能往一個方向傳送數據,從主機到設備或者從設備到主機,端點可以看作是單向的管道(pipe)。所以我們可以這樣認為:設備通常具有一個或者更多的配置,配置經常具有一個或者更多的接口,接口通常具有一個或者更多的設置,接口沒有或具有一個以上的端點。驅動程序把驅動程序對象注冊到USB子系統中,稍后再使用制造商和設備標識來判斷是否已經安裝了硬件。USB核心使用一個列表(是一個包含制造商ID和設備號ID的一個結構體)來判斷對于一個設備該使用哪一個驅動程序,熱插撥腳本使用它來確定當一個特定的設備插入到系統時該自動裝載哪一個驅動程序。

上面我們簡要說明了驅動程序的基本理論,在寫一個設備驅動程序之前,我們還要了解以下兩個概念:模塊和設備文件。

模塊:是在內核空間運行的程序,實際上是一種目標對象文件,沒有鏈接,不能獨立運行,但是可以裝載到系統中作為內核的一部分運行,從而可以動態擴充內核的功能。模塊最主要的用處就是用來實現設備驅動程序。Linux下對于一個硬件的驅動,可以有兩種方式:直接加載到內核代碼中,啟動內核時就會驅動此硬件設備。另一種就是以模塊方式,編譯生成一個.ko文件(在2.4以下內核中是用.o作模塊文件,我們以2.6的內核為準,以下同)。當應用程序需要時再加載到內核空間運行。所以我們所說的一個硬件的驅動程序,通常指的就是一個驅動模塊。

設備文件:對于一個設備,它可以在/dev下面存在一個對應的邏輯設備節點,這個節點以文件的形式存在,但它不是普通意義上的文件,它是設備文件,更確切的說,它是設備節點。這個節點是通過mknod命令建立的,其中指定了主設備號和次設備號。主設備號表明了某一類設備,一般對應著確定的驅動程序;次設備號一般是區分不同屬性,例如不同的使用方法,不同的位置,不同的操作。這個設備號是從/proc/devices文件中獲得的,所以一般是先有驅動程序在內核中,才有設備節點在目錄中。這個設備號(特指主設備號)的主要作用,就是聲明設備所使用的驅動程序。驅動程序和設備號是一一對應的,當你打開一個設備文件時,操作系統就已經知道這個設備所對應的驅動程序。對于一個硬件,Linux是這樣來進行驅動的:首先,我們必須提供一個.ko的驅動模塊文件。我們要使用這個驅動程序,首先要加載它,我們可以用insmod xxx.ko,這樣驅動就會根據自己的類型(字符設備類型或塊設備類型,例如鼠標就是字符設備而硬盤就是塊設備)向系統注冊,注冊成功系統會反饋一個主設備號,這個主設備號就是系統對它的唯一標識。驅動就是根據此主設備號來創建一個一般放置在/dev目錄下的設備文件。在我們要訪問此硬件時,就可以對設備文件通過open、read、write、close等命令進行。而驅動就會接收到相應的read、write操作而根據自己的模塊中的相應函數進行操作了。

USB驅動程序如何應用

了解了上述理論后,我們就可以動手寫驅動程序,如果你基本功好,而且寫過linux下的硬件驅動,USB的硬件驅動和pci_driver很類似,那么寫USB的驅動就比較簡單了,如果你只是大體了解了linux的硬件驅動,那也不要緊,因為在linux的內核源碼中有一個框架程序可以拿來借用一下,這個框架程序在/usr/src/~(你的內核版本,以下同)/drivers/usb下,文件名為usb-skeleton.c。寫一個USB的驅動程序最基本的要做四件事:驅動程序要支持的設備、注冊USB驅動程序、探測和斷開、提交和控制urb(USB請求塊)(當然也可以不用urb來傳輸數據,下文我們會說到)。

驅動程序支持的設備:有一個結構體struct usb_device_id,這個結構體提供了一列不同類型的該驅動程序支持的USB設備,對于一個只控制一個特定的USB設備的驅動程序來說,struct usb_device_id表被定義為:

/* 驅動程序支持的設備列表 */

static struct usb_device_id skel_table [] = {

{ USB_DEVICE(USB_SKEL_VENDOR_ID, USB_SKEL_PRODUCT_ID) },

{ } ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /* 終止入口 */

};

MODULE_DEVICE_TABLE (usb, skel_table);

對于PC驅動程序,MODULE_DEVICE_TABLE是必需的,而且usb必需為該宏的第一個值,而USB_SKEL_VENDOR_ID和USB_SKEL_PRODUCT_ID就是這個特殊設備的制造商和產品的ID了,我們在程序中把定義的值改為我們這款USB的,如:

/* 定義制造商和產品的ID號 */

#define USB_SKEL_VENDOR_ID ? ? ? 0x1234

#define USB_SKEL_PRODUCT_ID ? ? 0x2345

這兩個值可以通過命令lsusb,當然你得先把USB設備先插到主機上了。或者查看廠商的USB設備的手冊也能得到,在我機器上運行lsusb是這樣的結果:

Bus 004 Device 001: ID 0000:0000

Bus 003 Device 002: ID 1234:2345 ?Abc ?Corp.

Bus 002 Device 001: ID 0000:0000

Bus 001 Device 001: ID 0000:0000

得到這兩個值后把它定義到程序里就可以了。

注冊USB驅動程序:所有的USB驅動程序都必須創建的結構體是struct usb_driver。這個結構體必須由USB驅動程序來填寫,包括許多回調函數和變量,它們向USB核心代碼描述USB驅動程序。創建一個有效的struct usb_driver結構體,只須要初始化五個字段就可以了,在框架程序中是這樣的:

static struct usb_driver skel_driver = {

.owner = THIS_MODULE,

.name = ? ? ? ? ?"skeleton",

.probe = ?skel_probe,

.disconnect = ?skel_disconnect,

.id_table = ? ? ?skel_table,

};

struct module *owner :指向該驅動程序的模塊所有者的批針。USB核心使用它來正確地對該USB驅動程序進行引用計數,使它不會在不合適的時刻被卸載掉,這個變量應該被設置為THIS_MODULE宏。

const char *name:指向驅動程序名字的指針,在內核的所有USB驅動程序中它必須是唯一的,通常被設置為和驅動程序模塊名相同的名字。 {{分頁}}

int (*probe) (struct usb_interface *intf,const struct usb_device_id *id):這個是指向USB驅動程序中的探測函數的指針。當USB核心認為它有一個接口(usb_interface)可以由該驅動程序處理時,這個函數被調用。

void (disconnect)(struct usb_interface *intf):指向USB驅動程序中的斷開函數的指針,當一個USB接口(usb_interface)被從系統中移除或者驅動程序正在從USB核心中卸載時,USB核心將調用這個函數。

const struct usb_device_id *id_table:指向ID設備表的指針,這個表包含了一列該驅動程序可以支持的USB設備,如果沒有設置這個變量,USB驅動程序中的探測回調函數就不會被調用。

在這個結構體中還有其它的幾個回調函數不是很常用,這里就不一一說明了。以struct usb_driver 指針為參數的usb_register_driver函數調用把struct usb_driver注冊到USB核心。一般是在USB驅動程序的模塊初始化代碼中完成這個工作的:

static int __init usb_skel_init(void)

{

int result;

/* 驅動程序注冊到USB子系統中*/

result = usb_register(&skel_driver);

if (result)

err("usb_register failed. Error number %d", result);

return result;

}

當USB驅動程序將要被卸開時,需要把struct usb_driver從內核中注銷。通過調用usb_deregister_driver來完成這個工作,當調用發生時,當前綁定到該驅動程序上的任何USB接口都被斷開,斷開函數將被調用:

static void __exit usb_skel_exit(void)

{

/* 從子系統注銷驅動程序 */

usb_deregister(&skel_driver);

}

探測和斷開:當一個設備被安裝而USB核心認為該驅動程序應該處理時,探測函數被調用,探測函數檢查傳遞給它的設備信息,確定驅動程序是否真的適合該設備。當驅動程序因為某種原因不應該控制設備時,斷開函數被調用,它可以做一些清理工作。探測回調函數中,USB驅動程序初始化任何可能用于控制USB設備的局部結構體,它還把所需的任何設備相關信息保存到一個局部結構體中,下面是探測函數的部分源碼,我們加以分析。

/* 設置端點信息 */

/* 只使用第一個批量IN和批量OUT端點 */

iface_desc = interface->cur_altsetting;

for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {

endpoint = &iface_desc->endpoint[i].desc;

if (!dev->bulk_in_endpointAddr &&

(endpoint->bEndpointAddress & USB_DIR_IN) &&

((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)

== USB_ENDPOINT_XFER_BULK)) {

/* 找到一個批量IN端點 */

buffer_size = endpoint->wMaxPacketSize;

dev->bulk_in_size = buffer_size;

dev->bulk_in_endpointAddr = endpoint->bEndpointAddress;

dev->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);

if (!dev->bulk_in_buffer) {

err("Could not allocate bulk_in_buffer");

goto error;

}

}

if (!dev->bulk_out_endpointAddr &&

!(endpoint->bEndpointAddress & USB_DIR_IN) &&

((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)

== USB_ENDPOINT_XFER_BULK)) {

/* 找到一個批量OUT端點 */

dev->bulk_out_endpointAddr = endpoint->bEndpointAddress;

}

}

if (!(dev->bulk_in_endpointAddr && dev->bulk_out_endpointAddr)) {

err("Could not find both bulk-in and bulk-out endpoints");

goto error;

}

在探測函數里,這個循環首先訪問該接口中存在的每一個端點,給該端點一個局部指針以便以后訪問:

for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) {

endpoint = &iface_desc->endpoint[i].desc;

在一輪探測過后,我們就有了一個端點,在還沒有發現批量IN類型的端點時,探測該端點方向是否為IN,這可以通過檢查USB_DIR_IN是否包含在bEndpointAddress端點變量有確定,如果是的話,我們在探測該端點類型是否為批量,先用USB_ENDPOINT_XFERTYPE_MASK位掩來取bmAttributes變量的值,然后探測它是否和USB_ENDPOINT_XFER_BULK值匹配:

if (!dev->bulk_out_endpointAddr &&

!(endpoint->bEndpointAddress & USB_DIR_IN) &&

((endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)

== USB_ENDPOINT_XFER_BULK))

如果所有這些探測都通過了,驅動程序就知道它已經發現了正確的端點類型,可以把該端點的相關信息保存到一個局部結構體中以便稍后用它來和端點進行通信:

/* 找到一個批量IN類型的端點 */

buffer_size = endpoint->wMaxPacketSize;

dev->bulk_in_size = buffer_size;

dev->bulk_in_endpointAddr = endpoint->bEndpointAddress;

dev->bulk_in_buffer = kmalloc(buffer_size, GFP_KERNEL);

if (!dev->bulk_in_buffer) {

err("Could not allocate bulk_in_buffer");

goto error;

}

因為USB驅動程序要在設備的生命周期的稍后時間獲取和接口相關聯的局部數據結構體,所以調用了usb_set_intfdata函數,把它保存到struct usb_interface結構體中以便后面的訪問

/* 把數據指針保存到這個接口設備中 */

usb_set_intfdata(interface, dev);

我們以后調用usb_set_intfdata函數來獲取數據。當這一切都完成后,USB驅動程序必須在探測函數中調用usb_register_dev函數來把該設備注冊到USB核心里:

/* 注冊設備到USB核心 */

retval = usb_register_dev(interface, &skel_class);

if (retval) {

/* 有些情況下是不允許注冊驅動程序的 */

err("Not able to get a minor for this device.");

usb_set_intfdata(interface, NULL);

goto error;

}

當一個USB設備被斷開時,和該設備相關聯的所有資源都應該被盡可能的清理掉,在此時,如果已在在探測函數中調用了注冊函數來為該USB設備分配了一個次設備號話,必須調用usb_deregister_dev函數來把次設備號交還給USB核心。在斷開函數中,從接口獲取之前調用usb_set_intfdata設置的任何數據也是很重要的。然后設置struct usb_interface結構體中的數據指針為NULL,以防任何不適當的對該數據的錯誤訪問。

在探測函數中會對每一個接口進行一次探測,所以我們在寫USB驅動程序的時候,只要做好第一個端點,其它的端點就會自動完成探測。在探測函數中我們要注意的是在內核中用結構體struct usb_host_endpoint來描述USB端點,這個結構體在另一個名為struct usb_endpoint_descriptor的結構體中包含了真正的端點信息,struct usb_endpoint_descriptor結構體包含了所有的USB特定的數據,該結構體中我們要關心的幾個字段是:

bEndpointAddress:這個是特定的USB地址,可以結合USB_DIR_IN和USB_DIR_OUT來使用,以確定該端點的數據是傳向設備還是主機。

bmAttributes:這個是端點的類型,這個值可以結合位掩碼USB_ENDPOINT_XFERTYPE_MASK來使用,以確定此端點的類型是USB_ENDPOINT_XFER_ISOC(等時)、USB_ENDPOINT_XFER_BULK(批量)、USB_ENDPOINT_XFER_INT的哪一種。

wMaxPacketSize:這個是端點一次可以處理的最大字節數,驅動程序可以發送數量大于此值的數據到端點,在實際傳輸中,數據量如果大于此值會被分割。

bInterval:這個值只有在端點類型是中斷類型時才起作用,它是端點中斷請求的間隔時間,以毫秒為單位。 {{分頁}}

提交和控制urb:當驅動程序有數據要發送到USB設備時(大多數情況是在驅動程序的寫函數中),要分配一個urb來把數據傳輸給設備:

/* 創建一個urb,并且給它分配一個緩存*/

urb = usb_alloc_urb(0, GFP_KERNEL);

if (!urb) {

retval = -ENOMEM;

goto error;

}

當urb被成功分配后,還要創建一個DMA緩沖區來以高效的方式發送數據到設備,傳遞給驅動程序的數據要復制到這塊緩沖中去:

buf = usb_buffer_alloc(dev->udev, count, GFP_KERNEL, &urb->transfer_dma);

if (!buf) {

retval = -ENOMEM;

goto error;

}

if (copy_from_user(buf, user_buffer, count)) {

retval = -EFAULT;

goto error;

}

當數據從用戶空間正確復制到局部緩沖區后,urb必須在可以被提交給USB核心之前被正確初始化:

/* 初始化urb */

usb_fill_bulk_urb(urb, dev->udev,

usb_sndbulkpipe(dev->udev, dev->bulk_out_endpointAddr),

buf, count, skel_write_bulk_callback, dev);

urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;

然后urb就可以被提交給USB核心以傳輸到設備了:

/* 把數據從批量OUT端口發出 */

retval = usb_submit_urb(urb, GFP_KERNEL);

if (retval) {

err("%s - failed submitting write urb, error %d", __FUNCTION__, retval);

goto error;

}

當urb被成功傳輸到USB設備之后,urb回調函數將被USB核心調用,在我們的例子中,我們初始化urb,使它指向skel_write_bulk_callback函數,以下就是該函數:

static void skel_write_bulk_callback(struct urb *urb, struct pt_regs *regs)

{

struct usb_skel *dev;

dev = (struct usb_skel *)urb->context;

if (urb->status &&

!(urb->status == -ENOENT ||

urb->status == -ECONNRESET ||

urb->status == -ESHUTDOWN)) {

dbg("%s - nonzero write bulk status received: %d",

__FUNCTION__, urb->status);

}

/* 釋放已分配的緩沖區 */

usb_buffer_free(urb->dev, urb->transfer_buffer_length,

urb->transfer_buffer, urb->transfer_dma);

}

有時候USB驅動程序只是要發送或者接收一些簡單的數據,驅動程序也可以不用urb來進行數據的傳輸,這是里涉及到兩個簡單的接口函數:usb_bulk_msg和usb_control_msg ,在這個USB框架程序里讀操作就是這樣的一個應用:

/* 進行阻塞的批量讀以從設備獲取數據 */

retval = usb_bulk_msg(dev->udev,

usb_rcvbulkpipe(dev->udev, dev->bulk_in_endpointAddr),

dev->bulk_in_buffer,

min(dev->bulk_in_size, count),

&count, HZ*10);

/*如果讀成功,復制到用戶空間 */

if (!retval) {

if (copy_to_user(buffer, dev->bulk_in_buffer, count))

retval = -EFAULT;

else

&n

總結

以上是生活随笔為你收集整理的linux下usb驱动配置文件,Linux环境下USB的原理、驱动和配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品s色 | 欧美做受高潮电影o | 国内丰满少妇猛烈精品播放 | 国产精品美女久久 | 91香蕉久久 | 欧美一级免费高清 | av在线免费观看网站 | 久久久久高清毛片一级 | 中文字幕成人在线观看 | 欧美亚洲国产精品久久高清浪潮 | 国产精品成人av在线 | 超级av在线 | 国产黄在线免费观看 | 成人在线观看你懂的 | 成人黄色国产 | 日韩av成人| 亚洲欧美成人综合 | 欧日韩在线 | 国产精品久久久久亚洲影视 | 国产精品综合久久久久久 | 久久黄色免费观看 | 久久精品一区二区三区四区 | 日日夜夜精品免费观看 | 国产精品三级视频 | 国产午夜三级一二三区 | 亚洲国产免费 | 国产一级视频在线 | 麻豆91在线 | 99在线精品视频在线观看 | 亚洲精品av在线 | 国产精品免费不 | 久久黄色影视 | 国产高清视频免费在线观看 | 婷婷网五月天 | 国产中文字幕av | 激情综合五月婷婷 | 夜夜操天天 | 久久的色 | 久久精品99国产精品酒店日本 | 欧美日韩一区二区三区免费视频 | 日韩婷婷| 97电影网手机版 | 成人国产精品久久久久久亚洲 | 国产福利免费在线观看 | 国产精品国产精品 | 日韩精品专区在线影院重磅 | 91麻豆操 | 免费日韩 精品中文字幕视频在线 | 久久精品99北条麻妃 | 99视频99| 国产午夜精品一区 | 97精品国自产拍在线观看 | 久久高清免费视频 | 日韩电影精品 | 精品久久久久久久久久久院品网 | 国产精品1区2区 | 91精品免费在线 | 婷婷激情五月综合 | 天天干天天插伊人网 | 国产精品久久久久免费观看 | 国产精品久久 | 国产精品毛片一区二区三区 | av片在线看 | 午夜久操 | 欧美在线视频第一页 | 天天干天天插伊人网 | 美女免费黄网站 | 丁香五月亚洲综合在线 | 97超碰在线资源 | 在线影院av | 国产91精品看黄网站在线观看动漫 | 91亚洲狠狠婷婷综合久久久 | 日韩亚洲在线视频 | 69夜色精品国产69乱 | 免费看特级毛片 | 久久精品二区 | 青青河边草观看完整版高清 | 日韩精品久久久久久 | 国产精品久久久久久久久久99 | 久久免费美女视频 | 一区二区 精品 | 国产亚洲精品电影 | 免费三级av | 欧美9999| 91大神免费视频 | 福利av影院 | 国产成人在线网站 | 国产91精品看黄网站 | 国产在线资源 | 国产成人av在线 | 日韩精品一区二区三区免费视频观看 | 国产精品久久久久久一区二区 | 日韩久久午夜一级啪啪 | 99中文视频在线 | 国产精品国内免费一区二区三区 | av电影 一区二区 | 五月婷婷欧美 | 91亚瑟视频| 婷婷中文字幕 | 亚洲免费永久精品国产 | 国产精品久久久久影视 | 亚洲国产午夜 | 国产中文字幕一区 | 亚洲情影院 | 中文字幕 国产精品 | 久久综合免费视频影院 | 欧美久久久久久久久久久久久 | 日日碰狠狠躁久久躁综合网 | 国产精品久久久久久久av大片 | 日韩在线网址 | 91中文字幕网 | 亚洲视频网站在线观看 | 日本高清dvd | 欧美黄网站| 黄网站色 | 最近中文字幕免费视频 | 色婷婷丁香 | 色偷偷网站视频 | 亚洲免费不卡 | 日韩精品国产一区 | 日韩一级黄色片 | 日韩精品一卡 | 国产成人精品一二三区 | 亚洲精品大片www | 久久精品国产免费 | 久草免费在线 | 国产精品入口麻豆www | 91黄视频在线观看 | 嫩草91影院| 97偷拍视频| 色婷婷综合久久久久中文字幕1 | 国产一级免费在线 | 国产精品一区二区免费 | 日韩中文在线观看 | 欧美日韩视频免费看 | 亚洲电影一区二区 | 国产成人精品久久二区二区 | 五月天久久 | 国内视频在线 | 国产视频1区2区 | 91福利视频免费 | 欧美国产日韩激情 | 亚洲精品一区二区精华 | 最新中文字幕在线资源 | 狠狠狠色丁香婷婷综合激情 | 国产精品久久久久久久久久不蜜月 | 日韩videos | 综合在线观看色 | 97手机电影网 | 欧美性大战久久久久 | 亚洲九九九在线观看 | 青青河边草免费视频 | 天天干天天射天天插 | 午夜精品一区二区三区在线视频 | 国产一级片免费视频 | 六月丁香婷 | 国产精品视频大全 | 欧美在线观看视频一区二区三区 | 成人全视频免费观看在线看 | 香蕉视频久久久 | 97色在线观看 | 亚洲三区在线 | 久久九九国产精品 | 玖玖在线视频观看 | 久久久久五月天 | 久久久久久综合 | 91亚色视频| 狠狠操导航 | 国产精品在线看 | 久久精品视频一 | 久久蜜臀一区二区三区av | 天天操天天操天天爽 | 九九久久成人 | ww亚洲ww亚在线观看 | 91成人精品观看 | 亚洲乱码在线观看 | av免费电影在线观看 | 免费黄色特级片 | 成人9ⅰ免费影视网站 | 国模吧一区 | 日韩免费视频观看 | 国产高清视频在线观看 | 日韩久久久久久久久久久久 | 九七视频在线观看 | 成人黄色影片在线 | 精品国产1区二区 | av在线播放一区二区三区 | 最新av免费| 日日夜夜91| 国产99久久久国产精品免费看 | 国产99视频在线观看 | 99综合久久| 久久特级毛片 | 日韩高清dvd | 久久少妇av | 天天爱天天射 | 黄色a视频免费 | 日韩免费视频在线观看 | av黄色在线观看 | 91精品中文字幕 | 奇米导航 | 一区免费视频 | 久久精品国产成人 | 狠狠狠色丁香婷婷综合久久五月 | 99久久久久久国产精品 | 精品二区久久 | 亚洲电影网站 | 中文字幕 婷婷 | 日韩av影片在线观看 | 中文字幕 在线看 | 91尤物国产尤物福利在线播放 | 午夜久久视频 | 午夜精品久久久久久久99水蜜桃 | 亚洲精品玖玖玖av在线看 | 中文字幕亚洲欧美 | av再线观看 | 婷婷成人亚洲综合国产xv88 | 一级久久精品 | 久久综合色天天久久综合图片 | 夜夜躁狠狠燥 | 亚洲欧洲精品一区二区 | 国产视频综合在线 | 天天精品视频 | 人人干网站 | 国产精品久久久一区二区 | 九九久久成人 | 国产精品激情在线观看 | 99久久精品国产一区 | 国产成人久久av977小说 | 天天操天天干天天操天天干 | 五月婷婷久久综合 | 欧美 亚洲 另类 激情 另类 | 日本深夜福利视频 | 亚洲免费婷婷 | 国内精品在线看 | 久久午夜国产精品 | 91麻豆国产 | 中文字幕永久免费 | 国产一区二区在线免费观看 | 婷婷www | 精品二区久久 | 97碰在线| 国产黄色片免费在线观看 | 久精品在线 | 丁香六月中文字幕 | 亚洲成色777777在线观看影院 | 久草www | 久久久久久久18 | 黄色三级视频片 | 91天堂在线观看 | 日韩精品不卡在线观看 | 又长又大又黑又粗欧美 | 97视频免费观看 | 99视频免费播放 | 色婷婷激情五月 | 久草在线最新 | 五月天激情开心 | 中文字幕色网站 | 日韩av综合网站 | 久久伊人爱 | 中文字幕在线观看91 | 亚洲免费av网站 | 国产九九九九九 | 在线观看成人福利 | 人人超碰免费 | 欧美日韩国产在线 | 很黄很黄的网站免费的 | 久久激情视频免费观看 | 人九九精品| 国产一级在线视频 | 日韩精品一区二区三区中文字幕 | 黄色www在线观看 | 国产高清视频免费在线观看 | 国产高清在线不卡 | 四虎最新域名 | 伊人一级| 久草视频在线资源 | av天天草| 三级动态视频在线观看 | 四虎视频| 免费在线色| 中文字幕专区高清在线观看 | av在线播放中文字幕 | 91精选 | 欧美性生活一级片 | 一区二区三区四区影院 | 99电影456麻豆 | 天天爽天天爽夜夜爽 | 最近中文字幕视频网 | 国产精品成人久久久久久久 | 少妇性色午夜淫片aaaze | 一级性生活片 | 日韩特级毛片 | 中文国产在线观看 | 久久久精品网 | 亚洲激情免费 | 国产黄大片 | 五月色丁香 | 日韩大片在线免费观看 | 国产精品毛片网 | 国产免费片| 国产精品久久久毛片 | 国产精品 999 | 国产精品成人国产乱一区 | 日本精品一区二区在线观看 | 九九九视频在线 | 涩涩伊人| 精品国产一区二区三区久久久蜜月 | 91久久国产精品 | 国产在线观看午夜 | 精品亚洲一区二区三区 | 免费黄色特级片 | 日韩激情免费视频 | 狠狠地操| 亚洲天天在线日亚洲洲精 | 超碰97公开 | 亚洲成人国产 | .国产精品成人自产拍在线观看6 | 精品视频免费久久久看 | 中文字幕av最新更新 | 亚洲最新视频在线 | 免费黄色激情视频 | 在线观看一级 | 国产在线国产 | 五月婷婷影院 | 2019中文字幕第一页 | 亚洲免费av在线播放 | 精品在线观看国产 | 三级小视频在线观看 | 国产不卡毛片 | 久久久免费少妇 | 久久综合色天天久久综合图片 | 激情久久久久久久久久久久久久久久 | 日韩电影中文 | 在线观看av免费观看 | 狠狠狠操 | 日韩av片在线 | 免费看日韩 | 91在线视频免费 | 免费一级日韩欧美性大片 | 中文字幕电影高清在线观看 | 免费观看一级视频 | 麻豆视频网址 | 日韩一级电影在线 | 国产又黄又爽又猛视频日本 | 久久伊人色综合 | 手机看片国产日韩 | 一区二区欧美日韩 | 国产免费小视频 | 免费网站色 | 日本中出在线观看 | 国产精品一区二 | 国产精品99久久久精品 | 亚洲人成精品久久久久 | 久章操 | 91男人影院 | 午夜精品福利一区二区三区蜜桃 | 麻豆国产精品视频 | av黄色亚洲 | 久久久久久久久久亚洲精品 | 国产一级视频在线免费观看 | 中文字幕在线第一页 | 免费成人av在线看 | 激情综合久久 | 九九热在线免费观看 | 国产一区二区在线视频观看 | 亚洲开心色| 日日干精品 | 欧美一级激情 | 高清国产一区 | 久久久 激情 | 国产精品99免视看9 国产精品毛片一区视频 | 精品国产电影 | 97av超碰| 亚洲三级精品 | 亚洲综合成人av | 五月天最新网址 | 五月天色婷婷丁香 | 看v片 | 免费看国产视频 | 欧美 另类 交 | 久久精品亚洲一区二区三区观看模式 | 亚洲精品国产自产拍在线观看 | 看v片| 久草91视频 | 久久久久久久久电影 | 亚洲精品在线观看视频 | 西西大胆啪啪 | 天天爱天天色 | 中文电影网 | 在线观看韩日电影免费 | 日韩午夜大片 | 日韩高清国产精品 | 最新日韩电影 | 天天激情 | av在线专区 | 伊人久久一区 | 97在线免费观看视频 | 成人久久免费 | 激情久久综合 | 久久综合久久综合这里只有精品 | 国内精品久久天天躁人人爽 | 国产录像在线观看 | 五月天婷婷在线观看视频 | 日日干天天| 中文字幕在线免费观看视频 | 久久一区二区免费视频 | 日韩视频欧美视频 | 在线观看亚洲国产 | 18性欧美xxxⅹ性满足 | 久久一级片 | 日韩中文字幕a | 国产这里只有精品 | 99久久99久久精品国产片 | 亚洲午夜精品在线观看 | 国产精品久久一区二区无卡 | 午夜丰满寂寞少妇精品 | 麻豆视频免费观看 | 久草网首页 | 成人影片在线免费观看 | 天天干国产 | 97精品国产一二三产区 | 国产中文字幕一区二区三区 | 国产精品久久久久影视 | 日韩免费久久 | 精品国内自产拍在线观看视频 | 久久在线播放 | 手机看片| 狠狠插天天干 | 亚洲毛片在线观看. | 日韩视频免费在线观看 | 在线黄色av| 国产精品字幕 | 成人av在线电影 | 亚洲成av人片在线观看 | a级片韩国| 欧美日韩精品免费观看 | 91伊人久久大香线蕉蜜芽人口 | 成 人 黄 色视频免费播放 | 亚洲精品视频在线观看免费视频 | 又湿又紧又大又爽a视频国产 | av一级在线观看 | 欧美精品一区二区三区四区在线 | 最新国产精品视频 | 国产小视频网站 | 亚洲精品1234区 | 国产一二区免费视频 | 99综合久久 | 国产精品完整版 | 在线观看免费视频你懂的 | 日韩av进入 | 91黄在线看 | 亚洲免费小视频 | 五月天六月丁香 | 久久久久久免费网 | 亚洲精品国产成人av在线 | 国产福利91精品张津瑜 | 狠狠插狠狠干 | 中文字幕在线一区二区三区 | 国产青青青| 色哟哟国产精品 | 中文字幕在线高清 | 亚洲成a人片77777潘金莲 | 精品免费观看视频 | 久久人91精品久久久久久不卡 | 国产亚洲欧美日韩高清 | 中文字幕视频免费观看 | 黄网站app在线观看免费视频 | 在线看v片成人 | 精品国产伦一区二区三区观看体验 | 日韩成人免费在线观看 | 色的网站在线观看 | 日韩在线观看你懂的 | 一区二区三区国产欧美 | 黄色福利视频网站 | 久久人人爽爽 | 日韩激情三级 | 国产黄色在线观看 | 能在线观看的日韩av | 色网av| 在线观看日韩视频 | 99久久婷婷国产综合亚洲 | 在线视频 你懂得 | 午夜精品视频一区二区三区在线看 | 色婷婷婷 | 亚洲视频第一页 | 欧美日韩一二三四区 | 国产美女被啪进深处喷白浆视频 | 国产日韩亚洲 | 亚洲精品美女视频 | 欧美日韩首页 | 人人干人人干人人干 | 亚洲精品综合在线观看 | 色干综合| 日本精品二区 | 久久免费的精品国产v∧ | 成人资源网 | 精品视频在线播放 | 亚洲一区 影院 | 亚洲精选99| 五月开心综合 | 国产性天天综合网 | av在线a| 久久大片网站 | 91成人免费看片 | 91九色蝌蚪视频 | 中文字幕高清免费日韩视频在线 | 久草电影免费在线观看 | 在线观看国产成人av片 | 免费激情在线电影 | 探花系列在线 | 狠狠天天 | 91视频三区 | 欧美日韩高清 | 日韩素人在线观看 | 国产成人精品午夜在线播放 | 99精品视频在线播放免费 | 免费看黄20分钟 | 日韩av高清在线观看 | 香蕉视频亚洲 | 国产99在线| 国产一级在线观看 | 免费看污片| 亚洲无在线 | 久久99影院 | 亚洲永久国产精品 | 国产亚洲午夜高清国产拍精品 | 亚洲高清av在线 | 久久精品国产免费看久久精品 | 色天天综合网 | 五月天色网站 | 在线观看av麻豆 | 久久婷婷网 | 亚洲成人精品在线观看 | 亚洲激情小视频 | 欧美日韩国产区 | 亚洲春色综合另类校园电影 | 久久久久久久久久电影 | 免费看三级 | 精品一区精品二区高清 | www.99热精品 | 免费视频成人 | 欧美天天射 | 亚洲永久在线 | 91麻豆产精品久久久久久 | 国产精品专区在线 | free. 性欧美.com| 午夜精品剧场 | 在线免费av网 | 91精品办公室少妇高潮对白 | 国产精品网红直播 | 亚洲国产三级在线 | 香蕉影视在线观看 | 91精品亚洲影视在线观看 | 久久99精品久久久久久 | 国产精品专区在线 | 免费日韩一区二区 | 国产不卡毛片 | 在线免费高清 | 国产精品一级在线 | 奇米影视999 | 韩国av免费观看 | 欧美看片| 亚洲乱码在线观看 | 日韩精品中文字幕有码 | 色国产在线 | 香蕉97视频观看在线观看 | 亚洲码国产日韩欧美高潮在线播放 | 奇米四色影狠狠爱7777 | 日韩在线影视 | 99免费观看视频 | 日本精品久久久久影院 | 永久免费看av | 精品国产一区二区三区蜜臀 | 成人黄性视频 | 国产一区视频导航 | 久久理论电影网 | 久久人人射 | 在线观看一级 | 91在线操 | 日韩一级电影在线 | 三级动态视频在线观看 | 中国美女一级看片 | 国产精品观看视频 | 久久99热这里只有精品国产 | 午夜18视频在线观看 | 日韩av片无码一区二区不卡电影 | 日韩av影视在线观看 | 天天做天天爱夜夜爽 | 99久久久久国产精品免费 | 蜜臀一区二区三区精品免费视频 | 亚洲精品在线观看免费 | 美女网站视频色 | 婷婷激情五月综合 | 高清有码中文字幕 | 欧美一级特黄高清视频 | 视频在线观看亚洲 | 日批视频国产 | 狠狠夜夜 | 99热最新网址 | 日韩中文在线字幕 | 在线看片视频 | 狂野欧美激情性xxxx欧美 | 黄色成人在线 | 色综合久久久久久中文网 | 香蕉网站在线观看 | 91av蜜桃 | 久久大片 | 国偷自产视频一区二区久 | 久久久精品国产一区二区电影四季 | 久久激五月天综合精品 | 丝袜制服天堂 | 中文av免费 | 国产精品24小时在线观看 | 国产精品国产三级国产 | 一区二区三区久久精品 | 在线观看日韩一区 | 国产资源免费 | 香蕉手机在线 | 美女福利视频网 | 97超碰福利久久精品 | 精品一区精品二区 | 亚洲国产精品成人va在线观看 | 国产黄色片网站 | 欧美精品乱码久久久久久按摩 | 色中文字幕在线观看 | 欧美在线不卡一区 | 国产亚洲精品久久久久久久久久 | 国产日本三级 | 日韩精品中文字幕一区二区 | 五月婷婷在线观看 | 亚洲午夜久久久久久久久久久 | 久久久久久久久网站 | 国产区网址 | 视频 国产区 | www在线观看视频 | 午夜精品福利一区二区三区蜜桃 | 成人欧美在线 | 日韩av成人在线观看 | 黄色精品网站 | 成人国产精品免费 | 在线观看 国产 | 亚洲精品国产精品国自产观看 | 欧美日韩不卡一区 | 99精品欧美一区二区 | 激情在线网址 | 人人爱人人射 | 免费三级黄 | 久久婷婷一区二区三区 | 最近中文字幕大全中文字幕免费 | 日韩一区二区免费在线观看 | 日韩精品字幕 | 欧美极品少妇xxxx | 在线观看国产福利片 | avove黑丝| 成年人电影免费看 | 在线电影中文字幕 | 国产高清专区 | 国产精美视频 | 超碰在线个人 | 伊人久操 | 91免费在线看片 | av日韩在线网站 | 色插综合| 色婷婷综合久久久中文字幕 | 国产视频1区2区3区 久久夜视频 | 亚洲精品美女久久 | 97国产在线 | 天天干夜夜夜操天 | 在线中文字母电影观看 | 免费a一级 | 精品国产视频在线 | www.夜夜 | 99热 精品在线 | 亚洲黄色免费观看 | 91亚州 | 亚洲有 在线 | 91中文字幕在线播放 | 国产欧美精品一区二区三区 | 天天玩天天干天天操 | 97精产国品一二三产区在线 | 久久手机看片 | 亚洲精品国产拍在线 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品 中文在线 | 一区二区三区在线播放 | 久久看视频 | av在线影视 | 久草精品视频在线观看 | 激情综合站 | 99久久精品久久亚洲精品 | 免费成视频 | 四虎影院在线观看av | 天天操天天曰 | 国产精品va在线播放 | 久久综合九色综合久99 | 日韩av综合网站 | 久久人人精 | www,黄视频 | av一级久久 | 中文字幕亚洲不卡 | 国产999精品久久久久久麻豆 | 国产尤物在线 | 久草免费新视频 | 久久久久欧美精品999 | 色小说在线 | av福利网址导航 | 青青射 | 久久精品免费播放 | 国产一区在线免费观看 | 热久久视久久精品18亚洲精品 | 九九热精品视频在线播放 | 国产成人综合精品 | 成人黄色小说在线观看 | 在线天堂视频 | 色的网站在线观看 | 亚洲小视频在线 | 日韩久久精品一区 | 国产婷婷久久 | 一区二区精品久久 | 国产视频精品久久 | 二区三区av | 97超碰超碰久久福利超碰 | 久久成年人视频 | 91精品91 | 国产裸体视频bbbbb | 午夜在线日韩 | 激情丁香久久 | 成人一区不卡 | 精品国产一区二区三区日日嗨 | 久久任你操 | 免费欧美高清视频 | 国产视频在线观看一区二区 | 中文字幕在线影院 | 国产在线综合视频 | 久草在线观看资源 | 欧美日韩调教 | 色婷婷综合五月 | 一级电影免费在线观看 | 91在线观看黄 | 欧美特一级 | 欧美一区二区三区免费观看 | 久青草视频在线观看 | 91精品久久香蕉国产线看观看 | 国产精品美 | 天天天天天天天天操 | 国产视频亚洲视频 | 国产精品自产拍在线观看 | 欧美另类巨大 | 久久www免费视频 | 丁香5月婷婷 | 欧美久草网 | 特级大胆西西4444www | 久草com| 国产精品九九久久久久久久 | 四虎国产精品免费观看视频优播 | 九九九九免费视频 | 视频在线观看亚洲 | 美女黄频网站 | 中文字幕免费高清 | 视频国产精品 | 99视频精品 | 久草在线在线视频 | 日韩专区中文字幕 | 国产中文| 狠狠干综合网 | 一本—道久久a久久精品蜜桃 | 99久久99久国产黄毛片 | 夜夜躁日日躁狠狠久久88av | 免费久久精品视频 | 狠狠躁日日躁狂躁夜夜躁 | 国产成人一区二区在线观看 | 久久久久综合精品福利啪啪 | 人人爱人人舔 | 日韩高清dvd | 丁香激情视频 | 色婷婷综合视频在线观看 | 天天操天天艹 | 91最新在线观看 | 欧美色图一区 | 91久久久久久国产精品 | 精品嫩模福利一区二区蜜臀 | av成人资源| 九九视频免费观看视频精品 | 国产高清黄色 | 视频福利在线 | 美女国产在线 | 亚洲成a人片77777kkkk1在线观看 | 91久久国产露脸精品国产闺蜜 | 91麻豆精品国产自产在线 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | av色一区| 99视频播放 | 99 久久久久 | 成 人 免费 黄 色 视频 | 国产资源网| 久久久久久久久久久影视 | 免费av看片 | 国产一级在线看 | 日韩中文幕 | 成人免费一级 | 正在播放日韩 | 一区二区三区av在线 | 黄色成人影院 | www久久九 | 丁香网五月天 | 99国产视频| 精品在线观看一区二区 | 人人爽人人澡人人添人人人人 | 久草影视在线 | 四虎在线影视 | 二区三区视频 | 视频 国产区| 中文在线a√在线 | 婷婷丁香狠狠爱 | 亚洲伊人婷婷 | 一区二区三区免费网站 | 欧美日韩午夜在线 | 黄色小说免费观看 | 黄色免费观看网址 | 成人一区二区三区在线观看 | 免费av片在线 | 国产91精品一区二区麻豆亚洲 | 国外成人在线视频网站 | 爱爱一区| 摸阴视频 | 久久国产精品网站 | 美女网站在线观看 | www.狠狠插.com | 婷婷黄色片 | 外国av网 | 久久午夜电影院 | 亚洲日韩欧美一区二区在线 | 免费在线观看av网址 | 久久成人在线 | 日本精品视频在线播放 | 91热爆视频| 国产精品mv在线观看 | 蜜臀av性久久久久蜜臀av | 精品 激情 | 亚洲欧洲中文日韩久久av乱码 | 国产精品wwwwww | 人人揉人人揉人人揉人人揉97 | 欧美一区二视频在线免费观看 | 久热色超碰 | 国产伦理一区二区三区 | 久久99久久99精品免费看小说 | 欧美日韩免费视频 | 色综合久久久久网 | 久久久久久久久久免费视频 | 久久国产精品二国产精品中国洋人 | 色婷婷激情五月 | 中文字幕免费一区二区 | 色婷婷免费 | 综合国产视频 | 91精品第一页| 日韩一区二区三区高清免费看看 | 亚洲成人黄色网址 | 黄色成人av在线 | 午夜精品一区二区三区四区 | 国偷自产视频一区二区久 | 成人免费视频免费观看 | 99国产在线 | 国产不卡免费 | 日韩欧美精品一区二区 | www视频在线免费观看 | 精品视频一区在线 | 国产在线视频一区二区三区 | 日韩国产精品久久 | 亚洲区另类春色综合小说校园片 | 中文字幕观看av | www.91av在线 | 亚洲第一色 | 在线看的av网站 | 日韩精品欧美专区 | 园产精品久久久久久久7电影 | 久久久久久久久久久影视 | 天天插天天狠天天透 | 国产成人精品综合久久久 | 激情久久久久久久久久久久久久久久 | 色噜噜噜噜 | 久久手机免费观看 | 欧美在线视频免费 | 伊人色综合网 | 美腿丝袜av | 久草网在线视频 | 在线中文字母电影观看 | 欧美天堂视频在线 | 最新日韩在线观看视频 | 私人av | 日韩一区二区三区在线观看 | 国产一级黄色免费看 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 精品一区二区综合 | 婷婷在线精品视频 | 夜夜躁日日躁狠狠久久av | 九九涩涩av台湾日本热热 | 5月丁香婷婷综合 | 九九热免费视频在线观看 | 成人av一区二区兰花在线播放 | 丁香av在线 | 91精品国产成 | 欧美日韩伦理在线 | 91精品婷婷国产综合久久蝌蚪 | 97精品久久| 国产成人一区二 | 91在线视频精品 | 精品夜夜嗨av一区二区三区 | 国产日韩精品一区二区 | 婷婷射五月 | 福利视频一二区 | 欧美日韩一区二区三区视频 | 日本精品一区二区在线观看 | 九九热有精品 | 亚洲美女免费精品视频在线观看 | 狠狠网 | 亚洲狠狠婷婷综合久久久 | 国产精品色婷婷视频 | 91精品国产99久久久久久久 | 中日韩在线视频 | 91视频啊啊啊 | 久久精品国产免费 | 精品国产视频在线观看 | 天堂中文在线视频 | 久色 网 | 国产成人在线免费观看 | 国产在线观看免费观看 | 日本午夜在线观看 | 狠狠久久| 久草视频手机在线 | 欧美国产日韩一区二区三区 | 日韩av进入 | wwwwww黄| 国产高清视频在线播放 | 日韩久久一区 | 日韩精品视频免费看 | 亚洲一区欧美激情 | 国产在线不卡视频 | 日韩欧美精品一区二区三区经典 | 亚洲免费精品视频 | 在线 视频 一区二区 | 外国av网 | 中国一级片在线观看 | 黄色av成人在线 | av在线影视 | 国产一区二区电影在线观看 | 国产一区二区三区四区大秀 | 日韩av二区| 午夜久久精品 | 一二三四精品 | 91av在线免费看 | 久久婷婷精品视频 | 精品久久久一区二区 | 天天躁天天操 | 久久视频6| 成年人看片网站 | 日韩专区视频 | 亚洲免费在线观看视频 | 日韩精品一区二区三区电影 | 国产精品免费在线 | 超碰在线97观看 | 国产精品普通话 | 黄色小说视频在线 | 国模吧一区 | 97超碰人人在线 | www.av在线播放 | 丁香五月网久久综合 | 亚洲精品乱码久久久久v最新版 | 亚洲www天堂com | 成人免费视频a | jizz999| 狠狠地操 | 最近高清中文字幕 | 色婷婷六月天 | 黄色亚洲大片免费在线观看 | 欧美激情视频久久 | 久久av免费电影 | 91九色porny蝌蚪视频 | 国产91精品一区二区麻豆网站 | 黄色大片视频网站 | 国产免费观看av | 人人澡人人爽 | 国产玖玖视频 | 98涩涩国产露脸精品国产网 | 97在线播放 | 一区二区在线电影 | 狠狠色丁香婷婷 | 丁香av| 人人干人人搞 | 国产视频在线免费观看 | 亚洲另类在线视频 | 97在线视频免费播放 | 99国产精品免费网站 | 精品国产乱码久久久久久1区二区 | 最近中文字幕大全 | 久久99精品久久久久蜜臀 | 成人av电影免费在线观看 | www国产亚洲精品久久麻豆 |