精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Linux驅動技術(一) _內存申請

系統 Linux 系統運維
內核程序也需要動態的分配內存,不同的是,內核進程可以控制分配的內存是在用戶空間還是內核空間,前者可以用于給用戶空間的堆區分配內存,eg,用戶進程的用戶空間的malloc最終就會通過系統調用回調內核空間的內存分配函數,此時該內存分配函數就屬于該用戶進程,可以給在該用戶進程的堆區分配空間并返回,最終使得一個用會進程在自己的用戶空間獲得內存分配;后者只在內核空間分配,所以用戶進程不能直接訪問該空間,所以多用在滿足內核程序自身的內存需求。

先上基礎,下圖是Linux的內存映射模型

  • 每一個進程都有自己的進程空間,進程空間的0-3G是用戶空間,3G-4G是內核空間
  • 每個進程的用戶空間不在同一個物理內存頁,但是所有的進程的內核空間對應同樣的物理地址
  • vmalloc分配的地址可以高端內存,也可以是低端內存
  • 0-896MB的物理地址是線性映射到物理映射區的。  

Linux的內存映射模型 

內存動態申請

和應用層一樣,內核程序也需要動態的分配內存,不同的是,內核進程可以控制分配的內存是在用戶空間還是內核空間,前者可以用于給用戶空間的堆區分配內存,eg,用戶進程的用戶空間的malloc最終就會通過系統調用回調內核空間的內存分配函數,此時該內存分配函數就屬于該用戶進程,可以給在該用戶進程的堆區分配空間并返回,最終使得一個用會進程在自己的用戶空間獲得內存分配;后者只在內核空間分配,所以用戶進程不能直接訪問該空間,所以多用在滿足內核程序自身的內存需求,下面是Linux內核空間申請內存常用API:

kmalloc - kfree

kmalloc申請的內存在物理內存上是連續的,他們與真實的物理地址只有一個固定的偏移,因此存在簡單的轉換關系。這個API 多用來申請不到一個page大小的內存。kmalloc的底層需要調用__get_free_pages,參數中表示內存類型的gtp_t flags正是這個函數的縮寫,常用的內存類型有GFP_USER,GFP_KERNEL,GFP_ATOMIC幾種。

  • GFP_USER表示為用戶空間頁分配內存,可以阻塞;
  • GFP_KERNEL是最常用的flag,注意,使用這個flag來申請內存時,如果暫時不能滿足,會引起進程阻塞,So,一定不要在中斷處理函數,tasklet和內核定時器等非進程上下文中使用GFP_KERNEL!!!
  • GFP_ATOMIC就可以用于上述三種情境,這個flag表示如果申請的內存不能用,則立即返回。
  1. /** 
  2.  * kmalloc - allocate memory 
  3.  * @size: how many bytes of memory are required. 
  4.  * @flags: the type of memory to allocate. 
  5.  * The @flags argument may be one of
  6.  * %GFP_USER - Allocate memory on behalf of user.  May sleep. 
  7.  * %GFP_KERNEL - Allocate normal kernel ram.  May sleep. 
  8.  * %GFP_ATOMIC - Allocation will not sleep.  May use emergency pools. 
  9.  *  
  10.  * For example, use this inside interrupt handlers. 
  11.  */ 
  12. void *kmalloc(size_t size, gfp_t flags); 
  13. /** 
  14.  * kfree - free previously allocated memory 
  15.  * @objp: pointer returned by kmalloc. 
  16.  * If @objp is NULLno operation is performed. 
  17.  */ 
  18. void kfree(const void *objp);  

同系列API還有

  1. void *kzalloc(size_t size, gfp_t flags)     

__get_free_pages - free_pages

__get_free_pages()與kmalloc()一樣是物理連續的內存,這一系列函數是Linux內核中***層的用于獲取空閑內存的方法,因為底層的buddy算法都是以(2^n)×PAGE_SIZE來管理內存的,所以他們總是以頁為單位分配內存的

  1. unsigned long __get_free_pages(gfp_t gfp_mask, unsigned int order)  void free_pages(unsigned long addr, unsigned int order)  

