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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux x86架构下ACPI PNP Hardware ID的识别机制

發布時間:2024/8/1 linux 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux x86架构下ACPI PNP Hardware ID的识别机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

參考博客:

http://blog.csdn.net/jiangwei0512

參考文章:

http://blog.csdn.net/morixinguan/article/details/79138325

http://blog.chinaunix.net/uid-27717694-id-3624294.html

http://blog.csdn.net/wh_19910525/article/details/16370863

https://www.ibm.com/developerworks/cn/linux/l-acpi/part1/

http://www.latelee.org/embedded-linux/kernel-note-7%EF%BC%8Dintel-lpc_ich-driver.html

http://www.latelee.org/embedded-linux/kernel-note-10-intel-gpio-driver.html ? ?

關于Hardware ID的用途,在前面已經大致的解釋了它的用途,以及它和ACPI以及PNP之間的關系:

http://blog.csdn.net/morixinguan/article/details/79092440

? ? 接下來主要來看看在Linux內核中,內核是怎么去通過BIOS傳遞的參數表,傳遞對應的字串,然后內核又是如何來解析它,最終為Linux驅動統一模型所用。其實ARM和X86的驅動本質并沒有太大的區別,都是有了一個基地址,然后依靠偏移來獲取定位寄存器,寫值驅動設備。ARM也會去解析uboot傳遞的參數,然而并沒有那么的復雜,而X86對設備驅動進行了統一的管理,這點與ARM軟件架構的實現是有很大區別的,比如,讓GPIO的基地址在BIOS中進行統一分配,使用BIOS來統一管理電源等等。。。而ARM就相對來說簡單很多,沒有這么多的步驟,使用標準的Linux驅動模型+類ARM裸機操作(操作的地址需要進行映射,將物理地址轉換成虛擬地址,這點和單片機是不太一樣的),也就是說,如果掌握了ARM的驅動模型,同樣的,只要我們擁有X86架構的CPU數據手冊,我們同樣也可以使用ARM的思想來完成對X86架構的CPU的各類驅動BSP的編寫。

以下是較為重要的結構體:

在這個結構體里發現,_HID是以內核鏈表成員的形式加載進Linux內核的 (內核源碼/include/acpi/Acpi_bus.h) struct acpi_hardware_id {struct list_head list; char *id; };//ACPI的對象類型結構體 typedef u32 acpi_object_type; //ACPI對象 union acpi_object {acpi_object_type type; /* See definition of acpi_ns_type for values */struct {acpi_object_type type; /* ACPI_TYPE_INTEGER */u64 value; /* The actual number */} integer;struct {acpi_object_type type; /* ACPI_TYPE_STRING */u32 length; /* # of bytes in string, excluding trailing null */char *pointer; /* points to the string value */} string;struct {acpi_object_type type; /* ACPI_TYPE_BUFFER */u32 length; /* # of bytes in buffer */u8 *pointer; /* points to the buffer */} buffer;struct {acpi_object_type type; /* ACPI_TYPE_PACKAGE */u32 count; /* # of elements in package */union acpi_object *elements; /* Pointer to an array of ACPI_OBJECTs */} package;struct {acpi_object_type type; /* ACPI_TYPE_LOCAL_REFERENCE */acpi_object_type actual_type; /* Type associated with the Handle */acpi_handle handle; /* object reference */} reference;struct {acpi_object_type type; /* ACPI_TYPE_PROCESSOR */u32 proc_id;acpi_io_address pblk_address;u32 pblk_length;} processor;struct {acpi_object_type type; /* ACPI_TYPE_POWER */u32 system_level;u32 resource_order;} power_resource; };typedef char acpi_bus_id[8]; typedef unsigned long acpi_bus_address; typedef char acpi_device_name[40]; typedef char acpi_device_class[20];//這是一個位段,用來描述pnp中的類型 struct acpi_pnp_type {u32 hardware_id:1;u32 bus_address:1;u32 platform_id:1;u32 reserved:29; };//acpi的pnp設備,包括對象名稱、ID類型、以及各種ID,具體參考ACPI spec struct acpi_device_pnp {acpi_bus_id bus_id; /* Object name */struct acpi_pnp_type type; /* ID type */acpi_bus_address bus_address; /* _ADR */char *unique_id; /* _UID */struct list_head ids; /* _HID and _CIDs */acpi_device_name device_name; /* Driver-determined */acpi_device_class device_class; /* " */union acpi_object *str_obj; /* unicode string for _STR method */ };

????那X86架構的CPU在啟動內核的時候又是如何知道BIOS傳遞過來的HID參數?我們可以來看看X86架構在Linux下的啟動流程: ? ?

? ? 不管是在ARM還是X86平臺,本質都是將一系列代碼拷貝到對應的存儲器對應的區域中,這個存儲器一般是NOR FLASH或者NAND FLASH,當然現在還有EMMC等其它的存儲設備,然后在執行Uboot(ARM的叫法,也叫bootloader,用來引導內核,而X86用的是BIOS,也差不多)中,通過地址跳轉的形式去啟動內核,如果是我們自己實現的Bootloader,一般會在作為uboot的第一、第二階段以后,通過如下的代碼跳轉到操作系統啟動的模式:

/* 0. 幫內核設置串口: 內核啟動的開始部分會從串口打印一些信息,但是內核一開始沒有初始化串口 */uart0_init();/* 1. 從NAND FLASH里把內核讀入內存 */puts("Copy kernel from nand\n\r");nand_read(0x60000+64, (unsigned char *)0x30008000, 0x200000);puthex(0x1234ABCD);puts("\n\r");puthex(*p);puts("\n\r");/* 2. 設置參數 */puts("Set boot params\n\r");setup_start_tag();setup_memory_tags();setup_commandline_tag("noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0");setup_end_tag();/* 3. 跳轉執行 */puts("Boot kernel\n\r");theKernel = (void (*)(int, int, unsigned int))0x30008000;theKernel(0, 362, 0x30000100);

? ?如上代碼段,Linux內核在啟動的過程中會去解析ARM傳遞過去的參數:noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0。

? ? ?ARM的啟動相對來說比較簡單: uboot----->內核------>文件系統------>app,在uboot之前一般還會有IC廠商的固件驅動代碼。

? ? 而X86架構的CPU與ARM的啟動形式就不太一樣,顯然比這里要復雜得多,由于BIOS的源代碼并不開放,所以我們也并不知道BIOS的內幕具體是怎么實現的,但我們可以從以下這張圖可以得知X86架構從BIOS到kernel的整個流程,在這里我們能夠得知,X86的OS和BIOS之間銜接的橋梁是ACPI,使用ACPI來對一些資源進行統一管理,我們要獲取的這個Hardware ID其實就是ACPI Tables中的其中一個參數。


