成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Linux設(shè)備模型之input子系統(tǒng)詳解

Linux設(shè)備模型之input子系統(tǒng)詳解

熱門標(biāo)簽:成都米蘭申請(qǐng) 百度地圖地圖標(biāo)注客服多少 iphone地圖標(biāo)注我的店鋪 廣東電話機(jī)器人開戶 哪種品牌的400電話申請(qǐng) 旅游路書地圖標(biāo)注 百度ai電銷機(jī)器人排名 適用的400電話辦理 ai智能外呼系統(tǒng)是什么

本節(jié)從整體上講解了輸入子系統(tǒng)的框架結(jié)構(gòu)。有助于讀者從整體上認(rèn)識(shí)linux的輸入子系統(tǒng)。在陷入代碼分析的過(guò)程中,通過(guò)本節(jié)的知識(shí)能夠找準(zhǔn)方向,明白原理。

本節(jié)重點(diǎn):

  •          輸入子系統(tǒng)的框架結(jié)構(gòu)
  •          各層對(duì)應(yīng)內(nèi)核中的文件位置
  •          輸入子系統(tǒng)的事件處理機(jī)制
  •          輸入子系統(tǒng)的驅(qū)動(dòng)層基本操作流程
  •          輸入子系統(tǒng)的驅(qū)動(dòng)層常用函數(shù)

本節(jié)難點(diǎn):

輸入子系統(tǒng)的事件處理機(jī)制

輸入子系統(tǒng)的驅(qū)動(dòng)工作流程

1 初識(shí)linux輸入子系統(tǒng)

linux輸入子系統(tǒng)(linux input subsystem)從上到下由三層實(shí)現(xiàn),分別為:輸入子系統(tǒng)事件處理層(EventHandler)、輸入子系統(tǒng)核心層(InputCore)和輸入子系統(tǒng)設(shè)備驅(qū)動(dòng)層。

對(duì)于輸入子系統(tǒng)設(shè)備驅(qū)動(dòng)層而言,主要實(shí)現(xiàn)對(duì)硬件設(shè)備的讀寫訪問(wèn),中斷設(shè)置,并把硬件產(chǎn)生的事件轉(zhuǎn)換為核心層定義的規(guī)范提交給事件處理層。

對(duì)于核心層而言,為設(shè)備驅(qū)動(dòng)層提供了規(guī)范和接口。設(shè)備驅(qū)動(dòng)層只要關(guān)心如何驅(qū)動(dòng)硬件并獲得硬件數(shù)據(jù)(例如按下的按鍵數(shù)據(jù)),然后調(diào)用核心層提供的接口,核心層會(huì)自動(dòng)把數(shù)據(jù)提交給事件處理層。

對(duì)于事件處理層而言,則是用戶編程的接口(設(shè)備節(jié)點(diǎn)),并處理驅(qū)動(dòng)層提交的數(shù)據(jù)處理。

對(duì)于linux輸入子系統(tǒng)的框架結(jié)構(gòu)如下圖1所示:

圖1 linux輸入子系統(tǒng)框架結(jié)構(gòu)

由上圖所展現(xiàn)的內(nèi)容就是linux輸入子系統(tǒng)的分層結(jié)構(gòu)。

/dev/input目錄下顯示的是已經(jīng)注冊(cè)在內(nèi)核中的設(shè)備編程接口,用戶通過(guò)open這些設(shè)備文件來(lái)打開不同的輸入設(shè)備進(jìn)行硬件操作。

事件處理層為不同硬件類型提供了用戶訪問(wèn)及處理接口。例如當(dāng)我們打開設(shè)備/dev/input/mice時(shí),會(huì)調(diào)用到事件處理層的Mouse Handler來(lái)處理輸入事件,這也使得設(shè)備驅(qū)動(dòng)層無(wú)需關(guān)心設(shè)備文件的操作,因?yàn)镸ouse Handler已經(jīng)有了對(duì)應(yīng)事件處理的方法。

輸入子系統(tǒng)由內(nèi)核代碼drivers/input/input.c構(gòu)成,它的存在屏蔽了用戶到設(shè)備驅(qū)動(dòng)的交互細(xì)節(jié),為設(shè)備驅(qū)動(dòng)層和事件處理層提供了相互通信的統(tǒng)一界面。

