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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

USB驱动——键盘驱动(控制传输)

發布時間:2023/12/20 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 USB驱动——键盘驱动(控制传输) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

USB驅動——鍵盤驅動(控制傳輸)

http://blog.csdn.net/lizuobin2/ https://blog.csdn.net/lizuobin2/article/details/51971393

? ? 本文以 usbkbd.c 為例,分析 usb 鍵盤驅動程序。

?

  • static int __init usb_kbd_init(void)

  • {

  • int result = usb_register(&usb_kbd_driver);

  • if (result == 0)

  • printk(KERN_INFO KBUILD_MODNAME ": " DRIVER_VERSION ":"

  • DRIVER_DESC "\n");

  • return result;

  • }

  • static struct usb_driver usb_kbd_driver = {

  • .name = "usbkbd",

  • .probe = usb_kbd_probe,

  • .disconnect = usb_kbd_disconnect,

  • .id_table = usb_kbd_id_table,

  • };

  • ? ? 還是來看一下 id_table ,與鼠標相比,僅僅是協議不一樣。

    ?

    ?

  • static struct usb_device_id usb_kbd_id_table [] = {

  • { USB_INTERFACE_INFO(USB_INTERFACE_CLASS_HID, USB_INTERFACE_SUBCLASS_BOOT,

  • USB_INTERFACE_PROTOCOL_KEYBOARD) },

  • { } /* Terminating entry */

  • };

  • ? ? 下面來看probe函數

    ?

  • static int usb_kbd_probe(struct usb_interface *iface,

  • const struct usb_device_id *id)

  • {

  • /* 獲得usb_device */

  • struct usb_device *dev = interface_to_usbdev(iface);

  • ?
  • /* 接口的設置 */

  • struct usb_host_interface *interface;

  • ?
  • /* 端點描述符 */

  • struct usb_endpoint_descriptor *endpoint;

  • ?
  • /* 鍵盤結構體 */

  • struct usb_kbd *kbd;

  • ?
  • /* 輸入設備 */

  • struct input_dev *input_dev;

  • ?
  • int i, pipe, maxp;

  • int error = -ENOMEM;

  • ?
  • /* 獲取該接口當前的設置 */

  • interface = iface->cur_altsetting;

  • ?
  • /* 如果當前設置的端點數量不是1,那么錯誤,返回 */

  • if (interface->desc.bNumEndpoints != 1)

  • return -ENODEV;

  • ?
  • /* 如果當前設置第一個端點的類型不是中斷端點,錯誤,返回 */

  • endpoint = &interface->endpoint[0].desc;

  • if (!usb_endpoint_is_int_in(endpoint))

  • return -ENODEV;

  • ?
  • /* 第一個端點的管道 */

  • pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);

  • ?
  • /* 最大傳輸包大小 */

  • maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));

  • ?
  • /* 為鍵盤結構體分配空間 */

  • kbd = kzalloc(sizeof(struct usb_kbd), GFP_KERNEL);

  • ?
  • /* 分配一個輸入設備 */

  • input_dev = input_allocate_device();

  • ?
  • /*

  • kbd->irq = usb_alloc_urb(0, GFP_KERNEL)

  • kbd->led = usb_alloc_urb(0, GFP_KERNEL)

  • kbd->new = usb_buffer_alloc(dev, 8, GFP_ATOMIC, &kbd->new_dma)

  • kbd->cr = usb_buffer_alloc(dev, sizeof(struct usb_ctrlrequest), GFP_ATOMIC, &kbd->cr_dma)

  • kbd->leds = usb_buffer_alloc(dev, 1, GFP_ATOMIC, &kbd->leds_dma)

  • */

  • if (usb_kbd_alloc_mem(dev, kbd))

  • goto fail2;

  • ?
  • /* 填充鍵盤結構體。以及一些字符串 */

  • kbd->usbdev = dev;

  • kbd->dev = input_dev;

  • ?
  • if (dev->manufacturer)

  • strlcpy(kbd->name, dev->manufacturer, sizeof(kbd->name));

  • ?
  • if (dev->product) {

  • if (dev->manufacturer)

  • strlcat(kbd->name, " ", sizeof(kbd->name));

  • strlcat(kbd->name, dev->product, sizeof(kbd->name));

  • }

  • ?
  • if (!strlen(kbd->name))

  • snprintf(kbd->name, sizeof(kbd->name),

  • "USB HIDBP Keyboard %04x:%04x",

  • le16_to_cpu(dev->descriptor.idVendor),

  • le16_to_cpu(dev->descriptor.idProduct));

  • ?
  • usb_make_path(dev, kbd->phys, sizeof(kbd->phys));

  • strlcpy(kbd->phys, "/input0", sizeof(kbd->phys));

  • ?
  • /* 填充輸入設備 */

  • input_dev->name = kbd->name;

  • input_dev->phys = kbd->phys;

  • usb_to_input_id(dev, &input_dev->id);

  • input_dev->dev.parent = &iface->dev;

  • ?
  • input_set_drvdata(input_dev, kbd);

  • ?
  • /* 設置它支持的事件類型和具體事件 1、按鍵類事件 2、LED燈(大小寫燈等)3、重復上報*/

  • input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_LED) |

  • BIT_MASK(EV_REP);

  • input_dev->ledbit[0] = BIT_MASK(LED_NUML) | BIT_MASK(LED_CAPSL) |

  • BIT_MASK(LED_SCROLLL) | BIT_MASK(LED_COMPOSE) |

  • BIT_MASK(LED_KANA);

  • ?
  • for (i = 0; i < 255; i++)

  • set_bit(usb_kbd_keycode[i], input_dev->keybit);

  • clear_bit(0, input_dev->keybit);

  • ?
  • /* 對于LED類型的事件,首先會調用到dev->event 然后再調用事件處理層的event */

  • input_dev->event = usb_kbd_event;

  • input_dev->open = usb_kbd_open;

  • input_dev->close = usb_kbd_close;

  • ?
  • /* 填充中斷類型Urb */

  • usb_fill_int_urb(kbd->irq, dev, pipe,

  • kbd->new, (maxp > 8 ? 8 : maxp),

  • usb_kbd_irq, kbd, endpoint->bInterval);

  • kbd->irq->transfer_dma = kbd->new_dma;

  • kbd->irq->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;

  • ?
  • /*

  • * bit7 控制傳輸 data 階段的方向 0 主機到設備 1設備到主機, 這里 0 主機到設備

  • * bit5-6 表示 request 類型,是標準的還是廠家定義的, 這里為hid class定義

  • * bit0-4 表示這個請求針對的是設備、接口還是端點 , 這里是接口

  • */

  • kbd->cr->bRequestType = USB_TYPE_CLASS | USB_RECIP_INTERFACE; // 0x01 << 5 |

  • ?
  • /*

  • #define USB_REQ_GET_STATUS 0x00

  • #define USB_REQ_CLEAR_FEATURE 0x01

  • #define USB_REQ_SET_FEATURE 0x03

  • #define USB_REQ_SET_ADDRESS 0x05

  • #define USB_REQ_GET_DESCRIPTOR 0x06

  • #define USB_REQ_SET_DESCRIPTOR 0x07

  • #define USB_REQ_GET_CONFIGURATION 0x08

  • #define USB_REQ_SET_CONFIGURATION 0x09

  • #define USB_REQ_GET_INTERFACE 0x0A

  • #define USB_REQ_SET_INTERFACE 0x0B

  • #define USB_REQ_SYNCH_FRAME 0x0C

  • */

  • kbd->cr->bRequest = USB_REQ_SET_CONFIGURATION;

  • ?
  • /* request 的參數 */

  • kbd->cr->wValue = cpu_to_le16(0x200);

  • ?
  • /* bRequestType 中,針對接口、端點時,它表示那個接口或端點 */

  • kbd->cr->wIndex = cpu_to_le16(interface->desc.bInterfaceNumber);

  • ?
  • /* data階段數據長度 */

  • kbd->cr->wLength = cpu_to_le16(1);

  • ?
  • /*

  • 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)

  • */

  • /* 這里使用的是默認端點0 */

  • usb_fill_control_urb(kbd->led, dev, usb_sndctrlpipe(dev, 0),(void *) kbd->cr, kbd->leds, 1, usb_kbd_led, kbd);

  • kbd->led->setup_dma = kbd->cr_dma;

  • kbd->led->transfer_dma = kbd->leds_dma;

  • kbd->led->transfer_flags |= (URB_NO_TRANSFER_DMA_MAP | URB_NO_SETUP_DMA_MAP);

  • ?
  • error = input_register_device(kbd->dev);

  • ?
  • usb_set_intfdata(iface, kbd);

  • return 0;

  • }

  • ? ? 這里與鼠標驅動程序相比,多了一個控制傳輸過程,而且,這個控制傳輸的?bRequestType 中說明了這個傳輸不是標準的請求,而是Class,我們的鍵盤是HID類型,因此還要看USB HID協議中,關于這個請求是如何定義的,才能知道wValue 、wIndex等是什么意思(參考:http://blog.csdn.net/leo_wonty/article/details/6721214),這就是就將knd->leds 內的一字節數據發送給從設備。在鼠標驅動程序中,中斷 urb 是在open函數中提交的,這里也不例外。

    ?

    ?

  • static int usb_kbd_open(struct input_dev *dev)

  • {

  • struct usb_kbd *kbd = input_get_drvdata(dev);

  • ?
  • kbd->irq->dev = kbd->usbdev;

  • if (usb_submit_urb(kbd->irq, GFP_KERNEL))

  • return -EIO;

  • ?
  • return 0;

  • }

  • ? ? 中斷傳輸完成之后會調用完成函數,usb_kbd_irq

  • static void usb_kbd_irq(struct urb *urb)

  • {

  • struct usb_kbd *kbd = urb->context;

  • int i;

  • ?
  • switch (urb->status) {

  • case 0: /* success */

  • break;

  • case -ECONNRESET: /* unlink */

  • case -ENOENT:

  • case -ESHUTDOWN:

  • return;

  • /* -EPIPE: should clear the halt */

  • default: /* error */

  • goto resubmit;

  • }

  • //報告usb_kbd_keycode[224..231]8按鍵狀態

  • //KEY_LEFTCTRL,KEY_LEFTSHIFT,KEY_LEFTALT,KEY_LEFTMETA,

  • //KEY_RIGHTCTRL,KEY_RIGHTSHIFT,KEY_RIGHTALT,KEY_RIGHTMETA

  • for (i = 0; i < 8; i++)

  • input_report_key(kbd->dev, usb_kbd_keycode[i + 224], (kbd->new[0] >> i) & 1);

  • //若同時只按下1個按鍵則在第[2]個字節,若同時有兩個按鍵則第二個在第[3]字節,類推最多可有6個按鍵同時按下

  • for (i = 2; i < 8; i++) {

  • //獲取鍵盤離開的中斷

  • //同時沒有該KEY的按下狀態

  • if (kbd->old[i] > 3 && memscan(kbd->new + 2, kbd->old[i], 6) == kbd->new + 8) {

  • if (usb_kbd_keycode[kbd->old[i]])

  • input_report_key(kbd->dev, usb_kbd_keycode[kbd->old[i]], 0);

  • else

  • hid_info(urb->dev,

  • "Unknown key (scancode %#x) released.\n",

  • kbd->old[i]);

  • }

  • //獲取鍵盤按下的中斷

  • //同時沒有該KEY的離開狀態

  • if (kbd->new[i] > 3 && memscan(kbd->old + 2, kbd->new[i], 6) == kbd->old + 8) {

  • if (usb_kbd_keycode[kbd->new[i]])

  • input_report_key(kbd->dev, usb_kbd_keycode[kbd->new[i]], 1);

  • else

  • hid_info(urb->dev,

  • "Unknown key (scancode %#x) released.\n",

  • kbd->new[i]);

  • }

  • }

  • ?
  • input_sync(kbd->dev); //同步設備,告知事件的接收者驅動已經發出了一個完整的報告

  • ?
  • memcpy(kbd->old, kbd->new, 8); //防止未松開時被當成新的按鍵處理

  • ?
  • resubmit:

  • i = usb_submit_urb (urb, GFP_ATOMIC);

  • if (i)

  • hid_err(urb->dev, "can't resubmit intr, %s-%s/input0, status %d",

  • kbd->usbdev->bus->bus_name,

  • kbd->usbdev->devpath, i);

  • }

  • ? ? 這里,都是上報的按鍵類事件,我們在前邊的Probe函數中,設置了輸入設備支持按鍵類事件,還有一個LED類事件,但是搜遍代碼也沒有找到,LED類事件是在哪里上報的。還有,probe函數中定義了一個dev->event函數,在瀏覽資料時發現,有些人說在input_event時,調用事件處理層的event函數的同時會調用dev->event,我認為這種說法是不正確的,看過input_event代碼的同學應該不難發現,只有上報LED類等事件的時候才會觸發dev->event,我們這里單純上報的按鍵類事件并不會觸發dev->event 。那么,probe 函數里定義的 dev->event 函數豈不是成了擺設么?確實,我暫時沒發現它有什么用。手頭沒有usb鍵盤,這個后邊實驗證實。

    ?

    ?

  • static int usb_kbd_event(struct input_dev *dev, unsigned int type,

  • unsigned int code, int value)

  • {

  • struct usb_kbd *kbd = input_get_drvdata(dev);

  • ?
  • if (type != EV_LED)

  • return -1;

  • ?
  • kbd->newleds = (!!test_bit(LED_KANA, dev->led) << 3) | (!!test_bit(LED_COMPOSE, dev->led) << 3) |

  • (!!test_bit(LED_SCROLLL, dev->led) << 2) | (!!test_bit(LED_CAPSL, dev->led) << 1) |

  • (!!test_bit(LED_NUML, dev->led));

  • ?
  • if (kbd->led->status == -EINPROGRESS)

  • return 0;

  • ?
  • if (*(kbd->leds) == kbd->newleds)

  • return 0;

  • ?
  • *(kbd->leds) = kbd->newleds;

  • kbd->led->dev = kbd->usbdev;

  • if (usb_submit_urb(kbd->led, GFP_ATOMIC))

  • err_hid("usb_submit_urb(leds) failed");

  • ?
  • return 0;

  • }

  • ? ? 這里的 dev->led 記錄的是led的狀態,比如,我們上報一個LED事件時,input_event 中會將對應的事件記錄在 dev->led 中。這里檢測LED事件是否發生,然后通過控制傳輸將1字節數據傳送給usb鍵盤,Usb鍵盤的燈相應做出改變。但是,說到底,代碼里沒有上報過LED類事件,一切都是白扯。

  • static void usb_kbd_led(struct urb *urb)

  • {

  • struct usb_kbd *kbd = urb->context;

  • ?
  • if (urb->status)

  • dev_warn(&urb->dev->dev, "led urb status %d received\n",

  • urb->status);

  • ?
  • if (*(kbd->leds) == kbd->newleds)

  • return;

  • ?
  • *(kbd->leds) = kbd->newleds;

  • kbd->led->dev = kbd->usbdev;

  • if (usb_submit_urb(kbd->led, GFP_ATOMIC))

  • err_hid("usb_submit_urb(leds) failed");

  • }

  • ? ? 這里的控制傳輸完成函數也是個累贅?每次有LED事件上報的話,那么控制傳輸urb就自動提交了。那么,*(kbd->leds)== kbd->newleds 必然是相等的,除非又有新的事件上報了,但是新事件上報時,在usb_kbd_event 函數里urb不就自動提交了么? 會出現不相等的情況?

    ?

    總結

    以上是生活随笔為你收集整理的USB驱动——键盘驱动(控制传输)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    高清av中文字幕 | 超碰com| 日日干日日色 | 97色资源 | 91成人免费看片 | 日韩美在线 | 韩国av免费观看 | 久久久久日本精品一区二区三区 | 99c视频在线| 久久九九影视 | 欧美午夜精品久久久久 | av福利在线免费观看 | 亚洲精品视频一二三 | 国产在线美女 | 久草在线精品观看 | 国产精品免费大片视频 | 国产原厂视频在线观看 | 成人毛片一区 | 国产精品1区2区3区在线观看 | 国产精品入口传媒 | 久久国产精品一区二区三区四区 | av夜夜操 | 免费在线激情电影 | 久久香蕉电影网 | 91人人爽久久涩噜噜噜 | 在线小视频 | 一级免费黄视频 | 97天堂网| 色国产视频| 欧美日韩一区久久 | 亚洲经典中文字幕 | 日韩一三区 | 新版资源中文在线观看 | 日韩在线国产 | 成人av影视观看 | 在线视频 国产 日韩 | 色片网站在线观看 | 992tv又爽又黄的免费视频 | 探花视频在线观看 | 国产高清免费观看 | 国产91精品久久久久久 | a级一a一级在线观看 | 麻豆传媒视频在线播放 | 久久艹影院| 久久精品国产亚洲aⅴ | 综合中文字幕 | 欧美成年黄网站色视频 | 五月婷婷综合在线视频 | 91福利小视频 | 夜夜爽www| 奇米四色影狠狠爱7777 | 亚洲在线精品 | 久久精品看片 | 狠狠狠狠狠狠 | 日韩色av色资源 | 成人黄色电影免费观看 | 五月天综合色 | 日韩av一区二区在线播放 | 一区二区精品国产 | 欧美一区二区精美视频 | 中文字幕乱码在线播放 | 超碰97国产| 欧美日韩在线视频一区 | 婷婷精品 | 亚洲精品午夜aaa久久久 | 99在线精品视频观看 | 色婷婷六月天 | 最近中文字幕高清字幕在线视频 | 97在线超碰 | 九色琪琪久久综合网天天 | 在线不卡中文字幕播放 | 黄色软件在线观看视频 | 一区二区欧美在线观看 | 在线观看免费av网 | 久久免费视频99 | 久久精品96 | 91看片淫黄大片在线播放 | 亚洲国产精彩中文乱码av | 色婷婷天天干 | 欧美日韩在线观看一区二区 | 亚洲激情av| 69精品| 午夜av电影院 | 最近av在线 | 久久久天堂 | 手机av在线网站 | 国产精品videoxxxx | av免费网站观看 | 天堂视频一区 | 国产永久网站 | 久久久久久久影院 | 伊人精品在线 | 超碰97在线资源站 | 97人人精品 | 日韩视频中文 | 超碰精品在线 | 久久亚洲私人国产精品 | 免费看污网站 | 久久精品中文字幕一区二区三区 | 极品久久久 | 激情欧美丁香 | 国产精品观看在线亚洲人成网 | 久久综合色天天久久综合图片 | 国产日韩精品久久 | 人人草人 | 黄色三级网站 | 99免费在线视频观看 | 午夜国产影院 | 成人一级免费视频 | 中国一级片在线播放 | 国产破处视频在线播放 | 国产91精品一区二区绿帽 | 999精品视频 | 日本久久久久久科技有限公司 | 日本在线观看中文字幕 | 狠狠狠狠狠狠狠干 | 97综合在线| 天堂在线视频免费观看 | 91精品国产网站 | 在线电影av | 国内久久 | 97国产大学生情侣酒店的特点 | 欧美日韩精品在线观看视频 | 久久影院中文字幕 | 91成人精品一区在线播放69 | 国产黄网在线 | 天堂在线视频中文网 | 色综合久久久久网 | 六月丁香婷婷网 | 天天插狠狠插 | 色综合www| 国产成免费视频 | 四虎伊人| 81国产精品久久久久久久久久 | 黄色大片免费网站 | 欧美一区日韩精品 | 日本中文在线 | 国产手机视频在线播放 | 国产精品一区二区久久国产 | 国产日韩精品一区二区三区在线 | 久草视频免费在线播放 | 人人狠狠综合久久亚洲婷 | 人人射人人 | 成年人av在线播放 | 九九热国产视频 | 日韩在线三级 | 国产精品日韩欧美一区二区 | 久久艹影院| 青青啪 | 欧美日韩另类在线 | 中日韩免费视频 | 99在线观看免费视频精品观看 | 久久精品96 | 欧美精品一区二区性色 | 国产一二区免费视频 | 青青五月天 | 韩日在线一区 | 日韩大片在线看 | 大胆欧美gogo免费视频一二区 | 麻豆成人网| 日韩亚洲在线 | av一区在线播放 | 精品国产aⅴ麻豆 | 国产小视频精品 | 在线日韩精品视频 | 日本中文字幕视频 | 久久久久国产精品厨房 | 免费99精品国产自在在线 | 久久伊人精品一区二区三区 | 九九精品视频在线观看 | 色福利网| 亚洲天堂网在线观看视频 | 久久久久综合精品福利啪啪 | 国产亚洲精品久久久久动 | 99爱爱| 天天翘av | 欧美乱大交 | 日韩二级毛片 | 日韩在线观看第一页 | www.五月天婷婷 | 久久免费一| 日韩一区二区三区在线观看 | www免费视频com| 日韩视频免费观看高清完整版在线 | 婷婷丁香色 | 日韩欧美在线高清 | 99在线热播精品免费99热 | 中文字幕在线观看三区 | 久久公开视频 | 亚洲狠狠 | 国产精品一区二区三区在线 | 欧美一级免费黄色片 | 激情五月婷婷激情 | 国产精品视频99 | 麻豆果冻剧传媒在线播放 | 久久久成人精品 | 狠狠干夜夜爱 | 中文免费 | 精品伦理一区二区三区 | 九九精品久久 | 麻花豆传媒一二三产区 | 91福利专区 | 亚洲精品国产品国语在线 | 97网| 国产成人免费av电影 | 黄色软件在线观看视频 | 久久久久久久久久久久影院 | av久久在线 | 亚洲女欲精品久久久久久久18 | 久久久电影 | 狠狠色丁香婷婷综合久小说久 | 日韩在线不卡视频 | 久久99亚洲精品久久久久 | 欧美精品一区二区在线观看 | 视频在线在亚洲 | 久久激情五月激情 | 天天综合色网 | 99re视频在线观看 | 日韩一二三区不卡 | 国产不卡视频在线 | 久久综合99| 亚洲黄色一级大片 | 91久久久国产精品 | 国内丰满少妇猛烈精品播 | 国产欧美在线一区 | 色a资源在线 | 99久高清在线观看视频99精品热在线观看视频 | 色先锋资源网 | 在线不卡视频 | 日韩一区二区三区免费视频 | 一级a性色生活片久久毛片波多野 | 亚洲精品午夜aaa久久久 | 成人网页在线免费观看 | 免费黄色av电影 | 日韩成人在线免费观看 | 亚洲综合色婷婷 | 欧美一级免费片 | 国产99久久九九精品免费 | 天堂网一区| 92精品国产成人观看免费 | 在线韩国电影免费观影完整版 | 91视频最新网址 | 久久精品网址 | 亚洲精品裸体 | 国产高清av免费在线观看 | 久久99久| 在线 高清 中文字幕 | 欧美日韩一区二区在线观看 | 91精品在线视频观看 | 奇米影视777四色米奇影院 | 国产不卡在线观看视频 | 久久久受www免费人成 | 亚洲国产人午在线一二区 | 最新国产一区二区三区 | 91九色精品女同系列 | 久久小视频 | 性色视频在线 | 成人一级片在线观看 | 99超碰在线播放 | 91精品无人成人www | 成人av在线亚洲 | 国产一区二区高清 | 国产午夜精品一区二区三区四区 | 最新国产一区二区三区 | 永久黄网站色视频免费观看w | 欧美精彩视频 | 丁香网五月天 | 日日干天夜夜 | 99精品视频中文字幕 | 韩国av免费看 | 韩国精品福利一区二区三区 | 黄色大全免费网站 | 婷婷综合成人 | 天天艹天天干天天 | 91麻豆精品国产91久久久使用方法 | 高清国产午夜精品久久久久久 | 国产黄色片一级 | 天天艹日日干 | 成人黄色电影在线观看 | 黄色网在线免费观看 | 精品国产视频在线观看 | 97在线观看免费观看高清 | 久久久久久蜜av免费网站 | 伊人天天色 | 国产精品久久久久久久久久新婚 | 欧洲精品久久久久毛片完整版 | 夜夜躁日日躁狠狠久久av | 精品少妇一区二区三区在线 | 日韩精品极品视频 | 久久免费国产精品 | 久久久亚洲电影 | 天天综合在线观看 | 激情久久久 | 国产中文欧美日韩在线 | 波多野结衣视频在线 | 日韩三级精品 | 99久久精品国产免费看不卡 | 五月激情天 | 在线免费黄色av | 超碰97av在线 | 国产精品一级视频 | 欧美人交a欧美精品 | 久久五月天婷婷 | 日韩91在线 | 日韩精品 在线视频 | 青草草在线| 91视频啪 | 欧美激情综合色 | 一级性视频 | 日韩欧美在线视频一区二区 | 婷婷六月久久 | 国产精品成人一区二区三区吃奶 | 国产高清一 | 国产精品成人免费精品自在线观看 | 激情丁香综合五月 | 毛片区 | 国产人成免费视频 | 国产精品久久久久久吹潮天美传媒 | 日韩成人邪恶影片 | 国产国语在线 | 深夜精品福利 | 成人动漫一区二区三区 | 97精品国产97久久久久久久久久久久 | 国产精品永久免费在线 | 久久久国产在线视频 | 亚洲精品视频在线 | 成人毛片100免费观看 | 日韩爱爱网站 | 不卡电影免费在线播放一区 | 中文字幕乱视频 | 久久夜色精品国产欧美乱极品 | 日韩毛片在线播放 | 色综合久久久久网 | 在线观看国产v片 | 91精品毛片 | av专区在线| 午夜视频一区二区三区 | 久久久久久久免费看 | 欧洲精品久久久久毛片完整版 | 黄色av网站在线观看免费 | 热热热热热色 | 亚洲三级性片 | 99久热在线精品视频成人一区 | 色天天中文 | 91精品视频导航 | 日韩欧美视频在线免费观看 | 激情五月婷婷激情 | 丁香五香天综合情 | 日韩精品在线看 | 亚洲国产精久久久久久久 | 精品专区一区二区 | 99这里只有 | 亚洲精品视频播放 | 国产一区在线播放 | 国产高清免费av | 欧美一区二区三区在线观看 | 久久久伦理 | 中文字幕免费久久 | 国产精品一区欧美 | 99在线观看免费视频精品观看 | 久久久18 | 欧美怡红院视频 | 五月综合网站 | 亚洲国产精品影院 | 欧美91精品国产自产 | 中文字幕在线资源 | 91豆花在线 | 国产成人性色生活片 | 日韩视频免费观看高清完整版在线 | 成人午夜免费剧场 | 久久精品免费电影 | 久久精品96| 中文字幕欧美三区 | 人人干人人做 | 99九九免费视频 | www.久久久.com | 国产精彩在线视频 | 91亚洲精品国偷拍 | 久久一区二区三区四区 | 久久国产精品一二三区 | 日韩av中文字幕在线 | 精品久久国产一区 | 日日草视频 | 亚洲天堂自拍视频 | 成人97视频一区二区 | 制服丝袜成人在线 | 国产精品入口传媒 | 国产淫片 | 成人av免费在线播放 | 国产剧情一区二区在线观看 | 午夜黄色影院 | av在线最新 | 天天色棕合合合合合合 | 六月丁香激情综合色啪小说 | 国产精品手机在线 | 婷婷色在线播放 | 国产精品24小时在线观看 | 亚洲涩涩一区 | 国产玖玖视频 | 国产永久免费高清在线观看视频 | 欧美大香线蕉线伊人久久 | www.黄色在线 | 69欧美视频 | 国产美女久久 | 久久午夜国产 | 亚洲国产福利视频 | 亚洲精品国产精品国 | av黄在线播放 | 精品久久久久亚洲 | 黄色激情网址 | 亚洲网站在线看 | 中文字幕 国产视频 | 在线观看亚洲国产精品 | 欧美99精品 | 91成人天堂久久成人 | 国产精品久久99综合免费观看尤物 | 在线视频精品播放 | 91av免费在线观看 | www.狠狠色.com| 欧美性受极品xxxx喷水 | 国产欧美日韩一区 | 欧美韩日在线 | 国产日韩精品欧美 | 狠狠久久伊人 | 日韩精品一区二区三区在线播放 | 91理论片午午伦夜理片久久 | 一区二区av| 在线观看日韩免费视频 | 日韩精品高清不卡 | 国产资源网 | 亚洲香蕉视频 | 麻花豆传媒mv在线观看 | 亚洲精品午夜国产va久久成人 | 麻豆视频在线免费看 | 成人中文字幕在线观看 | 国产一级视频免费看 | 亚洲午夜久久久久久久久久久 | 久久er99热精品一区二区 | 日韩欧美中文 | 国产一区二区在线免费播放 | 福利片免费看 | 久久久综合九色合综国产精品 | 国产精品黑丝在线观看 | 99精品视频在线看 | 99欧美精品| 在线视频日韩精品 | 日本系列中文字幕 | 亚洲一区网 | 久草视频免费在线播放 | 欧美精品一区二区在线观看 | 美女久久久久久久 | 国产精品久久久久久久久久久不卡 | 日韩大片在线看 | 黄色片网站大全 | 99久久精品国产一区二区成人 | 狠狠操电影网 | 69av免费视频 | 9797在线看片亚洲精品 | 九九精品视频在线观看 | 97精品国产97久久久久久久久久久久 | va视频在线观看 | 激情av一区二区 | 中文在线资源 | 香蕉视频在线免费 | 国产精品日韩在线 | 日韩欧美一区二区三区在线观看 | 日韩精品中文字幕在线不卡尤物 | 91免费网 | 五月综合激情网 | 97人人澡人人添人人爽超碰 | 久久精品美女视频 | aaawww| 狠狠躁日日躁狂躁夜夜躁 | 国产午夜一区 | 香蕉视频网址 | 干天天 | 久久免费中文视频 | 久久成人资源 | 色综合久 | 亚洲视频 视频在线 | 日韩在线一二三区 | 草久在线 | av天天澡天天爽天天av | 欧美日韩精品影院 | 日本三级不卡视频 | 久久久久久久久久免费 | 人人超碰人人 | 久久xxxx| 日韩黄视频 | 草久久精品 | 国产成人不卡 | 国产一区二区三区免费在线观看 | 91精品视频一区二区三区 | 九九久久国产精品 | 久久美女免费视频 | 色中文字幕在线观看 | 中文字幕成人av | 欧美日韩精品国产 | wwwwwww黄| 九九欧美视频 | 久久成电影 | 天天干天天操人体 | 特级毛片网 | 国产日韩欧美视频 | 亚洲视频一 | 国产高清一区二区 | 欧美日韩精品区 | 99精品视频免费观看视频 | 亚洲精品美女久久久久 | 久久国产一二区 | 国产精品免费看 | 久久草网站 | 久久96| 久久桃花网 | 97超碰人人干 | 亚洲专区中文字幕 | 精品女同一区二区三区在线观看 | 色成人亚洲 | 中文字幕有码在线播放 | 人人dvd | 成人一级电影在线观看 | 久久久久国产精品免费免费搜索 | 蜜臀av夜夜澡人人爽人人桃色 | 96亚洲精品久久久蜜桃 | 日韩精品不卡在线 | 欧美日韩国产一区 | 亚洲首页 | 人人揉人人揉人人揉人人揉97 | 看片一区二区三区 | 久久久久高清毛片一级 | 在线观看www91 | 日韩av成人在线观看 | 狠狠色丁婷婷日日 | 狠狠狠狠狠狠狠狠干 | zzijzzij亚洲日本少妇熟睡 | 日韩精品欧美视频 | 免费高清国产 | 久久久国产精品亚洲一区 | 99久久精品久久久久久清纯 | 国产麻豆果冻传媒在线观看 | 欧美在线视频一区二区三区 | 色先锋av资源中文字幕 | 亚洲精品综合一区二区 | 国产高清日韩欧美 | 中文字幕在线视频一区二区三区 | 热久久视久久精品18亚洲精品 | 国产亚洲精品成人av久久影院 | 日韩av在线一区二区 | 丁香视频五月 | 午夜精品剧场 | 亚洲黄色在线观看 | 国产美女精彩久久 | 亚洲国产精品va在线看 | 97av精品| 成人av一二三区 | 亚洲视频一区二区三区在线观看 | 精品96久久久久久中文字幕无 | 国产群p视频 | 国产精彩视频一区二区 | 国产精品毛片久久久久久 | 又色又爽又黄高潮的免费视频 | 日韩视频免费观看高清完整版在线 | 久久婷婷国产色一区二区三区 | 欧美性大战久久久久 | 久久国产精品久久精品国产演员表 | www.天天操.com | 亚洲视频播放 | 91人人爽人人爽人人精88v | 天天摸天天操天天爽 | 国产福利免费在线观看 | 久久视奸 | 九九久久久久久久久激情 | 亚洲影视九九影院在线观看 | 91一区啪爱嗯打偷拍欧美 | 久草在线 | 欧美日韩一区二区三区在线观看视频 | 亚洲高清视频一区二区三区 | 三上悠亚一区二区在线观看 | 日韩1级片 | 色5月婷婷| 久久久久久久久久久久久9999 | 久久精品这里热有精品 | 免费看的黄网站 | 91免费网站在线观看 | 激情开心网站 | 日韩系列 | 精品一二三四在线 | 国产在线播放一区 | 激情亚洲综合在线 | 欧美性黄网官网 | 欧美一区二区在线刺激视频 | 激情深爱.com | 黄网站色 | 黄色大片免费播放 | 午夜影院一级片 | 视频一区二区免费 | 国产精品毛片一区视频播 | 国产 视频 高清 免费 | 国产九九精品视频 | 九九久久久久久久久激情 | 成人一级视频在线观看 | 成人一区电影 | 99爱视频 | 激情视频网页 | 色a在线观看 | 精品国产片 | 国产在线观看二区 | 久久精品中文字幕 | 婷婷五月色综合 | 国产精品久久久一区二区三区网站 | 国内精品久久久久影院优 | www亚洲一区 | 成人黄色在线电影 | 综合网色 | 在线网址你懂得 | 国产成人久久精品 | 亚洲精品午夜久久久 | 久久 国产一区 | 日韩高清片 | 国产精品涩涩屋www在线观看 | 亚洲精选久久 | 久久97久久97精品免视看 | 欧美日韩国产伦理 | 在线视频一区二区 | 国产精品免费不 | 五月激情丁香婷婷 | 五月婷网站 | 91精品导航| 99久久9| 久久一久久 | 在线观看视频免费播放 | 91成版人在线观看入口 | 91在线区 | 国产麻豆视频免费观看 | 在线播放国产一区二区三区 | 国产少妇在线观看 | 国产成人av网 | 久草久热 | 九九在线视频 | 天天摸天天舔天天操 | 中文字幕av在线 | 深爱激情五月婷婷 | 人人dvd| 国产一级在线观看视频 | 91精品啪在线观看国产 | 91av官网| 欧美视频在线二区 | 美女在线免费观看视频 | www.久久色 | 亚洲综合视频在线观看 | 国产日本亚洲高清 | 亚洲精品视频在线免费播放 | 天天av在线播放 | 免费视频一区 | 99久热在线精品视频观看 | 伊人中文字幕在线 | 国产小视频福利在线 | 亚洲国产欧美在线人成大黄瓜 | 欧美在一区 | 天天综合网国产 | 少妇bbw揉bbb欧美 | 美州a亚洲一视本频v色道 | 日韩精品 在线视频 | 国产69精品久久久久久久久久 | 美女网站色 | 黄在线免费看 | 久久视| 日本九九视频 | 色婷婷狠 | 久久久久亚洲精品中文字幕 | 国产一区高清在线观看 | 91视频 - x99av | 国产精品6| 综合久久久久久久 | 在线播放 日韩专区 | 国产精品video | 999久久国产精品免费观看网站 | 亚洲一区免费在线 | 国产精品成人av电影 | 久久精品国产亚洲a | 国产永久免费观看 | 激情丁香月 | 日韩成人看片 | 亚洲欧美观看 | av福利网址导航 | 色婷婷综合五月 | 国产成人综合精品 | 久久久久久不卡 | 欧美做受高潮 | 午夜 在线 | 操操综合| 美女网站在线免费观看 | 国产永久免费 | 亚洲国产大片 | 日韩av网址在线 | 国产999精品久久久久久 | av品善网 | 国产一级一片免费播放放 | 国产精品高潮呻吟久久av无 | 免费亚洲一区二区 | 亚洲视频 一区 | 日日夜夜免费精品视频 | 日本久久成人中文字幕电影 | 91av免费在线观看 | 欧美超碰在线 | 久久国产剧场电影 | 亚洲成人免费 | 国产精品 日韩 欧美 | 国产色在线视频 | 狠狠躁日日躁夜夜躁av | 亚洲第一区在线播放 | 免费日韩一区 | 六月婷婷久香在线视频 | 五月婷婷影视 | 91c网站色版视频 | 亚洲人人精品 | 国产成人av免费在线观看 | 99精品国产高清在线观看 | 99免费在线播放99久久免费 | 国产免费久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 日韩免费高清在线 | 天天天操天天天干 | 91亚洲国产成人 | av大片免费看 | 午夜精品电影 | 午夜精品久久久久久久久久 | 成人影音在线 | 日韩网站在线 | 婷婷在线观看视频 | 国产黄色免费在线观看 | 国产在线观看网站 | 成年人免费在线看 | 免费观看不卡av | 国产aa免费视频 | 成人在线电影观看 | 亚洲精品视频第一页 | 91精品91 | 亚洲国产精品免费 | 日韩va欧美va亚洲va久久 | 国产精品av免费 | 国产又粗又猛又黄又爽的视频 | 深爱开心激情网 | 日韩一区正在播放 | 六月丁香激情综合色啪小说 | 午夜视频在线观看一区二区三区 | 特级毛片在线免费观看 | 天天添夜夜操 | 黄色资源在线观看 | 激情五月av | 91亚洲影院 | 久久人人爽人人爽人人片av免费 | 99久久网站 | 免费网站v | 在线亚洲日本 | 成人手机在线视频 | 不卡视频国产 | 91在线免费看片 | 国产免费资源 | 天堂黄色片 | 97超碰人人澡人人 | 国产成人久久精品 | 免费日韩电影 | 久久久久成人精品免费播放动漫 | 天天射天天搞 | 500部大龄熟乱视频 欧美日本三级 | 久久6精品 | 亚洲理论在线 | 婷婷视频 | 亚洲国产成人在线观看 | av最新资源 | 国产精品成人在线观看 | 日韩在线观| 国产91在线 | 美洲 | 97精品久久 | 成人av播放 | 亚洲一区二区三区精品在线观看 | 久久国产精品免费 | 欧美亚洲久久 | 九月婷婷综合网 | 最新av中文字幕 | 男女全黄一级一级高潮免费看 | 九草在线视频 | 91精品推荐| 久久精品美女视频 | 国产精品18videosex性欧美 | 色噜噜狠狠狠狠色综合 | 夜夜躁狠狠躁日日躁视频黑人 | 欧美激情精品一区 | 夜夜澡人模人人添人人看 | 亚洲欧美999| 天天干天天操天天操 | 中文网丁香综合网 | 欧美久久久久久久久 | 欧洲av在线 | 中文字幕日韩有码 | 精品一区二三区 | 丝袜美腿在线 | a黄在线观看 | 久久久亚洲精华液 | 天天艹日日干 | 久久综合免费视频 | 午夜视频一区二区三区 | 国产精品9999久久久久仙踪林 | 亚洲激情视频在线观看 | 黄色av一级片| 久久久久久中文字幕 | 日韩久久久 | 最新精品视频在线 | 国产午夜精品一区二区三区欧美 | 亚洲一区二区三区四区在线视频 | 色吊丝在线永久观看最新版本 | 久草免费资源 | 精品久久久免费 | 国产福利免费看 | 国产黄色一级片 | 色综合久久久久综合体桃花网 | 揉bbb玩bbb少妇bbb | 日韩精品一区二区在线观看视频 | 在线亚洲欧美视频 | 久久久久久久国产精品 | 亚洲电影久久久 | 久久婷婷精品 | 午夜精品区| 久久免费视频一区 | 久久精品视频网 | 欧美国产精品久久久久久免费 | 综合网伊人| 色五月成人 | 视频 天天草 | 日韩久久精品一区 | 天天色天天 | 91精品视频免费看 | 亚洲精品久久久久久中文传媒 | av丝袜天堂 | 97精品国产91久久久久久 | 色综合久 | 国产在线播放一区二区三区 | 九九热久久久 | 国产在线中文字幕 | 免费观看的黄色 | 91福利社在线观看 | 毛片一区二区 | 最近免费中文视频 | 99精品热视频 | 六月婷操 | 99视频在线看 | 国产精品少妇 | 国产精品视频观看 | 91麻豆精品国产91久久久无需广告 | 婷婷色综合 | 天天干天天操天天 | 91人人揉日日捏人人看 | 久久国语| 亚洲色视频 | 激情综合五月网 | 99久久精品无免国产免费 | 青青河边草手机免费 | 免费高清在线视频一区· | 精品久久久一区二区 | 亚洲精品777 | 国产精品女主播一区二区三区 | 久草视频免费播放 | 8x成人免费视频 | 国产精品免费小视频 | 91黄色在线视频 | 黄色网在线免费观看 | 久久久久久不卡 | 一区二区三区动漫 | 高清日韩一区二区 | 天天射天天操天天干 | 久久夜av | 免费黄在线看 | 久视频在线播放 | 探花国产在线 | 97夜夜澡人人双人人人喊 | 久久在线影院 | 久久成人午夜 | 奇米导航 | 一区二区精品国产 | 五月天激情视频在线观看 | 精品视频9999 | 国产专区视频在线 | 天堂在线免费视频 | 91精品啪在线观看国产 | 97色综合 | 久精品在线 | 国语麻豆| 天天操天天草 | 99精品视频99 | 一级黄色av | 精品国产一区二区三区男人吃奶 | 久久成人高清视频 | 麻豆免费精品视频 | 国产精品久久视频 | 国产婷婷精品av在线 | 久久成视频| 久久免费的精品国产v∧ | 国产精品久久久久久婷婷天堂 | 成人三级网站在线观看 | 国产精品嫩草影视久久久 | 久草视频免费观 | 精品99在线观看 | 久久国产精品99国产 | jizz999| 日产中文字幕 | 97超碰精品 | 国产精品 久久 | 在线视频1卡二卡三卡 | 狠狠躁夜夜a产精品视频 | 91在线成人| 日本在线视频一区二区三区 | 黄色av电影一级片 | 成人在线免费视频观看 | 五月开心综合 | 九九免费观看全部免费视频 | 91精品成人久久 | .国产精品成人自产拍在线观看6 | 国产资源中文字幕 | 日韩精品一区在线观看 | 亚洲欧洲精品视频 | 一区二区三区电影大全 | 最新av免费| 在线视频观看亚洲 | 99国产精品免费网站 | 波多野结衣在线观看一区 | 日本午夜在线观看 | 久久久久女教师免费一区 | 亚洲综合涩 | 亚洲区另类春色综合小说校园片 | 六月丁香激情综合 | 亚洲国产综合在线 | 在线免费观看黄 | 81国产精品久久久久久久久久 | av日韩精品 | 久久r精品 | 伊人一级 | 日本久久中文 | 综合色狠狠 | 日韩v欧美v日本v亚洲v国产v | 久久综合婷婷国产二区高清 | 婷婷精品国产欧美精品亚洲人人爽 | 黄色亚洲精品 | 国产成人黄色片 | 色综合中文综合网 | 久草在线免费看视频 | 久久国产精品99久久久久久老狼 | av在线h | 精品亚洲免费 | 成人午夜毛片 | 亚洲综合网站在线观看 | 一区二区视频免费在线观看 | 最新国产中文字幕 | av高清影院| 国产在线久草 | 五月婷婷一级片 | 婷婷六月色 | 免费亚洲片 | 国产精品久久久久久高潮 | 伊人狠狠色丁香婷婷综合 | 超碰97在线资源站 | 免费视频网 | 亚洲精品9 | 午夜精品福利一区二区三区蜜桃 | 婷婷资源站 | 综合色婷婷 | 美女网站在线播放 | 久久久影院一区二区三区 | 午夜久久美女 | 天天色图 | av资源免费在线观看 | 久久久久久99精品 | 婷婷色 亚洲 | 久久精品久久久久电影 | 不卡的一区二区三区 | 伊香蕉大综综综合久久啪 | 911久久 | 亚洲国产精品500在线观看 | 欧美福利视频一区 | 99色在线播放| 国际av在线 | 国产精品福利视频 | 国产成人精品免高潮在线观看 | 天天操天天吃 | 色是在线视频 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 在线免费观看亚洲视频 | 国产色视频123区 | 国产精品国产亚洲精品看不卡15 | 园产精品久久久久久久7电影 | 伊人www22综合色 | 久久久999免费视频 日韩网站在线 | 成人三级网站在线观看 | 狠狠操综合网 | www国产亚洲精品久久网站 | 亚洲精品乱码久久久久久蜜桃动漫 | 日韩免费三区 | 九九免费在线看完整版 |