同系列API還有

  1. unsigned long __get_free_page(gfp_t gfp)        unsigned long get_zeroed_page(gfp_t gfp_mask)    struct page *alloc_pages(gfp_t gfp_mask, unsigned int order
  1. void free_page(unsigned long addr) 

vmalloc - vfree

vmalloc在虛擬內存空間給出一塊連續的內存區,實質上,這片連續的虛擬內存在物理內存中并不一定連續,所以vmalloc申請的虛擬內存和物理內存之間也就沒有簡單的換算關系,正因如此,vmalloc()通常用于分配遠大于__get_free_pages()的內存空間,它的實現需要建立新的頁表,此外還會調用使用GFP_KERN的kmalloc,so,一定不要在中斷處理函數,tasklet和內核定時器等非進程上下文中使用vmalloc!

  1. /**      
  2.  * vmalloc  -  allocate virtually contiguous memory 
  3.  * @size:          allocation size 
  4.  * Allocate enough pages to cover @size from the page level allocator and map them into contiguous kernel virtual space
  5.  */void *vmalloc(unsigned long size)   /** 
  6.  *      vfree  -  release memory allocated by vmalloc() 
  7.  *      @addr:          memory base address 
  8.  */void vfree(const void *addr)   

同系列的API還有

  1. /** 
  2.  * vmalloc_32  -  allocate virtually contiguous memory (32bit addressable) 
  3.  * @size:          allocation size 
  4.  * Allocate enough 32bit PA addressable pages to cover @size from the page level allocator and map them into contiguous kernel virtual space
  5.  */void *vmalloc_32(unsigned long size)   

slab緩存

我們知道,頁是內存映射的基本單位,但內核中很多頻繁創建的對象所需內存都不到一頁,此時如果仍然按照頁映射的方式,頻繁的進行分配和釋放就會造成資源的浪費,同時也會降低系統性能。為了解決的這樣的問題,內核引入了slab機制,使對象在前后兩次被使用時被分配在同一塊內存或同一類內存空間,且保留了基本的數據結構,就可以大大提高效率。kmalloc的底層即是使用slab算法管理分配的內存的。注意,slab依然是以頁為單位進行映射,只是映射之后分割這些頁為相同的更小的單元,從而節省了內存。slab分配的單元不能小于32B或大于128K。

  1. /** 
  2.  * kmem_cache_create - 創建slab緩存對象 
  3.  * @name:slab緩存區名字, 
  4.  * @size:slab分配的緩存區的每一個單元的大小 
  5.  * @align:緩存區內存的對齊方式,一般給0 
  6.  * @flags:控制分配的位掩碼, 
  7.  * %SLAB_POISON - Poison the slab with a known test pattern (a5a5a5a5) to catch references to uninitialised memory. 
  8.  * %SLAB_RED_ZONE - Insert `Red' zones around the allocated memory to check for buffer overruns. 
  9.  * %SLAB_HWCACHE_ALIGN - Align the objects in this cache to a hardware cacheline.  This can be beneficial if you're counting cycles as closely as davem. 
  10.  * %SLAB_CACHE_DMA - Use GFP_DMA memory 
  11.  * %SLAB_STORE_USER - Store the last owner for bug hunting 
  12.  *define SLAB_PANIC - Panic if kmem_cache_create() fails  
  13.  */struct kmem_cache *kmem_cache_create(const char *name, size_t size, size_t align,unsigned long flags, void (*ctor)(void *))/** 
  14.  * kmem_cache_alloc - Allocate an object from this cache.  
  15.  * @cachep: The cache to allocate from
  16.  * @flags: See kmalloc(). 
  17.  * The flags are only relevant if the cache has no available objects. 
  18.  */void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)  /** 
  19.  * kmem_cache_free - Deallocate an object 
  20.  * @cachep: The cache the allocation was from
  21.  * @objp: The previously allocated object. 
  22.  * Free an object which was previously allocated from this cache. 
  23.  */void kmem_cache_free(struct kmem_cache *cachep, void *objp)  void kmem_cache_destroy(struct kmem_cache *s)   

范例

  1. //創建slab對象 
  2.  
  3. struct kmem_cache_t *xj_sbcache; 
  4. xj_sbcache = kmem_cache_create("xjslab",sizeof(struct xj_unit_t),0,SLAB_CACHE_DMA|SLAB_PANIC,NULL,NULL);//分配slab緩存 
  5.  
  6. struct xj_unit_t *xj_unit; 
  7. xj_unit = kmem_cache_alloc(xj_sbcache,GFP_KERNEL); 
  8. /* 使用slab緩存 */ 
  9. /* 釋放slab緩存 */ 
  10.  
  11. kmem_cache_free(xj_sbcache, xj_unit); 
  12. /* 銷毀slab緩存 */ 
  13.  
  14. kmem_cache_destroy(xj_sbcache);  

