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

歡迎訪問 生活随笔!

生活随笔

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

linux

linux wait函数头文件_手把手教Linux驱动9-等待队列waitq

發布時間:2023/12/3 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux wait函数头文件_手把手教Linux驱动9-等待队列waitq 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇《手把手教Linux驅動8-Linux IO模型》我們已經了解了阻塞、非阻塞、同步和異步等相關概念,本文主要講解如何通過等待隊列實現對進程的阻塞。

應用場景:

當進程要獲取某些資源(例如從網卡讀取數據)的時候,但資源并沒有準備好(例如網卡還沒接收到數據),這時候內核必須切換到其他進程運行,直到資源準備好再喚醒進程。

waitqueue (等待隊列) 就是內核用于管理等待資源的進程,當某個進程獲取的資源沒有準備好的時候,可以通過調用 add_wait_queue() 函數把進程添加到 waitqueue 中,然后切換到其他進程繼續執行。當資源準備好,由資源提供方通過調用 wake_up() 函數來喚醒等待的進程。

定義頭文件:

#include

定義和初始化等待隊列頭(workqueue):

靜態的,用宏:

#define DECLARE_WAIT_QUEUE_HEAD(name) wait_queue_head_t name = __WAIT_QUEUE_HEAD_INITIALIZER(name)

動態的,也是用宏:

#define init_waitqueue_head(q) do { static struct lock_class_key __key; __init_waitqueue_head((q), #q, &__key); } while (0)

定義實例

wait_queue_head_t wq;init_waitqueue_head(&wq);

阻塞接口:

wait_event(wq, condition)wait_event_timeout(wq, condition, timeout)wait_event_interruptible(wq, condition)wait_event_interruptible_timeout(wq, condition, timeout)wait_event_hrtimeout(wq, condition, timeout)wait_event_interruptible_hrtimeout(wq, condition, timeout)wait_event_interruptible_exclusive(wq, condition)wait_event_interruptible_locked(wq, condition)wait_event_interruptible_locked_irq(wq, condition)wait_event_interruptible_exclusive_locked(wq, condition)wait_event_interruptible_exclusive_locked_irq(wq, condition)wait_event_killable(wq, condition)wait_event_lock_irq_cmd(wq, condition, lock, cmd)wait_event_lock_irq(wq, condition, lock)wait_event_interruptible_lock_irq_cmd(wq, condition, lock, cmd)wait_event_interruptible_lock_irq(wq, condition, lock)wait_event_interruptible_lock_irq_timeout(wq, condition, lock, timeout)

參數

wq 定義的等待隊列頭,condition 為條件表達式,當wake up后,condition為真時,喚醒阻塞的進程,為假時,繼續睡眠。

功能說明

接口版本比較多,各自都有自己合適的應用場合,但是常用的是前面四個。

wait_event:不可中斷的睡眠,條件一直不滿足,會一直睡眠。wait_event_timeout:不可中斷睡眠,當超過指定的timeout(單位是jiffies)時間,不管有沒有wake up,還是條件沒滿足,都要喚醒進程,此時返回的是0。在timeout時間內條件滿足返回值為timeout或者1;wait_event_interruptible:可被信號中斷的睡眠,被信號打斷喚醒時,返回負值-ERESTARTSYS;wake up時,條件滿足的,返回0。除了wait_event沒有返回值,其它的都有返回,有返回值的一般都要判斷返回值。如下例: int flag = 0; if(wait_event_interruptible(&wq,flag == 1)) return -ERESTARTSYS;wait_event_interruptible_timeout:是wait_event_timeout和wait_event_interruptible_timeout的結合版本,有它們兩個的特點。

其他的接口,用的不多,有興趣可以自己看看。

解除阻塞接口(喚醒)

接口定義:

#define wake_up(x) __wake_up(x, TASK_NORMAL, 1, NULL)#define wake_up_nr(x, nr) __wake_up(x, TASK_NORMAL, nr, NULL)#define wake_up_all(x) __wake_up(x, TASK_NORMAL, 0, NULL)#define wake_up_locked(x) __wake_up_locked((x), TASK_NORMAL, 1)#define wake_up_all_locked(x) __wake_up_locked((x), TASK_NORMAL, 0)#define wake_up_interruptible(x) __wake_up(x, TASK_INTERRUPTIBLE, 1, NULL)#define wake_up_interruptible_nr(x, nr) __wake_up(x, TASK_INTERRUPTIBLE, nr, NULL)#define wake_up_interruptible_all(x) __wake_up(x, TASK_INTERRUPTIBLE, 0, NULL)#define wake_up_interruptible_sync(x) __wake_up_sync((x), TASK_INTERRUPTIBLE, 1)

功能說明

wake_up:一次只能喚醒掛在這個等待隊列頭上的一個進程wake_up_nr:一次喚起nr個進程(等待在同一個wait_queue_head_t有很多個)wake_up_all:一次喚起所有等待在同一個wait_queue_head_t上所有進程wake_up_interruptible:對應wait_event_interruptible版本的wake upwake_up_interruptible_sync:保證wake up的動作原子性,wake_up這個函數,很有可能函數還沒執行完,就被喚起來進程給搶占了,這個函數能夠保證wak up動作完整的執行完成。

其他的也是與對應阻塞接口對應的。

使用實例

以字符設備為例,在沒有數據的時候,在read函數中實現讀阻塞,當向內核寫入數據時,則喚醒阻塞在該等待隊列的所有任務。

讀操作

static ssize_t hello_read(struct file *filp,char __user *buf,size_t size,loff_t *poss) { wait_event_interruptible(rwq,flage!=0); …………… flage=0; wake_up_interruptible(&wwq); return size; }

寫操作

