午夜视频免费看_日韩三级电影网站_国产精品久久一级_亚洲一级在线播放_人妻体内射精一区二区三区_91夜夜揉人人捏人人添红杏_91福利在线导航_国产又粗又猛又黄又爽无遮挡_欧美日韩一区在线播放_中文字幕一区二区三区四区不卡 _日日夜夜精品视频免费观看_欧美韩日一区二区三区

主頁(yè) > 知識(shí)庫(kù) > Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理

Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理

熱門(mén)標(biāo)簽:涪陵商都400電話開(kāi)通辦理 云會(huì)外呼系統(tǒng) 外呼系統(tǒng)的經(jīng)營(yíng)范圍 安陽(yáng)ai電銷機(jī)器人軟件 智能電話機(jī)器人坐席 柳州市機(jī)器人外呼系統(tǒng)報(bào)價(jià) 廈門(mén)營(yíng)銷外呼系統(tǒng)平臺(tái) 申請(qǐng)400電話價(jià)格多少 外呼系統(tǒng)不彈窗
/**********************
 * linux的內(nèi)存管理
 **********************/

到目前為止,內(nèi)存管理是unix內(nèi)核中最復(fù)雜的活動(dòng)。我們簡(jiǎn)單介紹一下內(nèi)存管理,并通過(guò)實(shí)例說(shuō)明如何在內(nèi)核態(tài)獲得內(nèi)存。

(1)各種地址

對(duì)于x86處理器,需要區(qū)分以下三種地址:

*邏輯地址(logical address)

只有x86支持。每個(gè)邏輯地址都由一個(gè)段(segment)和一個(gè)偏移量(offset)組成,偏移量指明了從段的開(kāi)始到實(shí)際地址之間的距離。

邏輯地址共48位,段選擇符16位,偏移量32位。linux對(duì)邏輯地址的支持很有限

*線性地址(linear address)

也稱為虛擬地址(virtual address)。

32位無(wú)符號(hào)整數(shù),從0x0000,0000到0xffff,ffff,共4GB的地址范圍。無(wú)論是應(yīng)用程序還是驅(qū)動(dòng)程序,我們?cè)诔绦蛑惺褂玫牡刂范际翘摂M地址。

*物理地址(physical address)

32位無(wú)符號(hào)整數(shù),與從CPU的地址引腳發(fā)送到存儲(chǔ)器總線上的電信號(hào)相對(duì)應(yīng)。用于存儲(chǔ)器尋址。

找一個(gè)程序,如scanf.c,運(yùn)行兩個(gè),然后執(zhí)行下面指令觀察:

$>pmap $(pid)
$>cat /proc/$(pid)/maps

(2)物理內(nèi)存和虛擬內(nèi)存

a.物理內(nèi)存

就是系統(tǒng)中實(shí)際存在的RAM,比如我們常說(shuō)的一條256兆R(shí)AM。x86處理器和物理內(nèi)存之間是通過(guò)實(shí)際的物理線路連接的。

另外,x86處理器還通過(guò)主板連接了很多的外設(shè),這些外設(shè)也通過(guò)實(shí)際的物理線路和處理器相連。

對(duì)于處理器來(lái)說(shuō),多數(shù)的外設(shè)和RAM的訪問(wèn)方式是一致的,都是由程序發(fā)出物理地址訪問(wèn)實(shí)際的物理器件。

外設(shè)和RAM共享一個(gè)4G大小的物理內(nèi)存空間。

b.虛擬內(nèi)存

是在物理內(nèi)存之上為每個(gè)進(jìn)程構(gòu)架的一種邏輯內(nèi)存,處于應(yīng)用程序的內(nèi)存請(qǐng)求與硬件內(nèi)存管理單元(Memory Management Unit, MMU) 之間.MMU將應(yīng)用程序使用的虛擬內(nèi)存根據(jù)預(yù)先定義好的頁(yè)表轉(zhuǎn)化為物理地址,然后通過(guò)物理地址對(duì)實(shí)際的外設(shè)或RAM進(jìn)行訪問(wèn)。

