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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Linux那些事儿 之 戏说USB(大结局)还是那个match

發(fā)布時間:2023/11/27 生活经验 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux那些事儿 之 戏说USB(大结局)还是那个match 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
從上次在幾米的向左走向右走遇到usb總線的那個match函數(shù)usb_device_match()開始到現(xiàn)在,遇到了設(shè)備,遇到了設(shè)備驅(qū)動,遇到了接口,也遇到了接口驅(qū)動,期間還多次遇到usb_device_match()。
每個設(shè)備也都有一條共同之路,與hub初戀,失身于usb_generic_driver,嫁給了接口驅(qū)動,被usb總線保養(yǎng)。設(shè)備沒有真正自由過,剛開始時在Default狀態(tài)動彈不得,稍后步入Address,無論外頭風(fēng)光多好,都得與usb_generic_driver長廂廝守,沒得選擇,終于達(dá)到了Configured,又必須為自己的接口殫精竭慮,以便usb_device_match()能夠?yàn)樗鼈冋乙粋€好人家。
不管怎么說,在這里我們會再次與usb_device_match()相遇,看看它怎么在接口和驅(qū)動之間搭起那座橋。
static int usb_device_match(struct device *dev, struct device_driver *drv)
{/* devices and interfaces are handled separately */if (is_usb_device(dev)) {/* interface drivers never match devices */if (!is_usb_device_driver(drv))return 0;/* TODO: Add real matching code */return 1;} else if (is_usb_interface(dev)) {struct usb_interface *intf;struct usb_driver *usb_drv;const struct usb_device_id *id;/* device drivers never match interfaces */if (is_usb_device_driver(drv))return 0;intf = to_usb_interface(dev);usb_drv = to_usb_driver(drv);id = usb_match_id(intf, usb_drv->id_table);if (id)return 1;id = usb_match_dynamic_id(intf, usb_drv);if (id)return 1;}return 0;
}
設(shè)備那條路已經(jīng)走過了,現(xiàn)在走走13行接口那條路。19行,接口驅(qū)動的for_devices在usb_register _driver()里被初始化為0,所以這個把門兒的會痛痛快快的放行,繼續(xù)往下走,22行,遇到一對兒似曾相識的宏to_usb_interface和to_usb_driver,之所以說似曾相識,是因?yàn)樵缦纫呀?jīng)遇到過一對兒to_usb_device和to_usb_device_driver。這兩對兒一對兒用于接口和接口驅(qū)動,一對兒用于設(shè)備和設(shè)備驅(qū)動,意思都很直白,還是看看include/linux/usb.h里的定義
#define	to_usb_interface(d) container_of(d, struct usb_interface, dev)
#define	to_usb_driver(d) container_of(d, struct usb_driver, drvwrap.driver)
再往下走,就是兩個函數(shù)usb_match_id和usb_match_dynamic_id,它們都是用來完成實(shí)際的匹配工作的,只不過前一個是從驅(qū)動的id_table里找,看接口是不是被驅(qū)動所支持,后一個是從驅(qū)動的動態(tài)id鏈表dynids里找。驅(qū)動的id表分id_table和dynids兩種。顯然25~31這幾行的意思就是將id_table放在一個比較高的優(yōu)先級的位置,從它里面找不到接口了才再從動態(tài)id鏈表里找。
當(dāng)時講到struct usb_driver結(jié)構(gòu)的時候并沒有詳細(xì)講它里面表示動態(tài)id的那個結(jié)構(gòu)體struct usb_dynids,但是做人要厚道,不能太CCTV,所以現(xiàn)在補(bǔ)充一下,這個結(jié)構(gòu)的定義在include/linux/usb.h里
struct usb_dynids {spinlock_t lock;struct list_head list;
};
它只有兩個字段,一把鎖,一個鏈表,都是在usb_register _driver()里面初始化的,這個list是驅(qū)動動態(tài)id鏈表的頭兒,它里面的每個節(jié)點(diǎn)是用另外一個結(jié)構(gòu)struct usb_dynid來表示
struct usb_dynid {struct list_head node;struct usb_device_id id;
};
這里面就出現(xiàn)了一個struct usb_device_id結(jié)構(gòu)體,也就是設(shè)備的id,每次添加一個動態(tài)id,就會向驅(qū)動的動態(tài)id鏈表里添加一個struct usb_dynid結(jié)構(gòu)體。你現(xiàn)在應(yīng)該可以想像到usb_match_id和usb_match_dynamic_id這兩個函數(shù)除了查找的地方不一樣,其它應(yīng)該是沒什么差別的。所以接下來咱們只深入探討一下usb_match_id函數(shù),至于usb_match_dynamic_id(),如果你實(shí)在無聊暫時找不到人生目標(biāo)也可以去看看。它們都在driver.c里定義
const struct usb_device_id *usb_match_id(struct usb_interface *interface,const struct usb_device_id *id)
{/* proc_connectinfo in devio.c may call us with id == NULL. */if (id == NULL)return NULL;/* It is important to check that id->driver_info is nonzero,since an entry that is all zeroes except for a nonzeroid->driver_info is the way to create an entry thatindicates that the driver want to examine everydevice and interface. */for (; id->idVendor || id->idProduct || id->bDeviceClass ||id->bInterfaceClass || id->driver_info; id++) {if (usb_match_one_id(interface, id))return id;}return NULL;
}
5行,參數(shù)id指向的是驅(qū)動的那個設(shè)備花名冊,即id_table,如果它為空,那肯定就是不可能會匹配成功了。
13行,你可能會問為什么這里不詳細(xì)介紹一下struct usb_device_id結(jié)構(gòu),主要是《我是U盤里》已經(jīng)說得非常之詳細(xì)和有趣了,俺這里實(shí)在沒必要耗費(fèi)時間和口舌去說它,另一方面,它里面的那些元素都相當(dāng)?shù)谋┞逗椭卑?#xff0c;我相信依你的智商一眼就能明白個八九不離十。
那么這個for循環(huán)就是輪詢設(shè)備花名冊里的每個設(shè)備,如果符合了條件id->idVendor || id->bDeviceClass || id->bInterfaceClass || id->driver_info,就調(diào)用函數(shù)usb_match_one_id做深層次的匹配。本來,在動態(tài)id出現(xiàn)之前這個地方是沒有usb_match_one_id這么一個函數(shù)的,所有的匹配都在這個for循環(huán)里直接做了,但是動態(tài)id出現(xiàn)之后,同時出現(xiàn)了前面提到的usb_match_dynamic_id函數(shù),要在動態(tài)id鏈表里做同樣的匹配,這就要避免代碼重復(fù),于是就將那些重復(fù)的代碼提出來,組成了usb_match_one_id函數(shù)。
for循環(huán)的條件里可能出現(xiàn)的一種情況是,id的其它字段都為空,只有driver_info字段有實(shí)實(shí)在在的內(nèi)容,這種情況下匹配是肯定成功的,不信的話等會兒你可以看usb_match_one_id(),這種驅(qū)動對usb接口來說是比較隨便的那種,不管啥接口都能和她對得上眼,為什么會出現(xiàn)這種情況?咱們已經(jīng)知道,匹配成功后,接著就會調(diào)用驅(qū)動自己的probe函數(shù),驅(qū)動在它里面還會對接口做進(jìn)一步的檢查,如果真出現(xiàn)了這里所說的情況,意思也就是驅(qū)動將所有的檢查接口,和接口培養(yǎng)感情的步驟都攬?jiān)谧约旱膒robe函數(shù)里了,它會在那個時候?qū)river_info的內(nèi)容取出來,然后想怎么處理就怎么處理,本來么,id里邊兒的driver_info就是給驅(qū)動保存數(shù)據(jù)用的。
還是看看usb_match_one_id()究竟是怎么匹配的吧,定義也在driver.c里
int usb_match_one_id(struct usb_interface *interface,const struct usb_device_id *id)
{struct usb_host_interface *intf;struct usb_device *dev;/* proc_connectinfo in devio.c may call us with id == NULL. */if (id == NULL)return 0;intf = interface->cur_altsetting;dev = interface_to_usbdev(interface);if (!usb_match_device(dev, id))return 0;return usb_match_one_id_intf(dev, intf, id);
}
8行,這個id指向的就是驅(qū)動id_table里的某一項(xiàng)了。
11行,獲得接口采用的設(shè)置,設(shè)置里可是有接口描述符的,要匹配接口和驅(qū)動,接口描述符里的信息是必不可少的。
12行,從接口的struct usb_interface結(jié)構(gòu)體獲得usb設(shè)備的struct usb_device結(jié)構(gòu)體,interface_to_usbdev的定義在include/linux/usb.h里
#define	to_usb_device(d) container_of(d, struct usb_device, dev)static inline struct usb_device *interface_to_usbdev(struct usb_interface *intf)
{return to_usb_device(intf->dev.parent);
}
usb設(shè)備和它里面的接口是怎么關(guān)聯(lián)起來的呢?就是上面的那個parent,接口的parent早在usb_generic_driver的generic_probe函數(shù)向設(shè)備模型提交設(shè)備里的每個接口的時候就被初始化好了,而且指定為接口所在的那個usb設(shè)備。這么一回顧,interface_to_usbdev的意思就很明顯了。
14行,這里又冒出來個usb_match_device(),接口和驅(qū)動之間的感情還真不是那么好培養(yǎng)的,一層一層的。不過既然存在就是有來頭的,它也不會毫無根據(jù)的出現(xiàn),這里雖說是在接口和接口驅(qū)動之間匹配,但是接口的parent也是必須要符合條件的,這即合情也合理啊,你好不容易鼓足了勇氣向一個走在大街上一見鐘情的mm表白,你覺得mm的第一反應(yīng)是什么?依照行規(guī),很可能就是:你爸是干嗎的?是大款么?是當(dāng)官的么?你要說不,那就別等第二反應(yīng)了。所以說接口要想得到驅(qū)動的芳心,自己的parent符合驅(qū)動的條件也是很重要的,usb_match_device()就是專門來匹配接口parent的。同樣在driver.c里定義
int usb_match_device(struct usb_device *dev, const struct usb_device_id *id)
{if ((id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) &&id->idVendor != le16_to_cpu(dev->descriptor.idVendor))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_PRODUCT) &&id->idProduct != le16_to_cpu(dev->descriptor.idProduct))return 0;/* No need to test id->bcdDevice_lo != 0, since 0 is nevergreater than any unsigned number. */if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_LO) &&(id->bcdDevice_lo > le16_to_cpu(dev->descriptor.bcdDevice)))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_HI) &&(id->bcdDevice_hi < le16_to_cpu(dev->descriptor.bcdDevice)))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_CLASS) &&(id->bDeviceClass != dev->descriptor.bDeviceClass))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_SUBCLASS) &&(id->bDeviceSubClass != dev->descriptor.bDeviceSubClass))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) &&(id->bDeviceProtocol != dev->descriptor.bDeviceProtocol))return 0;return 1;
}
這個函數(shù)采用了排比的修辭手法,美觀的同時也增加了可讀性。這一個個的if條件里都有一部分是將id 的match_flags和一個宏相與,所以弄明白match_flags的意思就很關(guān)鍵。罷了罷了,本來說不再浪費(fèi)口舌在id里的那些字段上了,不過為了減少你驀然回首的次數(shù),這里再說一下這個match_flags。
驅(qū)動的花名冊里每個設(shè)備都對應(yīng)了一個struct usb_device_id結(jié)構(gòu)體,這個結(jié)構(gòu)體里有很多字段,都是驅(qū)動設(shè)定好的條條框框,接口必須完全滿足里面的條件才能夠被驅(qū)動所接受,所以說匹配的過程就是檢查接口是否滿足這些條件的過程。
當(dāng)然你可以每次都按照id的內(nèi)容一個一個的比較下去,但是經(jīng)常來說,一個驅(qū)動往往只是想設(shè)定其中的某幾項(xiàng),并不要求struct usb_device_id結(jié)構(gòu)里的所有那些條件都要滿足。match_flags就是為了方便各種各樣的需求而生的,驅(qū)動可以將自己的條件組合起來,match_flags的每一位對應(yīng)一個條件,驅(qū)動care哪個條件了,就將那一位置1,否則就置0。當(dāng)然,內(nèi)核里對每個驅(qū)動可能會care的條件都定義成了宏,供驅(qū)動去組合,它們都在include/linux/mod_devicetable.h里定義
#define USB_DEVICE_ID_MATCH_VENDOR		0x0001
#define USB_DEVICE_ID_MATCH_PRODUCT		0x0002
#define USB_DEVICE_ID_MATCH_DEV_LO		0x0004
#define USB_DEVICE_ID_MATCH_DEV_HI		0x0008
#define USB_DEVICE_ID_MATCH_DEV_CLASS		0x0010
#define USB_DEVICE_ID_MATCH_DEV_SUBCLASS	0x0020
#define USB_DEVICE_ID_MATCH_DEV_PROTOCOL	0x0040
#define USB_DEVICE_ID_MATCH_INT_CLASS		0x0080
#define USB_DEVICE_ID_MATCH_INT_SUBCLASS	0x0100
#define USB_DEVICE_ID_MATCH_INT_PROTOCOL	0x0200
你用自己的火眼金睛很容易的就能看出來這些數(shù)字分別表示了一個u16整數(shù),也就是match_flags中的某一位。驅(qū)動比較在意哪個方面,就可以將match_flags里對應(yīng)的位置1,在和接口匹配的時候自動就會去比較驅(qū)動設(shè)置的那個條件是否滿足。那整個usb_match_device()函數(shù)就沒什么說的了,就是從match_flags那里得到驅(qū)動都在意哪些條件,然后將設(shè)備保存在自己描述符里的自身信息與id里的相應(yīng)條件進(jìn)行比較,有一項(xiàng)比較不成功就說明匹配失敗,如果一項(xiàng)符合了就接著看下一項(xiàng),接口parent都滿足條件了,就返回1,表示匹配成功了。