下圖2簡(jiǎn)單描述了linux輸入子系統(tǒng)的事件處理機(jī)制:

圖2 linux輸入子系統(tǒng)事件處理機(jī)制

由上圖可知輸入子系統(tǒng)核心層提供的支持以及如何上報(bào)事件到input event drivers。

作為輸入設(shè)備的驅(qū)動(dòng)開發(fā)者,需要做以下幾步:

1、在驅(qū)動(dòng)加載模塊中,設(shè)置你的input設(shè)備支持的事件類型,類型參見表1設(shè)置 

2、 注冊(cè)中斷處理函數(shù),例如鍵盤設(shè)備需要編寫按鍵的抬起、放下,觸摸屏設(shè)備需要編寫按下、抬起、絕對(duì)移動(dòng),鼠標(biāo)設(shè)備需要編寫單擊、抬起、相對(duì)移動(dòng),并且需要在必要的時(shí)候提交硬件數(shù)據(jù)(鍵值/坐標(biāo)/狀態(tài)等等) 

3、 將輸入設(shè)備注冊(cè)到輸入子系統(tǒng)中

表1 Linux輸入子系統(tǒng)支持的數(shù)據(jù)類型

EV_SYN     0x00    同步事件
EV_KEY     0x01    按鍵事件
EV_REL     0x02    相對(duì)坐標(biāo)(如:鼠標(biāo)移動(dòng),報(bào)告相對(duì)最后一次位置的偏移)
EV_ABS     0x03    絕對(duì)坐標(biāo)(如:觸摸屏或操作桿,報(bào)告絕對(duì)的坐標(biāo)位置)
EV_MSC     0x04    其它
EV_SW      0x05    開關(guān)
EV_LED     0x11    按鍵/設(shè)備燈
EV_SND     0x12    聲音/警報(bào)
EV_REP     0x14    重復(fù)
EV_FF      0x15    力反饋
EV_PWR    0x16    電源
EV_FF_STATUS    0x17   力反饋狀態(tài)
EV_MAX    0x1f    事件類型最大個(gè)數(shù)和提供位掩碼支持

由表1可知,設(shè)備所能表示的事件種類,一個(gè)設(shè)備可以選擇一個(gè)或多個(gè)事件類型上報(bào)給輸入子系統(tǒng)。

Linux輸入子系統(tǒng)提供了設(shè)備驅(qū)動(dòng)層上報(bào)輸入事件的函數(shù),在include/linux/input.h中:

voidinput_report_key(struct input_dev *dev, unsigned int code, int value);      //上報(bào)按鍵事件
voidinput_report_rel(struct input_dev *dev, unsigned int code, int value);       //上報(bào)相對(duì)坐標(biāo)事件
voidinput_report_abs(struct input_dev *dev, unsigned int code, int value);              //上報(bào)絕對(duì)坐標(biāo)事件

當(dāng)提交輸入設(shè)備產(chǎn)生的輸入事件之后,需要調(diào)用下面的函數(shù)來(lái)通知輸入子系統(tǒng),以處理設(shè)備產(chǎn)生的完整事件:

void input_sync(struct input_dev *dev); 

2 輸入設(shè)備驅(qū)動(dòng)的簡(jiǎn)單案例

在Linux內(nèi)核文檔的documentation/input下,有一個(gè)input-programming.txt文件,講解了編寫輸入設(shè)備驅(qū)動(dòng)程序的核心步驟。

提供的案例代碼描述了一個(gè)button設(shè)備,產(chǎn)生的事件通過(guò)BUTTON_PORT引腳獲取,當(dāng)有按下/釋放發(fā)生時(shí),BUTTON_IRQ被觸發(fā),以下是驅(qū)動(dòng)的源代碼:

