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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

linux usb 驱动详解

發布時間:2023/12/15 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 linux usb 驱动详解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

linux usb 驅動詳解

USB 設備驅動代碼通過urb和所有的 USB 設備通訊。urb用 struct urb 結構描述(include/linux/usb.h )。
urb
以一種異步的方式同一個特定USB設備的特定端點發送或接受數據。一個 USB 設備驅動可根據驅動的需要,分配多個 urb 給一個端點或重用單個
urb 給多個不同的端點。設備中的每個端點都處理一個 urb 隊列, 所以多個 urb 可在隊列清空之前被發送到相同的端點。

一個 urb 的典型生命循環如下:
(1)被創建;
(2)被分配給一個特定 USB 設備的特定端點;
(3)被提交給 USB 核心;
(4)被 USB 核心提交給特定設備的特定 USB 主機控制器驅動;
(5)被 USB 主機控制器驅動處理, 并傳送到設備;
(6)以上操作完成后,USB主機控制器驅動通知 USB 設備驅動。

urb 也可被提交它的驅動在任何時間取消;如果設備被移除,urb 可以被USB核心取消。urb 被動態創建并包含一個內部引用計數,使它們可以在最后一個用戶釋放它們時被自動釋放。


struct urb

struct urb {
/* private: usb core and host controller only fields in the urb */
struct kref kref;/* URB引用計數 */
void *hcpriv;/* host控制器的私有數據 */
atomic_t use_count;/* 當前提交計數 */
atomic_t reject;/* 提交失敗計數 */
int unlinked;/* 連接失敗代碼 */

/* public: documented fields in the urb that can be used by drivers */
struct list_head urb_list;/* list head for use by the urb's
* current owner */
struct list_head anchor_list;/* the URB may be anchored */
struct usb_anchor *anchor;
struct usb_device *dev; /* 指向這個 urb 要發送的目標 struct usb_device 的指針,這個變量必須在這個 urb 被發送到 USB 核心之前被 USB 驅動初始化.*/
struct usb_host_endpoint *ep;/* (internal) pointer to endpoint */
unsigned int pipe;/* 這個 urb 所要發送到的特定struct usb_device的端點消息,這個變量必須在這個 urb 被發送到 USB 核心之前被 USB 驅動初始化.必須由下面的函數生成*/
int status;/*
當 urb開始由 USB 核心處理或處理結束, 這個變量被設置為 urb 的當前狀態. USB 驅動可安全訪問這個變量的唯一時間是在 urb
結束處理例程函數中. 這個限制是為防止競態. 對于等時 urb, 在這個變量中成功值(0)只表示這個 urb 是否已被去鏈. 為獲得等時
urb 的詳細狀態, 應當檢查 iso_frame_desc 變量. */
unsigned int transfer_flags;/* 傳輸設置*/
void *transfer_buffer;/* 指向用于發送數據到設備(OUT urb)或者從設備接收數據(IN urb)的緩沖區指針。為了主機控制器驅動正確訪問這個緩沖, 它必須使用 kmalloc 調用來創建, 不是在堆棧或者靜態內存中。 對控制端點, 這個緩沖區用于數據中轉*/
dma_addr_t transfer_dma;/* 用于以 DMA 方式傳送數據到 USB 設備的緩沖區*/
int transfer_buffer_length;/*
transfer_buffer 或者 transfer_dma 變量指向的緩沖區大小。如果這是 0, 傳送緩沖沒有被 USB
核心所使用。對于一個 OUT 端點, 如果這個端點大小比這個變量指定的值小, 對這個 USB
設備的傳輸將被分成更小的塊,以正確地傳送數據。這種大的傳送以連續的 USB 幀進行。在一個 urb 中提交一個大塊數據, 并且使 USB
主機控制器去劃分為更小的塊, 比以連續地順序發送小緩沖的速度快得多*/
int actual_length;/*
當這個 urb 完成后, 該變量被設置為這個 urb (對于 OUT urb)發送或(對于 IN urb)接受數據的真實長度.對于 IN
urb, 必須是用此變量而非 transfer_buffer_length , 因為接收的數據可能比整個緩沖小*/
unsigned char *setup_packet;/* 指向控制urb的設置數據包指針.它在傳送緩沖中的數據之前被傳送(用于控制 urb)*/
dma_addr_t setup_dma;/* 控制 urb 用于設置數據包的 DMA 緩沖區地址,它在傳送普通緩沖區中的數據之前被傳送(用于控制 urb)*/
int start_frame;/* 設置或返回初始的幀數量(用于等時urb) */
int number_of_packets;/* 指定urb所處理的等時傳輸緩沖區的數量(用于等時urb,在urb被發送到USB核心前,必須設置) */
int interval;/*urb
被輪詢的時間間隔. 僅對中斷或等時 urb 有效. 這個值的單位依據設備速度而不同. 對于低速和高速的設備, 單位是幀, 它等同于毫秒.
對于其他設備, 單位是微幀, 等同于 1/8 毫秒. 在 urb被發送到 USB 核心之前,此值必須設置.*/
int error_count;/* 等時urb的錯誤計數,由USB核心設置 */
void *context;/* 指向一個可以被USB驅動模塊設置的數據塊. 當 urb 被返回到驅動時,可在結束處理例程中使用. */
usb_complete_t complete;/* 結束處理例程函數指針, 當 urb 被完全傳送或發生錯誤,它將被 USB 核心調用. 此函數檢查這個 urb, 并決定釋放它或重新提交給另一個傳輸中*/
struct usb_iso_packet_descriptor iso_frame_desc[0];
/* (僅用于等時urb)usb_iso_packet_descriptor結構體允許單個urb一次定義許多等時傳輸,它用于收集每個單獨的傳輸狀態*/
};

struct usb_iso_packet_descriptor {
unsigned int offset;/* 該數據包的數據在傳輸緩沖區中的偏移量(第一個字節為0) */
unsigned int length;/* 該數據包的傳輸緩沖區大小 */
unsigned int actual_length;/* 等時數據包接收到傳輸緩沖區中的數據長度 */
int status;/* 該數據包的單個等時傳輸狀態。它可以把相同的返回值作為主struct urb 結構體的狀態變量 */
};

