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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

glibc-2.23学习笔记(一)—— malloc部分源码分析

發布時間:2025/3/21 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 glibc-2.23学习笔记(一)—— malloc部分源码分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

glibc-2.23學習筆記(一)—— malloc部分源碼分析

  • 搭建Glibc源碼調試環境
    • 1.下載并解壓glibc源碼
    • 2.配置gdb
    • 3.編譯測試程序
  • 第一次調用
  • 源碼分析
    • __libc_malloc
    • _int_malloc
      • 函數聲明
      • 局部變量
      • start
      • fast bin部分
      • small bin部分
      • large bin部分
      • binmap部分
      • top chunk部分
  • 參考資料

搭建Glibc源碼調試環境

1.下載并解壓glibc源碼

sudo apt-get install glibc-source cd /usr/src/glibc sudo tar xvf glibc-2.23.tar.xz

2.配置gdb

打開gdb配置文件

sudo vim ~/.gdbinit

在首行加入以下內容

directory /usr/src/glibc/glibc-2.23/malloc:/usr/src/glibc/glibc-2.23/elf

3.編譯測試程序

//test.c #include <stdio.h> #include <stdlib.h>int main() {malloc(0x10); //第一次調用malloc(0x10); //重點分析此處return 0; } //gcc test.c -o test

第一次調用

第一次調用malloc時會從__malloc_hook中取出malloc_hook_ini函數指針并執行