虛擬內(nèi)存有很多用途和優(yōu)點(diǎn):

  • *若干個(gè)進(jìn)程可以并發(fā)地執(zhí)行
  • *應(yīng)用程序所需內(nèi)存大于物理內(nèi)存時(shí)也可以運(yùn)行
  • *程序只有部分代碼裝入內(nèi)存時(shí)進(jìn)程可以執(zhí)行它
  • *允許每個(gè)進(jìn)程訪問(wèn)可用物理內(nèi)存的一個(gè)子集
  • *進(jìn)程可以共享庫(kù)函數(shù)或程序的一個(gè)單獨(dú)內(nèi)存映像
  • *程序是可重定位的,也就是說(shuō),可以把程序放在物理內(nèi)存的任何地方
  • *編程者可以編寫(xiě)與機(jī)器無(wú)關(guān)的代碼,不必關(guān)心物理內(nèi)存的組織結(jié)構(gòu)

(3)RAM的使用

linux將實(shí)際的物理RAM劃分為兩部分使用,其中若干兆字節(jié)專門(mén)用于存放內(nèi)核映像(也就是內(nèi)核代碼和內(nèi)核靜態(tài)數(shù)據(jù)結(jié)構(gòu)),RAM的其余部分通常由虛擬內(nèi)存系統(tǒng)來(lái)處理,并用在以下3種可能的方面:

  • *滿足內(nèi)核對(duì)緩存,描述符和其他動(dòng)態(tài)內(nèi)核數(shù)據(jù)結(jié)構(gòu)的請(qǐng)求
  • *滿足進(jìn)程對(duì)一般內(nèi)存區(qū)的請(qǐng)求及對(duì)文件內(nèi)存映射的請(qǐng)求
  • *借助于高速緩存從磁盤(pán)及其他緩沖設(shè)備獲得較好的性能

虛擬內(nèi)存必須解決的一個(gè)主要問(wèn)題是內(nèi)存碎片,因?yàn)橥ǔ?nèi)核使用連續(xù)的物理內(nèi)存,所以碎片過(guò)多可能導(dǎo)致請(qǐng)求失敗。

/**********************
 * 在內(nèi)核中獲取內(nèi)存
 **********************/

和在用戶空間中一樣,在內(nèi)核中也可以動(dòng)態(tài)分配和釋放內(nèi)存,但受到的限制要比用戶空間多一些。

(1)內(nèi)核中的內(nèi)存管理

內(nèi)核把物理頁(yè)作為內(nèi)存管理的基本單位。這主要是因?yàn)閮?nèi)存管理單元(MMU)是以頁(yè)為單位進(jìn)行虛擬地址和物理地址轉(zhuǎn)換的,從虛擬內(nèi)存的角度來(lái)看,頁(yè)就是最小單位。大多數(shù)32位體系結(jié)構(gòu)支持4KB的頁(yè)。

a.頁(yè)

內(nèi)核用struct page表示系統(tǒng)中的每個(gè)物理頁(yè)。

包括<linux/mm.h>就可以使用page,其實(shí)際定義在<linux/mm_types.h>

struct page{
 page_flags_t flags;
 atomic_t _count;
 atomic_t _mapcount;
 unsigned long private;
 struct address_space *mapping;
 pgoff_t index;
 struct list_head lru;
 void *virtual;
};

flags用于存放頁(yè)的狀態(tài),定義在<linux/page-flags.h>,狀態(tài)包括頁(yè)是不是臟的,是不是被鎖定在內(nèi)存中等等。_count存放頁(yè)的引用計(jì)數(shù)。

page結(jié)構(gòu)與物理頁(yè)相關(guān),并非與虛擬頁(yè)相關(guān)。結(jié)構(gòu)的目的再于描述物理內(nèi)存本身,而不是其中的數(shù)據(jù)。