#include                                                                                                           
 #include   
 #include   
  
 #include   
 #include   
  
 static struct input_dev *button_dev;  
  
 static void button_interrupt(int irq, void*dummy, struct pt_regs *fp)  
 {  
        input_report_key(button_dev, BTN_1, inb(BUTTON_PORT)  1);  
        input_sync(button_dev);  
 }        
  
 static int __init button_init(void)  
 {  
        int error;  
          
        if (request_irq(BUTTON_IRQ, button_interrupt, 0, "button",NULL)) {  
                 printk(KERN_ERR"button.c: Can't allocate irq %d\n", button_irq);  
                 return -EBUSY;  
        }        
          
         button_dev = input_allocate_device();  
        if (!button_dev) {  
                 printk(KERN_ERR"button.c: Not enough memory\n");  
                 error = -ENOMEM;  
                 goto err_free_irq;  
        }  
  
        button_dev->evbit[0] = BIT(EV_KEY);  
        button_dev->keybit[LONG(BTN_0)] = BIT(BTN_0);  
  
        error = input_register_device(button_dev);  
        if (error) {  
                 printk(KERN_ERR"button.c: Failed to register device\n");  
                 goto err_free_dev;  
        }  
  
        return 0;  
  
 err_free_dev:  
        input_free_device(button_dev);  
 err_free_irq:  
        free_irq(BUTTON_IRQ, button_interrupt);  
        return error;  
 }  
  
 static void __exit button_exit(void)  
 {  
       input_unregister_device(button_dev);  
        free_irq(BUTTON_IRQ, button_interrupt);  
}  
  
module_init(button_init);  
module_exit(button_exit);  

編寫基于輸入子系統(tǒng)的設(shè)備驅(qū)動(dòng)程序需要包含,因?yàn)樗溯斎胱酉到y(tǒng)的接口和所有的宏定義,這些內(nèi)容在編寫輸入設(shè)備驅(qū)動(dòng)程序時(shí)需要用到。

button_init函數(shù)說(shuō)明:

當(dāng)模塊加載(insmod)或內(nèi)核引導(dǎo)過(guò)程中,button_init函數(shù)會(huì)被調(diào)用。首先做的工作是獲取能夠正確控制硬件設(shè)備的硬件資源(例如內(nèi)存、IO內(nèi)存、中斷和DMA),在代碼中BUTTON_IRQ作為BUTTON設(shè)備的中斷資源,通過(guò)request_irq()函數(shù)被申請(qǐng)注冊(cè)。當(dāng)有按鍵按下/釋放時(shí),調(diào)用button_interrupt()中斷處理函數(shù)獲取按鍵值BUTTON_PORT(BUTTON設(shè)備的I/O資源)。

那么輸入子系統(tǒng)怎么能夠知道這個(gè)設(shè)備為輸入設(shè)備呢?通過(guò)第8行為設(shè)備定義一個(gè)用于描述一個(gè)輸入設(shè)備對(duì)象。

static struct input_dev *button_dev;  

定義了button_dev之后,如何通知輸入子系統(tǒng)有新的輸入設(shè)備了呢?或者說(shuō)如何把一個(gè)新的輸入設(shè)備加入到輸入子系統(tǒng)中呢?可以通過(guò)輸入子系統(tǒng)核心層input.c中提供的函數(shù)分配一個(gè)輸入設(shè)備,在代碼的第25行。

button_dev= input_allocate_device();  

有了輸入設(shè)備的描述,當(dāng)事件產(chǎn)生時(shí),輸入子系統(tǒng)怎么能夠知道設(shè)備產(chǎn)生的事件類型呢?通過(guò)32和33行的代碼。

button_dev->evbit[0]= BIT(EV_KEY);  
button_dev->keybit[LONG(BTN_0)]= BIT(BTN_0);  

其中evbit和keybit成員分別代表設(shè)備產(chǎn)生的事件類型和上報(bào)的按鍵值。其中輸入子系統(tǒng)的一些位操作NBITS、BIT、LONG經(jīng)常被用到:

#defineNBITS(x) (((x)/BITS_PER_LONG)+1)                 //通過(guò)位x獲取數(shù)組的長(zhǎng)度  
#defineBIT(x)       (1UL((x)%BITS_PER_LONG))       //返回位x在數(shù)組中的位域  
#defineLONG(x) ((x)/BITS_PER_LONG)                        //返回位x的索引  

以上的工作做完之后,即可注冊(cè)為輸入設(shè)備了,代碼的35行。

input_register_device(button_dev);  

