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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

linux 内核驱动的poll,嵌入式Linux驱动开发(五)——poll机制原理以及驱动实现...

發(fā)布時(shí)間:2024/9/19 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux 内核驱动的poll,嵌入式Linux驱动开发(五)——poll机制原理以及驱动实现... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前情回顧:

再開始今天的內(nèi)容之前,先簡(jiǎn)單review一下,我們都用了什么方案來獲取按鍵值,他們的特點(diǎn)都是什么。只有不斷地理清了思路,我們才能夠更好的理解,為何會(huì)出現(xiàn)如此多的解決方案,當(dāng)遇到問題的時(shí)候,才可以對(duì)癥下藥。

第一種方案,也是最粗暴的一種,在應(yīng)用層通過一個(gè)死循環(huán)的read函數(shù),來不斷地查看底層read函數(shù),在底層我們并未做阻塞,每次應(yīng)用層read,底層都會(huì)給上層應(yīng)用返回值。那么,這個(gè)簡(jiǎn)單粗暴的方式,顯然是最不合理的,因?yàn)閞ead函數(shù)不斷地在讀取,使得CPU的使用率被死循環(huán)占用了99%,這基本上是災(zāi)難式的解決方案。雖然簡(jiǎn)單,但是代價(jià)也是顯而易見的。

為了降低CPU的使用率,那么就要避免使用死循環(huán)不斷地來從底層獲取信息,那么,也就產(chǎn)生了兩種解決思路,也分別就是第二篇文章中的兩種解決方案了。

第二種方案,直接舍棄了上層應(yīng)用read的操作,全部交給底層,通過中斷來實(shí)現(xiàn)。(request_irq 和 free_irq函數(shù)來注冊(cè)和卸載中斷)只要按鍵按下,進(jìn)入中斷模式,調(diào)用底層的中斷處理函數(shù),來將按鍵信息進(jìn)行打印。雖然上層應(yīng)用沒有什么影響,但是,這樣的方案也并不是我們想要的,因?yàn)?#xff0c;底層相對(duì)穩(wěn)定的部分,參與了他不該參與的部分——具體中斷如何解決。這樣其實(shí)也是災(zāi)難性的,難道因?yàn)樯蠈討?yīng)用程序的需求發(fā)生了改變,還需要修改底層的驅(qū)動(dòng)程序嗎?!這顯然要把從用戶到應(yīng)用層開發(fā)再到底層應(yīng)用開發(fā)人員給煩死。但是這個(gè)方案雖然不能解決需求,但它也并不是一無是處的,正是因?yàn)樗拇嬖?#xff0c;才出現(xiàn)了第三種解決的方案。

第三種方案,實(shí)際從底層解決思路的角度來看,是通過睡眠的方式解決的,從上層來看是通過阻塞來解決的。也就,上層應(yīng)用通過調(diào)用了阻塞式的read函數(shù)(這也是大部分 read 函數(shù)的使用場(chǎng)景),如果沒有數(shù)據(jù)返回來,就讓 read 阻塞在這里,上層應(yīng)用可以放心的死循環(huán)來調(diào)用 read, 不必?fù)?dān)心它會(huì)不停地調(diào)用底層而耗費(fèi)大量資源。對(duì)于底層如何來實(shí)現(xiàn)阻塞式的 read 呢?其實(shí)也很簡(jiǎn)單是通過睡眠的方式來實(shí)現(xiàn)的。

static DECLARE_WAIT_QUEUE_HEAD(wait_queue);

wake_up_interruptible(&wait_queue);

wait_event_interruptible(wait_queue, condition);

通過以上的函數(shù),來實(shí)現(xiàn)底層應(yīng)用的睡眠功能,結(jié)合第二種方案,在上層 read 的時(shí)候直接讓驅(qū)動(dòng)睡眠,而不是返回。通過注冊(cè)中斷處理函數(shù),在其中,來喚醒并通過copytouser函數(shù)來把數(shù)據(jù)返回到上層應(yīng)用的 read 函數(shù)中,從而實(shí)現(xiàn)了上層的阻塞功能。不但可以檢測(cè)到中斷的具體發(fā)生情況,同時(shí)也避免了 CPU 的高使用率的發(fā)生。

通過以上一系列的方法,初步實(shí)現(xiàn)了獲取按鍵值的需求,但是,還不能夠滿足我們的所有需求,比如,最后的解決方案是將 read 阻塞在了那里,這不一定能滿足我們所有的需求,因此,也誕生了以下的方案——poll機(jī)制。

延續(xù)之前文章中提到的最后一種方案,一直阻塞在那里可能會(huì)限制我們的需求,那么,是否可以通過一種方案,讓他不要一直阻塞,而是阻塞一段時(shí)間,如果沒有變化就先讓它返回,不要一直阻塞在那里。

對(duì)于Linux應(yīng)用開發(fā)來說,poll 機(jī)制的使用和 open、read函數(shù)的使用大同小異,只需要調(diào)用 poll 函數(shù)即可。關(guān)于這個(gè)函數(shù)的具體使用方法,可以通過man poll來查看具體的函數(shù)使用方法。

poll 函數(shù)的原型如下:

#include

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

根據(jù)man手冊(cè)的信息,可以在應(yīng)用層實(shí)現(xiàn) poll 函數(shù)和 read 函數(shù)的調(diào)用。

#include

#include

#include

#include

#include

#include

int main()

