• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    /proc文件系統(tǒng)在實(shí)時(shí)系統(tǒng)RTAI中的應(yīng)用

    2007-01-01 00:00:00李東亮
    計(jì)算機(jī)時(shí)代 2007年5期

    摘要:/proc文件系統(tǒng)是一個(gè)特殊的、由軟件創(chuàng)建的文件系統(tǒng),內(nèi)核使用此文件系統(tǒng)可以向外部輸出信息。在進(jìn)行Linux和實(shí)時(shí)應(yīng)用程序開(kāi)發(fā)時(shí),用戶經(jīng)常會(huì)使用內(nèi)核變量,獲取內(nèi)核信息。文章分析了利用/proe文件系統(tǒng)獲取內(nèi)核信息的方法以及/proc文件系統(tǒng)在實(shí)時(shí)系統(tǒng)RTAI中的應(yīng)用。

    關(guān)鍵詞:/proc文件系統(tǒng);Linux;內(nèi)核信息;RTAI

    0 引言

    /proc文件系統(tǒng)是Linux向用戶提供系統(tǒng)內(nèi)部參數(shù)的一個(gè)偽文件系統(tǒng),它包含許多文件,可用于監(jiān)視、調(diào)試或更改運(yùn)行中內(nèi)核的參數(shù)。對(duì)于內(nèi)核信息的獲取,一般僅使用其中的一部分文件。對(duì)這些文件執(zhí)行的讀操作,會(huì)被,proc文件系統(tǒng)定位到一個(gè)內(nèi)核函數(shù)。本文通過(guò)對(duì)Linux系統(tǒng)內(nèi)核現(xiàn)有通信機(jī)制的研究,介紹利用/proc文件系統(tǒng)輸出內(nèi)核信息的方法以及在實(shí)時(shí)系統(tǒng)RTAI中利用/proc文件系統(tǒng)控制實(shí)時(shí)任務(wù)的方法。

    1/proc文件系統(tǒng)概述

    Linux系統(tǒng)中的/proc文件系統(tǒng)是進(jìn)程文件系統(tǒng)和內(nèi)核文件系統(tǒng)組成的復(fù)合體,它將內(nèi)核數(shù)據(jù)對(duì)象化為文件形式進(jìn)行存取,通過(guò)文件系統(tǒng)接口實(shí)現(xiàn),用于輸出系統(tǒng)運(yùn)行狀態(tài);以文件系統(tǒng)的形式為操作系統(tǒng)和應(yīng)用進(jìn)程之間的通信提供了一個(gè)界面,使應(yīng)用程序能夠安全、方便地獲得系統(tǒng)當(dāng)前的運(yùn)行狀態(tài)和內(nèi)核的數(shù)據(jù)信息,并且可以修改某些系統(tǒng)的配置信息。

    /proc文件系統(tǒng)主要分成兩個(gè)部分:一部分是和進(jìn)程相關(guān)的目錄部分,在實(shí)現(xiàn)時(shí)將這部分稱為base部分;另一部分是把/proc根下面的其他目錄和文件,又分為兩部分,一是/proc下的子目錄,另一是/proc下的文件,如cpuinfo等。這三部分是通過(guò)不同的初始化函數(shù)完成初始化的。/proe目錄下的每一個(gè)文件都與內(nèi)核函數(shù)緊密相連,當(dāng)文件被讀取時(shí)內(nèi)核函數(shù)生成文件的“內(nèi)容”。/proe文件系統(tǒng)是動(dòng)態(tài)的,可以在其中創(chuàng)建自己的/proc文件,獲取所需內(nèi)核信息。

    Linux系統(tǒng)啟動(dòng)后,創(chuàng)建了由proc_dir_entry{}結(jié)構(gòu)形成的文件系統(tǒng)樹(shù)。在/proc文件系統(tǒng)中,代表各個(gè)文件節(jié)點(diǎn)的結(jié)構(gòu)是proc_dir_entry{}結(jié)構(gòu),它描述一個(gè)/proc文件系統(tǒng)中目錄結(jié)構(gòu)節(jié)點(diǎn)。每個(gè)節(jié)點(diǎn)在整個(gè)目錄結(jié)構(gòu)中或是一個(gè)文件,或是一個(gè)目錄,通過(guò)指針將大量的proc_dir_entry{}節(jié)點(diǎn)組成樹(shù)狀結(jié)構(gòu)。和一般文件系統(tǒng)不同的是,它修改的并不是硬盤(pán)上的文件,而是在系統(tǒng)啟動(dòng)之后內(nèi)存中由內(nèi)核動(dòng)態(tài)創(chuàng)建的文件。因此在系統(tǒng)關(guān)閉之后,/proc文件系統(tǒng)中的文件就不存在了。proc_dir_entry{}結(jié)構(gòu)提供了對(duì)文件內(nèi)容的讀寫(xiě)所需要的函數(shù)指針,即管理著從操作系統(tǒng)的用戶空間到核心空間對(duì)文件讀寫(xiě)的驅(qū)動(dòng)。每當(dāng)從用戶空間讀取,proc目錄下的文件時(shí),內(nèi)核根據(jù)讀取的文件映射到對(duì)應(yīng)的驅(qū)動(dòng)函數(shù),動(dòng)態(tài)地獲取內(nèi)核數(shù)據(jù)。除了提供讀的功能,/proe文件系統(tǒng)的部分文件還提供寫(xiě)的功能,在Linux2.4系統(tǒng)中主要是針對(duì)/proc/sys目錄而做的。對(duì)/proc文件系統(tǒng)的寫(xiě)操作并不是寫(xiě)硬盤(pán)等硬件設(shè)備,而是動(dòng)態(tài)更改內(nèi)核中的數(shù)據(jù),達(dá)到監(jiān)視內(nèi)核運(yùn)行狀態(tài)的目的。

    2 /proc目錄下文件節(jié)點(diǎn)的讀寫(xiě)操作流程(以讀為例)

    讀/proc文件系統(tǒng)中的文件,是通過(guò)層層調(diào)用,最終操作內(nèi)核變量的讀函數(shù),將內(nèi)核信息收集到字符型指針?biāo)赶虻木彌_區(qū)中。也就是說(shuō),用戶進(jìn)程通過(guò)系統(tǒng)調(diào)用read(讀文件)進(jìn)入系統(tǒng)態(tài),執(zhí)行sys_read內(nèi)核函數(shù);

    asmtinkage ssize_t sys_read(unsigned int fd,char*buf,

    size_t count)

    {…

    ssize_t ret;

    struct file*file;

    file=get(fd);

    ret=file->read(file,buf,count,file->f_pos);

    }

    可見(jiàn),文件讀操作進(jìn)入到核心態(tài)后,執(zhí)行的是file結(jié)構(gòu)中函數(shù)跳轉(zhuǎn)表f_op中的read指針?biāo)傅暮瘮?shù)。

    file->f_op函數(shù)跳轉(zhuǎn)表值來(lái)源于inode結(jié)構(gòu)中的i_fop;

    在訪問(wèn)文件的過(guò)程中,dentry_open函數(shù)將文件索引節(jié)點(diǎn)中函數(shù)跳轉(zhuǎn)表i_fop值賦給file結(jié)構(gòu)中的f_op。

    struct file *dentry_open(struct dentry*dentry,

    struct vfsmount *mnt,int flags)

    {struct file *f;

    struct inode *inode;

    inode=dentry->d_inode;

    f->f_op=fops_get(jnode->ffop);

    return f;

    }

    inode結(jié)構(gòu)中的i_fop值來(lái)源于proc_dir_entry中的proc_fops;

    在創(chuàng)建/proc文件系統(tǒng)中文件的inode節(jié)點(diǎn)時(shí),函數(shù)proc_get_inode將文件對(duì)應(yīng)的proc_dir_entry中的proc_fops值賦給inode結(jié)構(gòu)中的i_fop。

    struct inode *proc_get_inode(struct super_block *sb,int ino,

    struct proc_dir_entry*de)

    {struct inode *inode;

    inode=iget(sb,ino):

    inode->u.generic_ip=(void*)de;

    if(de->proc_fops)

    inode->i fop=de->proc_fops;

    return inode;

    }

    proc_dir_entry結(jié)構(gòu)中的proc_fops是proc_file_operations;

    在文件./linux/fs/proc/generic.c,proc_file_operations賦值為:

    struct file_operations proc_file_operations=

    {Ilseek:proc_file_lseek,

    read::proc_file_read,

    write:proc file write,

    };

    在創(chuàng)建文件的proc_dir_entry結(jié)構(gòu)時(shí),函數(shù)proc_register將proc_file_operations值賦給proc_dir_entry結(jié)構(gòu)中的proc_fops。

    static int proc_register(struct proc_dir_entry*dir,

    struct proc_dir_entry*dp)

    {…

    if(dp->proc_fops==NULL)

    dp->proc_fops=proc__file_operations;

    }

    proc_file_read函數(shù)執(zhí)行的是proc_dir_entry結(jié)構(gòu)中函數(shù)指針?biāo)傅暮瘮?shù)。

    static ssize_t proc_file_read(struct file*file,

    const char*buffer,size_t count,Ioff_t *ppos)

    {struct inode *inode=file->f_dentry->d_inode;

    struct proc dir entry *dp;

    dp=(struct proc_dir_entry*)->inode->u.generic_ip;

    if(!dp->write_proc)

    return EIO;

    return dp->read_proc(file,buffer,count,dp->data);

    }

    proc_dir_entry結(jié)構(gòu)中proc_read函數(shù)指針賦值是在創(chuàng)建文件的proc_dir_entry結(jié)構(gòu)時(shí)進(jìn)行的。

    文件./include/linux/proc_fs.h

    static inline struct proc_dir_entry *create_proc_read_entry(const

    char*name,mode_t mode,struct proc_dir_entry*base,

    read_proc_t*read_proc,void*data)

    {struct proc_dir_entry*res=create_proc_entry(name,mode,base);

    if(res)

    {res->read_proc=read_proc;

    res->data=data;

    }

    return res;

    }

    函數(shù)create_proc_read_entry參數(shù)表中的參數(shù)read_proc是對(duì)應(yīng)內(nèi)核變量的讀函數(shù)。

    3 使用/proc文件系統(tǒng)獲取內(nèi)核信息的方法

    3.1修改/proc文件系統(tǒng)中原有的文件

    /proc文件系統(tǒng)中,用戶進(jìn)程是直接打開(kāi)/proc文件來(lái)實(shí)現(xiàn)自動(dòng)調(diào)用相應(yīng)內(nèi)核函數(shù)的。當(dāng)查看/proc目錄下的文件時(shí),這些文件會(huì)顯示出Linux系統(tǒng)內(nèi)部的一些信息。其實(shí)對(duì)它們進(jìn)行讀操作是調(diào)用了操作系統(tǒng)內(nèi)核中的一些對(duì)應(yīng)的函數(shù),這些函數(shù)及時(shí)將所取的信息反饋給用戶或應(yīng)用程序。因此在內(nèi)核中改造讀文件函數(shù),在讀/proc目錄下的對(duì)應(yīng)文件時(shí),可以得到所需的數(shù)據(jù)。

    例如對(duì)于/proc/loadavg文件來(lái)說(shuō),讀文件指針指向loadavg_read_proc()函數(shù)。該函數(shù)的作用就是當(dāng)用戶讀/proc/loadavg文件時(shí),將數(shù)組avenrum[]中積累的,即在過(guò)去1分鐘、5分鐘以及15分鐘的系統(tǒng)平均CPU負(fù)荷等統(tǒng)計(jì)信息通過(guò)spfintf()“打印”到緩沖區(qū)頁(yè)面中。我們可以把代碼加到諸如此類的文件中,由這些文件幫我們把所需的數(shù)據(jù)輸出來(lái)。修改完代碼后,重新編譯內(nèi)核即可。在這里,內(nèi)核到用戶的信息通過(guò)/proc文件系統(tǒng)來(lái)傳遞,但沒(méi)有在/proc目錄下創(chuàng)建新文件,而是借用Linux內(nèi)核代碼,從而得到所需的數(shù)據(jù)。這樣做的好處是減少對(duì)內(nèi)核的修改量,缺點(diǎn)是需重新編譯內(nèi)核。

    3.2在/proc目錄下新建文件

    3.2.1創(chuàng)建新/proc文件,利用read_proc操作

    新創(chuàng)建的/proc文件要想被訪問(wèn)到,首先要在,proc文件系統(tǒng)中創(chuàng)建一個(gè)入口,這可以通過(guò)函數(shù)creat_proc_read_entry()來(lái)實(shí)現(xiàn)。

    從上面分析可以看出,/proc目錄下的文件只提供了讀寫(xiě)操作,即只實(shí)現(xiàn)了proc dir entry{}結(jié)構(gòu)中對(duì)應(yīng)的read_proc操作,而沒(méi)有提供該結(jié)構(gòu)中的文件操作函數(shù)集,此時(shí)使用的是缺省的文件操作函數(shù)集。文件操作函數(shù)集struct file_operationsproc_file_operations中read對(duì)應(yīng)函數(shù)proc_file_read(),該函數(shù)的實(shí)現(xiàn)依賴于proc_dir_entry{}結(jié)構(gòu)中的read_proc函數(shù)。因此若注冊(cè)自己的/proc文件,在沒(méi)有設(shè)置proc_fops文件操作函數(shù)集時(shí),需實(shí)現(xiàn)read_proc(),否則缺省的proc file read()函數(shù)將做不了任何工作。所以,當(dāng)創(chuàng)建只讀的/proc文件時(shí),程序中必須實(shí)現(xiàn)proc_dir_entry{}結(jié)構(gòu)中的read_proc()函數(shù)。

    read_proc()函數(shù)的特點(diǎn)是:/proc文件系統(tǒng)首先通過(guò)sprintf()函數(shù)將要獲取的參數(shù)轉(zhuǎn)換成字符串寫(xiě)入內(nèi)核中臨時(shí)分配的一個(gè)空頁(yè),然后再將該頁(yè)用copy_to_user()送到用戶空間,最后釋放該頁(yè)。實(shí)際上,大部分內(nèi)核參數(shù)都是整型或長(zhǎng)整型的。/proc文件系統(tǒng)將內(nèi)核數(shù)據(jù)轉(zhuǎn)換成字符串是為了方便用戶閱讀。

    3.2.2創(chuàng)建新/proc文件,使用文件操作函數(shù)集

    創(chuàng)建/proc文件的方法與創(chuàng)建字符設(shè)備文件的方法非常相似。首先創(chuàng)建一個(gè)proc_dir_entry{}結(jié)構(gòu),該結(jié)構(gòu)包含了/proc文件需要的所有信息。然后通過(guò)create_proc_entry()函數(shù)向內(nèi)核注冊(cè)這個(gè)結(jié)構(gòu),而remove_proc_entry()函數(shù)將取消它的注冊(cè)。proc_dir_entry{)結(jié)構(gòu)中描述了/proc文件的全部信息。這里最重要的是該結(jié)構(gòu)中的proc_fops項(xiàng),這是一個(gè)指向file_operations結(jié)構(gòu)的指針,可以把對(duì)/proc文件的讀寫(xiě)等操作放在這個(gè)結(jié)構(gòu)中,用以實(shí)現(xiàn)對(duì)/proc文件的讀寫(xiě)等功能。代碼如下:

    int ssize_t procread(struct file*file,char*buf,aize_t len,loff_t*offset); static ssize_t procwrite(struct file*file,char*buf,aize_t Ien,

    loff_t *offset);

    static struct file_operations procfop=

    {read:procread,

    write:procwrite,

    };

    static int init_routine(void)

    {struct proc_dir_entry *entry;

    entry=create_proc_entry(\"test\",S_IRUSRIS_IwUSR,NULL);

    entry->proc_fops=procfop;

    rutern;

    }

    4 /proc文件系統(tǒng)在RTAI中的應(yīng)用

    RTAI是實(shí)時(shí)應(yīng)用接口Real-Time Application Interface的縮寫(xiě),提供了一個(gè)基于Linux的實(shí)時(shí)方案。RTAI利用Linux提供的可加載內(nèi)核模塊機(jī)制來(lái)提供服務(wù),完成實(shí)時(shí)功能。模塊經(jīng)過(guò)加載,成為內(nèi)核的一部分,但是并沒(méi)有被編譯到內(nèi)核里面去。它們被分別編譯并連接成一組目標(biāo)文件,這些文件能被插入到正在運(yùn)行的內(nèi)核,或從正在運(yùn)行的內(nèi)核中移走。RTAI提供的主要模塊有RTAI主模塊、RTAI調(diào)度器模塊、RTAI命名管道fifo模塊及RTAI共享內(nèi)存模塊等。

    4.1利用/proc文件系統(tǒng)用戶獲取實(shí)時(shí)內(nèi)核的信息

    RTAI主模塊是RTAI的核心模塊,它是其他模塊的基礎(chǔ)。要加載其他模塊,首先必須加載這個(gè)模塊,沒(méi)有它,任何實(shí)時(shí)任務(wù)都不能完成。當(dāng)這個(gè)模塊被加載后,在/proc目錄下會(huì)自動(dòng)生成一個(gè)rtai子目錄,在其他模塊如rtai_sched、rtai_fifos等模塊加載后,rtai子目錄下又有rtai、scheduler、fifos等文件??梢酝ㄟ^(guò)命令cat讀取實(shí)時(shí)系統(tǒng)RTAI的有關(guān)信息,主要由…/rtai-x.x.x/arch/i386/rtai.c文件中的函數(shù)實(shí)現(xiàn)其功能:

    struct proc dir entry *rtai_proc_root=NULL;

    static int rtai_proc_register(void)

    {…

    rtai_proc_root=create_proc_entry(“rtai”,S_IFDIR,0);

    ent=create_proc_entry(“rtai”,S_IFREGIS_IRUGOIS_IwUSR,

    rtai_proc_root);

    ent->read proc=rtai_read_rtai;

    }

    4.2 利用/proc文件系統(tǒng)控制實(shí)時(shí)任務(wù)

    利用/proc文件系統(tǒng)write_proc函數(shù)可以修改內(nèi)核數(shù)據(jù),控制實(shí)時(shí)任務(wù)。首先使用create_proc_entry函數(shù)在/proc文件系統(tǒng)中創(chuàng)建一個(gè)虛擬文件,這個(gè)函數(shù)可以接收一個(gè)文件名、一組權(quán)限和這個(gè)文件在,proc文件系統(tǒng)中出現(xiàn)的位置。create_proc_entry的返回值是一個(gè)proc_dir_entry指針(或者為NULL,說(shuō)明在create時(shí)發(fā)生了錯(cuò)誤)。然后就可以使用這個(gè)返回的指針來(lái)配置這個(gè)虛擬文件的其他參數(shù),例如在對(duì)該虛擬文件執(zhí)行寫(xiě)操作時(shí)應(yīng)該調(diào)用的write_proc函數(shù)。通過(guò)/proc文件的write_proc函數(shù),修改內(nèi)核中可以控制實(shí)時(shí)任務(wù)執(zhí)行的變量,從而達(dá)到控制實(shí)時(shí)任務(wù)的目的。

    5 結(jié)束語(yǔ)

    Linux、RTAI都是開(kāi)放源代碼的,我們可以采取任何能想到的方法對(duì)它進(jìn)行分析和改進(jìn),這是開(kāi)放源代碼提供給我們研究和學(xué)習(xí)的便利。但也應(yīng)注意避免向內(nèi)核中帶入一些難以發(fā)現(xiàn)的錯(cuò)誤。本文所提出的利用/proc文件實(shí)現(xiàn)實(shí)時(shí)系統(tǒng)監(jiān)控和實(shí)時(shí)任務(wù)控制的方法,簡(jiǎn)單易行,用于開(kāi)發(fā)應(yīng)用程序非常方便。

    注:本文中所涉及到的圖表、注解、公式等內(nèi)容請(qǐng)以PDF格式閱讀原文。

    久久国产精品人妻蜜桃| 老司机午夜福利在线观看视频| 99热6这里只有精品| 麻豆国产av国片精品| 给我免费播放毛片高清在线观看| 国产亚洲精品久久久com| 琪琪午夜伦伦电影理论片6080| 欧美午夜高清在线| 国产免费av片在线观看野外av| 国产免费一级a男人的天堂| 在线天堂最新版资源| 无限看片的www在线观看| 制服人妻中文乱码| 九九热线精品视视频播放| 国产精品久久久久久亚洲av鲁大| 国产视频一区二区在线看| 亚洲aⅴ乱码一区二区在线播放| 中国美女看黄片| 午夜福利视频1000在线观看| 欧美中文日本在线观看视频| 国产 一区 欧美 日韩| 久久久精品大字幕| 日韩精品中文字幕看吧| 免费av观看视频| 国产精品1区2区在线观看.| 老熟妇仑乱视频hdxx| 丁香欧美五月| 美女免费视频网站| 日本精品一区二区三区蜜桃| 日本免费a在线| 极品教师在线免费播放| 欧美日韩一级在线毛片| 国内久久婷婷六月综合欲色啪| 人妻丰满熟妇av一区二区三区| 91九色精品人成在线观看| 变态另类成人亚洲欧美熟女| 人人妻,人人澡人人爽秒播| 久久国产乱子伦精品免费另类| 免费av不卡在线播放| 看黄色毛片网站| 国产欧美日韩精品一区二区| 高潮久久久久久久久久久不卡| 蜜桃亚洲精品一区二区三区| 97超级碰碰碰精品色视频在线观看| 夜夜爽天天搞| 亚洲五月天丁香| 午夜精品久久久久久毛片777| 欧美极品一区二区三区四区| 久久久久久久久中文| 免费在线观看日本一区| 熟女电影av网| 3wmmmm亚洲av在线观看| 久久久久性生活片| 亚洲成人久久性| 精品人妻偷拍中文字幕| 亚洲成人精品中文字幕电影| 男女下面进入的视频免费午夜| 美女高潮喷水抽搐中文字幕| 日本免费a在线| av女优亚洲男人天堂| 女人被狂操c到高潮| 国产 一区 欧美 日韩| 伊人久久精品亚洲午夜| 两个人的视频大全免费| 国产不卡一卡二| 亚洲无线在线观看| 中国美女看黄片| 国产视频内射| 日本三级黄在线观看| 国产精品野战在线观看| 国产精品一区二区三区四区免费观看 | 国产黄色小视频在线观看| 欧美zozozo另类| 欧美性猛交黑人性爽| 亚洲av熟女| 国产真实乱freesex| 精品日产1卡2卡| 亚洲人成网站高清观看| 一本综合久久免费| 亚洲电影在线观看av| 成人三级黄色视频| 国产欧美日韩精品亚洲av| 免费观看人在逋| 亚洲欧美日韩高清专用| 欧美一级毛片孕妇| 久久国产精品人妻蜜桃| 国产精品99久久久久久久久| 99久久九九国产精品国产免费| 一个人看的www免费观看视频| 亚洲成人久久性| 久久亚洲精品不卡| 露出奶头的视频| 亚洲黑人精品在线| 欧美日韩一级在线毛片| 亚洲精品乱码久久久v下载方式 | 在线免费观看的www视频| 极品教师在线免费播放| 精品欧美国产一区二区三| 欧美一级毛片孕妇| 少妇的逼水好多| 麻豆成人av在线观看| 女人高潮潮喷娇喘18禁视频| 亚洲,欧美精品.| 观看美女的网站| 午夜福利在线观看吧| av片东京热男人的天堂| 国产aⅴ精品一区二区三区波| 中文资源天堂在线| 国产一区二区三区视频了| 男女下面进入的视频免费午夜| 国产一区二区激情短视频| 叶爱在线成人免费视频播放| 两个人视频免费观看高清| 精品一区二区三区视频在线 | 97人妻精品一区二区三区麻豆| 在线免费观看的www视频| 国产高清有码在线观看视频| 99精品久久久久人妻精品| xxxwww97欧美| 级片在线观看| 日本在线视频免费播放| 啦啦啦韩国在线观看视频| 一个人看视频在线观看www免费 | a在线观看视频网站| 国产97色在线日韩免费| 国产成人av激情在线播放| 激情在线观看视频在线高清| 午夜福利高清视频| 久久婷婷人人爽人人干人人爱| 久久精品影院6| 成人午夜高清在线视频| av女优亚洲男人天堂| 99久久成人亚洲精品观看| 久久久久久久久中文| 成年女人看的毛片在线观看| 一级a爱片免费观看的视频| 丰满人妻一区二区三区视频av | 成人性生交大片免费视频hd| 一卡2卡三卡四卡精品乱码亚洲| 欧美国产日韩亚洲一区| 国产亚洲精品av在线| 黄色成人免费大全| 亚洲电影在线观看av| 精品久久久久久,| 丰满人妻一区二区三区视频av | 色综合欧美亚洲国产小说| 日日夜夜操网爽| av天堂中文字幕网| 18禁黄网站禁片免费观看直播| 长腿黑丝高跟| 老鸭窝网址在线观看| 在线观看日韩欧美| 国产av一区在线观看免费| 特级一级黄色大片| 欧美又色又爽又黄视频| 久久久久久久久大av| 男女之事视频高清在线观看| 亚洲人与动物交配视频| 天堂影院成人在线观看| 少妇的逼水好多| 精品国产亚洲在线| 村上凉子中文字幕在线| 久久久久久久午夜电影| 久久久国产成人免费| 在线播放国产精品三级| 搡老熟女国产l中国老女人| 国产高清视频在线播放一区| 午夜免费观看网址| 性色av乱码一区二区三区2| 国产欧美日韩一区二区精品| 法律面前人人平等表现在哪些方面| 看免费av毛片| 中文亚洲av片在线观看爽| 97人妻精品一区二区三区麻豆| 精品久久久久久久毛片微露脸| tocl精华| 99热这里只有精品一区| 亚洲国产欧美网| 老汉色∧v一级毛片| 搡女人真爽免费视频火全软件 | 国产精品爽爽va在线观看网站| 欧美xxxx黑人xx丫x性爽| 99久久精品国产亚洲精品| 免费在线观看日本一区| 中文资源天堂在线| 国产三级中文精品| 五月玫瑰六月丁香| 成人无遮挡网站| 法律面前人人平等表现在哪些方面| 国产伦在线观看视频一区| 国产乱人视频| 九色成人免费人妻av| 午夜福利视频1000在线观看| 欧美大码av| 亚洲色图av天堂| 色噜噜av男人的天堂激情| 成人午夜高清在线视频| 老司机午夜福利在线观看视频| 91九色精品人成在线观看| 精品一区二区三区视频在线观看免费| 国产三级中文精品| 国产精品三级大全| 午夜福利视频1000在线观看| 久久久国产成人精品二区| 久久久久免费精品人妻一区二区| 国产一级毛片七仙女欲春2| 99热只有精品国产| 老鸭窝网址在线观看| 蜜桃亚洲精品一区二区三区| 国产伦精品一区二区三区四那| 亚洲电影在线观看av| 亚洲激情在线av| 成人午夜高清在线视频| 午夜激情福利司机影院| www.熟女人妻精品国产| 一个人看的www免费观看视频| 国产成人系列免费观看| 超碰av人人做人人爽久久 | 麻豆一二三区av精品| 日韩欧美 国产精品| 国产一区二区亚洲精品在线观看| 久久午夜亚洲精品久久| 国产成人a区在线观看| 久久精品91蜜桃| 久久99热这里只有精品18| 亚洲aⅴ乱码一区二区在线播放| 性欧美人与动物交配| 国产亚洲精品av在线| 亚洲真实伦在线观看| 90打野战视频偷拍视频| 国产麻豆成人av免费视频| 一级毛片高清免费大全| 老熟妇仑乱视频hdxx| 久久香蕉国产精品| 一进一出抽搐动态| 国产av不卡久久| 欧美在线一区亚洲| 婷婷丁香在线五月| 在线十欧美十亚洲十日本专区| 国产野战对白在线观看| 最近视频中文字幕2019在线8| 狂野欧美白嫩少妇大欣赏| 中文字幕高清在线视频| 久久久久久九九精品二区国产| 国产亚洲欧美在线一区二区| 精品熟女少妇八av免费久了| 成人欧美大片| 欧美一区二区精品小视频在线| 免费电影在线观看免费观看| 美女cb高潮喷水在线观看| www.熟女人妻精品国产| 国产精品亚洲一级av第二区| 国产精品久久久人人做人人爽| 久久天躁狠狠躁夜夜2o2o| 99久久综合精品五月天人人| 伊人久久精品亚洲午夜| 国产不卡一卡二| 啪啪无遮挡十八禁网站| 成熟少妇高潮喷水视频| 国产精品1区2区在线观看.| 日韩精品青青久久久久久| 色综合站精品国产| 午夜激情福利司机影院| 91九色精品人成在线观看| 欧美av亚洲av综合av国产av| 深爱激情五月婷婷| 免费在线观看亚洲国产| 午夜免费男女啪啪视频观看 | 久久久久久久久久黄片| 18美女黄网站色大片免费观看| 日本在线视频免费播放| 国产亚洲精品av在线| 村上凉子中文字幕在线| 亚洲欧美一区二区三区黑人| 久久久久精品国产欧美久久久| 变态另类成人亚洲欧美熟女| 亚洲国产精品sss在线观看| 成人午夜高清在线视频| www国产在线视频色| 亚洲最大成人中文| 亚洲国产精品sss在线观看| 亚洲七黄色美女视频| 亚洲欧美精品综合久久99| 老司机深夜福利视频在线观看| 国产一区在线观看成人免费| 搡老妇女老女人老熟妇| 日本撒尿小便嘘嘘汇集6| 欧美日韩国产亚洲二区| 男女午夜视频在线观看| 亚洲七黄色美女视频| 亚洲国产中文字幕在线视频| 免费无遮挡裸体视频| 午夜a级毛片| 久久精品91无色码中文字幕| 精品久久久久久久久久久久久| 黄色日韩在线| 国产私拍福利视频在线观看| 给我免费播放毛片高清在线观看| 99热精品在线国产| 精品电影一区二区在线| 久久精品综合一区二区三区| 精品无人区乱码1区二区| 亚洲国产日韩欧美精品在线观看 | 99热6这里只有精品| 一本综合久久免费| 午夜福利18| 久久久久久久精品吃奶| 国产av一区在线观看免费| 亚洲人成网站在线播放欧美日韩| 热99在线观看视频| 亚洲精品影视一区二区三区av| 国产色爽女视频免费观看| 免费在线观看影片大全网站| 有码 亚洲区| 无人区码免费观看不卡| 一本综合久久免费| 日本 av在线| 99riav亚洲国产免费| 久久久久久久亚洲中文字幕 | 中文字幕av成人在线电影| 叶爱在线成人免费视频播放| 女人被狂操c到高潮| 国语自产精品视频在线第100页| 亚洲av免费在线观看| 18禁黄网站禁片午夜丰满| 亚洲一区二区三区不卡视频| 国产真人三级小视频在线观看| 欧美黑人巨大hd| 男女那种视频在线观看| 色哟哟哟哟哟哟| 国产精品自产拍在线观看55亚洲| 精品午夜福利视频在线观看一区| 亚洲国产精品合色在线| 欧美午夜高清在线| 国产欧美日韩一区二区精品| 99久久精品一区二区三区| 国产一级毛片七仙女欲春2| 噜噜噜噜噜久久久久久91| 校园春色视频在线观看| 黄色成人免费大全| 老汉色av国产亚洲站长工具| 久99久视频精品免费| 午夜免费男女啪啪视频观看 | 国产国拍精品亚洲av在线观看 | 人人妻人人看人人澡| 亚洲欧美日韩无卡精品| 一本久久中文字幕| 可以在线观看毛片的网站| 色噜噜av男人的天堂激情| 高清毛片免费观看视频网站| 天堂av国产一区二区熟女人妻| 成人三级黄色视频| 亚洲精华国产精华精| 亚洲欧美日韩高清在线视频| 国产av在哪里看| 夜夜爽天天搞| 看免费av毛片| 欧美又色又爽又黄视频| 老鸭窝网址在线观看| 天堂av国产一区二区熟女人妻| av国产免费在线观看| 嫁个100分男人电影在线观看| 看片在线看免费视频| 亚洲欧美日韩无卡精品| 男插女下体视频免费在线播放| 男女那种视频在线观看| 国产精品久久久久久亚洲av鲁大| 免费搜索国产男女视频| 脱女人内裤的视频| 色在线成人网| 中亚洲国语对白在线视频| 看黄色毛片网站| 少妇丰满av| 青草久久国产| 日韩国内少妇激情av| 日本精品一区二区三区蜜桃| 免费看日本二区| 全区人妻精品视频| 亚洲性夜色夜夜综合| 亚洲天堂国产精品一区在线| 嫩草影视91久久| 日韩av在线大香蕉| 99热精品在线国产| 国产不卡一卡二| 一级作爱视频免费观看| 国产免费男女视频| 黄片小视频在线播放| 日本撒尿小便嘘嘘汇集6| 全区人妻精品视频| 99国产综合亚洲精品| 欧美大码av| 成人三级黄色视频| 久久久色成人| 国产精品乱码一区二三区的特点| 99精品欧美一区二区三区四区| 在线看三级毛片| 亚洲中文字幕日韩| 一夜夜www| 欧美最黄视频在线播放免费| 最新中文字幕久久久久| 麻豆国产av国片精品| 激情在线观看视频在线高清| 色综合站精品国产| 国产 一区 欧美 日韩| 免费看a级黄色片| 国产亚洲精品久久久com| 一个人看视频在线观看www免费 | 成人18禁在线播放| 国产三级中文精品| 欧美黑人巨大hd| 麻豆成人午夜福利视频| 婷婷亚洲欧美| 亚洲内射少妇av| 精品久久久久久成人av| 一进一出抽搐gif免费好疼| 亚洲七黄色美女视频| 丁香六月欧美| 草草在线视频免费看| 欧美色欧美亚洲另类二区| 国产视频一区二区在线看| 天美传媒精品一区二区| 国产在线精品亚洲第一网站| 国产av在哪里看| 一本一本综合久久| 国产伦在线观看视频一区| 男女床上黄色一级片免费看| 最新在线观看一区二区三区| 日本成人三级电影网站| 国产精品爽爽va在线观看网站| 狂野欧美激情性xxxx| 精品一区二区三区人妻视频| 日韩av在线大香蕉| 18+在线观看网站| 欧美黑人欧美精品刺激| 午夜福利成人在线免费观看| 好男人电影高清在线观看| 欧美激情在线99| 真人做人爱边吃奶动态| 国产精品av视频在线免费观看| 在线观看日韩欧美| 久久国产精品影院| 国产精品三级大全| 国产aⅴ精品一区二区三区波| 亚洲成人精品中文字幕电影| 给我免费播放毛片高清在线观看| 日韩国内少妇激情av| 哪里可以看免费的av片| 日本三级黄在线观看| 亚洲精品亚洲一区二区| 亚洲av电影在线进入| 免费在线观看成人毛片| 欧美三级亚洲精品| 91在线观看av| 午夜老司机福利剧场| 免费在线观看日本一区| 他把我摸到了高潮在线观看| 又爽又黄无遮挡网站| 国内少妇人妻偷人精品xxx网站| 欧美xxxx黑人xx丫x性爽| 亚洲最大成人中文| 淫秽高清视频在线观看| 观看免费一级毛片| 日韩欧美精品v在线| 久99久视频精品免费| 在线a可以看的网站| 国产高清有码在线观看视频| 中文字幕av在线有码专区| 久久久久久久久久黄片| 欧美极品一区二区三区四区| 又粗又爽又猛毛片免费看| 欧美成人一区二区免费高清观看| www日本在线高清视频| 久久久久久大精品| 国产精品一区二区免费欧美| 久久这里只有精品中国| 欧美日韩一级在线毛片| 在线观看免费视频日本深夜| 少妇裸体淫交视频免费看高清| 天堂av国产一区二区熟女人妻| 日韩欧美三级三区| 亚洲不卡免费看| 欧美av亚洲av综合av国产av| 少妇人妻精品综合一区二区 | 成人无遮挡网站| 欧美乱色亚洲激情| 久久久久久大精品| 怎么达到女性高潮| 18禁国产床啪视频网站| 亚洲欧美激情综合另类| 在线观看66精品国产| 中文字幕人妻丝袜一区二区| 精品久久久久久久末码| 黄色女人牲交| 三级毛片av免费| 午夜福利高清视频| 日日干狠狠操夜夜爽| 午夜精品一区二区三区免费看| 我的老师免费观看完整版| 中文字幕人妻丝袜一区二区| 亚洲欧美日韩高清专用| 精品日产1卡2卡| 久久久久久久亚洲中文字幕 | 色在线成人网| 狂野欧美白嫩少妇大欣赏| 三级男女做爰猛烈吃奶摸视频| 夜夜爽天天搞| 老司机在亚洲福利影院| 成人午夜高清在线视频| 搡老熟女国产l中国老女人| 久久久国产精品麻豆| 窝窝影院91人妻| 国产三级黄色录像| 啦啦啦韩国在线观看视频| 99在线人妻在线中文字幕| 久久久久久久亚洲中文字幕 | 亚洲,欧美精品.| 欧美大码av| 色综合亚洲欧美另类图片| 亚洲第一电影网av| 日本 av在线| 国产成人啪精品午夜网站| 在线观看一区二区三区| 欧美一级毛片孕妇| 中文字幕人成人乱码亚洲影| 美女高潮的动态| 2021天堂中文幕一二区在线观| 狂野欧美白嫩少妇大欣赏| 大型黄色视频在线免费观看| 久久久国产成人免费| 亚洲成人久久性| 亚洲最大成人手机在线| 成年女人看的毛片在线观看| 桃红色精品国产亚洲av| 99视频精品全部免费 在线| 国模一区二区三区四区视频| h日本视频在线播放| 天天躁日日操中文字幕| 757午夜福利合集在线观看| 午夜亚洲福利在线播放| 欧美绝顶高潮抽搐喷水| 深爱激情五月婷婷| 久久精品国产综合久久久| 亚洲av电影在线进入| 99久久99久久久精品蜜桃| 中文字幕熟女人妻在线| 久久精品国产综合久久久| 极品教师在线免费播放| 波多野结衣巨乳人妻| 午夜福利免费观看在线| 精品久久久久久久人妻蜜臀av| 久久香蕉国产精品| 日日摸夜夜添夜夜添小说| 国产一区二区激情短视频| 成人精品一区二区免费| 成人特级av手机在线观看| 波多野结衣巨乳人妻| 亚洲性夜色夜夜综合| 亚洲一区二区三区不卡视频| av在线天堂中文字幕| 好看av亚洲va欧美ⅴa在| 欧美日韩乱码在线| 岛国在线观看网站| 精品免费久久久久久久清纯| 欧美不卡视频在线免费观看| 啪啪无遮挡十八禁网站| 女同久久另类99精品国产91| 美女cb高潮喷水在线观看| 1000部很黄的大片| 在线观看日韩欧美| 成人国产一区最新在线观看| 少妇人妻精品综合一区二区 | 18禁黄网站禁片午夜丰满| 久久精品人妻少妇| 亚洲成a人片在线一区二区| 在线视频色国产色| 最新在线观看一区二区三区| 91av网一区二区| 人妻久久中文字幕网| 男女做爰动态图高潮gif福利片| 国产高清videossex| 岛国视频午夜一区免费看| 天堂网av新在线| 19禁男女啪啪无遮挡网站| 日日摸夜夜添夜夜添小说| 综合色av麻豆| 99国产精品一区二区三区| 欧美在线一区亚洲| 成人特级黄色片久久久久久久| 精品熟女少妇八av免费久了| av天堂在线播放| 99热这里只有精品一区| 一级黄色大片毛片| 神马国产精品三级电影在线观看| 午夜激情欧美在线| 国产高清激情床上av| 男女那种视频在线观看| 女生性感内裤真人,穿戴方法视频| 免费一级毛片在线播放高清视频| 性色av乱码一区二区三区2| av天堂中文字幕网| 51国产日韩欧美| 啦啦啦免费观看视频1| 99久久成人亚洲精品观看| 黄片小视频在线播放| 欧美日本视频| 国产精品 国内视频| 国产一级毛片七仙女欲春2| 精品无人区乱码1区二区| 亚洲美女黄片视频| 精品久久久久久久久久久久久| 亚洲精品国产精品久久久不卡| 特级一级黄色大片| 午夜福利在线观看吧| 亚洲av二区三区四区| 给我免费播放毛片高清在线观看|