3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux的PCI驱动介绍(入门)

發布時間:2023/12/18 linux 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux的PCI驱动介绍(入门) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 關鍵數據結構

PCI設備上有三種地址空間:PCI的I/O空間、PCI的存儲空間和PCI的配置空間。CPU可以訪問PCI設備上的所有地址空間,其中I/O空間和存儲空間提供給設備驅動程序使用,而配置空間則由Linux內核中的PCI初始化代碼使用。內核在啟動時負責對所有PCI設備進行初始化,配置好所有的PCI設備,包括中斷號以及I/O基址,并在文件/proc/pci中列出所有找到的PCI設備,以及這些設備的參數和屬性。

Linux驅動程序通常使用結構(struct)來表示一種設備,而結構體中的變量則代表某一具體設備,該變量存放了與該設備相關的所有信息。好的驅動程序都應該能驅動多個同種設備,每個設備之間用次設備號進行區分,如果采用結構數據來代表所有能由該驅動程序驅動的設備,那么就可以簡單地使用數組下標來表示次設備號。

在PCI驅動程序中,下面幾個關鍵數據結構起著非常核心的作用:?

? pci_driver?

這個數據結構在文件include/linux/pci.h里,這是Linux內核版本2.4之后為新型的PCI設備驅動程序所添加的,其中最主要的是用于識別設備的id_table結構,以及用于檢測設備的函數probe( )和卸載設備的函數remove( ):

struct pci_driver {

? ? struct list_head node;

? ? char *name;

? ? const struct pci_device_id *id_table;

? ? int ?(*probe) ?(struct pci_dev *dev, const struct pci_device_id *id);

? ? void (*remove) (struct pci_dev *dev);

? ? int ?(*save_state) (struct pci_dev *dev, u32 state);

? ? int ?(*suspend)(struct pci_dev *dev, u32 state);

? ? int ?(*resume) (struct pci_dev *dev);

? ? int ?(*enable_wake) (struct pci_dev *dev, u32 state, int enable);

};?

? pci_dev?

這個數據結構也在文件include/linux/pci.h里,它詳細描述了一個PCI設備幾乎所有的硬件信息,包括廠商ID、設備ID、各種資源等:?

struct pci_dev {

? ? struct list_head global_list;

? ? struct list_head bus_list;

? ? struct pci_bus ?*bus;

? ? struct pci_bus ?*subordinate;

? ? void ? ? ? ?*sysdata;

? ? struct proc_dir_entry *procent;

? ? unsigned int ? ?devfn;

? ? unsigned short ?vendor;

? ? unsigned short ?device;

? ? unsigned short ?subsystem_vendor;

? ? unsigned short ?subsystem_device;

? ? unsigned int ? ?class;

? ? u8 ? ? ?hdr_type;

? ? u8 ? ? ?rom_base_reg;

? ? struct pci_driver *driver;

? ? void ? ? ? ?*driver_data;

? ? u64 ? ? dma_mask;

? ? u32 ? ? ? ? ? ? current_state;

? ? unsigned short vendor_compatible[DEVICE_COUNT_COMPATIBLE];

? ? unsigned short device_compatible[DEVICE_COUNT_COMPATIBLE];

? ? unsigned int ? ?irq;

? ? struct resource resource[DEVICE_COUNT_RESOURCE];

? ? struct resource dma_resource[DEVICE_COUNT_DMA];

? ? struct resource irq_resource[DEVICE_COUNT_IRQ];

? ? char ? ? ? ?name[80];

? ? char ? ? ? ?slot_name[8];

? ? int ? ? active;

? ? int ? ? ro;

? ? unsigned short ?regs;

? ? int (*prepare)(struct pci_dev *dev);

? ? int (*activate)(struct pci_dev *dev);

? ? int (*deactivate)(struct pci_dev *dev);

};?

2. 基本框架

在用模塊方式實現PCI設備驅動程序時,通常至少要實現以下幾個部分:初始化設備模塊、設備打開模塊、數據讀寫和控制模塊、中斷處理模塊、設備釋放模塊、設備卸載模塊。下面給出一個典型的PCI設備驅動程序的基本框架,從中不難體會到這幾個關鍵模塊是如何組織起來的。

static struct pci_device_id demo_pci_tbl [] __initdata = {

? ? {PCI_VENDOR_ID_DEMO, PCI_DEVICE_ID_DEMO,

? ? ?PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEMO},

? ? {0,}

};

struct demo_card {

? ? unsigned int magic;

? ?

? ? struct demo_card *next; ? ?

? ?

}

static void demo_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

? ?

}

static struct file_operations demo_fops = {

? ? owner: ? ? ?THIS_MODULE, ?

? ? read: ? ? ? demo_read, ? ?

? ? write: ? ? ?demo_write, ? ?

? ? ioctl: ? ? ?demo_ioctl, ? ?

? ? mmap: ? ? ? demo_mmap, ? ?

? ? open: ? ? ? demo_open, ? ?

? ? release: ? ?demo_release ? ?

? ?

};

static struct pci_driver demo_pci_driver = {

? ? name: ? ? ? demo_MODULE_NAME, ? ?

? ? id_table: ? demo_pci_tbl, ? ?

? ? probe: ? ? ?demo_probe, ? ?

? ? remove: ? ? demo_remove ? ?

? ?

};

static int __init demo_init_module (void)

{

? ?

}

static void __exit demo_cleanup_module (void)

{

? ? pci_unregister_driver(&demo_pci_driver);

}

module_init(demo_init_module);

module_exit(demo_cleanup_module);

上面這段代碼給出了一個典型的PCI設備驅動程序的框架,是一種相對固定的模式。需要注意的是,同加載和卸載模塊相關的函數或數據結構都要在前面加上__init、__exit等標志符,以使同普通函數區分開來。構造出這樣一個框架之后,接下去的工作就是如何完成框架內的各個功能模塊了。

3. 初始化設備模塊

在Linux系統下,想要完成對一個PCI設備的初始化,需要完成以下工作:

? 檢查PCI總線是否被Linux內核支持;?

? 檢查設備是否插在總線插槽上,如果在的話則保存它所占用的插槽的位置等信息。?

? 讀出配置頭中的信息提供給驅動程序使用。?

當Linux內核啟動并完成對所有PCI設備進行掃描、登錄和分配資源等初始化操作的同時,會建立起系統中所有PCI設備的拓撲結構,此后當PCI驅動程序需要對設備進行初始化時,一般都會調用如下的代碼:

static int __init demo_init_module (void)

{

? ?

? ? if (!pci_present())

? ? ? ? return -ENODEV;

? ?

? ? if (!pci_register_driver(&demo_pci_driver)) {

? ? ? ? pci_unregister_driver(&demo_pci_driver);

? ? ? ? ? ? ? ? return -ENODEV;

? ? }

? ? ??

? ? return 0;

}

驅動程序首先調用函數pci_present( )檢查PCI總線是否已經被Linux內核支持,如果系統支持PCI總線結構,這個函數的返回值為0,如果驅動程序在調用這個函數時得到了一個非0的返回值,那么驅動程序就必須得中止自己的任務了。在2.4以前的內核中,需要手工調用pci_find_device( )函數來查找PCI設備,但在2.4以后更好的辦法是調用pci_register_driver( )函數來注冊PCI設備的驅動程序,此時需要提供一個pci_driver結構,在該結構中給出的probe探測例程將負責完成對硬件的檢測工作。?

static int __init demo_probe(struct pci_dev *pci_dev, const struct pci_device_id *pci_id)

{

? ? struct demo_card *card;

? ?

? ? if (pci_enable_device(pci_dev))

? ? ? ? return -EIO;

? ?

? ? if (pci_set_dma_mask(pci_dev, DEMO_DMA_MASK)) {

? ? ? ? return -ENODEV;

? ? }

? ?

? ? if ((card = kmalloc(sizeof(struct demo_card), GFP_KERNEL)) == NULL) {

? ? ? ? printk(KERN_ERR "pci_demo: out of memory\n");

? ? ? ? return -ENOMEM;

? ? }

? ? memset(card, 0, sizeof(*card));

? ?

? ? card->iobase = pci_resource_start (pci_dev, 1);

? ? card->pci_dev = pci_dev;

? ? card->pci_id = pci_id->device;

? ? card->irq = pci_dev->irq;

? ? card->next = devs;

? ? card->magic = DEMO_CARD_MAGIC;

? ? ? ?

? ? pci_set_master(pci_dev);

? ?

? ? request_region(card->iobase, 64, card_names[pci_id->driver_data]);

? ? return 0;

}

4. 打開設備模塊

在這個模塊里主要實現申請中斷、檢查讀寫模式以及申請對設備的控制權等。在申請控制權的時候,非阻塞方式遇忙返回,否則進程主動接受調度,進入睡眠狀態,等待其它進程釋放對設備的控制權。

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

{

? ?

? ? request_irq(card->irq, &demo_interrupt, SA_SHIRQ,

? ? ? ? card_names[pci_id->driver_data], card)) {

? ?

? ? if(file->f_mode & FMODE_READ) {

? ? ? ?

? ? }

? ? if(file->f_mode & FMODE_WRITE) {

? ? ? ?

? ? } ? ?

? ?

? ? down(&card->open_sem);

? ? while(card->open_mode & file->f_mode) {

? ? ? ? if (file->f_flags & O_NONBLOCK) {

? ? ? ? ? ?

? ? ? ? ? ? up(&card->open_sem);

? ? ? ? ? ? return -EBUSY;

? ? ? ? } else {

? ? ? ? ? ?

? ? ? ? ? ? card->open_mode |= f_mode & (FMODE_READ | FMODE_WRITE);

? ? ? ? ? ? up(&card->open_sem);

? ? ? ? ? ?

? ? ? ? ? ? MOD_INC_USE_COUNT;

? ? ? ? ? ?

? ? ? ? }

? ? }

}

5. 數據讀寫和控制信息模塊

PCI設備驅動程序可以通過demo_fops 結構中的函數demo_ioctl( ),向應用程序提供對硬件進行控制的接口。例如,通過它可以從I/O寄存器里讀取一個數據,并傳送到用戶空間里:

static int demo_ioctl(struct inode *inode, struct file *file,

? ? ? unsigned int cmd, unsigned long arg)

{

? ?

? ??

? ? switch(cmd) {

? ? ? ? case DEMO_RDATA:

? ? ? ? ? ?

? ? ? ? ? ? val = inl(card->iobae + 0x10); ? ? ? ? ? ?

? ? ? ? ? ? return 0;

? ? } ? ?

? ?

}

事實上,在demo_fops里還可以實現諸如demo_read( )、demo_mmap( )等操作,Linux內核源碼中的driver目錄里提供了許多設備驅動程序的源代碼,找那里可以找到類似的例子。在對資源的訪問方式上,除了有I/O指令以外,還有對外設I/O內存的訪問。對這些內存的操作一方面可以通過把I/O內存重新映射后作為普通內存進行操作,另一方面也可以通過總線主DMA(Bus Master DMA)的方式讓設備把數據通過DMA傳送到系統內存中。

6. 中斷處理模塊

PC的中斷資源比較有限,只有0~15的中斷號,因此大部分外部設備都是以共享的形式申請中斷號的。當中斷發生的時候,中斷處理程序首先負責對中斷進行識別,然后再做進一步的處理。

static void demo_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

? ? struct demo_card *card = (struct demo_card *)dev_id;

? ? u32 status;

? ? spin_lock(&card->lock);

? ?

? ? status = inl(card->iobase + GLOB_STA);

? ? if(!(status & INT_MASK))?

? ? {

? ? ? ? spin_unlock(&card->lock);

? ? ? ? return; ?

? ? }

? ?

? ? outl(status & INT_MASK, card->iobase + GLOB_STA);

? ? spin_unlock(&card->lock); ? ?

? ?

}

7. 釋放設備模塊

釋放設備模塊主要負責釋放對設備的控制權,釋放占用的內存和中斷等,所做的事情正好與打開設備模塊相反:

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

{

? ? ? ?

? ?

? ? card->open_mode &= (FMODE_READ | FMODE_WRITE); ? ?

? ?

? ? wake_up(&card->open_wait);

? ? up(&card->open_sem); ? ?

? ?

? ? free_irq(card->irq, card); ? ?

? ?

? ? MOD_DEC_USE_COUNT; ? ?

? ? ?

}

8. 卸載設備模塊

卸載設備模塊與初始化設備模塊是相對應的,實現起來相對比較簡單,主要是調用函數pci_unregister_driver( )從Linux內核中注銷設備驅動程序:?

static void __exit demo_cleanup_module (void)

{

? ? pci_unregister_driver(&demo_pci_driver);

}

三、PCI驅動程序實現

1.?關鍵數據結構

PCI設備上有三種地址空間:PCI的I/O空間、PCI的存儲空間和PCI的配置空間。CPU可以訪問PCI設備上的所有地址空間,其中I/O空間和存儲空間提供給設備驅動程序使用,而配置空間則由Linux內核中的PCI初始化代碼使用。內核在啟動時負責對所有PCI設備進行初始化,配置好所有的PCI設備,包括中斷號以及I/O基址,并在文件/proc/pci中列出所有找到的PCI設備,以及這些設備的參數和屬性。

Linux驅動程序通常使用結構(struct)來表示一種設備,而結構體中的變量則代表某一具體設備,該變量存放了與該設備相關的所有信息。好的驅動程序都應該能驅動多個同種設備,每個設備之間用次設備號進行區分,如果采用結構數據來代表所有能由該驅動程序驅動的設備,那么就可以簡單地使用數組下標來表示次設備號。

在PCI驅動程序中,下面幾個關鍵數據結構起著非常核心的作用:

  • pci_driver

