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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux内核驱动模块开发步骤及实例入门介绍

發布時間:2023/12/15 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux内核驱动模块开发步骤及实例入门介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在搞一個linux的項目,其中主要是在編寫一些應用模塊,對內核及其驅動模塊涉及很少,遇到了一些驅動模塊的問題時,臨時查了些資料,大致了解了一下驅動模塊開發的基本步驟和常規步驟,并從網上也收集到了一些相關的資料,于是對其進行了一下簡單的總結,記錄于此,便于日后查閱,并與同道中人共享。

零、什么是linux內核驅動模塊

Linux內核的整體結構已經非常龐大,而其包含的組件也非常多。我們怎樣把需要的部分都包含在內核中呢?

一種方法是把所有需要的功能都編譯到Linux內核。這會導致兩個問題,一是生成的內核會很大,二是如果我們要在現有的內核中新增或刪除功能,將不得不重新編譯內核。

有沒有一種機制使得編譯出的內核本身并不需要包含所有功能,而在這些功能需要被使用的時候,其對應的代碼被動態地加載到內核中呢?

答案是肯定的,Linux提供了這樣的一種機制,這種機制被稱為模塊(Module)。模塊具有這樣的特點:

  • 模塊本身不被編譯入內核映像,這控制了內核的大小。
  • 模塊一旦被加載,它就和內核中的其它部分完全一樣。

那么,問題來了。如何編寫內核驅動模塊呢?別急,我們一步一步來介紹。

一、先從一個最簡單的例子入手

先來看一個最簡單的內核模塊“Hello World”。

#include <linux/init.h> #include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void) {printk(KERN_INFO " Hello World enter\n");return 0; }static void hello_exit(void) {printk(KERN_INFO " Hello World exit\n "); }module_init(hello_init); module_exit(hello_exit);MODULE_AUTHOR("Song Baohua"); MODULE_DESCRIPTION("A simple Hello World Module"); MODULE_ALIAS("a simplest module");

這個最簡單的內核模塊只包含內核模塊加載函數、卸載函數和對Dual BSD/GPL許可權限的聲明以及一些描述信息。編譯它會產生hello.ko目標文件,通過“insmod ./hello.ko”命令可以加載它,通過“rmmod hello”命令可以卸載它,加載時輸出“Hello World enter”,卸載時輸出“Hello World exit”。

內核模塊中用于輸出的函數是內核空間的printk()而非用戶空間的printf(),printk()作為一種最基本的內核調試手段,其用法和printf()基本相似,但可定義輸出級別。

1、查看系統中已經加載的模塊列表

在Linux中,使用lsmod命令可以獲得系統中加載了的所有模塊以及模塊間的依賴關系,例如:

root@imx6:~$ lsmod Module Size Used by hello 1568 0 ohci1394 32716 0 ide_scsi 16708 0 ide_cd 39392 0 cdrom 36960 1 ide_cd

lsmod命令實際上讀取并分析“/proc/modules”文件,與上述lsmod命令結果對應的“/proc/modules”文件如下:

root@imx6:~$ cat /proc/modules hello 1568 0 - Live 0xc8859000 ohci1394 32716 0 - Live 0xc88c8000 ieee1394 94420 1 ohci1394, Live 0xc8840000 ide_scsi 16708 0 - Live 0xc883a000 ide_cd 39392 0 - Live 0xc882f000 cdrom 36960 1 ide_cd, Live 0xc8876000

內核中已加載模塊的信息也存在于/sys/module目錄下,加載hello.ko后,內核中將包含/sys/module/hello目錄,該目錄下又包含一個refcnt文件和一個sections目錄,在/sys/module/hello目錄下運行tree –a得到如下目錄樹:

root@imx6:~$ tree -a . |-- refcnt `-- sections|-- .bss|-- .data|-- .gnu.linkonce.this_module|-- .rodata|-- .rodata.str1.1|-- .strtab|-- .symtab|-- .text`-- __versions

2、查看某個具體模塊的詳細信息

使用“modinfo <模塊名>”命令可以獲得模塊的信息,包括模塊作者、模塊的說明、模塊所支持的參數等。

root@imx6:~$ modinfo hello.ko filename: hello.ko license: Dual BSD/GPL author: Song Baohua description: A simple Hello World Module alias: a simplest module vermagic: 2.6.15.5 686 gcc-3.2 depends:

二、模塊程序的基本結構

一個Linux內核模塊主要由如下幾個部分組成:

  • 模塊加載函數(一般需要)
    當通過insmod或modprobe命令加載內核模塊時,模塊的加載函數會自動被內核執行,完成本模塊的相關初始化工作。
  • 模塊卸載函數(一般需要)
    當通過rmmod命令卸載某模塊時,模塊的卸載函數會自動被內核執行,完成與模塊卸載函數相反的功能。
  • 模塊許可證聲明(必須)
    許可證(LICENSE)聲明描述內核模塊的許可權限,如果不聲明LICENSE,模塊被加載時,將收到內核被污染 (kernel tainted)的警告。在Linux 2.6內核中,可接受的LICENSE包括“GPL”、“GPL v2”、“GPL and additional rights”、“Dual BSD/GPL”、“Dual MPL/GPL”和“Proprietary”。大多數情況下,內核模塊應遵循GPL兼容許可權。Linux 2.6內核模塊最常見的是以MODULE_LICENSE( “Dual BSD/GPL” )語句聲明模塊采用BSD/GPL雙LICENSE。
  • 模塊參數(可選)
    模塊參數是模塊被加載的時候可以被傳遞給它的值,它本身對應模塊內部的全局變量。
  • 模塊導出符號(可選)
    內核模塊可以導出符號(symbol,對應于函數或變量),這樣其它模塊可以使用本模塊中的變量或函數。
  • 模塊作者等信息聲明(可選)
    用于申明模塊作者的相關信息,一般用于備注作者姓名、郵箱等。

