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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

nginx源码分析—数组结构ngx_array_t

發(fā)布時間:2024/2/28 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx源码分析—数组结构ngx_array_t 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Content

0.?

1.?數(shù)組結構

1.1 ngx_array_t結構

1.2 ngx_array_t的邏輯結構

2.?數(shù)組操作

2.1?創(chuàng)建數(shù)組

2.2?銷毀數(shù)組

2.3?添加1個元素

3.?一個例子

3.1?代碼

3.2?如何編譯

3.3?運行結果

4.?小結

0. 序

本文開始介紹nginx的容器,先從最簡單的數(shù)組開始。

數(shù)組實現(xiàn)文件:文件:./src/core/ngx_array.h/.c。.表示nginx-1.0.4代碼目錄,本文為/usr/src/nginx-1.0.4。

1. 數(shù)組結構

1.1 ngx_array_t結構

nginx的數(shù)組結構為ngx_array_t,定義如下。

[cpp]?view plaincopy
  • struct?ngx_array_s?{??
  • ????void????????*elts;????//數(shù)組數(shù)據(jù)區(qū)起始位置??
  • ????ngx_uint_t???nelts;???//實際存放的元素個數(shù)??
  • ????size_t???????size;????//每個元素大小??
  • ????ngx_uint_t???nalloc;??//數(shù)組所含空間個數(shù),即實際分配的小空間的個數(shù)??
  • ????ngx_pool_t??*pool;????//該數(shù)組在此內(nèi)存池中分配??
  • };??
  • ???
  • typedef?struct?ngx_array_s??ngx_array_t;??
  • sizeof(ngx_array_t)=20。由其定義可見,nginx的數(shù)組也要從內(nèi)存池中分配。將分配nalloc個大小為size的小空間,實際分配的大小為(nalloc * size)。詳見下文的分析。

    1.2 ngx_array_t的邏輯結構

    ngx_array_t結構引用了ngx_pool_t結構,因此本文參考nginx-1.0.4源碼分析—內(nèi)存池結構ngx_pool_t及內(nèi)存管理一文畫出相關結構的邏輯圖,如下。注:本文采用UML的方式畫出該圖。?

    ?

    ?2. 數(shù)組操作

    數(shù)組操作共有5個,如下。

    [cpp]?view plaincopy
  • //創(chuàng)建數(shù)組??
  • ngx_array_t*ngx_array_create(ngx_pool_t?*p,?ngx_uint_t?n,?size_t?size);??
  • ???
  • //銷毀數(shù)組??
  • voidngx_array_destroy(ngx_array_t?*a);??
  • ???
  • //向數(shù)組中添加元素??
  • void*ngx_array_push(ngx_array_t?*a);??
  • void*ngx_array_push_n(ngx_array_t?*a,?ngx_uint_t?n);??
  • ???
  • //初始化數(shù)組??
  • staticngx_inline?ngx_int_t??
  • ngx_array_init(ngx_array_t*array,?ngx_pool_t?*pool,?ngx_uint_t?n,?size_t?size)??
  • 因?qū)崿F(xiàn)都很簡單,本文簡單分析前3個函數(shù)。

    2.1 創(chuàng)建數(shù)組

    創(chuàng)建數(shù)組的操作實現(xiàn)如下,首先分配數(shù)組頭(20B),然后分配數(shù)組數(shù)據(jù)區(qū),兩次分配均在傳入的內(nèi)存池(pool指向的內(nèi)存池)中進行。然后簡單初始化數(shù)組頭并返回數(shù)組頭的起始位置。

    [cpp]?view plaincopy
  • ngx_array_t*??
  • ngx_array_create(ngx_pool_t*p,?ngx_uint_t?n,?size_t?size)??
  • {??
  • ????ngx_array_t?*a;??
  • ???
  • ????a?=?ngx_palloc(p,sizeof(ngx_array_t));??//從內(nèi)存池中分配數(shù)組頭??
  • ????if?(a?==?NULL)?{??
  • ????????return?NULL;??
  • ????}??
  • ???
  • ????a->elts?=?ngx_palloc(p,n?*?size);??//接著分配n*size大小的區(qū)域作為數(shù)組數(shù)據(jù)區(qū)??
  • ????if?(a->elts?==?NULL)?{??
  • ????????return?NULL;??
  • ????}??
  • ???
  • ????a->nelts?=?0;????//初始化??
  • ????a->size?=?size;??
  • ????a->nalloc?=?n;??
  • ????a->pool?=?p;??
  • ???
  • ????return?a;??//返回數(shù)組頭的起始位置??
  • }??
  • 創(chuàng)建數(shù)組后內(nèi)存池的物理結構圖如下。

    ?

    ?2.2 銷毀數(shù)組

    銷毀數(shù)組的操作實現(xiàn)如下,包括銷毀數(shù)組數(shù)據(jù)區(qū)和數(shù)組頭。這里的銷毀動作實際上就是修改內(nèi)存池的last指針,并沒有調(diào)用free等釋放內(nèi)存的操作,顯然,這種維護效率是很高的。

    [cpp]?view plaincopy
  • void??
  • ngx_array_destroy(ngx_array_t*a)??
  • {??
  • ????ngx_pool_t?*p;??
  • ???
  • ????p?=?a->pool;??
  • ???
  • ????if?((u_char?*)?a->elts+?a->size?*?a->nalloc?==?p->d.last)?{??//先銷毀數(shù)組數(shù)據(jù)區(qū)??
  • ????????p->d.last?-=a->size?*?a->nalloc;??//設置內(nèi)存池的last指針??
  • ????}??
  • ???
  • ????if?((u_char?*)?a?+sizeof(ngx_array_t)?==?p->d.last)?{??//接著銷毀數(shù)組頭??
  • ????????p->d.last?=?(u_char*)?a;??????????//設置內(nèi)存池的last指針??
  • ????}??
  • }??
  • 2.3 添加1個元素

    向數(shù)組添加元素的操作有兩個,ngx_array_push和ngx_array_push_n,分別添加一個和多個元素。

    但實際的添加操作并不在這兩個函數(shù)中完成,例如ngx_array_push返回可以在該數(shù)組數(shù)據(jù)區(qū)中添加這個元素的位置,ngx_array_push_n則返回可以在該數(shù)組數(shù)據(jù)區(qū)中添加n個元素的起始位置,而添加操作即在獲得添加位置之后進行,如后文的例子。

    [cpp]?view plaincopy
  • void?*??
  • ngx_array_push(ngx_array_t*a)??
  • {??
  • ????void???????*elt,?*new;??
  • ????size_t??????size;??
  • ????ngx_pool_t?*p;??
  • ???
  • ????if?(a->nelts?==a->nalloc)?{??//數(shù)組數(shù)據(jù)區(qū)滿??
  • ???
  • ????????/*?the?arrayis?full?*/??
  • ???
  • ????????size?=?a->size?*a->nalloc;??//計算數(shù)組數(shù)據(jù)區(qū)的大小??
  • ???
  • ????????p?=?a->pool;??
  • ???
  • ????????if?((u_char?*)a->elts?+?size?==?p->d.last??//若內(nèi)存池的last指針指向數(shù)組數(shù)據(jù)區(qū)的末尾??
  • ????????????&&p->d.last?+?a->size?<=?p->d.end)?//且內(nèi)存池未使用的區(qū)域可以再分配一個size大小的小空間??
  • ????????{??
  • ????????????/*?
  • ?????????????*?the?array?allocation?is?the?lastin?the?pool?
  • ?????????????*?and?there?is?space?for?newallocation?
  • ?????????????*/??
  • ???
  • ????????????p->d.last?+=a->size;??//分配一個size大小的小空間(a->size為數(shù)組一個元素的大小)??
  • ????????????a->nalloc++;???????????//實際分配小空間的個數(shù)加1??
  • ???
  • ????????}?else?{??
  • ????????????/*?allocate?a?new?array?*/??
  • ???
  • ????????????new?=ngx_palloc(p,?2?*?size);??//否則,擴展數(shù)組數(shù)據(jù)區(qū)為原來的2倍??
  • ????????????if?(new?==?NULL)?{??
  • ????????????????return?NULL;??
  • ????????????}??
  • ???
  • ????????????ngx_memcpy(new,a->elts,?size);//將原來數(shù)據(jù)區(qū)的內(nèi)容拷貝到新的數(shù)據(jù)區(qū)??
  • ????????????a->elts?=?new;??
  • ????????????a->nalloc?*=?2;?????????????//注意:此處轉(zhuǎn)移數(shù)據(jù)后,并未釋放原來的數(shù)據(jù)區(qū),內(nèi)存池將統(tǒng)一釋放??
  • ????????}??
  • ????}??
  • ???
  • ????elt?=?(u_char?*)a->elts?+?a->size?*?a->nelts;?//數(shù)據(jù)區(qū)中實際已經(jīng)存放數(shù)據(jù)的子區(qū)的末尾??
  • ????a->nelts++;??????????????????????????????????//即最后一個數(shù)據(jù)末尾,該指針就是下一個元素開始的位置??
  • ???
  • ????return?elt;????//返回該末尾指針,即下一個元素應該存放的位置??
  • }??
  • 由此可見,向數(shù)組中添加元素實際上也是在修該內(nèi)存池的last指針(若數(shù)組數(shù)據(jù)區(qū)滿)及數(shù)組頭信息,即使數(shù)組滿了,需要擴展數(shù)據(jù)區(qū)內(nèi)容,也只需要內(nèi)存拷貝完成,并不需要數(shù)據(jù)的移動操作,這個效率也是相當高的。

    下圖是向數(shù)組中添加10個整型元素后的一個例子。代碼可參考下文的例子。當然,數(shù)組元素也不僅限于例子的整型數(shù)據(jù),也可以是其他類型的數(shù)據(jù),如結構體等。

    ?

    3. 一個例子

    理解并掌握開源軟件的最好方式莫過于自己寫一些測試代碼,或者改寫軟件本身,并進行調(diào)試來進一步理解開源軟件的原理和設計方法。本節(jié)給出一個創(chuàng)建內(nèi)存池并從中分配一個數(shù)組的簡單例子。

    3.1代碼

    [cpp]?view plaincopy
  • /**?
  • ?*?ngx_array_t?test,?to?test?ngx_array_create,?ngx_array_push?
  • ?*/??
  • ??
  • #include?<stdio.h>??
  • #include?"ngx_config.h"??
  • #include?"ngx_conf_file.h"??
  • #include?"nginx.h"??
  • #include?"ngx_core.h"??
  • #include?"ngx_string.h"??
  • #include?"ngx_palloc.h"??
  • #include?"ngx_array.h"??
  • ??
  • volatile?ngx_cycle_t??*ngx_cycle;??
  • ??
  • void?ngx_log_error_core(ngx_uint_t?level,?ngx_log_t?*log,?ngx_err_t?err,??
  • ????????????const?char?*fmt,?...)??
  • {??
  • }??
  • ??
  • void?dump_pool(ngx_pool_t*?pool)??
  • {??
  • ????while?(pool)??
  • ????{??
  • ????????printf("pool?=?0x%x\n",?pool);??
  • ????????printf("??.d\n");??
  • ????????printf("????.last?=?0x%x\n",?pool->d.last);??
  • ????????printf("????.end?=?0x%x\n",?pool->d.end);??
  • ????????printf("????.next?=?0x%x\n",?pool->d.next);??
  • ????????printf("????.failed?=?%d\n",?pool->d.failed);??
  • ????????printf("??.max?=?%d\n",?pool->max);??
  • ????????printf("??.current?=?0x%x\n",?pool->current);??
  • ????????printf("??.chain?=?0x%x\n",?pool->chain);??
  • ????????printf("??.large?=?0x%x\n",?pool->large);??
  • ????????printf("??.cleanup?=?0x%x\n",?pool->cleanup);??
  • ????????printf("??.log?=?0x%x\n",?pool->log);??
  • ????????printf("available?pool?memory?=?%d\n\n",?pool->d.end?-?pool->d.last);??
  • ????????pool?=?pool->d.next;??
  • ????}??
  • }??
  • ??
  • void?dump_array(ngx_array_t*?a)??
  • {??
  • ????if?(a)??
  • ????{??
  • ????????printf("array?=?0x%x\n",?a);??
  • ????????printf("??.elts?=?0x%x\n",?a->elts);??
  • ????????printf("??.nelts?=?%d\n",?a->nelts);??
  • ????????printf("??.size?=?%d\n",?a->size);??
  • ????????printf("??.nalloc?=?%d\n",?a->nalloc);??
  • ????????printf("??.pool?=?0x%x\n",?a->pool);??
  • ??
  • ????????printf("elements:?");??
  • ????????int?*ptr?=?(int*)(a->elts);??
  • ????????for?(;?ptr?<?(int*)(a->elts?+?a->nalloc?*?a->size);?)??
  • ????????{??
  • ????????????printf("0x%x??",?*ptr++);??
  • ????????}??
  • ????????printf("\n");??
  • ????}??
  • }??
  • ??
  • int?main()??
  • {??
  • ????ngx_pool_t?*pool;??
  • ????int?i;??
  • ??
  • ????printf("--------------------------------\n");??
  • ????printf("create?a?new?pool:\n");??
  • ????printf("--------------------------------\n");??
  • ????pool?=?ngx_create_pool(1024,?NULL);??
  • ????dump_pool(pool);??
  • ??
  • ????printf("--------------------------------\n");??
  • ????printf("alloc?an?array?from?the?pool:\n");??
  • ????printf("--------------------------------\n");??
  • ????ngx_array_t?*a?=?ngx_array_create(pool,?10,?sizeof(int));??
  • ????dump_pool(pool);??
  • ??
  • ????for?(i?=?0;?i?<?10;?i++)??
  • ????{??
  • ????????int?*ptr?=?ngx_array_push(a);??
  • ????????*ptr?=?i?+?1;??
  • ????}??
  • ??
  • ????dump_array(a);??
  • ??
  • ????ngx_array_destroy(a);??
  • ????ngx_destroy_pool(pool);??
  • ????return?0;??
  • }??
  • 3.2如何編譯

    請參考nginx-1.0.4源碼分析—內(nèi)存池結構ngx_pool_t及內(nèi)存管理一文。本文編寫的makefile文件如下。

    [plain]?view plaincopy
  • CXX?=?gcc??
  • CXXFLAGS?+=-g?-Wall?-Wextra??
  • ???
  • NGX_ROOT?=/usr/src/nginx-1.0.4??
  • ???
  • TARGETS?=ngx_array_t_test??
  • TARGETS_C_FILE=?$(TARGETS).c??
  • ???
  • CLEANUP?=?rm-f?$(TARGETS)?*.o??
  • ???
  • all:$(TARGETS)??
  • ???
  • clean:??
  • $(CLEANUP)??
  • ???
  • CORE_INCS?=-I.?\??
  • -I$(NGX_ROOT)/src/core?\??
  • -I$(NGX_ROOT)/src/event?\??
  • -I$(NGX_ROOT)/src/event/modules?\??
  • -I$(NGX_ROOT)/src/os/unix?\??
  • -I$(NGX_ROOT)/objs?\??
  • ???
  • NGX_PALLOC?=$(NGX_ROOT)/objs/src/core/ngx_palloc.o??
  • NGX_STRING?=$(NGX_ROOT)/objs/src/core/ngx_string.o??
  • NGX_ALLOC?=$(NGX_ROOT)/objs/src/os/unix/ngx_alloc.o??
  • NGX_ARRAY?=$(NGX_ROOT)/objs/src/core/ngx_array.o??
  • ???
  • $(TARGETS):$(TARGETS_C_FILE)??
  • $(CXX)?$(CXXFLAGS)?$(CORE_INCS)?$(NGX_PALLOC)?$(NGX_STRING)$(NGX_ALLOC)?$(NGX_ARRAY)?$^?-o?$@??
  • 3.3運行結果 [plain]?view plaincopy
  • #?./ngx_array_t_test??
  • --------------------------------?create?a?new?pool:??
  • --------------------------------?pool?=?0x860b020?.d?.last?=?0x860b048??
  • ????.end?=?0x860b420??
  • ????.next?=?0x0??
  • ????.failed?=?0?.max?=?984??
  • ??.current?=?0x860b020??
  • ??.chain?=?0x0??
  • ??.large?=?0x0??
  • ??.cleanup?=?0x0??
  • ??.log?=?0x0?available?pool?memory?=?984??
  • --------------------------------?alloc?an?array?from?the?pool:??
  • --------------------------------?pool?=?0x860b020?.d?.last?=?0x860b084??
  • ????.end?=?0x860b420??
  • ????.next?=?0x0??
  • ????.failed?=?0?.max?=?984??
  • ??.current?=?0x860b020??
  • ??.chain?=?0x0??
  • ??.large?=?0x0??
  • ??.cleanup?=?0x0??
  • ??.log?=?0x0?available?pool?memory?=?924??
  • array?=?0x860b048?.elts?=?0x860b05c??
  • ??.nelts?=?10??
  • ??.size?=?4??
  • ??.nalloc?=?10??
  • ??.pool?=?0x860b020?elements:?0x1??0x2??0x3??0x4??0x5??0x6??0x7??0x8??0x9??0xa????
  • 該例子中內(nèi)存池和數(shù)組的(內(nèi)存)物理結構可參考2.3節(jié)的圖。

    4. 小結

    本文針對nginx-1.0.4的容器——數(shù)組結構進行了較為全面的分析,包括數(shù)組相關數(shù)據(jù)結構,數(shù)組的創(chuàng)建、銷毀,以及向數(shù)組中添加元素等。最后通過一個簡單例子向讀者展示nginx數(shù)組的創(chuàng)建、添加元素和銷毀操作,同時借此向讀者展示編譯測試代碼的方法。

    敬請關注后續(xù)的分析。謝謝!

    Reference

    Nginx代碼研究計劃?(RainX1982)

    nginx-1.0.4源碼分析—內(nèi)存池結構ngx_pool_t及內(nèi)存管理?(阿波)

    總結

    以上是生活随笔為你收集整理的nginx源码分析—数组结构ngx_array_t的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    国产精品美女www爽爽爽视频 | 日韩免费高清在线观看 | 久久综合九色综合久久久精品综合 | 欧美日韩中文国产 | 在线观看av不卡 | 亚洲乱码精品久久久久 | 国产资源网站 | 狠狠干狠狠插 | 亚洲天天摸日日摸天天欢 | 在线观看中文字幕av | av午夜电影 | 国产精品视频在线观看 | 欧美午夜理伦三级在线观看 | 三上悠亚一区二区在线观看 | 色视频网页 | 久久精品视频在线 | 亚洲国产精品小视频 | 亚洲精品色 | 亚洲国内精品在线 | a级国产片| 国产一级三级 | 天天射天天干天天插 | 日韩精品一区二区免费视频 | 麻豆视传媒官网免费观看 | 国产免费黄色 | 91中文字幕永久在线 | 免费亚洲视频 | 九九免费在线观看视频 | 97视频免费观看2区 亚洲视屏 | 日产乱码一二三区别免费 | 97国产情侣爱久久免费观看 | 久草亚洲视频 | 国产三级精品三级在线观看 | 日韩精品五月天 | 国产精品久久久久久久久久东京 | 久久综合欧美精品亚洲一区 | 亚洲精品乱码久久久久久高潮 | 99久久超碰中文字幕伊人 | 欧美日韩视频网站 | 中国精品一区二区 | 亚洲精品999 | 天天综合天天做 | 黄色毛片在线观看 | 噜噜色官网 | 欧美亚洲三级 | 91高清免费 | 久久 在线| 国产69精品久久久久9999apgf | 久99久精品 | 97国产在线视频 | 国产精品久久久精品 | 超碰97中文| 成年人免费在线看 | 久久精品视频免费观看 | 日韩专区在线观看 | 美女福利视频一区二区 | 日韩国产精品久久久久久亚洲 | 日日干干 | 国产精品久久久久久欧美 | 久久久91精品国产 | 正在播放一区二区 | 亚洲精品视频在线观看视频 | 成人在线免费小视频 | 91| 国内精品久久久久久久久久久 | 黄色在线成人 | 成人久久18免费网站麻豆 | 国产高清在线免费观看 | 久久综合中文字幕 | 91看片网址 | 色偷偷人人澡久久超碰69 | 欧美日本一区 | 久久人人爽人人片av | 国产亚洲小视频 | 午夜精品一区二区三区免费视频 | 国产精品久久久久久久毛片 | 国产精品一区二区在线播放 | 日韩欧美一级二级 | 91精品久久香蕉国产线看观看 | 久久字幕 | 精品国产一二三 | 国产正在播放 | 国产男女爽爽爽免费视频 | 在线亚洲精品 | 天天综合五月天 | 欧美精品一区二区免费 | 日韩理论| 亚洲欧美色婷婷 | 成人精品国产免费网站 | 麻豆首页 | 国产精品国产毛片 | 在线免费观看的av | 亚洲成人免费在线观看 | 深爱激情五月网 | 久久天天躁夜夜躁狠狠躁2022 | 精品视频专区 | 国产视频 亚洲精品 | 久久久久久久久久久综合 | 免费看av在线 | 国产成人精品亚洲日本在线观看 | 午夜精品一区二区国产 | 国产精品久久久毛片 | 精品久久一区二区 | 欧美激情在线看 | 久久国产乱 | 欧美三级高清 | 91精品久久久久久久99蜜桃 | 国产午夜三级一区二区三桃花影视 | 麻豆一精品传二传媒短视频 | 天天干夜夜夜操天 | 黄色毛片在线 | 欧女人精69xxxxxx| 亚洲一区黄色 | 国产91粉嫩白浆在线观看 | 亚洲人av免费网站 | 日韩精品一区二区三区电影 | 在线视频日韩 | 国产精品入口久久 | 一级片观看 | 国产高清视频免费最新在线 | 国产亚洲va综合人人澡精品 | 天天综合网在线 | 色综合激情网 | 亚洲人成人在线 | 国产精品99久久久久久人免费 | 久久精品一区二区三区视频 | 免费看的黄网站 | 欧美一级视频免费看 | 日韩视频一二三区 | 337p西西人体大胆瓣开下部 | 国产精品久久久久永久免费 | 日日夜夜人人精品 | 五月婷婷伊人网 | 97精品国产91久久久久久久 | 可以免费看av| 免费观看www小视频的软件 | 亚洲乱码久久久 | 99视频精品视频高清免费 | 最新日韩在线 | 国产精品午夜久久久久久99热 | av中文字幕网 | 人人玩人人添人人 | 亚洲精品乱码白浆高清久久久久久 | 欧美性天天 | 国产精品99久久久久久久久久久久 | 国产精品99久久久久久有的能看 | 国产99色 | 在线观看91久久久久久 | 在线一区av | .国产精品成人自产拍在线观看6 | 午夜精品久久久久久久99热影院 | 亚洲日本精品视频 | 国产剧情在线一区 | 免费久久99精品国产婷婷六月 | 黄色性av| 久久99精品一区二区三区三区 | 精品 一区 在线 | 超碰97网站 | 69久久久 | 久久草草影视免费网 | 97自拍超碰 | 色美女在线 | 亚洲一区天堂 | 麻豆视频免费观看 | 六月激情网 | 香蕉视频国产在线观看 | 欧美污污视频 | 六月丁香综合 | 91精品国产一区二区三区 | 国产精品一区二区在线观看 | 亚洲 欧美 精品 | 免费看黄色91 | 午夜黄色大片 | 麻豆视频免费观看 | 国内精品久久久 | 免费日韩一区二区 | 免费在线观看av不卡 | 毛片网站在线看 | www.成人sex | 日本久久成人 | 国产精品免费久久久久影院仙踪林 | 在线观看国产福利片 | 91视频亚洲| 综合国产视频 | 在线 视频 亚洲 | 91传媒在线 | 日韩中文字幕91 | 日韩国产精品一区 | 99r在线观看 | 久久在线免费视频 | 日韩在线| 天天操天天干天天插 | 亚洲欧美日本一区二区三区 | 91探花国产综合在线精品 | 成人影音在线 | 亚洲精品美女久久17c | 国产精品嫩草69影院 | 国产福利一区二区三区视频 | 色综合久久久久网 | 二区三区中文字幕 | 欧美国产精品久久久久久免费 | 久久亚洲福利视频 | 中文字幕二区三区 | 国产精品 国内视频 | 中文字幕在线一区二区三区 | 亚洲精品国产区 | 久久精品国产一区 | 国产精品久久网 | 99热在线国产精品 | 91欧美日韩国产 | 九九九国产| 久久久久亚洲国产精品 | 探花视频在线观看+在线播放 | 成人毛片在线视频 | 午夜免费久久看 | 97色免费视频 | 国产精品久久久区三区天天噜 | 色资源中文字幕 | 成人在线视频你懂的 | 狠狠躁天天躁综合网 | 激情亚洲综合在线 | 91福利视频网站 | 国产精品门事件 | 日日干影院 | 91九色国产视频 | 五月天高清欧美mv | 在线免费中文字幕 | 色婷婷骚婷婷 | 欧美成人黄 | 久久久精品电影 | 欧美一级欧美一级 | 国产69精品久久久久久久久久 | 丁香婷五月 | 成年人视频免费在线播放 | 全久久久久久久久久久电影 | 久久精品久久久久电影 | 国产精品11| 欧美一级xxxx | 精品v亚洲v欧美v高清v | 久久精品毛片 | 色福利网| 婷色| www.久久com| 国产成人久久精品亚洲 | 日韩欧美在线综合网 | 久草在线欧美 | 日本午夜在线观看 | 婷婷久久综合九色综合 | 国产精品99爱 | 在线黄色观看 | 久久久国产99久久国产一 | av电影免费看 | www.久久99| 亚洲精品国偷拍自产在线观看蜜桃 | 成人 亚洲 欧美 | 国产免费亚洲高清 | 国产日本三级 | 久久视频在线观看 | 欧美老少交 | 999ZYZ玖玖资源站永久 | 91精品国产三级a在线观看 | 久久精品久久精品 | 中文字幕你懂的 | 国产一区在线视频观看 | 国产免费观看视频 | 久久激情影院 | 亚洲香蕉在线观看 | 在线中文字幕一区二区 | 久久97精品| 超碰在线免费福利 | 又黄又爽又刺激视频 | 精品一区二三区 | av高清在线 | 亚洲精品小视频在线观看 | 色综合久久精品 | 天天天色综合a | 日韩三级av | 久久九九影视网 | 免费观看性生交大片3 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲综合小说电影qvod | 亚州国产精品视频 | 97涩涩视频 | 在线精品亚洲 | 91丨九色丨国产女 | 亚洲激情小视频 | 狠狠操狠狠 | 亚洲国产精久久久久久久 | 成人一区二区在线观看 | www.xxxx欧美| 久久久人人人 | 欧美精品乱码久久久久 | 午夜精品影院 | 深爱激情婷婷网 | 91免费在线 | 欧美成人黄色 | 五月天婷婷视频 | 亚洲三级黄色 | 免费网址在线播放 | 九色精品 | 欧美日韩中文国产一区发布 | 欧美日韩一区二区三区在线免费观看 | 久久国产精品99国产精 | 久久久精品高清 | 中文字幕在线看片 | 狠狠狠色丁香婷婷综合久久五月 | 在线激情网| 国产色视频网站2 | h视频在线看 | 四虎国产精品成人免费影视 | 最新国产精品久久精品 | 最新国产精品拍自在线播放 | 色综合天天综合在线视频 | 久久99精品久久久久久久久久久久 | 精品一区二区综合 | 天天爱天天操天天干 | 欧美精品在线观看免费 | 国产免费观看av | 夜色资源网| 久久草在线精品 | 黄色午夜 | 在线a人v观看视频 | 丝袜美腿亚洲 | 国产一区网址 | 黄色亚洲大片免费在线观看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 国产高清无线码2021 | 91精品啪在线观看国产线免费 | 精产嫩模国品一二三区 | 安徽妇搡bbbb搡bbbb | 手机成人av | 91在线日本 | 人人看人人做人人澡 | 中文字幕国产视频 | 国产成人av | 亚洲专区欧美 | 日日爽天天爽 | 久久福利影视 | 亚洲综合激情 | 99re6热在线精品视频 | 久久中文精品视频 | 9在线观看免费高清完整版在线观看明 | 成人av日韩 | 国产一二三四在线观看视频 | 免费看的黄色小视频 | 久青草视频在线观看 | 久久视频这里只有精品 | 日韩一区二区三区免费电影 | 91一区啪爱嗯打偷拍欧美 | 91最新地址永久入口 | 国产精品久久久久久久99 | 日本中文一区二区 | 精品国产成人av在线免 | 91久久国产综合精品女同国语 | 日本久久综合视频 | 久久久久免费网 | 在线成人高清电影 | 99色免费视频 | 亚洲 中文 欧美 日韩vr 在线 | 看片黄网站 | 香蕉影院在线播放 | 国产美女在线观看 | 精品国产一区二区三区久久久蜜臀 | 又粗又长又大又爽又黄少妇毛片 | 久久艹艹| 极品久久久久久久 | 日韩有码在线播放 | 国产一区国产二区在线观看 | 免费欧美 | 成年人黄色免费看 | 久久久久国产精品www | 日韩在线首页 | 狠狠狠狠干 | 国产免费三级在线观看 | 不卡的av在线播放 | 久久伦理影院 | 国产日韩欧美综合在线 | 久久久久久毛片精品免费不卡 | 日韩亚洲国产中文字幕 | 中文字幕在线免费看线人 | 久久综合五月 | 国产精品不卡视频 | 超碰成人免费电影 | 免费av在线播放 | 国产99re| 五月婷婷在线播放 | 99久久久国产精品免费观看 | 九九视频一区 | 日本爱爱免费视频 | 免费观看一级特黄欧美大片 | 一区二区理论片 | 国产精品久久久久久久久久新婚 | 丁香婷婷综合色啪 | 国产成人l区 | 国产在线视频不卡 | 91麻豆文化传媒在线观看 | 亚洲国产美女久久久久 | 国产黄大片 | 99久久久久成人国产免费 | 日本黄色免费观看 | 久久爱资源网 | 免费成人av在线看 | 看av免费网站 | 三级av免费观看 | 一区三区视频 | 中文字幕一区二区三区在线播放 | 成人精品久久 | 久久精品美女 | 免费十分钟 | 日韩在线观看视频中文字幕 | 探花视频免费观看 | 亚洲精品一区二区三区四区高清 | 欧美日韩在线精品一区二区 | 在线观看黄色国产 | 免费观看一区 | 国产日韩三级 | 日韩精品免费专区 | 亚洲女在线 | 亚洲乱码精品久久久 | 综合五月 | a视频在线 | 在线视频一区二区 | 久久99网 | 久久精品电影 | 在线观看电影av | 精品一区二区三区久久久 | 久久国产精品99久久人人澡 | 日韩欧美在线国产 | 久久久久久视频 | 国产精品成人av久久 | 色综合中文综合网 | www.啪啪.com | 伊人中文网 | 日韩 在线观看 | 97精品国产97久久久久久粉红 | 在线视频 一区二区 | 西西www4444大胆在线 | 亚洲精品ww | 免费在线播放av电影 | 日本中文字幕在线视频 | 美女久久99| 日韩a级黄色 | 国产成人精品久久久久 | 亚洲人人av | 中文字幕网站 | 午夜色大片在线观看 | 在线a亚洲视频播放在线观看 | 日韩精品一区二区三区不卡 | 亚洲网久久 | 亚洲精品国产精品久久99 | 亚洲做受高潮欧美裸体 | 欧美一级大片在线观看 | 久久福利综合 | 日韩午夜视频在线观看 | 免费亚洲视频在线观看 | 欧美性超爽 | 免费一级日韩欧美性大片 | 国产黄色看片 | 爱爱av在线| 国产精品综合久久久久久 | 天天搞天天| www五月天婷婷 | 国内精品视频在线播放 | 免费日韩 精品中文字幕视频在线 | 日日夜夜狠狠干 | 久久热亚洲 | a在线免费观看视频 | 亚洲精品久久视频 | 91天天操 | 色姑娘综合 | 啪啪小视频网站 | 最新精品国产 | 欧美精品二 | 久久精品网址 | 成人动漫一区二区三区 | 日本中文字幕在线电影 | 欧美精品被 | 国产免费叼嘿网站免费 | 啪啪精品| 亚洲国产视频在线 | 国产九九九精品视频 | 99re国产| 亚洲精品免费在线播放 | 国产在线精品二区 | 免费观看国产精品 | 午夜精品久久 | 色多多在线观看 | av一级片在线观看 | 成人av电影免费观看 | 在线观看免费福利 | 亚洲一级电影 | 五月天丁香视频 | 亚洲国产精品视频 | 日本二区三区在线 | 激情网站免费观看 | 色综合天天干 | 午夜电影久久久 | 国产成人在线观看 | 夜夜操狠狠干 | 久久成人综合 | 中文av网站 | 午夜 久久 tv | 亚洲欧洲精品一区 | 国产精品女主播一区二区三区 | 国产97在线播放 | 国产亚洲精品久久 | 99精品久久久久久久久久综合 | a电影免费看 | 国产精品一区二区62 | 国产女人40精品一区毛片视频 | 欧美日韩性视频 | 色综合久久久久久久 | 日韩欧美一区视频 | 最近免费中文视频 | 亚洲第一中文字幕 | 97超碰人人澡人人爱学生 | 91精品免费视频 | 国产一级免费片 | 亚洲黄色免费在线 | 国产精品久久久久永久免费观看 | 波多野结衣在线视频免费观看 | 天堂在线一区二区 | 国产一区二区在线免费视频 | 超碰在线人人 | 亚洲免费成人av电影 | 天天操综合网站 | 欧美 日韩 国产 中文字幕 | 中文字幕av日韩 | 福利一区视频 | 亚洲一区 av| 成人资源在线观看 | 日韩欧美精品在线 | 黄色大片网 | 最近中文字幕免费大全 | 久久久精品欧美一区二区免费 | 在线国产日韩 | 91精品国产综合久久福利不卡 | 国产成人一区二 | 亚洲国产网站 | 日日干网址 | 免费在线观看av网址 | 日日夜夜免费精品视频 | 亚洲国产中文字幕在线视频综合 | 伊人久在线| 在线观看黄污 | 国产美女网站在线观看 | 日本精品视频在线观看 | 国产精品一区二区在线观看免费 | 五月天综合网站 | 在线观看视频三级 | 久久99久久99精品 | 亚洲国产精品99久久久久久久久 | 91亚色视频在线观看 | 欧美精品一区二区三区四区在线 | 国内精品久久影院 | 亚洲视频播放 | 久久九九视频 | a一片一级 | 欧美一级视频免费看 | 国产精品理论片在线观看 | 波多野结衣综合网 | 亚洲黄色三级 | 久久久999免费视频 日韩网站在线 | 色婷婷久久久综合中文字幕 | 亚洲另类人人澡 | 欧美国产一区在线 | 国产伦精品一区二区三区在线 | 国产高清在线看 | 国产精品毛片一区二区 | 天天操人人干 | 手机av电影在线 | www婷婷| 五月婷丁香 | 一级理论片在线观看 | 久久国产成人午夜av影院宅 | 亚洲涩涩色 | 亚洲闷骚少妇在线观看网站 | 黄色免费视频在线观看 | 免费看片色 | 91人人干 | 丁香婷婷综合激情五月色 | 日韩在线观看高清 | 国产成人三级一区二区在线观看一 | 国产午夜影院 | 五月天色综合 | 国产精品一区二区你懂的 | av免费看看 | 天天操天天操天天操天天 | 精品一区二区视频 | 91九色porn在线资源 | 最新91在线视频 | 色先锋资源网 | 亚洲一二区视频 | 在线你懂| 久久99国产精品久久 | 久久99精品国产99久久 | www.午夜| 国产精品久久久久一区二区三区 | 亚洲国产天堂av | 久久精品99国产精品亚洲最刺激 | 久久伦理网 | 97视频免费看 | 免费观看国产视频 | 国产精品男女视频 | 99色在线视频 | 色九九视频 | 欧美a级一区二区 | 成人免费亚洲 | 午夜美女网站 | 午夜黄色大片 | www九九热| 一区二区三区免费播放 | 在线午夜av | 91伊人影院 | 2019免费中文字幕 | 69av网| 中文字幕专区高清在线观看 | 麻豆国产在线视频 | 夜夜干夜夜 | 婷婷综合在线 | 黄色亚洲片| 一级黄色片在线免费观看 | 日韩美av在线 | 91精品福利在线 | 亚洲天堂社区 | 国产91成人在在线播放 | 在线观看91精品国产网站 | 99精品视频99 | 一区久久久 | 奇米导航| 国产视频在线播放 | 亚洲一区免费在线 | 超黄视频网站 | 中文字幕在线国产 | 美女久久 | 伊人狠狠操 | 亚洲资源在线网 | 00av视频 | 久久综合久久八八 | 国产69久久精品成人看 | 有没有在线观看av | 日韩网站在线看片你懂的 | www五月婷婷 | 欧美精品日韩 | 超碰av在线播放 | 欧美日韩一区二区三区免费视频 | 中文字幕一区二区在线播放 | 97电影网手机版 | 日韩在线观看三区 | 成人在线视频你懂的 | 349k.cc看片app | 91av视频在线免费观看 | av网站在线免费观看 | 亚洲国产欧美在线看片xxoo | www.xxxx欧美| av在线看片 | 久久久久久久久久免费 | 在线观看a视频 | 国产精品美女久久久 | 国产精品一区二区三区电影 | 国产免费叼嘿网站免费 | 精品国产免费av | 亚洲综合在线五月天 | 久久天天躁夜夜躁狠狠85麻豆 | 久青草影院| 亚洲国产美女久久久久 | 激情久久五月 | 国产精品免费久久 | 久草视频免费在线观看 | 麻豆影视网站 | 国产亚洲精品日韩在线tv黄 | 91精品91| 免费福利小视频 | 久久久综合精品 | 91资源在线免费观看 | 亚洲视屏在线播放 | 国产私拍在线 | 夜夜天天干 | 久久精品这里都是精品 | 久草在线观 | 国产中文在线字幕 | 成 人 免费 黄 色 视频 | 久久久久久久国产精品视频 | 在线观看视频色 | 91久色蝌蚪 | 麻豆久久久 | 欧美日韩在线播放一区 | 日韩免费高清 | 国产福利在线 | 麻豆视频在线 | 国产日韩欧美在线免费观看 | 免费网站在线观看成人 | 国产精品一区二区中文字幕 | 日本三级中文字幕在线观看 | 丁香视频五月 | 日韩伦理一区二区三区av在线 | 欧美性色19p | 色夜影院 | 成人av中文字幕 | 美女久久久久久久 | 久久国产免费看 | 在线色视频小说 | 视频在线观看入口黄最新永久免费国产 | 午夜视频欧美 | 亚洲乱码久久久 | 天天天天射 | 中文字幕久久精品一区 | 精品在线不卡 | 97国产大学生情侣白嫩酒店 | 午夜视频免费播放 | 国产理论免费 | 国产精品美女免费视频 | 岛国一区在线 | 欧美a在线免费观看 | 日韩一区二区免费在线观看 | 88av色| 日本天天色 | 欧美国产高清 | av综合站| 中文字幕精品一区 | 江苏妇搡bbbb搡bbbb | 国产精品欧美久久久久无广告 | 99久久精品免费视频 | 久久久久久97三级 | 免费三级黄色 | 日本不卡视频 | 日女人免费视频 | 免费观看成人av | 九九热免费在线视频 | 91成人精品一区在线播放69 | 国产视频首页 | 免费在线观看毛片网站 | 亚洲狠狠操 | 白丝av免费观看 | 天天操天天射天天添 | 久久久精品免费看 | 精品人妖videos欧美人妖 | 久久av伊人 | 久久成人资源 | www黄| 欧美福利网站 | 亚洲视频精选 | 狠色狠色综合久久 | 久久人人爽av | 成人久久久精品国产乱码一区二区 | 国产日韩欧美在线观看视频 | 日本爽妇网 | 黄色一二级片 | 日本视频久久久 | 九九久久免费视频 | japanese黑人亚洲人4k | 久久人人爽爽人人爽人人片av | 日韩精品高清视频 | 天天操天天射天天 | 国产成人精品在线观看 | 天天色天 | 一区二精品 | 国产aa免费视频 | 亚洲人成在线观看 | 一区二区视频在线观看免费 | 正在播放国产精品 | 精品国产一区二区三区日日嗨 | 免费人做人爱www的视 | 国产精品麻豆果冻传媒在线播放 | 黄色成人91 | 国产日产欧美在线观看 | 狠狠干综合网 | 久久久久久久久久久免费av | 一区二区在线电影 | 成人久久久久久久久 | 国产一区二区久久久 | 久久婷婷一区二区三区 | 日韩免费网站 | 五月天国产精品 | 亚洲一区二区视频 | 国产美女在线免费观看 | 久久久黄视频 | 99精彩视频在线观看免费 | 91精品国产成人观看 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 狠狠狠色丁香婷婷综合久久五月 | 久久成人久久 | 97成人在线观看视频 | a久久久久久 | 国产视频 亚洲视频 | 在线免费性生活片 | 日韩一区视频在线 | 欧美成人日韩 | 在线不卡的av| 91超在线 | 久久久久免费网站 | 97超碰超碰| 日韩欧美一区二区在线播放 | 久久久精品国产免费观看同学 | 天天鲁一鲁摸一摸爽一爽 | 中文字幕传媒 | 一区二区三区中文字幕在线 | 九九热在线视频免费观看 | 欧美精品v国产精品v日韩精品 | 国产黄色一级大片 | 久草视频免费在线播放 | 夜夜操网站| 色中色综合 | 久草在线视频新 | 欧美电影黄色 | 国产一二三四在线视频 | 久久xxxx| 日本精品久久久久 | 九九在线高清精品视频 | 99久久er热在这里只有精品15 | 国产原创在线视频 | 国产日韩欧美精品在线观看 | 婷婷六月激情 | 天天操天天舔天天干 | 国产精品一区二区久久 | 五月天婷婷在线视频 | 玖玖视频精品 | 久久久午夜精品福利内容 | 亚洲视频综合在线 | 成人亚洲网 | 激情黄色av| 片黄色毛片黄色毛片 | av高清不卡| www.久久com| 亚洲爱视频| 一级一级一片免费 | 久久在视频 | 超碰97在线看 | 日本中文乱码卡一卡二新区 | 高清美女视频 | zzijzzij亚洲成熟少妇 | 高清av网 | 99在线视频精品 | 精品一区二区三区久久 | 中文在线免费一区三区 | 精品国产理论片 | 婷婷六月丁香激情 | 一区久久久 | 久久久久久99精品 | 国产在线观看污片 | 91福利专区 | 国产手机av | 美女网站视频免费都是黄 | 欧美日韩亚洲在线观看 | 97色婷婷人人爽人人 | 天天干天天操av | 色精品视频| 欧美少妇xxxxxx | 五月天六月婷婷 | 日本中文字幕视频 | 免费高清av在线看 | 国产精品 日韩 欧美 | 一本一道久久a久久综合蜜桃 | 手机在线欧美 | 一本色道久久综合亚洲二区三区 | 久久成人国产 | 成人国产精品免费 | 国产伦理一区二区三区 | 国产一级二级在线 | 激情五月激情综合网 | 久久综合五月婷婷 | 国产在线综合视频 | 日韩成人精品在线观看 | 欧美一进一出抽搐大尺度视频 | 欧美性生活免费看 | 成人av免费播放 | 99视频在线免费看 | 日韩丝袜视频 | 久久免费一 | 在线91网 | 在线成人一区二区 | 91免费观看 | 91自拍成人 | 亚洲综合五月天 | 香蕉视频在线免费 | 亚洲视频一 | 四虎在线免费视频 | 久久久久女教师免费一区 | 亚洲理论在线 | 欧美性一级观看 | 国产视频在线观看免费 | 在线观看的av| 亚洲精品国偷自产在线99热 | 亚洲影音先锋 | 久久九九影视网 | 日本中文字幕在线免费观看 | 欧美性生活大片 | 午夜精品久久久久久久99水蜜桃 | 午夜电影一区 | 日韩一区二区三区在线观看 | 色综合天天狠天天透天天伊人 | 一级片免费观看 | 中文字幕视频网站 | 天天做天天爱天天综合网 | 人九九精品 | 91男人影院 | 中文字幕免费成人 | 精品久久久久亚洲 | 一本一本久久aa综合精品 | 91在线视频播放 | 国产成人一区在线 | 成人黄色大片在线观看 | 国产美女网站在线观看 | 欧美久久久久久久久中文字幕 | 狠狠狠色丁香综合久久天下网 | 99色资源| 97精品国产97久久久久久春色 | 开心丁香婷婷深爱五月 | 在线激情影院一区 | 日韩美女黄色片 | 精品久久片| 在线免费观看黄色 | av片在线观看免费 | 日本久久成人中文字幕电影 | a在线v| 午夜三级理论 | 日韩最新av在线 | 国产精品18久久久久久首页狼 | 91在线观看欧美日韩 | 亚洲一区二区精品3399 | 国产视频日韩 | 激情深爱| 中文字幕之中文字幕 | 最近中文字幕mv免费高清在线 | 国产二区电影 | 狠狠色丁婷婷日日 | 亚洲成人精品在线 | 深爱激情五月婷婷 | 一区二区三区在线电影 | 日日夜夜天天 | 国产原创av在线 | 久久av伊人 | 成人av免费网站 | 久久高清国产视频 | 久久激情小视频 | 国产精品2020 | 国产精品久久久777 成人手机在线视频 | 日本在线h | 91福利区一区二区三区 | 伊人伊成久久人综合网小说 | 色悠悠久久综合 | 久草视频中文在线 | 色停停五月天 | 国产一二三精品 | 色橹橹欧美在线观看视频高清 | 在线免费亚洲 | 韩日三级在线 | 国产一区在线视频播放 | 久久伊人精品一区二区三区 | 成人黄色一级视频 | 日本韩国在线不卡 | 美女黄网久久 | 亚洲一区免费在线 | 亚洲网站在线 | 欧美一区二区三区在线视频观看 | 国产精品嫩草影院99网站 | 欧美色图另类 | 一区二区精 | 色黄视频免费观看 | 亚洲天堂网在线观看视频 | 日韩免费视频在线观看 | 在线网站黄| 国产麻豆传媒 | 日韩在线视频二区 | 欧美日韩久久不卡 | 午夜丁香网 | 亚洲一区二区精品视频 | 天天爽天天射 | 91精彩在线视频 | 婷婷色在线 | 免费av免费观看 | 欧美日韩在线精品 | 精品一区二区三区电影 | 亚洲自拍av在线 | 一级精品视频在线观看宜春院 | 制服丝袜欧美 | 国产视频 亚洲精品 | 日日夜夜操av | 国产99久久久精品视频 | 懂色av懂色av粉嫩av分享吧 | 91网站免费观看 | 久草综合在线观看 | 在线观看视频一区二区 | 久久久久久久久久久综合 | 亚洲毛片视频 | 国产日韩欧美在线免费观看 | 日韩,精品电影 | 在线观看电影av | 国产专区在线视频 | 日韩在线观看一区二区三区 | 中文字幕亚洲字幕 | 国产黄色a | 在线久热 | 天堂av在线 | 中文字幕影片免费在线观看 | 五月天激情在线 | 日韩三级视频在线观看 | 99热99re6国产在线播放 |