這個數據結構在文件include/linux/pci.h里,這是Linux內核版本2.4之后為新型的PCI設備驅動程序所添加的,其中最主要的是用于識別設備的id_table結構,以及用于檢測設備的函數probe( )和卸載設備的函數remove( ):

struct pci_driver {

???struct list_head node;

??? char *name;

??? const struct pci_device_id *id_table;

??? int?(*probe)?(struct pci_dev *dev, const struct pci_device_id *id);

??? void (*remove) (struct pci_dev *dev);

??? int?(*save_state) (struct pci_dev *dev, u32 state);

??? int?(*suspend)(struct pci_dev *dev, u32 state);

??? int?(*resume) (struct pci_dev *dev);

??? int?(*enable_wake) (struct pci_dev *dev, u32 state, int enable);

};

  • pci_dev

這個數據結構也在文件include/linux/pci.h里,它詳細描述了一個PCI設備幾乎所有的硬件信息,包括廠商ID、設備ID、各種資源等:

struct pci_dev {

??? struct list_head global_list;

??? struct list_head bus_list;

??? struct pci_bus?*bus;

??? struct pci_bus?*subordinate;

??? void??????? *sysdata;

??? struct proc_dir_entry *procent;

??? unsigned int??? devfn;

??? unsigned short?vendor;

??? unsigned short?device;

??? unsigned short?subsystem_vendor;

??? unsigned short?subsystem_device;

??? unsigned int??? class;

??? u8????? hdr_type;

??? u8????? rom_base_reg;

??? struct pci_driver *driver;

??? void??????? *driver_data;

??? u64???? dma_mask;

??? u32???????????? current_state;

??? unsigned short vendor_compatible[DEVICE_COUNT_COMPATIBLE];

??? unsigned short device_compatible[DEVICE_COUNT_COMPATIBLE];

??? unsigned int??? irq;

??? struct resource resource[DEVICE_COUNT_RESOURCE];

??? struct resource dma_resource[DEVICE_COUNT_DMA];

??? struct resource irq_resource[DEVICE_COUNT_IRQ];

??? char??????? name[80];

??? char??????? slot_name[8];

??? int???? active;

?? ?int???? ro;

??? unsigned short?regs;

??? int (*prepare)(struct pci_dev *dev);

??? int (*activate)(struct pci_dev *dev);

??? int (*deactivate)(struct pci_dev *dev);

};


?

2.?基本框架

在用模塊方式實現PCI設備驅動程序時,通常至少要實現以下幾個部分:初始化設備模塊、設備打開模塊、數據讀寫和控制模塊、中斷處理模塊、設備釋放模塊、設備卸載模塊。下面給出一個典型的PCI設備驅動程序的基本框架,從中不難體會到這幾個關鍵模塊是如何組織起來的。

/*?指明該驅動程序適用于哪一些PCI設備?*/

static struct pci_device_id demo_pci_tbl [] __initdata = {

??? {PCI_VENDOR_ID_DEMO, PCI_DEVICE_ID_DEMO,

???? PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEMO},

??? {0,}

};

/*?對特定PCI設備進行描述的數據結構?*/

struct demo_card {

??? unsigned int magic;

??? /*?使用鏈表保存所有同類的PCI設備?*/

??? struct demo_card *next;

???

??? /* ... */

}

/*?中斷處理模塊?*/

static void demo_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

??? /* ... */

}

/*?設備文件操作接口?*/

static struct file_operations demo_fops = {

??? owner:????? THIS_MODULE,?? /* demo_fops所屬的設備模塊?*/

??? read:?????? demo_read,??? /*?讀設備操作*/

??? write:????? demo_write,??? /*?寫設備操作*/

??? ioctl:????? demo_ioctl,??? /*?控制設備操作*/

??? mmap:?????? demo_mmap,??? /*?內存重映射操作*/

??? open:?????? demo_open,??? /*?打開設備操作*/

??? release:??? demo_release??? /*?釋放設備操作*/

??? /* ... */

};

/*?設備模塊信息?*/

static struct pci_driver demo_pci_driver = {

??? name:??? ???demo_MODULE_NAME,??? /*?設備模塊名稱?*/

??? id_table:?? demo_pci_tbl,??? /*?能夠驅動的設備列表?*/

??? probe:????? demo_probe,??? /*?查找并初始化設備?*/

??? remove:???? demo_remove??? /*?卸載設備模塊?*/

??? /* ... */

};

static int __init demo_init_module (void)

{

??? /* ... */

}

static void __exit demo_cleanup_module (void)

{

??? pci_unregister_driver(&demo_pci_driver);

}

/*?加載驅動程序模塊入口?*/

module_init(demo_init_module);

/*?卸載驅動程序模塊入口?*/

module_exit(demo_cleanup_module);

上面這段代碼給出了一個典型的PCI設備驅動程序的框架,是一種相對固定的模式。需要注意的是,同加載和卸載模塊相關的函數或數據結構都要在前面加上__init、__exit等標志符,以使同普通函數區分開來。構造出這樣一個框架之后,接下去的工作就是如何完成框架內的各個功能模塊了。

?

3.?初始化設備模塊

在Linux系統下,想要完成對一個PCI設備的初始化,需要完成以下工作:

  • 檢查PCI總線是否被Linux內核支持;
  • 檢查設備是否插在總線插槽上,如果在的話則保存它所占用的插槽的位置等信息。
  • 讀出配置頭中的信息提供給驅動程序使用。

當Linux內核啟動并完成對所有PCI設備進行掃描、登錄和分配資源等初始化操作的同時,會建立起系統中所有PCI設備的拓撲結構,此后當PCI驅動程序需要對設備進行初始化時,一般都會調用如下的代碼:

static int __init demo_init_module (void)

{

??? /*?檢查系統是否支持PCI總線?*/

??? if (!pci_present())

??????? return -ENODEV;

??? /*?注冊硬件驅動程序?*/

??? if (!pci_register_driver(&demo_pci_driver)) {

??????? pci_unregister_driver(&demo_pci_driver);

??????????????? return -ENODEV;

??? }

??? /* ... */

??

??? return 0;

}

驅動程序首先調用函數pci_present( )檢查PCI總線是否已經被Linux內核支持,如果系統支持PCI總線結構,這個函數的返回值為0,如果驅動程序在調用這個函數時得到了一個非0的返回值,那么驅動程序就必須得中止自己的任務了。在2.4以前的內核中,需要手工調用pci_find_device( )函數來查找PCI設備,但在2.4以后更好的辦法是調用pci_register_driver( )函數來注冊PCI設備的驅動程序,此時需要提供一個pci_driver結構,在該結構中給出的probe探測例程將負責完成對硬件的檢測工作。

static int __init demo_probe(struct pci_dev *pci_dev, const struct pci_device_id *pci_id)

{

??? struct demo_card *card;

??? /*?啟動PCI設備?*/

??? if (pci_enable_device(pci_dev))

??????? return -EIO;

??? /*?設備DMA標識?*/

??? if (pci_set_dma_mask(pci_dev, DEMO_DMA_MASK)) {

??????? return -ENODEV;

??? }

??? /*?在內核空間中動態申請內存?*/

??? if ((card = kmalloc(sizeof(struct demo_card), GFP_KERNEL)) == NULL) {

??????? printk(KERN_ERR "pci_demo: out of memory/n");

??????? return -ENOMEM;

??? }

??? memset(card, 0, sizeof(*card));

??? /*?讀取PCI配置信息?*/

??? card->iobase = pci_resource_start (pci_dev, 1);

??? card->pci_dev = pci_dev;

??? card->pci_id = pci_id->device;

??? card->irq = pci_dev->irq;

??? card->next = devs;

??? card->magic = DEMO_CARD_MAGIC;

??? /*?設置成總線主DMA模式?*/???

??? pci_set_master(pci_dev);

??? /*?申請I/O資源?*/

??? request_region(card->iobase, 64, card_names[pci_id->driver_data]);

??? return 0;

}

4.?打開設備模塊

在這個模塊里主要實現申請中斷、檢查讀寫模式以及申請對設備的控制權等。在申請控制權的時候,非阻塞方式遇忙返回,否則進程主動接受調度,進入睡眠狀態,等待其它進程釋放對設備的控制權。
<script type="text/javascript"><!-- google_ad_client = "pub-2299987709779770"; google_ad_width = 468; google_ad_height = 60; google_ad_format = "468x60_as"; google_ad_type = "image"; google_ad_channel =""; google_color_border = "FFFFFF"; google_color_bg = "FFFFFF"; google_color_link = "0000FF"; google_color_url = "008000"; google_color_text = "000000"; //--></script><script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

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

{

??? /*?申請中斷,注冊中斷處理程序?*/

??? request_irq(card->irq, &demo_interrupt, SA_SHIRQ,

??????? card_names[pci_id->driver_data], card)) {

??? /*?檢查讀寫模式?*/

??? if(file->f_mode & FMODE_READ) {

??????? /* ... */

??? }

??? if(file->f_mode & FMODE_WRITE) {

?????? /* ... */

??? }

???

??? /*?申請對設備的控制權?*/

??? down(&card->open_sem);

??? while(card->open_mode & file->f_mode) {

??????? if (file->f_flags & O_NONBLOCK) {

??????????? /* NONBLOCK模式,返回-EBUSY */

??????????? up(&card->open_sem);

??????????? return -EBUSY;

??????? } else {

??????????? /*?等待調度,獲得控制權?*/

??????????? card->open_mode |= f_mode & (FMODE_READ | FMODE_WRITE);

??????????? up(&card->open_sem);

??????????? /*?設備打開計數增1 */

??????????? MOD_INC_USE_COUNT;

??????????? /* ... */

??????? }

??? }

}

5.?數據讀寫和控制信息模塊

PCI設備驅動程序可以通過demo_fops?結構中的函數demo_ioctl( ),向應用程序提供對硬件進行控制的接口。例如,通過它可以從I/O寄存器里讀取一個數據,并傳送到用戶空間里:

static int demo_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)

{

??? /* ... */

???

??? switch(cmd) {

??????? case DEMO_RDATA:

??????????? /*?從I/O端口讀取4字節的數據?*/

??????????? val = inl(card->iobae + 0x10);

????????? ??

/*?將讀取的數據傳輸到用戶空間?*/

??????????? return 0;

??? }

???

??? /* ... */

}

事實上,在demo_fops里還可以實現諸如demo_read( )、demo_mmap( )等操作,Linux內核源碼中的driver目錄里提供了許多設備驅動程序的源代碼,找那里可以找到類似的例子。在對資源的訪問方式上,除了有I/O指令以外,還有對外設I/O內存的訪問。對這些內存的操作一方面可以通過把I/O內存重新映射后作為普通內存進行操作,另一方面也可以通過總線主DMA(Bus Master DMA)的方式讓設備把數據通過DMA傳送到系統內存中。

?

6.?中斷處理模塊

PC的中斷資源比較有限,只有0~15的中斷號,因此大部分外部設備都是以共享的形式申請中斷號的。當中斷發生的時候,中斷處理程序首先負責對中斷進行識別,然后再做進一步的處理。

static void demo_interrupt(int irq, void *dev_id, struct pt_regs *regs)

{

??? struct demo_card *card = (struct demo_card *)dev_id;

??? u32 status;

??? spin_lock(&card->lock);

??? /*?識別中斷?*/

??? status = inl(card->iobase + GLOB_STA);

??? if(!(status & INT_MASK))

??? {

??????? spin_unlock(&card->lock);

??????? return;?/* not for us */

??? }

??? /*?告訴設備已經收到中斷?*/

??? outl(status & INT_MASK, card->iobase + GLOB_STA);

??? spin_unlock(&card->lock);

???

??? /*?其它進一步的處理,如更新DMA緩沖區指針等?*/

}


?

7.?釋放設備模塊

釋放設備模塊主要負責釋放對設備的控制權,釋放占用的內存和中斷等,所做的事情正好與打開設備模塊相反:

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

{

??? /* ... */

???

??? /*?釋放對設備的控制權?*/

??? card->open_mode &= (FMODE_READ | FMODE_WRITE);

???

??? /*?喚醒其它等待獲取控制權的進程?*/

??? wake_up(&card->open_wait);

??? up(&card->open_sem);

???

??? /*?釋放中斷?*/

??? free_irq(card->irq, card);

???

??? /*?設備打開計數增1 */

??? MOD_DEC_USE_COUNT;

???

??? /* ... */?

}


?

8.?卸載設備模塊

卸載設備模塊與初始化設備模塊是相對應的,實現起來相對比較簡單,主要是調用函數pci_unregister_driver( )從Linux內核中注銷設備驅動程序:

static void __exit demo_cleanup_module (void)

{

??? pci_unregister_driver(&demo_pci_driver);

}


四、小結

PCI總線不僅是目前應用廣泛的計算機總線標準,而且是一種兼容性最強、功能最全的計算機總線。而Linux作為一種新的操作系統,其發展前景是無法估量的,同時也為PCI總線與各種新型設備互連成為可能。由于Linux源碼開放,因此給連接到PCI總線上的任何設備編寫驅動程序變得相對容易。本文介紹如何編譯Linux下的PCI驅動程序,針對的內核版本是2.4。

在LINUX的時鐘中斷中涉及至二個全局變量一個是xtime,它是timeval數據結構變量,另一個則是jiffies,首先看timeval結構
struct timeval
{
??? time_t tv_sec; /***second***/
??? susecond_t tv_usec;/***microsecond***/
}
到底microsecond是毫秒還是微秒??

1秒=1000毫秒(3個零),1秒=1000 000微秒(6個零),1秒=1000 000 000納秒(9個零),1秒=1000 000 000 000皮秒(12個零)。
秒用s表現,毫秒用ms,微秒用us表示,納秒用ns表示,皮秒用ps表示,他們的分級單位是千,即每次3個零。
混淆的原因找到了,由于毫秒用ms表示,所以我老是以為microsecond是毫秒,所以就把tv_usec理解錯了。
microsecond查詞霸也是微秒的意思(microsecond!=ms,microsecond==us),看來單位的表示迷惑了我,也迷惑了大多數人,請朋友們牢記這里,非常重要。