內存池

除了slab機制,內核還提供了傳統的內存池機制來管理小塊內存的分配。內存池主要是用來解決可能出現的內存不足的情況,因為一個內存池在創建的時候就已經分配好了一內存,當我們用mempool_alloc向一個已經創建好的內存池申請申請內存時,該函數首先會嘗試回調內存池創建時的分配內存函數,如果已經沒有內存可以分配,他就會使用內存池創建時預先分配的內存,這樣就可以避免因為無內存分配而陷入休眠,當然,如果預分配的內存也已經使用完畢,還是會陷入休眠。slab機制的目的是提高內存使用率以及內存管理效率,內存池的目的是避免內存的分配失敗。下面是內核中提供的關于內存池的API 

  1. /**      
  2.  * mempool_create - create a memory pool 
  3.  * @min_nr:    the minimum number of elements guaranteed to be  allocated for this pool. 
  4.  * @alloc_fn:  user-defined element-allocation function
  5.  * @free_fn:   user-defined element-freeing function
  6.  * @pool_data: optional private data available to the user-defined functions. 
  7.  *               
  8.  * this function creates and allocates a guaranteed size, preallocated memory pool. The pool can be used from the mempool_alloc() and mempool_free() functions.  
  9.  * This function might sleep. Both the alloc_fn() and the free_fn() functions might sleep - as long as the mempool_alloc() function is not called from IRQ contexts. 
  10.  */ 
  11. mempool_t *mempool_create(int min_nr, mempool_alloc_t *alloc_fn, mempool_free_t *free_fn, void *pool_data) 
  12.  
  13. /**      
  14.  * mempool_alloc - allocate an element from a specific memory pool 
  15.  * @pool:pointer to the memory pool which was allocated via mempool_create(). 
  16.  * @gfp_mask:  the usual allocation bitmask. 
  17.  * this function only sleeps if the alloc_fn() function sleeps or returns NULL. Note that due to preallocation, this function never* fails when called from process contexts. (it might fail if called from an IRQ context.) 
  18.  */      
  19. void * mempool_alloc(mempool_t *pool, gfp_t gfp_mask)     
  20.  
  21. /** 
  22.  * mempool_free - return an element to the pool. 
  23.  * @element:   pool element pointer. 
  24.  * @pool:pointer to the memory pool which was allocated via mempool_create(). 
  25.  * 
  26.  * this function only sleeps if the free_fn() function sleeps. 
  27.  */      
  28. void mempool_free(void *element, mempool_t *pool)     
  29.  
  30. /** 
  31.  * mempool_destroy - deallocate a memory pool 
  32.  * @pool:pointer to the memory pool which was allocated via mempool_create(). 
  33.  * 
  34.  * Free all reserved elements in @pool and @pool itself.  This function only sleeps if the free_fn() function sleeps. 
  35.  */      
  36. void mempool_destroy(mempool_t *pool)   

 

責任編輯:龐桂玉 來源: 嵌入式Linux中文站
相關推薦

2017-03-01 12:36:15

Linux驅動技術內存

2022-07-10 20:47:39

linux中虛擬內存

2017-03-01 14:46:53

Linux驅動技術異步通知技術

2017-02-28 17:46:15

Linux驅動技術并發控制

2019-03-20 14:29:46

Linux虛擬內存

2017-03-01 13:06:39

Linux驅動技術DMA編程

2022-05-10 08:49:46

設備驅動Linux

2017-03-01 16:40:12

Linux驅動技術設備阻塞

2021-04-12 12:00:13

Linux運維Linux系統

2020-06-28 09:30:37

Linux內存操作系統

2012-09-29 09:00:25

2021-11-12 11:28:01

Linux 內核驅動Linux 系統

2012-05-28 15:49:06

Linux凱迪拉克

2025-01-02 11:06:22

2025-06-09 04:00:00

2021-01-18 08:23:23

內存時底層CPU

2012-01-11 11:07:04

