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

歡迎訪問 生活随笔!

生活随笔

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

linux

Linux用户空间线程管理介绍之二:创建线程堆栈

發布時間:2023/12/20 linux 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux用户空间线程管理介绍之二:创建线程堆栈 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:http://www.longene.org/forum/viewtopic.php?f=17&t=429&sid=babec6ba82dd65e29c5fafe03e4d89c0


前面已經介紹過了線程結構pthread,下面就需要來看看在創建線程過程中,如何生成這個結構的。Allocate_stack函數位于nptl/allocatestack.c中:

代碼:?全選
308? ?static int
309? ?allocate_stack (const struct pthread_attr *attr, struct pthread **pdp,
310? ?? ?? ?ALLOCATE_STACK_PARMS)
311? ?{
312? ?? struct pthread *pd;
313? ?? size_t size;
314? ?? size_t pagesize_m1 = __getpagesize () - 1;
315? ?? void *stacktop;
316? ?
317? ?? assert (attr != NULL);
318? ?? assert (powerof2 (pagesize_m1 + 1));
319? ?? assert (TCB_ALIGNMENT >= STACK_ALIGN);
320? ?
321? ?? /* Get the stack size from the attribute if it is set.? Otherwise we
322? ?? ? ?use the default we determined at start time.? */
323? ?? size = attr->stacksize ?: __default_stacksize;
324? ?
325? ?? /* Get memory for the stack.? */
326? ?? if (__builtin_expect (attr->flags & ATTR_FLAG_STACKADDR, 0))
327? ?? ? {
.........
410? ?? ? }
411? ?? else
412? ?? ? {

用戶程序在調用pthread_create時,可以傳進一個參數pthread_attr,這個參數可以指定堆棧地址、大小等參數,323行的意思就是說在指定堆棧大小的情況下,采用指定大小,否則采用默認大小。__default_stacksize可以有ulimit -s查看,在一般系統中,這個值為8M。在通常情況下,應用程序是不指定堆棧大小的。

326行開始,分兩種情況處理堆棧地址是否由pthread_attr中指定,在通常情況下,這個地址也是不指定的,因此,直接看412行開始的else部分:
代碼:?全選
412? ?? ? {
413? ?? ? ? /* Allocate some anonymous memory.? If possible use the cache.? */
414? ?? ? ? size_t guardsize;
415? ?? ? ? size_t reqsize;
416? ?? ? ? void *mem;
417? ?? ? ? const int prot = (PROT_READ | PROT_WRITE
418? ?? ?? ?? ?| ((GL(dl_stack_flags) & PF_X) ? PROT_EXEC : 0));
419? ?
420? ?#if COLORING_INCREMENT != 0
421? ?? ? ? /* Add one more page for stack coloring.? Don't do it for stacks
422? ?? ? with 16 times pagesize or larger.? This might just cause
423? ?? ? unnecessary misalignment.? */
424? ?? ? ? if (size <= 16 * pagesize_m1)
425? ?? ?size += pagesize_m1 + 1;
426? ?#endif
427? ?
428? ?? ? ? /* Adjust the stack size for alignment.? */
429? ?? ? ? size &= ~__static_tls_align_m1;
430? ?? ? ? assert (size != 0);
431? ?
432? ?? ? ? /* Make sure the size of the stack is enough for the guard and
433? ?? ? eventually the thread descriptor.? */
434? ?? ? ? guardsize = (attr->guardsize + pagesize_m1) & ~pagesize_m1;
435? ?? ? ? if (__builtin_expect (size < ((guardsize + __static_tls_size
436? ?? ?? ?? ?? ?? ? ?+ MINIMAL_REST_STACK + pagesize_m1)
437? ?? ?? ?? ?? ?? ? & ~pagesize_m1),
438? ?? ?? ?? ?? ? 0))
439? ?? ?/* The stack is too small (or the guard too large).? */
440? ?? ?return EINVAL;
441? ?
442? ?? ? ? /* Try to get a stack from the cache.? */
443? ?? ? ? reqsize = size;
444? ?? ? ? pd = get_cached_stack (&size, &mem);
445? ?? ? ? if (pd == NULL)
446? ?? ?{
447? ?? ?? /* To avoid aliasing effects on a larger scale than pages we
448? ?? ?? ? ?adjust the allocated stack size if necessary.? This way
449? ?? ?? ? ?allocations directly following each other will not have
450? ?? ?? ? ?aliasing problems.? */
451? ?#if MULTI_PAGE_ALIASING != 0
452? ?? ?? if ((size % MULTI_PAGE_ALIASING) == 0)
453? ?? ?? ? size += pagesize_m1 + 1;
454? ?#endif
455? ?
456? ?? ?? mem = mmap (NULL, size, prot,
457? ?? ?? ?? ? ? MAP_PRIVATE | MAP_ANONYMOUS | ARCH_MAP_FLAGS, -1, 0);
458? ?
459? ?? ?? if (__builtin_expect (mem == MAP_FAILED, 0))
460? ?? ?? ? {
461? ?#ifdef ARCH_RETRY_MMAP
462? ?? ?? ? ? mem = ARCH_RETRY_MMAP (size);
463? ?? ?? ? ? if (__builtin_expect (mem == MAP_FAILED, 0))
464? ?#endif
465? ?? ?? ?return errno;
466? ?? ?? ? }
467? ?
468? ?? ?? /* SIZE is guaranteed to be greater than zero.
469? ?? ?? ? ?So we can never get a null pointer back from mmap.? */
470? ?? ?? assert (mem != NULL);
471? ?
472? ?#if COLORING_INCREMENT != 0
473? ?? ?? /* Atomically increment NCREATED.? */
474? ?? ?? unsigned int ncreated = atomic_increment_val (&nptl_ncreated);
475? ?
476? ?? ?? /* We chose the offset for coloring by incrementing it for
477? ?? ?? ? ?every new thread by a fixed amount.? The offset used
478? ?? ?? ? ?module the page size.? Even if coloring would be better
479? ?? ?? ? ?relative to higher alignment values it makes no sense to
480? ?? ?? ? ?do it since the mmap() interface does not allow us to
481? ?? ?? ? ?specify any alignment for the returned memory block.? */
482? ?? ?? size_t coloring = (ncreated * COLORING_INCREMENT) & pagesize_m1;
483? ?
484? ?? ?? /* Make sure the coloring offsets does not disturb the alignment
485? ?? ?? ? ?of the TCB and static TLS block.? */
486? ?? ?? if (__builtin_expect ((coloring & __static_tls_align_m1) != 0, 0))
487? ?? ?? ? coloring = (((coloring + __static_tls_align_m1)
488? ?? ?? ?? ? & ~(__static_tls_align_m1))
489? ?? ?? ?? ?& ~pagesize_m1);
490? ?#else
491? ?? ?? /* Unless specified we do not make any adjustments.? */
492? ?# define coloring 0
493? ?#endif

417行是設定堆棧段的權限,在某些情況下,堆棧段內可有存放一些臨時的代碼,這樣就需要有可執行權限,一般情況下,是可讀寫的權限。
設定完堆棧段的權限后,就開始處理堆棧段的大小,主要是一些堆棧大小、對齊的檢查,還有Guard頁的檢查。
在進行堆棧的映射之前,還需要通過get_cached_stack函數,檢查系統中是否存在緩沖著的堆棧,在我們的情景中,我們假定是第一次創建線程,就不存在緩沖的堆棧,這個函數留待后面介紹。
這些檢查都完成后,就需要通過mmap來映射堆棧了。這是一個匿名映射,相當于在用戶空間直接分配內存,有點像brk系統調用,用來分配大塊的內存。
后面一段是對coloring的設定,暫時認為這段代碼沒有起作用吧。

這些完成后,就開始ptherad結構的設定了:
代碼:?全選
494? ?
495? ?? ?? /* Place the thread descriptor at the end of the stack.? */
496? ?#if TLS_TCB_AT_TP
497? ?? ?? pd = (struct pthread *) ((char *) mem + size - coloring) - 1;
498? ?#elif TLS_DTV_AT_TP
499? ?? ?? pd = (struct pthread *) ((((uintptr_t) mem + size - coloring
500? ?? ?? ?? ?? ?? ? - __static_tls_size)
501? ?? ?? ?? ?? ?? ? & ~__static_tls_align_m1)
502? ?? ?? ?? ?? ?? ?- TLS_PRE_TCB_SIZE);
503? ?#endif
504? ?
505? ?? ?? /* Remember the stack-related values.? */
506? ?? ?? pd->stackblock = mem;
507? ?? ?? pd->stackblock_size = size;
508? ?
509? ?? ?? /* We allocated the first block thread-specific data array.
510? ?? ?? ? ?This address will not change for the lifetime of this
511? ?? ?? ? ?descriptor.? */
512? ?? ?? pd->specific[0] = pd->specific_1stblock;
513? ?
514? ?? ?? /* This is at least the second thread.? */
515? ?? ?? pd->header.multiple_threads = 1;
516? ?#ifndef TLS_MULTIPLE_THREADS_IN_TCB
517? ?? ?? __pthread_multiple_threads = *__libc_multiple_threads_ptr = 1;
518? ?#endif
519? ?
520? ?#ifndef __ASSUME_PRIVATE_FUTEX
521? ?? ?? /* The thread must know when private futexes are supported.? */
522? ?? ?? pd->header.private_futex = THREAD_GETMEM (THREAD_SELF,
523? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? header.private_futex);
524? ?#endif
525? ?
526? ?#ifdef NEED_DL_SYSINFO
527? ?? ?? /* Copy the sysinfo value from the parent.? */
528? ?? ?? THREAD_SYSINFO(pd) = THREAD_SELF_SYSINFO;
529? ?#endif
530? ?
531? ?? ?? /* The process ID is also the same as that of the caller.? */
532? ?? ?? pd->pid = THREAD_GETMEM (THREAD_SELF, pid);
533? ?
534? ?? ?? /* Allocate the DTV for this thread.? */
535? ?? ?? if (_dl_allocate_tls (TLS_TPADJ (pd)) == NULL)
536? ?? ?? ? {
537? ?? ?? ? ? /* Something went wrong.? */
538? ?? ?? ? ? assert (errno == ENOMEM);
539? ?
540? ?? ?? ? ? /* Free the stack memory we just allocated.? */
541? ?? ?? ? ? (void) munmap (mem, size);
542? ?
543? ?? ?? ? ? return EAGAIN;
544? ?? ?? ? }
545? ?
546? ?
547? ?? ?? /* Prepare to modify global data.? */
548? ?? ?? lll_lock (stack_cache_lock, LLL_PRIVATE);
549? ?
550? ?? ?? /* And add to the list of stacks in use.? */
551? ?? ?? list_add (&pd->list, &stack_used);
552? ?
553? ?? ?? lll_unlock (stack_cache_lock, LLL_PRIVATE);
554? ?
555? ?
556? ?? ?? /* There might have been a race.? Another thread might have
557? ?? ?? ? ?caused the stacks to get exec permission while this new
558? ?? ?? ? ?stack was prepared.? Detect if this was possible and
559? ?? ?? ? ?change the permission if necessary.? */
560? ?? ?? if (__builtin_expect ((GL(dl_stack_flags) & PF_X) != 0
561? ?? ?? ?? ?? ?&& (prot & PROT_EXEC) == 0, 0))
562? ?? ?? ? {
563? ?? ?? ? ? int err = change_stack_perm (pd
564? ?#ifdef NEED_SEPARATE_REGISTER_STACK
565? ?? ?? ?? ?? ?? ?? ?, ~pagesize_m1
566? ?#endif
567? ?? ?? ?? ?? ?? ?? ?);
568? ?? ?? ? ? if (err != 0)
569? ?? ?? ?{
570? ?? ?? ?? /* Free the stack memory we just allocated.? */
571? ?? ?? ?? (void) munmap (mem, size);
572? ?
573? ?? ?? ?? return err;
574? ?? ?? ?}
575? ?? ?? ? }
576? ?
577? ?
578? ?? ?? /* Note that all of the stack and the thread descriptor is
579? ?? ?? ? ?zeroed.? This means we do not have to initialize fields
580? ?? ?? ? ?with initial value zero.? This is specifically true for
581? ?? ?? ? ?the 'tid' field which is always set back to zero once the
582? ?? ?? ? ?stack is not used anymore and for the 'guardsize' field
583? ?? ?? ? ?which will be read next.? */
584? ?? ?}

前面說到過,在我所觀察的系統中,TLS_TCB_AT_TP總是被定義,這意味著pthread位于剛才申請的堆棧的頂端,見497行,這里的-1,是減去一個pthread結構的大小。
505~532行,開始設置新線程的pthread結構,堆棧信息設置為剛剛申請的堆棧,并將pthread結構設置成為多線程狀態,futex、sysinfo、pid等則從父線程繼承。

接下來是調用_dl_allocate_tls來設置TLS,這是一個相當重要的過程,如果不能設置TLS,程序很有可能無法運行,目前兼容內核中多線程問題很多時候與此相關。
先看宏TLS_TPADJ,它就定義在nptl/allocatestack.c中
#define TLS_TPADJ (pd) (pd)
也就是pthread結構本身。再看_dl_allocate_tls(),位于elf/dl-tls.c中:
代碼:?全選
459 void *
460 internal_function
461 _dl_allocate_tls (void *mem)
462 {
463? ?return _dl_allocate_tls_init (mem == NULL
464? ? ? ? ? ? ? ? ?? _dl_allocate_tls_storage ()
465? ? ? ? ? ? ? ? ?: allocate_dtv (mem));
466 }
在我們這個情景中,傳進去的mem值為pthread結構地址,不為NULL,因此調用到了allocate_dtv函數,也是位于elf/dl-tls.c中:
289 static void *
290 internal_function
291 allocate_dtv (void *result)
292 {
293? ?dtv_t *dtv;
294? ?size_t dtv_length;
295?
296? ?/* We allocate a few more elements in the dtv than are needed for the
297? ? ? initial set of modules.? This should avoid in most cases expansions
298? ? ? of the dtv.? */
299? ?dtv_length = GL(dl_tls_max_dtv_idx) + DTV_SURPLUS;
300? ?dtv = calloc (dtv_length + 2, sizeof (dtv_t));
301? ?if (dtv != NULL)
302? ? ?{
303? ? ? ?/* This is the initial length of the dtv.? */
304? ? ? ?dtv[0].counter = dtv_length;
305?
306? ? ? ?/* The rest of the dtv (including the generation counter) is
307? ? ? Initialize with zero to indicate nothing there.? */
308?
309? ? ? ?/* Add the dtv to the thread data structures.? */
310? ? ? ?INSTALL_DTV (result, dtv);
311? ? ?}
312? ?else
313? ? ?result = NULL;
314?
315? ?return result;
316 }

這個函數比較簡單,就是申請一個dtv的數組,然后裝載到pthread結構中,有趣的是INSTALL_DTV這個宏,定義在nptl/sysdep/i386/tls.h中:
代碼:?全選
# define INSTALL_DTV(descr, dtvp) \
? ((tcbhead_t *) (descr))->dtv = (dtvp) + 1
它沒有直接把申請到的dtv數組的首地址裝載到pthread結構中,而是將其第二個元素的地址裝入,或許它的意思是,第一個元素師存放dtv_length,沒有必要看到吧。
Allocate_dtv完成后,需要調用_dl_allocate_tls_init對TLS進行初始化:
代碼:?全選
377 void *
378 internal_function
379 _dl_allocate_tls_init (void *result)
380 {
381? ?if (result == NULL)
382? ? ?/* The memory allocation failed.? */
383? ? ?return NULL;
384?
385? ?dtv_t *dtv = GET_DTV (result);
386? ?struct dtv_slotinfo_list *listp;
387? ?size_t total = 0;
388? ?size_t maxgen = 0;
389?
390? ?/* We have to prepare the dtv for all currently loaded modules using
391? ? ? TLS.? For those which are dynamically loaded we add the values
392? ? ? indicating deferred allocation.? */
393? ?listp = GL(dl_tls_dtv_slotinfo_list);
394? ?while (1)
395? ? ?{
396? ? ? ?size_t cnt;
397?
398? ? ? ?for (cnt = total == 0 ? 1 : 0; cnt < listp->len; ++cnt)
399? ? ?{
400? ? ? ?struct link_map *map;
401? ? ? ?void *dest;
402?
403? ? ? ?/* Check for the total number of used slots.? */
404? ? ? ?if (total + cnt > GL(dl_tls_max_dtv_idx))
405? ? ? ? ?break;
406?
407? ? ? ?map = listp->slotinfo[cnt].map;
408? ? ? ?if (map == NULL)
409? ? ? ? ?/* Unused entry.? */
410? ? ? ? ?continue;
411?
412? ? ? ?/* Keep track of the maximum generation number.? This might
413? ? ? ? ? not be the generation counter.? */
414? ? ? ?maxgen = MAX (maxgen, listp->slotinfo[cnt].gen);
415?
416? ? ? ?if (map->l_tls_offset == NO_TLS_OFFSET)
417? ? ? ? ?{
418? ? ? ? ? ?/* For dynamically loaded modules we simply store
419? ? ? ? ? the value indicating deferred allocation.? */
420? ? ? ? ? ?dtv[map->l_tls_modid].pointer.val = TLS_DTV_UNALLOCATED;
421? ? ? ? ? ?dtv[map->l_tls_modid].pointer.is_static = false;
422? ? ? ? ? ?continue;
423? ? ? ? ?}
424?
425? ? ? ?assert (map->l_tls_modid == cnt);
426? ? ? ?assert (map->l_tls_blocksize >= map->l_tls_initimage_size);
427 #if TLS_TCB_AT_TP
428? ? ? ?assert ((size_t) map->l_tls_offset >= map->l_tls_blocksize);
429? ? ? ?dest = (char *) result - map->l_tls_offset;
430 #elif TLS_DTV_AT_TP
431? ? ? ?dest = (char *) result + map->l_tls_offset;
432 #else
433 # error "Either TLS_TCB_AT_TP or TLS_DTV_AT_TP must be defined"
434 #endif
435?
436? ? ? ?/* Copy the initialization image and clear the BSS part.? */
437? ? ? ?dtv[map->l_tls_modid].pointer.val = dest;
438? ? ? ?dtv[map->l_tls_modid].pointer.is_static = true;
439? ? ? ?memset (__mempcpy (dest, map->l_tls_initimage,
440? ? ? ? ? ? ? ? ? map->l_tls_initimage_size), '\0',
441? ? ? ? ? ?map->l_tls_blocksize - map->l_tls_initimage_size);
442? ? ?}
443?
444? ? ? ?total += cnt;
445? ? ? ?if (total >= GL(dl_tls_max_dtv_idx))
446? ? ?break;
447?
448? ? ? ?listp = listp->next;
449? ? ? ?assert (listp != NULL);
450? ? ?}
451?
452? ?/* The DTV version is up-to-date now.? */
453? ?dtv[0].counter = maxgen;
454?
455? ?return result;
456 }

這里是一大堆和連接有關的代碼,這里就不做解釋了,如果以后有時間,或許可以多看看連接相關的代碼,梳理一下,連接過程到底是如何完成的。
回到allocate_stack函數中,551行是將此結構連接到stack_used隊列中。當進程退出時,將調用到_deallocate_stack,此時,此結構將從stack_used隊列脫出,加入到stack_cached中,等待下一個pthread_create調用。
接下來一段和可執行堆棧相關,不是我們所關心的,忽略。

代碼:?全選
585? ?
586? ?? ? ? /* Create or resize the guard area if necessary.? */
587? ?? ? ? if (__builtin_expect (guardsize > pd->guardsize, 0))
588? ?? ?{
589? ?#ifdef NEED_SEPARATE_REGISTER_STACK
590? ?? ?? char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1);
591? ?#elif _STACK_GROWS_DOWN
592? ?? ?? char *guard = mem;
593? ?# elif _STACK_GROWS_UP
594? ?? ?? char *guard = (char *) (((uintptr_t) pd - guardsize) & ~pagesize_m1);
595? ?#endif
596? ?? ?? if (mprotect (guard, guardsize, PROT_NONE) != 0)
597? ?? ?? ? {
598? ?? ?? ? ? int err;
599? ?? ?? ? mprot_error:
600? ?? ?? ? ? err = errno;
601? ?
602? ?? ?? ? ? lll_lock (stack_cache_lock, LLL_PRIVATE);
603? ?
604? ?? ?? ? ? /* Remove the thread from the list.? */
605? ?? ?? ? ? list_del (&pd->list);
606? ?
607? ?? ?? ? ? lll_unlock (stack_cache_lock, LLL_PRIVATE);
608? ?
609? ?? ?? ? ? /* Get rid of the TLS block we allocated.? */
610? ?? ?? ? ? _dl_deallocate_tls (TLS_TPADJ (pd), false);
611? ?
612? ?? ?? ? ? /* Free the stack memory regardless of whether the size
613? ?? ?? ? of the cache is over the limit or not.? If this piece
614? ?? ?? ? of memory caused problems we better do not use it
615? ?? ?? ? anymore.? Uh, and we ignore possible errors.? There
616? ?? ?? ? is nothing we could do.? */
617? ?? ?? ? ? (void) munmap (mem, size);
618? ?
619? ?? ?? ? ? return err;
620? ?? ?? ? }
621? ?
622? ?? ?? pd->guardsize = guardsize;
623? ?? ?}
624? ?? ? ? else if (__builtin_expect (pd->guardsize - guardsize > size - reqsize,
625? ?? ?? ?? ?? ? 0))
626? ?? ?{
627? ?? ?? /* The old guard area is too large.? */
628? ?
629? ?#ifdef NEED_SEPARATE_REGISTER_STACK
630? ?? ?? char *guard = mem + (((size - guardsize) / 2) & ~pagesize_m1);
631? ?? ?? char *oldguard = mem + (((size - pd->guardsize) / 2) & ~pagesize_m1);
632? ?
633? ?? ?? if (oldguard < guard
634? ?? ?? ? ? && mprotect (oldguard, guard - oldguard, prot) != 0)
635? ?? ?? ? goto mprot_error;
636? ?
637? ?? ?? if (mprotect (guard + guardsize,
638? ?? ?? ?? ?oldguard + pd->guardsize - guard - guardsize,
639? ?? ?? ?? ?prot) != 0)
640? ?? ?? ? goto mprot_error;
641? ?#elif _STACK_GROWS_DOWN
642? ?? ?? if (mprotect ((char *) mem + guardsize, pd->guardsize - guardsize,
643? ?? ?? ?? ?prot) != 0)
644? ?? ?? ? goto mprot_error;
645? ?#elif _STACK_GROWS_UP
646? ?? ?? if (mprotect ((char *) pd - pd->guardsize,
647? ?? ?? ?? ?pd->guardsize - guardsize, prot) != 0)
648? ?? ?? ? goto mprot_error;
649? ?#endif
650? ?
651? ?? ?? pd->guardsize = guardsize;
652? ?? ?}

上面這么一大段,是為了設置Guard頁,總體說來就是把剛才申請到的內存最低幾頁,設置成為PROT_NONE,使著一頁無法訪問。
再下面就是鎖、mutex等一些同步用的字段設置。這樣在新線程創建出來之前,pthread結構的設置工作就基本完成了。

總結

以上是生活随笔為你收集整理的Linux用户空间线程管理介绍之二:创建线程堆栈的全部內容,希望文章能夠幫你解決所遇到的問題。

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

av大全在线 | 97在线成人 | 99精品欧美一区二区 | 天天干夜夜夜操天 | 在线视频日韩欧美 | 久草在线免费看视频 | av福利在线 | 国产视频欧美视频 | 日产中文字幕 | 久久国产福利 | av三级在线看 | 免费成人av网站 | 国产91影院| 亚洲精品午夜久久久久久久 | 久久精品视频免费观看 | 久久精品影片 | av在线播放快速免费阴 | 91精品免费看 | 久草在线中文视频 | 亚洲更新最快 | 欧美 日韩 国产 成人 在线 | 91资源在线播放 | 国产精品一区一区三区 | h视频在线看| 国产精品尤物 | 国产在线理论片 | 久久久免费电影 | 精品国产成人在线影院 | 91最新网址| 久久视频精品在线观看 | 91精品久久久久久久久久入口 | 国产高清在线免费观看 | 香蕉视频网站在线观看 | 黄色在线小网站 | 欧美一级久久久久 | 超碰在线1 | 婷婷综合五月天 | 91在线观看视频 | 免费视频久久久久久久 | 狠狠的日日 | 高清不卡毛片 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 亚洲精品国产第一综合99久久 | 九九国产视频 | 九九免费视频 | 人人精久| 久久久麻豆精品一区二区 | 日韩成人精品一区二区 | 韩日三级av | 久操伊人| av中文资源在线 | 日韩欧美一区二区不卡 | 黄色成人在线网站 | 成年人黄色大全 | 四虎在线观看网址 | www.日本色 | av中文在线播放 | 日韩午夜在线 | 欧美一区二区免费在线观看 | 免费在线一区二区 | 国内精品久久久久久久影视简单 | 久久久麻豆精品一区二区 | 日韩电影久久久 | 成片免费观看视频 | 波多野结衣久久资源 | 草 免费视频| 欧美另类xxxx | 99精品成人 | 97在线影视 | 黄色av成人在线 | 午夜精品视频一区二区三区在线看 | 日韩精品在线视频免费观看 | 91女神的呻吟细腰翘臀美女 | 日韩专区一区二区 | 国产精选在线观看 | 91女子私密保健养生少妇 | 日韩天堂在线观看 | 伊人热 | 婷婷av在线 | 国产午夜一级毛片 | 天天操综合 | 婷婷国产视频 | 久久歪歪 | 久久手机在线视频 | 国产精品一区一区三区 | 日韩免费高清 | 91亚洲欧美 | 亚洲国产一二三 | 欧美有色| 免费在线观看av网址 | 亚洲免费不卡 | 色97在线| а中文在线天堂 | 久久这里只有精品9 | 日日噜噜噜噜夜夜爽亚洲精品 | 在线一区av| 久久久久久久99 | 色丁香婷婷| 欧美色黄| 精品在线观看一区二区 | 国产又粗又猛又色 | av片子在线观看 | 国产精品成人a免费观看 | 日本女人在线观看 | 美女黄频免费 | 亚洲视频播放 | 久久99国产综合精品 | 99亚洲视频 | 国产精品久久久久久妇 | 狠狠狠狠狠狠狠狠干 | 黄色一级大片在线免费看产 | 午夜色婷婷 | 国产丝袜| 91精品老司机久久一区啪 | 天天操天天吃 | 韩国一区二区三区在线观看 | 久久久久久久久久伊人 | 国产精品久久久久久久久久久久午 | 日韩有码第一页 | 午夜精品久久久久久久99水蜜桃 | 精品久久免费 | 综合五月婷婷 | 激情久久综合 | 国产亚洲亚洲 | 精品国产美女 | 人人看97| 久久国产午夜精品理论片最新版本 | 人人网人人爽 | 日韩精品中文字幕在线不卡尤物 | 九九热久久久 | 亚洲视频每日更新 | 欧美日韩精品区 | 久久精品一区二区三 | 亚洲精选久久 | 激情综合色综合久久综合 | 正在播放五月婷婷狠狠干 | 中文 一区二区 | 色视频在线免费观看 | 激情五月婷婷丁香 | 天天操天天曰 | 有码中文字幕在线观看 | 免费视频国产 | 天天做天天射 | 亚洲一区免费在线 | 久久综合毛片 | 亚洲综合精品在线 | 国产精品久久久久久久久久久久 | 亚洲国产三级在线 | 国产精品99久久久久的智能播放 | 久久国产精品精品国产色婷婷 | 日本久久久亚洲精品 | 久久国产综合视频 | av在线播放一区二区三区 | 婷婷在线观看视频 | 91中文在线 | 欧洲精品久久久久毛片完整版 | 最近2019中文免费高清视频观看www99 | 成年人在线观看 | 亚洲视频免费在线观看 | 亚洲日本成人网 | 在线观看视频一区二区三区 | 国产一级精品绿帽视频 | 日韩大片在线播放 | 久久99视频精品 | 深夜精品福利 | 人人看人人做人人澡 | 天天玩天天干天天操 | 麻豆视频免费入口 | 久久伦理 | 五月天色站 | 久久午夜影院 | 在线观看免费高清视频大全追剧 | 免费日韩一区二区三区 | 国产一级在线播放 | www.av在线播放| 在线免费观看视频一区 | 久久网址| 国产精品99在线播放 | 丁香婷婷社区 | 久久久久激情视频 | av免费试看| 国产午夜在线 | 国产高清视频在线播放一区 | av大全在线免费观看 | 99久久999久久久精玫瑰 | 国产亚洲精品久久久久久大师 | 久久久九色精品国产一区二区三区 | 欧美精品一区在线发布 | 玖玖精品视频 | 久久爽久久爽久久av东京爽 | 欧美性色19p| 国产又黄又爽又猛视频日本 | 国产精品资源 | 久久电影中文字幕视频 | 九九免费精品视频在线观看 | 激情图片久久 | 国产精品一区二区 91 | 日韩特黄一级欧美毛片特黄 | 人人艹视频 | 久久精品永久免费 | www最近高清中文国语在线观看 | 国产美女视频一区 | 69xx视频 | 在线影院 国内精品 | 天堂资源在线观看视频 | 日韩一区精品 | a一片一级 | av大片免费在线观看 | 韩国av免费观看 | 久久久久久国产精品美女 | 精品久久一级片 | 夜夜骑日日操 | 天天操欧美| 精品亚洲午夜久久久久91 | 狠狠色丁香 | 国产专区视频在线观看 | 免费在线一区二区 | 日韩精品中文字幕久久臀 | 香蕉网在线| 国产中文字幕视频在线观看 | 夜夜夜草 | 天天操狠狠操 | 中文字幕在线观看免费观看 | 久久女同性恋中文字幕 | 天天操天天色综合 | 欧美另类巨大 | 亚洲欧美国产精品18p | 在线观看免费成人av | 久久精品国产成人精品 | 久久高清av | 久久精品欧美一区二区三区麻豆 | 永久免费的啪啪网站免费观看浪潮 | 国产一级特黄电影 | 亚洲天堂va | 蜜臀aⅴ精品一区二区三区 久久视屏网 | 国产一区不卡在线 | 99热在| 国产一区播放 | 99精品视频免费全部在线 | 少妇做爰k8经典 | 欧美视屏一区二区 | 日韩免费高清 | 久草在线最新免费 | 狠狠色狠狠色综合日日92 | 伊人久久在线观看 | 免费视频久久久 | 亚洲女人av | 91av手机在线| 超碰97在线看 | 久久午夜网 | 久久91久久久久麻豆精品 | 二区三区毛片 | 欧美日韩高清在线 | av电影在线免费 | 国产日韩精品一区二区三区在线 | 欧美不卡视频在线 | 国产拍揄自揄精品视频麻豆 | 91系列在线| 欧美一级大片在线观看 | 视频在线观看入口黄最新永久免费国产 | 天天天天天天操 | 亚洲激情视频 | 99超碰在线播放 | 日韩视频在线观看免费 | 日日草视频 | 免费人成网| 麻豆国产精品永久免费视频 | 亚洲午夜久久久影院 | 精品免费在线视频 | 国产中文在线播放 | www五月天 | 夜夜嗨av色一区二区不卡 | 2021国产在线视频 | 日本爱爱免费 | 欧美国产日韩一区二区三区 | 免费看av片网站 | 99视频精品免费观看, | 蜜桃久久久 | 久久亚洲综合国产精品99麻豆的功能介绍 | 国产精品9区 | 久久综合九九 | 国产97av| 中文字幕精品一区久久久久 | 国产视频精品在线 | 久久国产日韩 | 午夜电影一区 | 婷婷资源站 | 国产系列精品av | 国产999在线| 久草视频在线资源站 | 国产亚洲精品精品精品 | 麻豆传媒视频在线 | 一区二区毛片 | www99精品 | 五月天堂色| 看v片 | 日韩av免费一区 | 欧美久久电影 | 热久久99这里有精品 | 国产精品黄网站在线观看 | 看国产黄色大片 | 在线观看欧美成人 | 欧美xxxxx在线视频 | 久久99深爱久久99精品 | 久久国产精品99久久久久 | 免费在线成人 | 精品国产伦一区二区三区观看体验 | 天天干,天天操,天天射 | 一区中文字幕电影 | 99久久99精品| 色噜噜狠狠色综合中国 | 深爱激情婷婷网 | 激情六月婷婷久久 | 激情综合亚洲精品 | 人人超碰人人 | 久草资源免费 | 中文字幕大全 | 亚洲精品一区二区久 | 国色天香第二季 | 日韩另类在线 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | 久久视频中文字幕 | 夜色资源网 | 久久男人免费视频 | 在线观看第一页 | 久久国产美女 | 黄色一级在线免费观看 | 天天色天天 | 麻花豆传媒mv在线观看 | 国产精品免费久久久久久 | 国产精品一区二区久久精品 | www在线免费观看 | 一区二区三区动漫 | www看片网站 | 91日韩精品视频 | 中文字幕一区二区在线观看 | 97视频资源 | 久久99久久99精品免视看婷婷 | 色欧美综合 | 亚洲精品在线观看视频 | 国产在线观看xxx | 99视频精品视频高清免费 | 国产精品成人av久久 | 色丁香婷婷 | 免费黄色网址大全 | www免费看片com | 天天色综合1 | 黄色国产高清 | www.黄色小说.com | 免费av免费观看 | 天天色天天爱天天射综合 | 超碰在线免费97 | 婷婷深爱网 | 美女网站免费福利视频 | 涩涩网站在线看 | 色丁香久久 | 在线看v片 | 粉嫩av一区二区三区入口 | 亚洲国产黄色片 | 四虎www com | 中文字幕在线观看第二页 | 国产精品女同一区二区三区久久夜 | 国产精品久久久久永久免费观看 | 国产v视频 | 欧美在线日韩在线 | 又黄又刺激视频 | 久草在线综合网 | 91天堂素人约啪 | 欧美a级一区二区 | 欧美最猛性xxx | 欧洲亚洲女同hd | 国产伦精品一区二区三区高清 | 天天干天天草天天爽 | 婷婷九月丁香 | 天天干天天干 | 69中文字幕 | 中文字幕av电影下载 | 日韩二级毛片 | 99爱爱| 国产馆在线播放 | 亚洲国产日韩欧美在线 | 日韩视频免费播放 | 国产手机视频在线观看 | 91毛片在线观看 | 在线免费黄色片 | 国产精品 欧美 日韩 | 韩日视频在线 | 中文字幕在线一区观看 | 亚洲精品视频国产 | 亚洲美女视频在线 | 免费在线观看午夜视频 | 国产一区自拍视频 | 中文字幕电影网 | 久久久亚洲精华液 | 黄色精品一区二区 | 欧美日韩久久不卡 | 91黄色小视频 | 久久精品中文字幕免费mv | 黄色片免费在线 | 久久1区 | 久久综合操 | 久久久久久久久电影 | 亚洲精品网站 | 久久99视频免费观看 | 成人久久久精品国产乱码一区二区 | a天堂最新版中文在线地址 久久99久久精品国产 | 欧美日韩免费一区二区三区 | 国产青春久久久国产毛片 | 中文在线中文资源 | 亚洲最新合集 | 国产午夜精品理论片在线 | 欧洲亚洲精品 | 亚洲最新视频在线 | 久草在线资源观看 | 少妇bbbb揉bbbb日本 | 成人网看片 | 日韩资源在线播放 | 亚洲九九影院 | 欧美一区二区在线免费看 | 国产精品中文字幕在线 | 午夜美女网站 | 在线黄色国产电影 | 国产视频 亚洲视频 | 日韩精品视频久久 | 久久tv| 中文字幕在线网址 | 国产精品久久久久久久午夜 | 久久精品伊人 | 三级视频国产 | 色a网| 国产丝袜一区二区三区 | 又黄又爽又无遮挡免费的网站 | 久久久片 | 一区二三国产 | 美女久久久久 | 午夜久久福利影院 | 亚洲精品乱码久久久久久蜜桃91 | 日本久久高清视频 | 欧美激情一区不卡 | 国产99在线免费 | 日韩高清在线看 | 久久国产热 | 国产免费大片 | 亚洲精品在线观 | 中文字幕在线资源 | 国产精美视频 | 亚洲黄色成人 | 天天曰夜夜爽 | 久久国产a| 啪啪动态视频 | 亚洲理论片在线观看 | 日韩免费三区 | 日韩视频精品在线 | 日韩在线视频网址 | 日韩在线精品一区 | 中文字幕在线播放av | 香蕉在线视频观看 | 日韩三级免费 | 成年人免费观看在线视频 | 国产视频一区二区在线观看 | 久久久久国产精品免费网站 | 亚洲黄色免费在线 | 久久香蕉国产精品麻豆粉嫩av | 五月天堂网 | 精品播放 | 久久国产手机看片 | 亚洲国产69 | 国产v在线播放 | 丰满少妇在线观看资源站 | 综合色狠狠 | 福利视频一区二区 | 日韩精品播放 | 超碰人在线| 天天干夜夜爱 | www免费| 在线观看视频97 | 欧美福利网站 | 国产成免费视频 | 亚洲精品国产区 | 国产午夜精品久久久久久久久久 | 天天草综合 | 一区二区三区四区久久 | 最新中文字幕视频 | 国语黄色片 | 九九九热精品免费视频观看网站 | 国产99久久久国产精品 | 成人国产精品入口 | 国产精品久久久av久久久 | 日本一区二区不卡高清 | 国产成人一区二 | 久草视频国产 | 国产精品成人久久久久久久 | 综合网天天射 | 国语精品久久 | 精品国产一二三四区 | 欧美最爽乱淫视频播放 | 国产亚洲精品久久久久久 | 欧美淫aaa免费观看 日韩激情免费视频 | 亚洲精品播放 | 国产精品女教师 | 精品在线观看一区二区 | 激情视频免费在线 | 久久黄色小说视频 | 久久在线精品 | 综合网婷婷 | 久久免费看 | 天天做日日爱夜夜爽 | 日韩欧美在线高清 | 色婷婷av一区 | 性色va| 精品久久久久久久久中文字幕 | 亚洲夜夜网 | 免费网站在线观看人 | 国内精品久久久久影院优 | 五月天天在线 | 久久字幕精品一区 | www.色爱| 激情网综合 | 国产又粗又猛又爽 | 国产原创在线 | 亚洲一区日韩在线 | 亚洲国产免费网站 | 日韩午夜av | 精品久久一| 2019中文在线观看 | 在线观看亚洲成人 | 精品国产亚洲日本 | 成人亚洲网| 黄色大片av | 91在线免费观看国产 | 国产又粗又猛又爽又黄的视频免费 | 亚洲国产成人高清精品 | 日韩中文字幕电影 | 天天曰视频 | 亚洲国内精品 | 欧美视频在线观看免费网址 | 国产日韩一区在线 | 久久久久久福利 | 国色天香永久免费 | 久久九九久久 | 亚洲精品中文字幕在线 | 五月婷婷丁香六月 | 久久久综合色 | 久久久久久久久久电影 | 日韩午夜视频在线观看 | 中文在线| 久久艹在线观看 | 日韩在线| 国产视频久久 | 高清av网站 | 久久精品老司机 | 九九热视频在线免费观看 | 国产精品99久久久精品免费观看 | 精品国产一区二区三区四区vr | 五月激情站 | 一区二区三区手机在线观看 | 日本精a在线观看 | 热re99久久精品国产99热 | 久久草网 | 999抗病毒口服液 | 国产又粗又猛又黄又爽 | 成人国产精品免费观看 | 在线有码中文 | 国产精品免费在线 | 色综合久久久久久久久五月 | 在线视频国产区 | 国产日韩精品久久 | 一区二区三区影院 | 992tv在线成人免费观看 | 欧美日韩亚洲精品在线 | 97爱| 日本精品视频一区 | 国产 一区二区三区 在线 | 黄a在线观看 | 福利二区视频 | 果冻av在线| 日韩三级在线 | 超薄丝袜一二三区 | 欧美日韩精品在线播放 | 久久精品99国产精品 | 国产精品欧美久久久久久 | 亚洲精品视频在线免费 | 天天干天天干天天射 | 欧美激情视频三区 | 这里只有精品视频在线观看 | 日本三级在线观看中文字 | 久久精品理论 | 亚洲一级二级 | 狠狠干网站 | 成人蜜桃| 婷婷在线综合 | 婷婷射五月 | 国产蜜臀av | 91精品视频在线观看免费 | 91成人破解版 | 色一级片 | 免费a视频在线观看 | 欧美久草网| www.色在线| 欧美亚洲国产精品久久高清浪潮 | 九九热免费在线视频 | 亚洲精品a区 | 中文字幕在线观看视频一区 | 国产视频欧美视频 | 中文字幕资源网在线观看 | 丁香五香天综合情 | 欧美激情第八页 | 在线免费中文字幕 | 国产精品久久久久久久久久ktv | 久久久久亚洲最大xxxx | 成人综合日日夜夜 | 日韩理论电影网 | 久久久免费电影 | 欧美精品一区二区蜜臀亚洲 | 日韩精品免费一线在线观看 | 久草在线综合 | 92中文资源在线 | 国产在线欧美在线 | 91福利试看| 日本丶国产丶欧美色综合 | 亚洲国产福利视频 | 久久人人插 | 亚洲精品一区二区三区高潮 | 久久久久久黄色 | 91丨九色丨91啦蝌蚪老版 | 久草在线久草在线2 | 久久久久国产免费免费 | 久久久久久久久久久高潮一区二区 | 久久av在线播放 | 国产美女精彩久久 | 久久夜色精品国产欧美乱极品 | 欧美成人69av | 在线观看爱爱视频 | 久久一区二区三区超碰国产精品 | 91视频观看免费 | 亚洲精品在线电影 | 色综合天天狠天天透天天伊人 | 97超碰人人澡人人爱 | 天天操天天射天天爽 | 欧美亚洲国产日韩 | 精品国产成人av | 久久免费福利视频 | 亚洲综合激情网 | 综合久久久久 | 六月天综合网 | 成人午夜精品久久久久久久3d | 国产精品久久久久久久婷婷 | 婷婷六月中文字幕 | 免费网址在线播放 | 丁香六月天婷婷 | 99热精品久久 | www.亚洲在线 | 精品在线一区二区三区 | 亚洲开心激情 | 欧美成人精品欧美一级乱 | 91国内在线| 成人av网站在线观看 | 欧美少妇xx| 99久久99| 亚洲尺码电影av久久 | 在线观看国产日韩 | 国产视频不卡 | 人人澡人人爽欧一区 | 亚洲乱码国产乱码精品天美传媒 | bbbbb女女女女女bbbbb国产 | 久久久久久中文字幕 | 美女精品 | 天天色.com| 91精品啪在线观看国产线免费 | 97超碰人人澡人人 | 免费看黄色大全 | 久久天天拍 | 国产在线国偷精品产拍免费yy | 蜜桃视频在线视频 | 麻豆91在线观看 | 久久午夜免费观看 | 韩国av一区二区 | 国产女人18毛片水真多18精品 | 国产精品欧美久久久久天天影视 | 亚洲精品国产精品国自产观看 | 中文字幕在线观看亚洲 | 成人国产精品一区 | 日韩在线视频一区二区三区 | 亚洲最新精品 | 久久男人影院 | 日本丰满少妇免费一区 | 天天天干| 成人手机在线视频 | 激情图片区 | 国产午夜精品久久久久久久久久 | 欧美日比视频 | 在线观看一级视频 | 99理论片 | 久久久久久97三级 | 欧美黑人xxxx猛性大交 | 香蕉影院在线播放 | 一本一道久久a久久精品 | 激情综合网在线观看 | 亚洲人成影院在线 | 久久久久久免费毛片精品 | 99精品久久久久久久久久综合 | 亚洲在线视频观看 | 中文av日韩 | 久久久久久久久久久电影 | 精品久久久久久久久久久院品网 | 91成人网在线观看 | 日韩免费在线视频 | 亚洲精品一区中文字幕乱码 | 久操视频在线观看 | 91精品国自产在线观看 | 中文在线免费视频 | 国产亚洲久一区二区 | 中文字幕在线观看第一页 | 免费观看一级成人毛片 | 亚洲综合色视频在线观看 | 日韩成人一级大片 | 九精品 | 亚洲成人999 | 福利精品在线 | 欧美贵妇性狂欢 | 日韩成人在线一区二区 | 99精品国产aⅴ | 久久免费电影网 | av怡红院 | 成年人免费电影在线观看 | 色婷婷九月 | 久久在线一区 | 国产亚洲综合精品 | 中文字幕在线观看av | av电影免费 | 欧美色综合久久 | 久久久国产99久久国产一 | 高清视频一区二区三区 | 日韩精品无 | 久久无码精品一区二区三区 | 欧美 日韩精品 | 在线观看播放av | 国产一区二区三区在线 | 97超碰站 | 国产一区 在线播放 | 手机成人在线电影 | 国产精品一区二区在线观看 | 天天艹天天 | 日日夜夜天天干 | www国产亚洲精品久久麻豆 | 国内精品久久久久久久影视麻豆 | 国产精品日韩在线观看 | 亚洲精品乱码久久久久久久久久 | www.黄色片网站 | 激情综合五月网 | 成人在线视频论坛 | 天天操天天操天天操天天操天天操 | 日日夜夜噜 | 一级一片免费看 | 亚洲精品久 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 亚洲在线网址 | 亚洲午夜久久久久久久久电影网 | 美国av片在线观看 | 成人h在线 | 一级片色播影院 | 久久精品国产免费看久久精品 | 天天射天天射 | 欧美精品一区二区三区四区在线 | 天天摸天天干天天操天天射 | 色姑娘综合网 | 国产在线不卡视频 | 久久99久久99久久 | 久久视频在线视频 | 久久久久久久久久久久久9999 | 国产欧美综合在线观看 | 国产91精品一区二区麻豆网站 | 国产精品一区二区免费 | 九九九热精品免费视频观看网站 | 日韩中文在线观看 | 亚洲综合欧美日韩狠狠色 | 国产一区二区精品 | 精品国产一区二区三区在线 | 亚洲精品视频免费在线观看 | 在线观看 国产 | 午夜精品久久久久久 | 亚洲 中文 在线 精品 | 毛片www| 久草精品视频在线看网站免费 | 99r在线观看 | 国产精品 日本 | 欧美亚洲国产精品久久高清浪潮 | 亚洲精品tv| 2019国产精品 | 免费看亚洲毛片 | 久久伊人八月婷婷综合激情 | 8x8x在线观看视频 | 日韩中文字幕在线观看 | 国产精品久久久免费看 | 亚洲精品乱码久久久久久写真 | 久久艹艹 | 国产亚洲一区二区在线观看 | 狠狠色伊人亚洲综合网站色 | 亚洲涩涩涩涩涩涩 | 国产精品av久久久久久无 | 99久久精品免费看 | 欧美国产高清 | 97精品免费视频 | 国产一区二区影院 | 欧美一区二区视频97 | 久草在线最新免费 | 久久草精品 | 91免费观看视频在线 | 婷婷综合 | 久久福利小视频 | 91视频免费| 免费成人在线视频网站 | 欧美一级片在线观看视频 | 国产精品a久久 | 91精品视频在线免费观看 | 亚洲一区不卡视频 | 中文字幕在线观看一区二区三区 | 色噜噜日韩精品一区二区三区视频 | 亚洲婷婷在线视频 | 免费av网站在线 | 国产大片黄色 | 精品国产亚洲日本 | 99精品久久只有精品 | 久久 国产一区 | 欧美精品二区 | 久久久精品国产一区二区电影四季 | 午夜精品一二三区 | 久久精品视频在线免费观看 | 日本最新高清不卡中文字幕 | 久久国产精品久久精品国产演员表 | 国产最新在线 | 国产视频美女 | 免费看国产视频 | 亚洲国产人午在线一二区 | 亚洲jizzjizz日本少妇 | 中文字幕电影一区 | av888.com| 人人澡视频| 久久久久看片 | 亚洲精品66 | 日韩黄色中文字幕 | 国产一区免费看 | 久久久久久久久久久福利 | 国产系列 在线观看 | 久久精品国产亚洲精品2020 | 亚洲网站在线 | 中文在线字幕观看电影 | 亚洲免费永久精品国产 | 在线免费观看的av | av色综合| 天天干天天射天天操 | 国产人免费人成免费视频 | 亚洲在线色| 国产免费看| 精品一区二区在线免费观看 | 97色在线视频| 日韩美女黄色片 | 韩国精品视频在线观看 | 黄色一级大片在线免费看国产一 | 在线观看免费视频 | 久久一视频 | 在线看av网址 | 西西4444www大胆无视频 | 成人理论电影 | 日批网站在线观看 | 久久久久久久久久久国产精品 | 中文字幕乱码亚洲精品一区 | 成人网在线免费视频 | 91精品国产一区 | 88av视频 | 97成人在线免费视频 | 日韩欧美在线播放 | 日日爱网站 | 综合久久久 | 高清国产午夜精品久久久久久 | 国产精品黄 | 日韩午夜精品 | zzijzzij日本成熟少妇 | 亚洲精品视频偷拍 | 国产精品久一 | 久久精品96 | 国产一区久久久 | 亚洲最新合集 | 日av免费 | 婷婷五天天在线视频 | 色偷偷av男人天堂 | 在线视频观看亚洲 | 久久久久免费观看 | 国产精品理论视频 | 国产网站av | 国产欧美精品在线观看 | 射久久 | 成年人视频免费在线播放 | 四虎在线视频免费观看 | 亚洲九九九在线观看 | 久久公开免费视频 | 国产一区二区三区黄 | 五月婷婷深开心 | 国产日韩在线看 | 在线观看午夜av | 国产精品爽爽爽 | 免费在线中文字幕 | 亚洲全部视频 | 色偷偷88888欧美精品久久 | 成人黄色大片在线免费观看 | 黄色录像av | 成人免费中文字幕 | 色偷偷网站视频 | 六月婷色 | 91成人久久 | 国产小视频你懂的 | 久久涩视频 | 亚洲四虎在线 | 国产视频亚洲精品 | 一区二区欧美激情 | 夜夜操狠狠干 | 亚洲最新毛片 | 亚洲天天在线日亚洲洲精 | av中文天堂 | 久久九九久久精品 | 日本久久久久久久久 | 亚洲视频在线免费观看 | 人人舔人人插 | 天天操婷婷| 在线播放av网址 | 国产一区二区午夜 | 国产一区二区在线免费播放 | 亚洲成 人精品 | 九九99靖品| 国产91在线看 | 亚洲黄污 | 超碰97.com| 日韩欧三级 | 中文字幕在线观看完整版 | 中文字幕在线看视频 | 精品久久久精品 | 国产福利免费看 | 欧美夫妻性生活电影 | 日韩av中文在线 | 91麻豆精品91久久久久同性 | 久久久精品视频网站 | 日韩精品欧美视频 | 国产精品综合久久 | 97在线免费视频观看 | 91视频麻豆视频 | 久久免费视频6 | 国产不卡在线视频 | 中文字幕av网站 | 国产成人精品亚洲精品 | 激情视频在线高清看 | 99c视频高清免费观看 | 99综合影院在线 | 超碰日韩在线 | 亚洲精品美女久久久久网站 | 日本精品视频在线播放 | 天天做天天干 | 久草香蕉在线 | 美女在线观看网站 | 久久午夜电影网 | 欧美日韩在线播放 | 国产高清绿奴videos | 中文字幕在线看 | 中文字幕美女免费在线 | 国产第一页福利影院 | 狠狠狠狠狠狠天天爱 | 麻豆91精品91久久久 | 日日干日日 | 日韩欧美在线一区 | 精品国产伦一区二区三区观看体验 | 日韩欧美大片免费观看 | 91精品免费在线观看 | 在线视频日韩 | 99国产视频 | 伊人五月天.com | 日本精品二区 | 欧美精品免费视频 | 久久久一本精品99久久精品66 | 国产成人久久av | 欧美老女人xx| 国产成人精品免高潮在线观看 | 欧美激情第十页 | 日韩精品五月天 | 日本资源中文字幕在线 | 国产成人免费网站 | 久久精品国产一区二区三 | 免费麻豆网站 | 最新av网址在线观看 | 久草精品国产 | 成片免费 | 国产成人精品一区二 | 欧美精品九九99久久 | 波多野结衣精品 | 蜜臀av夜夜澡人人爽人人 | 久久草草热国产精品直播 | 久久激情视频 久久 | 521色香蕉网站在线观看 | 香蕉在线观看视频 | 国产福利小视频在线 |