xtime是從cmos電路中取得的時間,一般是從某一歷史時刻開始到現在的時間,也就是為了取得我們操作系統上顯示的日期。這個就是所謂的“實時時鐘”,它的精確度是微秒。


jiffies是記錄著從電腦開機到現在總共的時鐘中斷次數。在linux內核中jiffies遠比xtime重要,那么他取決于系統的頻率,單位是Hz,這里不得不說一下頻率的單位,1MHz=1000,000Hz(6個零),1KHz=1000Hz(3個零).
頻率是周期的倒數,一般是一秒鐘中斷產生的次數,所以,假如我們需要知道系統的精確的時間單位時,需要換算了,假如我們系統的頻率是200Mhz,那么一次中斷的間隔是1秒/200,000,000Hz=0.000 000 005秒看一下上面我們的時間單位,對照一下小數點后面是9個零,所以理論上我們系統的精確度是5納秒。LINUX系統時鐘頻率是一個常數HZ來決定的,通常HZ=100,那么他的精度度就是10ms(毫秒)。也就是說每10ms一次中斷。所以一般來說Linux的精確度是10毫秒。

硬件給內核提供一個系統定時器用以計算和管理時間,內核通過編程預設系統定時器的頻率,即節拍率(tick rate),每一個周期稱作一個tick(節拍)。Linux內核從2.5版內核開始把頻率從100調高到1000,時間單位 jiffies 有多長?


"在 Linux 2.6 中,系統時鐘每 1 毫秒中斷一次(時鐘頻率,用 HZ 宏表示,定義為 1000,即每秒中斷 1000 次,2.4 中定義為 100,很多應用程序也仍然沿用 100 的時鐘頻率),這個時間單位稱為一個 jiffie。"
"jiffies 與絕對時間之間的轉換, 用兩個宏來完成兩種時間單位的互換:JIFFIES_TO_NS()、NS_TO_JIFFIES()"
(當然帶來了很多優點,也有一些缺點).

硬件給內核提供一個系統定時器用以計算和管理時間,內核通過編程預設系統定時器的頻率,即節拍率(tick rate),每一個周期稱作一個tick(節拍)。Linux內核從2.5版內核開始把頻率從100調高到1000(當然帶來了很多優點,也有一些缺點).
?? jiffies是內核中的一個全局變量,用來記錄自系統啟動一來產生的節拍數。譬如,如果計算系統運行了多長時間,可以用 jiffies/tick rate 來計算。jiffies定義在文件<linux/jiffies.h>中:

extern unsigned long volatile jiffies;

??? 可以利用jiffies設置超時等,譬如:

unsigned long timeout = jiffies + tick_rate * 2; // 2秒鐘后超時