內(nèi)核根據(jù)page結(jié)構(gòu)來(lái)管理系統(tǒng)中所有的頁(yè),內(nèi)核通過(guò)page可以知道一個(gè)頁(yè)是否空閑(也就是頁(yè)有沒(méi)有被分配)。

如果頁(yè)已經(jīng)被分配,內(nèi)核還需要知道誰(shuí)擁有這個(gè)頁(yè)。

擁有者可能是用戶空間進(jìn)程,動(dòng)態(tài)分配的內(nèi)核數(shù)據(jù),靜態(tài)內(nèi)核代碼,或頁(yè)高速緩存等。

系統(tǒng)中的每個(gè)物理頁(yè)都要分配這樣一個(gè)結(jié)構(gòu)。如果結(jié)構(gòu)體40字節(jié)大小,則128MB物理內(nèi)存(4K的頁(yè))需要分配1MB多用于page結(jié)構(gòu)。

b.區(qū)

由于硬件的限制,內(nèi)核不能對(duì)所有的頁(yè)一視同仁。內(nèi)核使用區(qū)(zone)對(duì)具有相似特性的頁(yè)進(jìn)行分組。這些特性包括:

  • *一些硬件只能用某些特定的內(nèi)存地址來(lái)執(zhí)行DMA
  • *一些體系結(jié)構(gòu)其內(nèi)存的物理尋址范圍遠(yuǎn)大于虛擬尋址范圍,這樣,就有一些內(nèi)存不能永久地映射到內(nèi)核空間

針對(duì)這些限制,linux采用了三種區(qū)(<linux/mmzone.h>):

  • ZONE_DMA:這個(gè)區(qū)包含的頁(yè)能執(zhí)行DMA操作
  • ZONE_NORMAL:這個(gè)區(qū)包含的都是能正常映射的頁(yè)
  • ZONE_HIGHMEM:這個(gè)區(qū)包含高端內(nèi)存(大于896M),其中的頁(yè)不能永久地映射到內(nèi)核的地址空間

對(duì)于x86,這3個(gè)區(qū)對(duì)于的物理內(nèi)存分別是:

  • ZONE_DMA: <16MB
  • ZONE_NORMAL: 16~896MB
  • ZONE_HIGHMEM: >896MB

見(jiàn)<linux/mmzone.h>中的struct zone。

系統(tǒng)中只有3個(gè)這樣的區(qū)結(jié)構(gòu)。

(2)頁(yè)分配

內(nèi)核是使用頁(yè)進(jìn)行內(nèi)存管理的,因此,我們?cè)趦?nèi)核中也可以要求系統(tǒng)以頁(yè)為單位給我們分配內(nèi)存。當(dāng)然,以頁(yè)為單位分配可能造成內(nèi)存浪費(fèi),因此,只有在我們確定需要整頁(yè)內(nèi)存時(shí)才調(diào)用他們。

a.分配

#include <linux/gfp.h>
1. struct page * alloc_pages(
    unsigned int gfp_mask, 
    unsigned int order);
//分配2的order次方個(gè)連續(xù)的物理頁(yè)。
2. void *page_address(
    struct page *page);
//返回一個(gè)指針,指向給定物理頁(yè)當(dāng)前的虛擬地址
3. unsigned long __get_free_pages(
    unsigned int gfp_mask, 
    unsigned int order);
//相當(dāng)于上兩個(gè)函數(shù)結(jié)合
4. struct page * alloc_page(
    unsigned int gfp_mask);
5. unsigned long __get_free_page(
    unsigned int gfp_mask);
6. unsigned long get_zeroed_page(
    unsigned int gfp_mask);
//只分配一頁(yè)

b.gfp_mask標(biāo)志

這個(gè)標(biāo)志決定了內(nèi)核在分配內(nèi)存時(shí)的行為,以及從哪里分配內(nèi)存。

#include <linux/gfp.h>
#define GFP_ATOMIC
//原子分配,不會(huì)休眠,可用于中斷處理。
#define GFP_KERNEL 
//首選,內(nèi)核可能會(huì)睡眠,用在進(jìn)程上下文中

