亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 8.html

?? 介紹linux下文件和設(shè)備編程
?? HTML
?? 第 1 頁 / 共 5 頁
字號(hào):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"><HTML><HEAD>   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">   <META NAME="GENERATOR" CONTENT="《良友》v2.1, 作者:安富國,http://winking.126.com">   <TITLE>驅(qū)動(dòng)</TITLE></HEAD><BODY style="font-family: 宋體; font-size: 9pt">&nbsp;<CENTER><TABLE CELLSPACING=10 CELLPADDING=10 WIDTH="60%" BGCOLOR="#FFB693" ><TR><TD ALIGN=CENTER><FONT SIZE=+2><!--標(biāo)題由此開始-->驅(qū)動(dòng)</TD></TR></TABLE></CENTER><p><h3>目       錄</h3><!--目錄由此開始--><A NAME="Content" ID="Content"></A><OL><LI><A HREF="#I471">驅(qū)動(dòng)</A></LI><OL><LI><A HREF="#I472">I/O端口</A></LI><LI><A HREF="#I473">from smth</A></LI><OL><LI><A HREF="#I474">基本結(jié)構(gòu)</A></LI><LI><A HREF="#I475">驅(qū)動(dòng)程序</A></LI><LI><A HREF="#I476">具體實(shí)現(xiàn)</A></LI></OL><LI><A HREF="#I477">PCI</A></LI><LI><A HREF="#I478">loopback</A></LI><LI><A HREF="#I479">Sis 900</A></LI><LI><A HREF="#I734">ISA總線DMA的實(shí)現(xiàn)</A></LI></OL></OL><hr><br><A NAME="I471" ID="I471"></A><center><b><font size=+2>驅(qū)動(dòng)</font></b></center><br>&nbsp;&nbsp;&nbsp; Linux系統(tǒng)支持三種類型的硬件設(shè)備:字符設(shè)備、塊設(shè)備和網(wǎng)絡(luò)設(shè)備。字符設(shè)備是直接讀取的,不必使用緩沖區(qū)。例如,系統(tǒng)的串行口/dev/cua0和/dev/cua1。塊設(shè)備每次只能讀取一定大小的塊的倍數(shù),通常一塊是512或者1024字節(jié)。塊設(shè)備通過緩沖區(qū)讀寫,并且可以隨機(jī)地讀寫。塊設(shè)備可以通過它們的設(shè)備文件存取,但通常是通過文件系統(tǒng)存取。只有塊設(shè)備支持掛接的文件系統(tǒng)。網(wǎng)絡(luò)設(shè)備是通過BSD套接字界面存取的。<p>&nbsp;&nbsp;&nbsp; Linux系統(tǒng)支持多種設(shè)備,這些設(shè)備的驅(qū)動(dòng)程序之間有一些共同的特點(diǎn):<br>&nbsp;&nbsp;&nbsp; * 內(nèi)核代碼:設(shè)備驅(qū)動(dòng)程序是系統(tǒng)內(nèi)核的一部分,所以如果驅(qū)動(dòng)程序出現(xiàn)錯(cuò)誤的話,將可能嚴(yán)重地破壞整個(gè)系統(tǒng)。<br>&nbsp;&nbsp;&nbsp; * 內(nèi)核接口:設(shè)備驅(qū)動(dòng)程序必須為系統(tǒng)內(nèi)核或者它們的子系統(tǒng)提供一個(gè)標(biāo)準(zhǔn)的接口。例如,一個(gè)終端驅(qū)動(dòng)程序必須為L(zhǎng)inux內(nèi)核提供一個(gè)文件I/O接口;一個(gè)SCSI設(shè)備驅(qū)動(dòng)程序應(yīng)該為SCSI子系統(tǒng)提供一個(gè)SCSI設(shè)備接口,同時(shí)SCSI子系統(tǒng)也應(yīng)為系統(tǒng)內(nèi)核提供文件I/O和緩沖區(qū)。<br>&nbsp;&nbsp;&nbsp; * 內(nèi)核機(jī)制和服務(wù):設(shè)備驅(qū)動(dòng)程序利用一些標(biāo)準(zhǔn)的內(nèi)核服務(wù),例如內(nèi)存分配等。<br>&nbsp;&nbsp;&nbsp; * 可裝入:大多數(shù)的Linux設(shè)備驅(qū)動(dòng)程序都可以在需要時(shí)裝入內(nèi)核,在不需要時(shí)卸載。<br>&nbsp;&nbsp;&nbsp; * 可設(shè)置:Linux系統(tǒng)設(shè)備驅(qū)動(dòng)程序可以集成為系統(tǒng)內(nèi)核的一部分,至于哪一部分需要集成到內(nèi)核中,可以在系統(tǒng)編譯時(shí)設(shè)置。<p><center><A HREF="#Content">[目錄]</A></center><hr><br><A NAME="I472" ID="I472"></A><center><b><font size=+2>I/O端口</font></b></center><br>  關(guān)鍵詞:設(shè)備管理、驅(qū)動(dòng)程序、I/O端口、資源<p>  申明:這份文檔是按照自由軟件開放源代碼的精神發(fā)布的,任何人可以免費(fèi)獲得、使用和重新發(fā)布,但是你沒有限制別人重新發(fā)布你發(fā)布內(nèi)容的權(quán)利。發(fā)布本文的目的是希望它能對(duì)讀者有用,但沒有任何擔(dān)保,甚至沒有適合特定目的的隱含的擔(dān)保。更詳細(xì)的情況請(qǐng)參閱GNU通用公共許可證(GPL),以及GNU自由文檔協(xié)議(GFDL)。<p>  幾乎每一種外設(shè)都是通過讀寫設(shè)備上的寄存器來進(jìn)行的。外設(shè)寄存器也稱為“I/O端口”,通常包括:控制寄存器、狀態(tài)寄存器和數(shù)據(jù)寄存器三大類,而且一個(gè)外設(shè)的寄存器通常被連續(xù)地編址。CPU對(duì)外設(shè)IO端口物理地址的編址方式有兩種:一種是I/O映射方式(I/O-mapped),另一種是內(nèi)存映射方式(Memory-mapped)。而具體采用哪一種則取決于CPU的體系結(jié)構(gòu)。<p>  有些體系結(jié)構(gòu)的CPU(如,PowerPC、m68k等)通常只實(shí)現(xiàn)一個(gè)物理地址空間(RAM)。在這種情況下,外設(shè)I/O端口的物理地址就被映射到CPU的單一物理地址空間中,而成為內(nèi)存的一部分。此時(shí),CPU可以象訪問一個(gè)內(nèi)存單元那樣訪問外設(shè)I/O端口,而不需要設(shè)立專門的外設(shè)I/O指令。這就是所謂的“內(nèi)存映射方式”(Memory-mapped)。<p>  而另外一些體系結(jié)構(gòu)的CPU(典型地如X86)則為外設(shè)專門實(shí)現(xiàn)了一個(gè)單獨(dú)地地址空間,稱為“I/O地址空間”或者“I/O端口空間”。這是一個(gè)與CPU地RAM物理地址空間不同的地址空間,所有外設(shè)的I/O端口均在這一空間中進(jìn)行編址。CPU通過設(shè)立專門的I/O指令(如X86的IN和OUT指令)來訪問這一空間中的地址單元(也即I/O端口)。這就是所謂的“I/O映射方式”(I/O-mapped)。與RAM物理地址空間相比,I/O地址空間通常都比較小,如x86 CPU的I/O空間就只有64KB(0-0xffff)。這是“I/O映射方式”的一個(gè)主要缺點(diǎn)。<p>  Linux將基于I/O映射方式的或內(nèi)存映射方式的I/O端口通稱為“I/O區(qū)域”(I/O region)。在討論對(duì)I/O區(qū)域的管理之前,我們首先來分析一下Linux是如何實(shí)現(xiàn)“I/O資源”這一抽象概念的。<p>3.1 Linux對(duì)I/O資源的描述<p>  Linux設(shè)計(jì)了一個(gè)通用的數(shù)據(jù)結(jié)構(gòu)resource來描述各種I/O資源(如:I/O端口、外設(shè)內(nèi)存、DMA和IRQ等)。該結(jié)構(gòu)定義在include/linux/ioport.h頭文件中:<p><br>  struct resource {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; const char *name;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long start, end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long flags;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *parent, *sibling, *child;<br>  };<p>  各成員的含義如下:<p>  1. name指針:指向此資源的名稱。<br>  2. start和end:表示資源的起始物理地址和終止物理地址。它們確定了資源的范圍,也即是一個(gè)閉區(qū)間[start,end]。<br>  3. flags:描述此資源屬性的標(biāo)志(見下面)。<br>  4. 指針parent、sibling和child:分別為指向父親、兄弟和子資源的指針。<p>  屬性flags是一個(gè)unsigned long類型的32位標(biāo)志值,用以描述資源的屬性。比如:資源的類型、是否只讀、是否可緩存,以及是否已被占用等。下面是一部分常用屬性標(biāo)志位的定義(ioport.h):<p><br>/*<br> * IO resources have these defined flags.<br> */<br>#define IORESOURCE_BITS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x000000ff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Bus-specific bits */<p>#define IORESOURCE_IO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Resource type */<br>#define IORESOURCE_MEM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000200<br>#define IORESOURCE_IRQ&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000400<br>#define IORESOURCE_DMA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00000800<p>#define IORESOURCE_PREFETCH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00001000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* No side effects */<br>#define IORESOURCE_READONLY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00002000<br>#define IORESOURCE_CACHEABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00004000<br>#define IORESOURCE_RANGELENGTH&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00008000<br>#define IORESOURCE_SHADOWABLE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00010000<br>#define IORESOURCE_BUS_HAS_VGA&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x00080000<p>#define IORESOURCE_UNSET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x20000000<br>#define IORESOURCE_AUTO&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x40000000<br>#define IORESOURCE_BUSY&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x80000000<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /* Driver has marked this resource busy */<p><p>  指針parent、sibling和child的設(shè)置是為了以一種樹的形式來管理各種I/O資源。<p>3.2 Linux對(duì)I/O資源的管理<p>  Linux是以一種倒置的樹形結(jié)構(gòu)來管理每一類I/O資源(如:I/O端口、外設(shè)內(nèi)存、DMA和IRQ)的。每一類I/O資源都對(duì)應(yīng)有一顆倒置的資源樹,樹中的每一個(gè)節(jié)點(diǎn)都是一個(gè)resource結(jié)構(gòu),而樹的根結(jié)點(diǎn)root則描述了該類資源的整個(gè)資源空間。<p>  基于上述這個(gè)思想,Linux在kernel/Resource.c文件中實(shí)現(xiàn)了對(duì)資源的申請(qǐng)、釋放及查找等操作。<p>  3.2.1 I/O資源的申請(qǐng)<p>  假設(shè)某類資源有如下這樣一顆資源樹:<p>  節(jié)點(diǎn)root、r1、r2和r3實(shí)際上都是一個(gè)resource結(jié)構(gòu)類型。子資源r1、r2和r3通過sibling指針鏈接成一條單向非循環(huán)鏈表,其表頭由root節(jié)點(diǎn)中的child指針定義,因此也稱為父資源的子資源鏈表。r1、r2和r3的parent指針均指向他們的父資源節(jié)點(diǎn),在這里也就是圖中的root節(jié)點(diǎn)。<p>  假設(shè)想在root節(jié)點(diǎn)中分配一段I/O資源(由圖中的陰影區(qū)域表示)。函數(shù)request_resource()實(shí)現(xiàn)這一功能。它有兩個(gè)參數(shù):①root指針,表示要在哪個(gè)資源根節(jié)點(diǎn)中進(jìn)行分配;②new指針,指向描述所要分配的資源(即圖中的陰影區(qū)域)的resource結(jié)構(gòu)。該函數(shù)的源代碼如下(kernel/resource.c):<p><br>  int request_resource(struct resource *root, struct resource *new)<br>  {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *conflict;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_lock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; conflict = __request_resource(root, new);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; write_unlock(&amp;resource_lock);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return conflict ? -EBUSY : 0;<br>  }<p><p>  對(duì)上述函數(shù)的NOTE如下:<p>  ①資源鎖resource_lock對(duì)所有資源樹進(jìn)行讀寫保護(hù),任何代碼段在訪問某一顆資源樹之前都必須先持有該鎖。其定義如下(kernel/Resource.c):<p>  static rwlock_t resource_lock = RW_LOCK_UNLOCKED;<p>  ②可以看出,函數(shù)實(shí)際上是通過調(diào)用內(nèi)部靜態(tài)函數(shù)__request_resource()來完成實(shí)際的資源分配工作。如果該函數(shù)返回非空指針,則表示有資源沖突;否則,返回NULL就表示分配成功。<p>  ③最后,如果conflict指針為NULL,則request_resource()函數(shù)返回返回值0,表示成功;否則返回-EBUSY表示想要分配的資源已被占用。<p>  函數(shù)__request_resource()完成實(shí)際的資源分配工作。如果參數(shù)new所描述的資源中的一部分或全部已經(jīng)被其它節(jié)點(diǎn)所占用,則函數(shù)返回與new相沖突的resource結(jié)構(gòu)的指針。否則就返回NULL。該函數(shù)的源代碼如下<p><br>(kernel/Resource.c):<br>/* Return the conflict entry if you can't request it */<br>static struct resource * __request_resource<br>  (struct resource *root, struct resource *new)<br>{<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long start = new-&gt;start;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; unsigned long end = new-&gt;end;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; struct resource *tmp, **p;<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (end &lt; start)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return root;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (start &lt; root-&gt;start)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return root;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (end &gt; root-&gt;end)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return root;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; p = &amp;root-&gt;child;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (;;) {<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tmp = *p;<br>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
4438x成人网最大色成网站| 国产一区在线视频| 国产精品美女久久久久av爽李琼| 国产高清不卡一区二区| 免费在线观看视频一区| 一区视频在线播放| 国产女人18水真多18精品一级做| 亚洲国产成人私人影院tom| 一区二区三区高清不卡| 国产一区三区三区| 欧美在线观看18| 国产亚洲精品资源在线26u| 亚洲综合久久久久| 国产iv一区二区三区| 91精品欧美一区二区三区综合在| 久久精品亚洲精品国产欧美kt∨| 亚洲丶国产丶欧美一区二区三区| 国产成人av一区二区| 欧美精品在欧美一区二区少妇| 国产亚洲综合av| 国产一区二区免费视频| 精品蜜桃在线看| 日韩高清欧美激情| 欧洲一区二区三区在线| 欧美一区二区精品久久911| 亚洲国产精品黑人久久久| 免费观看在线综合| 欧美精品日韩精品| 日韩av网站在线观看| 91精品欧美福利在线观看| 亚洲va欧美va人人爽| 欧美精品aⅴ在线视频| 亚洲一区二区三区中文字幕| 99精品视频在线观看免费| 亚洲情趣在线观看| 欧美三级中文字幕在线观看| 日韩经典中文字幕一区| 欧美高清激情brazzers| 五月天久久比比资源色| 欧美日韩国产一二三| 美女一区二区视频| 精品88久久久久88久久久| 国产91精品入口| 一区二区三区高清在线| 91小宝寻花一区二区三区| 色爱区综合激月婷婷| 蜜臀av亚洲一区中文字幕| 国产农村妇女精品| 91精品在线一区二区| 国产成人高清视频| 秋霞影院一区二区| 亚洲欧洲综合另类| 日韩视频在线一区二区| voyeur盗摄精品| 亚洲一区在线观看免费 | 中文字幕乱码久久午夜不卡| av电影在线观看完整版一区二区| 亚洲乱码一区二区三区在线观看| 欧美一区二区在线免费播放| 婷婷综合五月天| 亚洲蜜桃精久久久久久久| 精品国产91乱码一区二区三区| 国产福利91精品一区| 亚洲成人资源在线| 亚洲丝袜美腿综合| 久久久久国色av免费看影院| 欧美一区二区福利在线| 欧美在线影院一区二区| 国产成人午夜视频| 国产精品一区二区你懂的| 美女视频免费一区| 日日骚欧美日韩| 日本成人在线电影网| 亚洲图片欧美一区| 国产精品美女一区二区在线观看| 久久久久久亚洲综合| 精品国产sm最大网站免费看| 欧美电视剧免费观看| 欧美岛国在线观看| 久久久777精品电影网影网| 久久综合丝袜日本网| 国产精品美女www爽爽爽| 久久精品欧美一区二区三区麻豆| 国产精品欧美极品| 一区二区三区免费网站| 亚洲一区二区精品久久av| 欧美aⅴ一区二区三区视频| 国产一区二区在线电影| 99麻豆久久久国产精品免费| 91精品国产综合久久久久久| 精品99一区二区三区| 亚洲精品一卡二卡| 看片网站欧美日韩| 欧亚一区二区三区| 国产精品无人区| 国精产品一区一区三区mba视频 | 欧美日韩视频在线第一区| 精品国精品自拍自在线| 亚洲一区二区av电影| 99久久精品费精品国产一区二区| 精品成人在线观看| 狠狠色综合日日| 欧美一级生活片| 蜜桃91丨九色丨蝌蚪91桃色| 日本亚洲三级在线| 亚洲色图清纯唯美| 日韩高清欧美激情| 欧美蜜桃一区二区三区| 国产午夜精品福利| 成人综合在线网站| 久久蜜桃一区二区| 国产九九视频一区二区三区| 26uuu国产日韩综合| 激情深爱一区二区| 欧美成人在线直播| 国产精品66部| 亚洲欧美国产77777| 欧美三级视频在线播放| 日韩福利电影在线观看| 欧美激情一区二区三区蜜桃视频 | 亚洲精品视频免费观看| 在线一区二区视频| 久久av中文字幕片| 中文一区二区完整视频在线观看 | 精品噜噜噜噜久久久久久久久试看| 亚洲国产精品嫩草影院| 久久蜜臀精品av| 欧美精品在线观看一区二区| 高清在线成人网| 久久99久久99| 日本成人在线电影网| 日产精品久久久久久久性色| 国产精品久久久久天堂| 91麻豆精品国产91久久久使用方法| 美国精品在线观看| 日本视频免费一区| 亚洲一区成人在线| 成人免费在线视频观看| 中文字幕一区二区三区四区不卡| 欧美xxxxxxxx| 欧美不卡一区二区三区四区| 欧美色电影在线| 在线成人午夜影院| 91精品国产丝袜白色高跟鞋| 欧美精品 日韩| 欧美一区二区成人| 久久久久国产精品厨房| 91精品在线观看入口| 欧美一区二区免费视频| 日韩女优av电影在线观看| 精品欧美乱码久久久久久 | 捆绑调教美女网站视频一区| 日韩高清在线不卡| 精品一区二区三区影院在线午夜| 麻豆一区二区三区| 国内精品自线一区二区三区视频| 老司机精品视频一区二区三区| 韩国精品免费视频| 91小视频在线观看| 日韩午夜在线观看视频| 国产日本一区二区| 亚洲一区中文在线| 国产精品1区二区.| 日韩片之四级片| 中文字幕一区二区三区乱码在线 | 国产精品第五页| 久久精品国产精品亚洲精品| 91免费视频网| 久久久久久久久久看片| 亚洲成人中文在线| 在线观看视频一区二区| 国产精品天天看| 丁香婷婷综合激情五月色| 欧美精品xxxxbbbb| 偷拍与自拍一区| 欧美吞精做爰啪啪高潮| 亚洲黄色片在线观看| 99精品桃花视频在线观看| 国产午夜精品福利| 激情综合色播激情啊| 精品久久久网站| 激情综合色综合久久综合| 欧美日韩国产色站一区二区三区| 亚洲欧美一区二区三区极速播放 | 亚洲美女电影在线| 9人人澡人人爽人人精品| 国产三级精品三级在线专区| 国产成人免费网站| 亚洲免费电影在线| 欧美精品久久99久久在免费线| 午夜精品123| 日韩欧美一区中文| 韩国视频一区二区| 中文字幕在线一区二区三区| 色哟哟在线观看一区二区三区| 亚洲人一二三区| 欧美大片免费久久精品三p| 国产一区高清在线| 亚洲自拍与偷拍| 久久久久久久久久久久电影 |