1、內核模塊的加載函數

模塊加載函數Linux內核模塊加載函數宜被以__init標識聲明,典型的模塊加載函數的形式如下所示:

static int __init initialization_function(void) { /* 初始化代碼 */ } module_init(initialization_function);

模塊加載函數必須以“module_init(函數名)”的形式被指定。它返回整型值,若初始化成功,應返回0。而在初始化失敗時,應該返回錯誤編碼errno【在Linux內核里,錯誤編碼errno是一個負值,在頭文件”linux/errno.h”中定義,包含-ENODEV、-ENOMEM之類的符號值】。總是返回相應的錯誤編碼是種非常好的習慣,因為只有這樣,用戶程序才可以利用perror等方法把它們轉換成有意義的錯誤信息字符串。

在Linux 2.6內核中,可以使用request_module(const char *fmt, …)函數加載內核模塊,驅動開發人員可以通過調用request_module(module_name);或request_module(“char-major-%d-%d”, MAJOR(dev), MINOR(dev));這種靈活的方式加載其它內核模塊。

注:在Linux中,所有標識為__init的函數在連接的時候都放在.init.text這個區段內,此外,所有的__init函數在區段.initcall.init中還保存了一份函數指針,在初始化時內核會通過這些函數指針調用這些__init函數,并在初始化完成后,釋放init區段(包括.init.text,.initcall.init等)。

2、內核模塊的卸載函數

Linux內核模塊加載函數宜被以__exit標識聲明,典型的模塊卸載函數的形式如下所示:

static void __exit cleanup_function(void) {/* 釋放代碼 */ } module_exit(cleanup_function);

模塊卸載函數在模塊卸載的時候執行,不返回任何值,必須以“module_exit(函數名)”的形式來指定。

通常來說,模塊卸載函數要完成與模塊加載函數相反的功能,例如:

  • 若模塊加載函數注冊了XXX,則模塊卸載函數應該注銷XXX;
  • 若模塊加載函數動態申請了內存,則模塊卸載函數應釋放該內存;
  • 若模塊加載函數申請了硬件資源(中斷、DMA通道、I/O端口和I/O內存等)的占用,則模塊卸載函數應釋放這些硬件資源;
  • 若模塊加載函數開啟了硬件,則卸載函數中一般要關閉之;

和__init一樣,__exit也可以使對應函數在運行完成后自動回收內存。實際上,__init和__exit都是宏,其定義分別為:

#define __init __attribute__ ((__section__ (".init.text")))#ifdef MODULE #define __exit __attribute__ ((__section__(".exit.text"))) #else #define __exit __attribute_used__ __attribute__ ((__section__(".exit.text"))) #endif

數據也可以被定義為__initdata和__exitdata,這兩個宏分別為:

#define __initdata __attribute__ ((__section__ (".init.data")))#define __exitdata __attribute__ ((__section__(".exit.data")))

3、內核模塊的參數傳遞

我們可以用“module_param(參數名,參數類型,參數讀/寫權限)”為模塊定義一個參數,例如下列代碼定義了1個整型參數和1個字符指針參數:

static char *book_name = "深入淺出Linux設備驅動"; static int num = 4000; module_param(num, int, S_IRUGO); module_param(book_name, charp, S_IRUGO);

在裝載內核模塊時,用戶可以向模塊傳遞參數,形式為“insmode(或modprobe)模塊名 參數名=參數值”,如果不傳遞,參數將使用模塊內定義的缺省值。

參數類型可以是byte、short、ushort、int、uint、long、ulong、charp(字符指針)、bool 或invbool(布爾的反),在模塊被編譯時會將module_param中聲明的類型與變量定義的類型進行比較,判斷是否一致。

模塊被加載后,在/sys/module/目錄下將出現以此模塊名命名的目錄。當“參數讀/寫權限”為0時,表示此參數不存在sysfs文件系統下對應的文件節點,如果此模塊存在“參數讀/寫權限”不為0的命令行參數,在此模塊的目錄下還將出現parameters目錄,包含一系列以參數名命名的文件節點,這些文件的權限值就是傳入module_param()的“參數讀/寫權限”,而文件的內容為參數的值。

除此之外,模塊也可以擁有參數數組,形式為“module_param_array(數組名,數組類型,數組長,參數讀/寫權限)”。從2.6.0至2.6.10 版本,須將數組長變量名賦給“數組長”,從2.6.10 版本開始,須將數組長變量的指針賦給“數組長”,當不需要保存實際輸入的數組元素個數時,可以設置“數組長”為NULL。

運行insmod或modprobe命令時,應使用逗號分隔輸入的數組元素。

4、內核模塊的符號導出

模塊可以使用如下宏導出符號到內核符號表:

  • EXPORT_SYMBOL(符號名);
  • EXPORT_SYMBOL_GPL(符號名);

導出的符號將可以被其它模塊使用,使用前聲明一下即可。EXPORT_SYMBOL_GPL()只適用于包含GPL許可權的模塊。下面的代碼給出了一個導出整數加、減運算函數符號的內核模塊的例子(這些導出符號毫無實際意義,僅僅只是為了演示)。

#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL"); int add_integar(int a,int b) { return a+b; } int sub_integar(int a,int b) { return a-b; } EXPORT_SYMBOL(add_integar); EXPORT_SYMBOL(sub_integar);

5、內核模塊的信息聲明