???
??? if(time_before(jiffies, timeout){
?????? // 還沒有超時

??? }
??? else{
?????? // 已經超時

??? }

??
???
內核提供了四個宏來比較節拍計數,這些宏定義在文件<linux/jiffies.h>中:

??? time_before(unknown, known)
??? time_after(unknown, known)
??? time_before_eq(unknown, known)
??? time_after_eq(unknown, known)

??? 比較的時候用這些宏可以避免jiffies由于過大造成的回繞問題。


??? 除了系統定時器外,還有一個與時間有關的時鐘:實時時鐘(RTC),這是一個硬件時鐘,用來持久存放系統時間,系統關閉后靠主板上的微型電池保持計時。系統啟動時,內核通過讀取RTC來初始化Wall Time,并存放在xtime變量中,這是RTC最主要的作用。

?????? ///網絡相關函數內容詳解//

?
1.linux HZ

Linux核心幾個重要跟時間有關的名詞或變數,以下將介紹HZ、tick與jiffies。

HZ

Linux核心每隔固定周期會發出timer interrupt (IRQ 0),HZ是用來定義每一秒有幾次timer interrupts。舉例來說,HZ為1000,代表每秒有1000次timer interrupts。 HZ可在編譯核心時設定,如下所示(以核心版本2.6.20-15為例):

desktop:~$ cd /usr/src/linux

desktop:/usr/src/linux$ make menuconfig

Processor type and features? ??Timer frequency (250 HZ)?

其中HZ可設定100? ?250? 300或1000

小實驗

觀察/proc/interrupt的timer中斷次數,并于一秒后再次觀察其值。理論上,兩者應該相差250左右。

adrian@adrian-desktop:~$ cat /proc/interrupts | grep timer && sleep 1 && cat /proc/interrupts | grep timer

0: 9309306 IO-APIC-edge timer

0: 9309562 IO-APIC-edge timer

上面四個欄位分別為中斷號碼、CPU中斷次數、PIC與裝置名稱。

要檢查系統上HZ的值是什么,就執行命令

cat kernel/.config | grep '^CONFIG_HZ='


2.Tick

Tick是HZ的倒數,意即timer interrupt每發生一次中斷的時間。如HZ為250時,tick為4毫秒(millisecond)。


3.Jiffies

Jiffies為Linux核心變數(unsigned long),它被用來記錄系統自開機以來,已經過了多少tick。每發生一次timer interrupt,Jiffies變數會被加一。值得注意的是,Jiffies于系統開機時,并非初始化成零,而是被設為-300*HZ (arch/i386/kernel/time.c),即代表系統于開機五分鐘后,jiffies便會溢位。那溢位怎么辦?事實上,Linux核心定義幾個macro(timer_after、time_after_eq、time_before與time_before_eq),即便是溢位,也能借由這幾個macro正確地取得jiffies的內容。

另外,80x86架構定義一個與jiffies相關的變數jiffies_64 ,此變數64位元,要等到此變數溢位可能要好幾百萬年。因此要等到溢位這刻發生應該很難吧。


3.1 jiffies及其溢出

全局變量jiffies取值為自操作系統啟動以來的時鐘滴答的數目,在頭文件<linux/sched.h>中定義,數據類型為unsigned long volatile (32位無符號長整型)。

jiffies轉換為秒可采用公式:(jiffies/HZ)計算,

將秒轉換為jiffies可采用公式:(seconds*HZ)計算。

當時鐘中斷發生時,jiffies 值就加1。因此連續累加一年又四個多月后就會溢出(假定HZ=100,1個jiffies等于1/100秒,jiffies可記錄的最大秒數為 (2^32 -1)/100=42949672.95秒,約合497天或1.38年),即當取值到達最大值時繼續加1,就變為了0。


3.4 ?Linux內核如何來防止jiffies溢出

Linux內核中提供了以下四個宏,可有效解決由于jiffies溢出而造成程序邏輯出錯的情況。下面是從Linux Kernel 2.6.7版本中摘取出來的代碼:

/*

* These inlines deal with timer wrapping correctly. You are

* strongly encouraged to use them

* 1. Because people otherwise forget

* 2. Because if the timer wrap changes in future you won't have to

* alter your driver code.

*

* time_after(a,b) returns true if the time a is after time b.

*

* Do this with "<0" and ">=0" to only test the sign of the result. A

* good compiler would generate better code (and a really good compiler

* wouldn't care). Gcc is currently neither.

*/

#define time_after(a,b) \

(typecheck(unsigned long, a) && \

typecheck(unsigned long, b) && \

((long)(b) - (long)(a) < 0))

#define time_before(a,b) time_after(b,a)

#define time_after_eq(a,b) \

(typecheck(unsigned long, a) && \

typecheck(unsigned long, b) && \

((long)(a) - (long)(b) >= 0))

#define time_before_eq(a,b) time_after_eq(b,a)

在宏time_after中,首先確保兩個輸入參數a和b的數據類型為unsigned long,然后才執行實際的比較。

8. 結論

系統中采用jiffies來計算時間,但由于jiffies溢出可能造成時間比較的錯誤,因而強烈建議在編碼中使用 time_after等宏來比較時間先后關系,這些宏可以放心使用。

內核時鐘:

內核使用硬件提供的不同時鐘來提供依賴于時間的服務,如busy-waiting(浪費CPU周期)和sleep-waiting(放棄CPU)


5.HZ and Jiffies

????? jiffies記錄了系統啟動后的滴答數,常用的函數:time_before()、 time_after()、time_after_eq()、time_before_eq()。因為jiffies隨時鐘滴答變化,不能用編譯器優化它,應取volatile值。

????? 32位jiffies變量會在50天后溢出,太小,因此內核提供變量jiffies_64來hold 64位jiffies。該64位的低32位即為jiffies,在32位機上需要兩天指令來賦值64位數據,不是原子的,因此內核提供函數 get_jiffies_64()。


6.Long Delays

??? busy-wait:timebefore(),使CPU忙等待;sleep-wait:shedule_timeout(截至時間);無論在內核空間還是用戶空間,都沒有比HZ更精確的控制了,因為時間片都是根據滴答更新的,而且即使定義了您的進程在超過指定時間后運行,調度器也可能根據優先級選擇其他進程執行。

??? sleep-wait():wait_event_timeout()用于在滿足某個條件或超時后重新執行,msleep()睡眠指定的ms后重新進入就緒隊列,這些長延遲僅適用于進程上下文,在中斷上下文中不能睡眠也不能長時間busy-waiting。

內核提供了timer API來在一定時間后執行某個函數:

#include <linux/timer.h>

struct timer_list my_timer;

init_timer(&my_timer);??????????? /* Also see setup_timer() */

my_timer.expire = jiffies + n*HZ; /* n is the timeout in number??????????????????????????????????? of seconds */

my_timer.function = timer_func;?? /* Function to execute

???????????????????????????????????? after n seconds */

my_timer.data = func_parameter;?? /* Parameter to be passed?????????????????????????????????? to timer_func */

add_timer(&my_timer);???????????? ???/*Start the timer*/

如果您想周期性執行上述代碼,那么把它們加入timer_func()函數。您使用mod_timer()來改變my_timer的超時值,del_timer()來刪掉my_timer,用timer_pending()查看是否my_timer處于掛起狀態。

??? 用戶空間函數clock_settime()和clock_gettime()用于獲取內核時鐘服務。用戶應用程序使用setitimer()和getitimer()來控制alarm信號的傳遞當指定超時發生后。


8.Real Time Clock

???? RTC時鐘track絕對時間。RTC電池常超過computer生存期。可以用RTC完成以下功能:(1)讀或設置絕對時鐘,并在clock updates時產生中斷;(2)以2HZ到8192HZ來產生周期性中斷;(3)設置alarms。

?? ?jiffies僅是相對于系統啟動的相對時間,如果想獲取absolute time或wall time,則需要使用RTC,內核用變量xtime來記錄,當系統啟動時,讀取RTC并記錄在xtime中,當系統halt時,則將wall time寫回RTC,函數do_gettimeofday()來讀取wall time。

#include <linux/time.h>

static struct timeval curr_time;

do_gettimeofday(&curr_time);

my_timestamp = cpu_to_le32(curr_time.tv_sec); /* Record timestamp */

??? 用戶空間獲取wall time的函數:time()返回calendar time或從00:00:00 on January 1,1970的秒數;(2)localtime():返回calendar time in broken-down format;(3)mktime():與 localtime()相反;(4)gettimeofday()以microsecond 精確度返回calendar時間。

??? 另外一個獲取RTC的方法是通過字符設備/dev/rtc,一個時刻僅允許一個處理器訪問它。


9.時鐘和定時器

時鐘和定時器對Linux內核來說十分重要。首先,內核要管理系統的運行時間(uptime)和當前墻上時間(wall time), 即當前實際時間。其次,內核中大量的活動由時間驅動。


9.1實時時鐘

??? 內核必須借助硬件來實現時間管理。實時時鐘是用來持久存放系統時間的設備,它通過主板電池供電,所以即便在關閉計算機系統之后,實時時鐘仍然能繼續工作。

??? 系統啟動時,內核讀取實時時鐘,將所讀的時間存放在變量xtime中作為墻上時間(wall time),xtime保存著從1970年1月1日0:00到當前時刻所經歷的秒數。雖然在Intel x86機器上,內核會周期性地將當前時間存回實時時鐘中,但應該明確,實時時鐘的主要作用就是在啟動時初始化墻上時間xtime。


9.2系統定時器與動態定時器

??? 周期性發生的事件都是由系統定時器驅動。在X86體系結構上,系統定時器通常是一種可編程硬件芯片,其產生的中斷就是時鐘中斷。時鐘中斷對應的處理程序負責更新系統時間和執行周期性運行的任務。系統定時器的頻率稱為節拍率(tick rate),在內核中表示為HZ。

??? 以X86為例,在2.4之前的內核中其大小為100; 從內核2.6開始,HZ = 1000, 也就是說每秒時鐘中斷發生1000次。這一變化使得系統定時器的精度(resolution)由10ms提高到1ms,這大大提高了系統對于時間驅動事件調度的精確性。過于頻繁的時鐘中斷不可避免地增加了系統開銷。

??? 與系統定時器相對的是動態定時器,它是調度事件(執行調度程序)在未來某個時刻發生的時機。內核可以動態地創建或銷毀動態定時器。

??? 系統定時器及其中斷處理程序是內核管理機制的中樞,下面是一些利用系統定時器周期執行的工作(中斷處理程序所做的工作):

??? (1) 更新系統運行時間(uptime)

??? (2) 更新當前墻上時間(wall time)

??? (3) 在對稱多處理器系統(SMP)上,均衡調度各處理器上的運行隊列

??? (4) 檢查當前進程是否用完了時間片(time slice),如果用盡,則進行重新調度

??? (5) 運行超時的動態定時器

??? (6) 更新資源耗盡和處理器時間的統計值

??? 內核動態定時器依賴于系統時鐘中斷,因為只有在系統時鐘中斷發生后內核才會去檢查當前是否有超時的動態定時器。

---------------------------------------------------------

?? ?X86體系結構中,內核2.6.X的HZ = 1000, 即系統時鐘中斷執行粒度為1ms,這意味著系統中周期事情最快為1ms執行一次,而不可能有更高的精度。動態定時器隨時都可能超時,但由于只有在系統時鐘中斷到來時內核才會檢查執行超時的動態定時器,所以動態定時器的平均誤差大約為半個系統時鐘周期(即0.5ms).

總結

以上是生活随笔為你收集整理的Linux的PCI驱动介绍(入门)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

免费无码一区二区三区蜜桃大 | 国产熟妇另类久久久久 | 人人澡人摸人人添 | 久久久av男人的天堂 | 亚洲熟妇色xxxxx欧美老妇y | 亚洲日韩一区二区 | 国内丰满熟女出轨videos | 亚洲成a人片在线观看无码 | 午夜熟女插插xx免费视频 | 国产乱人伦偷精品视频 | 久久久久国色av免费观看性色 | 日日麻批免费40分钟无码 | 99久久无码一区人妻 | 欧美黑人巨大xxxxx | 色一情一乱一伦一视频免费看 | 亚洲欧美日韩国产精品一区二区 | 少妇人妻av毛片在线看 | 国产网红无码精品视频 | 国产特级毛片aaaaaa高潮流水 | 中文字幕无线码免费人妻 | 色情久久久av熟女人妻网站 | 精品欧洲av无码一区二区三区 | 久久午夜无码鲁丝片午夜精品 | 色情久久久av熟女人妻网站 | 国产精品高潮呻吟av久久4虎 | 亚洲一区二区三区香蕉 | 男女下面进入的视频免费午夜 | 国产成人精品久久亚洲高清不卡 | 无遮挡国产高潮视频免费观看 | 国产无遮挡又黄又爽免费视频 | 日韩视频 中文字幕 视频一区 | 18黄暴禁片在线观看 | 国产成人综合在线女婷五月99播放 | 亚洲一区二区三区含羞草 | 亚洲а∨天堂久久精品2021 | 免费观看又污又黄的网站 | 鲁鲁鲁爽爽爽在线视频观看 | 日日麻批免费40分钟无码 | 亚洲精品一区二区三区在线观看 | 亚洲色成人中文字幕网站 | 国产亚洲欧美在线专区 | 国产亚洲人成a在线v网站 | 扒开双腿吃奶呻吟做受视频 | 中文字幕人成乱码熟女app | 国产在线精品一区二区三区直播 | 色综合久久久无码中文字幕 | 午夜福利一区二区三区在线观看 | 色婷婷av一区二区三区之红樱桃 | 国产热a欧美热a在线视频 | 亚洲男女内射在线播放 | 日本又色又爽又黄的a片18禁 | 久久久久久久女国产乱让韩 | 国产97人人超碰caoprom | 88国产精品欧美一区二区三区 | yw尤物av无码国产在线观看 | 99久久精品国产一区二区蜜芽 | 日韩av无码一区二区三区不卡 | 99国产精品白浆在线观看免费 | 亚洲综合伊人久久大杳蕉 | 无码中文字幕色专区 | 麻豆精品国产精华精华液好用吗 | 久久国产精品_国产精品 | 精品久久综合1区2区3区激情 | 国产av剧情md精品麻豆 | 久久久精品456亚洲影院 | 国产精品第一区揄拍无码 | 色欲综合久久中文字幕网 | 99精品久久毛片a片 | 牛和人交xxxx欧美 | 成年女人永久免费看片 | 樱花草在线社区www | 色综合久久久无码网中文 | 无遮挡啪啪摇乳动态图 | 六十路熟妇乱子伦 | 日韩成人一区二区三区在线观看 | 国产av无码专区亚洲awww | 熟妇女人妻丰满少妇中文字幕 | 亚洲国产高清在线观看视频 | 亲嘴扒胸摸屁股激烈网站 | 日韩精品乱码av一区二区 | 国产精品成人av在线观看 | 中文字幕人妻丝袜二区 | 黑森林福利视频导航 | v一区无码内射国产 | 国产69精品久久久久app下载 | 国产人妻精品一区二区三区 | 久久国产精品二国产精品 | 国产一区二区三区日韩精品 | 四虎永久在线精品免费网址 | 精品人妻人人做人人爽夜夜爽 | 欧美日韩一区二区三区自拍 | 强开小婷嫩苞又嫩又紧视频 | 国产特级毛片aaaaaa高潮流水 | 麻豆md0077饥渴少妇 | 思思久久99热只有频精品66 | 中文字幕+乱码+中文字幕一区 | 亚洲精品国偷拍自产在线麻豆 | 一本色道久久综合狠狠躁 | 98国产精品综合一区二区三区 | 四虎影视成人永久免费观看视频 | 一本色道婷婷久久欧美 | 荡女精品导航 | 天海翼激烈高潮到腰振不止 | 亚洲国产日韩a在线播放 | 少妇厨房愉情理9仑片视频 | 装睡被陌生人摸出水好爽 | 正在播放老肥熟妇露脸 | 一本大道久久东京热无码av | 亚洲国产综合无码一区 | 三上悠亚人妻中文字幕在线 | 国产精品美女久久久久av爽李琼 | 天天摸天天透天天添 | 亚洲人成网站在线播放942 | 色噜噜亚洲男人的天堂 | 国产精品爱久久久久久久 | 国产精品二区一区二区aⅴ污介绍 | 无码av最新清无码专区吞精 | 国产三级精品三级男人的天堂 | 扒开双腿吃奶呻吟做受视频 | 亚洲 a v无 码免 费 成 人 a v | 国产精品久久久av久久久 | 色狠狠av一区二区三区 | 国产午夜亚洲精品不卡下载 | 国产精品毛片一区二区 | 影音先锋中文字幕无码 | 国产成人精品三级麻豆 | 网友自拍区视频精品 | 国产成人久久精品流白浆 | 亚洲精品一区二区三区婷婷月 | 国产人妻人伦精品 | 小sao货水好多真紧h无码视频 | 无码国模国产在线观看 | 国产农村乱对白刺激视频 | 欧美猛少妇色xxxxx | 强伦人妻一区二区三区视频18 | 久久亚洲中文字幕无码 | 永久免费观看美女裸体的网站 | 日本护士xxxxhd少妇 | 大地资源网第二页免费观看 | 又大又硬又黄的免费视频 | 国产成人无码a区在线观看视频app | 老头边吃奶边弄进去呻吟 | 亚洲国产av美女网站 | 四十如虎的丰满熟妇啪啪 | 色狠狠av一区二区三区 | 中文字幕无码日韩专区 | 久久久久av无码免费网 | 国产精品久久久久久久影院 | 日本精品高清一区二区 | 久久久久成人片免费观看蜜芽 | 小鲜肉自慰网站xnxx | 亚洲精品久久久久久久久久久 | 婷婷六月久久综合丁香 | 伊在人天堂亚洲香蕉精品区 | 亚洲人成影院在线观看 | 国产精品国产自线拍免费软件 | 亚洲精品欧美二区三区中文字幕 | 成人免费视频视频在线观看 免费 | 国产av一区二区三区最新精品 | 欧美日韩一区二区免费视频 | 中文精品无码中文字幕无码专区 | 最新国产乱人伦偷精品免费网站 | 亚洲人交乣女bbw | 国产精品香蕉在线观看 | 亚洲第一无码av无码专区 | 国产精品无码久久av | 影音先锋中文字幕无码 | 青青草原综合久久大伊人精品 | 久久午夜无码鲁丝片 | 九九久久精品国产免费看小说 | 一二三四社区在线中文视频 | 国语自产偷拍精品视频偷 | 强伦人妻一区二区三区视频18 | 无码帝国www无码专区色综合 | 99精品无人区乱码1区2区3区 | 美女扒开屁股让男人桶 | 红桃av一区二区三区在线无码av | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产精品久免费的黄网站 | 欧美老熟妇乱xxxxx | 亚洲乱码中文字幕在线 | 色婷婷av一区二区三区之红樱桃 | 免费男性肉肉影院 | 999久久久国产精品消防器材 | 亚欧洲精品在线视频免费观看 | 曰本女人与公拘交酡免费视频 | 波多野结衣aⅴ在线 | 无码播放一区二区三区 | 窝窝午夜理论片影院 | 免费网站看v片在线18禁无码 | 久久无码中文字幕免费影院蜜桃 | 中文字幕人妻丝袜二区 | 久9re热视频这里只有精品 | √天堂中文官网8在线 | 男女作爱免费网站 | 亚洲国产综合无码一区 | 一本一道久久综合久久 | 国产人妻久久精品二区三区老狼 | 国产农村妇女高潮大叫 | 特大黑人娇小亚洲女 | 无码人妻丰满熟妇区毛片18 | 国内精品人妻无码久久久影院蜜桃 | 亚洲成熟女人毛毛耸耸多 | 99久久久国产精品无码免费 | 中文字幕中文有码在线 | 亚洲人亚洲人成电影网站色 | 无码国产乱人伦偷精品视频 | 色婷婷综合激情综在线播放 | 永久黄网站色视频免费直播 | 国产网红无码精品视频 | 国产xxx69麻豆国语对白 | 国产色视频一区二区三区 | 日本xxxx色视频在线观看免费 | 久在线观看福利视频 | 少妇厨房愉情理9仑片视频 | 日日天日日夜日日摸 | 国产电影无码午夜在线播放 | 99久久精品无码一区二区毛片 | 欧美丰满少妇xxxx性 | 中文字幕中文有码在线 | 乱人伦人妻中文字幕无码久久网 | 国产精品国产自线拍免费软件 | 人人妻在人人 | 极品嫩模高潮叫床 | 在教室伦流澡到高潮hnp视频 | 秋霞特色aa大片 | 亚洲国产精品美女久久久久 | 中文字幕乱码人妻二区三区 | 免费乱码人妻系列无码专区 | 十八禁真人啪啪免费网站 | 久精品国产欧美亚洲色aⅴ大片 | 蜜桃视频韩日免费播放 | a国产一区二区免费入口 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久精品国产99久久6动漫 | 久久久国产精品无码免费专区 | 国产精品无码mv在线观看 | 成熟妇人a片免费看网站 | 狠狠色色综合网站 | 成人无码精品1区2区3区免费看 | 嫩b人妻精品一区二区三区 | 午夜福利电影 | 成人欧美一区二区三区黑人免费 | 天天做天天爱天天爽综合网 | 精品欧洲av无码一区二区三区 | 少妇高潮一区二区三区99 | 国产特级毛片aaaaaa高潮流水 | 亚洲精品中文字幕久久久久 | 国产精品无码久久av | 无码国模国产在线观看 | 色综合久久久无码中文字幕 | 激情亚洲一区国产精品 | 中文字幕无码av激情不卡 | 纯爱无遮挡h肉动漫在线播放 | 内射老妇bbwx0c0ck | 国产精品igao视频网 | 成 人影片 免费观看 | 欧美亚洲国产一区二区三区 | 夫妻免费无码v看片 | 亚洲中文字幕成人无码 | 55夜色66夜色国产精品视频 | 无码国内精品人妻少妇 | 窝窝午夜理论片影院 | 免费无码肉片在线观看 | yw尤物av无码国产在线观看 | 色欲久久久天天天综合网精品 | 97无码免费人妻超级碰碰夜夜 | 麻花豆传媒剧国产免费mv在线 | 成年女人永久免费看片 | 少妇无码av无码专区在线观看 | 国产精品美女久久久网av | 熟妇女人妻丰满少妇中文字幕 | 亚洲精品国产品国语在线观看 | 久久精品人人做人人综合 | 在线天堂新版最新版在线8 | 乱人伦人妻中文字幕无码久久网 | 日韩精品无码一区二区中文字幕 | 国产99久久精品一区二区 | 无人区乱码一区二区三区 | 亚洲欧洲中文日韩av乱码 | 精品成在人线av无码免费看 | 最新国产麻豆aⅴ精品无码 | 人人妻在人人 | av人摸人人人澡人人超碰下载 | 无码人妻出轨黑人中文字幕 | 97色伦图片97综合影院 | 黑人巨大精品欧美黑寡妇 | 亚洲成a人片在线观看无码3d | 国产精品无码永久免费888 | 久久五月精品中文字幕 | 亚洲国产精品成人久久蜜臀 | 一二三四在线观看免费视频 | 日本熟妇大屁股人妻 | 亚洲精品成a人在线观看 | 未满成年国产在线观看 | 久久人人爽人人爽人人片av高清 | 99久久精品无码一区二区毛片 | 国产精品久久久久久无码 | 国产va免费精品观看 | 图片小说视频一区二区 | 蜜臀av在线观看 在线欧美精品一区二区三区 | 免费人成网站视频在线观看 | 欧美乱妇无乱码大黄a片 | 日韩欧美中文字幕在线三区 | 无码吃奶揉捏奶头高潮视频 | 亚洲中文字幕久久无码 | 亚洲理论电影在线观看 | 国产麻豆精品精东影业av网站 | 日日天日日夜日日摸 | 88国产精品欧美一区二区三区 | 久久综合网欧美色妞网 | 正在播放老肥熟妇露脸 | 中文字幕乱码亚洲无线三区 | 亚洲一区二区三区四区 | 国产成人精品必看 | 国产精品亚洲专区无码不卡 | 99精品国产综合久久久久五月天 | 亚洲精品成人av在线 | 青草青草久热国产精品 | 国产亚洲欧美日韩亚洲中文色 | 激情爆乳一区二区三区 | 亚洲精品国产第一综合99久久 | 中文字幕乱码中文乱码51精品 | 亚洲欧洲日本综合aⅴ在线 | 精品 日韩 国产 欧美 视频 | 日本肉体xxxx裸交 | 国产农村妇女高潮大叫 | 波多野结衣一区二区三区av免费 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 无码av岛国片在线播放 | 中文字幕无码av激情不卡 | 四虎国产精品免费久久 | 久在线观看福利视频 | 成人欧美一区二区三区黑人 | 性生交大片免费看女人按摩摩 | 亚洲 激情 小说 另类 欧美 | 婷婷综合久久中文字幕蜜桃三电影 | 午夜精品久久久久久久 | 欧美zoozzooz性欧美 | 一个人看的视频www在线 | 久久精品人人做人人综合 | 国产成人无码a区在线观看视频app | 欧美大屁股xxxxhd黑色 | 国产午夜福利亚洲第一 | 国产精品无码成人午夜电影 | 久久国产精品萌白酱免费 | 狠狠色噜噜狠狠狠狠7777米奇 | 夜先锋av资源网站 | 在线天堂新版最新版在线8 | 国产绳艺sm调教室论坛 | 国产精品久久久久无码av色戒 | 亚洲综合无码久久精品综合 | 老熟女重囗味hdxx69 | 男人的天堂2018无码 | aⅴ亚洲 日韩 色 图网站 播放 | 亚洲精品午夜无码电影网 | 国产精品自产拍在线观看 | 偷窥日本少妇撒尿chinese | 鲁一鲁av2019在线 | 99久久久无码国产精品免费 | 牛和人交xxxx欧美 | 国产乡下妇女做爰 | 久久久久久九九精品久 | 亚洲国产av美女网站 | 少妇被粗大的猛进出69影院 | 亚洲 激情 小说 另类 欧美 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日本欧美一区二区三区乱码 | 丰满人妻精品国产99aⅴ | 成人无码视频免费播放 | 激情内射日本一区二区三区 | 桃花色综合影院 | 国产成人一区二区三区在线观看 | 美女张开腿让人桶 | 99国产精品白浆在线观看免费 | 久久综合狠狠综合久久综合88 | 露脸叫床粗话东北少妇 | 国产熟妇高潮叫床视频播放 | 蜜臀aⅴ国产精品久久久国产老师 | 国产午夜无码视频在线观看 | 成人欧美一区二区三区 | 国产精品久久久久9999小说 | 国产肉丝袜在线观看 | 国产高潮视频在线观看 | 国产欧美精品一区二区三区 | 久久久国产精品无码免费专区 | 亚洲中文字幕久久无码 | 狂野欧美激情性xxxx | 噜噜噜亚洲色成人网站 | 亚洲精品国产a久久久久久 | 国产69精品久久久久app下载 | 国产人妻大战黑人第1集 | 成人精品天堂一区二区三区 | 久久久www成人免费毛片 | а√资源新版在线天堂 | 三上悠亚人妻中文字幕在线 | 性色欲情网站iwww九文堂 | 熟妇女人妻丰满少妇中文字幕 | 婷婷丁香六月激情综合啪 | 扒开双腿疯狂进出爽爽爽视频 | 日韩人妻无码中文字幕视频 | 亚洲综合无码一区二区三区 | 少妇厨房愉情理9仑片视频 | 亚洲一区二区三区香蕉 | 天堂无码人妻精品一区二区三区 | 国内精品久久毛片一区二区 | 国产xxx69麻豆国语对白 | 国产 精品 自在自线 | 日韩精品无码一本二本三本色 | a片在线免费观看 | 精品成在人线av无码免费看 | 国语精品一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 国产97色在线 | 免 | 久久久久久久女国产乱让韩 | 亚洲伊人久久精品影院 | 精品熟女少妇av免费观看 | 激情综合激情五月俺也去 | 大乳丰满人妻中文字幕日本 | 九九久久精品国产免费看小说 | 青春草在线视频免费观看 | 国内揄拍国内精品少妇国语 | 国内丰满熟女出轨videos | 麻豆果冻传媒2021精品传媒一区下载 | 动漫av一区二区在线观看 | 300部国产真实乱 | 成人片黄网站色大片免费观看 | 欧美性猛交内射兽交老熟妇 | 4hu四虎永久在线观看 | 国产精品第一国产精品 | 一本久久伊人热热精品中文字幕 | а√资源新版在线天堂 | 国产一区二区不卡老阿姨 | 国产女主播喷水视频在线观看 | 无码av免费一区二区三区试看 | 国产xxx69麻豆国语对白 | 黑人巨大精品欧美黑寡妇 | 久久久精品456亚洲影院 | 国产亚洲欧美在线专区 | 国精产品一品二品国精品69xx | 久久国产自偷自偷免费一区调 | 精品日本一区二区三区在线观看 | 色婷婷综合激情综在线播放 | 国产超级va在线观看视频 | 成人无码精品一区二区三区 | 丰满人妻一区二区三区免费视频 | 日本在线高清不卡免费播放 | 色综合久久久无码中文字幕 | 亚洲成色在线综合网站 | 人人妻人人澡人人爽精品欧美 | 国产精品理论片在线观看 | 熟女俱乐部五十路六十路av | 蜜桃臀无码内射一区二区三区 | 无码人妻丰满熟妇区毛片18 | 国产精品资源一区二区 | 日日鲁鲁鲁夜夜爽爽狠狠 | 18无码粉嫩小泬无套在线观看 | www一区二区www免费 | 国产精品久久久av久久久 | 久久久精品国产sm最大网站 | 欧美阿v高清资源不卡在线播放 | 国内丰满熟女出轨videos | 国产xxx69麻豆国语对白 | 亚洲欧美日韩成人高清在线一区 | 内射后入在线观看一区 | 亚洲精品欧美二区三区中文字幕 | 久久午夜无码鲁丝片午夜精品 | 国产亚av手机在线观看 | 欧美变态另类xxxx | 夜夜夜高潮夜夜爽夜夜爰爰 | 天天拍夜夜添久久精品 | 免费男性肉肉影院 | 国内精品久久久久久中文字幕 | 国产亚洲视频中文字幕97精品 | 国产精品久免费的黄网站 | 18精品久久久无码午夜福利 | 国产亚洲人成在线播放 | 香蕉久久久久久av成人 | 在线天堂新版最新版在线8 | 欧美日韩在线亚洲综合国产人 | 欧美日韩视频无码一区二区三 | 久久国产精品精品国产色婷婷 | 超碰97人人做人人爱少妇 | 亚洲人成影院在线无码按摩店 | 色婷婷av一区二区三区之红樱桃 | 麻豆果冻传媒2021精品传媒一区下载 | 伊人久久大香线蕉午夜 | 日韩精品无码免费一区二区三区 | 无码人妻丰满熟妇区五十路百度 | 亚洲色偷偷偷综合网 | 亚洲精品久久久久久一区二区 | 精品国产一区av天美传媒 | 人人妻人人澡人人爽欧美一区九九 | 亚洲精品国产精品乱码不卡 | 亚洲色无码一区二区三区 | 亚欧洲精品在线视频免费观看 | 美女毛片一区二区三区四区 | 欧美国产日韩亚洲中文 | 中文字幕 亚洲精品 第1页 | 99精品国产综合久久久久五月天 | 免费观看激色视频网站 | 国产美女极度色诱视频www | 精品无码国产自产拍在线观看蜜 | 伊人色综合久久天天小片 | 久久久久久九九精品久 | 久久久婷婷五月亚洲97号色 | 亚洲精品一区二区三区婷婷月 | 亚洲の无码国产の无码步美 | 熟女少妇在线视频播放 | 国内揄拍国内精品人妻 | 成人三级无码视频在线观看 | 精品无人区无码乱码毛片国产 | 麻豆精品国产精华精华液好用吗 | 丰满妇女强制高潮18xxxx | 亚洲中文字幕av在天堂 | 免费视频欧美无人区码 | 亚洲狠狠色丁香婷婷综合 | 国内揄拍国内精品少妇国语 | av无码不卡在线观看免费 | 欧美日韩久久久精品a片 | 欧美人与禽zoz0性伦交 | 无码人妻精品一区二区三区不卡 | 亚洲中文字幕va福利 | 亚洲国产综合无码一区 | 亚洲国产精品久久久天堂 | 四十如虎的丰满熟妇啪啪 | 丁香花在线影院观看在线播放 | 国产精品久久久久久久影院 | 台湾无码一区二区 | 国产激情精品一区二区三区 | 国产熟女一区二区三区四区五区 | 国产精品视频免费播放 | 日本又色又爽又黄的a片18禁 | 亚洲熟妇自偷自拍另类 | 牲欲强的熟妇农村老妇女 | 午夜时刻免费入口 | 国产午夜手机精彩视频 | 久久无码人妻影院 | 欧美人妻一区二区三区 | 99久久久无码国产精品免费 | 黄网在线观看免费网站 | 婷婷六月久久综合丁香 | 中文字幕+乱码+中文字幕一区 | 国产午夜亚洲精品不卡 | 色婷婷久久一区二区三区麻豆 | 99在线 | 亚洲 | 国产一区二区三区日韩精品 | 免费观看又污又黄的网站 | 国产精品亚洲专区无码不卡 | 久久久精品国产sm最大网站 | 精品久久综合1区2区3区激情 | 中文字幕无线码 | 久久精品无码一区二区三区 | 国产精品怡红院永久免费 | 97夜夜澡人人爽人人喊中国片 | 欧美肥老太牲交大战 | 亚洲国产综合无码一区 | 国内揄拍国内精品人妻 | 中文字幕+乱码+中文字幕一区 | 丰满人妻被黑人猛烈进入 | 无码毛片视频一区二区本码 | 人人妻人人澡人人爽欧美一区九九 | 成人亚洲精品久久久久软件 | a国产一区二区免费入口 | 中文字幕 亚洲精品 第1页 | 亚洲天堂2017无码中文 | 欧美三级不卡在线观看 | 国产精品无码一区二区三区不卡 | 亚洲成色在线综合网站 | 强开小婷嫩苞又嫩又紧视频 | 日本一区二区三区免费播放 | 日本免费一区二区三区最新 | 日本爽爽爽爽爽爽在线观看免 | 欧美丰满熟妇xxxx性ppx人交 | 国产精品久免费的黄网站 | 欧美35页视频在线观看 | 乱人伦人妻中文字幕无码久久网 | 狠狠综合久久久久综合网 | 亚洲精品久久久久avwww潮水 | 亚洲国产精品一区二区第一页 | 美女黄网站人色视频免费国产 | 久久99精品久久久久婷婷 | 沈阳熟女露脸对白视频 | 亚洲va欧美va天堂v国产综合 | 日韩精品无码一区二区中文字幕 | 免费人成网站视频在线观看 | 免费国产成人高清在线观看网站 | 日日橹狠狠爱欧美视频 | 国产精品va在线播放 | 麻豆果冻传媒2021精品传媒一区下载 | 国产精品-区区久久久狼 | 国产激情艳情在线看视频 | 亚洲中文字幕在线无码一区二区 | 丰满少妇高潮惨叫视频 | 最新国产乱人伦偷精品免费网站 | 国产精品久久国产精品99 | 亚洲啪av永久无码精品放毛片 | 国产人妻大战黑人第1集 | 自拍偷自拍亚洲精品被多人伦好爽 | 在线观看国产一区二区三区 | 无码国产色欲xxxxx视频 | 国产美女极度色诱视频www | 人妻少妇被猛烈进入中文字幕 | 久久久www成人免费毛片 | 欧美野外疯狂做受xxxx高潮 | 少妇人妻偷人精品无码视频 | 国产亚洲tv在线观看 | 99久久久无码国产精品免费 | 水蜜桃av无码 | 亚洲成a人片在线观看无码 | 国产尤物精品视频 | 国产美女精品一区二区三区 | a在线亚洲男人的天堂 | 无码吃奶揉捏奶头高潮视频 | 亚洲中文字幕无码中字 | 日本一卡2卡3卡四卡精品网站 | 国产成人综合美国十次 | 亚洲综合伊人久久大杳蕉 | 亚洲国产av精品一区二区蜜芽 | 乌克兰少妇性做爰 | 精品国产福利一区二区 | 嫩b人妻精品一区二区三区 | 天天摸天天透天天添 | a片免费视频在线观看 | 久久久亚洲欧洲日产国码αv | 一本久久a久久精品vr综合 | 国产片av国语在线观看 | 爆乳一区二区三区无码 | 亚洲区小说区激情区图片区 | 青春草在线视频免费观看 | 少女韩国电视剧在线观看完整 | 国产97色在线 | 免 | 无套内谢的新婚少妇国语播放 | 亚洲中文字幕乱码av波多ji | 国产精品无码成人午夜电影 | 中文字幕av伊人av无码av | 精品久久8x国产免费观看 | 亚欧洲精品在线视频免费观看 | 东京一本一道一二三区 | 亚洲欧洲日本综合aⅴ在线 | 色综合久久网 | 高潮毛片无遮挡高清免费视频 | 亚洲理论电影在线观看 | 377p欧洲日本亚洲大胆 | 亚洲成a人片在线观看无码3d | 丝袜美腿亚洲一区二区 | 亚洲精品成人福利网站 | 亲嘴扒胸摸屁股激烈网站 | 领导边摸边吃奶边做爽在线观看 | 国产亚洲精品久久久闺蜜 | 国产亚洲精品久久久ai换 | 2020最新国产自产精品 | 久久午夜无码鲁丝片秋霞 | 久久午夜无码鲁丝片午夜精品 | 亚洲 日韩 欧美 成人 在线观看 | 欧洲熟妇色 欧美 | 国产精品手机免费 | 国产欧美精品一区二区三区 | 国产成人精品无码播放 | 日本精品人妻无码77777 天堂一区人妻无码 | 玩弄人妻少妇500系列视频 | 久9re热视频这里只有精品 | 欧美一区二区三区视频在线观看 | 无码人妻少妇伦在线电影 | 亚洲精品国偷拍自产在线麻豆 | 国精产品一品二品国精品69xx | 亚洲国产精品无码久久久久高潮 | 欧美激情内射喷水高潮 | 国产极品视觉盛宴 | 久久国产精品萌白酱免费 | 丰满人妻被黑人猛烈进入 | 国产亚洲人成在线播放 | 国产亚洲欧美日韩亚洲中文色 | 日本丰满熟妇videos | 欧美自拍另类欧美综合图片区 | 无套内谢老熟女 | 亚洲成a人一区二区三区 | 国内揄拍国内精品少妇国语 | аⅴ资源天堂资源库在线 | 欧美xxxx黑人又粗又长 | 国产无套粉嫩白浆在线 | 国产色xx群视频射精 | 强辱丰满人妻hd中文字幕 | 日韩精品a片一区二区三区妖精 | 人妻少妇精品无码专区动漫 | √天堂中文官网8在线 | 风流少妇按摩来高潮 | 狠狠色噜噜狠狠狠狠7777米奇 | 美女扒开屁股让男人桶 | 性欧美videos高清精品 | 欧美性生交xxxxx久久久 | 久久久久久久人妻无码中文字幕爆 | 在线a亚洲视频播放在线观看 | 妺妺窝人体色www在线小说 | 成人精品天堂一区二区三区 | 色综合视频一区二区三区 | 亚洲狠狠色丁香婷婷综合 | 丰满护士巨好爽好大乳 | 狠狠色噜噜狠狠狠7777奇米 | 中文字幕无线码 | 国产一区二区三区四区五区加勒比 | 国产精品久久久久9999小说 | 丰满少妇熟乱xxxxx视频 | 欧美日韩在线亚洲综合国产人 | 色综合天天综合狠狠爱 | 亚洲乱码中文字幕在线 | 亚洲午夜久久久影院 | 亚洲无人区午夜福利码高清完整版 | 国产成人无码区免费内射一片色欲 | 久久人人爽人人爽人人片av高清 | 丰满岳乱妇在线观看中字无码 | 乱码av麻豆丝袜熟女系列 | 成人一在线视频日韩国产 | 亚洲国产欧美日韩精品一区二区三区 | 久久亚洲a片com人成 | 成人精品视频一区二区三区尤物 | 婷婷五月综合激情中文字幕 | 精品国偷自产在线 | 亚洲国产午夜精品理论片 | 中文字幕无码免费久久99 | 亚洲国产精品无码久久久久高潮 | 国产艳妇av在线观看果冻传媒 | 欧美午夜特黄aaaaaa片 | 成人免费视频在线观看 | 国产69精品久久久久app下载 | 国产精品毛多多水多 | 综合激情五月综合激情五月激情1 | 永久免费观看国产裸体美女 | 亚洲国产成人av在线观看 | 久久久精品人妻久久影视 | 丝袜 中出 制服 人妻 美腿 | 偷窥日本少妇撒尿chinese | 色婷婷久久一区二区三区麻豆 | 香蕉久久久久久av成人 | 精品国产av色一区二区深夜久久 | 免费无码一区二区三区蜜桃大 | 麻豆国产人妻欲求不满谁演的 | 欧美日韩在线亚洲综合国产人 | 久久视频在线观看精品 | 亚洲精品中文字幕久久久久 | 99久久久无码国产aaa精品 | 中文字幕无码人妻少妇免费 | 国产电影无码午夜在线播放 | 亚洲乱码日产精品bd | 伊人久久大香线蕉午夜 | 精品无码一区二区三区爱欲 | 色综合久久网 | 丰满妇女强制高潮18xxxx | 日韩精品无码一本二本三本色 | 在教室伦流澡到高潮hnp视频 | 成 人 免费观看网站 | 国产三级久久久精品麻豆三级 | 成熟人妻av无码专区 | 永久免费精品精品永久-夜色 | 久久久久久av无码免费看大片 | 色综合久久久无码网中文 | 欧美国产日韩久久mv | 一本大道久久东京热无码av | 国产香蕉尹人视频在线 | 青青青爽视频在线观看 | 久久无码中文字幕免费影院蜜桃 | 好男人www社区 | 国产精品久免费的黄网站 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产成人一区二区三区别 | 久久99精品久久久久久动态图 | 久久综合狠狠综合久久综合88 | 永久免费观看美女裸体的网站 | 精品国产一区av天美传媒 | 国产三级精品三级男人的天堂 | 丁香啪啪综合成人亚洲 | 欧美日韩综合一区二区三区 | 无码人妻精品一区二区三区下载 | 少妇人妻av毛片在线看 | 亚洲精品久久久久久久久久久 | 亚洲gv猛男gv无码男同 | 激情人妻另类人妻伦 | 久久久久久国产精品无码下载 | 亚洲精品一区国产 | 久久精品国产精品国产精品污 | 精品无人国产偷自产在线 | 色婷婷av一区二区三区之红樱桃 | 精品偷拍一区二区三区在线看 | 成 人 免费观看网站 | 亚洲 激情 小说 另类 欧美 | 99久久久国产精品无码免费 | 性啪啪chinese东北女人 | 又大又硬又黄的免费视频 | 俺去俺来也www色官网 | 国产猛烈高潮尖叫视频免费 | 精品少妇爆乳无码av无码专区 | 国产精品.xx视频.xxtv | 午夜无码人妻av大片色欲 | 中文字幕人妻无码一区二区三区 | 欧美成人家庭影院 | 亚洲乱码中文字幕在线 | 国产又粗又硬又大爽黄老大爷视 | 色综合久久久久综合一本到桃花网 | 国产亚洲欧美日韩亚洲中文色 | 少妇被黑人到高潮喷出白浆 | 欧美放荡的少妇 | av人摸人人人澡人人超碰下载 | 亚洲爆乳大丰满无码专区 | 欧美变态另类xxxx | 国产午夜亚洲精品不卡下载 | 中文字幕乱妇无码av在线 | 国内精品久久毛片一区二区 | 狂野欧美性猛交免费视频 | 大地资源网第二页免费观看 | 国产精品亚洲lv粉色 | 日本爽爽爽爽爽爽在线观看免 | 久久久中文字幕日本无吗 | 偷窥日本少妇撒尿chinese | 精品久久综合1区2区3区激情 | 日日麻批免费40分钟无码 | 男女超爽视频免费播放 | 欧美 亚洲 国产 另类 | 日本大香伊一区二区三区 | 色窝窝无码一区二区三区色欲 | 亚洲成av人影院在线观看 | 捆绑白丝粉色jk震动捧喷白浆 | 久久综合给合久久狠狠狠97色 | 免费观看黄网站 | 亚洲精品午夜无码电影网 | 中文毛片无遮挡高清免费 | 成人精品视频一区二区三区尤物 | 欧美激情一区二区三区成人 | 图片区 小说区 区 亚洲五月 | 亚洲欧美精品aaaaaa片 | 亚洲成a人片在线观看无码3d | 图片小说视频一区二区 | 亚洲一区二区三区含羞草 | 亚洲中文字幕av在天堂 | 欧美日韩久久久精品a片 | 成人一区二区免费视频 | 无码一区二区三区在线观看 | 偷窥日本少妇撒尿chinese | 无码人妻精品一区二区三区不卡 | 中文精品无码中文字幕无码专区 | 国内精品久久久久久中文字幕 | 4hu四虎永久在线观看 | 99久久久无码国产精品免费 | 久久婷婷五月综合色国产香蕉 | 国产免费久久精品国产传媒 | 无码精品人妻一区二区三区av | 亚洲中文字幕av在天堂 | 九九久久精品国产免费看小说 | 亚洲国产综合无码一区 | 亚洲中文无码av永久不收费 | 国产精品久久久久久久9999 | 97se亚洲精品一区 | 国产激情综合五月久久 | 亚洲精品综合五月久久小说 | 国产成人精品一区二区在线小狼 | 国产明星裸体无码xxxx视频 | 曰本女人与公拘交酡免费视频 | 日日天日日夜日日摸 | 亚洲成色在线综合网站 | 亚洲а∨天堂久久精品2021 | 国产av人人夜夜澡人人爽麻豆 | 精品国精品国产自在久国产87 | 国产乱子伦视频在线播放 | 55夜色66夜色国产精品视频 | 鲁大师影院在线观看 | 久久国产劲爆∧v内射 | 奇米影视7777久久精品人人爽 | 性生交大片免费看l | 久久综合狠狠综合久久综合88 | 国产乱人偷精品人妻a片 | 伊人久久婷婷五月综合97色 | 日产国产精品亚洲系列 | 国产精品久久国产三级国 | 无码人妻少妇伦在线电影 | 亚洲中文字幕av在天堂 | 人妻无码久久精品人妻 | 日本一区二区三区免费高清 | 国产综合久久久久鬼色 | 成人综合网亚洲伊人 | 久久精品女人天堂av免费观看 | 国精产品一品二品国精品69xx | 国产欧美精品一区二区三区 | 久久99久久99精品中文字幕 | 在线欧美精品一区二区三区 | 亚洲国产成人av在线观看 | 欧美国产日韩久久mv | 人妻人人添人妻人人爱 | 正在播放东北夫妻内射 | 亚洲国产精品无码久久久久高潮 | 亚洲中文字幕va福利 | 日本乱人伦片中文三区 | 任你躁在线精品免费 | 欧美freesex黑人又粗又大 | 中文字幕无码av波多野吉衣 | 成人亚洲精品久久久久软件 | 国内揄拍国内精品人妻 | 中文亚洲成a人片在线观看 | 久久这里只有精品视频9 | 午夜精品一区二区三区的区别 | 中文精品无码中文字幕无码专区 | 又粗又大又硬毛片免费看 | 999久久久国产精品消防器材 | 人人妻人人澡人人爽欧美一区 | 亲嘴扒胸摸屁股激烈网站 | 久久综合色之久久综合 | 亚洲午夜福利在线观看 | 亚洲国产欧美国产综合一区 | 欧美丰满熟妇xxxx | 2020久久香蕉国产线看观看 | 国产口爆吞精在线视频 | 一本色道久久综合狠狠躁 | 日日天干夜夜狠狠爱 | 帮老师解开蕾丝奶罩吸乳网站 | 久久天天躁狠狠躁夜夜免费观看 | 福利一区二区三区视频在线观看 | 我要看www免费看插插视频 | 男女超爽视频免费播放 | 人妻少妇精品无码专区动漫 | 久久久久99精品成人片 | 正在播放东北夫妻内射 | 亚洲乱码中文字幕在线 | 免费人成网站视频在线观看 | 人妻少妇被猛烈进入中文字幕 | av小次郎收藏 | 亚洲人成无码网www | 成在人线av无码免费 | 精品午夜福利在线观看 | 亚洲精品午夜国产va久久成人 | 国产美女精品一区二区三区 | 久久人人97超碰a片精品 | 18精品久久久无码午夜福利 | 中文字幕中文有码在线 | 天天躁夜夜躁狠狠是什么心态 | 丝袜美腿亚洲一区二区 | 精品成在人线av无码免费看 | 日韩欧美中文字幕公布 | 2020久久超碰国产精品最新 | 人人妻人人澡人人爽欧美一区 | 午夜肉伦伦影院 | 国产性生交xxxxx无码 | 久久久av男人的天堂 | 精品成人av一区二区三区 | 国产乡下妇女做爰 | 日本精品少妇一区二区三区 | 成熟妇人a片免费看网站 | 日韩少妇白浆无码系列 | 无码国产色欲xxxxx视频 | 国产内射老熟女aaaa | 大地资源网第二页免费观看 | 曰韩少妇内射免费播放 | 日韩av激情在线观看 | 又湿又紧又大又爽a视频国产 | 97久久精品无码一区二区 | 人人妻人人澡人人爽欧美一区 | 狂野欧美性猛xxxx乱大交 | 国产成人综合美国十次 | 国产精品鲁鲁鲁 | 久久久精品456亚洲影院 | 无码国产色欲xxxxx视频 | 亚洲精品欧美二区三区中文字幕 | 国产精品久久久久无码av色戒 | 亚洲啪av永久无码精品放毛片 | 少妇无套内谢久久久久 | 国产精品多人p群无码 | 国产 浪潮av性色四虎 | 国产麻豆精品一区二区三区v视界 | 国内老熟妇对白xxxxhd | 鲁鲁鲁爽爽爽在线视频观看 | 高清无码午夜福利视频 | 亚洲国产精品美女久久久久 | 18无码粉嫩小泬无套在线观看 | 成人aaa片一区国产精品 | 国产精品二区一区二区aⅴ污介绍 | 国产又爽又黄又刺激的视频 | 日本一区二区更新不卡 | 亚洲国产精品无码一区二区三区 | 免费看男女做好爽好硬视频 | 国产精品久久久久久久9999 | 国产精品久久久一区二区三区 | 久久99热只有频精品8 | 亚洲成av人影院在线观看 | 欧美人与善在线com | 秋霞成人午夜鲁丝一区二区三区 | 日本va欧美va欧美va精品 | 欧美35页视频在线观看 | а天堂中文在线官网 | 狠狠噜狠狠狠狠丁香五月 | 亚洲 高清 成人 动漫 | 久久国产精品精品国产色婷婷 | 男女超爽视频免费播放 | 亚洲日本一区二区三区在线 | 激情五月综合色婷婷一区二区 | 2020久久香蕉国产线看观看 | 国产麻豆精品一区二区三区v视界 | 亚洲精品中文字幕久久久久 | 亚洲熟悉妇女xxx妇女av | 狠狠色噜噜狠狠狠7777奇米 | 亚洲 日韩 欧美 成人 在线观看 | 午夜成人1000部免费视频 | 人妻天天爽夜夜爽一区二区 | 老司机亚洲精品影院 | 四虎永久在线精品免费网址 | 国产成人综合在线女婷五月99播放 | 久久婷婷五月综合色国产香蕉 | 午夜福利不卡在线视频 | 牲欲强的熟妇农村老妇女视频 | 人人妻人人澡人人爽人人精品 | 久久久久成人片免费观看蜜芽 | 午夜肉伦伦影院 | 久久精品国产99久久6动漫 | 国产精品美女久久久久av爽李琼 | 天天爽夜夜爽夜夜爽 | 青青久在线视频免费观看 | 亚洲日本va中文字幕 | 少妇无码一区二区二三区 | 国产凸凹视频一区二区 | 亚洲精品一区二区三区婷婷月 | 无套内谢的新婚少妇国语播放 | 人人澡人人妻人人爽人人蜜桃 | 亚洲爆乳精品无码一区二区三区 | 国产午夜无码精品免费看 | 国产精品久久久一区二区三区 | 国产精品怡红院永久免费 | 日本精品高清一区二区 | 51国偷自产一区二区三区 | 国産精品久久久久久久 | 少妇无套内谢久久久久 | 免费无码一区二区三区蜜桃大 | 亚洲熟悉妇女xxx妇女av | 日韩无码专区 | 亚洲成色在线综合网站 | 国产激情精品一区二区三区 | 暴力强奷在线播放无码 | 搡女人真爽免费视频大全 | 亚洲精品成人av在线 | 少妇久久久久久人妻无码 | 精品熟女少妇av免费观看 | 欧美日韩亚洲国产精品 | 无码吃奶揉捏奶头高潮视频 | 青青久在线视频免费观看 | 日韩视频 中文字幕 视频一区 | 欧美日本精品一区二区三区 | 无码一区二区三区在线观看 | 亚洲最大成人网站 | 日日天日日夜日日摸 | 蜜桃av抽搐高潮一区二区 | 99riav国产精品视频 | 人人超人人超碰超国产 | 久久久久久av无码免费看大片 | 999久久久国产精品消防器材 | 色综合久久网 | 久久久久久国产精品无码下载 | 国产肉丝袜在线观看 | 人人妻人人澡人人爽欧美一区九九 | 精品一区二区三区无码免费视频 | 久久精品国产大片免费观看 | 少妇无套内谢久久久久 | 日产精品高潮呻吟av久久 | 亚洲无人区午夜福利码高清完整版 | 在线亚洲高清揄拍自拍一品区 | 国产女主播喷水视频在线观看 | 色婷婷综合激情综在线播放 | 亚洲成av人影院在线观看 | 男女猛烈xx00免费视频试看 | 日本熟妇乱子伦xxxx | 国产亚洲精品精品国产亚洲综合 | 成人亚洲精品久久久久 | 午夜无码区在线观看 | 国产精品鲁鲁鲁 | 爽爽影院免费观看 | 亚洲欧美国产精品久久 | 人妻中文无码久热丝袜 | 九月婷婷人人澡人人添人人爽 | 亚洲成a人一区二区三区 | 亚洲熟妇色xxxxx亚洲 | 亚洲无人区一区二区三区 | 一本大道久久东京热无码av | 白嫩日本少妇做爰 | 无码人妻久久一区二区三区不卡 | 狂野欧美性猛交免费视频 | 亚洲日韩一区二区 | 玩弄中年熟妇正在播放 | 人妻少妇精品视频专区 | 日韩av无码中文无码电影 | 欧美日韩视频无码一区二区三 | 天天综合网天天综合色 | 欧美老人巨大xxxx做受 | 丰满岳乱妇在线观看中字无码 | 乱中年女人伦av三区 | 成人精品一区二区三区中文字幕 | 天干天干啦夜天干天2017 | 国产手机在线αⅴ片无码观看 | 色综合天天综合狠狠爱 | 欧美 日韩 人妻 高清 中文 | 又大又黄又粗又爽的免费视频 | 国产成人精品视频ⅴa片软件竹菊 | 人妻与老人中文字幕 | 国产精品毛片一区二区 | 秋霞特色aa大片 | 日韩精品无码一区二区中文字幕 | 亚洲综合伊人久久大杳蕉 | 精品亚洲韩国一区二区三区 | 女人被爽到呻吟gif动态图视看 | 久久久久se色偷偷亚洲精品av | 午夜精品一区二区三区在线观看 | 亚洲毛片av日韩av无码 | 精品人妻人人做人人爽 | 牲交欧美兽交欧美 | 波多野结衣乳巨码无在线观看 | 欧美三级a做爰在线观看 | 宝宝好涨水快流出来免费视频 | 亚洲va中文字幕无码久久不卡 | 久久久av男人的天堂 | 亚洲精品国产精品乱码视色 | 午夜熟女插插xx免费视频 | 亚洲爆乳无码专区 | 国产精品人人妻人人爽 | 国内精品人妻无码久久久影院 | 麻豆精品国产精华精华液好用吗 | 爱做久久久久久 | 狂野欧美激情性xxxx | 国产激情一区二区三区 | 国产av一区二区精品久久凹凸 | 狂野欧美性猛xxxx乱大交 | 色综合久久久无码中文字幕 | 国产熟女一区二区三区四区五区 | 无码任你躁久久久久久久 | √天堂中文官网8在线 | 国产成人无码午夜视频在线观看 | 十八禁真人啪啪免费网站 | 国产人妻久久精品二区三区老狼 | 77777熟女视频在线观看 а天堂中文在线官网 | 久久综合九色综合97网 | 亚洲一区av无码专区在线观看 | 亚洲欧美日韩国产精品一区二区 | 久久久久av无码免费网 | 乱码午夜-极国产极内射 | 国产手机在线αⅴ片无码观看 | 国产激情无码一区二区 | 精品一区二区三区无码免费视频 | av无码电影一区二区三区 | 久久久婷婷五月亚洲97号色 | 国产成人精品优优av | 久久久久久久久蜜桃 | 亚洲色成人中文字幕网站 | 精品国产一区二区三区四区 | 亚洲七七久久桃花影院 | 乱人伦人妻中文字幕无码久久网 | 精品欧美一区二区三区久久久 | 女人被爽到呻吟gif动态图视看 | 亚洲日韩乱码中文无码蜜桃臀网站 | 亚洲男女内射在线播放 | 妺妺窝人体色www在线小说 | 99久久久无码国产aaa精品 | 国产精品爱久久久久久久 | 少妇愉情理伦片bd | 国产午夜亚洲精品不卡 | 思思久久99热只有频精品66 | 人妻尝试又大又粗久久 | 久久亚洲精品成人无码 | 久久久久99精品成人片 | 中文字幕久久久久人妻 | 午夜无码人妻av大片色欲 | 亚洲成av人在线观看网址 | 乱人伦中文视频在线观看 | 精品久久久久久人妻无码中文字幕 | 成人亚洲精品久久久久 | 欧美阿v高清资源不卡在线播放 | 免费网站看v片在线18禁无码 | 98国产精品综合一区二区三区 | 久久99精品久久久久婷婷 | 一本久道久久综合狠狠爱 | 亚洲中文字幕无码中文字在线 | 桃花色综合影院 | 在线天堂新版最新版在线8 | 激情五月综合色婷婷一区二区 | 国产高潮视频在线观看 | 波多野结衣乳巨码无在线观看 | 亚洲日本va中文字幕 | 人妻无码久久精品人妻 | 国内丰满熟女出轨videos | 日韩av无码中文无码电影 | 55夜色66夜色国产精品视频 | 国产av一区二区三区最新精品 | 国产无套粉嫩白浆在线 | 人妻尝试又大又粗久久 | 人人妻人人澡人人爽欧美一区九九 | 俄罗斯老熟妇色xxxx | 中文字幕av伊人av无码av | 牲欲强的熟妇农村老妇女 | 樱花草在线社区www | 国产亚洲精品久久久久久久久动漫 | 人妻少妇被猛烈进入中文字幕 | 图片小说视频一区二区 | 国产乱人伦偷精品视频 | 中文字幕日产无线码一区 | 国产精品亚洲а∨无码播放麻豆 | 少妇邻居内射在线 | 亚洲中文字幕乱码av波多ji | 中文字幕无线码 | 奇米综合四色77777久久 东京无码熟妇人妻av在线网址 | 天堂无码人妻精品一区二区三区 | 中文字幕无线码 | 成人欧美一区二区三区黑人免费 | 国产后入清纯学生妹 | 久久伊人色av天堂九九小黄鸭 | 亚洲色偷偷偷综合网 | 丰满人妻一区二区三区免费视频 | 久久精品成人欧美大片 | 久久www免费人成人片 | 中文字幕乱码人妻无码久久 | 精品亚洲成av人在线观看 | 久久久无码中文字幕久... | 久久久国产一区二区三区 | 国产在热线精品视频 | 少妇性l交大片欧洲热妇乱xxx | 蜜桃无码一区二区三区 | 精品成在人线av无码免费看 | а√资源新版在线天堂 | 久久无码中文字幕免费影院蜜桃 | 乌克兰少妇xxxx做受 | 成人一区二区免费视频 | 国产极品美女高潮无套在线观看 | 丰满岳乱妇在线观看中字无码 | 欧洲精品码一区二区三区免费看 | 十八禁视频网站在线观看 | 少妇的肉体aa片免费 | 乱中年女人伦av三区 | 国产人妻精品一区二区三区不卡 | 久久国产36精品色熟妇 | 中文亚洲成a人片在线观看 | 少妇无码一区二区二三区 | 国产极品视觉盛宴 | 乌克兰少妇xxxx做受 | 日本乱人伦片中文三区 | 国产精品成人av在线观看 | 图片小说视频一区二区 | 亚洲精品www久久久 | 蜜臀aⅴ国产精品久久久国产老师 | 男女爱爱好爽视频免费看 | 成年美女黄网站色大免费视频 | 国产精品久久久久久亚洲影视内衣 | 国产亚洲精品久久久久久国模美 | 亚洲中文无码av永久不收费 | 欧美自拍另类欧美综合图片区 | 人妻与老人中文字幕 | 亚洲熟女一区二区三区 | aⅴ在线视频男人的天堂 | 精品日本一区二区三区在线观看 | 国产精品久久久久7777 | 日韩人妻系列无码专区 | 国产精品亚洲综合色区韩国 | 久久精品99久久香蕉国产色戒 | 久久精品无码一区二区三区 | 中文字幕中文有码在线 | 国产综合色产在线精品 | 国产午夜亚洲精品不卡 | 久久这里只有精品视频9 | 夜夜夜高潮夜夜爽夜夜爰爰 | 无码毛片视频一区二区本码 | 在线亚洲高清揄拍自拍一品区 | 无码人妻丰满熟妇区毛片18 | 六月丁香婷婷色狠狠久久 | 男人和女人高潮免费网站 | 中文字幕无码视频专区 | 日日噜噜噜噜夜夜爽亚洲精品 | 欧美老熟妇乱xxxxx | 婷婷五月综合缴情在线视频 | 成年美女黄网站色大免费全看 | 无码毛片视频一区二区本码 | 999久久久国产精品消防器材 | 丰满少妇高潮惨叫视频 | 国产高清av在线播放 | 在线a亚洲视频播放在线观看 | 久久国语露脸国产精品电影 | 亚洲а∨天堂久久精品2021 | 久久久精品成人免费观看 | 国产特级毛片aaaaaa高潮流水 | 在线 国产 欧美 亚洲 天堂 | 久久久久se色偷偷亚洲精品av | 日本乱偷人妻中文字幕 | 88国产精品欧美一区二区三区 | av无码电影一区二区三区 | 亚洲中文字幕无码中字 | 国产69精品久久久久app下载 | 欧美精品在线观看 | 亚洲日韩一区二区三区 | 无码人妻久久一区二区三区不卡 | 国产色视频一区二区三区 | 乱码av麻豆丝袜熟女系列 | 影音先锋中文字幕无码 | 日日鲁鲁鲁夜夜爽爽狠狠 | 中文字幕乱码亚洲无线三区 | 国产精品无码一区二区三区不卡 | 在线播放亚洲第一字幕 | 丰满少妇高潮惨叫视频 | 男女下面进入的视频免费午夜 | 激情五月综合色婷婷一区二区 | 色欲人妻aaaaaaa无码 | 久久天天躁狠狠躁夜夜免费观看 | 欧美日韩人成综合在线播放 | 大色综合色综合网站 | 国产精品久久久久久亚洲毛片 | 亚洲欧美中文字幕5发布 | 97久久精品无码一区二区 | 国产精品高潮呻吟av久久4虎 | 国产疯狂伦交大片 | 内射巨臀欧美在线视频 | 精品成在人线av无码免费看 | 无码av岛国片在线播放 | 成 人 免费观看网站 | 熟女体下毛毛黑森林 | 国产成人精品久久亚洲高清不卡 | 老子影院午夜精品无码 | 欧美日韩久久久精品a片 | 无码福利日韩神码福利片 | 自拍偷自拍亚洲精品10p | 国内精品久久毛片一区二区 | 无码国模国产在线观看 | 男人和女人高潮免费网站 | 97夜夜澡人人双人人人喊 | 久久国产36精品色熟妇 | 偷窥日本少妇撒尿chinese | 免费看少妇作爱视频 | 少妇久久久久久人妻无码 | 亚洲精品国偷拍自产在线观看蜜桃 | 亚洲日韩精品欧美一区二区 | 亚洲日本va午夜在线电影 | 久久婷婷五月综合色国产香蕉 | 久久99精品国产.久久久久 | 国内综合精品午夜久久资源 | 中文字幕乱妇无码av在线 | 日本大香伊一区二区三区 | 麻豆国产丝袜白领秘书在线观看 | 中文字幕日产无线码一区 | 狠狠色噜噜狠狠狠7777奇米 | 国产亚洲精品久久久久久久 | 亚洲一区二区三区香蕉 | 国产成人久久精品流白浆 | 亚洲狠狠婷婷综合久久 | 国产精品无码成人午夜电影 | 国产人妻人伦精品 | 精品人妻人人做人人爽 | 人妻有码中文字幕在线 | 香港三级日本三级妇三级 | 亚洲一区二区三区播放 | 久久天天躁狠狠躁夜夜免费观看 | 天堂亚洲免费视频 | 国产情侣作爱视频免费观看 | 国产综合在线观看 | 亚洲国产欧美在线成人 | 国产情侣作爱视频免费观看 | 国产 浪潮av性色四虎 | 久久久久久久人妻无码中文字幕爆 | 乌克兰少妇性做爰 | 国产精品人人妻人人爽 | 亚洲日本va中文字幕 | 日本一区二区更新不卡 | 国产一区二区三区精品视频 | 欧美人与动性行为视频 | 九九综合va免费看 | 中文字幕 亚洲精品 第1页 | 国产电影无码午夜在线播放 | 三上悠亚人妻中文字幕在线 | 在线a亚洲视频播放在线观看 | 国产成人午夜福利在线播放 | 亚洲国产精华液网站w | 香蕉久久久久久av成人 | 亚洲欧美日韩成人高清在线一区 | 99久久精品午夜一区二区 | 午夜嘿嘿嘿影院 | 亚洲高清偷拍一区二区三区 | 国产麻豆精品一区二区三区v视界 | 国产精品无码永久免费888 | 日日摸日日碰夜夜爽av | 久久午夜无码鲁丝片 | 亚洲国产精品无码一区二区三区 | 欧美放荡的少妇 | 亚洲第一无码av无码专区 | 亚洲综合另类小说色区 | 曰本女人与公拘交酡免费视频 | 亚洲の无码国产の无码步美 | 久久久国产一区二区三区 | 国产亚洲精品久久久ai换 | 正在播放东北夫妻内射 | 精品无码国产自产拍在线观看蜜 | 精品人妻av区 | 欧洲精品码一区二区三区免费看 | 国产又粗又硬又大爽黄老大爷视 | 色婷婷av一区二区三区之红樱桃 | 国产精品亚洲一区二区三区喷水 | 51国偷自产一区二区三区 | 国产精品高潮呻吟av久久 | 亚无码乱人伦一区二区 | 亚洲高清偷拍一区二区三区 | 国产精品无码一区二区三区不卡 | 骚片av蜜桃精品一区 | 国产香蕉尹人视频在线 | 99久久久无码国产精品免费 | 成人免费视频一区二区 | 东京热一精品无码av | 国产精品无码一区二区三区不卡 | 综合网日日天干夜夜久久 | 色综合久久网 | 中文字幕日韩精品一区二区三区 | 樱花草在线社区www | 人妻少妇精品无码专区二区 | 国产精品永久免费视频 | 无码人妻出轨黑人中文字幕 | 成人无码视频在线观看网站 | 国产内射老熟女aaaa | 久久久久久国产精品无码下载 | 久久综合激激的五月天 | 亚洲无人区午夜福利码高清完整版 | 亚洲国产精品一区二区第一页 | 18禁黄网站男男禁片免费观看 | 亚洲狠狠婷婷综合久久 | 四十如虎的丰满熟妇啪啪 | 女人被男人爽到呻吟的视频 | 永久免费观看美女裸体的网站 | 亚洲成a人片在线观看日本 | 无码国内精品人妻少妇 | 国产精品久久久午夜夜伦鲁鲁 | 2019午夜福利不卡片在线 | 丰满人妻一区二区三区免费视频 | 1000部啪啪未满十八勿入下载 | 日韩少妇内射免费播放 | 99久久久国产精品无码免费 | 正在播放老肥熟妇露脸 | 99国产欧美久久久精品 | 波多野结衣aⅴ在线 | 精品少妇爆乳无码av无码专区 | 国产明星裸体无码xxxx视频 | 日本肉体xxxx裸交 | 牲欲强的熟妇农村老妇女 | 精品国产一区二区三区四区在线看 | 亚洲欧洲日本无在线码 | 粗大的内捧猛烈进出视频 | 无人区乱码一区二区三区 | 亚洲gv猛男gv无码男同 | 300部国产真实乱 | 精品aⅴ一区二区三区 | 丝袜人妻一区二区三区 | 又湿又紧又大又爽a视频国产 | 荫蒂添的好舒服视频囗交 | 国产精品va在线观看无码 | 99精品无人区乱码1区2区3区 | 精品一区二区三区波多野结衣 | 亚洲熟女一区二区三区 | 久久精品人人做人人综合 | 亚洲成av人在线观看网址 | 免费看男女做好爽好硬视频 | 午夜无码人妻av大片色欲 | 鲁大师影院在线观看 | 精品国产一区二区三区四区在线看 | 亚洲成av人片在线观看无码不卡 | 久久综合香蕉国产蜜臀av | 日本一区二区三区免费高清 | 美女张开腿让人桶 | 国产明星裸体无码xxxx视频 | 国产综合色产在线精品 | 久久无码人妻影院 | 久久精品丝袜高跟鞋 | 无码成人精品区在线观看 | 日韩精品久久久肉伦网站 | 国产精品va在线观看无码 | 人人妻人人澡人人爽精品欧美 | 精品国产aⅴ无码一区二区 | 久久久久国色av免费观看性色 | 国产在线精品一区二区高清不卡 | 国产后入清纯学生妹 | 亚洲色无码一区二区三区 | 亚洲精品一区二区三区大桥未久 | 亚洲色无码一区二区三区 | 国产av一区二区三区最新精品 | 老太婆性杂交欧美肥老太 | 日韩av无码一区二区三区不卡 | 人人超人人超碰超国产 | 中文字幕乱码中文乱码51精品 | 精品欧洲av无码一区二区三区 | 亚洲热妇无码av在线播放 | 俺去俺来也在线www色官网 | 人妻少妇精品视频专区 | 爆乳一区二区三区无码 | 人妻少妇精品视频专区 | 国产色精品久久人妻 | 中文字幕 人妻熟女 | 爽爽影院免费观看 | 亚洲人成网站免费播放 | 精品国产青草久久久久福利 | 无码午夜成人1000部免费视频 | 人人爽人人爽人人片av亚洲 | 亚洲国产综合无码一区 | 熟女体下毛毛黑森林 | 国产精品亚洲一区二区三区喷水 | 日日摸天天摸爽爽狠狠97 | 亚洲娇小与黑人巨大交 | 国产片av国语在线观看 | 国产成人一区二区三区在线观看 | 午夜嘿嘿嘿影院 | 久久精品国产日本波多野结衣 | 色五月丁香五月综合五月 | 国产成人精品一区二区在线小狼 | 国产在线一区二区三区四区五区 | 国产精品久久久午夜夜伦鲁鲁 | 性色av无码免费一区二区三区 | 中文字幕乱码人妻二区三区 | 国产精品久久久久无码av色戒 | 蜜臀av无码人妻精品 | 两性色午夜视频免费播放 | 亚洲欧美日韩成人高清在线一区 | 好屌草这里只有精品 | 亚洲人成网站在线播放942 | 亚洲一区二区三区无码久久 | 日本精品少妇一区二区三区 | 中文字幕乱码中文乱码51精品 | 日本精品少妇一区二区三区 | 亚洲区欧美区综合区自拍区 | 一本久道久久综合婷婷五月 | 精品国产av色一区二区深夜久久 | 蜜桃臀无码内射一区二区三区 | 欧美亚洲国产一区二区三区 | 日韩视频 中文字幕 视频一区 | 国产精品久久久午夜夜伦鲁鲁 | 久久久久亚洲精品男人的天堂 | 给我免费的视频在线观看 | 永久黄网站色视频免费直播 | 国产精品资源一区二区 | 在线视频网站www色 | 美女张开腿让人桶 | www国产亚洲精品久久网站 | 日产精品99久久久久久 | 性欧美videos高清精品 | 又粗又大又硬又长又爽 | 国产深夜福利视频在线 | 国内精品人妻无码久久久影院蜜桃 | 色欲人妻aaaaaaa无码 | 成人性做爰aaa片免费看不忠 | 精品久久久中文字幕人妻 | 久久综合网欧美色妞网 | 欧美精品在线观看 | 精品久久久久香蕉网 | 女人被男人爽到呻吟的视频 | 国产凸凹视频一区二区 | 久久精品99久久香蕉国产色戒 | 国产性猛交╳xxx乱大交 国产精品久久久久久无码 欧洲欧美人成视频在线 | 无码人妻出轨黑人中文字幕 | 亚洲欧美日韩综合久久久 | 99riav国产精品视频 | 老熟女乱子伦 | 亚洲精品一区二区三区大桥未久 | 一本久道久久综合婷婷五月 | 国产人妻精品一区二区三区不卡 | 亚洲七七久久桃花影院 | 亚洲国产精品成人久久蜜臀 | 无码人妻久久一区二区三区不卡 | 午夜精品一区二区三区在线观看 | 国产区女主播在线观看 | 伊人久久大香线蕉av一区二区 | 亚洲精品一区国产 | 精品无码国产自产拍在线观看蜜 | 天天躁夜夜躁狠狠是什么心态 | 亚洲人成网站色7799 | 亚洲综合伊人久久大杳蕉 | 成 人 免费观看网站 | 激情人妻另类人妻伦 | 国产麻豆精品一区二区三区v视界 | 亚洲国产成人av在线观看 | 欧美 亚洲 国产 另类 | 小鲜肉自慰网站xnxx | 76少妇精品导航 | 人妻夜夜爽天天爽三区 | 欧美高清在线精品一区 | 亚洲 欧美 激情 小说 另类 | 久久精品人妻少妇一区二区三区 | 男女猛烈xx00免费视频试看 | 六月丁香婷婷色狠狠久久 | 亚洲欧美日韩成人高清在线一区 | 久久久av男人的天堂 | 国产办公室秘书无码精品99 | 玩弄少妇高潮ⅹxxxyw | 窝窝午夜理论片影院 | 日本熟妇乱子伦xxxx | 99精品视频在线观看免费 | 久久视频在线观看精品 | 精品无人国产偷自产在线 | 国内精品一区二区三区不卡 | 国产精品久久久一区二区三区 | 99久久精品日本一区二区免费 | 麻豆人妻少妇精品无码专区 | 亚洲国产一区二区三区在线观看 | 精品偷自拍另类在线观看 | 亚洲成色www久久网站 | 成熟妇人a片免费看网站 | 成人性做爰aaa片免费看 | 国产精品无码一区二区桃花视频 | 久久99精品久久久久久动态图 | 福利一区二区三区视频在线观看 | 午夜无码人妻av大片色欲 | 国产疯狂伦交大片 | 日韩欧美成人免费观看 | 欧美午夜特黄aaaaaa片 | 国产成人久久精品流白浆 | 少妇性荡欲午夜性开放视频剧场 | 亚洲gv猛男gv无码男同 | 人人妻人人澡人人爽精品欧美 | 又大又硬又黄的免费视频 | 男女下面进入的视频免费午夜 | 野外少妇愉情中文字幕 | 亚洲精品久久久久久一区二区 | 国产口爆吞精在线视频 | 中文字幕无码热在线视频 | 亚洲自偷自拍另类第1页 | 亚洲人成人无码网www国产 | 久久99精品久久久久久动态图 | 国产精品久久久久久久9999 | 天堂在线观看www | 中文字幕乱码中文乱码51精品 | 久久久精品欧美一区二区免费 | 蜜桃视频插满18在线观看 | 久久精品女人天堂av免费观看 | 99久久精品无码一区二区毛片 | 日本精品少妇一区二区三区 | 久久精品女人天堂av免费观看 | 在线播放免费人成毛片乱码 | 国产在线精品一区二区高清不卡 | 少妇厨房愉情理9仑片视频 | 少妇无码av无码专区在线观看 | 中文字幕乱码人妻无码久久 | 大肉大捧一进一出视频出来呀 | 中文字幕久久久久人妻 | 亚洲狠狠色丁香婷婷综合 | 无码人中文字幕 | 天堂а√在线中文在线 | 天天综合网天天综合色 | 国产精品久久久 | 又大又紧又粉嫩18p少妇 | 久久天天躁狠狠躁夜夜免费观看 | 黑森林福利视频导航 | 亚洲精品综合五月久久小说 | 久久国产劲爆∧v内射 | 18无码粉嫩小泬无套在线观看 | 四虎国产精品一区二区 | 亚洲va中文字幕无码久久不卡 | a片在线免费观看 | 激情亚洲一区国产精品 | 牲交欧美兽交欧美 | 亚洲一区二区三区 | 国产97色在线 | 免 | 99久久久国产精品无码免费 | 免费视频欧美无人区码 | 国产精品永久免费视频 | 成人精品视频一区二区三区尤物 | 麻花豆传媒剧国产免费mv在线 | 999久久久国产精品消防器材 | 成人无码精品一区二区三区 | 成人动漫在线观看 | 亚洲色成人中文字幕网站 | 帮老师解开蕾丝奶罩吸乳网站 | 国产精品igao视频网 | a片免费视频在线观看 | 国产午夜视频在线观看 | 亚洲国产精品久久久久久 | 亚洲欧美精品伊人久久 | 国产激情无码一区二区app | 人人妻人人藻人人爽欧美一区 | 夜夜夜高潮夜夜爽夜夜爰爰 | 亚洲男女内射在线播放 | 极品嫩模高潮叫床 | 性欧美videos高清精品 | 久久久久成人片免费观看蜜芽 | 亚洲人成人无码网www国产 | 亚洲一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 精品无码国产自产拍在线观看蜜 | 亚洲va中文字幕无码久久不卡 | 人人澡人人妻人人爽人人蜜桃 |