{

//打開設(shè)備文件

int fd = open("/dev/poll_eint", O_RDWR);

if(fd < 0)

{

printf("open error\n");

return -1;

}

#if 0

/*

poll 函數(shù)所接收的第一個(gè)參數(shù),該結(jié)構(gòu)體的內(nèi)容

*/

struct pollfd {

int fd; /* file descriptor 文件描述符*/

short events; /* requested events 輸入?yún)?shù)*/

short revents; /* returned events 輸出參數(shù),事件發(fā)生后由內(nèi)核來修改*/

};

#endif

//創(chuàng)建 struct polld 結(jié)構(gòu)體,并為其中的成員賦值

struct pollfd fds[1];

fds[0].fd = fd; //指定文件描述

fds[0].events = POLLIN;//有數(shù)據(jù)可以讀的時(shí)候返回

int ret = 0; //poll 函數(shù)的返回值,依據(jù)返回值判斷是否有數(shù)據(jù)可讀

unsigned char value = 0; //讀取的按鍵值

//循環(huán)查詢

while(1)

{

// int poll(struct pollfd *fds, nfds_t nfds, int timeout);

/*

fds:struct pollfd 數(shù)組,其中管理了文件描述以及輸入?yún)?shù)

ndfs: 需要通過 poll 機(jī)制管理的文件描述符數(shù)量

timeout:超時(shí)時(shí)間,單位為毫秒

*/

//調(diào)用 poll 函數(shù)

ret = poll(fds, 1, 5000);

//如果返回值為0,打印超時(shí)

if(!ret)

printf("timeout.....%d\n\n", ret);

else{

//返回值不為0,說明有數(shù)據(jù)可以讀取,通過 read 來讀取數(shù)據(jù)并打印

read(fd, &value, 1);

printf("value: %x\t ret: %d\n", value, ret);

}

}

return 0;

}

以上就是一個(gè)簡(jiǎn)單的通過 poll 查詢的應(yīng)用程序示例代碼。但是,Linux 系統(tǒng)是如何來實(shí)現(xiàn) poll 函數(shù)的,驅(qū)動(dòng)程序如何來寫是接下來要討論的話題。

和 open 一樣,上層調(diào)用 open 函數(shù),進(jìn)入內(nèi)核空間,調(diào)用 sys_open 系統(tǒng)調(diào)用,在逐層向下調(diào)用,一直到調(diào)用到驅(qū)動(dòng)程序中 file_operations 中注冊(cè)的 open函數(shù)為止。poll 函數(shù)也同樣,根據(jù)內(nèi)核源代碼,具體 poll 函數(shù)的調(diào)用原理如下。

poll機(jī)制的調(diào)用原理

應(yīng)用層通過調(diào)用: poll函數(shù)

進(jìn)入到內(nèi)核空間的系統(tǒng)調(diào)用: sys_poll(位于/linux/sys_poll.h 文件中)

do_sys_poll(...., timeout_jiffies)

poll_initwait(&table)

init_poll_funcptr(&pwq->pt, __pollwait)

pt->qproc = qproc //相當(dāng)于table->qproc = __pollwait

do_poll(nfds, head, &table, timeout)

for(;;) //死循環(huán)

if(do_pollfd(pfd, pt))

//do_pollfd中,調(diào)用mask = file->f_op->poll(file, pwait); return mask;

//實(shí)際此時(shí)就會(huì)調(diào)用到驅(qū)動(dòng)程序中的 poll 函數(shù)

p->qproc(filp, wait_address, p);//驅(qū)動(dòng)程序中的 poll 函數(shù),需要調(diào)用 poll_wait 函數(shù),poll_wait 函數(shù)中執(zhí)行了這個(gè)條語句

__pollwait()//把當(dāng)前進(jìn)程掛到隊(duì)列中去管理,并不休眠

count++; //如果驅(qū)動(dòng)的poll返回非0值,那么count++

pt = NULL;

if(count || !*timeout || signal_pending(current))

break; //break的三個(gè)條件:count非0;超時(shí);有信號(hào)等待處理

//如果條件不成立,會(huì)進(jìn)入到休眠狀態(tài)

//驅(qū)動(dòng)的poll:p->qproc(filp, wait_address, p) 把當(dāng)錢進(jìn)程掛到wait_address隊(duì)列中去

__timeout = schedule_timeout(__timeout) //休眠_(dá)_timeout的時(shí)間

根據(jù)以上的調(diào)用路線可以看到其中有一句f_op->poll(....),可以看出這個(gè)句話實(shí)際是從之前我們很熟悉的struct file_operations中取出了poll的函數(shù)指針,并且添加到一個(gè)超時(shí)隊(duì)列中來進(jìn)行調(diào)用管理的。

那么,我們只需要看看具體的 poll 函數(shù)原型是怎么樣的也就可以來寫poll 機(jī)制的驅(qū)動(dòng)了。

struct file_operations {

// .........

unsigned int (*poll) (struct file *, struct poll_table_struct *);

//.........

};

驅(qū)動(dòng)程序使用 poll 機(jī)制以及中斷機(jī)制來獲取按鍵值

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define EINT_PIN_COUNT 4

static const char* dev_name = "poll_eint";

static volatile unsigned int major = 0;

static struct class* poll_class;

static struct class_device* poll_class_device;

struct pin_desc

{

unsigned int pin;

unsigned int value;

};

//%kernel%\include\asm-arm\arch\irqs.h

//#define IRQ_EINT0 S3C2410_IRQ(0) /* 16 */

//中斷號(hào)數(shù)組

static const int eints[EINT_PIN_COUNT] =

{

IRQ_EINT0,

IRQ_EINT2,

IRQ_EINT11,

IRQ_EINT19

};

static struct pin_desc pins[4] =

{

{S3C2410_GPF0, 0x1},

{S3C2410_GPF2, 0x2},

{S3C2410_GPG3, 0x3},

{S3C2410_GPG11, 0x4},

};

unsigned int status = 0;

unsigned int condition = 0;

unsigned char value = 0;

static DECLARE_WAIT_QUEUE_HEAD(wait_queue); //初始化中斷等待序列