在Linux內核模塊中,我們可以用MODULE_AUTHOR、MODULE_DESCRIPTION、MODULE_VERSION、MODULE_DEVICE_TABLE、MODULE_ALIAS分別聲明模塊的作者、描述、版本、設備表和別名,例如:

  • MODULE_AUTHOR(author);
  • MODULE_DESCRIPTION(description);
  • MODULE_VERSION(version_string);
  • MODULE_DEVICE_TABLE(table_info);
  • MODULE_ALIAS(alternate_name);

對于USB、PCI等設備驅動,通常會創建一個MODULE_DEVICE_TABLE。

6、內核模塊的編譯方法

我們可以為代碼清單4.1的模板編寫一個簡單的Makefile:

obj-m := hello.o

并使用如下命令編譯Hello World模塊:

make -C /usr/src/linux-2.6.15.5/ M=/driver_study/ modules

如果當前處于模塊所在的目錄,則以下命令與上述命令等效:

make –C /usr/src/linux-2.6.15.5 M=$(pwd) modules

C后指定的是Linux內核源代碼的目錄,而M=后指定的是hello.c和Makefile所在的目錄,編譯結果如下:

root@imx6:~$ make -C /usr/src/linux-2.6.15.5/ M=/driver_study/ modules make: Entering directory `/usr/src/linux-2.6.15.5'CC/driver_study/hello.o /driver_study/hello.c:18:35: warning: no newline at end of fileBuilding modules, stage 2.MODPOSTCC /driver_study/hello.mod.o LD /driver_study/hello.ko make: Leaving directory `/usr/src/linux-2.6.15.5'

從中可以看出,編譯過程中,經歷了這樣的步驟:先進入Linux內核所在的目錄,并編譯出hello.o文件,運行MODPOST會生成臨時的hello.mod.c文件,而后根據此文件編譯出hello.mod.o,之后連接hello.o和hello.mod.o文件得到模塊目標文件hello.ko,最后離開Linux內核所在的目錄。

7、實例解析

現在我們定義一個包含2個參數的模塊,并觀察模塊加載時被傳遞參數和不傳遞參數時的輸出。

#include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL");static char *book_name = "dissecting Linux Device Driver"; static int num = 4000;static int book_init(void) {printk(KERN_INFO " book name:%s\n",book_name);printk(KERN_INFO " book num:%d\n",num);return 0; }static void book_exit(void) {printk(KERN_INFO " Book module exit\n "); }module_init(book_init); module_exit(book_exit); module_param(num, int, S_IRUGO); module_param(book_name, charp, S_IRUGO);MODULE_AUTHOR("Song Baohua, author@linuxdriver.cn"); MODULE_DESCRIPTION("A simple Module for testing module params"); MODULE_VERSION("V1.0");

對上述模塊運行“insmod book.ko”命令加載,相應輸出都為模塊內的默認值,通過察看“/var/log/messages”日志文件可以看到內核的輸出:

root@imx6:~$ tail -n 2 /var/log/messages Jul 2 01:03:10 localhost kernel: <6> book name:dissecting Linux Device Driver Jul 2 01:03:10 localhost kernel: book num:4000

當用戶運行“insmod book.ko book_name=’GoodBook’ num=5000”命令時,輸出的是用戶傳遞的參數:

root@imx6:~$ tail -n 2 /var/log/messages Jul 2 01:06:21 localhost kernel: <6> book name:GoodBook Jul 2 01:06:21 localhost kernel: book num:5000

三、總結

本文主要講解了Linux內核模塊的概念和基本的編程方法。內核模塊由加載/卸載函數、功能函數以及一系列聲明組成,它可以被傳入參數,也可以導出符號供其它模塊使用。

由于Linux設備驅動以內核模塊的形式而存在,因此,掌握上述內容是編寫任何類型設備驅動的必須。在具體的設備驅動開發中,將驅動編譯為模塊也有很強的工程意義,因為如果將正在開發中的驅動直接編譯入內核,而開發過程中會不斷修改驅動的代碼,則需要不斷的編譯內核并重啟Linux,但是如果編譯為模塊,則只需要rmmod并insmod即可,開發效率為大為提高。

總結

以上是生活随笔為你收集整理的linux内核驱动模块开发步骤及实例入门介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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