這個(gè)函數(shù)把button_dev輸入設(shè)備掛入輸入設(shè)備鏈表中,并且通知事件處理層調(diào)用connect函數(shù)完成設(shè)備和事件處理的綁定,當(dāng)用戶打開設(shè)備時(shí),便能夠調(diào)用到相應(yīng)的事件處理接口獲得硬件上報(bào)的數(shù)據(jù)了。input_register_device()函數(shù)是會(huì)睡眠的函數(shù),因此不能夠在中斷上下文和持有自旋鎖的代碼中調(diào)用。

當(dāng)我們把上面的工作做完之后,設(shè)備驅(qū)動(dòng)中唯一值得關(guān)注的就是button_interrupt()中斷處理函數(shù)了。當(dāng)按鍵動(dòng)作發(fā)生,button_interrupt()函數(shù)被調(diào)用,完成事件的上報(bào)由其中的兩條語(yǔ)句完成。

input_report_key(button_dev, BTN_1, inb(BUTTON_PORT)  1);  
input_sync(button_dev);  

其中input_report_key上報(bào)了這是一個(gè)按鍵事件,且它的值為inb(BUTTON_PORT) 1,由于案例代碼只產(chǎn)生一個(gè)按鍵的值,因此input_sync()在這里不起關(guān)鍵作用。但如果是一個(gè)觸摸屏,即有x坐標(biāo)和y坐標(biāo),則需要通過(guò)input_sync()函數(shù)把x和y坐標(biāo)完整地傳遞給輸入子系統(tǒng)。

用于測(cè)試的應(yīng)用層代碼:

testkeyread_jb51.rar