typedef void (*usb_complete_t)(struct urb *);

上述結構體中unsigned int pipe;的生成函數(define):

static inline unsigned int __create_pipe(struct usb_device *dev,
unsigned int endpoint)
{
return (dev->devnum << 8) | (endpoint << 15);
}

/* Create various pipes... */
#define usb_sndctrlpipe(dev,endpoint)
((PIPE_CONTROL << 30) | __create_pipe(dev, endpoint))
#define usb_rcvctrlpipe(dev,endpoint)
((PIPE_CONTROL << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
#define usb_sndisocpipe(dev,endpoint)
((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev, endpoint))
#define usb_rcvisocpipe(dev,endpoint)
((PIPE_ISOCHRONOUS << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
#define usb_sndbulkpipe(dev,endpoint)
((PIPE_BULK << 30) | __create_pipe(dev, endpoint))
#define usb_rcvbulkpipe(dev,endpoint)
((PIPE_BULK << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
#define usb_sndintpipe(dev,endpoint)
((PIPE_INTERRUPT << 30) | __create_pipe(dev, endpoint))
#define usb_rcvintpipe(dev,endpoint)
((PIPE_INTERRUPT << 30) | __create_pipe(dev, endpoint) | USB_DIR_IN)
//snd:OUT rcv:IN ctrl:控制 isoc:等時 bulk:批量 int:中斷

上述結構體中unsigned int transfer_flags;的值域:

/*
* urb->transfer_flags:
*
* Note: URB_DIR_IN/OUT is automatically set in usb_submit_urb().
*/
#define URB_SHORT_NOT_OK0x0001/* 置位時,任何在 IN 端點上發生的簡短讀取, 被 USB 核心當作錯誤. 僅對從 USB 設備讀取的 urb 有用 */
#define URB_ISO_ASAP0x0002/* 若為等時 urb , 驅動想調度這個 urb 時,可置位該位, 只要帶寬允許且想在此時設置 urb 中的 start_frame 變量. 若沒有置位,則驅動必須指定 start_frame 值,且傳輸如果不能在當

時啟動的話,必須能夠正確恢復 */
#define URB_NO_TRANSFER_DMA_MAP0x0004/* 當 urb 包含要被發送的 DMA 緩沖時,應被置位.USB 核心使用就會使用 transfer_dma 變量指向的緩沖, 而不是被 transfer_buffer 變量指向的緩沖. */
#define URB_NO_SETUP_DMA_MAP0x0008/* 和 URB_NO_TRANSFER_DMA_MAP 類似, 這個位用來控制 DMA 緩沖已經建立的 urb. 如果它被置位, USB 核心使用 setup_dma 變量而不是 setup_packet 變量指向的緩沖. */
#define URB_NO_FSBR0x0020/*
僅 UHCI USB 主機控制器驅動使用, 并且告訴它不要試圖使用前端總線回收( Front Side Bus Reclamation)
邏輯. 這個位通常應不設置, 因為有 UHCI 主機控制器的機器會增加 CPU 負擔, 且PCI 總線會忙于等待設置了這個位的 urb */
#define URB_ZERO_PACKET0x0040/* 如果置位, 批量 OUT urb 通過發送不包含數據的短包來結束, 這時數據對齊到一個端點數據包邊界. 這被一些掉線的 USB 設備需要該位才能正確工作 */
#define URB_NO_INTERRUPT0x0080/* 如果置位, 當 urb 結束時硬件可能不產生一個中斷. 該位應當小心使用并且只在多個 urb 排隊到相同端點時才使用. USB 核心函數使用該位進行 DMA 緩沖傳送. */
#define URB_FREE_BUFFER0x0100/* Free transfer buffer with the URB */

#define URB_DIR_IN0x0200/* Transfer from device to host */
#define URB_DIR_OUT0
#define URB_DIR_MASKURB_DIR_IN

上述結構體中int status;的常用值(in include/asm-generic/errno.h and errno_base.h) :

// 0 表示 urb 傳送成功*/

//以下各個定義在使用時為負值
#defineENOENT 2/* urb 被 usb_kill_urb 停止 */
#defineECONNRESET104/* urb 被 usb_unlink_urb 去鏈, 且 transfer_flags 被設為 URB_ASYNC_UNLINK */
#defineEINPROGRESS115/* urb 仍在 USB 主機控制器處理 */
#defineEPROTO71/* urb 發生錯誤: 在傳送中發生bitstuff 錯誤或硬件沒有及時收到響應幀 */
#defineEILSEQ84/* urb 傳送中出現 CRC 較驗錯 */
#defineEPIPE32/* 端點被停止. 若此端點不是控制端點, 則這個錯誤可通過函數 usb_clear_halt 清除 */
#defineECOMM70/* 數據傳輸時的接收速度快于寫入系統內存的速度. 此錯誤僅出現在 IN urb */
#defineENOSR63/* 從系統內存中獲取數據的速度趕不上USB 數據傳送速度,此錯誤僅出現在 OUT urb. */
#defineEOVERFLOW75/* urb 發生"babble"(串擾)錯誤:端點接受的數據大于端點的最大數據包大小 */
#defineEREMOTEIO181/* 當 urb 的 transfer_flags 變量的 URB_SHORT_NOT_OK 標志被設置, urb 請求的數據沒有完整地收到 */
#defineENODEV19/* USB 設備從系統中拔出 */
#defineEXDEV18/* 僅發生在等時 urb 中, 表示傳送部分完成. 為了確定所傳輸的內容, 驅動必須看單獨的幀狀態. */
#defineEINVAL22/* 如果urb的一個參數設置錯誤或在提交 urb 給 USB 核心的 usb_submit_urb 調用中, 有不正確的參數,則可能發生次錯誤 */
#defineESHUTDOWN108/* USB 主機控制器驅動有嚴重錯誤,它已被禁止, 或者設備從系統中拔出。且這個urb 在設備被移除后被提交. 它也可能發生在 urb 被提交給設備時,設備的配置已被改變*/


創建和注銷 urb

struct urb 結構不能靜態創建,必須使用 usb_alloc_urb 函數創建. 函數原型:

struct urb *usb_alloc_urb(int iso_packets, gfp_t mem_flags);
//int iso_packets : urb 包含等時數據包的數目。如果不使用等時urb,則為0
//gfp_t mem_flags : 與傳遞給 kmalloc 函數調用來從內核分配內存的標志類型相同

//返回值: 如果成功分配足夠內存給 urb , 返回值為指向 urb 的指針. 如果返回值是 NULL, 則在 USB 核心中發生了錯誤, 且驅動需要進行適當清理

如果驅動已經對 urb 使用完畢, 必須調用 usb_free_urb 函數,釋放urb。函數原型:

void usb_free_urb(struct urb *urb);
//struct urb *urb : 要釋放的 struct urb 指針

根據內核源碼,可以通過自己kmalloc一個空間來創建urb,然后必須使用

void usb_init_urb(struct urb *urb);

進行初始化后才可以繼續使用。

其實usb_alloc_urb函數就是這樣實現的,所以我當然不推薦這種自找麻煩的做法。

初始化 urb

static inline void usb_fill_int_urb(struct urb *urb,
struct usb_device *dev,
unsigned int pipe,
void *transfer_buffer,
int buffer_length,
usb_complete_t complete_fn,
void *context,
int interval);

static inline void usb_fill_bulk_urb(struct urb *urb,
struct usb_device *dev,
unsigned int pipe,
void *transfer_buffer,
int buffer_length,
usb_complete_t complete_fn,
void *context);

static inline void usb_fill_control_urb(struct urb *urb,
struct usb_device *dev,
unsigned int pipe,
unsigned char *setup_packet,
void *transfer_buffer,
int buffer_length,
usb_complete_t complete_fn,
void *context);

//struct urb *urb :指向要被初始化的 urb 的指針
//struct usb_device *dev :指向 urb 要發送到的 USB 設備.
//unsigned int pipe : urb 要被發送到的 USB 設備的特定端點. 必須使用前面提過的 usb_******pipe 函數創建
//void *transfer_buffer :指向外發數據或接收數據的緩沖區的指針.注意:不能是靜態緩沖,必須使用 kmalloc 來創建.
//int buffer_length :transfer_buffer 指針指向的緩沖區的大小
//usb_complete_t complete :指向 urb 結束處理例程函數指針
//void *context :指向一個小數據塊的指針, 被添加到 urb 結構中,以便被結束處理例程函數獲取使用.
//int interval :中斷 urb 被調度的間隔.
//函數不設置 urb 中的 transfer_flags 變量, 因此對這個成員的修改必須由驅動手動完成

/*等時 urb 沒有初始化函數,必須手動初始化,以下為一個例子*/
urb->dev = dev;
urb->context = uvd;
urb->pipe = usb_rcvisocpipe(dev, uvd->video_endp-1);
urb->interval = 1;
urb->transfer_flags = URB_ISO_ASAP;
urb->transfer_buffer = cam->sts_buf[i];
urb->complete = konicawc_isoc_irq;
urb->number_of_packets = FRAMES_PER_DESC;
urb->transfer_buffer_length = FRAMES_PER_DESC;
for (j=0; j < FRAMES_PER_DESC; j++) {
urb->iso_frame_desc[j].offset = j;
urb->iso_frame_desc[j].length = 1;
}

其實那三個初始化函數只是簡單的包裝,是inline函數。所以其實和等時的urb手動初始化沒什么大的區別。



提交urb

一旦 urb 被正確地創建并初始化, 它就可以提交給 USB 核心以發送出到 USB 設備. 這通過調用函數 usb_submit_urb 實現:

int usb_submit_urb(struct urb *urb, gfp_t mem_flags);
//struct urb *urb :指向被提交的 urb 的指針
//gfp_t mem_flags :使用傳遞給 kmalloc 調用同樣的參數, 用來告訴 USB 核心如何及時分配內存緩沖

/*因為函數 usb_submit_urb 可被在任何時候被調用(包括從一個中斷上下文), mem_flags 變量必須正確設置. 根據 usb_submit_urb 被調用的時間,只有 3 個有效值可用:
GFP_ATOMIC
只要滿足以下條件,就應當使用此值:
1.調用者處于一個 urb 結束處理例程,中斷處理例程,底半部,tasklet或者一個定時器回調函數.
2.調用者持有自旋鎖或者讀寫鎖. 注意如果正持有一個信號量, 這個值不必要.
3.current->state 不是 TASK_RUNNING. 除非驅動已自己改變 current 狀態,否則狀態應該一直是 TASK_RUNNING .

GFP_NOIO
驅動處于塊 I/O 處理過程中. 它還應當用在所有的存儲類型的錯誤處理過程中.

GFP_KERNEL
所有不屬于之前提到的其他情況
*/

在 urb 被成功提交給 USB 核心之后, 直到結束處理例程函數被調用前,都不能訪問 urb 結構的任何成員.

urb結束處理例程


果 usb_submit_urb 被成功調用, 并把對 urb 的控制權傳遞給 USB 核心, 函數返回 0; 否則返回一個負的錯誤代碼.
如果函數調用成功, 當 urb 被結束的時候結束處理例程會被調用一次.當這個函數被調用時, USB 核心就完成了這個urb,
并將它的控制權返回給設備驅動.

只有 3 種結束urb并調用結束處理例程的情況:
(1)urb 被成功發送給設備, 且設備返回正確的確認.如果這樣, urb 中的status變量被設置為 0.
(2)發生錯誤, 錯誤值記錄在 urb 結構中的 status 變量.
(3)urb 從 USB 核心unlink. 這發生在要么當驅動通過調用 usb_unlink_urb 或者 usb_kill_urb告知 USB 核心取消一個已提交的 urb,或者在一個 urb 已經被提交給它時設備從系統中去除.


取消 urb

使用以下函數停止一個已經提交給 USB 核心的 urb:

void usb_kill_urb(struct urb *urb)
int usb_unlink_urb(struct urb *urb);

如果調用usb_kill_urb函數,則 urb 的生命周期將被終止. 這通常在設備從系統移除時,在斷開回調函數(disconnect callback)中調用.
對一些驅動, 應當調用 usb_unlink_urb 函數來使 USB 核心停止 urb. 這個函數不會等待 urb 完全停止才返回. 這對于在中斷處理例程中或者持有一個自旋鎖時去停止 urb 是很有用的, 因為等待一個 urb 完全停止需要 USB 核心有使調用進程休眠的能力(wait_event()函數).

總結

以上是生活随笔為你收集整理的linux usb 驱动详解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

一 级 黄 色 片免费看的 | 九草视频在线观看 | 久久这里只有精品23 | 日韩精品视频免费在线观看 | 天堂久久电影网 | 五月激情丁香婷婷 | 96久久欧美麻豆网站 | 亚洲精品9| 亚洲美女久久 | 欧美一二区视频 | 亚洲精品中文在线 | 热久久免费国产视频 | 国产精品人成电影在线观看 | 国精产品999国精产品视频 | 91激情视频在线播放 | 中文字幕在线看 | 成人免费看电影 | 久久久久免费精品视频 | 国产亚洲精品久久久久久 | 久久久wwww | 久草手机视频 | 欧美日韩亚洲在线观看 | 免费在线观看一区二区三区 | 成人h视频在线播放 | 在线 你懂| 一区在线观看视频 | 亚洲,播放| 日韩av电影中文字幕 | 2019天天干夜夜操 | 国产精品永久免费 | 欧美激情精品久久久久久免费 | 国产成人性色生活片 | 国产精品mv在线观看 | 亚洲国产剧情av | 国产理论片在线观看 | 免费av片在线 | 色噜噜狠狠狠狠色综合久不 | 久久96国产精品久久99软件 | 国产小视频在线免费观看视频 | 国产精品久久久久久久午夜片 | 天天综合成人 | 99视频精品在线 | 九九久久久 | 91亚洲狠狠婷婷综合久久久 | 亚洲成av| 狠狠伊人 | 欧美日韩不卡在线视频 | 亚洲黄色一级电影 | 狠狠操狠狠干天天操 | 一区在线观看 | 91九色国产 | 天天爱天天操天天干 | 综合色中文 | 国产又黄又猛又粗 | 中文字幕免费高清在线 | 日本精品久久 | 国产精品久久久久久久久久久久午夜 | 婷婷综合伊人 | 国产一级在线看 | 可以免费观看的av片 | 天堂在线免费视频 | 天天操天天干天天操天天干 | 韩日电影在线观看 | av一级片网站 | 色综合久久88色综合天天人守婷 | 国产日韩欧美在线观看视频 | 久久国产精品网站 | 久久精品之 | 三级动图| 在线观看www视频 | 国产在线观看中文字幕 | 亚洲日本在线视频观看 | 超碰国产在线 | 91av影视| 久久视频网址 | 三级黄色免费片 | 中文字幕日本特黄aa毛片 | 四虎成人网 | 日韩在线视频看看 | 伊人开心激情 | 久久99热久久99精品 | 亚洲三级国产 | 日韩综合一区二区 | 超级碰碰碰碰 | 精品国产乱码久久久久久浪潮 | www黄色com | 亚洲精品国偷拍自产在线观看 | 国产午夜三级一区二区三桃花影视 | 日韩精品一区在线播放 | 日本精品一区二区三区在线观看 | 97超碰人人模人人人爽人人爱 | 久久精品日产第一区二区三区乱码 | 久久 一区 | 精品亚洲欧美一区 | 中文字幕久久久精品 | 欧美日韩在线视频观看 | 婷婷在线看 | 美女啪啪图片 | 91福利视频久久久久 | 91网免费看 | 夜夜高潮夜夜爽国产伦精品 | 国产精品视频观看 | 天天色天天综合 | 国产又粗又硬又长又爽的视频 | 免费看的黄色片 | 久久精品视频在线观看 | 色婷婷丁香 | 99精品视频网 | 精品一区二区久久久久久久网站 | 狠狠色丁香九九婷婷综合五月 | 夜夜操综合网 | 国内丰满少妇猛烈精品播放 | 99久久久国产精品美女 | 国产露脸91国语对白 | 久久久免费看片 | 中文字幕在线观看av | 五月婷综合 | 日韩v欧美v日本v亚洲v国产v | 国产精品久久久久国产a级 激情综合中文娱乐网 | 国产日韩视频在线观看 | 成人av网站在线观看 | 天堂av免费观看 | 国产精品激情偷乱一区二区∴ | 5月丁香婷婷综合 | 日韩精品一区电影 | 精品在线免费观看 | 精品自拍av | 在线播放你懂 | 97超碰影视 | 中文字幕视频在线播放 | 国产免费成人 | 人人看人人做人人澡 | 亚洲一级二级 | 一区二区视频网站 | 国产精品女视频 | 亚洲精品视频免费 | 天堂av免费看| 久久91网| 欧美91精品国产自产 | 亚洲爱爱视频 | 特级黄色一级 | 日韩两性视频 | 久久男人影院 | 激情五月婷婷丁香 | 日韩高清一区在线 | 国产视频在线一区二区 | 国产一卡久久电影永久 | 欧美一级高清片 | 日日夜夜操操操操 | www.久久91 | 在线看片91| 一区二精品| 涩涩网站在线 | 国产精品女人网站 | 久久免费视频一区 | www.com.黄 | 在线观看日韩av | av成人在线网站 | 欧美精品v国产精品v日韩精品 | 在线日韩 | 久久亚洲欧美 | 久久国产精品视频免费看 | 天天碰天天操视频 | av免费在线观看网站 | 手机版av在线 | 91精品秘密在线观看 | 六月丁香婷婷在线 | 国产黑丝袜在线 | 在线观看亚洲成人 | 国产麻豆精品95视频 | 丁香婷婷综合激情五月色 | 国产精品青青 | 日韩一区二区免费在线观看 | av丁香花 | 波多野结衣资源 | 亚洲三级黄色 | 粉嫩av一区二区三区四区五区 | 免费看的黄色网 | 开心激情网五月天 | 在线成人看片 | 天天曰天天曰 | 狠狠狠色丁香综合久久天下网 | 欧美成人中文字幕 | 精品国产亚洲在线 | 99视频在线精品国自产拍免费观看 | 99热超碰在线 | 成人在线观看网址 | 激情视频综合网 | 亚洲精选视频免费看 | 久热电影| 欧美激情亚洲综合 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久草在线观 | 久久视精品 | www久久99 | 国产一区二区精品久久 | 久久久久欧美精品999 | 亚洲专区视频在线观看 | 涩涩网站在线播放 | 91精品老司机久久一区啪 | 四虎在线影视 | 精品国产一区二区久久 | 日韩一区精品 | 免费国产黄线在线观看视频 | 91成人国产 | 91精品秘密在线观看 | 欧美激情精品久久久 | 99热国内精品 | 欧美综合在线视频 | 91精品国产三级a在线观看 | 粉嫩一区二区三区粉嫩91 | 人人搞人人爽 | 欧美激情精品一区 | 国产欧美精品xxxx另类 | 98涩涩国产露脸精品国产网 | 色a资源在线 | 亚洲精品玖玖玖av在线看 | 91传媒视频在线观看 | 又黄又刺激视频 | 日韩a在线观看 | 五月天激情视频 | 在线观看精品一区 | 高清av在线 | 国产精品一区二区62 | 国产高清日韩欧美 | 特黄一级毛片 | 人人草在线视频 | 欧美91在线 | 成人网页在线免费观看 | 亚洲成年片 | 国产精品成人品 | 黄色片亚洲| 欧美久久久久久久久中文字幕 | 国产午夜剧场 | 片黄色毛片黄色毛片 | 国产精品久久久av | 国产97超碰 | 亚洲高清在线视频 | 青青草国产精品视频 | 狂野欧美激情性xxxx欧美 | 91麻豆高清视频 | 国产精品久久久毛片 | 五月综合久久 | 中文字幕精品www乱入免费视频 | 五月天亚洲婷婷 | 四虎在线永久免费观看 | 91av视频观看| 91精品久久久久久综合乱菊 | 超碰午夜 | 国产日韩欧美在线一区 | 五月天久久久久 | 久久久久这里只有精品 | 亚洲成人资源在线观看 | 韩日电影在线 | 国产精品视频在线观看 | 91一区二区三区在线观看 | 天天干天天操天天搞 | 久久五月情影视 | 99成人精品 | 欧美淫aaa免费观看 日韩激情免费视频 | 中文字幕123区 | 丁香激情视频 | 99久久精品免费看国产一区二区三区 | 综合网欧美 | www.色就是色| 一区二区三区高清 | 在线成人中文字幕 | 正在播放五月婷婷狠狠干 | 在线观看视频在线观看 | 在线视频a| 成人黄色免费在线观看 | 国产精品 日韩 欧美 | 在线观看免费一级片 | 最近能播放的中文字幕 | 日韩视频一二三区 | 蜜臀久久99精品久久久久久网站 | 国产一区在线免费 | 东方av免费在线观看 | 日韩在线观看第一页 | 激情开心色 | 国产福利91精品一区二区三区 | 久久精品麻豆 | 国产精品久久久久久爽爽爽 | 激情视频在线观看网址 | 天堂av色婷婷一区二区三区 | 久热av| 在线观看一级视频 | 成人亚洲网 | 久久国产色| japanesexxxhd奶水 91在线精品一区二区 | av免费电影在线 | av在线影视| 国产91免费在线观看 | av片在线观看 | 国产精品淫 | 在线激情网 | 91精品在线免费观看视频 | 蜜臀久久99静品久久久久久 | 国产网站色 | 麻豆免费视频网站 | 亚洲一区免费在线 | 天天超碰 | 久草影视在线 | 一区二区在线不卡 | 久久精品国产成人 | 天天操比 | 久久国产电影院 | 亚洲成人免费观看 | 日韩欧美电影在线 | 久久国产一区二区 | 99精彩视频在线观看免费 | 免费三级黄色 | 亚洲精品乱码久久久一二三 | 亚洲男女精品 | 天天操天天操天天操天天操天天操 | 人人看97 | 日韩在线小视频 | 国产人成在线视频 | 久久久免费在线观看 | 奇米7777狠狠狠琪琪视频 | 亚洲一区二区三区四区精品 | 精品久久国产精品 | 中文字幕在线视频网站 | 又色又爽又黄高潮的免费视频 | 国产91影院 | a黄色大片 | 日韩国产欧美在线视频 | 99精品久久久久久久 | 伊人资源站 | 国产美女免费观看 | 色综合天| 色综合久久久久久中文网 | 2017狠狠干| 久久精品一二三 | 麻豆国产网站 | 夜添久久精品亚洲国产精品 | 91九色蝌蚪视频在线 | 久久综合久久综合这里只有精品 | 日韩 在线| 中文字幕久久亚洲 | 欧美精品xx | av福利在线导航 | 国产v在线播放 | 久久伦理视频 | 精品高清美女精品国产区 | 国产日韩精品久久 | 国产高清在线免费观看 | 丁香六月婷 | 国产在线视频在线观看 | 亚洲免费精品一区二区 | 成片免费| 亚洲精品午夜视频 | 国产一区二区久久精品 | 国产精品99久久久久久久久 | 国产成人精品a | 亚洲aaa毛片 | 色综合久久久久综合体桃花网 | 亚洲国产成人在线 | 日韩欧美一区二区三区视频 | 日韩av电影中文字幕在线观看 | 一区二区三区四区精品视频 | 国产区欧美 | 国产综合片| 日本系列中文字幕 | av一级二级 | www.亚洲黄| 国产a国产 | mm1313亚洲精品国产 | 五月婷婷久久丁香 | 国产成年人av | 美女久久视频 | 久草视频免费 | 久久精品免视看 | 91精品国产福利 | 日本久久久久久久久 | 最近字幕在线观看第一季 | 色播激情五月 | 日本精品一区二区在线观看 | 欧美日韩国产在线观看 | 樱空桃av | 欧美日韩国产亚洲乱码字幕 | 国产女人40精品一区毛片视频 | 91喷水| 不卡视频国产 | 涩涩网站在线观看 | av在线亚洲天堂 | 久久精视频 | 99re8这里有精品热视频免费 | 6080yy精品一区二区三区 | 青春草视频在线播放 | 黄色免费观看网址 | 不卡电影免费在线播放一区 | 91精品国产综合久久久久久久 | 亚洲午夜久久久综合37日本 | 日日夜夜操操操操 | 伊在线视频 | 色狠狠狠 | 亚洲毛片一区二区三区 | 日日摸日日爽 | 婷婷丁香花 | 夜夜爽天天爽 | 2023av在线 | 成年人免费在线播放 | 园产精品久久久久久久7电影 | 国产高清在线视频 | 精品一区二区三区四区在线 | 在线国产福利 | 免费在线观看不卡av | 99欧美精品| 91chinese在线 | 国产精品18久久久久久久久久久久 | 91天天操 | 在线导航av | 欧美激情操 | 国产精品1区2区在线观看 | 亚洲一二三久久 | 最近高清中文在线字幕在线观看 | 国产成人精品久久二区二区 | 久久高清片| 久久久久99精品国产片 | 日本中文字幕一二区观 | 日本大尺码专区mv | 久久精品老司机 | 久久久久久久综合色一本 | 天天av天天 | 国产精品久久久亚洲 | www日韩在线观看 | 欧美日韩在线播放一区 | 午夜久久久久久久久 | 午夜av大片| 青草视频免费观看 | 黄色一二级片 | 国产又粗又猛又黄视频 | 69国产精品成人在线播放 | 久久99在线观看 | www.狠狠插.com | 在线观看av中文字幕 | 在线视频亚洲 | 亚洲一区日韩 | av在线影片 | 福利片免费看 | 午夜三级影院 | 操操日日 | 亚洲视频免费 | 久久久午夜剧场 | 一区二区男女 | 国产免费片 | 亚洲男人天堂a | 免费a视频在线观看 | 欧美激情va永久在线播放 | 免费观看一区 | 97看片吧 | 亚洲精品在线免费播放 | 中文字幕 国产 一区 | 国产精品1000| 中文字幕免费一区二区 | 丁香婷婷久久 | 久久久精品国产一区二区电影四季 | 亚洲精品国偷拍自产在线观看 | 欧美日韩性视频在线 | 国产看片网站 | 伊人久久在线观看 | 97在线视频免费播放 | 成人免费观看电影 | 在线亚洲午夜片av大片 | 最新免费中文字幕 | av在线一二三区 | 99精品欧美一区二区三区黑人哦 | 911香蕉| 中文字幕在线视频一区二区三区 | 国产精品免费在线视频 | 在线观看不卡视频 | 91日韩在线视频 | 蜜臀久久99静品久久久久久 | 亚洲欧美成人综合 | 在线电影a| 国产日韩中文字幕在线 | 一级黄色免费 | 久草在线视频网 | 亚洲成人麻豆 | aaa日本高清在线播放免费观看 | 国产精品一区二区免费看 | 伊人天天 | 亚洲国产中文字幕在线观看 | 国产一级做a | 日本精品中文字幕在线观看 | 国产一区二区三区视频在线 | 九色精品免费永久在线 | 国产在线不卡精品 | 五月天狠狠操 | 久久天天躁狠狠躁夜夜不卡公司 | 字幕网资源站中文字幕 | 国产精品男女啪啪 | 日韩在线视频观看免费 | 国产精品99久久久久久大便 | 精品视频久久久久久 | 国产字幕在线观看 | 国内精品久久久久久久久久 | 91最新中文字幕 | 久草9视频 | 欧美精品一二三 | 国产精品黑丝在线观看 | 国产精品亚州 | 久久免费视屏 | 欧美午夜性| 久久精品亚洲国产 | 免费色av| 国产精品一区在线观看你懂的 | 狠狠色丁香婷婷 | 天天天天射 | av三区在线 | 欧美韩日视频 | 欧美极品久久 | 香蕉97视频观看在线观看 | 亚洲区视频在线观看 | 久草在线视频首页 | 久草在线手机观看 | 久久免费黄色网址 | 黄色亚洲大片免费在线观看 | 久久久久久久久久影院 | 999在线视频| 中文字幕在线色 | 成年人毛片在线观看 | 久草网在线 | 免费看黄在线 | 亚洲狠狠干 | 免费看一级一片 | 国产视频久久久 | 99视频偷窥在线精品国自产拍 | 在线视频亚洲 | 看片网站黄色 | 久久黄色免费视频 | av福利超碰网站 | 精品亚洲va在线va天堂资源站 | 偷拍久久久 | 精品视频123区在线观看 | 97超碰人人澡人人 | 2021国产在线视频 | 久久爱导航 | 欧美一区免费观看 | 又黄又爽又无遮挡免费的网站 | 97av在线视频免费播放 | 久久婷婷视频 | 91在线播放综合 | 国产精品久久久久久一二三四五 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 久久无码av一区二区三区电影网 | 999成人| 亚洲电影成人 | 麻豆影视网 | 偷拍精偷拍精品欧洲亚洲网站 | 999电影免费在线观看 | 黄www在线观看 | 五月天伊人 | 美女视频网站久久 | 久久,天天综合 | 欧美在线观看视频一区二区三区 | 96亚洲精品久久 | 亚洲精品久久久久中文字幕m男 | 免费亚洲视频 | 在线观看国产区 | 国内精品久久久久影院男同志 | 国产成人精品av在线观 | 国产黄a三级 | 中文字幕美女免费在线 | 91av在线视频播放 | 国产 日韩 欧美 自拍 | 国产91九色蝌蚪 | a级成人毛片 | 日韩午夜三级 | 91精品视频在线 | 亚洲人成免费网站 | 99久久国产免费免费 | 日韩欧美高清视频在线观看 | 最近中文字幕完整高清 | 波多野结衣在线视频一区 | 97影视| 国产婷婷精品av在线 | 色老板在线视频 | www九九热| 国产亚洲精品久久网站 | 国产黄大片在线观看 | 色天天久久 | 日韩av不卡在线播放 | 手机看国产毛片 | 久草视频在线免费 | 欧美大片在线看免费观看 | 九九一级片 | 天天干天天做 | 美国av大片 | 久久久免费精品国产一区二区 | 狠狠色丁香久久婷婷综 | 国产99久久久精品视频 | 久久久久成人精品亚洲国产 | 久久久久久久久影视 | 国产+日韩欧美 | 国产99在线播放 | 99精品免费在线 | 亚洲视频 在线观看 | 久久亚洲国产精品 | 免费色视频 | 国产一级片不卡 | 人人干网站 | 欧美日韩另类在线 | 在线看欧美 | 国产一区麻豆 | 精品亚洲免费视频 | 久久在线免费观看 | 久久精品一区二区三区中文字幕 | 日韩欧美在线国产 | av在线免费网站 | 久久精品一区二区三 | 91精品推荐 | 日日夜夜婷婷 | 国产成人三级在线播放 | 欧美日韩69 | 免费午夜网站 | 精品久久福利 | 亚洲欧美精品一区二区 | 超碰在线人人艹 | 永久免费在线 | 中文字幕在线观看三区 | 黄影院| 国产资源网站 | 在线黄色毛片 | 日韩免费高清 | 国产精品一区二区在线观看 | 亚洲精色| av在线等 | 主播av在线 | 国产亚洲成av片在线观看 | 黄色av电影| 免费亚洲电影 | 四虎影视成人永久免费观看视频 | 伊人超碰在线 | 天天操天天操天天操天天 | 色精品视频 | 色综合久久久久久久 | 中文字幕高清av | 在线中文字幕观看 | 国产成人一区二区三区影院在线 | 国产无遮挡猛进猛出免费软件 | www天天干| 97精品在线观看 | 日本女人的性生活视频 | 日韩乱码在线 | 99精品视频免费观看 | 最近2019年日本中文免费字幕 | 中文字幕一区二区在线播放 | 综合黄色网| 色视频在线免费观看 | 亚洲欧美乱综合图片区小说区 | 国产精品久久久久国产a级 激情综合中文娱乐网 | 99热九九这里只有精品10 | 日韩精品久久一区二区三区 | 久久精品香蕉视频 | 国产亚洲资源 | 精品久久久久久久久久久久 | 天天草天天色 | 国产黄色精品网站 | va视频在线观看 | 欧美中文字幕久久 | 毛片888| 国产精品中文 | 人人澡人 | 久久亚洲电影 | 国产亚洲aⅴaaaaaa毛片 | 久久国产精品影视 | 精品av网站| 色婷婷综合久久久 | 少妇超碰在线 | 国产精品一区二区免费 | 在线电影播放 | 久久国产视屏 | 99热在线观看免费 | 精品久久网站 | 亚洲日本在线视频观看 | 国产精品1区2区3区 久久免费视频7 | 香蕉久草| 最新国产在线视频 | 中文字幕一区二区三区乱码在线 | 狠狠色丁香婷婷综合欧美 | 国产一级高清视频 | www.国产高清 | www.xxxx变态.com | 91.麻豆视频| 免费中午字幕无吗 | 欧美一区二区精美视频 | 国产免费又粗又猛又爽 | 亚洲精品小视频在线观看 | 日韩免费高清在线观看 | 91大神精品视频在线观看 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 国产黄色精品 | 天天综合精品 | 三级黄色网络 | a色视频 | 五月综合色 | 99国内精品久久久久久久 | 久热国产视频 | 日韩av一区二区三区 | 国产婷婷久久 | 97色婷婷人人爽人人 | 欧美日韩精品综合 | 国产中出在线观看 | 911国产| 国产高清av免费在线观看 | 久久久国产视频 | 久热电影 | 在线探花| 奇米影视777影音先锋 | 中文字幕在线观看视频一区二区三区 | 丁香六月综合网 | 伊人国产在线播放 | 在线最新av| 日韩va欧美va亚洲va久久 | 国产一级黄色免费看 | 日本午夜在线亚洲.国产 | 成人av午夜| 国语麻豆 | 操操操影院 | 一区二区欧美在线观看 | 国产 日韩 欧美 在线 | 免费观看视频黄 | 天天色天天射天天综合网 | 最新av免费 | 在线观看视频一区二区三区 | 日本中文字幕在线看 | 91高清免费看 | 五月亚洲婷婷 | 在线免费观看黄色 | 欧美大香线蕉线伊人久久 | 狠狠色狠狠色合久久伊人 | 婷婷九月丁香 | 欧美人体xx | 欧美成人性战久久 | 亚洲欧洲美洲av | 日韩av影视在线 | 国产午夜精品理论片在线 | 精品产品国产在线不卡 | 99热超碰在线 | 国产剧情一区二区在线观看 | 亚洲综合欧美精品电影 | 精品一区二区在线播放 | 国产午夜精品理论片在线 | 人人爱人人爽 | 9在线观看免费 | 久久久久国产精品一区 | 婷婷在线五月 | 在线观看国产 | 久久8| 午夜av在线播放 | 91九色成人蝌蚪首页 | 久久久伦理 | 人人爽人人爽人人爽人人爽 | 国产高清免费在线观看 | 超碰伊人网 | 精品国产乱码一区二区三区在线 | 91麻豆产精品久久久久久 | 九九综合在线 | 精品国产黄色片 | 久久免费视频在线观看6 | 国产成人专区 | 久久久久国产精品免费网站 | 五月婷婷丁香六月 | 欧美一级片在线观看视频 | 91亚色在线观看 | 国产精品国产精品 | 婷婷在线精品视频 | 人人爽人人| av免费在线网站 | 九草视频在线观看 | 五月天中文字幕mv在线 | 久久久久国产一区二区三区四区 | 国产色黄网站 | 99久久国产免费,99久久国产免费大片 | 国产 在线 高清 精品 | 亚洲专区 国产精品 | 亚洲欧美国产精品 | 日韩在线视频精品 | 五月色综合| 国产精品网红直播 | av免费试看 | 亚洲欧美国产视频 | 成片视频在线观看 | 国产成人1区 | 狠狠色狠狠综合久久 | 中文字幕在线视频网站 | 亚洲一区二区三区91 | 97在线观看免费观看高清 | 成人毛片网| 青青啪 | 日本精品久久久一区二区三区 | 五月婷在线 | 国产黄色精品在线 | 国产黄a三级三级 | 国产精品午夜久久久久久99热 | 激情综合一区 | 激情视频一区 | 欧美色综合天天久久综合精品 | 欧美日韩精品在线一区二区 | 精品亚洲国产视频 | 国产精品欧美久久久久无广告 | 最新国产一区二区三区 | 99色在线观看视频 | av中文字幕亚洲 | 蜜臀av网址| 最近日本字幕mv免费观看在线 | 免费视频你懂得 | 日日干av| 成人在线一区二区 | 国产三级香港三韩国三级 | 夜夜躁狠狠躁日日躁 | 丁香花在线视频观看免费 | 亚洲最大的av网站 | 9草在线 | 97国产精品亚洲精品 | 天天搞天天干天天色 | 在线观看黄污 | 日韩国产精品一区 | 久操中文字幕在线观看 | 日本中文字幕在线 | 免费视频三区 | 亚洲精品小视频 | 国产成人在线一区 | 99热99热| 国产精品麻豆视频 | 深夜成人av | 国产精品入口麻豆 | 91麻豆精品国产自产 | 狠狠色伊人亚洲综合网站野外 | 日本黄色a级大片 | 97碰视频| 亚洲视频www | 成人黄色小说视频 | av在线播放不卡 | 久色婷婷| 国产免费又黄又爽 | 久久久www成人免费毛片麻豆 | 国产精品毛片久久久久久 | 欧美一级视频一区 | 六月婷婷网 | 黄色av电影网 | 国产精品麻| av三级av| 日韩精品一区二区三区三炮视频 | 伊人天天综合 | 最新精品视频在线 | 69精品在线 | 亚洲精品乱码久久久久久高潮 | 这里只有精品视频在线观看 | 久久久久久久久久久久电影 | 中文字幕在线高清 | www.操.com| adc在线观看| 国产区精品区 | 九九免费精品 | 日韩激情精品 | 国产一区二区在线免费播放 | 正在播放亚洲精品 | 亚洲成人黄色在线观看 | 免费看一级黄色 | 国产又粗又猛又黄视频 | 久久精品免费 | 久热电影| 国产第一页福利影院 | 国产xxxx | 成人在线视频论坛 | 日韩av免费一区二区 | 国产永久免费高清在线观看视频 | 久久亚洲私人国产精品va | 激情开心| 成人免费看黄 | 黄色视屏免费在线观看 | 欧美精品久久久久久久久久久 | 国产不卡在线观看视频 | 日韩免费高清在线观看 | 亚洲小视频在线 | 成人黄大片视频在线观看 | 国产精品久久久久一区二区三区共 | 日本护士三级少妇三级999 | 色橹橹欧美在线观看视频高清 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天干天天插 | 久久99深爱久久99精品 | 国产精品igao视频网网址 | 96国产精品 | 成人在线播放网站 | 久草观看 | 九九免费视频 | 国产精品美女在线 | 亚洲国产精品成人精品 | 美女视频黄免费的久久 | 国产手机免费视频 | 国产精品一级视频 | 中文字幕在线不卡国产视频 | 国产99免费视频 | 在线高清一区 | 99国产精品久久久久久久久久 | 欧美激情综合色 | 亚洲精品资源在线 | 婷婷色在线资源 | www.国产视频| 天天玩天天操天天射 | 精品视频123区在线观看 | 999色视频| www.婷婷色 | 国产一级免费在线观看 | 国产大尺度视频 | 91精品成人久久 | 西西4444www大胆视频 | 中文网丁香综合网 | 亚洲国产精品成人综合 | 国产高清免费 | 免费黄a大片 | 国产精品视频全国免费观看 | 日韩欧美在线中文字幕 | 久久成人亚洲欧美电影 | 人人草天天草 | 久久精品屋 | 97色狠狠 | 久久国产经典 | 东方av免费在线观看 | 国产精品欧美日韩在线观看 | 日韩电影一区二区三区在线观看 | 国产小视频在线看 | 国产精品一区二区av日韩在线 | 波多野结衣在线观看一区 | 欧美在线1 | 日韩成人黄色av | 一区二区三区免费在线 | 免费在线成人 | 91网址在线观看 | 99精品在线免费观看 | 久久久高清一区二区三区 | 日韩欧美电影在线 | 在线观看国产v片 | 欧美另类z0zx| 国产乱码精品一区二区三区介绍 | 久久高清免费观看 | 欧美日韩三级在线观看 | 女女av在线 | 久久黄色成人 | 欧美日韩视频免费看 | www.久久色.com| 丁香婷婷综合激情五月色 | 正在播放日韩 | 中文字幕韩在线第一页 | 日韩99热| 日躁夜躁狠狠躁2001 | 亚洲欧美国内爽妇网 | 免费人成在线观看网站 | 日韩理论片中文字幕 | 国产伦精品一区二区三区四区视频 | 成人在线免费视频观看 | 欧美日韩视频在线观看免费 | 中文字幕在线久一本久 | 色婷婷久久一区二区 | 最近中文字幕免费大全 | 99热这里精品 | 免费一级片在线 | 热久久最新地址 | 超碰在线最新地址 | 91av视频观看| 国产91粉嫩白浆在线观看 | 婷婷综合导航 | 韩国一区二区三区视频 | 日日干网 | 国产精品久久久久免费观看 | 久久国产影视 | 久久精品美女视频网站 | 精品国产91亚洲一区二区三区www | 国产涩涩网站 | 日本中文字幕在线电影 | 日韩a在线看 | 日韩欧美一区二区三区视频 | 久久精品亚洲综合专区 | 国产精品久久久久久高潮 | 91av手机在线观看 | 久久久久免费精品国产 | 亚洲精品动漫久久久久 | 五月婷社区 | 99av在线视频 | 在线观看免费版高清版 | 久久精品视频在线免费观看 | 国产福利一区二区在线 | 91精品国产乱码久久 | 久久九九影视 | 日韩免费视频 | 国产一级黄大片 | 玖玖综合网 | 日韩在线视频免费观看 | 最近中文字幕完整视频高清1 | 亚洲男人天堂2018 | 国产视频 亚洲视频 | 丁香婷五月 | 成人免费大片黄在线播放 | 激情久久影院 |