還是回到usb_match_one_id()繼續(xù)往下看,假設(shè)你運(yùn)氣還不錯,parent滿足了驅(qū)動的所有條件,那就調(diào)用函數(shù)usb_match_one_id_intf

int usb_match_one_id_intf(struct usb_device *dev,struct usb_host_interface *intf,const struct usb_device_id *id)
{/* The interface class, subclass, protocol and number should never be* checked for a match if the device class is Vendor Specific,* unless the match record specifies the Vendor ID. */if (dev->descriptor.bDeviceClass == USB_CLASS_VENDOR_SPEC &&!(id->match_flags & USB_DEVICE_ID_MATCH_VENDOR) &&(id->match_flags & (USB_DEVICE_ID_MATCH_INT_CLASS |USB_DEVICE_ID_MATCH_INT_SUBCLASS |USB_DEVICE_ID_MATCH_INT_PROTOCOL |USB_DEVICE_ID_MATCH_INT_NUMBER)))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_CLASS) &&(id->bInterfaceClass != intf->desc.bInterfaceClass))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_SUBCLASS) &&(id->bInterfaceSubClass != intf->desc.bInterfaceSubClass))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_PROTOCOL) &&(id->bInterfaceProtocol != intf->desc.bInterfaceProtocol))return 0;if ((id->match_flags & USB_DEVICE_ID_MATCH_INT_NUMBER) &&(id->bInterfaceNumber != intf->desc.bInterfaceNumber))return 0;return 1;
}
8行。這行的意思是,如果接口的parent,usb設(shè)備是屬于廠商定義的class,也就是不屬于storage等等標(biāo)準(zhǔn)的class,就不再檢查接口的class,subclass和protocol了,除非match_flags里指定了條件USB_DEVICE_ID_MATCH_VENDOR。16行之后的三個if也不用多說,前面是檢查接口parent的,這里就是檢查接口本身是不是滿足驅(qū)動的條件的。