JavaJVM

2021-11-22 08:14:23

Linux Linux驅動Linux 系統

2021-05-12 18:22:36

Linux 內存管理

2018-10-10 14:14:51

Linux內存映射
點贊
收藏

51CTO技術棧公眾號

第四色在线一区二区| 亚洲欧美丝袜中文综合| 中文字幕免费精品| 欧美va亚洲va香蕉在线| 免费观看精品视频| 久久bbxx| 91在线你懂得| 91久久久久久国产精品| 日本韩国欧美中文字幕| 五月激情综合| 亚洲欧洲在线播放| 亚洲一区二区中文字幕在线观看| 丁香花在线观看完整版电影| 国产欧美日韩另类一区| 国产精品视频免费一区二区三区 | 亚洲视频每日更新| 免费亚洲一区二区| 亚洲精品一区二区口爆| 男人的j进女人的j一区| 亚洲福利电影网| 4hu四虎永久在线影院成人| 国产a级片网站| 精品视频在线一区二区| 久久综合久久99| 国产成人精品免费视频大全最热| 在线观看中文字幕码| 欧美亚洲专区| 韩日精品中文字幕| 青青草原免费观看| 欧美电影免费| 国产亚洲视频中文字幕视频| 亚洲一区二区在线免费| 香港久久久电影| 欧美日韩aaaaaa| 少妇黄色一级片| 中文在线8资源库| 亚洲第一久久影院| 国产又粗又长又爽视频| 毛片在线视频| 中文字幕成人网| 欧美精品中文字幕一区二区| 三级视频在线看| 福利一区福利二区| 国产精品久久精品视| 国产成人毛毛毛片| 国内一区二区视频| 成人激情视频在线观看| 夜夜狠狠擅视频| 黄网站免费久久| 成人黄色av免费在线观看| 在线亚洲欧美日韩| 免费看欧美女人艹b| 国产精品久久色| 亚洲系列第一页| 蜜桃传媒麻豆第一区在线观看| 国产精品国语对白| 丰满人妻一区二区三区四区| 日韩电影免费在线| 国产精品入口尤物| 6—12呦国产精品| 久久成人18免费观看| 成人字幕网zmw| 精品人妻一区二区三区浪潮在线| 国产精品一区二区久激情瑜伽| 亚洲www视频| 亚洲国产成人一区二区| 亚洲一级av毛片| 欧美韩国日本在线观看| 久久亚洲国产精品| 激情五月婷婷小说| 亚洲精品乱码| 日韩美女av在线免费观看| 天天干天天插天天射| 另类调教123区| 亚洲tv在线观看| 免费观看的毛片| 91啪九色porn原创视频在线观看| 日本不卡免费新一二三区| 69久久精品| 亚洲人精品午夜| 人人妻人人澡人人爽欧美一区双 | 午夜精品久久久久久久白皮肤| 亚洲国产精一区二区三区性色| 久久成人亚洲| 国产色视频一区| 国产综合视频在线| 日本一区二区三区四区在线视频| 久久99国产精品一区| 国产极品人妖在线观看| 色综合天天综合狠狠| 福利视频999| 欧美aaaaa级| 日韩在线视频免费观看高清中文| 欧美日韩精品一区二区三区视频播放 | 日韩精品一区二区三区四区| 精品国产无码在线观看| 欧美大片专区| 国产成人久久久| a级片在线视频| 久久伊人中文字幕| 91麻豆天美传媒在线| 国模冰冰炮一区二区| 91精品一区二区三区在线观看| 国产黄色三级网站| av在线资源站| 国产欧美日韩视频在线| 色yeye香蕉凹凸一区二区av| 久久久久久久久97| 日本成人在线一区| 国产精品成人一区二区三区| 99se视频在线观看| 午夜精品久久久久久久久| 久久婷婷综合色| 色婷婷精品视频| 欧美麻豆久久久久久中文| 老熟妇一区二区三区啪啪| hitomi一区二区三区精品| 中国成人在线视频| 男人最爱成人网| 精品国产精品网麻豆系列| 二区三区四区视频| 天堂成人国产精品一区| 国产美女精品久久久| 天天在线视频色| 在线看国产一区二区| 亚洲一区二区三区综合| 欧美在线亚洲| 国产日韩中文字幕| 都市激情在线视频| 日韩欧美在线视频观看| av2014天堂网| 亚洲午夜一区| 国产精品对白刺激久久久| av网站在线免费| 7777精品伊人久久久大香线蕉完整版 | 国产午夜精品全部视频在线播放 | 欧美日韩国产一区在线| 青娱乐国产精品视频| 99精品全国免费观看视频软件| 国产成人在线视频| 男人av在线| 欧美视频专区一二在线观看| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 加勒比av在线播放| 国产伦精品一区二区三区免费迷| 亚洲精品久久久久久一区二区| 春暖花开亚洲一区二区三区| 亚洲欧美福利视频| 9i精品福利一区二区三区| 久久毛片高清国产| 黄色av免费在线播放| 欧洲乱码伦视频免费| 国产精品欧美日韩| 一区二区三区视频在线观看视频| 欧美日本视频在线| 久久福利免费视频| 国产一区二区伦理| 日韩欧美一二三| 国产精品日日摸夜夜爽| 激情视频一区| 精品一区二区日本| 中老年在线免费视频| 综合亚洲色图| 亚洲欧美日韩精品| www.日韩一区| 国产精品久久一级| a级大片免费看| 影音先锋中文字幕一区二区| 精品国产乱码久久久久久久软件 | 亚洲福利国产精品| 香蕉视频黄色在线观看| 日韩av一区二区在线影视| 一本一道久久a久久精品综合 | 亚洲欧美在线成人| 久久精品在线视频| 韩国av永久免费| 色就色 综合激情| 三级黄色在线观看| 成人国产亚洲欧美成人综合网 | 亚洲国产婷婷香蕉久久久久久99| 亚洲精品aa| 国内偷自视频区视频综合| 蜜桃成人在线视频| 制服丝袜日韩国产| 免费在线不卡视频| 国产精品久久久久久久久晋中| 亚洲综合123| 亚洲中字黄色| 精品久久免费观看| 国产精品xxx在线观看| 欧美在线视频播放| 18+视频在线观看| 精品一区二区电影| 国产女18毛片多18精品| 亚洲午夜羞羞片| 人成免费在线视频| caoporn国产精品| 中文字幕丰满乱码| 亚洲综合日本| 免费成人深夜夜行网站视频| 欧美调教在线| 亚洲free性xxxx护士hd| 欧美成人黑人| 久久久久久国产精品美女| 成人免费高清在线播放| 亚洲国产精品久久91精品| 国产一区二区三区中文字幕| 福利微拍一区二区| 黄色一级片在线免费观看| 日本一区二区三级电影在线观看| 精品伦一区二区三区| 卡一卡二国产精品| 精品国产成人av在线免| 影音先锋久久久| 欧美日韩中文字幕在线播放| 欧美一区三区| 久久久精品动漫| 超碰在线成人| 91精品免费| 91麻豆精品一二三区在线| 欧洲一区二区视频| 国内激情视频在线观看| 欧美精品一二区| 日本福利在线| 尤物精品国产第一福利三区 | 最新的欧美黄色| 九色在线播放| 亚洲精品视频在线播放| 人妻精品一区二区三区| 日韩欧美亚洲国产精品字幕久久久| 在线视频精品免费| 91国产精品成人| 国产又黄又猛又粗又爽| 五月激情综合婷婷| 欧美精品一区二区成人| 亚洲欧美激情插| 麻豆网址在线观看| 中文字幕一区二区三区四区不卡 | 亚洲欧美高清在线| 国产成人午夜精品影院观看视频 | 亚洲一区二区三区四区在线观看| 国产免费一区二区三区四区| 国产精品视频线看| 中文字幕伦理片| 日本一区二区视频在线| 亚洲色图 激情小说| 欧美国产综合色视频| 调教驯服丰满美艳麻麻在线视频| 亚洲国产精品二十页| 激情五月深爱五月| 中文字幕一区日韩精品欧美| 老司机精品免费视频| 亚洲视频综合在线| 国内偷拍精品视频| 亚洲图片欧美综合| 中文字幕亚洲高清| 欧美性色xo影院| 最新国产中文字幕| 欧美肥妇毛茸茸| 国内精品偷拍视频| 亚洲国产精品久久久久秋霞不卡| 凸凹人妻人人澡人人添| 亚洲男子天堂网| 浮生影视网在线观看免费| 久久精品一区中文字幕| 欧美videos另类精品| 性欧美在线看片a免费观看| 中文字幕人成乱码在线观看 | 中文av一区特黄| 天天色影综合网| 亚洲最新视频在线播放| 国产超碰人人爽人人做人人爱| 色综合久久88色综合天天| 糖心vlog精品一区二区| 欧美一级免费观看| 午夜国产在线视频| 日韩中文字幕免费| 国产啊啊啊视频在线观看| 日韩av三级在线观看| 欧美性www| 精品无码久久久久国产| 狠狠做六月爱婷婷综合aⅴ| 最新av在线免费观看| 在线国产欧美| 国产成人黄色网址| 9i在线看片成人免费| 免费看裸体网站| 亚洲在线免费播放| 中文字幕丰满人伦在线| 亚洲成人a**站| 日韩专区在线| 91国内在线视频| 亚洲精品66| 欧美系列一区| 欧美欧美全黄| 天天操天天爱天天爽| 成人黄色在线视频| 三级黄色免费观看| 日韩欧美国产成人| 国产91视频在线| 一本一道久久a久久精品逆3p| 国产后进白嫩翘臀在线观看视频| 国产精品一区二区性色av| 日韩欧美影院| 91麻豆天美传媒在线| 日本午夜一区二区| 一区二区不卡免费视频| 一片黄亚洲嫩模| 亚洲一区二区色| 日韩成人中文字幕| 亚洲妇熟xxxx妇色黄| 国产精品免费久久久久久| 秋霞在线一区| 91黄色在线看| 国产一区二区在线视频| 少妇精品无码一区二区免费视频| 婷婷开心激情综合| 国产成人久久精品77777综合| 中文字幕一精品亚洲无线一区| 欧美aa在线观看| 国产成人女人毛片视频在线| 国产精品99一区二区三区| 999香蕉视频| 久久夜色精品一区| 日本三级网站在线观看| 日韩精品一区二区三区在线观看 | 欧美日韩免费看| 亚洲AV无码精品自拍| 久热精品视频在线观看一区| 国产三级一区| 亚洲视频电影| 蜜臀av性久久久久av蜜臀妖精 | 精品人妻人人做人人爽夜夜爽| 一区在线中文字幕| 一级黄色片视频| 最近2019年好看中文字幕视频| 日韩高清在线| 日韩av在线一区二区三区| 久久九九免费| 亚洲av无码一区二区三区人| 欧美日韩在线免费| 日本一本草久在线中文| 欧美与欧洲交xxxx免费观看| 精品久久对白| 可以在线看的黄色网址| 久久久国际精品| 天堂av免费在线观看| 亚洲最新av在线| 欧美一级在线| 制服国产精品| 国产电影一区在线| 久久精品这里有| 亚洲激情成人网| 欧美特大特白屁股xxxx| 视频一区视频二区视频三区高| 青青草成人在线观看| 午夜国产福利视频| 欧美一区二区三区精品| 波多野结衣中文字幕久久| 精品网站在线看| 日本不卡在线视频| 国产精品免费人成网站酒店| 日韩欧美在线1卡| zzzwww在线看片免费| 欧美精品一区二区三区久久| 日韩成人av影视| 久久国产高清视频| 日韩午夜在线影院| 女厕盗摄一区二区三区| 日本在线视频不卡| 激情深爱一区二区| 日韩欧美三级在线观看| 亚洲午夜小视频| 精品91福利视频| 国产av麻豆mag剧集| 久久久久久久久久电影| 国产又色又爽又黄又免费| 久久91精品国产91久久跳| 欧美一区 二区| 香蕉视频禁止18| 亚洲专区一二三| 蜜桃视频在线免费| 亚洲xxxxx| 国产日韩亚洲| 三上悠亚在线观看视频| 亚洲激情在线观看| 国产精品久久久久久妇女| 国产成人在线小视频| 国产亚洲va综合人人澡精品| 国产特级aaaaaa大片| 欧美中文字幕精品| 先锋资源久久| 熟女少妇一区二区三区| 日韩一级高清毛片| 欧美日韩精品免费观看视完整| 青草全福视在线| 亚洲国产精品t66y| 天堂av在线免费| 亚洲中国色老太| 日韩福利视频导航|