標(biāo)簽:茂名 遼陽(yáng) 玉林 紹興 汕頭 大連 陜西 泰安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux設(shè)備模型之input子系統(tǒng)詳解》,本文關(guān)鍵詞  Linux,設(shè)備,模型,之,input,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux設(shè)備模型之input子系統(tǒng)詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Linux設(shè)備模型之input子系統(tǒng)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    99re这里只有精品视频首页| 中文字幕av专区| 成人一区二区三区仙踪林| 一本大道香蕉久在线播放29| 综合久久国产九一剧情麻豆| 国产精品久久久久国产精品日日| 国产精品一卡| 亚洲欧美在线视频免费| 亚洲国产婷婷| sm在线播放| 好男人www社区在线视频夜恋| 在线成人激情黄色| 久久久久亚洲AV成人无码国产| hitomi一区二区三区精品| www.国产精| 久久人人看视频| 中文在线аv在线| 熟妇女人妻丰满少妇中文字幕| 鲁一鲁一鲁一鲁一av| 亚洲免费成人av在线| 2019国内自拍| 欧美成人免费va影院高清| 久久av喷吹av高潮av| 青青草激情视频| 神马久久桃色视频| 欧美变态tickling挠脚心| 欧美另类99xxxxx| 亚洲女同另类| ass白嫩白嫩的小美女| 精品欧美一区二区在线观看| 国外av在线| www.日本xxxx| 欧美日韩国产高清电影| 7777狠狠狠琪琪电影| 91在线地址| 一区二区三区四区精品在线视频| 麻豆精品国产免费| 黄色电影免费在线观看| 欧洲一区在线电影| 亚洲自拍小视频免费观看| 宅男在线国产精品| 99视频在线免费播放| 欧美精品日韩综合在线| 91插插插插插插| 亚洲精品一二| gratisvideos另类灌满| 多人欧美交性姿势| 先锋影音av资源网| 国产乱子伦一区二区三区国色天香| 亚洲欧美一区二区三区情侣bbw| 亚洲天堂黄色| 色偷偷噜噜噜亚洲男人| 亚洲91精品| 国产青春久久久国产毛片| 亚洲欧美日韩中文在线| 69堂精品视频| 95精品视频| 国产91中文| 国产精品久久久久久久第一福利| 在线免费观看成人短视频| 国产精品青草久久| 69av视频在线播放| 欧美激情xxxx性bbbb| 国产三级生活片| 亚洲乱码国产乱码精品天美传媒| 国产精品偷伦视频免费观看国产| xfplay资源站夜色先锋| 欧美日韩综合一区| 四虎永久在线观看免费网站网址| www.久久草| 中文字幕日韩三级片| 中文字幕在线播放第一页| 国产一区二区三区不卡免费观看| 91精品国产91久久久久久密臀| 91麻豆福利精品推荐| 极品白嫩的小少妇| av网在线观看| 国产aⅴ精品一区二区四区| 久久精品国产精品亚洲精品色| 久久社区一区| 都市激情久久久久久久久久久| 精品av在线播放| 精品国产一区二区三区久久久狼| 农村寡妇一区二区三区| 欧美熟妇乱码在线一区| 日韩欧美中文字幕公布| 成人做爰免费视频免费看| 尤物在线观看一区| 色av成人天堂桃色av| 天堂网.www在线资源| 美女三级福利视频| 国产传媒免费在线观看| 国产精品美女一区二区三区四区| 豆国产97在线| 欧美扣逼视频| 神马久久精品| 制服丝袜在线91| 国产美女在线观看| 亚洲精品美女视频| 国产尤物av一区二区三区| 自拍亚洲国产| 欧美不卡在线一区二区三区| 一区二区三区四区不卡在线| 亚洲人成在线播放网站岛国| 久久国产高清视频| 成人三级黄色免费网站| 久操国产精品| 国产a级免费视频| 五月天婷婷基地| 99自拍视频在线| 激情综合色播五月| 国产亚洲第一伦理第一区| 激情欧美一区| 四虎影视最新地址| 中文字幕第一页av| 2023国产精品久久久精品双| 日韩中文综合网| 国产十八熟妇av成人一区| 青少年xxxxx性开放hg| 97神马电影| 视频一区在线免费观看| 亚洲男人天堂久久| 久久99热这里只有精品国产| 男男视频亚洲欧美| 国产精品999| 性史性dvd影片农村毛片| 国产日韩欧美综合一区| 国产乱叫456| 成人c视频免费高清在线观看| 国产精品毛片一区二区在线看| 久久久久久久久久久久久女过产乱| 久久久久久久久久久久91| 少妇人妻在线视频| 亚洲精品一品区二品区三品区| 大胸美女被爆操| 国产资源在线观看入口av| 亚洲在线第一页| 激情亚洲综合在线| 精品无码av在线| 福利一区和二区| 日韩免费高清在线观看| 久久精品国产精品青草色艺| 国产成人精品一区二区三区网站观看| 91香蕉视频在线| 国产a久久精品一区二区三区| 制服丝袜成人动漫| 欧美一乱一性一交一视频| 女人让男人操自己视频在线观看| 中文先锋资源| 成人网中文字幕| 欧美性猛交p30| 少妇愉情理伦片bd| av大片免费看| 欧美亚洲另类制服自拍| 日本一区二区免费在线观看| 99久久综合精品| 成人免费无码av| 日本泡妞xxxx免费视频软件| 性xxxxfjsxxxxx欧美| 99热这里只有精品在线观看| 国产精品美女在线观看| 国产精品久久久久7777婷婷| 在线观看的av| 寂寞少妇一区二区三区| 亚洲精品www.| 性爱在线免费视频| 久久99久国产精品黄毛片入口| 亚洲无亚洲人成网站77777| av资源吧首页| 日本特黄a级高清免费大片| а√天堂中文在线资源8| 在线观看xxxx| 国产精选在线观看| 成人午夜激情片| 久久人体大尺度| 国产在线视频网| 免费毛片在线| 欧美三日本三级三级在线播放| 精品国产a一区二区三区v免费| 中文字幕乱妇无码av在线| jizzjizz.con| 激情婷婷丁香| 日本中文字幕观看| 91在线视频一区| 日日噜噜夜夜狠狠久久波多野| 国产成+人+综合+亚洲欧美丁香花| 国产一级视频在线| 国产中文字幕亚洲| 国产精品免费av| 日韩欧美一级片| 成年女人18级毛片毛片免费| 日本成人黄色片| 波多野结衣一区二区三区在线观看| 韩国三级电影一区二区| av不卡免费在线观看| 最新国产拍偷乱拍精品| 先锋影音av资源在线| 自拍偷拍中文字幕| 久久国产加勒比精品无码| 老司机福利在线视频| 3344国产精品免费看| 九色视频成人自拍| 日韩欧美亚洲国产一区| 林心如三级全黄裸体| 福利视频久久| 日本免费一区视频| av中文网站| 成全视频在线播放大地| 精品久久久久久综合日本欧美| 久久久久久久久蜜桃| 91.www| 国产成人手机在线| 日韩视频一区二区三区在线播放免费观看| www.97视频| 在线日韩中文| av在线电影播放| 免费日韩一级片| 国产精品乱战久久久| 国产精品三级久久久久久电影| 2020亚洲男人天堂| www.操操操.com| 成年网站免费| 国产aⅴ精品一区二区三区久久| 亚洲欧美日本韩国| 成人婷婷网色偷偷亚洲男人的天堂| 国产精品果冻传媒潘| 在线成人激情| 久久影院电视剧免费观看| 日韩乱码人妻无码中文字幕久久| 国产高清在线不卡| 日韩黄色片网站| 亚洲免费福利视频| 国产超碰精品| 日韩国产欧美一区二区| 日本不卡免费高清视频| 在线看片福利| 午夜免费入口| 欧美日韩大片免费观看| 宅男一区二区三区| 亚洲成人av免费看| 一区二区国产在线| av免费在线一区| av男人的天堂网| 日本а中文在线天堂| 成人影院在线| 日本少妇高潮喷水xxxxxxx| 日日夜夜精品视频免费| 日本成人在线免费视频| 国产iv一区二区三区| 午夜在线电影亚洲一区| 欧美黑人猛交的在线视频| 老司机aⅴ在线精品导航| 国产毛片久久久久久国产毛片| 在线观看视频中文字幕| 中文字幕中文字幕在线十八区| 国产精品一区二区三区成人| 欧美精品v日韩精品v国产精品| 涩涩视频在线| 免费人成又黄又爽又色| 男人av在线播放| 色欲一区二区三区精品a片| 漂亮人妻被中出中文字幕| 日本中文一区二区三区| 亚洲精品视频网| 亚洲精品久久久中文字幕| 欧美激情性做爰免费视频| 国产三级视频在线| 欧美丝袜丝交足nylons图片| 麻豆精品在线视频| 网友自拍亚洲| 欧美精品九九久久| 在线免费观看国产精品| 国产精品卡一卡二卡三| 国产精品密蕾丝袜| 美女黄色一级视频| 狠狠色噜噜狠狠狠狠色吗综合| 毛片免费不卡| 台湾佬成人中文网222vvv| 在线视频日韩| 欧美精品一区二区三区蜜臀| 999在线观看精品免费不卡网站| 久久精品国产欧美亚洲人人爽| 久久久久五月天| 麻豆国产传媒av福利| 中文字幕一区二区三中文字幕| 懂色中文一区二区三区在线视频| 天美av一区二区三区久久| 熟女性饥渴一区二区三区| 九一免费看片| 日韩少妇裸体做爰视频| 成人免费网站在线观看| 欧美人妻精品一区二区免费看| 久久久不卡网国产精品一区| 欧美深夜视频| 麻豆亚洲av成人无码久久精品| 一级特黄aaa大片| 国产一区二区三区18| 神马国产精品影院av| 又嫩又硬又黄又爽的视频| 99久久99久久精品| 亚洲一二三精品| 午夜精品一区二区三区在线播放| 欧美写真视频一区| …久久精品99久久香蕉国产| 中文字幕国产一区| 黄污在线观看| 在线观看久久av| 日韩精品一线二线三线| 日本.亚洲电影| 国产在线观看免费一区| 日韩av在线看| 色综合久久精品亚洲国产| 九九热在线免费观看| 亚洲精品国产九九九| 欧美一级做一级爱a做片性| 久久中文字幕在线| 夜夜嗨av色综合久久久综合网| 成人97人人超碰人人99| 亚州欧美一区三区三区在线| www.精品视频| 国产在线|日韩| 在线免费看av的网站| 欧美黑人又粗大| 精品亚洲免费视频| 99视频精品在线| 欧美高清在线一区二区| 成人频在线观看| 想看黄色一级片|