static ssize_t hello_write(struct file *filp,const char __user *buf,size_t size,loff_t *poss) { ????wait_event_interruptible(wwq,flage!=1); ……………????flage=1;????wake_up_interruptible(&rwq); return size; }

如何同步支持非阻塞?

上述操作雖然實現了阻塞功能,但是我們在應用程序打開一個字符設備的時候,有時候我們希望操作是非阻塞的,比如:

fd=open("/dev/hello",O_RDONLY|O_NONBLOCK);

那么驅動如何得到這個標記呢?

參考《手把手教Linux驅動6-inode,file,file_operations關系》,該標記會存儲在結構體struct file的f_flags成員中。

所以程序可以修改如下:

static ssize_t hello_read(struct file *filp,char __user *buf,size_t size,loff_t *poss) { int ret = 0;if(flage==0){if(filp->f_flags & O_NONBLOCK){ return -EAGAIN;}wait_event_interruptible(rwq,flage!=0);} ……………flage=0;wake_up_interruptible(&wwq); return size; }

一種靈活的添加刪除等待隊列頭中的等待隊列:

(1)定義:
靜態:

#define DECLARE_WAITQUEUE(name, tsk) wait_queue_t name = __WAITQUEUE_INITIALIZER(name, tsk)

(2)動態:

wait_queue_t wa;init_waitqueue_entry(&wa,&tsk);

tsk是進程結構體,一般是current(linux當前進程就是用這個獲取)。還可以用下面的,設置自定義的等待隊列回調函數,上面的是linux默認的一個回調函數default_wake_function(),不過默認的用得最多:

wait_queue_t wa;wa->private = &tsk;int func(wait_queue_t *wait, unsigned mode, int flags, void *key){ //}init_waitqueue_func_entry(&wa,func);

(回調有什么作用?)
用下面函數將等待隊列,加入到等待隊列頭(帶remove的是從工作隊列頭中刪除工作隊列):

extern void add_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);extern void add_wait_queue_exclusive(wait_queue_head_t *q, wait_queue_t *wait);extern void remove_wait_queue(wait_queue_head_t *q, wait_queue_t *wait);

上面的阻塞和解除阻塞接口,只能是對當前進程阻塞/解除阻塞,有了這幾個靈活的接口,我們可以單獨定義一個等待隊列,只要獲取進程task_struct指針,我們可以將任何進程加入到這個等待隊列,然后加入到等待隊列頭,我們能將其它任何進程(不僅僅是當前進程),掛起睡眠,當然喚醒時,如果用wake_up_all版本的話,也會一同喚起。這種情況,阻塞不能用上面的接口了,我們需要用下一節講述的接口(schedule()),解除阻塞可以用wake_up,wake_up_interruptible等。

更高級靈活的阻塞:

阻塞當前進程的原理:用函數set_current_state()修改當前進程為TASK_INTERRUPTIBLE(不可中斷睡眠)或TASK_UNINTERRUPTIBLE(可中斷睡眠)狀態,然后調用schedule()告訴內核重新調度,由于當前進程狀態已經為睡眠狀態,自然就不會被調度。schedule()簡單說就是告訴內核當前進程主動放棄CPU控制權。這樣來,就可以說當前進程在此處睡眠,即阻塞在這里。

在上一小節“靈活的添加刪等待隊列頭中的等待隊列”,將任意進程加入到waitqueue,然后類似用:

task_struct *tsk;wait_queue_t wa;//假設tsk已經指向某進程控制塊p->state = TASK_INTERRUPTIBLE;//or TASK_UNINTERRUPTIBLEinit_waitqueue_entry(&wa,&tsk);

就能將任意進程掛起,當然,還需要將wa,掛到等待隊列頭,然后用wait_event(&wa),進程就會從就緒隊列中退出,進入到睡眠隊列,直到wake up時,被掛起的進程狀態被修改為TASK_RUNNING,才會被再次調度。(主要是schedule()下面會說到)。


wait_event實現原理:

先看下wait_event實現:

#define __wait_event(wq, condition) do { DEFINE_WAIT(__wait); for (;;) { prepare_to_wait(&wq, &__wait, TASK_UNINTERRUPTIBLE); if (condition) break; schedule(); } finish_wait(&wq, &__wait); } while (0)#define wait_event(wq, condition) do { if (condition) break; __wait_event(wq, condition); } while (0)

DEFINE_WAIT:

定義一個工作隊列。

prepare_to_wait:

定義:void prepare_to_wait(wait_queue_head_t *q, wait_queue_t *wait, int state)功能:將工作隊列wait加入到工作隊列頭q,并將當前進程設置為state指定的狀態,一般是TASK_UNINTERRUPTIBLE或TASK_INTERRUPTIBLE狀態(在這函數里有調用set_current_state)。 第一個參數:工作隊列頭 第二個參數:工作隊列 第三個參數:當前進程要設置的狀態

finish_wait

用了prepare_to_wait之后,當退出時,一定要用這個函數清空等待隊列。