c.釋放頁(yè)

void __free_pages(struct page *page,
    unsigned int order);
void free_pages(unsigned long addr,
    unsigned int order);
void free_page(unsigned long addr);

注意!只能釋放屬于你的頁(yè)。錯(cuò)誤的參數(shù)可能導(dǎo)致內(nèi)核崩潰。

(3)通過(guò)kmalloc獲取內(nèi)存

kmalloc和malloc很象,是內(nèi)核中最常用的內(nèi)存分配函數(shù)。

kmalloc不會(huì)對(duì)分配的內(nèi)存區(qū)域清0,分配的區(qū)域在物理內(nèi)存中是連續(xù)的。

a.分配

#include <linux/slab.h>
void *kmalloc(size_t size, int flags)

size是要求分配的內(nèi)存的大小

kmalloc的參數(shù)flags可以控制kmalloc分配時(shí)的行為。和alloc_page時(shí)使用的標(biāo)志是一致的。注意,kmalloc不能分配高端內(nèi)存

b.釋放

#include <linux/slab.h>
 void kfree(const void *ptr);

如果要釋放的內(nèi)存已經(jīng)被釋放了,或者釋放屬于內(nèi)核其他部分的內(nèi)存,則會(huì)產(chǎn)生嚴(yán)重的后果。調(diào)用kfree(NULL)是安全的。

要注意!內(nèi)核只能分配一些預(yù)定義的,固定大小的字節(jié)數(shù)組。kmalloc能處理的最小內(nèi)存塊是32或64。由于kmalloc分配的內(nèi)存在物理上連續(xù),所以有分配上限,通常不要超過(guò)128KB。

(4)通過(guò)vmalloc獲得內(nèi)存

vmalloc()分配的內(nèi)存虛擬地址是連續(xù)的,但物理地址不需要連續(xù)。這也是malloc()的分配方式。vmalloc分配非連續(xù)的內(nèi)存塊,再修改頁(yè)表,把內(nèi)存映射到邏輯空間連續(xù)的區(qū)域內(nèi)。

大多數(shù)情況下,只有硬件設(shè)備需要得到物理地址連續(xù)的內(nèi)存,內(nèi)核可以使用通過(guò)vmalloc獲得的內(nèi)存。但內(nèi)核中多采用kmalloc,這主要是考慮性能,因?yàn)関malloc會(huì)引起較大的TLB抖動(dòng),除非映射大塊內(nèi)存時(shí)采用vmalloc。例如模塊動(dòng)態(tài)加載時(shí),就是加載到通過(guò)vmalloc分配的內(nèi)存。

vmalloc在<linux/vmalloc.h>聲明,在<mm/vmalloc.c>定義,用法和malloc()相同。

 void* vmalloc(unsigned long size);
 void vfree(void *addr);

vmalloc會(huì)引起睡眠  

(5)通過(guò)slab機(jī)制獲得內(nèi)存

分配和釋放數(shù)據(jù)結(jié)構(gòu)是內(nèi)核最普遍的操作之一。

一種常用的方法是構(gòu)建一個(gè)空閑鏈表,其中包含有可供使用的,已經(jīng)分配好的數(shù)據(jù)結(jié)構(gòu)塊。

每次要分配數(shù)據(jù)結(jié)構(gòu)就不用再申請(qǐng)內(nèi)存,而是直接從這個(gè)空閑鏈表中分配數(shù)據(jù)塊,釋放結(jié)構(gòu)時(shí)將內(nèi)存還回這個(gè)鏈表。

這實(shí)際上是一種對(duì)象高速緩存(緩存對(duì)象).

linux針對(duì)這種要求提供了一個(gè)slab分配器來(lái)完成這一工作。