當(dāng)上面各個函數(shù)進(jìn)行的所有檢查都完全匹配時,usb總線的match函數(shù)usb_device_match就會返回1表示匹配成功,之后接著就會去調(diào)用驅(qū)動的probe函數(shù)做更深入的處理,什么樣的處理?這是每個驅(qū)動才知道的事情,反正到此為止,core的任務(wù)是已經(jīng)圓滿完成了,咱們的故事也就該結(jié)束了。

這個core的故事,從match開始,到match結(jié)束,它雖說不會遍及core的邊邊角角所有部分,但應(yīng)該也有那么十之七八。在match的兩端是設(shè)備和設(shè)備的驅(qū)動,是接口和接口的驅(qū)動,這個故事里遇到的人,遇到的事,早就安排在那里了,由不得我們?nèi)ミx擇。在人生的路口上,早已經(jīng)安排了那些人,那些事,決定你向左走還是向右走。既然如此,那就隨便走好了,想那么多干什么呢?

總結(jié)

以上是生活随笔為你收集整理的Linux那些事儿 之 戏说USB(大结局)还是那个match的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产精品网红直播 | 草久久久久 | 天天色天天操综合 | 久久新视频 | 精品欧美在线视频 | 欧美日韩一区二区三区视频 | 日日夜夜狠狠干 | 日本护士撒尿xxxx18 | 久久中国精品 | 亚洲区二区 | 午夜国产成人 | 正在播放国产一区二区 | 亚洲精品在线免费观看视频 | 久久免费视频这里只有精品 | 日韩一二区在线观看 | 99久久99久久精品免费 | 成人午夜剧场在线观看 | 日韩免费在线网站 | 日韩欧美高清 | www.夜色.com| 久久国产99 | 久久1电影院 | 亚洲网站在线 | 国产欧美最新羞羞视频在线观看 | www.黄色| 99久久影视| 97小视频 | 成人av地址| 天天爱天天射 | 91桃色国产在线播放 | 久久久国产精品免费 | 狠狠做深爱婷婷综合一区 | 草久久久久 | 亚洲精品一区二区久 | 99久在线精品99re8热视频 | 欧美性黑人 | 亚洲精品国产精品国自产观看 | 免费电影一区二区三区 | www欧美xxxx | 不卡中文字幕在线 | 亚洲精品美女久久 | 在线观看亚洲成人 | 亚洲va综合va国产va中文 | 91九色蝌蚪视频网站 | 国产91学生粉嫩喷水 | 午夜在线观看 | 黄色三级在线 | 久久五月网 | 国产精品久久久久久久久久久久 | 在线观看免费成人 | 亚洲精品网址在线观看 | 精品视频免费久久久看 | 亚洲爱视频 | 免费中文字幕 | 国产精品欧美日韩在线观看 | 国产成人av综合色 | 国产精品黄色影片导航在线观看 | 久久国产免费视频 | 91在线免费视频 | 成人a v视频 | 狠狠干网 | 国产日韩精品在线 | 国产精品美女999 | 国产福利在线 | 久久国产精品免费观看 | 欧美 日韩 国产 成人 在线 | 日韩三级中文字幕 | 五月婷婷丁香 | 国产精品欧美日韩在线观看 | 日韩在线不卡视频 | 精品夜夜嗨av一区二区三区 | 日本护士撒尿xxxx18 | 国产精品高清一区二区三区 | 久久99久久99精品免观看软件 | 四虎影视av | 久久狠狠亚洲综合 | av在线电影网站 | 草樱av| 久久久久国产成人免费精品免费 | 在线观看一区 | 一区三区在线欧 | 国产一区二区三区在线免费观看 | 久久tv视频 | 亚洲精品小视频 | 美女性爽视频国产免费app | 久久精品欧美 | 在线播放第一页 | 久久久久久久久久久免费视频 | 激情婷婷在线 | 欧美一级免费黄色片 | 久草久视频 | 中文字幕av在线不卡 | 国产精品黄网站在线观看 | 伊人狠狠色 | 亚洲一区二区麻豆 | 天天插狠狠干 | 久久国产影视 | 国产特级毛片aaaaaa毛片 | 国产精品一区二区久久精品爱微奶 | 成人av电影免费观看 | 日韩中文在线字幕 | 免费看片网站91 | 丁香婷婷网 | 一区 在线 影院 | 亚洲精品xxx | 日韩免费观看一区二区 | 国产午夜激情视频 | 日韩特黄一级欧美毛片特黄 | 婷婷久久综合九色综合 | 91视频 - x99av | 97偷拍视频 | 啪啪动态视频 | 激情电影影院 | 最新av电影网站 | 久久免费精品视频 | 99热国产在线中文 | 久久人人97超碰国产公开结果 | 中文字幕专区高清在线观看 | 亚洲男男gaygay无套同网址 | 探花视频免费观看高清视频 | 9999免费视频 | 亚洲日本中文字幕在线观看 | 久久97精品 | 极品中文字幕 | 手机成人在线 | 精品主播网红福利资源观看 | 在线成人欧美 | 国产在线高清视频 | 亚洲精品福利在线 | 999抗病毒口服液 | 国产高清网站 | 日韩欧美精品在线视频 | 色噜噜狠狠狠狠色综合久不 | 久久久精品国产一区二区 | 91九色国产在线 | 99在线热播精品免费99热 | 91亚洲激情| 免费精品视频在线 | 国产不卡在线观看 | 免费a级观看 | 国产精品视频永久免费播放 | 久久久久国产精品www | 中文字幕一区二区在线观看 | 久久久久久片 | 国产精品一区二区久久 | 99爱视频在线观看 | 久久新 | 超碰97免费观看 | 亚洲一二三久久 | 精品国产一区二区久久 | 国产美女视频免费观看的网站 | 在线国产能看的 | 国产一级片一区二区三区 | 狠狠操欧美 | 久久伊人综合 | 欧美日韩中文字幕综合视频 | 久久久久久久久久久久av | 国产玖玖视频 | 88av网站| 麻豆视频观看 | 国产精品国产三级国产aⅴ无密码 | 九九视频免费在线观看 | 视频在线观看一区 | 日韩av成人免费看 | 婷婷六月网| 色丁香综合 | 99久久99久久免费精品蜜臀 | 久久综合久久久 | 亚洲精品ww | 在线观看涩涩 | www操操 | 亚洲人视频在线 | 69绿帽绿奴3pvideos | 日韩在线视频观看免费 | 激情五月婷婷综合网 | 97偷拍视频 | 亚洲黄色片 | 成人精品一区二区三区中文字幕 | 在线一二三四区 | av天天色| av在线免费在线观看 | 亚洲精品在线观看免费 | 日本韩国精品一区二区在线观看 | 国产精品一区二区吃奶在线观看 | 96超碰在线 | 色黄久久久久久 | 349k.cc看片app | 免费看黄在线看 | 91视视频在线直接观看在线看网页在线看 | 日韩美女免费线视频 | 黄色在线成人 | 久久国产一区二区 | 色视频国产直接看 | 国产精品理论片在线观看 | 亚洲精品看片 | 免费色视频网站 | 国产精品视频999 | 国产成人在线综合 | 久久伊人精品一区二区三区 | 青青网视频 | 天天射天天干 | 欧美日韩不卡在线观看 | 99久高清在线观看视频99精品热在线观看视频 | 天天色综合天天 | 九九免费观看全部免费视频 | 国产亚洲精品久久久久久久久久久久 | 国产在线不卡视频 | 91一区啪爱嗯打偷拍欧美 | 日韩精品免费在线 | 日本在线观看一区二区 | 久热免费 | 黄色三级免费网址 | 精品主播网红福利资源观看 | 精品久久一区二区三区 | 国产精品久久久久久久婷婷 | 久久免费视频网站 | www.91成人 | 亚洲精品国偷自产在线91正片 | 黄色高清视频在线观看 | 香蕉影视在线观看 | 国产成人777777 | 91久久丝袜国产露脸动漫 | 亚洲视频六区 | 97超碰在线资源 | 久热香蕉视频 | 天天激情 | av高清一区二区三区 | 日韩激情视频在线 | 免费观看性生交 | 成人免费视频a | 在线播放国产精品 | 国产精品久久久久永久免费看 | 96精品视频 | 婷婷电影在线观看 | 久久综合亚洲鲁鲁五月久久 | 一区二区中文字幕在线 | 久久不卡国产精品一区二区 | 九九热国产| 亚洲精品小区久久久久久 | 日韩电影在线观看一区 | 日本黄区免费视频观看 | 国产精品 日韩精品 | 国产国产人免费人成免费视频 | 99爱精品在线 | 鲁一鲁影院 | 日韩av网站在线播放 | 中文字幕免费一区 | 亚洲精品综合一区二区 | 亚洲精品久久久久久久蜜桃 | 国产美女精品人人做人人爽 | 99久久99久久精品国产片 | 西西444www大胆高清图片 | 欧美性视频网站 | 久久福利| 免费男女网站 | 久久激情五月婷婷 | av成人在线播放 | 黄网站污 | 欧洲av不卡 | 九九热视频在线播放 | 久久久人人爽 | 99视频在线精品免费观看2 | 韩日三级在线 | 97成人在线免费视频 | 久久亚洲精品电影 | 国产综合视频在线观看 | 国产99久 | 国产高清绿奴videos | www黄免费| 欧美国产91 | 欧美日韩三级 | 天天草天天摸 | 欧美精品久久久久久久亚洲调教 | 五月在线 | 亚洲精品国产精品国 | 一级特黄aaa大片在线观看 | 一区二区三区四区免费视频 | 中文字幕精品www乱入免费视频 | 日日爽天天爽 | 97精品视频在线播放 | 精品国产电影一区 | www欧美色 | 九色porny真实丨国产18 | 欧美一区二区精美视频 | 国产免费亚洲 | 狠狠狠色丁香综合久久天下网 | 天天爽天天摸 | 免费视频xnxx com | 日韩av手机在线看 | 午夜精品99久久免费 | 美女免费黄视频网站 | 99久久精品国产亚洲 | 色干综合| 视频一区二区三区视频 | 黄色免费视频在线观看 | 国产一级淫片免费看 | 午夜国产福利在线 | 国产精品综合av一区二区国产馆 | 日韩在线视频网 | 国产精品久久久 | av免费观看网址 | 久久国产亚洲 | 黄色av网站在线观看免费 | 久久亚洲欧美日韩精品专区 | 九九热在线观看 | 国产精品五月天 | 亚洲精品国偷拍自产在线观看蜜桃 | 精品国产一区二区三区久久久久久 | 欧美粗又大 | 日本丰满少妇免费一区 | 亚洲激情在线播放 | 久久狠狠一本精品综合网 | 精品久久久久久久久久久院品网 | 91丨九色丨蝌蚪丰满 | 午夜色性片| 亚洲天天综合网 | 亚洲精品国产品国语在线 | 国产成人a亚洲精品 | 国产不卡一二三区 | 日韩四虎 | 婷婷综合导航 | 日韩激情视频在线 | 天天爱综合 | 国产精品一区二区三区观看 | 麻豆视频免费网站 | 国产麻豆视频在线观看 | 国内久久| 亚洲毛片在线观看. | 91久久久久久久 | 欧美在一区| 国产色拍拍拍拍在线精品 | 91九色网址 | 综合久久精品 | 99热这里是精品 | 欧美在线视频日韩 | 99精品视频在线播放观看 | 精品自拍网 | 韩国av免费在线 | 亚洲色图美腿丝袜 | 久草在线免费资源 | 国产流白浆高潮在线观看 | 久久国产精品色婷婷 | 中文字幕一区二区三区在线播放 | 亚洲视频在线看 | 日韩精品不卡在线观看 | 中文一区在线 | 国产午夜激情视频 | 精品国产黄色片 | 黄色小说网站在线 | 999久久国精品免费观看网站 | 午夜精品久久久久久久99水蜜桃 | 日韩精品一区二区三区中文字幕 | 免费看的国产视频网站 | 99热在线国产精品 | 亚洲永久精品一区 | 久久婷婷五月综合色丁香 | 亚洲一区动漫 | 综合色久 | 亚洲精品国产免费 | 免费涩涩网站 | 99亚洲国产 | 久久精品视频一 | 欧美极品少妇xbxb性爽爽视频 | 久久综合干| 色中色亚洲 | 日本中文字幕影院 | 国产精品久久久毛片 | 最近中文字幕国语免费高清6 | 国内精品久久久久久久 | 亚洲天堂社区 | 最近中文字幕视频网 | 日本在线观看一区 | 亚洲成色777777在线观看影院 | 日韩高清激情 | 亚洲va欧美va人人爽 | 天天操天天是 | 深夜免费福利网站 | 嫩草伊人久久精品少妇av | 人人看人人草 | 欧美做受高潮电影o | 精品一区久久 | 欧美日韩大片在线观看 | 在线电影播放 | 欧美成人精品欧美一级乱黄 | 免费看一级黄色 | 激情久久综合 | 欧美黄色成人 | 免费中文字幕视频 | 国产做a爱一级久久 | 操夜夜操| 8x成人免费视频 | 亚洲午夜av电影 | 日黄网站 | 久久久鲁 | 欧美精品亚洲精品日韩精品 | 又黄又网站 | 视频二区在线视频 | 一级大片在线观看 | 美女福利视频一区二区 | 天天爽天天碰狠狠添 | 久久婷婷色综合 | 成人av手机在线 | 天天射,天天干 | 91伊人影院| 免费国产视频 | 高清色免费 | 色欧美日韩 | 天天干夜夜干 | 在线观看岛国片 | 成人免费视频网址 | 激情久久影院 | 韩国精品一区二区三区六区色诱 | 久久久这里有精品 | 最新av在线免费观看 | 久久撸在线视频 | 婷婷色综合色 | 2019中文最近的2019中文在线 | 91.精品高清在线观看 | 九九导航 | 综合精品久久久 | 九九九免费视频 | 日本高清中文字幕有码在线 | 国产精品久久久久婷婷二区次 | 中文在线√天堂 | 欧美伦理一区 | 91丨九色丨高潮丰满 | 精品国内自产拍在线观看视频 | 爱爱av在线 | 一区二区三区三区在线 | 最新中文字幕在线资源 | 国产在线精品区 | www.香蕉| 久久精品老司机 | 蜜臀久久99精品久久久无需会员 | 麻豆国产电影 | 亚洲精品免费在线播放 | 国产精品一区二区62 | 久久久久美女 | 欧产日产国产69 | 亚洲激情婷婷 | 日韩av一区二区三区 | 国产欧美精品一区二区三区 | 久久九九网站 | 日韩欧美在线免费观看 | 国产精品久久电影网 | 超碰97免费 | 久久97精品 | 久久久免费观看视频 | 国产中文字幕在线播放 | 日韩在线字幕 | 免费看片在线观看 | 久久精品123 | 中文字幕在线观看视频一区 | 成人a毛片 | 久久99国产综合精品免费 | 不卡中文字幕在线 | 精品久久久久久久久久久久 | 免费av网址在线观看 | 天堂黄色片 | 久久久久免费网站 | 免费在线观看中文字幕 | 91久久丝袜国产露脸动漫 | 中日韩欧美精彩视频 | 日本精品视频免费观看 | 四虎最新入口 | 丰满少妇久久久 | 久久久久久久久久久网站 | 在线最新av | 伊人狠狠色 | 免费av网站在线看 | 日韩国产高清在线 | 成年人电影免费看 | 久久精品国产成人 | 亚洲综合在线一区二区三区 | 国产精品11 | 福利片免费看 | 丁香五婷 | 91激情视频在线播放 | 91视频这里只有精品 | 久久综合色播五月 | 亚洲视屏在线播放 | 国产成人久久 | 久久99久久99 | 精品二区视频 | 久久福利影视 | 日韩国产欧美视频 | 日韩免费中文字幕 | 亚洲一区二区三区四区在线视频 | 久久一区精品 | 丁香色婷婷 | 日本在线观看视频一区 | 色播五月激情五月 | 激情五月色播五月 | 日韩精品第1页 | 日韩电影一区二区在线 | 四虎小视频 | 日本精品一区二区三区在线播放视频 | 国产精品国内免费一区二区三区 | 日韩专区在线观看 | 天堂网av 在线 | 国产中文字幕在线播放 | 97精品久久人人爽人人爽 | 在线观看国产日韩欧美 | 国语麻豆 | 99国产精品一区二区 | 久久色中文字幕 | 国产精品女| 日韩欧美视频在线观看免费 | 国产精品每日更新 | 国产成人av综合色 | 激情五月综合网 | 99视频精品免费视频 | 91丨九色丨勾搭 | 久爱综合 | 免费在线观看av网址 | 在线免费91| 99在线免费观看视频 | 中文字幕高清视频 | 久久国产经典 | 久久久久久久久久久综合 | 免费精品视频 | 91九色porny蝌蚪视频 | 香蕉在线视频观看 | 亚洲三级影院 | 日韩av图片 | 国产亚洲精品av | 麻豆果冻剧传媒在线播放 | 色视频网址 | 天天综合网国产 | 国产亚洲人| 丝袜av一区 | 黄色av大片| 日韩一区在线免费观看 | 欧美日韩国产精品一区二区亚洲 | 日韩在线网址 | 香蕉国产91 | 亚洲最大av在线播放 | 久久免费黄色网址 | 日日日网| 婷婷六月天在线 | 久久亚洲美女 | 亚洲精品1区2区3区 超碰成人网 | 九九热免费精品视频 | 中文字幕在线观看三区 | 亚洲欧洲精品一区二区精品久久久 | 精品人人爽 | 欧美日韩电影在线播放 | 久久精品一区二区三区国产主播 | 五月婷婷伊人网 | 免费看黄色91 | 美腿丝袜av | 在线看一区二区 | 久草视频网 | 日本99干网 | 国产日本在线播放 | 久久久免费少妇 | 婷婷激情综合网 | 国产精品一区二区久久精品爱微奶 | 久久精品老司机 | 免费日韩 精品中文字幕视频在线 | 精品久久久久久久久久国产 | 成全免费观看视频 | 18女毛片| 久久久久久久久久福利 | mm1313亚洲精品国产 | 波多野结衣在线播放一区 | 天天插天天射 | 天天操天天干天天综合网 | 国产精品久久久久一区二区三区共 | 黄色大片日本免费大片 | 亚洲美女精品区人人人人 | 国产精品一区二区吃奶在线观看 | 国产黄免费在线观看 | 成人黄色免费在线观看 | 天堂视频中文在线 | 欧美污污网站 | 丁香六月综合网 | 激情欧美一区二区三区免费看 | 亚洲精选久久 | 久久av网 | 欧美最爽乱淫视频播放 | 精品久久一区二区三区 | 天天色天天草天天射 | 男女男视频 | 三级黄色a| 天天干天天色2020 | 国产精品乱码一区二区视频 | 九九九热精品免费视频观看 | 夜夜操天天摸 | 日本最新一区二区三区 | 日本精品一区二区在线观看 | 日韩欧美综合精品 | 国产在线观看黄 | av电影av在线 | 91精品免费在线 | 欧美精品一区二区三区一线天视频 | 日韩在线一二三区 | 久久6精品 | 欧美国产日韩在线视频 | 日韩成人精品一区二区 | 国产91区| av大片免费在线观看 | 日韩免费久久 | 黄色av一区二区 | 99久视频| 国产精品短视频 | 99精品欧美一区二区 | 夜夜操网 | 久久久久在线观看 | 日韩精品免费一区二区三区 | 欧美大荫蒂xxx | 成人黄色在线播放 | 蜜臀av.com | 公开超碰在线 | 免费观看性生活大片 | 欧美日韩性视频 | 中文字幕日韩免费视频 | 久久久久久久久影视 | 超碰在线99 | 特级毛片爽www免费版 | 精品久久久久久亚洲综合网站 | 久久精品国产一区二区电影 | 亚洲国产电影在线观看 | 最新成人av | 久久亚洲欧美日韩精品专区 | 成人国产精品一区二区 | 麻豆播放| 日韩精品专区在线影院重磅 | 日韩免费av片 | www.人人草 | 九月婷婷色 | 97成人在线免费视频 | 日日干夜夜骑 | av免费看av| 九九热国产视频 | 欧美精品久久久久久久 | 天天操天 | av在线短片 | 婷婷在线五月 | 五月天激情综合 | 天天做天天爱天天爽综合网 | 欧美精品久久久久久久亚洲调教 | 97色综合| 久久成人一区二区 | 国产精品美女毛片真酒店 | 国产日韩欧美在线观看 | 亚洲一区欧美激情 | 国产精品九九热 | 亚州精品成人 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 午夜精品久久久久久中宇69 | 久久久综合色 | 日韩av一卡二卡三卡 | 久久精品中文字幕免费mv | 91精品久久久久久综合乱菊 | 狠狠的日| 99久久精品无码一区二区毛片 | 国产精品99在线观看 | 99久久精品久久久久久清纯 | 黄色小说免费观看 | 91av电影| 视频在线在亚洲 | 五月天久久激情 | 成人免费视频观看 | 久精品一区 | 中文字幕乱在线伦视频中文字幕乱码在线 | 国产美女精品视频免费观看 | 99精品在线看| 成 人 黄 色 视频免费播放 | 五月天丁香视频 | 成人av网页| 国产黄色精品网站 | 婷婷综合伊人 | 欧美精品久久久久性色 | 91精品免费视频 | 少妇视频在线播放 | 精品国产不卡 | 国产精品成人一区 | 国产天天爽 | 日韩理论片 | 久久久久中文字幕 | 综合色婷婷 | 精品中文字幕在线播放 | 日韩区欧美久久久无人区 | 在线最新av | 一区二区三区精品久久久 | 九九免费在线观看 | 国产色久 | 国产色视频网站 | 91试看 | www.91成人| 91精品国产一区二区在线观看 | 久久激情婷婷 | 成年人黄色在线观看 | 成人久久视频 | 亚洲 欧美 日韩 综合 | 亚洲aⅴ在线观看 | 日本女人的性生活视频 | 97超碰免费| 久草在线中文888 | 亚洲女人av | 日韩性xxxx | 国产亚洲精品久久久久久无几年桃 | 天天综合操 | av丝袜天堂| 日本激情视频中文字幕 | 亚洲视频综合在线 | 日韩精品一区二区不卡 | av中文资源在线 | 久久99精品国产一区二区三区 | 亚洲国产精品500在线观看 | 国产亚洲视频在线观看 | 国产超碰在线 | 国产精品久久久久久久久久了 | 在线观看免费高清视频大全追剧 | 婷婷六月天综合 | 国产福利一区二区三区视频 | 欧美 日韩 性| 精品人妖videos欧美人妖 | 久久成人亚洲欧美电影 | 欧美日韩网址 | 三级av小说| 奇人奇案qvod| 午夜精品成人一区二区三区 | 香蕉视频在线免费 | 激情视频免费在线 | 国产午夜三级一二三区 | 国产精品一区二区你懂的 | 中文字幕在线免费播放 | 日韩av片免费在线观看 | 91在线看网站 | 久久久久国产免费免费 | 中文字幕av有码 | 国产 字幕 制服 中文 在线 | 国产精品高清一区二区三区 | 高清免费av在线 | 国产成在线观看免费视频 | 久久亚洲美女 | 深爱激情五月婷婷 | 天天爱天天操天天干 | 91男人影院 | 欧美日韩高清一区 | 日本二区三区在线 | 亚洲精品国产精品99久久 | 日韩成人免费电影 | 久久久久欧美精品 | 久久高清毛片 | 精品久久中文 | 欧美日韩精品电影 | 国产精品久久网站 | 国产美女精品视频免费观看 | 99精品国产在热久久 | 99精品免费网 | 亚洲伦理一区二区 | 97视频在线免费 | 天天射天天艹 | 久久超级碰 | a电影免费看 | 国产中文 | 男女靠逼app | 91夜夜夜| 免费a级毛片在线看 | 国产三级香港三韩国三级 | 国产精品久久久久久久免费大片 | 色诱亚洲精品久久久久久 | 国产成人在线综合 | 97超碰精品 | 天天爱av导航 | 又长又大又黑又粗欧美 | 中文字幕第 | 9在线观看免费高清完整版在线观看明 | 国内丰满少妇猛烈精品播 | 午夜精品一区二区三区免费 | 精品久久久久亚洲 | 91九色porny蝌蚪视频 | 伊人久久国产精品 | 色综合天天狠天天透天天伊人 | 国产精品四虎 | 日韩欧美高清一区二区三区 | 天天玩天天干天天操 | 在线导航av | 99精品在线播放 | 日韩av一卡二卡三卡 | 精品999久久久 | 国产精品国产精品 | 五月激情丁香婷婷 | 超碰在线公开 | 97精品国产97久久久久久 | 欧美在线99 | 九九爱免费视频 | 免费观看91 | 天天摸天天干天天操天天射 | 午夜电影一区 | 99精品在线观看视频 | 99久久精品国产亚洲 | 亚洲精品中文在线 | 欧美日韩国产欧美 | 亚洲精品中文在线观看 | 99在线精品视频 | 国产99久久久精品视频 | 日韩在线观看精品 | 亚洲专区欧美专区 | 欧美成人中文字幕 | 欧美一区免费观看 | 99久久www免费 | 免费一级毛毛片 | 伊人五月天综合 | 国产精品久久久久av | 在线黄色观看 | 日韩黄色中文字幕 | 欧美日韩在线网站 | 在线观看免费中文字幕 | 国产传媒一区在线 | 日本久久成人中文字幕电影 | 91免费在线播放 | 在线看片一区 | 三级黄色在线 | 日韩av在线影视 | 久久99久国产精品黄毛片入口 | 国产精品毛片久久久 | 涩涩网站在线播放 | 国产日韩在线播放 | av免费在线看网站 | 91视频在线国产 | 久草av在线播放 | 国产伦精品一区二区三区四区视频 | av线上看 | 又黄又刺激的网站 | 久久av观看 | japanesefreesexvideo高潮 | 国产黄视频在线观看 | 六月久久婷婷 | 天天射射天天 | 狠狠色丁香婷婷综合久小说久 | 国产精品久久久久国产精品日日 | 日本特黄特色aaa大片免费 | 草在线视频 | 日本在线观看黄色 | 欧美亚洲久久 | 国产精品专区在线 | 四虎免费在线观看视频 | 97人人模人人爽人人喊中文字 | 精品婷婷 | 91九色在线 | 97在线免费视频观看 | 成人动漫精品一区二区 | 成人小视频在线免费观看 | 在线韩国电影免费观影完整版 | 精品久久久久久久久中文字幕 | 日日夜夜天天久久 | 欧美性生交大片免网 | 亚洲日本一区二区在线 | 精品久久久久久亚洲综合网 | 国产盗摄精品一区二区 | 天天色天天干天天色 | 探花视频免费观看高清视频 | 婷婷亚洲综合 | 天天操天天干天天干 | 天天综合区 | 久久99国产综合精品 | 激情视频区 | 99久久精品免费视频 | 人人添人人 | 国产亚洲成人网 | 色射爱| 国产中文字幕三区 | 超碰伊人网| 欧美午夜视频在线 | 日日干夜夜草 | 日韩免费在线 | 亚洲成av人片一区二区梦乃 | 丁香六月天婷婷 | 久久毛片网 | 日韩理论在线视频 | 黄色资源在线观看 | 99热国产精品 | 美女国内精品自产拍在线播放 | 久草在线免费看视频 | 在线免费观看黄 | 色婷婷精品大在线视频 | 亚洲欧洲中文日韩久久av乱码 | 99久久精品免费看国产麻豆 | 欧洲色吧| 这里只有精品视频在线 | 欧美一级大片在线观看 | 国产精品12345 | 日韩在线小视频 | 九七视频在线观看 | 成 人 a v天堂 | 成人av影视| 97人人视频 | 99热99re6国产在线播放 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 麻豆传媒在线免费看 | 国产精品破处视频 | 最新国产一区二区三区 | 丁香高清视频在线看看 | 美女网站视频免费黄 | 日本爱爱免费视频 | 美女免费视频网站 | 欧美另类交在线观看 | 在线播放视频一区 | 99精品色 | 三级午夜片 | 成人黄色片免费 | 麻豆免费视频 | 欧美日韩国产一区二区三区在线观看 | 黄色毛片视频免费观看中文 | 日韩午夜av | 在线观看第一页 | 亚洲国产日韩欧美在线 | 日b视频国产 | 国产偷国产偷亚洲清高 | av成人资源| 欧美久久精品 | 国产在线视频导航 | 亚洲激情电影在线 | 91网址在线观看 | 91av在线免费观看 | 欧美韩日在线 | 91精品视频免费 | 欧美日韩国产高清视频 | 蜜臀精品久久久久久蜜臀 | 日韩黄色软件 | 欧美日本高清视频 | 久久99精品久久久久蜜臀 | 97超碰人 | 国产精品影音先锋 | 观看免费av | 亚洲人成综合 | 黄色1级毛片 | 激情视频在线高清看 | 国产91精品一区二区麻豆网站 | 黄色大片入口 | 91视频-88av| 天天干,天天干 | 日韩午夜小视频 | 成人精品999 | 国产精品第52页 | 日韩av网站在线播放 | 97超视频在线观看 | 日韩黄色av网站 | 久久精品系列 | 美女视频黄频大全免费 | 狠狠狠干狠狠 | 欧美性极品xxxx做受 | 日韩中字在线观看 | 人人射人人 | 成人免费一级片 | 五月天天天操 | 2024av| 在线观看免费视频你懂的 | 天天插天天色 | 日韩女同av | 欧美国产一区在线 | 国产精品一区二区在线观看 | 一本一道久久a久久精品 | 亚洲男男gⅴgay双龙 | 久草影视在线观看 | 久久艹艹 | 欧美一级片免费播放 | 性色av一区二区三区在线观看 | 园产精品久久久久久久7电影 | 日日夜夜综合网 | 亚洲精品日韩一区二区电影 | 天天艹天天干天天 | 在线观看日本高清mv视频 | 成人av在线影视 | 中文字幕在线网址 | 韩日精品中文字幕 | 日韩欧美在线国产 | 日本成人黄色片 | 国产精品va在线播放 | 日韩中文字幕a | 欧美伦理电影一区二区 | 精品国产一区二区三区在线 | 国产91精品看黄网站 | 久久r精品 | 91在线看免费 | 亚洲黄色免费网站 | 一区二区欧美激情 | 日韩欧美精品在线观看视频 | 欧美日韩一区二区在线观看 | 日韩理论片在线 | 久久免费精品国产 | 日韩毛片在线一区二区毛片 | 一区二区三区福利 | 99久久99久久精品 | 黄色av网站在线观看免费 | 福利视频一区二区 | 中文字幕视频三区 | 久草在线观看视频免费 | 国产三级国产精品国产专区50 | 精品久久1 | 天天综合网入口 | 免费看一级特黄a大片 | 福利视频网站 | 国产成人久久精品一区二区三区 |