static void * malloc_hook_ini (size_t sz, const void *caller) {__malloc_hook = NULL; //將__malloc_hook置0ptmalloc_init (); //初始化ptmallocreturn __libc_malloc (sz); //回到__libc_malloc }

源碼分析

__libc_malloc

void * __libc_malloc (size_t bytes) {mstate ar_ptr;void *victim;/* 判斷__malloc_hook中是否有值,有值就當成函數指針調用 */void *(*hook) (size_t, const void *)= atomic_forced_read (__malloc_hook);if (__builtin_expect (hook != NULL, 0))return (*hook)(bytes, RETURN_ADDRESS (0));/* 獲取分配區指針,并鎖住分配區內存 */arena_get (ar_ptr, bytes);/* 分配內存 */victim = _int_malloc (ar_ptr, bytes);/* 內存分配失敗,嘗試尋找其他可用的arena進行分配 */if (!victim && ar_ptr != NULL){LIBC_PROBE (memory_malloc_retry, 1, bytes);ar_ptr = arena_get_retry (ar_ptr, bytes);victim = _int_malloc (ar_ptr, bytes);}//解除分配區內存鎖if (ar_ptr != NULL)(void) mutex_unlock (&ar_ptr->mutex);/* 通過倒數第二個比特位判斷內存屬性 */assert (!victim || chunk_is_mmapped (mem2chunk (victim)) ||ar_ptr == arena_for_chunk (mem2chunk (victim)));return victim; }

_int_malloc

函數聲明

static void * _int_malloc (mstate av, size_t bytes){

局部變量

/* 對齊后的所需內存大小 */INTERNAL_SIZE_T nb; /* normalized request size *//* 保存所需chunk在bins中的下標 */unsigned int idx; /* associated bin index *//* 保存bin */mbinptr bin; /* associated bin *//* 保存候選chunk */mchunkptr victim; /* inspected/selected chunk *//* 保存chunk的size */INTERNAL_SIZE_T size; /* its size *//* 保存候選chunk在bins中的下標 */int victim_index; /* its bin index *//* 保存從候選chunk分配內存后剩余內存的指針 */mchunkptr remainder; /* remainder from a split *//* 保存剩余部分內存大小 */unsigned long remainder_size; /* its size */unsigned int block; /* bit map traverser */unsigned int bit; /* bit map traverser */unsigned int map; /* current word of binmap */mchunkptr fwd; /* misc temp for linking */mchunkptr bck; /* misc temp for linking */const char *errstr = NULL;

start

/*Convert request size to internal form by adding SIZE_SZ bytesoverhead plus possibly more to obtain necessary alignment and/orto obtain a size of at least MINSIZE, the smallest allocatablesize. Also, checked_request2size traps (returning 0) request sizesthat are so large that they wrap around zero when padded andaligned.*//* 取得對齊后的size值 */checked_request2size(bytes, nb);/* There are no usable arenas. Fall back to sysmalloc to get a chunk frommmap. *//* 沒有可用的arena,隨機分配一塊內存并返回 */if (__glibc_unlikely(av == NULL)){void* p = sysmalloc(nb, av);if (p != NULL)alloc_perturb(p, bytes);return p;}

fast bin部分

/*If the size qualifies as a fastbin, first check corresponding bin.This code is safe to execute even if av is not yet initialized, so wecan try it without checking, which saves some time on this fast path.*//* 如果所需大小小于等于fast bins中的最大size,則嘗試從fast bins中分配第一次調用malloc時,max_fast為0 */if ((unsigned long)(nb) <= (unsigned long)(get_max_fast())){idx = fastbin_index (nb); //計算所需大小在fast bins中的下標mfastbinptr *fb = &fastbin (av, idx); //嘗試從對應下標中取出堆塊指針mchunkptr pp = *fb;/* 若存在可用的bin,將bin從鏈表中取出,并取出當前bin的fd放入鏈表尾,fd的值不能和當前bin相同 */do{victim = pp;if (victim == NULL)break;}while ((pp = catomic_compare_and_exchange_val_acq (fb, victim->fd, victim))!= victim);if (victim != 0) // 若候選chunk存在{/* 檢查size位是否屬于fast bins */if (__builtin_expect (fastbin_index (chunksize (victim)) != idx, 0)){errstr = "malloc(): memory corruption (fast)";errout:malloc_printerr (check_action, errstr, chunk2mem (victim), av);return NULL;}check_remalloced_chunk (av, victim, nb); //各種檢測,包括堆塊大小,是否對齊等等void *p = chunk2mem (victim); //返回chunk地址(不包含head)alloc_perturb (p, bytes);return p; //返回應用層}}

small bin部分

/*If a small request, check regular bin. Since these "smallbins"hold one size each, no searching within bins is necessary.(For a large request, we need to wait until unsorted chunks areprocessed to find best fit. But for small ones, fits are exactanyway, so we can check now, which is faster.)*//* 若所需大小屬于small bins,則嘗試在small bins中分配 */if (in_smallbin_range (nb)){idx = smallbin_index (nb); //獲取所需大小對應下標bin = bin_at (av, idx); //從arena獲取下標對應的bin/* 如果victim等于表頭,表示該鏈表為空 */if ((victim = last (bin)) != bin){/* 如果候選chunk為0表示還沒有創建雙向循環鏈表 */if (victim == 0) /* initialization check */malloc_consolidate (av); /* 第一次malloc時會調用這個函數合并所有的fast bin */else{/* 否則嘗試將victim從small bin中取出 */bck = victim->bk;if (__glibc_unlikely (bck->fd != victim)){errstr = "malloc(): smallbin double linked list corrupted";goto errout;}set_inuse_bit_at_offset (victim, nb); //設置候選chunk的inuse標志//該標志位于下一個chunk size位的第0個bit/* 將bin從鏈表中取出,相當于unlink */bin->bk = bck;bck->fd = bin;if (av != &main_arena)victim->size |= NON_MAIN_ARENA;check_malloced_chunk (av, victim, nb); //各種檢測void *p = chunk2mem (victim); //獲得用戶部分可用的指針alloc_perturb (p, bytes);return p; //返回}}}

large bin部分

/*If this is a large request, consolidate fastbins before continuing.While it might look excessive to kill all fastbins beforeeven seeing if there is space available, this avoidsfragmentation problems normally associated with fastbins.Also, in practice, programs tend to have runs of either small orlarge requests, but less often mixtures, so consolidation is notinvoked all that often in most programs. And the programs thatit is called frequently in otherwise tend to fragment.*//* 若所需大小不屬于small bins,則可能位于large bins中 */else {idx = largebin_index (nb); //計算所需大小對應large bins的下標if (have_fastchunks (av)) //判斷是否存在屬于fast bins的空閑chunkmalloc_consolidate (av); //合并所有的fast bin}/*Process recently freed or remaindered chunks, taking one only ifit is exact fit, or, if this a small request, the chunk is remainder fromthe most recent non-exact fit. Place other traversed chunks inbins. Note that this step is the only place in any routine wherechunks are placed in bins.The outer loop here is needed because we might not realize untilnear the end of malloc that we should have consolidated, so mustdo so and retry. This happens at most once, and only when we wouldotherwise need to expand memory to service a "small" request.*/for (;; ){int iters = 0;/* 反向遍歷unsorted bins雙向循環鏈表,直到候選chunk指向頭節點 */while ((victim = unsorted_chunks (av)->bk) != unsorted_chunks (av)){bck = victim->bk;//判斷chunk大小是否合法if (__builtin_expect (victim->size <= 2 * SIZE_SZ, 0)|| __builtin_expect (victim->size > av->system_mem, 0))/* 如果不合法就執行malloc_printerr打印錯誤信息 */malloc_printerr (check_action, "malloc(): memory corruption", chunk2mem (victim), av);size = chunksize (victim); //若合法則取出size位/*If a small request, try to use last remainder if it is theonly chunk in unsorted bin. This helps promote locality forruns of consecutive small requests. This is the onlyexception to best-fit, and applies only when there isno exact fit for a small chunk.*//* 如果這個chunk大小屬于small bins且unsorted bins中只有一個chunk,且這個chunk為last remainder chunk,且這個chunk的大小大于所需的size+MINSIZE */if (in_smallbin_range (nb) &&bck == unsorted_chunks (av) &&victim == av->last_remainder &&(unsigned long) (size) > (unsigned long) (nb + MINSIZE)){/* split and reattach remainder *//* 從這個remainder中取出所需的部分,與表頭形成雙向循環鏈表 */remainder_size = size - nb; //計算取出所需部分后的剩余部分remainder = chunk_at_offset (victim, nb); //獲得chunk指針unsorted_chunks (av)->bk = unsorted_chunks (av)->fd = remainder; //arena指向remainderav->last_remainder = remainder; //設置新的remainderremainder->bk = remainder->fd = unsorted_chunks (av); //remainder指向arena/* 如果剩余部分大小不屬于small bins,則只能時largebins因此需要將fd_nextsize和bk_nextsize清空,unsorted bin無需這兩個成員 */if (!in_smallbin_range (remainder_size)){remainder->fd_nextsize = NULL;remainder->bk_nextsize = NULL;}/* 設置chunk的相關信息 */set_head (victim, nb | PREV_INUSE |(av != &main_arena ? NON_MAIN_ARENA : 0));set_head (remainder, remainder_size | PREV_INUSE);set_foot (remainder, remainder_size);check_malloced_chunk (av, victim, nb);void *p = chunk2mem (victim); //取得用戶部分可用的內存指針alloc_perturb (p, bytes);return p; //返回應用層}/* remove from unsorted list *//* 將bin從unsortedbin中取出 */unsorted_chunks (av)->bk = bck;bck->fd = unsorted_chunks (av);/* Take now instead of binning if exact fit *//* 若size位等于所需大小,則設置標志位,然后將bin取出并返回用戶指針 */if (size == nb){set_inuse_bit_at_offset (victim, size);if (av != &main_arena)victim->size |= NON_MAIN_ARENA;check_malloced_chunk (av, victim, nb);void *p = chunk2mem (victim);alloc_perturb (p, bytes);return p; //返回應用層}/* place chunk in bin *//* 若size屬于small bins,則將chunk加入到bck和fwd之間,作為small bins的第一個chunk */if (in_smallbin_range (size)){victim_index = smallbin_index (size);bck = bin_at (av, victim_index);fwd = bck->fd;}/* 若size屬于large bins,則將chunk加入到bck和fwd之間,作為large bin的第一個chunk */else{victim_index = largebin_index (size);bck = bin_at (av, victim_index);fwd = bck->fd;/* maintain large bins in sorted order */if (fwd != bck) //若fwd不等于bck,說明large bins中存在空閑chunk{/* Or with inuse bit to speed comparisons */size |= PREV_INUSE;/* if smaller than smallest, bypass loop below */assert ((bck->bk->size & NON_MAIN_ARENA) == 0);/* 如果當前size比最后一個chunk size還要小,則將當前size的chunk加入到chunk size鏈表尾然后將所有大小的鏈表取出首個chunk鏈到一起,方便查找 */if ((unsigned long) (size) < (unsigned long) (bck->bk->size)){fwd = bck;bck = bck->bk;victim->fd_nextsize = fwd->fd;victim->bk_nextsize = fwd->fd->bk_nextsize;fwd->fd->bk_nextsize = victim->bk_nextsize->fd_nextsize = victim;}else{assert ((fwd->size & NON_MAIN_ARENA) == 0);/* 正向遍歷chunk size鏈表,找到第一個chunk大小小于等于當前大小的chunk */while ((unsigned long) size < fwd->size){fwd = fwd->fd_nextsize;assert ((fwd->size & NON_MAIN_ARENA) == 0);}/* 若已經存在相同大小的chunk,則將當前chunk插入到同大小chunk鏈表的尾部 */if ((unsigned long) size == (unsigned long) fwd->size)/* Always insert in the second position. */fwd = fwd->fd;/* 否則延伸出一個大小等于當前size的chunk鏈表,將該鏈表加入到chunk size鏈表尾 */else{victim->fd_nextsize = fwd;victim->bk_nextsize = fwd->bk_nextsize;fwd->bk_nextsize = victim;victim->bk_nextsize->fd_nextsize = victim;}bck = fwd->bk;}}else //large bins中沒有 chunk,直接將當前 chunk 加入 chunk size鏈表victim->fd_nextsize = victim->bk_nextsize = victim;}/* 將當前chunk加入large bins的空閑鏈表中 */mark_bin (av, victim_index);victim->bk = bck;victim->fd = fwd;fwd->bk = victim;bck->fd = victim;/* 最多遍歷10000個unsorted bin,節約時間 */#define MAX_ITERS 10000if (++iters >= MAX_ITERS)break;}/*If a large request, scan through the chunks of current bin insorted order to find smallest that fits. Use the skip list for this.*//* 當處理完unsorted bins后,使用最佳匹配法匹配chunk */if (!in_smallbin_range (nb)) //判斷chunk是否位于large bins中{bin = bin_at (av, idx);/* skip scan if empty or largest chunk is too small *//* 判斷large bins是否為空,以及鏈表中的最大size是否滿足所需大小 */if ((victim = first (bin)) != bin && (unsigned long) (victim->size) >= (unsigned long) (nb)){/* 遍歷chunk size鏈表,找到大于等于所需大小的chunk鏈表 */victim = victim->bk_nextsize;while (((unsigned long) (size = chunksize (victim)) < (unsigned long) (nb)))victim = victim->bk_nextsize;/* Avoid removing the first entry for a size so that the skiplist does not have to be rerouted. *//* 為了盡量不破壞鏈表結構,嘗試取出victim->fd作為候選chunk */if (victim != last (bin) && victim->size == victim->fd->size)victim = victim->fd;/* 計算剩余size,然后斷鏈 */remainder_size = size - nb;unlink (av, victim, bck, fwd);/* Exhaust *//* 若剩余部分小于MIN_SIZE,則將整個chunk分配給應用層(可以搞事情嗷) */if (remainder_size < MINSIZE){set_inuse_bit_at_offset (victim, size);if (av != &main_arena)victim->size |= NON_MAIN_ARENA;}/* Split */else{/* 獲得剩余部分chunk指針 */remainder = chunk_at_offset (victim, nb);/* We cannot assume the unsorted list is empty and thereforehave to perform a complete insert here. *//* 剩余部分作為新chunk加入到unsorted bins中 */bck = unsorted_chunks (av);fwd = bck->fd;if (__glibc_unlikely (fwd->bk != bck)){errstr = "malloc(): corrupted unsorted chunks";goto errout;}remainder->bk = bck;remainder->fd = fwd;bck->fd = remainder;fwd->bk = remainder;/* 若剩余部分大小屬于large bin,則將fd_nextsize和bk_nextsize清零因為這兩個指針對于unsorted bin無用 */if (!in_smallbin_range (remainder_size)){remainder->fd_nextsize = NULL;remainder->bk_nextsize = NULL;}/* 設置各種標志位 */set_head (victim, nb | PREV_INUSE |(av != &main_arena ? NON_MAIN_ARENA : 0));set_head (remainder, remainder_size | PREV_INUSE);set_foot (remainder, remainder_size);}check_malloced_chunk (av, victim, nb);void *p = chunk2mem (victim); //獲取用戶部分指針 alloc_perturb (p, bytes);return p; //返回應用層}}

binmap部分

/*Search for a chunk by scanning bins, starting with next largestbin. This search is strictly by best-fit; i.e., the smallest(with ties going to approximately the least recently used) chunkthat fits is selected.The bitmap avoids needing to check that most blocks are nonempty.The particular case of skipping all bins during warm-up phaseswhen no chunks have been returned yet is faster than it might look.*//* 在small bins和large bins中都沒有找到大小合適的chunk嘗試從大小比所需大小更大的空閑chunk中尋找合適的 *//* 獲取下一個相鄰bin的空閑chunk鏈表,并獲取該bin對于binmap中的bit位的值binmap中標識了相應bin中是否存在空閑chunk,按照block進行管理每個block為一個int,共32bit,可以表示32個bin中是否存在空閑chunk使用binmap主要時為了加快查找空閑chunk的效率這里只查詢比所需chunk大的bin中是否有空閑chunk可用 */++idx;bin = bin_at (av, idx);block = idx2block (idx);map = av->binmap[block];bit = idx2bit (idx);for (;; ){/* Skip rest of block if there are no more set bits in this block. *//* 若bit > map,說明map為0,則該block對應的所有bins都沒有空閑chunk */if (bit > map || bit == 0){/* 遍歷下一個block,直到找到一個不為0的block或遍歷完所有的block */do{if (++block >= BINMAPSIZE) /* out of bins *//* 沒有找到合適chunk,嘗試使用top chunk分配 */goto use_top;}while ((map = av->binmap[block]) == 0);/* 設置bin指向block的第一個bit對應的bin */bin = bin_at (av, (block << BINMAPSHIFT));bit = 1; //將bit置為1,表示該block中bit1對應的bin}/* Advance to bin with set bit. There must be one. *//* 在block中遍歷對應的bin,直到找到一個不為0的bit */while ((bit & map) == 0){bin = next_bin (bin);bit <<= 1;assert (bit != 0);}/* Inspect the bin. It is likely to be non-empty *//* 將chunk加入鏈表尾 */victim = last (bin);/* If a false alarm (empty bin), clear the bit. *//* 若victim與bin鏈表頭指針相同,表示該bin中沒有空閑chunkbinmap中的相應位設置不準確,將其清零 */if (victim == bin){av->binmap[block] = map &= ~bit; /* Write through */bin = next_bin (bin);bit <<= 1;}else{size = chunksize (victim); //獲得size/* We know the first chunk in this bin is big enough to use. *//* 判斷chunk大小是否滿足 */assert ((unsigned long) (size) >= (unsigned long) (nb));remainder_size = size - nb; //計算分配后的剩余大小/* unlink */unlink (av, victim, bck, fwd); //將chunk斷鏈/* Exhaust *//* 若剩余大小小于MINSIZE,則將整個chunk分配給用戶 */if (remainder_size < MINSIZE){set_inuse_bit_at_offset (victim, size);if (av != &main_arena)victim->size |= NON_MAIN_ARENA;}/* Split */else{/* 獲得chunk指針 */remainder = chunk_at_offset (victim, nb);/* We cannot assume the unsorted list is empty and thereforehave to perform a complete insert here. *//* 剩余部分作為新chunk加入到unsorted bins中 */bck = unsorted_chunks (av);fwd = bck->fd;if (__glibc_unlikely (fwd->bk != bck)){errstr = "malloc(): corrupted unsorted chunks 2";goto errout;}remainder->bk = bck;remainder->fd = fwd;bck->fd = remainder;fwd->bk = remainder;/* advertise as last remainder *//* 若分配大小屬于small bin,將last_remainder設置為剩余部分構成的chunk */if (in_smallbin_range (nb))av->last_remainder = remainder;/* 若剩余部分大小屬于large bin,則將fd_nextsize和bk_nextsize清零因為這兩個指針對于unsorted bin無用 */if (!in_smallbin_range (remainder_size)){remainder->fd_nextsize = NULL;remainder->bk_nextsize = NULL;}/* 設置各種標志位 */set_head (victim, nb | PREV_INUSE |(av != &main_arena ? NON_MAIN_ARENA : 0));set_head (remainder, remainder_size | PREV_INUSE);set_foot (remainder, remainder_size);}check_malloced_chunk (av, victim, nb); //各種檢測void *p = chunk2mem (victim); //獲得用戶部分指針alloc_perturb (p, bytes);return p; //返回應用層}}

top chunk部分

use_top:/*If large enough, split off the chunk bordering the end of memory(held in av->top). Note that this is in accord with the best-fitsearch rule. In effect, av->top is treated as larger (and thusless well fitting) than any other available chunk since it canbe extended to be as large as necessary (up to systemlimitations).We require that av->top always exists (i.e., has size >=MINSIZE) after initialization, so if it would otherwise beexhausted by current request, it is replenished. (The mainreason for ensuring it exists is that we may need MINSIZE spaceto put in fenceposts in sysmalloc.)*//* 獲得top chunk指針與大小 */victim = av->top;size = chunksize (victim);/* 必須滿足top chunk size > nb + MINSIZE的情況下才能分配 */if ((unsigned long) (size) >= (unsigned long) (nb + MINSIZE)){/* 從top chunk分配內存后,剩余的部分將作為新的top chunk */remainder_size = size - nb;remainder = chunk_at_offset (victim, nb);av->top = remainder;/* 設置各種標志位 */set_head (victim, nb | PREV_INUSE |(av != &main_arena ? NON_MAIN_ARENA : 0));set_head (remainder, remainder_size | PREV_INUSE);check_malloced_chunk (av, victim, nb);void *p = chunk2mem (victim); //獲得用戶部分指針alloc_perturb (p, bytes);return p; //返回應用層}/* When we are using atomic ops to free fast chunks we can gethere for all block sizes. *//* 若top chunk也無法滿足要求,則檢查fast bins中是否存在空閑chunk若存在,則將所有的fast bins合并,然后嘗試從small bins和large bins獲取下標 */else if (have_fastchunks (av)){malloc_consolidate (av);/* restore original bin index */if (in_smallbin_range (nb))idx = smallbin_index (nb);elseidx = largebin_index (nb);}/*Otherwise, relay to handle system-dependent cases*/else{/* 所有方法都行不通,最后的解決方案是向系統申請一塊新的內存 */void *p = sysmalloc (nb, av);if (p != NULL)alloc_perturb (p, bytes);return p;}} }

參考資料

《Glibc內存管理Ptmalloc源代碼分析》

總結

以上是生活随笔為你收集整理的glibc-2.23学习笔记(一)—— malloc部分源码分析的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲综合色视频在线观看 | 视频成人永久免费视频 | 伊人天天狠天天添日日拍 | 人人舔人人爽 | 免费日韩视频 | 亚洲精品一区二区三区四区高清 | 久久精品美女视频网站 | 日本精品一区二区三区在线播放视频 | 天天色欧美 | www.av免费 | 狠狠操夜夜操 | 天天操网 | 99久久综合国产精品二区 | 国产欧美最新羞羞视频在线观看 | 黄色的视频网站 | 亚洲女同videos | 国产永久网站 | 久草电影网 | 波多野结衣一区二区三区中文字幕 | 九九热在线观看视频 | 亚洲精品777| 91插插视频| 国产一级在线播放 | 伊人影院在线观看 | 日韩中文字幕免费视频 | av网址最新 | av中文字幕网址 | 一区二区不卡在线观看 | 99久久精品视频免费 | 国产资源在线免费观看 | av7777777 | 手机看片中文字幕 | 蜜臀久久99精品久久久无需会员 | 国产综合精品一区二区三区 | 中文欧美字幕免费 | 五月婷婷激情五月 | 丁香婷婷激情啪啪 | 中文字幕在线播放日韩 | 亚洲精品国偷自产在线99热 | 色婷婷 亚洲 | 在线观看日本高清mv视频 | 国产精品女 | 中文字幕在线观看完整版电影 | 在线免费观看的av网站 | 福利视频第一页 | 深爱激情av | 在线香蕉视频 | 精品一区二区电影 | 欧美资源在线观看 | 国产美女视频免费 | 亚洲综合视频在线播放 | 五月天色婷婷丁香 | 国产成人免费在线 | 国产一级精品绿帽视频 | 免费看污在线观看 | 亚洲精品一区二区三区新线路 | 亚洲男模gay裸体gay | av网址在线播放 | 国产无套一区二区三区久久 | 在线一区电影 | www.夜色.com | 欧美一进一出抽搐大尺度视频 | 久久a热6| 国产美女网站在线观看 | 久久国产精品免费一区 | 欧美日韩一区二区在线观看 | 91成人免费视频 | 999国内精品永久免费视频 | 香蕉在线观看 | 久久特级毛片 | 国产精品视频在线看 | 欧美日韩一区二区三区视频 | 国产丝袜制服在线 | 精品99在线视频 | 91精品国产高清自在线观看 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产成人久久av免费高清密臂 | 亚洲最快最全在线视频 | 精品国模一区二区三区 | 国产资源在线观看 | 成人在线免费视频观看 | 999视频在线播放 | 一区二区三区在线免费 | 人人爱爱人人 | 国产玖玖精品视频 | 国产人成看黄久久久久久久久 | 国产精品自在欧美一区 | 亚洲欧美综合 | 三级免费黄 | 久久久久国产一区二区三区四区 | 在线亚洲午夜片av大片 | av+在线播放在线播放 | 久草视频在线观 | 久久国产电影 | 国产视频久久 | 日本中文字幕在线观看 | 日韩成人邪恶影片 | 欧美成人a在线 | 国产精品久久久久久久久久久免费看 | 亚洲视频在线观看网站 | 国产精品日韩在线播放 | 亚洲国产成人久久综合 | 国产成人精品在线播放 | 日本一区二区免费在线观看 | 天天躁日日躁狠狠躁av中文 | 欧美污污视频 | 日韩三级中文字幕 | 久久久久久久免费看 | 久久日韩精品 | 五月激情六月丁香 | 国产不卡免费av | 少妇精品久久久一区二区免费 | 色干干| 欧美日韩国产精品一区二区亚洲 | 99精品一级欧美片免费播放 | 亚洲天天综合 | 综合激情婷婷 | 天天操天天干天天 | 午夜国产一区二区三区四区 | 日韩综合精品 | 91x色| 久久首页| 日韩欧美一区二区不卡 | 九色91福利 | 国产高清视频色在线www | www黄色com | 在线只有精品 | 久久97久久97精品免视看 | 福利片视频区 | 亚洲一区视频免费观看 | 日韩免费| 97香蕉超级碰碰久久免费软件 | 国产视频第二页 | 精品一区精品二区高清 | 九九九九精品九九九九 | 久久视频在线观看免费 | 在线黄色免费 | 精品视频免费久久久看 | 在线日韩中文字幕 | 98精品国产自产在线观看 | 500部大龄熟乱视频使用方法 | 毛片精品免费在线观看 | 日韩网页| 99久e精品热线免费 99国产精品久久久久久久久久 | 91亚洲国产成人久久精品网站 | 亚洲精品乱码久久久久久蜜桃动漫 | 日韩xxxx视频| 99精品免费久久久久久久久日本 | 久久无码av一区二区三区电影网 | 国产 日韩 中文字幕 | 一级理论片在线观看 | 91av播放| 国产裸体bbb视频 | 国产成人无码AⅤ片在线观 日韩av不卡在线 | 制服丝袜天堂 | 最近中文字幕在线播放 | 丝袜美女视频网站 | www91在线观看 | 黄色福利网 | 国产高清专区 | 九九99| 久草视频网| 久久国产免费看 | 免费看三级网站 | 91精品国产99久久久久久红楼 | 成人黄色在线 | 成人影音av | 久久av免费 | 国产女v资源在线观看 | 视频精品一区二区三区 | 999ZYZ玖玖资源站永久 | 插婷婷| 亚洲一区二区精品视频 | 亚洲网站在线看 | 特级黄录像视频 | 亚洲精品av在线 | 国产精品综合久久久久久 | 色婷久久 | 精品欧美一区二区精品久久 | 亚洲美女精品区人人人人 | 欧美日韩国产一区二区三区在线观看 | 精品麻豆入口免费 | 国产va在线观看免费 | 蜜桃av久久久亚洲精品 | 久久精品免费看 | 亚洲美女视频在线 | 在线免费色视频 | 五月天丁香 | 国产精品手机在线 | 欧美日韩综合在线观看 | 国产亚洲精品久久久久久无几年桃 | av黄在线播放| 久久久99精品免费观看乱色 | 免费av在线播放 | 伊人天天狠天天添日日拍 | 美女久久精品 | 国产精品嫩草55av | 国产精品入口麻豆www | 欧美 日韩 国产 成人 在线 | 色婷婷88av视频一二三区 | 欧美日韩调教 | 日韩av午夜在线观看 | 久久久久久久免费 | 丁香六月综合网 | 国产丝袜网站 | 国产区网址| 99在线免费观看视频 | 一级黄色视屏 | 99精品久久只有精品 | 丁香六月婷婷开心 | 婷婷丁香视频 | 日韩视频免费观看高清完整版在线 | av免费电影在线观看 | 91精品久久久久久综合乱菊 | 久久亚洲综合国产精品99麻豆的功能介绍 | 成年美女黄网站色大片免费看 | 亚洲午夜久久久久久久久电影网 | 一区二区三区四区不卡 | 中文字幕资源在线观看 | 麻豆视频www | 午夜精品视频福利 | 日本性高潮视频 | 91视频91色| 日本中文字幕网址 | 一区二区三区免费在线 | 69视频在线播放 | 精品国产人成亚洲区 | 欧美在线一级片 | 欧美最猛性xxxxx免费 | 欧美在线观看视频免费 | www.五月婷婷 | 少妇视频一区 | 96亚洲精品久久 | 欧美韩国日本在线 | 欧美午夜寂寞影院 | 久久99国产视频 | 波多野结衣视频网址 | 日日爽天天爽 | 麻豆激情电影 | 99婷婷 | 精品久久久久国产 | www免费网站在线观看 | .国产精品成人自产拍在线观看6 | 日本成址在线观看 | 国产精品久久久久久久久蜜臀 | 亚洲性少妇性猛交wwww乱大交 | www.久热| 国产一级片观看 | 免费大片av | 99精品视频在线观看视频 | 成人污视频在线观看 | 99精彩视频在线观看免费 | 国内外成人免费在线视频 | 91资源在线视频 | 色网站中文字幕 | 国产一级二级三级视频 | 久久婷婷网 | 日韩欧美视频一区二区 | 国产一级在线免费观看 | 久久免费观看视频 | 国产精品自产拍在线观看蜜 | 免费在线观看黄网站 | 三级黄色网址 | 国产色视频一区二区三区qq号 | 国产日韩欧美自拍 | 一区二区三区日韩在线 | 国产精品自在线拍国产 | 亚洲精品视频在线看 | 99精品在线视频播放 | 超碰在线人人 | 亚洲精品高清视频 | 91人人干 | 亚洲午夜久久久久久久久电影网 | 国产精品1区2区 | 亚洲三级精品 | 国产日韩视频在线 | 欧美电影在线观看 | 国产精品久久久久久久久久久免费看 | 国产成人精品午夜在线播放 | 久草在线资源视频 | 免费一级毛毛片 | 久久爽久久爽久久av东京爽 | 深爱婷婷| 亚洲国产精品va在线看 | 亚洲闷骚少妇在线观看网站 | 国产伦精品一区二区三区免费 | 毛片永久新网址首页 | 久久久影院官网 | 日韩免费电影一区二区三区 | 国产专区视频 | 日韩在线视频国产 | 天天搞天天干天天色 | 在线观看亚洲a | 亚洲一级黄色 | 免费情趣视频 | 免费视频在线观看网站 | 五月天激情综合 | 天堂av在线免费 | 色全色在线资源网 | 精品一区二区在线观看 | 精品国产一区在线观看 | 免费三级黄| 天天射天天爽 | 国产人成看黄久久久久久久久 | 草久在线播放 | 日本中文在线观看 | 在线观看麻豆av | 国产成人黄色网址 | 午夜精品一区二区三区视频免费看 | 97免费中文视频在线观看 | 国产三级视频 | 97电影院网 | 黄色毛片视频免费观看中文 | 天堂网一区二区 | 国产精品12345 | 天天综合婷婷 | 欧美 日韩 成人 | 国产在线观看,日本 | 久久久久久国产精品久久 | 一区二区视频在线观看免费 | 国产成人av电影 | 日日夜夜人人精品 | 一区二区三区国 | 亚洲精品国产精品国自产观看 | 91av99| 国产97免费| 81国产精品久久久久久久久久 | 正在播放一区二区 | 亚州天堂 | 亚洲成人av影片 | 久久伊人色综合 | 在线天堂v | 成人在线观看资源 | 国产精品久久久久久久久久久久久 | 精品一区 精品二区 | 在线视频一区二区 | 亚洲精品字幕在线观看 | 国产群p视频 | 美女网站在线看 | 美女视频黄,久久 | 婷婷激情综合 | 久久精品国产一区 | av片中文字幕 | 天天插天天 | 亚洲精品tv久久久久久久久久 | 99亚洲视频 | 亚洲黄色小说网址 | 午夜婷婷在线观看 | www狠狠操 | 天天撸夜夜操 | 99欧美精品 | 久久刺激视频 | 激情五月婷婷网 | 国产精品视频 | 成人动漫视频在线 | 日韩在线观看影院 | 日韩二区三区在线 | 久久亚洲热 | 精品高清美女精品国产区 | 国产亚洲一区二区在线观看 | 国产精品一区在线观看 | 国产精品嫩草影院99网站 | 欧美va天堂在线电影 | av在线永久免费观看 | 久久视频一区 | 欧美成人影音 | 久久综合免费 | 91精品国产91久久久久 | 日日干夜夜骑 | 日韩久久视频 | 国内精品久久久久影院男同志 | 免费在线播放av电影 | 西西www444 | 欧美成人视 | av丝袜天堂 | 免费观看一级一片 | 午夜色性片| 97超碰精品 | 中文字幕精品一区二区精品 | av在线电影网站 | 久久手机免费视频 | 亚洲成人一二三 | 天天色成人网 | 国产美女黄网站免费 | 韩国av一区二区三区在线观看 | 国产伦精品一区二区三区四区视频 | 成人a视频 | 国产精品第十页 | 中文字幕在线日亚洲9 | 成人国产精品入口 | bbw av| www.夜夜操.com | 成人av在线直播 | 九九热1 | 999成人免费视频 | 天天干天天操人体 | 9在线观看免费高清完整版在线观看明 | 日本爱爱片 | 香蕉精品视频在线观看 | 美女视频黄是免费的 | 国产裸体视频bbbbb | 天天色天天上天天操 | 中文字幕网站 | 久久久久久黄色 | 香蕉视频免费在线播放 | 国产精品高清在线观看 | 中文字幕精品一区二区三区电影 | 四虎国产精品免费观看视频优播 | 国产成人av在线影院 | a天堂免费 | 亚洲精品美女免费 | 日韩精品免费在线视频 | 国产在线观看污片 | 中文字幕永久免费 | www.天天射| 91亚洲精品久久久 | 久久这里精品视频 | 国产明星视频三级a三级点| 一区二区三区精品久久久 | 丁香婷婷综合色啪 | 日韩r级电影在线观看 | 国产精品6| 91亚洲精品久久久中文字幕 | 色综合亚洲精品激情狠狠 | 永久黄网站色视频免费观看w | 91九色丨porny丨丰满6 | 久久av福利 | www五月天| 亚洲一级黄色片 | 日韩精品免费在线视频 | 亚洲黄色免费在线看 | 久青草影院 | 欧美婷婷色 | 九色视频网址 | www.成人久久| 一区二区三区在线观看中文字幕 | 日操操 | 亚洲精品久久久久中文字幕m男 | 久久久久久久国产精品影院 | 99久久日韩精品免费热麻豆美女 | 免费黄色特级片 | 黄色av电影在线观看 | 午夜视频在线网站 | 日韩在线视频免费播放 | 涩涩网站在线看 | 久久成人麻豆午夜电影 | 久久999精品 | 正在播放亚洲精品 | 日韩欧美高清视频在线观看 | 玖玖色在线观看 | 欧美小视频在线观看 | 99久久综合国产精品二区 | 久久天堂网站 | 色激情在线 | 国产美女在线免费观看 | 免费热情视频 | 黄色国产精品 | 美女免费视频黄 | 插久久 | 中文字幕国产一区 | 成人免费视频观看 | 欧美日韩精品在线播放 | 亚洲精品理论片 | 久久99精品国产麻豆婷婷 | 日韩av中文字幕在线 | 亚洲va天堂va欧美ⅴa在线 | 一级黄色大片 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 午夜电影久久久 | 国产破处视频在线播放 | 日韩高清精品一区二区 | 波多野结衣动态图 | 在线观看av中文字幕 | 精品国内自产拍在线观看视频 | 97人人射 | 国产69精品久久app免费版 | 人人澡人人舔 | 免费看片网站91 | 日韩精品一区二区在线观看 | 久久国产亚洲精品 | 插婷婷 | 成人在线免费视频 | 日韩一区二区免费在线观看 | 久久成人黄色 | 最新国产中文字幕 | 91九色精品女同系列 | 亚洲一区尤物 | 丁香视频免费观看 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 综合色天天 | 亚洲激情p| 国产一级性生活视频 | 日本一区二区三区免费观看 | 人人爽人人爽人人片av免 | 久久综合久久八八 | 久久成人综合 | 女人魂免费观看 | 日本精品一区二区三区在线观看 | 亚洲成人黄色在线观看 | 九九综合久久 | 狠狠狠狠狠狠狠狠 | 美女黄网站视频免费 | 国产精品久久久久久久午夜片 | 视频一区视频二区在线观看 | 九九九视频在线 | 国产99久久久国产精品免费二区 | 欧美激情综合五月色丁香 | 亚洲在线网址 | 日韩av综合网站 | 国产黄色精品视频 | 一区二区影院 | a级免费观看 | 亚洲最大成人网4388xx | 91在线蜜桃臀 | 国产精品一区二区三区四 | 精品人人爽| av福利在线免费观看 | 午夜精品av在线 | 中文一区二区三区在线观看 | 久操中文字幕在线观看 | 国产视频资源在线观看 | 亚洲精品播放 | 日韩免费观看一区二区三区 | 91视频在线网址 | 亚洲精品高清视频在线观看 | av电影在线观看完整版一区二区 | 中文字幕中文字幕在线中文字幕三区 | 国产69精品久久99的直播节目 | 狠狠操操操 | 夜夜干夜夜 | 操操操com | 欧美资源 | 亚州av网站 | 亚洲激情视频在线 | 日本激情视频中文字幕 | 成人午夜性影院 | 国产 在线观看 | 五月婷网 | 黄色三级网站在线观看 | 天天色综合三 | 国产精品一区二区久久精品 | 日韩在线免费高清视频 | 天天爱天天射天天干天天 | 99热最新精品 | 国产91av视频在线观看 | 91成人久久 | 久久免费视频观看 | 免费观看成人网 | 国产一区免费视频 | 色成人亚洲 | 国产高清视频网 | 日韩精品一区二区三区在线播放 | 日本在线观看一区二区三区 | 精品一区二区在线看 | av短片在线 | 奇米7777狠狠狠琪琪视频 | 最新国产一区二区三区 | 最近免费中文字幕 | 国产麻豆精品免费视频 | 欧美性生活一级片 | 久久99精品国产99久久 | 在线观看免费视频你懂的 | 天天色天天爱天天射综合 | 在线91av| 国产福利小视频在线 | 成人影片在线免费观看 | 99精品免费视频 | 亚洲 综合 国产 精品 | 久久精品2 | 五月婷婷视频在线 | 天天操天天射天天爱 | 激情视频综合网 | 精品国产一区二区三区久久久蜜月 | 亚洲精品女人久久久 | 国产精品青草综合久久久久99 | 亚洲精品www | 日韩色一区二区三区 | 中文字幕日韩无 | av福利免费 | 黄色网www| 国产精品1区 | 国产精品久久久一区二区三区网站 | 久久久久亚洲精品中文字幕 | 久久爽久久爽久久av东京爽 | 久久久九九 | 91九色性视频| 欧美大片大全 | 激情偷乱人伦小说视频在线观看 | 国产一区二区三区午夜 | 久久99久国产精品黄毛片入口 | 国产乱对白刺激视频不卡 | 一区二区三区国产欧美 | 国产不卡精品视频 | 久久精品免费电影 | 中文字幕文字幕一区二区 | 日本在线中文在线 | 久久不卡电影 | 亚洲成人家庭影院 | 日韩欧美一区二区在线播放 | 国产一区高清在线观看 | 免费日韩av电影 | 三级在线视频播放 | 色av资源网 | 亚洲日本黄色 | 久草视频视频在线播放 | 在线之家免费在线观看电影 | av电影在线观看完整版一区二区 | 精品国内自产拍在线观看视频 | 日本一区二区三区免费观看 | 日韩高清在线不卡 | 国产xvideos免费视频播放 | 国产流白浆高潮在线观看 | 91在线精品播放 | 婷婷久久国产 | 一区二区三区av在线 | 中文字幕人成一区 | 久久久久久国产精品亚洲78 | 97视频总站| 亚洲综合最新在线 | 丁香高清视频在线看看 | 国产视频1 | 黄色成人在线网站 | 欧美成a人片在线观看久 | 久久久www成人免费毛片 | 国产高清视频在线观看 | 一级黄色片在线 | 在线观看日韩中文字幕 | 国产亚洲精品电影 | 丝袜网站在线观看 | 狠狠色丁香婷婷综合久小说久 | 免费在线黄色av | 亚洲丁香日韩 | 国产色小视频 | 日日日爽爽爽 | 午夜精品久久久久久99热明星 | 日韩精品免费一区二区在线观看 | 欧美日韩视频一区二区 | 欧美激情视频在线免费观看 | 91精品视频一区二区三区 | 操操操com| 国产最新视频在线 | 97国产精品 | 久久99视频免费观看 | av亚洲产国偷v产偷v自拍小说 | 96国产在线 | 日韩视频免费在线 | 国产精品一区二区你懂的 | 国产91成人在在线播放 | 一区二区精品在线 | 国产精彩视频 | 久99久视频 | 久久精品99 | 久久精品视频在线免费观看 | 国产精品观看 | 不卡av在线免费观看 | 综合色综合| 黄色网大全 | 亚洲美女视频网 | 欧美日韩综合在线观看 | 久艹视频免费观看 | 国产一级视频在线观看 | 国产福利91精品一区二区三区 | 午夜精品视频一区 | 五月天.com | 国产91全国探花系列在线播放 | 国产一级一级国产 | 日韩黄色在线电影 | 亚洲欧美视频在线观看 | 一区二区三区四区久久 | 亚洲婷婷网 | 国产精品一区免费观看 | 国产精品国产三级在线专区 | 久久日韩精品 | 国产午夜三级一二三区 | 国产高清在线一区 | 成人网页在线免费观看 | 91在线看视频 | 国产精品av免费 | 久久精品草 | 日韩精选在线 | 成人网中文字幕 | www一起操 | 亚洲成人影音 | 精品视频资源站 | 精品免费久久 | 成人欧美在线 | a天堂在线看 | 日韩av影视 | 丁香六月激情婷婷 | 福利视频一二区 | 人人插人人费 | 人人干人人搞 | 久久九精品 | 日韩国产精品久久久久久亚洲 | 久久精品久久精品久久39 | 亚洲国内精品视频 | 午夜精品久久久久久久久久久久久久 | 摸bbb搡bbb搡bbbb | 久久av免费| 国产精品欧美久久久久无广告 | 去看片 | 人人干免费 | 久久精品国产美女 | 欧美精品久久久久久久久老牛影院 | 在线精品视频在线观看高清 | 欧美国产一区二区 | 色wwww| 激情综合久久 | 一区二区不卡视频在线观看 | 亚洲精品视频免费观看 | 国产婷婷久久 | 国产色婷婷 | 色99久久 | 国产精品24小时在线观看 | 97超碰资源总站 | 国产视频资源 | 亚洲视屏| 国产福利在线 | 日韩精品一区二区三区三炮视频 | 国产不卡在线观看视频 | 精品国产伦一区二区三区 | 激情综合网五月激情 | 免费久久久久久 | 色婷婷狠狠操 | 91高清一区 | 毛片网免费 | 亚洲区另类春色综合小说校园片 | 国产资源在线视频 | 精品三级av | 午夜精品福利一区二区三区蜜桃 | 97色在线视频 | 99中文字幕视频 | 亚洲国产精品女人久久久 | 狠狠干天天操 | 国产无套一区二区三区久久 | 免费三级黄色片 | 成人cosplay福利网站 | 日韩电影中文字幕在线观看 | 久久精品艹 | 天天曰天天曰 | 最近中文字幕高清字幕在线视频 | 国产精品欧美激情在线观看 | 久久久影院一区二区三区 | 91丨九色丨蝌蚪丨对白 | 亚洲精品在线视频播放 | 国产欧美在线一区 | 色97在线| 久久999久久| 国产精品专区在线 | 91字幕| 超碰人人国产 | 欧美国产日韩中文 | 2024国产精品视频 | 精品国产乱码久久久久久1区二区 | 婷婷日韩 | 欧美在线观看视频一区二区三区 | 国产在线专区 | 日韩av一区二区在线播放 | 人人添人人澡 | 91av综合 | 欧美日韩中文国产 | 一区二区精品在线视频 | 97综合视频| 一级黄色免费 | 久久久久婷 | 综合色站导航 | 国产日韩精品在线观看 | 五月婷婷电影网 | 美女av电影| 欧美肥妇free | 69精品在线观看 | 欧美日韩中文在线观看 | 麻豆传媒在线免费看 | 日日干日日色 | 久久精品视频网址 | 国产视频中文字幕在线观看 | 国产一级免费观看视频 | 91av网址| 在线午夜| 91高清免费观看 | 国产精品www | 久久国产精品一区二区三区 | 欧美成人在线网站 | 国产一区在线不卡 | 亚洲欧美日本国产 | 黄色av播放| 在线电影 一区 | 国产成人精品综合 | 91成人网页版 | 欧美日韩国产在线观看 | 五月开心激情网 | 亚洲精品自拍 | 国产精品久久久久毛片大屁完整版 | 日韩成人一级大片 | 久操伊人| 亚洲精品国产精品乱码在线观看 | 国产免费一区二区三区网站免费 | 精品99视频| 国内精品99| 欧美成人亚洲成人 | 久久免费视频网站 | 免费在线播放av电影 | 久久久免费播放 | 日日操日日插 | av电影免费在线播放 | 久久艹欧美 | 精品久久电影 | 韩日视频在线 | 亚洲欧洲日韩 | 欧美大片aaa| 丁香花在线观看免费完整版视频 | 五月天天av| 欧美最猛性xxxxx亚洲精品 | 九色免费视频 | 免费看片亚洲 | 人人精久| 国产免费观看av | 综合网在线视频 | www日韩欧美 | 99久久婷婷国产综合精品 | 成人黄色电影在线观看 | 国产香蕉视频在线播放 | 色婷婷亚洲 | 高清免费av在线 | 久久久久 免费视频 | 久久免费av | 国产精品电影一区二区 | 国产原创在线观看 | 亚洲精品视频在 | 波多野结衣视频在线 | 黄污污网站 | 亚洲电影免费 | 欧美激情精品久久久久久免费印度 | 欧美日性视频 | 日韩美女一级片 | 欧美日韩亚洲在线观看 | 青草视频在线播放 | 超碰在线91| 日日插日日干 | 日韩在线网址 | 91丨九色丨高潮丰满 | 欧美性另类| 中文字幕高清免费日韩视频在线 | 五月天伊人 | 精品国产伦一区二区三区观看方式 | 久草国产精品 | 国产成人91 | 国产精品久久久久久久99 | 国产一区二区高清 | 手机成人在线电影 | 国产精品女主播一区二区三区 | 91最新在线视频 | 开心激情久久 | 精品国内自产拍在线观看视频 | 国产视频在线免费观看 | 日韩电影在线观看中文字幕 | 免费av 在线| 久久综合九色综合久99 | 99久久影视| 国产成人黄色在线 | 日免费视频| av电影免费在线看 | 国产老妇av | www.夜夜夜 | 精品国产欧美一区二区 | 91av电影网 | 欧美一区二区三区激情视频 | 日韩高清免费在线观看 | 成人a在线观看 | 国产福利精品视频 | 成年人国产在线观看 | 欧美精品一区二区三区一线天视频 | 精品国产免费久久 | 天天翘av| 欧美精品在线观看 | av免费在线观 | 国产成人亚洲在线观看 | 久草国产精品 | 久久精品看片 | 日韩av视屏在线观看 | 麻豆国产精品va在线观看不卡 | 中文字幕色婷婷在线视频 | 亚洲三级视频 | 日韩中文字幕免费在线播放 | 最新av在线免费观看 | 亚洲免费婷婷 | 久久久私人影院 | 国产一区二区在线观看免费 | 在线视频你懂得 | 久久久精品国产一区二区电影四季 | 日韩欧美在线免费观看 | a视频在线播放 | 伊人五月天.com | 福利区在线观看 | 一级欧美一级日韩 | 欧洲一区二区在线观看 | 人人澡视频 | 色婷婷精品大在线视频 | 色噜噜在线观看 | 波多野结衣动态图 | 国产精品久久久久aaaa九色 | 丁香六月婷婷开心 | 色视频网站在线观看一=区 a视频免费在线观看 | 亚洲国产成人在线观看 | 免费中文字幕 | 日韩videos| 国产乱对白刺激视频在线观看女王 | 天天干天天摸天天操 | 国产日产av | japanesefreesexvideo高潮| 福利av影院| 91中文视频 | 国产一区二区三区免费视频 | 国产精品美女视频 | 久草在线一免费新视频 | 在线看片视频 | 狠狠干五月天 | 日日摸日日 | 337p日本欧洲亚洲大胆裸体艺术 | 日本三级中文字幕在线观看 | 亚洲一级国产 | 日韩在线免费电影 | 国产精品高潮呻吟久久av无 | 黄色毛片网站在线观看 | 国产理论一区二区三区 | 91成人在线看 | 黄色www免费| 午夜久久久久久久久 | 欧美日韩激情视频8区 | 国产精品美女www爽爽爽视频 | 日韩在线视频二区 | 久久久久国产免费免费 | 黄色一级性片 | 久久黄网站 | 国语精品免费视频 | www婷婷 | 天堂网av 在线 | 日韩免费观看一区二区 | 在线视频app | 久久蜜臀一区二区三区av | 久久九九网站 | 国产亚洲人 | 国产精品6 | 免费在线色视频 | 国产成人99久久亚洲综合精品 | 国产精品九九九九九九 | 手机在线黄色网址 | 国产午夜在线观看 | 最新av网址在线观看 | 91系列在线 | 97视频亚洲 | 亚洲精品国内 | 日韩免费高清在线 | 久久撸在线视频 | 欧美日韩免费一区二区三区 | 婷婷久久一区 | 欧美日韩综合在线 | 国产精品久久久久三级 | 一色屋精品视频在线观看 | 日韩国产精品一区 | 97精品久久| 国产一级片视频 | 日韩网站一区二区 | 999精品视频 | 色姑娘综合| 免费a网站| 午夜av免费在线观看 | av在线网站观看 | 国产精品岛国久久久久久久久红粉 | 91最新在线视频 | 婷婷深爱网 | 日日干天夜夜 | 欧美精品v国产精品v日韩精品 | 天堂中文在线视频 | 韩国精品一区二区三区六区色诱 | 天天操天天干天天摸 | 国产精品一区二区视频 | 91麻豆精品国产 | 国产黄色片一级 | 在线观看中文av | 精品国产乱码久久久久久浪潮 | 最近中文字幕免费视频 | 国内外成人免费在线视频 | 色婷婷a | 久久久久99精品成人片三人毛片 | 91.精品高清在线观看 | 999在线精品 | 日韩免费网址 | 五月天堂色| 日韩视频免费 | av电影不卡在线 | 久久久久久久久久电影 | 999久久久久久久久 69av视频在线观看 | 丁香五月亚洲综合在线 | 日韩在线第一区 | 四虎天堂 | 国产99久久九九精品免费 | 国产精品99久久免费黑人 |