slab分配器要在幾個(gè)基本原則之間尋求平衡:

  • *頻繁使用的數(shù)據(jù)結(jié)構(gòu)會(huì)頻繁分配和釋放,需要緩存
  • *頻繁分配和回收必然導(dǎo)致內(nèi)存碎片,為避免這一現(xiàn)象,空閑鏈表中的緩存會(huì)連續(xù)存放,從而避免碎片
  • *分配器可以根據(jù)對(duì)象大小,頁(yè)大小和總的高速緩存大小來(lái)進(jìn)行優(yōu)化

kmalloc就建立在slab之上。

a.創(chuàng)建一個(gè)新的高速緩存

#include <linux/slab.h>
struct kmem_cache *kmem_cache_create(
   const char *name, 
   size_t size,
   size_t align,
   unsigned long flags,
   void(*ctor)(...));

name: 高速緩存的名字。出現(xiàn)在/proc/slabinfo
size: 緩存中每個(gè)元素的大小
align: 緩存中第一個(gè)對(duì)象的偏移,常用0
flags:分配標(biāo)志。常用SLAB_HWCACHE_ALIGH,表明按cache行對(duì)齊,見(jiàn)slab.h

b.銷毀高速緩存

#include <linux/slab.h>
void kmem_cache_destroy(struct kmem_cache *cachep);

必須在緩存中的所有對(duì)象都被釋放后才能調(diào)用。

c.從高速緩存中獲得對(duì)象

void *kmem_cache_alloc(
   struct kmem_cache *cachep, int flags);
flags:
   GFP_KERNEL

d.將對(duì)象釋放回高速緩存

void kmem_cache_free(
   struct kmem_cache *cachep, void *objp);

可參見(jiàn)kernel/fork.c

(6)高端內(nèi)存的映射

在高端內(nèi)存中的頁(yè)不能永久地映射到內(nèi)核地址空間,因此,通過(guò)alloc_pages()函數(shù)以__GFP_HIGHMEM標(biāo)志獲得的頁(yè)不可能有虛擬地址。需要通過(guò)函數(shù)為其動(dòng)態(tài)分配。

a.映射

要映射一個(gè)給定的page結(jié)構(gòu)到內(nèi)核地址空間,可以使用:

void *kmap(struct page *page);

函數(shù)可以睡眠

b.解除映射

void kunmap(struct page* page);

總結(jié)

以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接