日日夜夜精品视频天天综合网 | 国产资源在线视频 | 欧美日韩高清不卡 | 日本黄色一级电影 | av电影免费 | 欧美国产精品一区二区 | 91亚色视频在线观看 | 中文字幕在线视频精品 | 日韩中文免费视频 | 在线免费观看亚洲视频 | 一区二区三区四区精品 | 亚洲免费视频在线观看 | 日韩在线三区 | 九九国产精品视频 | www免费网站在线观看 | 91麻豆精品国产91久久久更新时间 | 五月天狠狠操 | 91视频传媒 | 91在线精品一区二区 | 国产视频 亚洲视频 | 97成人免费 | 国产美女在线精品免费观看 | 999超碰| 亚洲春色成人 | 亚洲欧洲在线视频 | 国产精品毛片一区 | 久久综合综合久久综合 | 国产精品午夜久久 | 国产成人三级一区二区在线观看一 | 日韩精品久久久免费观看夜色 | 免费看的黄色录像 | 日韩视频精品在线 | 在线观看视频在线 | 日韩一二区在线 | 亚洲精品乱码久久久久久写真 | av中文天堂 | 欧美精品久久久久久久 | 天天曰天天爽 | 探花视频在线观看免费版 | www.97色.com| 91看片淫黄大片一级在线观看 | 91av播放| 国内精品美女在线观看 | 亚洲国产偷 | 麻豆传媒视频在线 | 天天干夜夜擦 | www天天操| 东方av在线免费观看 | 午夜性生活 | 国产精品男女视频 | 在线观看av片 | 麻豆国产在线视频 | 97人人模人人爽人人喊网 | 精品久久99 | 日本最新一区二区三区 | 欧美日韩免费一区二区 | 久视频在线播放 | 久久黄色免费观看 | 婷婷激情小说网 | 免费视频久久 | 久久午夜电影 | 97国产大学生情侣白嫩酒店 | 国产日韩精品久久 | 福利视频在线看 | 五月天久久精品 | 亚洲aⅴ久久精品 | 99精品在线 | 成人黄色小说视频 | 午夜精品三区 | 国产资源免费在线观看 | 99视频一区二区 | 一区二区三区电影大全 | 最新不卡av | 久色小说| 久久久久网址 | 国产精品成人久久久 | 玖玖在线免费视频 | 久久人人做 | www.亚洲视频.com | 99久久婷婷国产综合精品 | 欧美天堂久久 | 久久福利电影 | 亚洲天天干 | 久久国产精品一区二区 | 中文字幕乱码一区二区 | 国产精品入口久久 | 九色精品免费永久在线 | 亚洲国产欧美在线人成大黄瓜 | 97国产大学生情侣酒店的特点 | 中文字幕久久精品一区 | 欧美激情视频在线免费观看 | 国产一区二区播放 | 欧美精品亚洲二区 | 国产女做a爱免费视频 | 成人一级影视 | 美女精品国产 | 久久免费黄色网址 | 黄色大全视频 | 色综合久久精品 | 久久精品免费 | 一区二区三区日韩视频在线观看 | 日韩高清av在线 | 97成人在线观看 | 久99视频 | 91精品人成在线观看 | 午夜精品福利影院 | 91久久久久久久一区二区 | 激情视频区 | 91片黄在线观 | 国产成人精品av久久 | 黄色一二级片 | 2021av在线 | av先锋中文字幕 | va视频在线 | 永久免费毛片在线观看 | 国产在线小视频 | 五月天伊人 | 91精品国产成人www | 黄色网址国产 | 欧美精品一级视频 | 国产精品自产拍在线观看中文 | 最近免费中文字幕mv在线视频3 | 久久精品国产精品亚洲精品 | 精品久久久久久久久久久院品网 | 中文字幕专区高清在线观看 | 97日日碰人人模人人澡分享吧 | 超碰在线资源 | aⅴ视频在线 | 91丨九色丨蝌蚪丨对白 | 亚洲一区精品人人爽人人躁 | 日韩精品专区在线影院重磅 | 国内视频在线观看 | 国产麻豆精品久久一二三 | 色999在线| av资源免费看 | www.婷婷色| 精品黄色在线观看 | 久久人人艹| 中文字幕国产一区 | 精品国产一区二区三区蜜臀 | 91香蕉视频色版 | 日韩欧美有码在线 | 国产精品一区二区三区四 | 六月色婷婷 | 黄色av三级在线 | 美女黄网久久 | 国产免费又爽又刺激在线观看 | 久久精品亚洲综合专区 | 久久精品伊人 | 男女靠逼app| 91天堂在线观看 | 玖玖玖影院 | 在线观看中文字幕一区 | 亚洲成人av片 | 人人插人人澡 | 日本成人免费在线观看 | 免费国产在线观看 | 亚洲精品午夜久久久久久久 | 美女视频又黄又免费 | 久久综合9988久久爱 | 国产精品久久久久免费观看 | 日本aaaa级毛片在线看 | 亚洲情感电影大片 | 狂野欧美激情性xxxx | 精品亚洲一区二区 | 国产精品一区二区三区免费看 | 亚洲一区视频免费观看 | 欧美aaa视频| 国产精品1区2区3区 久久免费视频7 | 久久精品美女 | 久久99日韩| 久久五月情影视 | 国产亚洲视频在线免费观看 | 国产精品大尺度 | 国产视频精品久久 | 国产成人精品一区二 | 天天操天天操 | 欧美成人精品欧美一级乱黄 | 麻豆精品传媒视频 | 黄色成人av网址 | www黄色av| 五月天网页| 亚洲欧美日韩一区二区三区在线观看 | 深夜国产在线 | 五月婷婷一级片 | 国产精品免费一区二区三区 | 久久理论片 | 久艹在线免费观看 | 91精品国产综合久久福利 | 国产在线视频一区二区三区 | 伊人婷婷激情 | 国产亚洲日本 | 亚洲在线视频免费 | 日韩在线欧美在线 | 日韩在线国产精品 | 成人在线免费观看视视频 | 高清日韩一区二区 | 久久一区二区三区日韩 | 国产无遮挡猛进猛出免费软件 | 欧美中文字幕第一页 | 免费三级黄| 91福利区一区二区三区 | 国产亚洲视频中文字幕视频 | av专区在线 | 久草在线视频新 | 亚洲 欧美 日韩 综合 | 午夜精品视频一区 | 久在线| 五月天综合色 | 国产成人综合图片 | 日韩av黄| 69精品久久 | 在线观看亚洲视频 | 男女啪啪免费网站 | 国产中文字幕av | 超碰免费av| 国产一区在线视频 | 500部大龄熟乱视频使用方法 | 在线精品视频免费观看 | 亚洲精品福利在线 | 区一区二区三在线观看 | 最近日本mv字幕免费观看 | 特级西西人体444是什么意思 | 久久视频中文字幕 | 500部大龄熟乱视频使用方法 | 超碰99人人 | 欧美日韩性生活 | 日本午夜在线观看 | 亚洲五月| 91av视屏 | 国内偷拍精品视频 | 韩国av在线播放 | 国产精品久久三 | 国产视频69| 最新午夜 | av大全在线 | 精品久久美女 | 黄色av网站在线免费观看 | 日韩a欧美| 久久久亚洲麻豆日韩精品一区三区 | 激情五月亚洲 | 成人免费在线观看电影 | 精品国内自产拍在线观看视频 | 亚洲一区二区精品在线 | 国产视频在 | 欧美韩国日本在线观看 | 国产精品美乳一区二区免费 | 欧美日韩国产一区二 | 九色福利视频 | 九九交易行官网 | 天天插一插| 国产在线播放不卡 | 97人人模人人爽人人少妇 | 亚洲h视频在线 | 日韩久久精品一区二区 | 久久久麻豆精品一区二区 | 亚洲国产视频a | 色网站在线免费观看 | 精品国产午夜 | 99精品在线播放 | 九九热久久久 | 亚洲国产中文字幕在线视频综合 | 免费国产黄线在线观看视频 | 永久av免费在线观看 | 丁香六月久久综合狠狠色 | 在线免费观看欧美日韩 | 久久久99精品免费观看乱色 | 天天狠狠 | 日韩黄色中文字幕 | 国产精品一区二区免费视频 | 亚洲精品毛片一级91精品 | 最新av电影网站 | 国产精品第 | 中文字幕欧美日韩va免费视频 | 91av视频免费在线观看 | 中文字幕在线一二 | 国产精品久久免费看 | 日韩高清在线看 | 免费在线国产视频 | 国产专区免费 | 久久国产精品偷 | 97精品国产97久久久久久 | 五月婷婷中文字幕 | 黄色成年片 | 亚洲综合色丁香婷婷六月图片 | 久久免费电影网 | 国产色视频一区二区三区qq号 | 人人爽人人爽人人片av | av再线观看 | 国产亚洲精品久久久久久大师 | 中文字幕日韩在线播放 | 久久精品亚洲综合专区 | 蜜臀av性久久久久av蜜臀三区 | 欧美日韩不卡一区二区三区 | 欧美日韩国产xxx | 成人国产网站 | 在线看片成人 | 国产精品99免视看9 国产精品毛片一区视频 | 五月婷婷综合久久 | 亚洲精品色 | 一区中文字幕在线观看 | 久久九九视频 | www.com黄| 欧美日韩国产二区三区 | 午夜少妇一区二区三区 | 超碰人人草人人 | 1区2区视频 | 亚洲精品资源 | 日韩欧美精品在线视频 | 成人免费 在线播放 | 亚洲国产高清视频 | 久草在线99 | 国产精品成人自产拍在线观看 | 久久国产精品一二三区 | 国产成人一区二区在线观看 | 免费看毛片在线 | 久久免费公开视频 | 中文字幕在线第一页 | 精品色综合 | 亚洲综合一区二区精品导航 | 中文字幕欧美三区 | 69国产在线观看 | 久久久久久国产精品久久 | 97超碰在线视 | 日本在线视频一区二区三区 | 久久久久久久久久免费 | 久久久久久国产精品亚洲78 | 黄色网在线播放 | 欧美日韩精品影院 | 欧美亚洲免费在线一区 | 开心激情综合网 | 精品欧美小视频在线观看 | av电影免费在线看 | 尤物97国产精品久久精品国产 | 亚洲天堂视频在线 | 国产剧情av在线播放 | 一本一本久久a久久 | 黄色三级免费 | av在线小说 | 婷婷丁香六月 | 在线观影网站 | 九九九在线观看 | 91九色视频观看 | 久久久精品亚洲 | 久久一区精品 | 久久中国精品 | 九九免费精品视频在线观看 | 亚洲国产午夜 | 婷婷在线色 | 日韩在线视频网址 | 亚洲h视频在线 | 国产精品成人在线观看 | 女人高潮特级毛片 | 久久综合成人网 | 日韩欧美精品在线观看视频 | 日韩在线视频网站 | 美州a亚洲一视本频v色道 | 毛片网站观看 | 中文字幕在线免费97 | 日韩免费视频观看 | 91高清免费在线观看 | 992tv在线观看网站 | 97视频在线观看视频免费视频 | 亚洲国产成人高清精品 | 久久99国产一区二区三区 | 中文字幕在 | 友田真希x88av| 精品国产视频在线观看 | 中文字幕高清视频 | 国产精品久久久久aaaa九色 | 三级黄色a | 深夜福利视频在线观看 | 国产黄色精品在线 | 成人免费毛片aaaaaa片 | 97精品视频在线播放 | 91av国产视频 | 亚洲精品国偷拍自产在线观看蜜桃 | 人人超在线公开视频 | 中文字幕一区二区三区乱码不卡 | 最近免费观看的电影完整版 | 国产精品第72页 | 国产免费av一区二区三区 | 免费日韩一级片 | 欧美久久久 | 久久久精品免费看 | 91精品视频导航 | 国产精品短视频 | zzijzzij亚洲成熟少妇 | 97精品在线| 久操久 | 狠狠色狠狠色终合网 | 超碰国产在线 | 午夜10000| 亚洲91在线| 婷婷激情五月综合 | 99色视频在线 | 99在线免费观看视频 | 综合久久久久久 | 麻豆91网站| 91精品一区二区在线观看 | 麻豆传媒电影在线观看 | 国产三级av在线 | 黄色最新网址 | 成人av电影在线 | 中文字幕欧美日韩va免费视频 | 国产 在线 高清 精品 | 天天做天天爱夜夜爽 | 国产美女久久久 | 在线v片免费观看视频 | 最近中文字幕国语免费av | 久草在线手机视频 | 丁香av | 免费在线观看亚洲视频 | 天天五月天色 | 丝袜美腿亚洲 | 久久色视频| 久久久久亚洲精品国产 | 成人国产精品电影 | 成人毛片一区二区三区 | 久草在在线 | 日韩激情第一页 | 九九99视频 | 国产99久久久国产 | 欧美午夜视频在线 | 色99网| 久久9999久久免费精品国产 | 99视频偷窥在线精品国自产拍 | 欧美一级大片在线观看 | 国产精品久久久亚洲 | 亚洲人久久 | 在线精品视频免费观看 | 国产精品免费不 | 91av官网| 一本—道久久a久久精品蜜桃 | 草莓视频在线观看免费观看 | 色久av | 久久99久久99精品免视看婷婷 | 国产精品久久久久久久久婷婷 | 日韩在线看片 | 91一区啪爱嗯打偷拍欧美 | 99 久久久久| 欧美精品在线视频观看 | 日韩和的一区二在线 | 国产精品麻豆免费版 | a级国产片| 亚洲精品国产麻豆 | 一区二区在线电影 | 成人av中文字幕在线观看 | 黄色毛片在线观看 | 色综合久久久久综合 | 婷婷5月激情5月 | 色欧美88888久久久久久影院 | 免费色视频网址 | 九九爱免费视频在线观看 | 99riav1国产精品视频 | 欧美男男激情videos | 日本精品中文字幕在线观看 | 成人av中文字幕在线观看 | 亚洲欧美视频一区二区三区 | 天天操福利视频 | 五月天久久激情 | 婷婷亚洲最大 | 狠狠躁夜夜躁人人爽视频 | 人交video另类hd| 国产日韩在线观看一区 | 麻豆传媒视频在线免费观看 | 久久久久久久久福利 | 一区二区成人国产精品 | 久久久久99精品成人片三人毛片 | 久久99精品久久只有精品 | 亚洲国产成人精品电影在线观看 | 亚洲a在线观看 | 玖玖精品视频 | 久久久久激情 | 色综合天天做天天爱 | 香蕉国产91 | 五月婷婷色 | 久久99网站 | 97在线观看免费高清完整版在线观看 | 欧美午夜久久久 | 日韩精品一区二区三区高清免费 | 丰满少妇一级 | 在线观看你懂的网址 | 亚洲成人精品 | 国产在线观看高清视频 | 亚洲黄色成人 | 日韩专区在线 | 国产精品久久网站 | 日韩欧美成 | 久久国产精品99久久久久久丝袜 | 五月婷婷六月综合 | www.五月天激情 | 成人一级免费视频 | 国产精品久久久久国产精品日日 | 中文字幕在线观看免费 | 特级毛片在线免费观看 | 亚洲伊人网在线观看 | 国产精品一区专区欧美日韩 | 操久久免费视频 | 97精品欧美91久久久久久 | 98超碰在线 | 最近中文字幕mv免费高清在线 | 综合在线色 | 国产成人高清在线 | 国产黄色一级片在线 | 国产最新网站 | 久久久久久国产精品亚洲78 | 91亚洲激情 | 五月婷婷中文网 | 亚洲免费精品视频 | av黄色影院 | avhd高清在线谜片 | 国产精品96久久久久久吹潮 | 日韩综合第一页 | 97国产小视频 | 97在线视| 欧美a性 | 天天干夜夜夜操天 | 97人人超 | av超碰免费在线 | 国产999免费视频 | 久久精品最新 | 日韩成人看片 | 日韩高清一区 | 99久久精品免费视频 | 91片黄在线观 | 日韩有码网站 | 成人黄色视 | 99久久精品国产观看 | 日韩av影片在线观看 | 亚洲国产日韩精品 | 91在线看| 人人玩人人添人人 | 欧美资源在线观看 | 国产一级在线看 | 九七在线视频 | av888.com| 日韩免费电影网 | 美女av免费 | 久久香蕉一区 | 久久久五月天 | 国产美女精品视频 | 国产区第一页 | 香蕉视频久久 | 婷婷视频在线观看 | 日韩av综合网站 | 精品国产成人av在线免 | 国产精品久久久久四虎 | 人人玩人人添人人澡超碰 | 日韩免费三区 | 国产高清不卡在线 | 99久久99久久免费精品蜜臀 | 日韩视频在线不卡 | 日韩高清在线不卡 | 好看的国产精品视频 | 射久久 | a色视频 | 国产h片在线观看 | av免费线看 | 中国一级特黄毛片大片久久 | 亚洲视频免费 | 午夜资源站 | 亚洲性xxxx| 成年人免费看片网站 | 91爱爱网址| 男女视频91| 国产毛片久久久 | 99热九九这里只有精品10 | 99久久99热这里只有精品 | 久久视频网址 | 91天堂在线观看 | 日韩在线免费 | 中文字幕字幕中文 | 成人免费视频网 | 一区二区三区四区免费视频 | 久久人人爽爽人人爽人人片av | 日韩理论片 | av免费观看网址 | 色综合久久66 | 日韩videos| 97在线影视 | 韩日av在线 | 久久精品视频网 | 天天干天天在线 | 国产香蕉97碰碰碰视频在线观看 | 热久久国产 | 三级黄在线 | 九九热在线播放 | 精品视频免费播放 | 手机在线日韩视频 | 在线中文字幕一区二区 | 久久精品欧美 | 久久久久中文字幕 | 日日草天天草 | 人人爽人人爽人人 | 国产精品一区在线 | 日韩三级一区 | www.夜夜爽| www.人人草| 久久久精品二区 | 波多野结衣一区二区 | 最近最新中文字幕 | 亚洲综合精品视频 | 国产亚洲精品中文字幕 | 国产精品一区一区三区 | 日韩高清成人 | 天天天在线综合网 | 草久在线观看视频 | 久久黄色精品视频 | 狠狠五月婷婷 | 国产精品99久久久 | 丝袜美女视频网站 | 99精品国产成人一区二区 | 国产精品一区二区三区电影 | 久久伦理| 色婷婷狠狠干 | 国际精品久久久 | 六月婷婷久香在线视频 | 婷婷av色综合| 欧美精彩视频在线观看 | 不卡精品| 亚洲精品99久久久久中文字幕 | 中文字幕五区 | 成人一级片视频 | 日韩二区在线 | 天堂在线一区二区三区 | 国产综合精品一区二区三区 | 日韩欧美国产成人 | 亚洲精品久久在线 | 久久手机免费视频 | 亚洲精品视频在线观看视频 | 国产精品1024 | 日韩精品免费在线 | 亚洲激情在线视频 | 超碰大片 | 99久久999久久久精玫瑰 | 97在线观看免费高清 | 成人精品视频久久久久 | 国产免费一区二区三区最新 | 337p西西人体大胆瓣开下部 | 四虎国产视频 | 国产在线久久久 | 国产人成在线视频 | 久久伊人五月天 | 天天干天天色2020 | 99久久99热这里只有精品 | 特级黄色视频毛片 | 欧洲一区二区三区精品 | 激情网站 | 中文字幕精品一区久久久久 | 色鬼综合网 | 黄色软件网站在线观看 | 午夜美女影院 | 911亚洲精品第一 | 国产精品黄色av | 人人爱爱 | a在线播放 | 国产一级高清视频 | 999久久久 | 中文字幕免费高 | 日韩欧美在线影院 | 狠狠天天 | 婷婷色综 | 999色视频| 亚洲精品视频免费在线 | 99久久国产免费,99久久国产免费大片 | 美女久久久久久久久久 | 欧美在线视频一区二区 | 亚洲精品www久久久久久 | 国产精品黄色在线观看 | 精品一区 在线 | 天天射天天拍 | 一区二区三区影院 | 亚洲精品一区二区久 | 中文字幕高清免费日韩视频在线 | 久草视频在线资源站 | 亚洲码国产日韩欧美高潮在线播放 | 久久久高清视频 | 精品欧美一区二区三区久久久 | 天天干天天操天天做 | 久久曰视频 | 国产一级片免费观看 | 国产一区免费在线观看 | 日韩在线一区二区免费 | 中文字幕91视频 | 国产一级二级在线 | 99视频| 日韩精品中文字幕有码 | 国产一区二区视频在线 | 久久免费视频网 | 国产精品毛片完整版 | www五月天com | 亚洲国产精品视频在线观看 | 国产一区二区精品在线 | 一本一道久久a久久综合蜜桃 | 国产精品一区免费在线观看 | www.黄色| 午夜视频在线观看欧美 | 欧美日韩免费观看一区二区三区 | 久久免费视频在线观看 | 国产亚洲精品免费 | 午夜视频二区 | 日b视频在线观看网址 | 日本高清中文字幕有码在线 | 久久久精品成人 | 黄色影院在线免费观看 | 久久国产精品精品国产色婷婷 | 永久免费视频国产 | 一区二区三区高清不卡 | 波多野结衣视频一区二区 | 丝袜美女在线观看 | 国产一区二区三区免费视频 | 国产精品va在线播放 | 在线视频第一页 | 久久久99国产精品免费 | 亚洲天天 | 亚洲一级在线观看 | 超碰人人舔 | 天天摸天天弄 | 久久综合丁香 | 久久开心激情 | 在线激情小视频 | 最新超碰在线 | 免费91麻豆精品国产自产在线观看 | 日韩欧美区 | wwwwwww黄 | 最近日韩中文字幕中文 | av丝袜美腿 | 免费看色网站 | 成人欧美一区二区三区在线观看 | 欧美激情综合五月色丁香小说 | 国产香蕉久久精品综合网 | 久久国产精品99久久久久久丝袜 | 91在线观 | 手机在线看片日韩 | 亚洲有 在线 | 成人午夜黄色影院 | 欧美另类网站 | 国产专区一 | 日韩精品一区二区三区三炮视频 | 亚洲 欧美 综合 在线 精品 | 久久老司机精品视频 | 国产麻豆成人传媒免费观看 | 99精品免费在线 | a天堂最新版中文在线地址 久久99久久精品国产 | 在线观看www. | 国产福利在线免费 | av中文字幕第一页 | 9色在线视频| 激情视频一区二区三区 | 亚洲伊人色| 人人狠狠综合久久亚洲 | 激情丁香 | 欧美精品中文在线免费观看 | 97国产 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 人人玩人人添人人澡超碰 | 最近2019好看的中文字幕免费 | 久草在线视频首页 | 97夜夜澡人人爽人人免费 | 成人小视频在线观看免费 | 欧美精彩视频在线观看 | 国产一区二区在线播放 | 一区在线免费观看 | www.五月天婷婷.com | 国产精品综合在线 | 狠狠的干| 久久精品播放 | 久久精品伊人 | 久久激情五月婷婷 | 中文字幕日韩免费视频 | 国产成人1区 | 激情综合一区 | 麻豆影视网 | 狠狠久久婷婷 | 伊人天天色 | 久久一区二区三区日韩 | 一区二区三区中文字幕在线观看 | 国产精品久久久久av | 碰超在线观看 | 91超在线 | 中文字幕资源在线 | 日韩一区二区三区不卡 | 亚洲日本va午夜在线电影 | 97av在线视频 | 国产亚洲欧美一区 | 国产资源在线视频 | 爱爱av网| 欧美精品乱码久久久久久按摩 | 在线观看的av | 日本中文字幕在线一区 | av在线播放中文字幕 | 五月婷久| 在线免费国产 | 婷婷在线视频 | 国产成人精品av久久 | 久久国产欧美日韩 | 中文视频在线看 | 精品国产免费久久 | 中文字幕中文中文字幕 | 久久九九久久九九 | 天堂网av在线 | 丰满少妇高潮在线观看 | 在线视频免费观看 | www.黄色小说.com | 97超碰人人干 | 五月天网站在线 | 亚洲天堂网视频 | 成人一级视频在线观看 | 瑞典xxxx性hd极品 | 狠狠操影视 | 国产成人精品一区二区三区福利 | 久久一久久 | 国产视频一区在线 | 亚洲国产网站 | 91精品一区在线观看 | 超碰在线97免费 | 国产麻豆视频网站 | 亚洲黄色区 | 欧美一级久久 | 丁香九月激情 | 超碰伊人网 | 91完整视频| 国产精品嫩草影院123 | 国产一区二区在线观看视频 | 亚洲一级黄色 | 日韩天天操 | 国产成人精品一区二三区 | 色在线中文字幕 | 天天爽夜夜操 | 日韩在线观看一区二区 | 中文字幕资源站 | 啪啪小视频网站 | 亚洲黄色小说网 | 999ZYZ玖玖资源站永久 | 91av原创| 国产精品久久久久久久久久久久午夜片 | 国产中文欧美日韩在线 | 免费日韩三级 | 免费看一级特黄a大片 | 91九色视频观看 | 国产亚洲精品久久19p | 久久久首页 | 久久精品2| 日韩在线视频在线观看 | 91九色视频国产 | 久久久国产精品亚洲一区 | 天天射天| 日韩av网站在线播放 | 亚洲精品色婷婷 | 波多野结衣网址 | 国产一区二区三区免费视频 | 日韩欧美精品在线视频 | 国产精品综合在线 | 国产成人亚洲在线观看 | 99在线精品视频观看 | 最近中文字幕完整高清 | 久久视频这里只有精品 | 亚洲综合色视频在线观看 | 啪啪午夜免费 | 欧美日韩一区二区三区视频 | www.午夜 | 免费a视频 | 国产精品v欧美精品 | 国产成人精品一二三区 | 成人av高清在线观看 | 在线视频日韩一区 | 国产美女搞久久 | 国产精品成人免费精品自在线观看 | 色偷偷男人的天堂av | 久久久久久久久久久国产精品 | 国产亚洲精品成人 | 精品国产一区二区三区四区在线观看 | 欧美 日韩 久久 | 99久久久久国产精品免费 | ww视频在线观看 | 国产免码va在线观看免费 | 欧美黑人性爽 | 在线观看亚洲成人 | 亚洲在线看 | 亚州五月| 在线免费日韩 | 久久久久国产免费免费 | 国产r级在线观看 | 国产亚洲欧美日韩高清 | 国产精品一区二区麻豆 | 国产精品一区二区在线观看免费 | 久久人人爽人人片 | 97超碰人人澡人人爱 | 欧美日韩精品在线观看视频 | 少妇性xxx | 国产小视频在线免费观看视频 | 亚洲成人一区 | 四虎永久网站 | 欧美激情精品久久久久 | 国产成人av在线 | 日韩午夜高清 | 看国产黄色大片 | 久久精品国产久精国产 | 日韩一二区在线 | 91精品久久久久久久久久入口 | 国产精品欧美日韩 | 国产在线高清视频 | 久久伊99综合婷婷久久伊 | 日日爱av| 日韩一级黄色av | 色资源二区在线视频 | 免费视频成人 | 久色网| www久久久久| 九九热99视频 | 日韩欧美一级二级 | 午夜精品久久久 | 天天爽人人爽夜夜爽 | 91高清视频在线 | 婷婷丁香自拍 | 黄色成人在线网站 | 欧美成年人在线观看 | 色综合在| 在线观看色网站 | 99久久网站 | 亚洲 欧美 综合 在线 精品 | 欧美日韩亚洲第一 | 国产成人a亚洲精品v | 日韩高清不卡在线 | 国产免费久久久久 | 久久免费中文视频 | 成人91在线 | 国产中文字幕在线视频 | 午夜精品久久久99热福利 | 免费在线看v | 成人av在线影视 | 日韩中字在线观看 | 亚洲伦理一区 | 亚洲精品国产精品久久99 | 综合网天天 | 久久综合精品一区 | 99c视频高清免费观看 | 99精品在线观看 | 狠狠色狠狠综合久久 | 在线免费观看国产精品 | 综合色婷婷 | 成人污视频在线观看 | 91精品国产91久久久久久三级 | 欧美a级成人淫片免费看 | 欧美一级特黄aaaaaa大片在线观看 | 亚洲欧洲日韩 | 久草精品视频 | 天天综合天天做 | av大片免费| 狠狠操精品 | 激情视频在线高清看 | 81国产精品久久久久久久久久 | 黄色小视频在线观看免费 | 98久久| 18岁免费看片 | 天天干天天看 | 成人免费观看av | 色在线网站 | 91精品亚洲影视在线观看 | 激情五月婷婷综合网 | 国产成人在线免费观看 | 人人草在线视频 | 九九电影在线 | 久久激情小说 | 国产一区成人 | 国产成人精品三级 | 天天草天天干天天射 | 精品9999| 天天久久夜夜 | 黄色成人在线 | 在线观看日韩国产 | av在线看片| 日韩综合第一页 | 久草在线在线 | 亚洲精品在线一区二区 | 2019av在线视频 | 久久国产剧场电影 | 免费黄色网址大全 | 欧美日在线 | 一级淫片在线观看 | 成年人免费看片 | 日韩一区二区久久 | 美女福利视频一区二区 | 婷婷在线色| 精品在线不卡 | 国产一级在线免费观看 | 欧美另类性 | 正在播放国产一区 | 玖玖精品在线 | 日韩午夜小视频 | 久久国产电影 | 天堂av网站 | 一区二区三区在线观看中文字幕 | 在线a亚洲视频播放在线观看 | 最近2019年日本中文免费字幕 | 91麻豆精品国产自产在线游戏 | 99综合电影在线视频 |