? ?到這里我們就明白了,不懂BIOS是怎么實現的也沒有什么關系,我們只要去百度下載一個ACPI的Spec,不就可以知道BIOS中具體的工作是做什么了嗎?只要了解了BIOS和內核之間是要完成什么樣的事情,對于我們驅動工程師來說就已經足夠了。

? ?接下來我們來看看在X86 Linux內核的啟動過程中,是如何去識別BIOS傳遞過來的Hardware ID的?

? ?不管是ARM架構的還是X86架構的CPU,在啟動Linux內核的時候一定要進入start_kernel函數,這個函數位于:

? ?內核源碼/init/main.c

? ?在這個函數中,會做操作系統的設備等一系列初始化,與ACPI最關鍵的地方在這個函數:acpi_early_init,這里完成的工作主要有如下:

acpi_early_init acpi_reallocate_root_table acpi_initialize_subsystem (drivers/acpi/acpica/Tbxfload.c) 1.acpi_load_tables: --->acpi_status __init acpi_load_tables(void) 2.acpi_tb_load_namespace: --->static acpi_status acpi_tb_load_namespace(void) 3.acpi_ns_load_table 在table中會得到一系列參數,包括Hardware ID,需要根據不同的參數表來解析 ---> (1)acpi_ut_acquire_mutex (2)acpi_tb_is_table_loaded (3)acpi_tb_allocate_owner_id (4)acpi_ns_parse_table

? ? ?原來,內核就是這樣來獲取BIOS傳遞過來的table的,這個table中就會包括Hardware ID,當然還會有其它的ID,具體請參考ACPI的Spec,根據Linux實現的驅動模型,那么有設備,自然就要有驅動,驅動和設備要相輔相成,在:內核源碼/drivers/acpi/bus.c中就實現了acpi的驅動,在這個文件中,我們看到:

static int __init acpi_init(void) {int result;if (acpi_disabled) {printk(KERN_INFO PREFIX "Interpreter disabled.\n");return -ENODEV;}acpi_kobj = kobject_create_and_add("acpi", firmware_kobj);if (!acpi_kobj) {printk(KERN_WARNING "%s: kset create error\n", __func__);acpi_kobj = NULL;}init_acpi_device_notify();result = acpi_bus_init();if (result) {disable_acpi();return result;}pci_mmcfg_late_init();acpi_scan_init();acpi_ec_init();acpi_debugfs_init();acpi_sleep_proc_init();acpi_wakeup_device_init();return 0; }

? ? 那么acpi_init函數又是怎么被內核調用的呢?通過subsys_initcall(acpi_init)這個宏來調用,我們將subsys_initcall展開看看,在內核源碼/include/init.h

#define subsys_initcall(fn) __define_initcall(fn, 4)

將__define_initcall(fn,4)這個宏展開

#define __define_initcall(fn, id) \static initcall_t __initcall_##fn##id __used \__attribute__((__section__(".initcall" #id ".init"))) = fn; \LTO_REFERENCE_INITCALL(__initcall_##fn##id)

? ? 其中initcall_t是函數指針,原型:typedef int (*initcall_t)(void);

? ?屬性 __attribute__((__section__())) 則表示把對象放在一個這個由括號中的名稱所指代的section中,這個對象就是我們的acpi_init函數。由此可見__define_initcall主要是完成以下幾個功能:

(1)聲明一個名稱為__initcall_##fn的函數指針;

(2) 將這個函數指針初始化為fn;

(3) 編譯的時候需要把這個函數指針變量放置到名稱為 ".initcall" level ".init"的section中。

? ? 而對應的這些.include,level,.init定義在Vmlinux.lds.h中,這個文件在內核源碼/include/asm-generic/Vmlinux.lds.h中:

在Linux4.0的內核實現如下:

#define INIT_CALLS_LEVEL(level) \VMLINUX_SYMBOL(__initcall##level##_start) = .; \*(.initcall##level##.init) \*(.initcall##level##s.init) \#define INIT_CALLS \VMLINUX_SYMBOL(__initcall_start) = .; \*(.initcallearly.init) \INIT_CALLS_LEVEL(0) \INIT_CALLS_LEVEL(1) \INIT_CALLS_LEVEL(2) \INIT_CALLS_LEVEL(3) \INIT_CALLS_LEVEL(4) \INIT_CALLS_LEVEL(5) \INIT_CALLS_LEVEL(rootfs) \INIT_CALLS_LEVEL(6) \INIT_CALLS_LEVEL(7) \VMLINUX_SYMBOL(__initcall_end) = .;

__initcall_start和__initcall_end以及INITCALLS中定義的SECTION都是在arch/x86/kernel/vmlinux.lds.S中放在.init.begin段中的,如下,這是linux4.0內核中實現的。

SECTIONS{...... /* Init code and data - will be freed after init */. = ALIGN(PAGE_SIZE);.init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) {__init_begin = .; /* paired with __init_end */}....... = ALIGN(PAGE_SIZE);/* freed after init ends here */.init.end : AT(ADDR(.init.end) - LOAD_OFFSET) {__init_end = .;}...... }

????而這些SECTION里的函數在初始化時被順序執行,具體的調用流程是這樣的:

rest_init ====> ?kernel_thread(kernel_init, NULL, CLONE_FS) ====>?kernel_init ====>?kernel_init_freeable ====>

do_basic_setup ====>?do_initcalls

在內核啟動的最后一步,開啟一條內核線程來加載這些函數,從而成功裝載acpi驅動。

static void __init do_initcalls(void) {int level;for (level = 0; level < ARRAY_SIZE(initcall_levels) - 1; level++)do_initcall_level(level); }

接下來再接著看acpi_init函數,這個函數中會調用acpi_scan_init函數,acpi_scan_init函數會完成如下:

1、注冊ACPI的驅動模型

result = bus_register(&acpi_bus_type);

2、完成與apci相關的一系列初始化:

acpi_pci_root_init(); acpi_pci_link_init(); acpi_processor_init(); acpi_lpss_init(); acpi_apd_init(); acpi_cmos_rtc_init(); acpi_container_init(); acpi_memory_hotplug_init(); acpi_pnp_init(); acpi_int340x_thermal_init();

3、重點:調用acpi_bus_scan函數

在這個函數中會繼續調用acpi_walk_namespace(ACPI_TYPE_ANY, handle, ACPI_UINT32_MAX,

acpi_bus_check_add, NULL, NULL, &device);

注冊acpi_bus_check_add函數,在acpi_bus_check_add函數中繼續調用:acpi_add_single_object函數:

static int acpi_add_single_object(struct acpi_device **child,
?acpi_handle handle, int type,

?unsigned long long sta)