功能:

  • 該函數首先調用prepare_to_wait,修改進程到睡眠狀態,
  • 條件不滿足,schedule()就放棄CPU控制權,睡眠,
  • 當wake up的時候,阻塞在wq(也可以說阻塞在wait_event處)等待隊列頭上的進程,再次得到運行,接著執行schedule()后面的代碼,這里,顯然是個循環,prepare_to_wait再次設置當前進程為睡眠狀態,然后判斷條件是否滿足,
  • 滿足就退出循環,finish_wait將當前進程恢復到TASK_RUNNING狀態,也就意味著阻塞解除。不滿足,繼續睡下去。如此反復等待條件成立。
  • 明白這個過程,用prepare_to_wait和schedule()來實現更為靈活的阻塞,就很簡單了,解除阻塞和前面的一樣用wake_up,wake_up_interruptible等。

    下面是wake_up和wait_event流程圖:

    wait_event和wake_up流程

    獨占等待


    當調用wake_up時,所有等待在該隊列上的進程都被喚醒,并進入可運行狀態如果只有一個進程可獲得資源,此時,其他的進程又將再次進入休眠,如果數量很大,被稱為”瘋狂售群”。這樣會非常占用系統資源。

    解決方法:

    wait_queue_t成員flage有個重要的標志WQ_FLAG_EXCLUSIVE,表示:

    當一個等待隊列入口有 WQ_FLAG_EXCLUSEVE 標志置位, 它被添加到等待隊列的尾部. 沒有這個標志的入口項, 添加到開始.當 wake_up 被在一個等待隊列上調用, 它在喚醒第一個有WQ_FLAG_EXCLUSIVE 標志的進程后停止.

    wait_event默認總是將waitqueue加入開始,而wake_up時總是一個一個的從開始處喚醒,如果不斷有waitqueue加入,那么最開始加入的,就一直得不到喚醒,有這個標志,就避免了這種情況。

    prepare_to_wait_exclusive()就是加入了這個標志的。

    補充

    Linux將進程狀態描述為如下五種:1. TASK_RUNNING:可運行狀態。處于該狀態的進程可以被調度執行而成為當前進程。2. TASK_INTERRUPTIBLE:可中斷的睡眠狀態。處于該狀態的進程在所需資源有效時被喚醒,也可以通過信號或定時中斷喚醒(因為有signal_pending()函數)。3. TASK_UNINTERRUPTIBLE:不可中斷的睡眠狀態。處于該狀態的進程僅當所需資源有效時被喚醒。4. TASK_ZOMBIE:僵尸狀態。表示進程結束且已釋放資源,但其task_struct仍未釋放。5. TASK_STOPPED:暫停狀態。處于該狀態的進程通過其他進程的信號才能被喚醒

    Linux 通過結構體task_struct維護所有運行的線程、進程,不同狀態的任務,會由不同的隊列進行維護,schedule()函數就負責根據這些狀態的變化調度這些任務。關于進程的調度,后續會新開文章詳細介紹。

    實例


    下面實例主要功能是基于我們之前課程《手把手教Linux驅動3-之字符設備架構詳解,有這篇就夠了》最后的代碼實例,在此基礎上增加寫阻塞的功能。

  • 內核中有緩沖內存,以及是否可以訪問的標記;
  • int flage=0; //1:有數據可讀 0:無數據,不可讀char kbuf[128];
  • 初始狀態下flage為0,沒有數據;
  • 應用進程讀取數據會調用到內核函數hello_read(),如果flage為1,則直接讀走數據,并將改flage置1,如果flage為0,則進程阻塞,直到有進程寫入數據將該flage置1;
  • 應用進程每次寫入數據會調用到內核函數hello_write(),如果flage為0,則直接寫入數據,并設置flage為1,如果為1,則阻塞,直到有其他進程調用到讀函數hello_read()將flage置0。
  • 驅動

    ule_exit(hellodev_exit);

    測試程序

    read.c

    #include #include #include #include #include #include int main(){ int fd= 0; char buf[128]; int num;// fd=open("/dev/hello",O_RDONLY); 阻塞方式讀取 fd=open("/dev/hello",O_RDONLY|O_NONBLOCK); //非阻塞 if(fd<0) { printf("open memdev failed!"); return -1; } read(fd,buf,sizeof(buf)); printf("num:%s",buf); close(fd); return 0; }

    write.c

    #include #include #include #include #include #include int main(){ int fd =0; char buf[128]="hello yikouLlinux"; int num;? fd=open("/dev/hello",O_RDWR); if(fd <0) { printf("open device failed!"); return -1; } write(fd,buf,sizeof(buf)); close(fd); return 0; }

    掌握了等待隊列的用法,后面我們就可以進行中斷的講解了。

    總結

    以上是生活随笔為你收集整理的linux wait函数头文件_手把手教Linux驱动9-等待队列waitq的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产精品久久在线观看 | 毛片精品免费在线观看 | 亚洲婷婷综合色高清在线 | 日韩欧美一区二区在线播放 | 999久久国精品免费观看网站 | 精品视频中文字幕 | 四虎亚洲精品 | 91精品啪| 97视频在线免费 | 97超碰人人看 | 1024手机基地在线观看 | 亚洲国产一区二区精品专区 | 91手机电影 | 亚洲视频每日更新 | 在线va网站| 精品一区二区三区四区在线 | 一区二区精品在线 | 日韩久久一区 | 五月视频 | 不卡中文字幕av | www.亚洲精品| 综合网伊人 | 色婷婷视频在线观看 | 操高跟美女 | 成人av片免费观看app下载 | 超级碰碰碰碰 | 狠狠成人 | 国产成人av综合色 | 久久精品久久久久电影 | 狠狠躁夜夜躁人人爽超碰91 | 99热精品国产一区二区在线观看 | 日韩免费视频线观看 | 国产福利一区二区在线 | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 又黄又爽又无遮挡免费的网站 | 亚洲国产美女久久久久 | 亚洲精品中文字幕在线观看 | 99国产成+人+综合+亚洲 欧美 | 不卡电影免费在线播放一区 | 色婷婷九月 | 色网站视频 | 国语黄色片| 丁香 婷婷 激情 | 亚洲成a人片在线www | 正在播放亚洲精品 | 成人毛片100免费观看 | 美女视频国产 | 久久福利剧场 | 色婷av| 岛国大片免费视频 | 国产 日韩 在线 亚洲 字幕 中文 | 国产精品久久一区二区三区不卡 | 伊人网av| 免费黄色小网站 | 成年人天堂com | 99中文字幕在线观看 | 97天堂网 | 午夜精品久久久99热福利 | 香蕉视频在线免费看 | 久久久久麻豆v国产 | 天天操天天射天天 | 国产精品原创视频 | 国色天香在线 | 久久精品视频2 | 视频一区二区三区视频 | 国内精品二区 | 九九热精品在线 | 国内精品久久久久久久久久清纯 | 日韩电影黄色 | 成年人在线播放视频 | 在线之家免费在线观看电影 | 日韩小视频网站 | 精品国产免费一区二区三区五区 | av不卡免费在线观看 | 久久综合久久久久88 | 精品国产乱码一区二 | 国产99久久| 日本久久精品视频 | 久久国产网站 | 欧美日韩免费在线观看视频 | 国产99久久99热这里精品5 | 色就干| 国产视频综合在线 | 在线色亚洲| 亚洲成a人片综合在线 | 99久久综合狠狠综合久久 | 亚洲一区二区麻豆 | 一级片免费在线 | 天天想夜夜操 | 最近中文字幕高清字幕在线视频 | 999久久久久久久久久久 | 在线日韩一区 | 97av精品 | 国产精品久久久久久久久久ktv | 亚洲电影成人 | 中文乱码视频在线观看 | 一区二区三区免费在线观看 | 午夜18视频在线观看 | 91桃色免费视频 | 波多野结衣网址 | 在线看欧美 | 国产一级特黄电影 | 久久这里只有精品首页 | 久久精品国产一区二区三 | 精品一区二区免费在线观看 | 亚洲一区久久久 | 伊人国产在线播放 | 四虎在线免费观看 | 操操操人人人 | 久草在线免费电影 | 天天五月天色 | 国内精品久久久久久久久久久久 | 93久久精品日日躁夜夜躁欧美 | 成人av电影免费在线播放 | 国产亚洲精品久久久久久移动网络 | 中午字幕在线 | 色婷婷免费视频 | 国产精品mm | 久久999久久 | 中文字幕综合在线 | 精品久久影院 | 99国产一区二区三精品乱码 | 欧美久久久久久久久久久久 | 激情五月婷婷综合 | 国产流白浆高潮在线观看 | 精品一区二区6 | 三级毛片视频 | 射久久久 | 精品一区久久 | 久久久久久久久久久久国产精品 | 欧美一二区视频 | 婷婷激情欧美 | 亚州av网站大全 | 亚洲精品动漫在线 | 亚洲视频 在线观看 | 成人久久久久久久久久 | 2022久久国产露脸精品国产 | 精品美女久久久久 | 8x8x在线观看视频 | 三级视频国产 | 1区2区视频 | 91香蕉国产在线观看软件 | 天天爱天天色 | 黄色片免费看 | 久草男人天堂 | 亚洲人成在线观看 | 狠狠色丁香婷综合久久 | 婷婷精品国产一区二区三区日韩 | 国产精品久久99综合免费观看尤物 | 精品久久久久亚洲 | 国产色在线,com | 公与妇乱理三级xxx 在线观看视频在线观看 | 欧美综合国产 | 超碰在线97免费 | 在线播放亚洲激情 | 欧美日韩国产欧美 | 日本一区二区高清不卡 | 91色在线观看视频 | 爱色av.com | 国产不卡一区二区视频 | 亚州精品在线视频 | 四虎永久免费网站 | 久久精品三级 | 中文字幕在线观看视频一区二区三区 | 亚洲视频高清 | 91黄站| 婷婷av网站 | 久久综合久久综合这里只有精品 | 久久久久久综合 | 毛片美女网站 | 欧美激情精品久久久久久免费印度 | www.色五月 | 亚洲免费资源 | 日韩美女黄色片 | 美女免费视频观看网站 | 国产人成看黄久久久久久久久 | 亚洲日本国产 | 国产人成看黄久久久久久久久 | 国产精品久久久久永久免费观看 | 99精品视频免费 | 精品国产一区二区三区男人吃奶 | 国产精品毛片一区视频 | 久久精品视频中文字幕 | 中文字幕国产一区 | 手机色站 | 国产亚洲aⅴaaaaaa毛片 | 婷婷丁香国产 | 久久这里 | 亚洲精品久久久久中文字幕二区 | 成人午夜久久 | 久久精品91久久久久久再现 | 久久伊人爱 | 免费av 在线 | 黄色视屏在线免费观看 | 日本乱视频| 在线亚州 | 成片免费观看视频 | 日韩一级网站 | 中文一区在线 | 久久综合精品国产一区二区三区 | 久久久91精品国产一区二区三区 | 91超碰在线播放 | 精品一区二区av | 国产高清视频免费 | 在线观看国产www | 涩涩在线 | 97精品欧美91久久久久久 | 成人禁用看黄a在线 | 久久国产精品久久国产精品 | 成人一级电影在线观看 | 国产成人精品一区二区在线 | 西西4444www大胆艺术 | 一区二区伦理电影 | 久草在线手机观看 | 91av在线免费观看 | 一区二区三区国 | 在线视频你懂 | 国产精品成人自产拍在线观看 | 人人爽久久久噜噜噜电影 | 国产一区二区中文字幕 | 精品毛片一区二区免费看 | 超碰在线天天 | 精品九九九 | 国产偷在线 | 伊人婷婷 | 成人在线免费视频 | 毛片一二区 | 91大神电影 | 麻豆精品国产传媒 | 91亚洲在线观看 | 97色综合| 日韩高清黄色 | 一区在线观看 | 美女网站久久 | 伊人色**天天综合婷婷 | 国产资源在线免费观看 | 久久久久久久毛片 | 五月婷婷视频在线 | 日韩av中文字幕在线免费观看 | 欧美另类高清 videos | 黄色片亚洲 | 99久久久国产精品免费观看 | 99热在线免费观看 | 国产 日韩 欧美 中文 在线播放 | 成人免费观看视频网站 | 午夜av一区二区三区 | 午夜体验区 | 国产专区在线看 | www.狠狠操 | 一区免费视频 | 欧美激情精品久久久久久 | 婷婷丁香av | 国产无区一区二区三麻豆 | 日本中文字幕系列 | 亚洲欧美激情插 | 草久在线| 欧美a级一区二区 | 最近中文字幕视频完整版 | 天天拍天天草 | 国产亚洲成人网 | 国产一级精品绿帽视频 | 久久97视频| 狠狠婷婷 | 国产精品成人久久久 | 成人网色 | 天天舔天天搞 | 超碰在线观看99 | 欧美精品久久久久性色 | 99中文视频在线 | 五月天免费网站 | 国产日韩欧美在线看 | 国产精品视频不卡 | 欧美精品在线一区二区 | 午夜视频在线观看网站 | 亚洲午夜小视频 | 欧美性生活一级片 | 国产精品久久久久久久久久东京 | 国产精品一区二区久久精品爱微奶 | 欧美激情综合网 | 最近免费观看的电影完整版 | 成人午夜影视 | 99久久婷婷国产综合精品 | 亚洲天堂网站视频 | 日韩免费在线观看网站 | 日韩高清成人在线 | 国产精品视频区 | 久久国内精品 | 免费日韩 精品中文字幕视频在线 | 国产一级在线播放 | 国产 在线观看 | 日日干天夜夜 | 日韩特级片 | 91视频免费看 | 在线观看视频福利 | 国产高清av免费在线观看 | 在线视频99 | 开心激情婷婷 | 狠狠88综合久久久久综合网 | 国产亚洲成av人片在线观看桃 | 久草在线免费新视频 | 99久久精品免费看国产 | 亚洲人成人在线 | 在线免费观看黄色小说 | 亚洲日本成人网 | 亚洲激情小视频 | 国产成人精品一区二区三区在线观看 | 亚洲精品国偷自产在线91正片 | 国产高清一级 | 91色网址| 欧美日韩免费观看一区=区三区 | 国产视频中文字幕 | 午夜三级理论 | 午夜av影院 | 国产免费人人看 | 国产女做a爱免费视频 | 午夜久久福利视频 | 亚洲国内精品在线 | 欧美激情视频在线观看免费 | 九九九毛片 | 黄色av网站在线观看 | 中国一级片在线观看 | 国产福利91精品一区 | 婷婷色中文网 | 91一区啪爱嗯打偷拍欧美 | 国产人成在线视频 | 国产麻豆精品传媒av国产下载 | 国产一区播放 | 月下香电影 | 中文字幕av播放 | 日韩精品中文字幕在线观看 | 精品国产一区二区久久 | 色99之美女主播在线视频 | 综合中文字幕 | 97超碰伊人 | 99久久婷婷国产综合精品 | 亚洲男人天堂2018 | 色五月情 | 在线观看国产www | 亚洲色五月 | 在线黄频 | 久久久久97国产 | 国产一级一片免费播放放 | 国产免费美女 | 国精产品999国精产 久久久久 | 91久久电影 | 五月天激情在线 | 成人黄色短片 | 人操人 | 欧美一区三区四区 | 成年人免费观看国产 | 一区二区三区高清在线 | 亚洲精品影视在线观看 | 中文字幕视频在线播放 | 色婷在线 | 91精品视频在线 | 久久人91精品久久久久久不卡 | 九九九电影免费看 | 手机成人免费视频 | 久草在线一免费新视频 | 免费观看一区 | 精品国产美女 | 欧美日韩一区久久 | 国产色视频一区二区三区qq号 | 精品一区二区三区香蕉蜜桃 | 99久久日韩精品免费热麻豆美女 | 欧美久草视频 | 日韩久久网站 | 蜜臀av.com | a在线观看视频 | 97天堂网 | 国产69久久久 | 欧美人操人 | 成人黄色电影在线 | 91免费观看| 国产精品99久久久久的智能播放 | 福利片视频区 | 丁香激情五月 | av不卡免费在线观看 | 国产精品一区二区美女视频免费看 | 在线久热 | 五月天色婷婷丁香 | 96av在线| 97在线视频免费播放 | 日韩久久久久久久久久久久 | 中文字幕4 | 成人黄色资源 | 亚洲欧美国产精品 | 九九热1 | 午夜免费久久看 | 久久高清国产视频 | 国产精品成人一区二区三区 | 777xxx欧美| 亚洲精品18日本一区app | 成人超碰在线 | 91精品在线免费 | 亚洲精品在线视频观看 | 干干干操操操 | 日韩欧美精品在线 | 婷婷色站 | 亚洲视频一级 | 激情婷婷在线观看 | 91mv.cool在线观看 | 中文字幕制服丝袜av久久 | 黄色一级在线观看 | 日韩理论影院 | 狂野欧美激情性xxxx | 97在线视频免费 | 91亚洲精品视频 | 国产精品va在线观看入 | 91在线视频播放 | 在线精品视频在线观看高清 | 国产精品久久久久久吹潮天美传媒 | 久久免费成人精品视频 | 91热视频 | 亚洲日韩中文字幕在线播放 | 在线看国产一区 | 黄色成人免费电影 | 91.精品高清在线观看 | 西西444www高清大胆 | 亚洲精品女 | 欧美日韩免费一区二区 | av一本久道久久波多野结衣 | 日韩高清在线不卡 | 国产美女在线免费观看 | 国产精品久久久久久麻豆一区 | 国产一区在线观看免费 | 成人av直播 | 久久视频国产精品免费视频在线 | 亚洲美女精品视频 | 免费精品在线 | 又黄又爽又色无遮挡免费 | 亚洲精品视频免费在线观看 | 国产精品美女久久 | 午夜精品福利一区二区 | 亚洲伊人天堂 | 国产精品一区二区电影 | 亚洲精品综合欧美二区变态 | 亚洲热久久 | 手机成人av| 91自拍视频在线 | 久99久在线视频 | 免费看污的网站 | 日韩中文字幕亚洲一区二区va在线 | 亚洲三级在线免费观看 | 91热视频 | 亚洲在线成人精品 | 亚洲日本三级 | 91在线精品观看 | 99精品视频播放 | 99视频偷窥在线精品国自产拍 | 91亚·色 | 国产91精品一区二区 | www.色婷婷 | 欧洲精品在线视频 | 夜色资源站国产www在线视频 | 婷婷久久网 | 免费看一级黄色大全 | 日日摸日日碰 | 久久久国产在线视频 | 99热精品久久 | 成年人国产精品 | 精品国产人成亚洲区 | 精品国精品自拍自在线 | 成人中心免费视频 | a一片一级| 国产精品美女视频网站 | 五月天色中色 | 国产99中文字幕 | 欧美久久久久久久久久久久 | 青青河边草手机免费 | 日韩视频中文字幕在线观看 | 在线观看免费高清视频大全追剧 | 久久精品这里热有精品 | 国产一级片一区二区三区 | 日本黄色免费网站 | 日韩视频精品在线 | 国产视频精品久久 | 色偷偷97 | 欧美国产一区二区 | 午夜视频在线观看一区 | 日韩在线观看a | 国产亚洲欧美日韩高清 | 日韩三级视频在线看 | 在线观看中文字幕dvd播放 | 久久精品一区二区三区中文字幕 | 在线小视频你懂的 | 国产a视频免费观看 | 成人欧美亚洲 | 国产成人精品午夜在线播放 | 西西人体www444| 91成品人影院 | 在线观看成人网 | 国产九九九精品视频 | 成 人 黄 色视频免费播放 | 干av在线 | 黄色大片国产 | 丁香激情五月 | 色a综合| 人人看人人做人人澡 | 日韩av在线一区二区 | 二区三区在线视频 | 天天干视频在线 | 美女视频黄的免费的 | 人人狠| 国产一级片网站 | 久久成人18免费网站 | 91亚洲精品视频 | 97视频免费在线 | 国产一卡二卡四卡国 | www.久久爱.cn | 色综合久久悠悠 | 日韩久久精品一区二区三区下载 | 精品国产区在线 | 96亚洲精品久久久蜜桃 | 97成人在线免费视频 | 欧美性极品xxxx做受 | 在线亚洲天堂网 | 波多野结衣精品在线 | 狠狠干中文字幕 | 亚洲国产日韩欧美在线 | 国产精品自在线拍国产 | 91综合久久一区二区 | 亚洲国产精品电影在线观看 | 在线日韩 | 在线网址你懂得 | 香蕉在线影院 | 国产免费久久 | 五月激情久久 | 99久久99久久精品 | 国产91对白在线播 | 亚洲一区二区三区精品在线观看 | 国产区免费 | 成人久久电影 | 最近免费中文字幕大全高清10 | 国产精品一区免费在线观看 | 韩日在线一区 | 免费看搞黄视频网站 | 黄色一区二区在线观看 | 热九九精品 | 国产色啪 | 午夜久久影视 | 狠狠色丁香九九婷婷综合五月 | 日韩美视频 | 99色在线| 麻豆精品在线 | 久久国产精品一二三区 | 久久九九免费 | 国产成人在线精品 | 亚洲综合激情 | www.五月婷 | 狠狠色噜噜狠狠狠狠 | 国产在线播放不卡 | 久久综合婷婷国产二区高清 | 亚洲国产综合在线 | 国产麻豆精品传媒av国产下载 | 国产在线精品国自产拍影院 | 色橹橹欧美在线观看视频高清 | 99精品视频网 | 欧美激情视频在线观看免费 | 日韩有码在线播放 | 亚洲国产精品视频在线观看 | 99这里只有久久精品视频 | 国产99久久久精品视频 | 亚洲精品视频免费看 | 欧美日韩高清一区 | 久久96国产精品久久99漫画 | 天天综合网久久综合网 | 在线播放国产一区二区三区 | 欧美极度另类性三渗透 | 丁香婷婷激情 | 久久成人国产精品入口 | 99日韩精品| 国产一区二区三区四区在线 | 国产美腿白丝袜足在线av | 国产亚洲精品久久久久5区 成人h电影在线观看 | 免费在线播放av电影 | 永久免费在线 | 五月婷婷激情五月 | 欧美日韩一区二区久久 | 亚洲美女精品区人人人人 | 国产丝袜制服在线 | 中文在线天堂资源 | 看全黄大色黄大片 | 黄色福利网| 免费看的黄色录像 | 91中文字幕一区 | 国产麻豆精品95视频 | 午夜美女av | 超碰成人网 | 婷婷新五月 | 国产精品不卡一区 | 中文字幕在线免费观看 | 国产一二三在线视频 | 中文在线最新版天堂 | 激情丁香在线 | 在线之家免费在线观看电影 | 香蕉网站在线观看 | 少妇性aaaaaaaaa视频 | 国产成人久久精品 | 91麻豆精品国产91久久久使用方法 | 99r在线视频 | 成人av av在线 | 国产精品二区在线 | .国产精品成人自产拍在线观看6 | 91精品国产一区二区在线观看 | 日韩av在线网站 | 怡红院av | av中文字幕免费在线观看 | 精品999国产| 欧美成年网站 | 国产91电影在线观看 | 黄色91免费观看 | 久久精品99国产精品亚洲最刺激 | 成人久久 | 国产午夜三级一二三区 | 日韩欧美高清在线观看 | 天天爽天天射 | 国产999精品久久久久久绿帽 | 久久免费在线观看 | 成人超碰97 | 免费毛片一区二区三区久久久 | 国产免费一区二区三区最新6 | 99视频这里只有 | 国际精品久久久 | 亚洲国产综合在线 | 天天看天天干天天操 | 麻豆视频在线免费观看 | 日批在线观看 | 一区二区三区在线观看 | 国产精品av久久久久久无 | 中文字幕欲求不满 | 午夜国产福利在线 | 亚洲毛片在线观看. | 国产精品 日本 | 国产精品视频久久 | 激情综合五月网 | 91爱爱网址| 夜色资源站wwwcom | 91在线观看视频 | 久久亚洲人 | 亚洲人成人在线 | 午夜国产福利在线观看 | 在线观看韩日电影免费 | 又黄又网站 | 久久综合九色综合久久久精品综合 | 日韩在线视频网站 | 国产精品自在线拍国产 | 亚洲成熟女人毛片在线 | 99 色| 91视频在线免费观看 | av免费网站在线观看 | www.婷婷色| 91视频3p | 国产欧美三级 | 91激情小视频| 国产精品久久久久一区二区国产 | 九九在线视频 | 中文字幕一区二区三区久久蜜桃 | 国产精品 中文在线 | 日韩欧美一区二区三区视频 | 91在线小视频 | 五月激情片 | 爱爱一区 | 婷婷六月综合亚洲 | 午夜精品视频一区 | 亚洲狠狠 | 婷婷av电影 | 欧美激情xxxx性bbbb | 麻豆免费精品视频 | 精品亚洲一区二区三区 | 婷婷色网址 | 中文字幕电影网 | av免费看网站 | 国产伦精品一区二区三区照片91 | 美女网站在线播放 | www在线免费观看 | 婷婷五天天在线视频 | 国产中文在线视频 | 免费麻豆视频 | 91人人插 | 色综合久久88 | 美女精品在线 | 免费成人av网站 | 人成在线免费视频 | 天堂视频中文在线 | 7777精品伊人久久久大香线蕉 | 午夜91在线| 成人a视频在线观看 | 人人看人人做人人澡 | 91精品国自产在线 | 91中文在线 | 色综合夜色一区 | 人人超在线公开视频 | 国产精品久久久久久久久久久久 | 免费av看片 | 日韩高清 一区 | 久久久99国产精品免费 | 欧美伦理一区二区三区 | 探花视频在线观看免费 | 国产亚洲精品久久久久久大师 | 亚洲 欧美 91 | 免费在线一区二区 | 亚洲在线网址 | 天天摸天天操天天舔 | 久久99精品久久久久久清纯直播 | 中文字幕刺激在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产偷v国产偷∨精品视频 在线草 | 国产精品久久久久久一区二区 | 成人av在线直播 | 日韩高清成人在线 | 国内精品亚洲 | 欧美久草网 | 久久99网 | 少妇bbb| 中文字幕电影在线 | 成年人免费在线观看网站 | 人人爽人人做 | 97av视频 | 99热精品在线 | 日韩在线观看视频一区二区三区 | 中文字幕激情 | 国产精品99爱 | 国产中文自拍 | 国产精品 久久 | 国产精品va在线播放 | 国产精品18久久久久久久久久久久 | 黄污视频大全 | 色中文字幕在线观看 | 亚洲二区精品 | 黄视频色网站 | www毛片com| 天天色宗合 | 国产精品乱码一区二区视频 | 激情影院在线观看 | 99久久精品免费看国产麻豆 | 免费在线播放av电影 | 91麻豆操| 国产福利一区二区三区在线观看 | 久久美女精品 | 激情文学丁香 | 亚洲精区二区三区四区麻豆 | 最新av在线免费观看 | 日韩久久网站 | 天天激情 | 国产在线观看免费 | 亚洲一级电影 | 婷婷免费在线视频 | 国产精品久久久久久久久久久久冷 | 中文字幕在线观看第一页 | 超碰免费av | 天天干天天射天天爽 | 日韩中文字幕免费视频 | 成人在线你懂得 | 婷婷色综合 | 国产精品尤物 | 国内久久久久久 | 久久免费99 | 黄色国产在线 | 91在线观| 国产精品麻豆免费版 | 国产不卡免费视频 | 午夜色影院 | 国产精品系列在线观看 | 色婷婷88av视频一二三区 | 日韩视频在线观看免费 | 久久一区二区免费视频 | 婷婷深爱网 | 中文字幕黄色网 | 97天天综合网 | 91麻豆精品国产 | 天天色欧美 | 五月天激情综合网 | 国产人成一区二区三区影院 | 中文字幕在线观看三区 | www.香蕉视频 | 久久五月精品 | 亚洲精品午夜久久久 | 96精品视频 | 97超碰免费在线观看 | 亚洲国产影院av久久久久 | 99re久久资源最新地址 | 99久久精品无免国产免费 | 欧美色图视频一区 | 欧美久久久久久 | 亚洲国产日韩一区 | 日韩av偷拍 | 在线观看av中文字幕 | 天天人人 | 草久在线观看 | 嫩草伊人久久精品少妇av | 中文免费观看 | 亚洲精品在线二区 | 欧美日韩国产一二三区 | 亚洲a免费| 日韩欧美视频在线播放 | 国产高清在线免费观看 | 丁香六月激情 | 91视频这里只有精品 | 国产精品区在线观看 | 日韩欧美一区二区三区黑寡妇 | 东方av免费在线观看 | www.天天综合 | 四虎国产永久在线精品 | 久久免费久久 | 97国产精品 | 国产一区二区在线观看视频 | 国产成人一区二区三区电影 | 911精品美国片911久久久 | 亚洲 欧美 日韩 综合 | 国产精品小视频网站 | 国产精品免费在线播放 | 国产日韩欧美网站 | 特黄色大片 | 亚洲粉嫩av | 91精品国产电影 | 久久激情小视频 | 九九热国产视频 | 麻豆91精品91久久久 | 精品国内自产拍在线观看视频 | 成人在线免费观看视视频 | 麻豆精品视频在线观看免费 | av在线影片 | 国产精品毛片久久久久久久久久99999999 | 色婷婷视频在线 | 成人av播放 | 最近中文字幕国语免费av | 韩国精品福利一区二区三区 | 色播五月激情综合网 | 亚洲黄色免费 | 麻豆视频免费看 | 久久综合之合合综合久久 | 97天堂 | 亚洲综合最新在线 | 日韩在线一二三区 | 99国产精品视频免费观看一公开 | 久九视频 | 日本中文字幕观看 | 在线电影日韩 | 99久精品视频 | 免费的国产精品 | 摸bbb搡bbb搡bbbb| 亚洲精品黄色 | 国产美女视频免费观看的网站 | 99久久婷婷国产精品综合 | 东方av免费在线观看 | 91精品视频网站 | 免费看的av片 | 国产精品久久电影网 | 二区三区在线观看 | 亚洲精品综合久久 | 久久国产美女视频 | 91久久精品日日躁夜夜躁国产 | 中文字幕不卡在线88 | 国产亚洲精品福利 | 国产99久久99热这里精品5 | 亚洲精品国产日韩 | 99日精品| 日韩精品在线免费观看 | 91试看| 国产精品18久久久久久首页狼 | 免费精品在线视频 | 亚洲成人网av | 亚洲精品乱码白浆高清久久久久久 | 丁香激情五月 | 国产精品都在这里 | 18国产精品福利片久久婷 | 一区二区三区四区久久 | 成年人免费在线观看网站 | 日韩精品一区二区三区视频播放 | 色www.| 天天操天天干天天爽 | 日韩在线一二三区 | 国产午夜不卡 | 四虎www| 精品人人人人 | 国产剧情亚洲 | 亚洲午夜久久久综合37日本 | 亚洲精品国产视频 | 大荫蒂欧美视频另类xxxx | 天天操天天操 | 色网站在线观看 | 成人在线播放免费观看 | 亚洲国产美女精品久久久久∴ | 中文字幕视频 | 日日天天干 | 国产又黄又硬又爽 | 丁香视频全集免费观看 | 狠狠色噜噜狠狠狠合久 | 中文字幕在线观 | 特级黄色视频毛片 | 久久久免费网站 | 国产精品中文久久久久久久 | 国产亚洲字幕 | 天天天天色射综合 | www看片网站 | 久久精品视频在线看 | 一级a性色生活片久久毛片波多野 | 久久久久黄色 | 久久久久久久久久电影 | 国产视频在线观看一区 | 丁香六月伊人 | 天天干天天干天天干天天干天天干天天干 | 97视频免费播放 | 久久综合久久综合这里只有精品 | 91精品国产99久久久久 | 日韩高清无线码2023 | 最近在线中文字幕 | 精品字幕在线 | 亚洲成人高清在线 | 五月激情六月丁香 | 亚洲免费激情 | 久久久久夜色 | 亚洲第一香蕉视频 | 欧美另类z0zx | 99r精品视频在线观看 | 天天操天天能 | 欧美久久久久久久久中文字幕 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 国产成人精品久久久久蜜臀 | 91重口视频 | 久久99国产精品久久99 | 在线免费日韩 | 中文字幕不卡在线88 | 久久久国产一区二区三区四区小说 | 99性视频| 国产在线播放一区二区三区 | 欧美日韩在线免费观看 | 国产在线小视频 | 韩国一区二区三区在线观看 | 国产xvideos免费视频播放 | 中文字幕在线播放日韩 | 亚洲视频1区2区 | 久久精品精品电影网 | 免费在线观看av片 | 中文字幕精品三级久久久 | 高清色免费 | 亚洲精品国久久99热 | 欧美色图88| 国产剧情在线一区 | 992tv又爽又黄的免费视频 | a在线观看视频 | 黄色成人影院 | 国产黄色片网站 | 国产精品高清在线 | 91毛片在线观看 | 国产在线观看你懂的 | 国产在线精品一区二区三区 | 最新影院 | 成年人三级网站 | 一区二区三区动漫 | 久久国产精品久久国产精品 | 天天伊人网 | 久久亚洲综合国产精品99麻豆的功能介绍 | 欧美日韩破处 | 91热精品 | 91久久一区二区 | 国内久久| 黄色av网站在线观看免费 | 欧美最猛性xxxxx亚洲精品 | 一区二区三区国产欧美 | 播五月婷婷 | 五月天堂色 | 97人人澡人人添人人爽超碰 | 久草影视在线观看 | 亚洲精品乱码久久久久久蜜桃动漫 | 亚洲专区 国产精品 | 91九色网站 | 一区二区不卡视频在线观看 | 激情视频免费观看 | 成人手机在线视频 | 国内精品久久天天躁人人爽 | 色婷婷国产 | 成人久久18免费网站图片 | 欧美成a人片在线观看久 | 国内精品在线看 | 日日夜夜91 | 中国一级片视频 | 婷婷六月综合亚洲 | 日韩视频一区二区三区在线播放免费观看 | 久久久久高清毛片一级 | 狠狠色狠狠色综合日日小说 | 久久久久久久久久久免费av | 色噜噜狠狠色综合中国 | 国产一级片免费观看 | 一区中文字幕电影 | 久久精品国产久精国产 | 成人免费影院 | 成年人黄色大片在线 | 亚洲自拍偷拍色图 | 亚洲精选在线观看 | 国产网红在线观看 | 久久午夜电影网 | 国产黄色一级大片 | 国产在线精品播放 | 日韩av在线高清 | 亚洲高清资源 | 天天操操操操操操 |