標(biāo)簽:撫順 巴中 晉城 福州 南充 綏化 蕪湖 孝感

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理》,本文關(guān)鍵詞  Linux,內(nèi)核,設(shè)備驅(qū)動(dòng),之,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Linux內(nèi)核設(shè)備驅(qū)動(dòng)之內(nèi)存管理筆記整理的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    熟妇人妻av无码一区二区三区| 国产精品视频精品| 国产免费一区二区三区在线能观看| 高清视频一区| 99视频精品全部免费看| 自拍偷拍一区二区三区四区| 国产毛片欧美毛片久久久| 国产黄色免费观看| 久久久久国产精品一区三寸| 国产成人午夜高潮毛片| 亚洲精品福利视频网站| 51精品久久久久久久蜜臀| 中文字幕精品在线视频| 国产精品国模在线| 亚洲欧洲精品一区二区| 天天干天天操天天玩| 欧美色图17p| 亚洲综合视频在线播放| 精品一二三四区| 中文字幕在线视频一区| 9191成人精品久久| 九九久久国产精品| 鬼打鬼之黄金道士1992林正英| 免费在线看黄色片| 日韩Av无码精品| 国产又色又爽又黄的| 久久亚洲美女| 中文字幕一区二区三区av| 欧美理论电影在线| 欧美日本中文字幕| 精品在线视频一区二区三区| 国产熟女高潮视频| 俄罗斯毛片基地| 99国产精品一区二区三区 | 欧美日韩国产精品成人| 北条麻妃99精品青青久久| 97免费资源站| 黄色片久久久久| 国产黄色小视频网站| 黄色av免费观看| 欧美高清在线一区| 日韩欧美的一区| 欧美亚洲国产视频| 亚洲三区在线| 欧产日产国产精品98| 国产一级片av| 成人三级在线视频| 欧美亚洲自拍偷拍| 欧美激情2020午夜免费观看| 日本福利一区二区三区| 欧美专区第二页| 久久国产黄色片| 激情成人午夜视频| 欧美日韩国产色| 日韩视频精品在线| 精品免费国产| 特级西西444www| 日韩精品在线观看免费| 国产精一区二区三区| 亚洲18色成人| 久久精品免费播放| 精品久久久久久一区二区里番| 亚洲另类第一页| 日产精品久久久久| 国产原创一区二区| 色婷婷亚洲婷婷| 欧美激情视频给我| 亚洲最新在线| 野外性满足hd| 亚洲第一天堂在线观看| 国产精品国产三级国产| 日韩国产一区三区| 999热视频| 五月婷婷六月丁香激情| 日韩黄色在线播放| 成人国产精品免费观看视频| 欧美高清视频一二三区| 国产成人啪精品视频免费网| www.国产在线播放| 粉嫩av性色av蜜臀av网站| 日韩精品91亚洲二区在线观看| 亚洲国产精品一区二区www | 久久人人爽亚洲精品天堂| 乱一区二区三区在线播放| 亚洲熟妇一区二区| 国产精品自偷自拍| 国产精品国产馆在线真实露脸| 亚洲欧洲高清在线| 激情伦成人综合小说| 成年人看片网站| 在线亚洲欧美日韩| 国产欧美一区二区在线观看| 日韩电影中文字幕一区| 国产日韩亚洲精品| avtt中文字幕| 国产精品嫩草影院精东| 日韩一区在线看| 日韩视频精品在线| 欧美 日韩 国产 在线观看| 五月天精品在线| 五月婷婷开心中文字幕| 精品久久久在线观看| 久久久午夜视频| 久操网在线观看| 欧美日韩激情在线观看| 国产宾馆实践打屁股91| 日韩精品一区二区三区三区免费 | 精品黑人一区二区三区国语馆| 亚洲欧美欧美一区二区三区| 久久九九有精品国产23| 国产四区在线观看| 欧美日韩在线观看成人| 国v精品久久久网| 亚洲爱爱爱爱爱| 精品国产乱码久久久久久108| 69亚洲乱人伦| 污污视频在线观看网站| 色呦呦一区二区三区| 国产成人高潮免费观看精品| 少妇高清精品毛片在线视频| 午夜久久久久久久久久影院| 国产精品看片你懂得| 最近2019中文免费高清视频观看www99 | 国产成人鲁色资源国产91色综| 日韩午夜电影在线观看| 国产精品美女黄网| 亚洲国产欧美视频| 日本不卡高清视频| 91精品国产综合久久精品图片 | 日韩一区二区电影网| 岛国视频一区免费观看| 漂亮人妻被黑人久久精品| 三级在线观看一区二区| 欧美精品久久99久久在免费线 | 中文字幕字幕中文在线中不卡视频| 精品国内产的精品视频在线观看| 日韩精品手机在线观看| 日本三级欧美三级| 国产精品久久午夜夜伦鲁鲁| 欧美成人午夜激情| 免费无码不卡视频在线观看| 日本中文字幕在线观看视频| 亚洲欧美二区三区| 91高清免费在线观看| 杨幂毛片午夜性生毛片 | www.国产欧美| 色一区在线观看| 91欧美精品成人综合在线观看| 一级少妇精品久久久久久久| 久久成人精品无人区| 精品嫩草影院久久| 日韩精品另类天天更新| 麻豆疯狂做受xxxx高潮视频| 国产亚洲欧美激情| 欧美人在线视频| 午夜两性免费视频| 日日夜夜精品免费| 9191久久久久久久久久久| 久久国产精品 国产精品| 亚洲熟女少妇一区二区| 久久婷婷成人综合色| 久久亚洲国产成人| 日本不卡在线观看视频| 国产毛片久久久久| 色婷婷香蕉在线一区二区| 91影院未满十八岁禁止入内| 欧美黄色激情视频| 972aa.com艺术欧美| 日韩中文字幕国产| www.av中文字幕| 国产精品天天操| 欧美性生活久久| 国产亚洲情侣一区二区无| 99热这里只有精品4| 国产校园另类小说区| 久久久久久久成人| 亚洲精品视频三区| 日本不卡高清视频| 亚洲男人天堂网站| 免费毛片网站在线观看| 国产免费的av| 欧美美女黄视频| 欧美最大成人综合网| 国产大片aaa| 亚洲自拍偷拍网站| 成人春色激情网| 无码少妇精品一区二区免费动态| 91蝌蚪porny| 高清一区二区三区日本久| 五月天婷婷在线观看视频| 麻豆专区一区二区三区四区五区| 亚洲精品中文字幕女同| 可以看毛片的网址| 亚洲精品综合久久| 精品少妇一区二区三区 | 久久久久久蜜桃| 亚洲黄色片在线观看| 成人免费在线视频网址| 超薄肉色丝袜一二三| 欧美极品另类videosde| 国产成人综合av| 日本少妇高潮喷水xxxxxxx| 久久天天做天天爱综合色| 97热精品视频官网| 中文字幕乱码在线| 91丨九色porny丨蝌蚪| 国语自产精品视频在线看抢先版图片| 亚洲欧美激情一区二区三区| 国产成人精品1024| 欧美激情一区二区三区久久久 | 看全色黄大色黄女片18| av中文字幕不卡| 97超级碰碰人国产在线观看| 亚洲精品乱码久久久久久久| 久久综合999| 欧美在线视频一区| 三上悠亚影音先锋| 国产精品国产三级国产aⅴ入口| 国产日产亚洲精品| 91人妻一区二区三区蜜臀| 1区2区3区精品视频| 91久久精品国产91久久| 欧美成人一二三区| 午夜视频在线观看一区二区三区| 国产中文一区二区| 欧美精品一二三四区| 欧美午夜精品电影| 日本一级淫片演员| www.污视频| 日韩精品小视频| 最新中文字幕2018| 国产精品99久| 8x海外华人永久免费日韩内陆视频 | 在线免费看污网站| 成人av免费观看| 国产成人精品综合久久久| av在线免费播放网址| 亚洲综合久久久| 欧美高清性xxxxhdvideosex| 制服丝袜在线一区| 欧美刺激午夜性久久久久久久| 精品少妇人妻av免费久久洗澡| 日韩电影在线一区二区| 久久九九精品99国产精品| 精品无码人妻少妇久久久久久| 91偷拍与自偷拍精品| 国产精品欧美日韩| 美女视频黄免费| 在线免费观看视频一区| 最新视频 - x88av| 美女精品在线观看| 不卡伊人av在线播放| 中文字幕一区三区久久女搜查官| 国产精品美女久久久久高潮| 波多野结衣一区二区三区在线观看| 特黄视频免费看| 欧美一级片在线看| 97超碰青青草| 国产精品99久久久久久有的能看| 97超级碰碰碰久久久| 中国毛片直接看| 色综合天天狠狠| 三级在线免费观看| 日本网站在线观看一区二区三区 | 亚洲一区二区精品3399| 日韩wuma| 四虎精品一区二区三区| 欧美精品在线免费| 91l九色lporny| 午夜成人在线视频| 香蕉视频在线网址| 日韩vs国产vs欧美| 性色av一区二区三区| 日本激情视频一区二区三区| 色综合久久久久久久久久久| 成年人视频网站免费| 久久福利视频一区二区| 日韩免费观看视频| 国产精品9191| 日韩免费一区二区三区在线播放| 免费在线观看日韩视频| 成人av网址在线| 91精品国产99久久久久久红楼| 国产精品自拍第一页| 亚洲精品资源美女情侣酒店 | 91蜜桃网址入口| 成人网在线免费观看| www.色国产| 日韩精品久久久久久福利| 国产精九九网站漫画| 樱花影视一区二区| 中文字幕人成一区| 久久国产精品99久久人人澡| 热re99久久精品国产66热 | 亚洲视频综合网| 亚洲国产综合视频| 无码av免费一区二区三区试看 | 26uuu成人网一区二区三区| 99国产超薄丝袜足j在线观看 | 999久久久久久| 久久天堂av综合合色| 91无套直看片红桃在线观看| 欧美日韩在线一区二区| 91蝌蚪视频在线观看| 欧美激情一区二区| 日本一区二区三区www| 日韩和欧美一区二区三区| 日韩av片电影专区| 国产视频1区2区| 一区二区三区久久精品| 日韩女同一区二区三区| 欧美视频在线播放| 一区二区免费av| 亚洲欧美国产毛片在线| 777久久精品一区二区三区无码 | 亚洲天堂视频网| 久久精品91久久香蕉加勒比| 精品国产av无码| 欧美三级资源在线| 色啦啦av综合| 伊人开心综合网| 福利视频一区二区三区四区| 99re亚洲国产精品| 欧美韩国日本精品一区二区三区| 久久久噜噜噜| 国产精品网站视频| 国产乱叫456在线| 久久人人爽人人爽人人片av高清| 国产午夜久久久| 亚洲欧美在线磁力| 成年人视频软件| 欧美成人在线直播| 亚洲av成人无码一二三在线观看| 日本韩国视频一区二区| 少妇黄色一级片| 亚洲精品国产一区二区三区四区在线| 免费网站永久免费观看| 久久色.com| 伊人久久99| 99视频精品在线| 日本在线视频不卡| 国产精品一卡二卡| 久久99热只有频精品91密拍| 捆绑变态av一区二区三区| 91视频免费在线观看| 久久久亚洲一区| 国产日韩欧美日韩大片| 蜜桃av噜噜一区二区三区麻豆| 国产成人avxxxxx在线看| 国产免费的av| 欧美与黑人午夜性猛交久久久| 国产99免费视频| 久久久久久美女| 日韩国产亚洲欧美| 欧美精品久久久久久久免费观看| 国产成人免费看| 久久伊人精品视频| 二区视频在线观看| 欧美黑人性视频| 波多野结衣一区二区三区在线| 欧美成在线视频| 青青视频在线免费观看| 欧美精品在线看| 性高潮视频在线观看| 国内精品中文字幕| 91久久精品国产91性色69| 韩国视频理论视频久久| 中文字幕无码乱码人妻日韩精品| 午夜精品久久久久久久久久久久| 正在播放木下凛凛xv99| 97精品伊人久久久大香线蕉| 国产一区二区在线视频聊天| 国产99久久精品一区二区永久免费| 精品国产无码一区二区三区| 国产在线观看精品一区二区三区| 无码国精品一区二区免费蜜桃| 亚洲精品免费在线视频| 免费高清在线一区| 开心色怡人综合网站| 成人国产视频在线观看| 亚洲一区二区在线看| 国产亚洲精品aa午夜观看| 精品人妻大屁股白浆无码| **欧美大码日韩| 亚洲一二三区av| 色婷婷久久久久swag精品 | 亚洲av电影一区| 国产精品免费区二区三区观看| 国产真实乱对白精彩久久| 久久久久久一区| 不卡免费追剧大全电视剧网站| 久久最新免费视频| 最新日韩在线视频| 成人性生交免费看| 欧美视频在线观看一区二区| 91成人破解版| 亚洲人成77777在线观看网| 99久在线精品99re8热| 久久久噜噜噜久久久| www.日本在线观看| 99porn视频在线| 国产不卡视频一区二区三区| 50度灰在线观看| 亚洲欧美日韩一区| 亚洲黄色片免费| 日韩亚洲欧美在线| 欧美国产日韩综合| 丝袜情趣国产精品| 在线免费a视频| 91亚洲精品一区|