在acpi_add_single_object函數中的主要操作:
1、調用acpi_init_device_object等完成acpi設備、電源管理相關等的初始化,詳情見后面分析
2、調用acpi_device_add獲取設備的HID信息,實際上是通過鏈表的遍歷形式去獲取

list_for_each_entry(acpi_device_bus_id, &acpi_bus_id_list, node) {if (!strcmp(acpi_device_bus_id->bus_id,acpi_device_hid(device))) {acpi_device_bus_id->instance_no++;found = 1;kfree(new_bus_id);break;}}const char *acpi_device_hid(struct acpi_device *device){struct acpi_hardware_id *hid;//判斷鏈表是否為空,如果為空,返回無效的hid,其實是一個字串:"device"if (list_empty(&device->pnp.ids))return dummy_hid;//通過list成員返回該結構體的起始地址,也就是acpi_hardware_id這個結構體的起始地址hid = list_first_entry(&device->pnp.ids, struct acpi_hardware_id, list);//找到該結構體的起始地址后,即可以獲得結構體中的id成員,這個id就是我們當前要獲取的HIDreturn hid->id;}3、通過dev_set_name(&device->dev, "%s:%02x", acpi_device_bus_id->bus_id, acpi_device_bus_id->instance_no);

設置在/sys/devices/XXX下面的name

4、調用acpi_init_device_object函數:

void acpi_init_device_object(struct acpi_device *device, acpi_handle handle,

int type, unsigned long long sta)

(1)、初始化內核鏈表用來存儲pnp設備中關于的鏈表等其它的信息
INIT_LIST_HEAD(&device->pnp.ids);
device->device_type = type;
device->handle = handle;
....

(2)、調用acpi_set_pnp_ids將ids的保存到ids中,具體操作見后面的剖析

5、調用acpi_set_pnp_ids函數:

static void acpi_set_pnp_ids(acpi_handle handle, struct acpi_device_pnp *pnp,

int device_type)

首先會根據swicth語句來判斷設備類型:device_type,這里找到的是ACPI總線的設備類型ACPI_BUS_TYPE_DEVICE
switch (device_type)
{
...
case ACPI_BUS_TYPE_DEVICE:
...

}

case ACPI_BUS_TYPE_DEVICE:
在該選項ACPI_BUS_TYPE_DEVICE中:
5.1 ?首先會判斷acpi句柄是否為ACPI的根對象,如果是,則會直接添加id節點到pnp->ids的鏈表中去。
5.2 ?接下來,調用acpi_get_object_info函數:
????acpi_status acpi_get_object_info(acpi_handle handle,struct acpi_device_info **return_buffer)
????通過acpi_get_object_info這個函數得到設備的_HID和_CIDs信息,獲取之前需要對命名空間的句柄進行轉換,怎么轉?
????通過struct acpi_namespace_node *acpi_ns_validate_handle(acpi_handle handle)這個函數轉。
????acpi_ns_validate_handle ?對傳入的名字空間句柄轉換為名字空間節點,這是在處理根節點的特殊情況
這個句柄其實是: ? typedef void *acpi_handle; /* Actually a ptr to a NS Node */
????為什么是Object?在ACPI標準手冊上關于ASL語言中可以查詢到:
????ObjectType ?must have. A fixed list is written as ?( a , b , c , … ) ?where the number of arguments depends on the specific ?ObjectType , and some elements can be nested objects, that is ?(a, b, (q, r, s,t), d) .?大致意思是,對象類型一定要包含,它是一個固定的列表寫成(a,b,c...)參數,取決于特定的對象類型,有些元素也是可以嵌套的,比如(a,b,(q,r,s,t),d)。
????該函數中會嘗試去判斷函數傳過來的參數--句柄是否存在,或者句柄是否為根對象:
????if ((!handle) || (handle == ACPI_ROOT_OBJECT)),只要有一個成立,則會return (acpi_gbl_root_node);
接下來嘗試校驗句柄:
????if (ACPI_GET_DESCRIPTOR_TYPE(handle) != ACPI_DESC_TYPE_NAMED)
????如果該句柄不是描述命名空間類型的句柄,則會return (NULL);
以上條件都不滿足,則:return (ACPI_CAST_PTR(struct acpi_namespace_node, handle));
#define ACPI_CAST_PTR(t, p) ? ? ? ? ? ? ((t *) (acpi_uintptr_t) (p))
????它的原型是將命名空間句柄強制轉換為apci命名空間節點,因為只有這樣,才能正確的解析BIOS傳遞過來的關于_HID的信息。

(1)提供運行_HID/_UID/_SUB/_CID的方法,這里只看_HID的執行方法

if ((type == ACPI_TYPE_DEVICE) || (type == ACPI_TYPE_PROCESSOR)) {...//得到_HID的信息status = acpi_ut_execute_HID(node, &hid);if (ACPI_SUCCESS(status)) {info_size += hid->length;valid |= ACPI_VALID_HID;}...}(2)復制ID信息到返回緩沖區 or 保留區域 & 檢測id是否為PCI根橋
????acpi_ns_copy_device_id ?//將HID、UID、SUB和CIDs復制到返回緩沖區,如果是可變長度的字符串則會被復制到保留區域

????acpi_ut_is_pci_root_bridge //對于HID和CID,會檢查ID是否為PCI根橋,如果是,則要info->flags |= ACPI_PCI_ROOT_BRIDGE;

3、保存HID等ID的信息到device的pnp->ids里,這里只分析HID,同樣是利用了內核鏈表的尾插機制,將id源源不斷的接在鏈表的尾部

if (info->valid & ACPI_VALID_HID) {acpi_add_id(pnp, info->hardware_id.string);pnp->type.platform_id = 1; } static void acpi_add_id(struct acpi_device_pnp *pnp, const char *dev_id)最關鍵的一步:list_add_tail(&id->list, &pnp->ids);如果沒有擁有相關的HID,可以直接對Handle進行添加,而不用通過BIOS去獲取:if (acpi_is_video_device(handle))acpi_add_id(pnp, ACPI_VIDEO_HID);else if (acpi_bay_match(handle))acpi_add_id(pnp, ACPI_BAY_HID);else if (acpi_dock_match(handle))acpi_add_id(pnp, ACPI_DOCK_HID);else if (acpi_ibm_smbus_match(handle))acpi_add_id(pnp, ACPI_SMBUS_IBM_HID);else if (list_empty(&pnp->ids) &&acpi_object_is_system_bus(handle)) {/* \_SB, \_TZ, LNXSYBUS */acpi_add_id(pnp, ACPI_BUS_HID);strcpy(pnp->device_name, ACPI_BUS_DEVICE_NAME);strcpy(pnp->device_class, ACPI_BUS_CLASS);}

例如:#define ACPI_BAY_HID "LNXIOBAY"

那么PNP設備又是如何被加載到ACPI中的呢?而Hardware ID傳進來的字符串又是如何被PNP識別的呢?接下來請看:

內核源碼/drivers/acpi/acpi_pnp.c

void __init acpi_pnp_init(void) {acpi_scan_add_handler(&acpi_pnp_handler); }

acpi_pnp_init這個函數是在acpi_scan_init中被調用的,也就是前面講到的。接下來我們來看看acpi_scan_add_handler這個函數:

int acpi_scan_add_handler(struct acpi_scan_handler *handler) {if (!handler)return -EINVAL;list_add_tail(&handler->list_node, &acpi_scan_handlers_list);return 0; }

? ? ?很明顯,這個函數完成的功能就是將節點插入到鏈表中去,插入的是什么節點?我們來看看acpi_pnp_handler:

static struct acpi_scan_handler acpi_pnp_handler = {.ids = acpi_pnp_device_ids,.match = acpi_pnp_match,.attach = acpi_pnp_attach, };

? ? 這是一個結構體變量,這里的ids其實就是一個字符串,這個字符串就是acpi的設備id,只不過在這被初始化成了pnp設備id,其實是一個意思,因為PNP設備是注冊在ACPI之上的。

struct acpi_device_id {__u8 id[ACPI_ID_LEN];kernel_ulong_t driver_data; }; static const struct acpi_device_id acpi_pnp_device_ids[] = {/* pata_isapnp */{"PNP0600"}, /* Generic ESDI/IDE/ATA compatible hard disk controller *//* floppy */{"PNP0700"},/* ipmi_si */{"IPI0001"},...... };

? ? ?而acpi_pnp_match是完成對BIOS傳遞過來的ID與這里的ID進行比較,如果存在這個ID,才會將對應的驅動注冊到內核中去,這樣內核才會去執行對應的驅動:

static bool matching_id(char *idstr, char *list_id) {int i;if (memcmp(idstr, list_id, 3)){return false;}for (i = 3; i < 7; i++) {char c = toupper(idstr[i]);if (!isxdigit(c)|| (list_id[i] != 'X' && c != toupper(list_id[i])))return false;}return true; }static bool acpi_pnp_match(char *idstr, const struct acpi_device_id **matchid) {const struct acpi_device_id *devid;for (devid = acpi_pnp_device_ids; devid->id[0]; devid++) {if (matching_id(idstr, (char *)devid->id)) {if (matchid)*matchid = devid;return true;}}return false; }static int acpi_pnp_attach(struct acpi_device *adev,const struct acpi_device_id *id) {return 1; }

? ? 至此,我們已經完全明白內核是如何接收到BIOS傳過來的Hardware ID的整個流程,確實是非常難的,簡單的問題被復雜化,但沒有辦法,因為要統一管理的東西太多太多了,所以一定需要一個模型來進行管理。如果我們不想使用BIOS與ACPI的機制,完全也可以繞開這個流程,用標準的Linux驅動模型去實現,不過還是建議,還是使用標準的ACPI的流程,這樣才有助于軟件工程項目管理。





? ??







總結

以上是生活随笔為你收集整理的Linux x86架构下ACPI PNP Hardware ID的识别机制的全部內容,希望文章能夠幫你解決所遇到的問題。

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

99精品在线播放 | 国产精品一区专区欧美日韩 | 国产999精品久久久久久绿帽 | 久草91视频 | 日日干天天爽 | 五月婷婷丁香综合 | 日韩免费视频线观看 | 在线观看一区 | 99一级片 | 中文字幕一二 | 日韩在线观看网址 | 国产精品对白一区二区三区 | 亚洲另类视频在线观看 | av九九九 | 六月色婷 | 99久久精品国产毛片 | 亚洲 综合 国产 精品 | 五月婷婷操 | 草莓视频在线观看免费观看 | 日韩激情片在线观看 | 国产资源中文字幕 | 97超碰人人澡人人 | 精品国产诱惑 | 国产精品一区二区果冻传媒 | 久久99电影 | 蜜臀久久99静品久久久久久 | 国产精品一区免费看8c0m | 丁香五月缴情综合网 | 中文在线8资源库 | 色偷偷网站视频 | 亚洲激情在线观看 | 手机av片 | 欧美日韩国产二区 | 欧美精品中文在线免费观看 | 在线免费观看黄色小说 | 日韩中文免费视频 | 97夜夜澡人人双人人人喊 | 91天堂影院| 中文字幕乱在线伦视频中文字幕乱码在线 | 午夜久久久精品 | 亚洲精品在线视频网站 | 日韩高清久久 | 五月激情六月丁香 | 亚洲综合视频在线播放 | 国产福利一区在线观看 | 婷婷在线色 | 久久99热精品 | 91九色性视频 | 精品国产一区二区在线 | 四虎国产视频 | 91亚洲在线观看 | 西西人体4444www高清视频 | 亚洲精品在线视频观看 | 免费国产一区二区视频 | 99九九99九九九视频精品 | 亚洲精品日韩一区二区电影 | 97人人模人人爽人人少妇 | 国产日韩视频在线观看 | 国产精品午夜在线 | 免费观看性生活大片3 | 欧美激情精品久久久久久免费印度 | 国产精品久久久久久久久久了 | 日韩精品一区二区三区丰满 | 操操操操网 | 久久久久免费精品视频 | 国产成人久久久77777 | 天天干天天操天天做 | 国产免费成人av | 午夜视频一区二区三区 | 黄色精品久久久 | 日韩精品欧美一区 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产九九热视频 | 日本精油按摩3 | av三级av | 99在线精品视频在线观看 | 激情久久婷婷 | 国内偷拍精品视频 | 国产精品专区在线 | 日韩免费高清在线观看 | 久久午夜精品视频 | 在线观看av小说 | 在线 国产 亚洲 欧美 | 国产精品第2页 | 丁香 婷婷 激情 | 欧美精品黑人性xxxx | 99精品亚洲 | www.国产精品| 这里只有精品视频在线观看 | 久久av不卡 | 超碰在线97免费 | 四虎影视精品成人 | 色中射 | 亚洲高清视频一区二区三区 | 欧美日韩国产免费视频 | 色欧美88888久久久久久影院 | 九九视频这里只有精品 | 国产一区电影在线观看 | 国产精品 视频 | 日韩 国产 | 嫩草av在线 | 国产在线播放一区 | 青草视频在线免费 | 狠狠色丁香婷婷综合久久片 | 日日插日日干 | 国产福利在线免费 | 久久国产精品一区二区 | 亚洲国产黄色 | 91完整版观看 | www色av| 国产激情免费 | 免费高清国产 | 日韩免费三区 | 国产免费影院 | 天天激情站 | 在线天堂8√ | 中文字幕免费高清 | 成年人黄色大片在线 | 国产91精品高清一区二区三区 | 亚洲日本一区二区在线 | 欧美精品免费在线观看 | 在线观看视频你懂 | 日韩和的一区二在线 | 亚洲黄色一级电影 | 丰满少妇一级片 | 久久久久久久亚洲精品 | 欧美一区二区视频97 | 国产成人精品综合久久久 | 99爱这里只有精品 | 免费网站污 | 91麻豆精品国产91久久久久久 | 91精品免费| 亚洲国产日韩欧美在线 | 久久久久久久影院 | 日本韩国精品在线 | 九九天堂| 国产精品久久久av | 国产亚洲精品久久 | 精品国产一区二区三区日日嗨 | 日韩视频免费观看高清完整版在线 | 九九热视频在线播放 | bbb搡bbb爽爽爽 | 91亚洲欧美激情 | 国产在线中文 | 日韩欧美一区视频 | 久操久| 男女精品久久 | 精品视频免费久久久看 | 97人人模人人爽人人喊中文字 | 欧美aa级| 久久伊人精品一区二区三区 | 久久综合色影院 | 成人av av在线 | 国产精品久久久久久久久岛 | 日韩在线观看中文 | 亚洲乱码精品久久久久 | 亚洲成年人在线播放 | 在线观看视频97 | 久久久久久久久久久影视 | 免费国产在线精品 | 一级成人免费视频 | 久久免费精彩视频 | 国产日韩精品在线观看 | 97成人精品视频在线观看 | 国产精品视频久久久 | 99久久久国产精品免费99 | 免费网站在线观看人 | 国产精品24小时在线观看 | 波多野结衣综合网 | 精品中文字幕在线观看 | 丁香六月国产 | 黄色成年| 麻豆传媒一区二区 | 亚洲成人影音 | 中文在线8资源库 | 色com | 国产一区福利 | 伊人五月 | 免费能看的黄色片 | 91av在| 福利电影久久 | 亚洲一区久久 | 天天超碰 | 亚洲理论在线观看电影 | 激情av在线资源 | 免费一级片在线观看 | 日韩美av在线 | 天天综合网久久 | 超碰公开在线 | 国产精品中文字幕在线观看 | 久久久综合色 | 国产成人久久精品一区二区三区 | 精品国产中文字幕 | 日本不卡视频 | 国产麻豆电影 | www.看片网站| 激情久久综合网 | 69xx视频 | 蜜臀av性久久久久蜜臀av | 中文字幕在线一二 | 久久精品电影 | 狠狠操天天干 | 激情伊人五月天久久综合 | 国产成人精品一区二区三区在线观看 | 美女免费视频黄 | 国产精品国产三级国产aⅴ9色 | 97视频亚洲 | 成人h在线 | 国产亚洲成人精品 | 日韩理论视频 | 久久久久久99精品 | 欧美日韩国产精品爽爽 | 日韩一级电影在线观看 | 日韩在线国产精品 | 成人久久久精品国产乱码一区二区 | 亚洲午夜小视频 | 国产精品久久99精品毛片三a | 美女国内精品自产拍在线播放 | 国产精品a久久久久 | 国产成人精品午夜在线播放 | 亚洲成人精品在线 | 国产视频在线观看一区二区 | 中文字幕精品一区二区三区电影 | 青草视频在线 | 在线影视 一区 二区 三区 | 在线观看黄色国产 | 亚洲精品久久视频 | 日韩久久一区 | av成人资源| 久久91久久久久麻豆精品 | 成人黄色大片在线观看 | 午夜视频在线网站 | 青青草华人在线视频 | www在线免费观看 | 日韩欧美一区二区在线 | 久久久99国产精品免费 | 美女福利视频 | 97国产在线播放 | www.黄色片网站 | 久久免费视频这里只有精品 | 综合五月 | 亚洲免费视频观看 | 亚洲在线a | 91香蕉国产 | 中文字幕二区在线观看 | 成人a大片 | 日本狠狠干 | 国产成人久久精品77777综合 | 久草在线观看视频免费 | 日韩大片在线看 | 国产 一区二区三区 在线 | 亚洲午夜精品久久久久久久久久久久 | av中文在线播放 | 人人超碰在线 | 欧美日韩精品电影 | 区一区二区三在线观看 | 黄色成品视频 | 久久久久亚洲国产精品 | 欧美国产高清 | 久久久久久久久久久久久国产精品 | av电影免费在线看 | 国产亚州精品视频 | 日韩免费福利 | 亚洲色图av| 午夜av激情 | 视频精品一区二区三区 | 国产精品99久久99久久久二8 | 天天综合色 | 色天天中文 | 婷婷丁香在线视频 | 国产精品免费大片视频 | 日韩电影在线观看中文字幕 | 亚洲伦理电影在线 | 亚洲做受高潮欧美裸体 | 国产成人精品999在线观看 | 欧美日韩视频在线一区 | 久久久九色精品国产一区二区三区 | 中文字幕国产精品一区二区 | 久久人人爽人人爽人人片av免费 | 国产精品区在线观看 | 美女视频免费精品 | 激情视频综合网 | 精品一区免费 | 欧美日韩国产二区三区 | 夜色成人av | 欧美中文字幕久久 | 亚洲资源一区 | 激情久久久久久久久久久久久久久久 | 98涩涩国产露脸精品国产网 | 在线观看日韩视频 | 色吊丝在线永久观看最新版本 | 精品亚洲va在线va天堂资源站 | 男女激情麻豆 | 99精品视频免费在线观看 | 九九热在线免费观看 | 在线综合 亚洲 欧美在线视频 | 毛片网站免费 | 久久成人麻豆午夜电影 | 国产成人一区二区三区电影 | 99草视频在线观看 | 久久精品国产精品亚洲 | 美女网站色 | 久操中文字幕在线观看 | 精品国产成人av在线免 | 四虎影视精品永久在线观看 | 一级理论片在线观看 | 99爱精品在线 | 最近中文字幕视频完整版 | 国内丰满少妇猛烈精品播 | av蜜桃在线 | 欧美亚洲专区 | 91香蕉视频黄 | 狠狠久久伊人 | 亚洲成人精品影院 | 日韩亚洲精品电影 | 成人av片免费观看app下载 | 人人天天夜夜 | 国产精品久久久久999 | 久草视频在 | 黄av免费在线观看 | 久久久久高清毛片一级 | 日韩在线精品视频 | 久久国产成人午夜av影院潦草 | 精品国产一区二区三区在线 | 免费91麻豆精品国产自产在线观看 | 欧美精品久久 | 日本在线中文在线 | 免费看污片 | 国产一卡在线 | 手机看片久久 | 色综合久久久久 | 久久久精品福利视频 | 草久在线观看视频 | 日韩视 | 麻豆系列在线观看 | 在线视频欧美亚洲 | 亚洲人成网站精品片在线观看 | 三级视频片| 天天操天天干天天操天天干 | 久久午夜电影 | 日韩激情影院 | 国产淫a| 成年人三级网站 | 粉嫩av一区二区三区四区在线观看 | 欧美日韩国产综合网 | 99在线精品免费视频九九视 | 国产精品免费看久久久8精臀av | 欧美日韩精品在线 | 欧美天天射 | 成人在线免费小视频 | 日韩亚洲在线视频 | 五月天婷亚洲天综合网精品偷 | 日日躁天天躁 | 亚洲视频在线视频 | 中文电影网 | 97视频在线免费观看 | 日韩欧美中文 | 狠狠操天天射 | 色婷婷激情综合 | 免费中文字幕 | 日本精品中文字幕在线观看 | 免费高清无人区完整版 | 精品久久五月天 | 久久香蕉一区 | 国产精品一区二区久久久 | 天天操夜夜想 | 亚洲黄色一级视频 | 天天操天天摸天天爽 | 久草在线视频中文 | 四虎影视成人永久免费观看亚洲欧美 | 97香蕉超级碰碰久久免费软件 | 最新日本中文字幕 | 久久久免费精品国产一区二区 | 久久午夜国产精品 | 99久久99久久精品免费 | 激情动态 | 国产a级免费 | 人人人爽 | 亚洲丝袜一区二区 | 久久久国产精品麻豆 | 色综合久久久久久中文网 | 欧洲精品亚洲精品 | 久久国产精品久久精品 | 天天色天天射天天操 | 国产999视频 | 精品成人在线 | 日本h视频在线观看 | 日本中文一区二区 | 日韩,中文字幕 | 91免费观看 | 国产一级免费观看 | 免费日韩一级片 | 欧洲一区二区三区精品 | 国产高清视频免费最新在线 | 激情欧美丁香 | 亚洲国内精品在线 | av成人动漫在线观看 | 欧美久久久久久久久久 | 97人人澡人人添人人爽超碰 | 国产99久久精品一区二区300 | 成人午夜片av在线看 | 婷婷伊人综合亚洲综合网 | 999久久国精品免费观看网站 | 天天操天天操天天操天天操 | 黄色在线成人 | 国产精品第一页在线观看 | 在线免费日韩 | 成人免费网站在线观看 | 欧美少妇xxx | 97精品超碰一区二区三区 | 中文字幕在线资源 | 人人射| 91网在线看 | 天天干,天天射,天天操,天天摸 | 一本一道久久a久久综合蜜桃 | 欧美一区二区在线免费观看 | 婷婷爱五月天 | 成人在线视频你懂的 | 精品视频 | 亚洲精品白浆高清久久久久久 | 免费成人av在线看 | 天天操天天射天天插 | 天天干天天摸天天操 | 成年人免费观看在线视频 | 少妇av网| 色婷婷天天干 | 日韩一区二区三区在线观看 | 中文字幕av一区二区三区四区 | 久久成人免费 | 久久久午夜精品理论片中文字幕 | 国产免费不卡av | 亚州精品一二三区 | 久久久国产毛片 | 亚洲综合在线一区二区三区 | av黄色在线观看 | 国产一级二级av | 国产日韩中文字幕在线 | 国产精品手机在线观看 | 一级久久精品 | 精品国产视频一区 | 黄色成年网站 | 日韩午夜电影院 | 婷婷色六月天 | 玖玖爱国产在线 | 国产一级淫片免费看 | 国产成人一区二 | 久久久久久久综合色一本 | 久草网站在线 | 天天做日日做天天爽视频免费 | 91成人午夜 | 日韩大片免费观看 | 国产精品视频久久 | 日日摸日日添日日躁av | 97人人人| 欧美日韩视频在线观看一区二区 | 2022久久国产露脸精品国产 | 精品国产自在精品国产精野外直播 | 五月婷婷一区二区三区 | 黄网站免费大全入口 | 国产日韩精品在线 | 伊人国产在线观看 | 免费观看午夜视频 | 国产精品一区免费看8c0m | 久久99热精品这里久久精品 | 久久久久久久综合色一本 | 人人干狠狠干 | 五月天综合色 | 日本精品一区二区 | 亚洲精品国内 | 成人黄色电影免费观看 | 绯色av一区| 一级成人网 | 日韩簧片在线观看 | 国产精品99久久久久人中文网介绍 | 国产日产精品一区二区三区四区 | av在线播放观看 | 天堂视频中文在线 | 久草视频在线播放 | 成人h动漫在线看 | 中文字幕中文字幕中文字幕 | 亚洲欧美综合精品久久成人 | 成人黄色电影在线 | 91在线小视频 | 青青色影院 | 久久久久久久久久福利 | 国产亚洲精品成人av久久影院 | 亚洲狠狠操 | 九九久| 亚洲资源一区 | 色视频在线看 | 在线观看 亚洲 | 久久久高清一区二区三区 | www国产精品com | 日韩在线观看网址 | av高清免费| 久久国产精品一二三区 | 美女网站在线免费观看 | 日本中文字幕在线播放 | 亚洲综合小说电影qvod | av中文在线观看 | 国产一级视频在线 | 国产小视频免费观看 | www黄色com | 国产私拍在线 | 93久久精品日日躁夜夜躁欧美 | 亚洲国产精品久久久久久 | 粉嫩av一区二区三区入口 | 久久精品免费播放 | 国产v在线 | 99久久精品免费看 | 天堂成人在线 | 91精品国产欧美一区二区成人 | 91成人黄色| 国产精品手机在线观看 | 午夜的福利 | 国产aaa免费视频 | 毛片二区| 精品久久国产精品 | 超碰人人草人人 | 欧美男同视频网站 | 人人玩人人爽 | 国产精品男女啪啪 | 欧美日韩国产精品一区二区 | 国产a国产 | 欧美在线观看小视频 | 天天综合操 | 国产手机免费视频 | 一本色道久久精品 | 青青啪| 超碰97免费在线 | 男女激情麻豆 | 久久黄色影院 | 在线成人国产 | 婷婷久久亚洲 | 在线午夜| 久久久久国产一区二区三区四区 | 中文在线字幕观看电影 | 91精品国产91 | 久久久久久在线观看 | 精品在线播放视频 | 人人看人人做人人澡 | 久久精品草 | 精品国产欧美一区二区 | 91人人网 | 精品一区二区在线免费观看 | 久久久久久美女 | 久操操| 久久久免费高清视频 | 国产精品大全 | 丁香婷婷综合色啪 | 久久中文字幕在线视频 | 午夜精品久久久久久久99水蜜桃 | 色综合www | 五月亚洲 | 亚洲精品国产精品国自产观看浪潮 | 天天射天天射 | 黄色精品视频 | 免费成人av电影 | 国产美女网| 亚洲区另类春色综合小说 | 国产精品s色 | 国产1区2| 色av男人的天堂免费在线 | 久久久精品欧美 | 亚洲成人免费在线观看 | 欧美精品在线一区 | 久热这里有精品 | 精品久久视频 | 精品电影一区二区 | 91av在线免费观看 | 一区二区视频电影在线观看 | 日韩在线视频网站 | av在线等 | 天天射天天干天天插 | 久久久国产精品人人片99精片欧美一 | 国产精品video爽爽爽爽 | 99操视频| 国产二区免费视频 | 天天干中文字幕 | 国产精品美女久久久久久久 | 美女在线观看网站 | 国产精品精| 色婷婷在线视频 | 日韩av免费在线电影 | 国产我不卡 | 久久免费美女视频 | 日韩网站在线 | 中文字幕视频免费观看 | 日本一区二区三区视频在线播放 | 国产xxxx | 999久久久久久久久久久 | 久久免费视频1 | 国产视频一区二区在线播放 | 国产99视频在线观看 | 亚洲精品在线视频网站 | 国产一区二区在线观看视频 | 五月天婷亚洲天综合网精品偷 | 亚洲码国产日韩欧美高潮在线播放 | 日韩试看| 久久综合狠狠综合 | 国产麻豆果冻传媒在线观看 | 97超碰在线免费 | 奇米7777狠狠狠琪琪视频 | 四虎国产精品成人免费4hu | 日韩一区二区三 | 国产精品一区二区久久精品爱涩 | 992tv在线| 久久久久www| 久久久久久蜜桃一区二区 | 欧美黑人巨大xxxxx | 免费成人短视频 | 91精品久久久久久久久 | 国产网站在线免费观看 | 国产精品国产三级国产aⅴ无密码 | 久久黄网站 | 中文字幕第一页在线播放 | 亚洲aⅴ乱码精品成人区 | 日韩av影片在线观看 | 成人一区二区三区在线 | 日韩系列在线观看 | 激情影音先锋 | 久久久久久久久久久久国产精品 | 欧美a级成人淫片免费看 | 国产免费影院 | 91av亚洲| 99热九九这里只有精品10 | 国产精品视频专区 | 国内视频在线 | 国产精品a久久久久 | 97人人模人人爽人人喊网 | 欧美综合在线视频 | 色噜噜日韩精品一区二区三区视频 | 看黄色.com | 亚洲精品中文字幕在线 | 2023亚洲精品国偷拍自产在线 | 五月婷婷综合在线 | 日韩欧美网址 | 欧美91精品久久久久国产性生爱 | 欧美日韩久久一区 | 国产高清精 | 婷婷综合av | 国产在线观看h | 超碰在线观看av.com | 久久久婷 | 国产精品日韩精品 | 久久国产经典视频 | 国产精品久久久久久久午夜 | 999热视频| 在线视频日韩精品 | 五月综合激情网 | 欧美在线18| 手机在线观看国产精品 | 日韩免费二区 | 天堂va在线观看 | 日韩电影一区二区三区在线观看 | 亚洲电影久久 | 国产免费亚洲 | 91av大全| 日本护士三级少妇三级999 | 亚洲色综合 | 久久精品国产免费看久久精品 | 久久精品国产成人精品 | 国产视频久久久久 | 国产a级片免费观看 | 日韩三级视频在线看 | 国产在线观看免费观看 | 在线观看免费中文字幕 | 国产高清av免费在线观看 | 亚洲aⅴ乱码精品成人区 | 国产午夜激情视频 | 日韩美女av在线 | 99精品在线播放 | 天天射综合网站 | 久久精品韩国 | 一区二区中文字幕在线 | 色婷婷丁香 | 日韩三级av | 亚州精品在线视频 | 久久小视频 | 黄色www| 99视频这里有精品 | 亚洲精品456在线播放乱码 | 日韩视频一区二区在线观看 | 日本中文字幕久久 | 特级免费毛片 | 精品一区免费 | 日韩成片| 手机在线永久免费观看av片 | 国产香蕉在线 | 999久久久久久久久 69av视频在线观看 | 欧美精品九九99久久 | www免费视频com━ | 久久激情婷婷 | 一区 二区电影免费在线观看 | 97成人精品视频在线播放 | av三级在线看 | 九九九热精品免费视频观看网站 | 久久国产成人午夜av影院潦草 | 久久免费99精品久久久久久 | 久久久不卡影院 | 亚洲视频网站在线观看 | 亚洲精品1区2区3区 超碰成人网 | 毛片永久免费 | 2019中文字幕第一页 | 中文字幕在线观看免费高清电影 | 国产91免费在线观看 | 天天操天天添天天吹 | 成年人免费看 | 久久国产99 | 日本中文乱码卡一卡二新区 | 久久五月婷婷综合 | 免费视频三区 | 波多野结衣在线播放视频 | 亚洲伦理电影在线 | 国产视频久 | 婷婷干五月 | 亚洲人在线视频 | 久久99精品国产99久久6尤 | 久久久受www免费人成 | 视频国产在线 | 日韩在线二区 | 一区二区男女 | 一级免费黄视频 | 91香蕉视频污在线 | 日韩av在线看 | 久久黄色免费 | h动漫中文字幕 | 在线国产一区二区 | 久久免费的精品国产v∧ | 国产精品mv在线观看 | 欧美成人免费在线 | 特级西西444www大精品视频免费看 | av在线免费在线观看 | 伊人宗合网 | 五月天丁香 | 久久这里只有精品视频99 | 国产精品女同一区二区三区久久夜 | 国产精品 中文字幕 亚洲 欧美 | 在线观看黄a | 久久久久久久久久久网 | av网站免费看| 亚洲一区二区精品视频 | 久久久免费av | 国产理论在线 | 精品国产1区2区3区 国产欧美精品在线观看 | 狠狠操精品 | 日韩视频免费播放 | 国产亚州av | 91亚洲精品国偷拍自产在线观看 | 在线天堂亚洲 | 亚洲国产成人精品在线观看 | 91免费视频网站在线观看 | 91在线观看黄 | 亚洲成成品网站 | 国产综合小视频 | 亚洲精品一区二区18漫画 | 在线播放一区二区三区 | a级国产乱理论片在线观看 特级毛片在线观看 | 国产精品精品国产色婷婷 | 国产精品久久网站 | 91精品夜夜 | 久久99深爱久久99精品 | 四虎永久免费网站 | 91午夜精品 | 日本亚洲国产 | 亚洲精品国产自产拍在线观看 | 日韩av专区| 亚洲综合色视频在线观看 | 久久久久久久久久久黄色 | 久久久久免费 | 久久精品成人欧美大片古装 | 色婷婷88av视频一二三区 | 日韩视频中文字幕 | 国产露脸91国语对白 | 成人av资源网 | 91精品在线看 | 国模视频一区二区三区 | 国产人在线成免费视频 | 9草在线 | 黄色小说视频在线 | 色婷婷亚洲精品 | 午夜久久久久久久久久久 | 久久久精品久久 | av黄在线播放 | 婷婷久久五月 | 精品国产一区二区三区久久久久久 | 成年人免费观看在线视频 | 丝袜一区在线 | 男女日麻批 | 国产中文字幕视频在线 | 中文字幕中文中文字幕 | 黄色精品一区二区 | 亚洲三级影院 | 亚洲欧美乱综合图片区小说区 | 亚洲男女精品 | 九九视频免费观看视频精品 | 成人精品国产免费网站 | 人人爽人人爽人人片 | 色视频在线免费观看 | 天无日天天操天天干 | 国产精品美女久久久久久网站 | 九九热在线视频免费观看 | 亚洲涩涩网 | 福利网在线 | 中文av日韩 | 91免费观看国产 | 久久超| 久久天堂精品视频 | 99精品视频99| 成人啊 v | 成人小视频在线 | 国产一级免费片 | 亚洲国产一二三 | 国产精品123| 日韩色综合网 | 在线观看亚洲成人 | 免费h精品视频在线播放 | 久久成人免费视频 | 五月综合久久 | 天天综合婷婷 | 在线亚洲高清视频 | 最近中文字幕免费观看 | 国产一区欧美日韩 | 国产精品99爱| 97视频在线免费 | 中文在线www | 欧美黄色成人 | 久久精品婷婷 | 狠狠躁天天躁综合网 | 国产免费激情久久 | 久久香蕉影视 | 午夜三级福利 | 999在线观看视频 | 国产一级h| 日韩av电影一区 | 国产手机视频在线 | 国产视频97| 91成版人在线观看入口 | 亚洲电影成人 | 天天拍天天爽 | 91高清免费观看 | 亚洲永久精品在线观看 | 午夜私人影院 | 中文字幕丝袜美腿 | 精品在线观看一区二区三区 | 久热免费在线观看 | 免费在线国产精品 | 精品国产一区二区三区不卡 | 色婷婷精品大在线视频 | 亚洲国产一区在线观看 | 久久久国产一区二区 | 欧美精品日韩 | 国产玖玖在线 | 久章草在线 | 成人久久精品视频 | 天天色视频| 久久五月天综合 | 久久人人做| 国产精品一区二区久久国产 | 国产第一页在线观看 | 一二区精品 | 99在线看| 亚洲欧美乱综合图片区小说区 | 免费看一级黄色 | 国产精品久久久精品 | 最新国产精品久久精品 | 午夜av剧场| 高潮毛片无遮挡高清免费 | 97超碰国产精品 | 91九色国产视频 | 97色婷婷| 五月天久久综合网 | 成人免费网视频 | 久久99精品视频 | 免费v片| 91自拍成人 | 欧美色图88 | 亚洲精品一区二区三区四区高清 | 在线精品视频在线观看高清 | 婷婷 综合 色 | 亚洲丝袜一区二区 | 九九热在线精品 | 91精品视频在线观看免费 | 99久久久久国产精品免费 | 亚洲网久久| 一区二区视频在线播放 | 亚洲精品美女免费 | 精品久久免费 | 久久综合九色 | 黄色小视频在线观看免费 | 日韩精品一区二区三区第95 | 四虎精品成人免费网站 | 国产精品 中文在线 | 在线观看韩国av | 久久久 精品 | av免费在线观看1 | 日韩精品视频网站 | 成人9ⅰ免费影视网站 | 国产在线观看污片 | av网站在线观看免费 | 99精彩视频在线观看免费 | 久久国产精品久久精品国产演员表 | 91国内在线 | 很黄很黄的网站免费的 | 偷拍区另类综合在线 | 黄色资源在线 | 中文国产在线观看 | 97网站| 伊人天堂久久 | 91视频一8mav| 国产精品成人久久久久久久 | 国产精品国产三级国产不产一地 | 在线免费黄色毛片 | 婷婷六月天天 | 亚洲精品66 | 国产一区二区三区免费在线观看 | 欧美福利片在线观看 | 国产不卡精品视频 | 五月婷婷久 | 手机av永久免费 | 欧美日韩一区二区在线 | 一级欧美日韩 | 五月婷婷导航 | www.久久婷婷 | 欧美一区二区日韩一区二区 | 在线91视频| 黄色tv视频 | 香蕉视频国产在线观看 | 亚洲国产精彩中文乱码av | 香蕉视频免费看 | 欧美aa在线 | 精品在线观看视频 | 免费看十八岁美女 | 五月天婷亚洲天综合网精品偷 | 精品久久99 | 亚洲涩综合| 99精彩视频| 欧美污污网站 | 天天干一干 | 视频在线99 | 精品久久久久久久久中文字幕 | 婷婷色婷婷 | 免费色视频在线 | 中文字幕日本在线 | 久久久91精品国产一区二区精品 | 久久精品国产精品亚洲 | 少妇bbbb| 亚洲成人av影片 | 亚洲国内精品在线 | 少妇按摩av | 亚洲波多野结衣 | 黄色a级片在线观看 | 激情喷水 | 欧美一区二区三区在线观看 | 欧美夫妻性生活电影 | 国产手机视频在线观看 | 国产女v资源在线观看 | 久久99国产综合精品免费 | 国产精品久久久久免费 | 亚洲波多野结衣 | 久久电影色 | 91桃色在线观看视频 | 最新av网址在线观看 | 国产成人777777 | 久久精品99北条麻妃 | 中文字幕有码在线观看 | 人人插人人艹 | 久久99热这里只有精品国产 | 中文字幕 国产 一区 | 日精品在线观看 | 日韩高清久久 | 久久噜噜少妇网站 | 啪啪av在线 | 色91在线 | 综合色中色 | 日本在线观看一区二区 | 久久久鲁 | 欧美亚洲一级片 | 欧美综合在线视频 | 国产最新精品视频 | 808电影 | www色,com| 日韩精品一区二区三区免费视频观看 | 中文字幕在线观看完整版 | 日韩在线高清视频 | 久久毛片高清国产 | 国产成在线观看免费视频 | 看片网站黄 | 午夜性生活 | 久久夜靖品| 永久免费的啪啪网站免费观看浪潮 | 日日夜夜网 | 少妇bbw搡bbbb搡bbb| 看毛片网站 | 国产精品亚洲片在线播放 | 91av在线视频播放 | 国产成人精品不卡 | 亚洲欧美国产日韩在线观看 |