//中斷處理函數(shù)

static irqreturn_t irq_handler(int irq, void *dev_id)

{

//獲取按鍵值,如果按下則與0x80

struct pin_desc* desc = (struct pin_desc*) dev_id;

status = s3c2410_gpio_getpin(desc->pin);

if(status)

value = desc->value | 0x80;

else

value = desc->value;

//從睡眠隊(duì)列中喚醒

wake_up_interruptible(&wait_queue);

condition = 1;

return 0;

}

static ssize_t poll_read (struct file *file, char __user *buff, size_t size, loff_t *ppos)

{

//read 的時(shí)候直接進(jìn)入睡眠狀態(tài),有中斷發(fā)生的時(shí)候在中斷處理函數(shù)中喚醒

printk(".........read\n\n");

wait_event_interruptible(wait_queue, condition);

condition = 0;

//喚醒后,講數(shù)據(jù)發(fā)送到用戶空間

printk("read.........\n\n");

copy_to_user(buff, &value, 1);

return 0;

}

static unsigned int poll_poll (struct file *file, struct poll_table_struct *pts)

{

unsigned int mask = 0;

printk("poll<<<<<<<<<<<<<

// static inline void poll_wait(struct file * filp, wait_queue_head_t * wait_address, poll_table *p)

poll_wait(file, &wait_queue, pts); //將需要管理的文件描述符、休眠的隊(duì)列告訴內(nèi)核,內(nèi)核會(huì)將該進(jìn)程放到管理隊(duì)列中,但并不會(huì)在這里進(jìn)行休眠

printk("poll>>>>>>>>>>>>>>\n\n");

//如果按鍵被按下,返回非零值,以便應(yīng)用層判斷poll 返回值

if(condition)

mask |= POLLIN | POLLRDNORM;

return mask;

}

static int poll_open (struct inode *inode, struct file *file)

{

// 在 open 的時(shí)候注冊(cè)按鍵中斷

int i;

for(i = 0; i < EINT_PIN_COUNT; ++i){

request_irq(eints[i], irq_handler, IRQT_BOTHEDGE, dev_name, &pins[i]);

}

printk("interrupt register\n");

return 0;

}

static int poll_release (struct inode *inode, struct file *file)

{

//釋放之前注冊(cè)的中斷

//void free_irq(unsigned int irq, void *dev_id)

int i = 0;

for(;i < EINT_PIN_COUNT; ++i){

free_irq(eints[i], &pins[i]);

}

printk("button released\n");

return 0;

}

struct file_operations poll_fops =

{

.owner = THIS_MODULE,

.open = poll_open,

.read = poll_read,

.poll = poll_poll,

.release = poll_release,

};

static int __init poll_init(void)

{

major = register_chrdev(major, dev_name, &poll_fops);

poll_class = class_create(THIS_MODULE, dev_name);

poll_class_device = class_device_create(poll_class, NULL, MKDEV(major, 0), NULL, dev_name);

printk("init\n");

return 0;

}

static void __exit poll_exit(void)

{

unregister_chrdev(major, dev_name);

class_device_unregister(poll_class_device);

class_destroy(poll_class);

printk("exit\n");

}

module_init(poll_init);

module_exit(poll_exit);

MODULE_AUTHOR("Ethan Lee <4128127@qq.com>");

MODULE_LICENSE("GPL");

通過以上的代碼,就可以實(shí)現(xiàn)通過 poll 機(jī)制和中斷的方式來實(shí)現(xiàn)不完全阻塞的狀態(tài)來查詢按鍵值了。

那么以上的方法實(shí)際都是通過應(yīng)用層查詢的方式來實(shí)現(xiàn)了具體的按鍵值獲取任務(wù),是不是還有其他的方式來獲取按鍵值呢?

假設(shè)把應(yīng)用程序主動(dòng)查看的方式比作一個(gè)人通過不斷地打電話的方式來詢問快遞是否送達(dá),那么,是不是可以讓驅(qū)動(dòng)程序來給應(yīng)用程序打電話,通知他狀態(tài)發(fā)生了變化呢?

這個(gè)當(dāng)然是可以的,肯定需要用到進(jìn)程間的通訊方式。

具體的實(shí)現(xiàn)過程,在下一篇文章里面我們來探討吧。

總結(jié)

以上是生活随笔為你收集整理的linux 内核驱动的poll,嵌入式Linux驱动开发(五)——poll机制原理以及驱动实现...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

在线观看国产 | 国产录像在线观看 | 中国一级片免费看 | 国产精品日韩久久久久 | 精品欧美一区二区三区久久久 | 黄色av成人在线观看 | 五月婷久久 | 国产精品剧情 | 成人在线免费看 | 精品国产乱码久久久久久浪潮 | 激情综合网色播五月 | 日韩精品中文字幕av | 日本精品一区二区 | 九九久久婷婷 | 色视频网站免费观看 | 成人av.com | 国产小视频在线播放 | 天天操偷偷干 | 成人影片在线播放 | 久久精品看 | 夜夜操天天 | 国际精品久久 | 日韩中文幕 | 蜜臀av免费一区二区三区 | 日韩欧美精品一区 | 亚洲国产精品久久久久 | 日韩高清 一区 | 成人国产精品久久久春色 | 国产成人亚洲在线电影 | 日本黄色免费大片 | 国产在线毛片 | 国产一区欧美在线 | 天天综合网 天天综合色 | 国产中文字幕久久 | 日本精品久久久久中文字幕5 | 久久成人免费 | 成年人看片 | 伊人伊成久久人综合网站 | 精品1区2区| 国产18精品乱码免费看 | 国产精品人成电影在线观看 | 制服丝袜欧美 | 亚洲伊人第一页 | 在线91网| 激情久久小说 | 日日操操操 | 欧美黄在线 | 夜夜骑天天操 | 91九色自拍| 国产视频中文字幕 | 成人sm另类专区 | 日韩欧美视频免费在线观看 | 成人av免费在线观看 | 国产视频每日更新 | 五月综合网站 | 国产精品自拍在线 | 夜夜操天天干, | 日韩高清激情 | 国产资源网 | 五月婷婷开心 | 色爱成人网 | 在线看av网址 | 永久免费精品视频 | 99爱爱| 西西大胆免费视频 | 久久伊人八月婷婷综合激情 | 国产在线高清精品 | 香蕉久久国产 | 天堂入口网站 | 亚洲高清视频一区二区三区 | 丁香视频五月 | 国产精品免费观看视频 | 日韩免费在线观看视频 | 青青河边草观看完整版高清 | 婷婷射五月 | 色婷婷综合久久久中文字幕 | 九九热精品视频在线播放 | 午夜美女wwww | 久久免费片 | 黄色免费网 | 色综合久久久久久久久五月 | 日韩av中文在线观看 | 日本黄色免费电影网站 | 五月婷婷综合色拍 | 女人高潮特级毛片 | 日本精品免费看 | 日韩精品一区二区三区免费观看 | 97国产视频 | 一区二区三区在线看 | 91亚洲夫妻 | 国产免费又粗又猛又爽 | 中文字幕在线一区二区三区 | 二区视频在线 | 日本黄色免费网站 | 欧美成人精品欧美一级乱黄 | 成人免费在线观看电影 | 日韩视频www | 中文字幕影视 | 日韩在线视频线视频免费网站 | 91手机视频在线 | 日韩欧美在线综合网 | 国产自制av| 久久艹艹| 在线中文字母电影观看 | 成人性生交大片免费看中文网站 | 精品久久久一区二区 | 日本性视频 | 日韩动态视频 | 欧美孕妇视频 | 国产精品久久一区二区三区, | 久草视频在线新免费 | 天天五月天色 | 国产小视频在线免费观看视频 | 蜜臀精品久久久久久蜜臀 | 三上悠亚一区二区在线观看 | 日韩有码中文字幕在线 | 国产成人99av超碰超爽 | 九九久久电影 | 91在线免费播放 | 久久精品99久久久久久2456 | 久久综合九色综合欧美就去吻 | 亚洲成人黄色av | 亚洲天堂网视频 | 久久99深爱久久99精品 | 91在线一区| 91视频在线看 | 国产精品一区二区久久精品爱涩 | 亚州欧美视频 | 亚洲资源网 | 91污在线观看 | 欧美一级在线观看视频 | 日韩国产在线观看 | 韩国av一区二区三区在线观看 | 91夫妻自拍| www.com黄色| 欧美激情奇米色 | 欧美一区二区三区特黄 | 亚洲欧美日韩国产精品一区午夜 | 伊人首页 | 精品成人在线 | 精品国产成人在线影院 | 中文字幕视频一区 | 91麻豆精品国产自产在线游戏 | 91亚洲影院 | 国产黄色精品网站 | 国产手机在线精品 | 精品亚洲免费视频 | 亚洲天堂精品视频在线观看 | 国产精品99久久免费观看 | 99久久99热这里只有精品 | 有码中文字幕在线观看 | 亚洲成人午夜av | 午夜久久久久久久久久久 | 婷婷激情在线 | 伊人久久婷婷 | 国产精品久久婷婷六月丁香 | 中文字幕日韩高清 | 国产免费成人av | 日韩欧美在线视频一区二区三区 | 国产成人99久久亚洲综合精品 | 免费三级a| 国产成人三级在线播放 | 在线国产专区 | 天天做天天射 | 国产精品91一区 | 97超级碰碰碰视频在线观看 | 在线观看中文字幕视频 | www色片 | 国产成人精品一区二三区 | 国产二区视频在线 | 久久免费视频在线观看6 | 亚洲精品久久久久久久蜜桃 | 五月av在线| 国产成人久久精品一区二区三区 | 在线观看av不卡 | 中文字幕888 | 久久久免费看片 | 欧美一区二区在线免费看 | 国产精品99久久久久久宅男 | 免费v片 | 久99久久| 最新国产在线观看 | 日日日日| 欧美在线视频日韩 | 免费麻豆 | 久久婷婷国产色一区二区三区 | 欧美激情在线网站 | 国产又粗又硬又爽视频 | 亚洲全部视频 | 国产精品成人一区二区三区吃奶 | 狠狠色噜噜狠狠狠合久 | 国产精品久久久网站 | 亚洲一区日韩 | 久久69精品久久久久久久电影好 | 99久久日韩精品视频免费在线观看 | 精品一区久久 | 国产亚洲免费观看 | 国产精品久久久久久久久久久久午夜 | 91免费观看网站 | 天堂资源在线观看视频 | 日韩精品一区二区三区三炮视频 | 91久久偷偷做嫩草影院 | a成人v在线 | 国产精品成久久久久 | 成人一级在线 | 在线观看国产成人av片 | 在线观看完整版免费 | 黄色午夜| 一区二区三区电影大全 | 欧美另类美少妇69xxxx | www.99久久.com| 日韩精品久久久久久久电影99爱 | 女人高潮特级毛片 | 91九色成人 | 99久久精品久久久久久动态片 | 爱色av.com| 伊人久久精品久久亚洲一区 | 色wwww| 91最新中文字幕 | www.五月婷婷| 久久y| 在线日韩亚洲 | 色综合小说| av短片在线观看 | 欧美日韩国产在线 | 最近日本中文字幕a | 精品一区精品二区高清 | 少妇视频在线播放 | 久久人人添人人爽添人人88v | av日韩在线网站 | 成人影视免费 | 日本狠狠干 | 天堂av在线免费观看 | 毛片无卡免费无播放器 | 91高清不卡 | 亚洲精品视频 | 日日干日日色 | 最新中文字幕在线播放 | 九色porny真实丨国产18 | 亚洲天堂网视频 | 草在线| 亚洲免费婷婷 | 久久视频免费在线 | 国产人在线成免费视频 | 国产经典三级 | 久草视频精品 | 97在线免费视频观看 | 黄色成人影视 | 2019天天干夜夜操 | 玖玖在线免费视频 | 日韩成人精品一区二区三区 | 日精品在线观看 | 精品日本视频 | 久久综合免费视频影院 | 91网站在线视频 | 日黄网站 | av三级在线看| 97超碰站 | 亚洲春色奇米影视 | 欧美日视频 | 中文字幕一区2区3区 | 国产成人一区二区在线观看 | 久久dvd | 美女搞黄国产视频网站 | 亚洲免费视频观看 | 日日夜夜狠狠操 | 99精品久久只有精品 | 亚洲一区二区三区四区精品 | 九九九九九国产 | 天天射天天舔天天干 | 久草在线视频在线 | 国产精品自产拍在线观看桃花 | www.夜夜骑.com| 麻豆91小视频 | 干天天| 91在线麻豆 | 日韩欧在线| 国产一区二区三区四区大秀 | 超碰在线人人 | 久久久精品一区二区 | 国产群p视频 | 国产精品99久久久久 | 另类老妇性bbwbbw高清 | 婷婷五月在线视频 | 999久久久久 | 2023国产精品自产拍在线观看 | 一区在线观看视频 | 麻豆视频免费入口 | 亚洲人xxx | 欧美九九九 | 91九色蝌蚪视频在线 | 精品国产精品一区二区夜夜嗨 | 99久久99久久综合 | 狠狠干狠狠色 | 午夜视频播放 | 久久黄色免费视频 | 国产aaa大片 | 国产理伦在线 | 欧美一区在线观看视频 | 91麻豆精品国产 | 99热99热| 99爱这里只有精品 | 成人a视频在线观看 | 国产高清中文字幕 | 日本中文不卡 | 久久免费国产精品1 | 字幕网在线观看 | 最新久久免费视频 | 久久av影院| 九九有精品 | 奇米影视在线99精品 | 日韩av男人的天堂 | 久久激情视频 久久 | av电影 一区二区 | 91视频-88av| 欧美少妇18p | av免费看看 | 国产精品一区二区在线观看 | 亚洲久草网 | 啪啪激情网 | www.69xx | 91精品播放| 黄网站色视频 | 97伊人网| 最近av在线 | 日日爱网址 | 国产69精品久久久久久 | 国产欧美日韩一区 | 91在线最新 | 欧美精品二 | 看v片 | 在线免费看片 | 日韩av在线免费播放 | 欧美国产三区 | 午夜精选视频 | 精品免费观看视频 | 人人爽人人爽人人片 | 国产精品一区电影 | 国产探花视频在线播放 | 免费看国产一级片 | 亚洲精品www | 91亚洲精品久久久中文字幕 | 人人盈棋牌 | 国产精品一区二区无线 | 久热久草| 天天综合天天做 | 日韩av网站在线播放 | 视频在线观看入口黄最新永久免费国产 | 久久国产精品影片 | 久久免费国产精品 | 久久av网址 | 国产精品嫩草影院99网站 | 人人爽影院 | 国产精品黑丝在线观看 | 婷婷网在线 | 人人爽久久涩噜噜噜网站 | 天天夜夜操 | 国产91影院| 黄色网在线播放 | 亚洲国产成人在线观看 | 2019中文字幕网站 | 免费看片黄色 | 激情视频网页 | 久久a v视频 | 超碰999| 久久综合九色欧美综合狠狠 | 玖草在线观看 | 日韩r级电影在线观看 | 久久av观看| 国产精品午夜在线观看 | 最近更新好看的中文字幕 | 99久久精品国 | 在线观看中文字幕一区二区 | 久久成人在线视频 | 久久久久久毛片 | 中文在线字幕免 | 亚洲精品久久久蜜桃直播 | 91久久在线观看 | 国产精品99精品 | 波多野结衣久久资源 | 天天干夜夜想 | 久草在线手机视频 | 成人99免费视频 | 成人午夜影院在线观看 | 一区二区三区日韩在线观看 | www九九热 | 国产午夜精品一区二区三区在线观看 | 蜜臀久久99精品久久久酒店新书 | 在线不卡中文字幕播放 | 亚洲作爱| 国产一区黄色 | 国产中文字幕免费 | 日本在线观看视频一区 | 国产xxxx性hd极品 | 国产免费一区二区三区网站免费 | 亚洲春色综合另类校园电影 | 99r国产精品 | 不卡的av | 正在播放五月婷婷狠狠干 | 欧美极品一区二区三区 | 在线高清| 黄色一集片 | 青春草视频在线播放 | 久久精品一区二区三区视频 | 99久久精品日本一区二区免费 | 日韩欧美高清一区二区 | 在线成人看片 | 日本精品午夜 | 国产精品久久久久永久免费观看 | 中文字幕人成乱码在线观看 | 久久一区二区免费视频 | 免费美女久久99 | 激情黄色一级片 | 欧美 日韩 性 | 综合精品久久久 | 欧美性免费 | 久久手机在线视频 | 在线免费色视频 | 在线亚洲精品 | 国产精品毛片一区二区 | 日韩素人在线观看 | 日本在线中文在线 | 国产小视频在线免费观看视频 | 91av资源在线 | 免费韩国av | 日韩在线免费看 | 国产99久 | 久草精品在线 | 欧美在线视频二区 | 久草电影在线 | 国产一区二区观看 | 中文av网| 欧美性久久久 | 日韩视频a| a级国产乱理伦片在线播放 久久久久国产精品一区 | 国产精品网在线观看 | 国内精自线一二区永久 | 国产精品不卡一区 | 国产91精品高清一区二区三区 | 一区二区三区高清在线 | 免费成视频 | 激情久久伊人 | 99久久精品午夜一区二区小说 | 久久久亚洲麻豆日韩精品一区三区 | 欧美性免费| 国产精品欧美久久久久天天影视 | 粉嫩av一区二区三区四区在线观看 | 国产自制av | 日韩r级电影在线观看 | 深爱综合网 | 国产日韩欧美在线播放 | 国产精品久久久久影院日本 | 国产毛片在线 | 日韩亚洲在线视频 | 国产黄色精品在线 | 亚洲成年人av | 欧美精品久久久久久久免费 | av成人在线看| 久久综合九色综合97_ 久久久 | 婷婷伊人综合亚洲综合网 | 久久综合免费 | 天天操天天干天天操天天干 | 一区二区三区日韩在线观看 | 国产精品久久99精品毛片三a | 精品国产伦一区二区三区观看说明 | 国产黄a三级三级三级三级三级 | 欧美激情第28页 | 国产成人福利 | 日韩免费不卡视频 | 久久精品精品电影网 | 中文字幕一区二 | 亚洲高清视频在线观看 | 国产精品男女 | 成人h电影在线观看 | 亚洲美女在线国产 | 国产精品97 | 中文字幕av最新更新 | 九九精品无码 | 国产高清一级 | 精品久久久久久久久久久久 | 日韩欧美在线影院 | 国产一区在线免费 | japanese黑人亚洲人4k | 在线免费视频 你懂得 | 91精品无人成人www | 激情五月看片 | 国内外成人在线视频 | 日韩免费观看一区二区三区 | 日韩精品中文字幕在线 | 欧美日韩一区二区免费在线观看 | 国产午夜av | 亚洲精品免费播放 | 国产精品婷婷午夜在线观看 | 国产精品免费在线播放 | 婷婷激情欧美 | 黄色一级性片 | 亚洲成av人片在线观看www | 一区二区精品在线 | 久久精品韩国 | 日日综合网 | 亚洲韩国一区二区三区 | 成人在线小视频 | 欧美精品久久99 | 国产黄色网 | 国产精品大片在线观看 | 日本特黄一级片 | 韩国av一区二区 | 亚洲成人黄色在线 | 亚洲一区在线看 | 黄色av免费| 久久激情精品 | 欧美日韩一级久久久久久免费看 | 在线99 | 国产精品不卡在线 | av久久在线 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚州成人av在线 | 月下香电影| 91精品人成在线观看 | 91九色在线观看视频 | 国产专区精品视频 | 国产黄a三级三级三级三级三级 | 日本一区二区免费在线观看 | 久久精品123| 亚洲精选99 | 99久久激情视频 | 日韩av中文在线 | 精品久久久久久亚洲综合网站 | 精品视频国产 | 特级a老妇做爰全过程 | 免费91麻豆精品国产自产在线观看 | 99精品国产兔费观看久久99 | 国产在线91精品 | 国产韩国日本高清视频 | 制服丝袜成人在线 | 在线免费黄色片 | 黄色的视频 | www.夜夜爱 | 免费成人av电影 | 51久久成人国产精品麻豆 | 欧美夫妻性生活电影 | 亚洲精品在线视频播放 | 91人网站| 99爱精品视频 | 精品亚洲二区 | 欧美精品乱码久久久久久按摩 | 日韩欧美综合精品 | 久久婷五月 | 五月天.com | 99免在线观看免费视频高清 | 色婷婷色| 国产久草在线 | 国产精品免费大片视频 | 极品久久久久 | 激情综合网色播五月 | 精品专区一区二区 | 天天插天天射 | 国产精品99久久久久人中文网介绍 | 国产日韩精品一区二区三区 | 久精品视频在线观看 | 亚洲精品看片 | 色狠狠干 | 在线免费黄色av | 亚洲专区视频在线观看 | 91秒拍国产福利一区 | 国产精品一区二区三区电影 | 最近中文字幕在线中文高清版 | 国产在线观看av | 日韩在线视频免费观看 | 91精品国自产在线观看欧美 | 中文字幕在线播放视频 | 五月天天天操 | 久久精品视频网 | 欧美在线不卡一区 | 欧美精品国产综合久久 | 美女黄网站视频免费 | 91精品视频在线免费观看 | 四虎伊人 | 午夜久久影院 | 日韩高清一区二区 | 麻豆高清免费国产一区 | 天天做天天爱天天爽综合网 | 91chinese在线| 91在线播放国产 | 91在线入口 | 亚洲免费在线看 | 四虎影视成人精品 | 日韩免费在线 | 中文字幕在线播放日韩 | 日韩在线观看一区二区三区 | 中文字幕2021 | 国产录像在线观看 | 亚洲乱亚洲乱亚洲 | 日韩1级片 | 国产精品手机在线观看 | 蜜臀av性久久久久av蜜臀三区 | 欧美狠狠操| 久久夜色精品国产欧美一区麻豆 | 久久精品中文视频 | 精品国内自产拍在线观看视频 | 日本激情视频中文字幕 | 国产在线精品区 | 美女视频网站久久 | 国产999| 精品国模一区二区三区 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 天天干天天操天天做 | 中文字幕国产精品一区二区 | 日韩精品一区不卡 | 午夜国产福利在线 | 国产伦理久久 | 久久久久久国产精品久久 | 国产一卡二卡在线 | 日韩在线高清免费视频 | 国产xxxx做受性欧美88 | 久久久久久久久久久久久影院 | 久久久免费看片 | 免费看三级黄色片 | 久久精彩视频 | 在线国产91 | 99在线观看精品 | 色婷婷www| 99色在线播放 | 久草新在线 | 国产一在线精品一区在线观看 | 蜜桃视频色| 永久免费毛片 | 伊人伊成久久人综合网小说 | a久久免费视频 | 夜夜狠狠 | 亚洲天堂网站视频 | 亚洲天堂色婷婷 | 免费黄色看片 | 在线看国产一区 | 日韩av一卡二卡三卡 | 2018精品视频 | 天天天在线综合网 | 五月天激情综合 | 最新真实国产在线视频 | avav片 | 国产日韩精品一区二区 | 97超碰成人| 色综合久久久久网 | 亚洲一区美女视频在线观看免费 | 黄色网在线播放 | 亚洲欧洲xxxx | 免费视频一区二区 | 天天草天天摸 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 91精品国产福利 | 国产99一区视频免费 | 天天综合婷婷 | 天天曰视频 | 丁香网婷婷 | 美女视频黄色免费 | 色偷偷中文字幕 | wwwwww国产 | 精品国产一区二区在线 | 久草视频99 | 天天玩天天干天天操 | www.激情五月.com | 在线观看国产日韩 | 99免费在线视频观看 | 午夜手机电影 | 黄色网址在线播放 | 欧美一级性生活 | 蜜臀久久99精品久久久无需会员 | 久久久久高清 | 91亚洲激情 | 波多野结衣精品视频 | 亚洲天堂视频在线 | 欧美a级片网站 | 亚洲视频中文 | 亚洲禁18久人片 | 91免费黄视频 | 国产91影院 | 亚洲日本一区二区在线 | 91最新地址永久入口 | 久久久亚洲国产精品麻豆综合天堂 | 中文在线中文a | 一级欧美一级日韩 | 日韩三区在线 | 国产夫妻av在线 | 伊人www22综合色 | 三级黄色大片在线观看 | 看av免费网站 | 色婷婷伊人 | 婷婷网五月天 | 亚洲成a人片在线www | 亚洲免费在线看 | 亚洲国产中文字幕在线观看 | 97久久久免费福利网址 | 高清不卡毛片 | 国产黄大片 | 国产r级在线观看 | 伊人久久av | 日韩精品影视 | 免费观看性生交大片3 | 香蕉国产91 | 97超碰在线久草超碰在线观看 | av免费看在线 | 亚洲精品一区二区三区高潮 | 欧美乱码精品一区二区 | 欧美精品亚洲二区 | 日韩在线观看一区 | 国产原创av片 | 日韩91av | 国产在线日本 | 天天综合人人 | 久久涩视频 | 夜夜操天天干 | 国产精品精品 | 天天干,天天插 | 国产精品毛片久久 | 欧美视频二区 | 婷五月天激情 | 亚洲成人av在线电影 | 91在线影视 | 国产免费av一区二区三区 | 9色在线视频 | 国产精品网址在线观看 | 亚州精品在线视频 | 精品在线播放视频 | 99热在线免费观看 | 日韩大片在线免费观看 | 香蕉视频色 | 麻花豆传媒mv在线观看 | 麻豆成人在线观看 | 亚洲精品视频在线播放 | 91亚瑟视频 | 在线免费色视频 | 午夜久久福利视频 | 99色在线 | 九九热视频在线 | 国产看片 色| 久久这里只有精品视频99 | 久久影院精品 | 国产成年人av | 国产精品夜夜夜一区二区三区尤 | 依人成人综合网 | 免费观看一区二区三区视频 | 免费看成人片 | 人人干人人模 | 欧美成人精品在线 | 国产免费成人 | 丰满少妇久久久 | 免费观看性生交大片3 | 亚洲精品乱码久久久久久高潮 | 国产精品中文字幕av | 91亚洲激情 | 涩涩成人在线 | 91热这里只有精品 | 国产在线视频一区二区三区 | 色综合久久网 | www.色五月.com | 免费美女av| 国产黄色精品在线 | 国产精品剧情在线亚洲 | 丁香六月五月婷婷 | 成人av一区二区三区 | 日韩欧美高清不卡 | 爱爱av网站 | www色com| 96超碰在线 | 国产亚洲精品免费 | 亚州精品在线视频 | 久草久热| 国内精品久久久久久久久久久 | 亚洲 欧美 综合 在线 精品 | 久久综合99| 中文字幕国产视频 | 日日夜夜人人天天 | 一级淫片在线观看 | 久久黄色免费视频 | 亚洲精品啊啊啊 | 狠狠色综合网站久久久久久久 | 久久久精品 一区二区三区 国产99视频在线观看 | 福利一区在线 | www91在线观看 | 亚洲 欧洲 国产 精品 | 日日操天天爽 | 国产精品18久久久久久久 | 天天摸天天操天天舔 | 天天透天天插 | 中文字幕国产一区 | 国产一区福利 | 国产精品igao视频网入口 | 黄色软件视频网站 | 人人草天天草 | 国产成人精品电影久久久 | 中文字幕色网站 | 日韩一区二区三区免费电影 | 久久高视频 | 激情婷婷在线观看 | 操操碰| 婷婷色伊人 | 麻豆视频国产精品 | 91精品在线麻豆 | 日韩av线观看 | 日韩av不卡在线观看 | 成人欧美在线 | 免费色视频网站 | 久久99婷婷 | 韩日电影在线 | 蜜桃麻豆www久久囤产精品 | 亚洲欧美精品在线 | 日韩免费一区 | 91成人精品在线 | 91最新视频在线观看 | 国产在线资源 | www.五月婷婷.com | 婷婷国产一区二区三区 | 天天看天天干 | 久久国产精品影片 | 久久涩视频 | 96久久欧美麻豆网站 | 久久国产精品99国产 | 久草线| 中文字幕高清视频 | 国产精品成人自拍 | 最新国产在线视频 | 蜜臀久久99精品久久久无需会员 | 亚洲女同ⅹxx女同tv | 日韩精品最新在线观看 | 久久公开视频 | 亚洲天堂网视频在线观看 | 在线电影a | 色婷婷狠狠五月综合天色拍 | 国内久久久久 | 色五婷婷 | 亚洲国产成人在线播放 | 国产一级做a爱片久久毛片a | 美女网站在线 | 五月婷在线播放 | 亚州av网站大全 | 亚洲精品理论 | 免费观看国产精品视频 | 中文字幕在线观看三区 | 超碰999 | 四虎小视频| 国产91精品看黄网站 | 日韩激情片在线观看 | 91看片一区二区三区 | 亚洲91av| 日韩三级视频在线看 | 国产精品久久久久久久久久久不卡 | 久久精品免视看 | 欧美一级淫片videoshd | 国产在线观看污片 | 久久久福利影院 | 99久久精品国产毛片 | 色就色,综合激情 | 在线视频欧美精品 | 黄色精品网站 | 日韩精品在线视频免费观看 | 日本在线视频一区二区三区 | 中文在线天堂资源 | 丁香视频全集免费观看 | 欧美xxxx性xxxxx高清 | 超碰在线最新地址 | 国产免费视频一区二区裸体 | 在线观看亚洲免费视频 | 国产视频一二区 | 精品久久免费 | 四虎成人精品永久免费av | 国产精品久久久电影 | 国产精品四虎 | 婷婷电影在线观看 | 黄网站免费大全入口 | 日日操狠狠干 | 91九色porny在线| 亚洲国产精品一区二区久久hs | 九9热这里真品2 | 2019中文字幕网站 | 六月丁香激情网 | 69久久99精品久久久久婷婷 | 国产日韩视频在线播放 | 亚洲欧美综合精品久久成人 | 美女视频永久黄网站免费观看国产 | 国产剧情在线一区 | 久久久影院官网 | 91成人久久 | 天天想夜夜操 | 天天爱天天色 | 亚洲人精品午夜 | 丁香5月婷婷 | 国外成人在线视频网站 | 美女黄濒| 日韩精品久久一区二区三区 | 国产在线国偷精品产拍免费yy | 精品亚洲欧美无人区乱码 | 91精品国产高清自在线观看 | 成人午夜电影在线观看 | www最近高清中文国语在线观看 | 在线视频专区 | 欧美a级一区二区 | 免费看短 | 麻豆精品视频在线观看免费 | 三上悠亚在线免费 | 日韩精品在线免费观看 | 成年人黄色在线观看 | 精品一区 在线 | 99热官网 | 国产色在线视频 | 91最新在线观看 | 日韩av资源在线观看 | 色婷婷视频| 97精品国产97久久久久久春色 | 欧美综合在线视频 | 欧美国产日韩一区二区三区 | 精品国产免费久久 | 国产精品久久精品 | 国产精品久久久久影院日本 | 一区二区三区四区精品视频 | 狠狠干天天射 | 激情五月婷婷综合 | 精品视频亚洲 | 久久国产免费看 | 成人性生交视频 | 中文字幕av网站 | 99免费在线观看 | 成人午夜电影在线播放 | 欧美成人在线免费观看 | 久久久久久久久久久免费av | 久久艹艹| 免费成人在线电影 | 免费观看日韩 | 日韩在线网 | 亚洲欧洲在线视频 | av色综合网 | www.操.com| 国产成人亚洲精品自产在线 | 日一日干一干 | 99热在线观看| 二区在线播放 | 国产青春久久久国产毛片 | 亚洲91中文字幕无线码三区 | 色婷婷88av视频一二三区 | 青草视频网 | 亚洲区另类春色综合小说 | 精品视频在线视频 | 成人免费在线视频观看 | 欧美电影在线观看 | 国产成人精品一区二 | www.天天射| 婷婷色av | 天天干天天干天天色 | 欧美成人tv | а中文在线天堂 | 精品久久久国产 | 丝袜美腿一区 | 九九九热视频 | 午夜美女视频 | 婷婷视频在线观看 | 国产在线观看黄 | 免费成人在线观看视频 | 国内精品视频一区二区三区八戒 | 亚洲国产精品一区二区尤物区 | 在线亚洲午夜片av大片 | 六月丁香婷| 操综合 | 日韩免费一区 | 亚洲国产成人在线播放 | 欧美黄色免费 | 在线一二三区 | 四虎永久国产精品 | 97香蕉视频 | 久久草精品 | 成年人黄色免费网站 | 精品自拍sae8—视频 | 成人免费在线网 | av三级在线免费观看 | 在线观看视频一区二区 | 色先锋av资源中文字幕 | 极品久久久久 | 午夜.dj高清免费观看视频 | 三日本三级少妇三级99 | 免费久久精品视频 | 少妇精品久久久一区二区免费 | 国产精品免费在线播放 | 99久久精品国产一区 | 国产白浆视频 | 久久久久久久久久久免费av | 国产美女免费看 | 91精品国产亚洲 | 91精品一区二区三区蜜桃 | 久久人人97超碰国产公开结果 | 五月天狠狠操 | 欧美一区二区三区在线观看 | 在线视频成人 | 国产精品视频最多的网站 | 狠狠地日 | 永久免费视频国产 | 亚洲美女精品区人人人人 | 亚洲视频 视频在线 | 国产va饥渴难耐女保洁员在线观看 | 人人干人人干人人干 | 摸bbb搡bbb搡bbbb |