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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ioremap,你应该知道的事

發布時間:2023/12/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ioremap,你应该知道的事 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

因為現在使用是dts來表示板級,也就是machine,所以現在我們在內核使用內核映射使用的函數是of_iomap。

c代碼:

?struct?device_node?*node?=?NULL;unsigned?int?irq_info[3]?=?{?0,?0,?0?};u32?phys_base;switch?(idx)?{case?0:node?=?of_find_node_by_name(NULL,?"uart0");break;case?1:node?=?of_find_node_by_name(NULL,?"uart1");break;case?2:node?=?of_find_node_by_name(NULL,?"uart2");break;default:break;}if?(node)?{/*?iomap?registers?*/mtk_uart_default_settings[idx].uart_base?=?(unsigned?long)of_iomap(node,?0);/*?get?IRQ?ID?*/mtk_uart_default_settings[idx].irq_num?=?irq_of_parse_and_map(node,?0);}

dts代碼:

uart0:?serial@11002000?{compatible?=?"mediatek,mt8127-uart","mediatek,mt6577-uart";reg?=?<0?0x11002000?0?0x400>;interrupts?=?<GIC_SPI?51?IRQ_TYPE_LEVEL_LOW>;clocks?=?<&uart_clk>;status?=?"disabled"; };

重點

看到一篇寫iomap非常不錯的文章,轉載分享給大家看看,這個文章寫的比較久了,我覺得現在是有借鑒意義的。

轉自:

https://blog.csdn.net/dinuliang/article/details/5823937

我們知道默認外設I/O資源是不在Linux內核空間中的(如sram或硬件接口寄存器等),若需要訪問該外設I/O資源,必須先將其地址映射到內核空間中來,然后才能在內核空間中訪問它。

Linux內核訪問外設I/O內存資源的方式有兩種:動態映射(ioremap)和靜態映射(map_desc)。

一、動態映射(ioremap)方式

動態映射方式是大家使用了比較多的,也比較簡單。即直接通過內核提供的ioremap函數動態創建一段外設I/O內存資源到內核虛擬地址的映射表,從而可以在內核空間中訪問這段I/O資源。

Ioremap宏定義在asm/io.h內:

#define?ioremap(cookie,size)???????????__ioremap(cookie,size,0)__ioremap函數原型為(arm/mm/ioremap.c):void?__iomem?*?__ioremap(unsigned?long?phys_addr,?size_t?size,?unsigned?long?flags);
  • phys_addr:要映射的起始的IO地址

  • size:要映射的空間的大小

  • flags:要映射的IO空間和權限有關的標志

該函數返回映射后的內核虛擬地址(3G-4G). 接著便可以通過讀寫該返回的內核虛擬地址去訪問之這段I/O內存資源。

舉一個簡單的例子: (取自s3c2410的iis音頻驅動)

比如我們要訪問s3c2410平臺上的I2S寄存器, 查看datasheet 知道IIS物理地址為0x55000000,我們把它定義為宏S3C2410_PA_IIS,如下:

#define?S3C2410_PA_IIS????(0x55000000)

若要在內核空間(iis驅動)中訪問這段I/O寄存器(IIS)資源需要先建立到內核地址空間的映射:

our_card->regs?=?ioremap(S3C2410_PA_IIS,?0x100);if?(our_card->regs?==?NULL)?{err?=?-ENXIO;goto?exit_err;}

創建好了之后,我們就可以通過readl(our_card->regs )或writel(value, our_card->regs)等IO接口函數去訪問它。

二、靜態映射(map_desc)方式

下面重點介紹靜態映射方式即通過map_desc結構體靜態創建I/O資源映射表。

內核提供了在系統啟動時通過map_desc結構體靜態創建I/O資源到內核地址空間的線性映射表(即page table)的方式,這種映射表是一種一一映射的關系。程序員可以自己定義該I/O內存資源映射后的虛擬地址。創建好了靜態映射表,在內核或驅動中訪問該I/O資源時則無需再進行ioreamp動態映射,可以直接通過映射后的I/O虛擬地址去訪問它。

下面詳細分析這種機制的原理并舉例說明如何通過這種靜態映射的方式訪問外設I/O內存資源。

內核提供了一個重要的結構體struct machine_desc ,這個結構體在內核移植中起到相當重要的作用,內核通過machine_desc結構體來控制系統體系架構相關部分的初始化。

machine_desc結構體的成員包含了體系架構相關部分的幾個最重要的初始化函數,包括map_io, init_irq, init_machine以及phys_io , timer成員等。

machine_desc結構體定義如下:

struct?machine_desc?{/**?Note!?The?first?four?elements?are?used*?by?assembler?code?in?head-armv.S*/unsigned?int????????nr;????????/*?architecture?number????*/unsigned?int????????phys_io;????/*?start?of?physical?io????*/unsigned?int????????io_pg_offst;????/*?byte?offset?for?io?*?page?tabe?entry????*/const?char????????*name;????????/*?architecture?name????*/unsigned?long????????boot_params;????/*?tagged?list????????*/unsigned?int????????video_start;????/*?start?of?video?RAM????*/unsigned?int????????video_end;????/*?end?of?video?RAM????*/unsigned?int????????reserve_lp0?:1;????/*?never?has?lp0????*/unsigned?int????????reserve_lp1?:1;????/*?never?has?lp1????*/unsigned?int????????reserve_lp2?:1;????/*?never?has?lp2????*/unsigned?int????????soft_reboot?:1;????/*?soft?reboot????????*/void????????????(*fixup)(struct?machine_desc?*,struct?tag?*,?char?**,struct?meminfo?*);void????????????(*map_io)(void);/*?IO?mapping?function????*/void????????????(*init_irq)(void);struct?sys_timer????*timer;????????/*?system?tick?timer????*/void????????????(*init_machine)(void); };

這里的map_io成員即內核提供給用戶的創建外設I/O資源到內核虛擬地址靜態映射表的接口函數。Map_io成員函數會在系統初始化過程中被調用,流程如下:

Start_kernel?->?setup_arch()?-->?paging_init()?-->?devicemaps_init()中被調用

Machine_desc結構體通過MACHINE_START宏來初始化。

注:MACHINE_START的使用及各個成員函數的調用過程請參考:

http://blog.chinaunix.net/u2/60011/showart_1010489.html

用戶可以在定義Machine_desc結構體時指定Map_io的接口函數,這里以s3c2410平臺為例。

s3c2410 machine_desc結構體定義如下:

/*?arch/arm/mach-s3c2410/Mach-smdk2410.c?*/ MACHINE_START(SMDK2410,?"SMDK2410")?/*?@TODO:?request?a?new?identifier?and?switch*?to?SMDK2410?*//*?Maintainer:?Jonas?Dietsche?*/.phys_io????=?S3C2410_PA_UART,.io_pg_offst????=?(((u32)S3C24XX_VA_UART)?>>?18)?&?0xfffc,.boot_params????=?S3C2410_SDRAM_PA?+?0x100,.map_io????????=?smdk2410_map_io,.init_irq????=?s3c24xx_init_irq,.init_machine????=?smdk2410_init,.timer????????=?&s3c24xx_timer, MACHINE_END

如上,map_io被初始化為smdk2410_map_io。smdk2410_map_io即我們自己定義的創建靜態I/O映射表的函數。在Porting內核到新開發板時,這個函數需要我們自己實現。

(注:這個函數通常情況下可以實現得很簡單,只要直接調用iotable_init創建映射表就行了,我們的板子內核就是。不過s3c2410平臺這個函數實現得稍微有點復雜,主要是因為它將要創建IO映射表的資源分為了三個部分(smdk2410_iodesc, s3c_iodesc以及s3c2410_iodesc)在不同階段分別創建。這里我們取其中一個部分進行分析,不影響對整個概念的理解。)

S3c2410平臺的smdk2410_map_io函數最終會調用到s3c2410_map_io函數。

流程如下:

s3c2410_map_io?->?s3c24xx_init_io?->?s3c2410_map_io

下面分析一下s3c2410_map_io函數:

void?__init?s3c2410_map_io(struct?map_desc?*mach_desc,?int?mach_size) {/*?register?our?io-tables?*/iotable_init(s3c2410_iodesc,?ARRAY_SIZE(s3c2410_iodesc));…… }

iotable_init內核提供,定義如下:

/**?Create?the?architecture?specific?mappings*/ void?__init?iotable_init(struct?map_desc?*io_desc,?int?nr) {int?i;for?(i?=?0;?i?<?nr;?i++)create_mapping(io_desc?+?i); }

由上知道,s3c2410_map_io最終調用iotable_init建立映射表。

iotable_init函數的參數有兩個:一個是map_desc類型的結構體,另一個是該結構體的數量nr。這里最關鍵的就是struct map_desc。map_desc結構體定義如下:

/*?include/asm-arm/mach/map.h?*/ struct?map_desc?{unsigned?long?virtual;????/*?映射后的虛擬地址?*/unsigned?long?pfn;????????/*?I/O資源物理地址所在的頁幀號?*/unsigned?long?length;????/*?I/O資源長度?*/unsigned?int?type;????????/*?I/O資源類型?*/ };

create_mapping函數就是通過map_desc提供的信息創建線性映射表的。

這樣的話我們就知道了創建I/O映射表的大致流程為:只要定義相應I/O資源的map_desc結構體,并將該結構體傳給iotable_init函數執行,就可以創建相應的I/O資源到內核虛擬地址空間的映射表了。

我們來看看s3c2410是怎么定義map_desc結構體的(即上面s3c2410_map_io函數內的s3c2410_iodesc)。

/*?arch/arm/mach-s3c2410/s3c2410.c?*/ static?struct?map_desc?s3c2410_iodesc[]?__initdata?=?{IODESC_ENT(USBHOST),IODESC_ENT(CLKPWR),IODESC_ENT(LCD),IODESC_ENT(TIMER),IODESC_ENT(ADC),IODESC_ENT(WATCHDOG), };

IODESC_ENT宏如下:

#define?IODESC_ENT(x)?{?(unsigned?long)S3C24XX_VA_##x,?__phys_to_pfn(S3C24XX_PA_##x),?S3C24XX_SZ_##x,?MT_DEVICE?}

展開后等價于:

static?struct?map_desc?s3c2410_iodesc[]?__initdata?=?{{.virtual????=?????(unsigned?long)S3C24XX_VA_?LCD),.pfn????????=?????__phys_to_pfn(S3C24XX_PA_?LCD),.length????=????S3C24XX_SZ_?LCD,.type????=?????MT_DEVICE},…… };

S3C24XX_PA_ LCD和S3C24XX_VA_ LCD為定義在map.h內的LCD寄存器的物理地址和虛擬地址。在這里map_desc 結構體的virtual成員被初始化為S3C24XX_VA_ LCD,pfn成員值通過__phys_to_pfn內核函數計算,只需要傳遞給它該I/O資源的物理地址就行。Length為映射資源的大小。MT_DEVICE為I/O類型,通常定義為MT_DEVICE。

這里最重要的即virtual 成員的值S3C24XX_VA_ LCD,這個值即該I/O資源映射后的內核虛擬地址,創建映射表成功后,便可以在內核或驅動中直接通過該虛擬地址訪問這個I/O資源。

?S3C24XX_VA_ LCD以及S3C24XX_PA_ LCD定義如下:/*?include/asm-arm/arch-s3c2410/map.h?*//*?LCD?controller?*/#define?S3C24XX_VA_LCD??????????S3C2410_ADDR(0x00600000)???//LCD映射后的虛擬地址#define?S3C2410_PA_LCD???????????(0x4D000000)????//LCD寄存器物理地址#define?S3C24XX_SZ_LCD???????????SZ_1M????????//LCD寄存器大小

S3C2410_ADDR 定義如下:

#define?S3C2410_ADDR(x)????????((void?__iomem?*)0xF0000000?+?(x))

這里就是一種線性偏移關系,即s3c2410創建的I/O靜態映射表會被映射到0xF0000000之后。(這個線性偏移值可以改,也可以你自己在virtual成員里手動定義一個值,只要不和其他IO資源映射地址沖突,但最好是在0XF0000000之后。)

(注:其實這里S3C2410_ADDR的線性偏移只是s3c2410平臺的一種做法,很多其他ARM平臺采用了通用的IO_ADDRESS宏來計算物理地址到虛擬地址之前的偏移。

IO_ADDRESS宏定義如下:

/*?include/asm/arch-versatile/hardware.h?*//*?macro?to?get?at?IO?space?when?running?virtually?*/#define?IO_ADDRESS(x)????????????(((x)?&?0x0fffffff)?+?(((x)?>>?4)?&?0x0f000000)?+?0xf0000000)?)

s3c2410_iodesc這個映射表建立成功后,我們在內核中便可以直接通過S3C24XX_VA_ LCD訪問LCD的寄存器資源。

如:S3c2410 lcd驅動的probe函數內

?/*?Stop?the?video?and?unset?ENVID?if?set?*/ info->regs.lcdcon1?&=?~S3C2410_LCDCON1_ENVID; lcdcon1?=?readl(S3C2410_LCDCON1);?//read映射后的寄存器虛擬地址 writel(lcdcon1?&?~S3C2410_LCDCON1_ENVID,?S3C2410_LCDCON1);?//write映射后的虛擬地址

S3C2410_LCDCON1寄存器地址為相對于S3C24XX_VA_LCD偏移的一個地址,定義如下:

/*?include/asm/arch-s3c2410/regs-lcd.h?*/#define?S3C2410_LCDREG(x)?((x)?+?S3C24XX_VA_LCD)/*?LCD?control?registers?*/#define?S3C2410_LCDCON1????????S3C2410_LCDREG(0x00)

到此,我們知道了通過map_desc結構體創建I/O內存資源靜態映射表的原理了。總結一下發現其實過程很簡單,一通過定義map_desc結構體創建靜態映射表,二在內核中通過創建映射后虛擬地址訪問該IO資源。

三、I/O靜態映射方式應用實例

I/O靜態映射方式通常是用在寄存器資源的映射上,這樣在編寫內核代碼或驅動時就不需要再進行ioremap,直接使用映射后的內核虛擬地址訪問。同樣的IO資源只需要在內核初始化過程中映射一次,以后就可以一直使用。

寄存器資源映射的例子上面講原理時已經介紹得很清楚了,這里我舉一個SRAM的實例介紹如何應用這種I/O靜態映射方式。當然原理和操作過程同寄存器資源是一樣的,可以把SRAM看成是大號的I/O寄存器資源。

比如我的板子在0x30000000位置有一塊64KB大小的SRAM。我們現在需要通過靜態映射的方式去訪問該SRAM。我們要做的事內容包括修改kernel代碼,添加SRAM資源相應的map_desc結構,創建sram到內核地址空間的靜態映射表。寫一個Sram Module,在Sram Module 內直接通過靜態映射后的內核虛擬地址訪問該sram。

第一步:創建SRAM靜態映射表

在我板子的map_des結構體數組(xxx_io_desc)內添加SRAM資源相應的map_desc。如下:

static?struct?map_desc?xxx_io_desc[]?__initdata?=?{{.virtual????=?IO_ADDRESS(XXX?_UART2_BASE),.pfn????????=?__phys_to_pfn(XXX?_UART2_BASE),.length????????=?SZ_4K,.type????????=?MT_DEVICE},{.virtual????=?IO_ADDRESS(XXX_SRAM_BASE),.pfn????????=?__phys_to_pfn(XXX_SRAM_BASE),.length????????=?SZ_4K,.type????????=?MT_DEVICE}, };

宏XXX_SRAM_BASE為我板子上SRAM的物理地址,定義為0x30000000。我的kernel是通過IO_ADDRESS的方式計算內核虛擬地址的,這點和之前介紹的S3c2410有點不一樣。不過原理都是相同的,為一個線性偏移, 范圍在0xF0000000之后。

第二步:寫個SRAM Module,在Module中通過映射后的虛擬地址直接訪問該SRAM資源

SRAM Module代碼如下:

/*?Sram?Testing?Module?*/ …… static?void?sram_test(void) {void?*?sram_p;char?str[]?=?"Hello,sram!/n";sram_p?=?(void?*)IO_ADDRESS?(XXX_SRAM_BASE);?/*?通過IO_ADDRESS宏得到SRAM映射后的虛擬地址?*/memcpy(sram_p,?str,?sizeof(str));????//將?str字符數組拷貝到sram內printk(sram_p);printk("/n"); }static?int?__init?sram_init(void) {struct?resource?*?ret;printk("Request?SRAM?mem?region?............/n");ret?=?request_mem_region(SRAM_BASE,?SRAM_SIZE,?"SRAM?Region");if?(ret?==NULL)?{printk("Request?SRAM?mem?region?failed!/n");return?-1;}sram_test();return?0; }static?void?__exit?sram_exit(void) {release_mem_region(SRAM_BASE,?SRAM_SIZE);????printk("Release?SRAM?mem?region?success!/n");printk("SRAM?is?closed/n"); }module_init(sram_init); module_exit(sram_exit);

在開發板上運行結果如下:

/ # insmod bin/sram.koRequest SRAM mem region ............Hello,sram! ? 這句即打印的SRAM內的字符串/ # rmmod sramRelease SRAM mem region success!SRAM is close

實驗發現可以通過映射后的地址正常訪問SRAM。

最后,這里舉SRAM作為例子的還有一個原因是通過靜態映射方式訪問SRAM的話,我們可以預先知道SRAM映射后的內核虛擬地址(通過IOADDRESS計算)。這樣的話就可以嘗試在SRAM上做點文章。比如寫個內存分配的MODULE管理SRAM或者其他方式,將一些critical的數據放在SRAM內運行,這樣可以提高一些復雜程序的運行效率(SRAM速度比SDRAM快多了),比如音視頻的編解碼過程中用到的較大的buffer等。


推薦閱讀:

專輯|Linux文章匯總

專輯|程序人生

專輯|C語言

我的知識小密圈

關注公眾號,后臺回復「1024」獲取學習資料網盤鏈接。

歡迎點贊,關注,轉發,在看,您的每一次鼓勵,我都將銘記于心~

嵌入式Linux

微信掃描二維碼,關注我的公眾號

總結

以上是生活随笔為你收集整理的ioremap,你应该知道的事的全部內容,希望文章能夠幫你解決所遇到的問題。

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

亚洲一区av | 99热精品国产一区二区在线观看 | 欧美成人基地 | 亚洲精品2区 | 国产精品麻豆果冻传媒在线播放 | 久久精品成人 | 国产中的精品av小宝探花 | 粉嫩aⅴ一区二区三区 | 国产乱码精品一区二区蜜臀 | 国产精品免费一区二区三区在线观看 | 日韩三级免费 | 久久久99精品免费观看app | 日韩二区三区在线 | 亚洲毛片在线观看. | 天天操天天操一操 | 日本h视频在线观看 | 欧美日韩视频在线 | 麻豆久久 | 人人狠狠综合久久亚洲 | 99色99| 国内精品亚洲 | 亚洲精品视频在线播放 | 免费看片网站91 | 激情婷婷欧美 | www.成人sex | 久草在线资源网 | 亚洲干视频在线观看 | 91在线视频观看免费 | 91香蕉视频 mp4 | 久久久综合电影 | 国产在线欧美在线 | 夜夜躁狠狠燥 | 日韩精品一卡 | 福利视频一二区 | 极品美女被弄高潮视频网站 | 久久久久久久久综合 | 手机看国产毛片 | 四虎天堂 | 97超碰资源总站 | 色七七亚洲影院 | 中文字幕一区在线观看视频 | 就操操久久 | 日韩一区视频在线 | 日韩免费在线观看 | 日韩高清av在线 | 欧美精品乱码久久久久久按摩 | 久久精品久久精品久久精品 | 91高清免费 | 天堂va在线观看 | 亚洲免费在线视频 | 日韩视频一区二区在线观看 | 国产黄色成人av | 五月婷婷一级片 | 久久三级毛片 | 狠狠色伊人亚洲综合成人 | 99免费精品| 国产精品理论片在线观看 | av片子在线观看 | 国偷自产中文字幕亚洲手机在线 | 免费观看全黄做爰大片国产 | 欧美日韩视频在线观看一区二区 | 国产区精品在线观看 | 国产韩国精品一区二区三区 | 91豆麻精品91久久久久久 | 亚洲精品久久久蜜臀下载官网 | 国产精品免费人成网站 | 精品久久久99 | 国产美女久久 | 国产一区二区三区久久久 | 国产精品中文久久久久久久 | 久久玖 | 国产成人在线免费观看 | 久久av伊人| 国产中文欧美日韩在线 | 国产精品一区二区三区电影 | 中文字幕一区二区三区久久蜜桃 | 一区二区三区四区五区在线视频 | 九九爱免费视频在线观看 | 播五月婷婷 | 国产精品99久久久久久宅男 | 狠狠地操 | 欧美最猛性xxxxx(亚洲精品) | 久久免费视频1 | 亚洲国产视频直播 | 久久99精品久久久久久 | 亚洲视频精品 | 久久亚洲综合国产精品99麻豆的功能介绍 | www色av| 国内三级在线观看 | 日韩网站在线 | 天天操天天干天天操天天干 | 亚洲视频久久久久 | 免费观看成人网 | 91av观看| 国产精品久久久久一区二区三区共 | 91伊人久久大香线蕉蜜芽人口 | 五月综合 | 丁香婷婷亚洲 | 亚洲国产视频在线 | 日本bbbb摸bbbb| 麻豆视频免费观看 | 天天操天天操 | 亚洲成人av影片 | 国产精品刺激对白麻豆99 | 97国产大学生情侣白嫩酒店 | 日韩中文字幕在线观看 | 人人干网站 | 亚洲国产成人在线播放 | 中文字幕在线播放日韩 | 99久久网站| 久久热首页 | 亚洲三级黄色 | 99久久这里有精品 | 久久精品8| 欧美淫aaa免费观看 日韩激情免费视频 | 亚洲精品在线电影 | 日韩理论视频 | 亚洲一级电影视频 | 91麻豆精品91久久久久同性 | 在线免费观看一区二区三区 | 91一区在线观看 | 中文字幕视频观看 | 久久久久久久国产精品 | 亚洲视频电影在线 | 久久99国产综合精品 | 国产一区二区免费在线观看 | 五月av在线| 99久高清在线观看视频99精品热在线观看视频 | 国产黄色理论片 | 97国产情侣爱久久免费观看 | 久久亚洲热 | 亚洲成年片 | 国产一区二区三区高清播放 | 久久国产品| 亚洲aⅴ一区二区三区 | 色播99| 亚洲综合日韩在线 | 高清在线一区 | 亚洲视频 在线观看 | 丁香五香天综合情 | 91成人精品在线 | 伊人亚洲精品 | 天天色中文 | 欧美精品久久久久久久亚洲调教 | 天天舔天天射天天操 | 在线免费黄 | 国产自产高清不卡 | 国产美女精品在线 | 国产午夜在线 | 日日日日 | 久久99久久99久久 | 亚洲在线a | 狠狠久久婷婷 | 国产精品久久久久永久免费 | 一区二区三区www | 婷婷丁香狠狠爱 | 91激情在线视频 | 午夜三级大片 | 69av视频在线 | 一区久久久| 91黄站| www.综合网.com | 狠狠干狠狠插 | 97超级碰碰碰碰久久久久 | 2017狠狠干| 久久av免费 | 中文字幕网站视频在线 | 69绿帽绿奴3pvideos | 国产一级免费av | 天天色天天射天天干 | 欧美电影在线观看 | 精品一区免费 | 国产精品久久久久久久久久99 | 97在线观看免费视频 | 麻豆视频在线免费 | 天天搞天天干天天色 | 国产视频在线看 | 91香蕉亚洲精品 | 一区二区三区在线观看中文字幕 | 天天天在线综合网 | 日本精品va在线观看 | 在线免费国产视频 | 一级成人免费 | 色噜噜噜 | 国产在线观看h | 日韩av成人在线观看 | a v在线观看 | 亚洲综合狠狠干 | 国产一区二区中文字幕 | 中文字幕成人在线观看 | 欧美另类网站 | 91精品久久久久久综合五月天 | 国产最新精品视频 | 国产成人精品福利 | 国产亚洲人成网站在线观看 | 亚洲成av人片在线观看香蕉 | 精品国产激情 | 超级碰碰碰视频 | 国产亚洲精品久久久久久 | 亚洲蜜桃在线 | 91视频国产免费 | 开心激情久久 | 成人精品久久久 | 最近日本字幕mv免费观看在线 | 91麻豆看国产在线紧急地址 | 日日夜夜网站 | 成人毛片在线观看 | 在线播放av网址 | 正在播放国产精品 | 亚洲一级片免费观看 | www.五月天婷婷.com | 精品在线一区二区三区 | 在线播放 日韩专区 | 成人作爱视频 | 欧美日韩一区二区在线观看 | 成人免费看片98欧美 | 久久99热这里只有精品国产 | 亚洲人人射 | 久草久草久草久草 | 国产美女精品视频免费观看 | 精品国产一区二区在线 | 91精品国产91久久久久久三级 | 国产成人精品国内自产拍免费看 | 麻花豆传媒mv在线观看网站 | 日本中文字幕系列 | 久久爽久久爽久久av东京爽 | 九九九在线 | 在线成人免费电影 | 日韩午夜三级 | 在线观看第一页 | 久久国产麻豆 | 久久激情视频 久久 | 国产裸体永久免费视频网站 | 日韩特黄av| 午夜精品久久一牛影视 | 日韩中字在线 | 欧美男女爱爱视频 | 日韩欧美高清一区二区 | 久久99国产精品二区护士 | 91中文在线视频 | 五月导航 | 日韩免费在线观看 | 亚洲天堂精品 | 97精品国产97久久久久久粉红 | 久久久黄视频 | 国产专区第一页 | 久草视频在线免费 | 91在线操 | 丁香六月婷婷开心 | 免费在线黄网 | 亚洲国产成人在线播放 | 精品久久美女 | 久久无码精品一区二区三区 | 天天综合日 | 国产天天综合 | 五月激情电影 | 亚洲激情电影在线 | 香蕉视频网址 | 日日爽夜夜爽 | 久久久综合香蕉尹人综合网 | 中文字幕中文字幕在线中文字幕三区 | 成人一级在线 | 久草视频99| 青青啪 | 国产小视频在线免费观看视频 | 狠狠狠干 | 99视 | 成人一级黄色片 | 在线观看一级 | 欧美另类重口 | 色大片免费看 | 成人国产精品久久久久久亚洲 | 久久综合成人网 | 天天天天天天天操 | 欧美做受高潮 | 亚洲午夜激情网 | 久久久国产一区二区三区四区小说 | 欧美一二区在线 | 天天色 天天 | 999久久a精品合区久久久 | 中文字幕国产视频 | 亚洲专区中文字幕 | 欧美精彩视频 | 免费观看的av网站 | 日本久久电影网 | 日本精品一区二区 | av资源中文字幕 | 97人人模人人爽人人少妇 | 在线观看免费成人av | 亚洲国产精品推荐 | 欧美日韩中文在线 | 精品国产大片 | 久久不见久久见免费影院 | 在线黄频 | 久久精品一级片 | 精品天堂av | 91免费网址 | 日本黄色免费网站 | 91视频一8mav| 亚洲视频精品 | 久久久久久久99精品免费观看 | 国产麻豆精品95视频 | 日韩精品久久久久久中文字幕8 | 婷婷视频导航 | 日韩精品一区二区三区在线播放 | 欧美一级大片在线观看 | 成人动漫一区二区 | 黄色在线看网站 | 狠狠狠色丁香综合久久天下网 | 国产这里只有精品 | 国产淫a| 波多野结衣在线观看一区 | 天天射色综合 | 日本九九视频 | 日韩欧美高清 | 久久久久久久久久久久久久电影 | 91大神精品视频在线观看 | 色综合久久久 | 成年人免费观看国产 | 国产亚洲视频在线观看 | 久在线 | 中文字幕免费高 | 日韩mv欧美mv国产精品 | 依人成人综合网 | 国产在线v | 四虎免费在线观看视频 | 欧美 日韩精品 | 在线电影a | 久久久久 免费视频 | 美女福利视频一区二区 | 欧美成人69av | 国产欧美日韩视频 | 国内精品视频一区二区三区八戒 | 欧美小视频在线 | 精品国产_亚洲人成在线 | 九色自拍视频 | 天天爱天天操天天干 | 久久视频一区 | 亚洲欧美国内爽妇网 | 亚洲女欲精品久久久久久久18 | 欧美精品中文字幕亚洲专区 | 天天射天天操天天色 | 最近最新中文字幕视频 | 婷婷色影院 | 99热手机在线 | 国内久久久久久 | 精品久久福利 | 青春草免费视频 | 97精品视频在线播放 | 特级xxxxx欧美 | 日韩a在线 | 国产在线观看免费观看 | 成人精品视频 | 亚洲国产一区二区精品专区 | 国产免费又爽又刺激在线观看 | 日韩在线视频观看免费 | 午夜精品一区二区三区在线观看 | 色偷偷88888欧美精品久久久 | 99精品视频免费看 | 黄色视屏在线免费观看 | 国产96精品 | 久久精品久久99 | 久久精品91久久久久久再现 | 精品国产1区二区 | 亚洲永久精品在线观看 | 日本爱爱片 | 日韩免费电影一区二区 | 国产精品久久伊人 | 国内精品久久久久 | 国产中文字幕在线免费观看 | 国产又粗又猛又色又黄网站 | www.亚洲精品在线 | 免费三级骚 | 国产精品毛片一区二区 | 天天操天天弄 | 亚洲精品小视频 | 日韩av黄 | 亚洲国产一区二区精品专区 | 97精品一区 | 99在线热播精品免费 | 999久久国产 | 婷婷久久网 | 天天操天天色综合 | 国产在线最新 | 99久久精品国产毛片 | 伊人天堂久久 | 久久特级毛片 | 91综合色| 亚洲精品久久久蜜桃 | 欧美日韩不卡在线 | 欧美成人性网 | 欧美少妇xxxxxx | 亚洲干视频在线观看 | 日韩精品一区二区三区免费观看视频 | 91精品视屏 | www.久久成人 | 91最新在线视频 | 四虎国产精品永久在线国在线 | 亚洲国产丝袜在线观看 | 久久久网址 | 国产精品免费在线视频 | 成人免费观看完整版电影 | 国产精品人成电影在线观看 | 91在线91 | 操操色| 色综合网| 在线观看成人小视频 | 免费日韩视 | 亚洲成人av在线播放 | 欧美亚洲成人免费 | 激情欧美一区二区免费视频 | 日韩免费成人 | 91精品免费在线观看 | 国产精品久久在线 | 中文字幕在线网 | 亚洲dvd| 激情综合啪 | 欧美日韩一区二区三区在线免费观看 | 色丁香婷婷 | 人人爱爱| 国产又粗又猛又黄又爽 | 国产成人精品av在线观 | 日本久久电影 | 日日夜夜中文字幕 | 激情动态 | 中文字幕高清免费日韩视频在线 | 91在线日韩 | 国产精品日韩精品 | www欧美xxxx| 午夜狠狠干 | 看毛片的网址 | 91大神一区二区三区 | 国产一级片网站 | 成人av日韩 | 波多野结依在线观看 | 色婷婷视频 | 激情五月婷婷综合网 | 色视频网页 | 欧美激情精品久久久久久 | 久久久网 | 国产精品久久久久久久久久久久久 | 国产高清免费在线观看 | 91av小视频 | 夜夜摸夜夜爽 | 在线视频观看91 | 99免费精品| 在线视频区 | 中文字幕在线观看一区二区 | 色综合久久久久久中文网 | 四虎影视国产精品免费久久 | 91成人免费观看视频 | 天天插天天| 久久精品香蕉 | 97成人资源站 | 久久99热这里只有精品 | 黄色中文字幕在线 | 日韩av伦理片 | 国产亚洲欧美在线视频 | 亚洲午夜精品一区二区三区电影院 | 成人在线观看av | 黄色小视频在线观看免费 | 国产精品麻豆视频 | 日本不卡123区 | 精品久久久久久亚洲综合网站 | 天天操综合网站 | 欧美在线视频一区二区三区 | 国产91影院 | 韩国三级一区 | 欧美精彩视频 | 在线黄色免费av | av丝袜在线 | 玖玖在线资源 | 偷拍精偷拍精品欧洲亚洲网站 | 欧美日韩啪啪 | 91精品国产高清 | 色偷偷网站视频 | a'aaa级片在线观看 | 91九色在线观看 | 久久久久久网址 | av成人在线看 | 久久久精品一区二区 | 97精品国产一二三产区 | 中文字幕在线观看第三页 | 欧美一级性 | 欧美成人黄色 | 九九爱免费视频 | 久久精品导航 | 欧美日在线 | 日韩高清 一区 | 夜夜狠狠| 婷婷精品在线视频 | 久精品一区 | 久久综合狠狠综合久久激情 | 久久激情婷婷 | 免费在线国产黄色 | 亚洲精品玖玖玖av在线看 | 免费看的黄网站软件 | 色婷婷综合久久久久 | 亚洲精品动漫在线 | 最近高清中文字幕在线国语5 | 色97在线 | 少妇bbw搡bbbb搡bbbb | 国产精品中文 | 在线观看视频福利 | 欧美福利视频 | 亚洲成a人片在线观看中文 中文字幕在线视频第一页 狠狠色丁香婷婷综合 | 一级精品视频在线观看宜春院 | 国产在线观看xxx | 91精选在线| 久久er99热精品一区二区 | 超碰人人在线观看 | 天天色天天草天天射 | 91精品国产亚洲 | 九精品| 成人久久| 激情视频网页 | 蜜臀av免费一区二区三区 | 中文字幕av在线电影 | 天天做日日做天天爽视频免费 | 国产九色视频在线观看 | 综合色伊人 | 久久麻豆视频 | 日韩免费久久 | 免费麻豆 | 日本中文在线 | 国产精品欧美 | 成人在线一区二区 | 色中射 | 日韩av一区二区三区四区 | 狠狠色丁香婷婷综合久小说久 | 五月天综合网 | 黄色免费大全 | 欧美日产一区 | av免费片 | 久草在线视频在线 | 久久免费电影网 | 日批视频在线观看免费 | 在线电影 你懂得 | 久久99久久99免费视频 | www.com黄| 91探花在线视频 | 天天操夜夜操天天射 | 日韩欧美精品在线观看视频 | 久久99精品波多结衣一区 | 久久久精品99 | 久久伊99综合婷婷久久伊 | 亚洲免费永久精品国产 | 999免费视频| 亚洲免费激情 | 久久精品亚洲 | 日韩在线观看一区二区 | 久久国产一区二区 | 人人揉人人揉人人揉人人揉97 | 亚洲综合在线视频 | 国产精品 中文字幕 亚洲 欧美 | 91理论片午午伦夜理片久久 | 日韩三级久久 | 色香蕉在线视频 | 日韩理论片中文字幕 | 中文视频在线 | 经典三级一区 | 五月婷婷六月综合 | 午夜精品99久久免费 | 久久国产精品视频免费看 | 五月天激情视频在线观看 | 亚洲精品国产精品国自产在线 | 一级做a爱片性色毛片www | 992tv在线成人免费观看 | 国产一区高清在线观看 | 欧美日韩高清在线一区 | 日韩久久久 | 国产流白浆高潮在线观看 | 中文av日韩 | 日韩欧美视频在线免费观看 | 国产精品亚洲综合久久 | 日韩欧美精品一区 | 久久久久久久影视 | 婷婷丁香自拍 | 亚洲国产综合在线 | 免费在线观看av的网站 | 在线视频 一区二区 | 亚洲影院国产 | 国产一区二区三区在线免费观看 | 四虎欧美 | 欧美资源 | 99久久婷婷国产一区二区三区 | 少妇按摩av| 91人人澡人人爽人人精品 | 成人a级网站| 丝袜美腿av | 日日爽天天爽 | 午夜精品电影 | 日韩欧美v | 欧美成人久久 | 99一区二区三区 | 婷婷综合亚洲 | 久久久久久麻豆 | 综合激情网| 精品久久久久久久久久久久 | 久久久99精品免费观看乱色 | 天天色天天草天天射 | 国产精品色在线 | 国产视频观看 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 亚洲精品国产成人 | 免费在线观看不卡av | 日韩色一区二区三区 | 免费手机黄色网址 | 精品国产乱码久久久久久1区2匹 | 又色又爽又激情的59视频 | 日韩免费一区二区三区 | 欧美日韩国产一区二 | 99精品国产视频 | 中文字幕亚洲欧美 | 亚洲最大av网站 | 久久久久久久久久久久亚洲 | av网站在线免费观看 | 精品国产_亚洲人成在线 | 一级特黄av | 激情婷婷欧美 | 久久综合婷婷 | 日韩精品不卡在线 | 成人午夜剧场在线观看 | 色婷婷88av视频一二三区 | 亚洲国产97在线精品一区 | 在线视频 影院 | 狠狠色丁香婷婷综合视频 | 国产午夜精品一区 | 欧美视频不卡 | 亚洲一区动漫 | 一区二区三区四区五区六区 | 国产精品九九久久99视频 | 福利视频一二区 | 久久手机精品视频 | 中文字幕一区二区三区在线观看 | 69av在线播放 | 久久精品美女视频网站 | 中文字幕在线专区 | 九九九九热精品免费视频点播观看 | 91亚洲精品国偷拍自产在线观看 | 日韩精品高清视频 | 亚洲国产免费看 | 成人一级黄色片 | 天天操天天摸天天干 | 精品国产电影一区二区 | 成人免费视频网站在线观看 | 美女视频一区 | 五月天综合 | 视频91 | 91mv.cool在线观看 | 亚洲精品国产精品国自产观看浪潮 | 中文字幕在线播放第一页 | 四虎国产精品成人免费4hu | 狠狠狠狠狠狠狠狠 | 福利区在线观看 | 免费欧美精品 | 国产视频一区二区三区在线 | 欧美analxxxx| 日韩在线激情 | 日韩av在线一区二区 | 久久精品综合视频 | 丁香六月婷婷开心婷婷网 | 日韩视频欧美视频 | 国产999在线 | 日日夜夜91| 国内三级在线观看 | 日韩综合第一页 | 51久久成人国产精品麻豆 | 国产一区在线免费观看视频 | 国产人成一区二区三区影院 | 久久怡红院 | 国产精品18久久久久久久 | 国产欧美中文字幕 | www.色五月.com | 日韩免费网址 | 黄网站免费大全入口 | 国产精品18久久久久久久久 | 日韩黄视频 | 国产精品久久av | 亚洲婷婷在线视频 | 国产在线2020 | 日韩一区二区三区在线看 | 国产成人一区二区三区免费看 | 色综合天天综合在线视频 | 久久不卡免费视频 | 欧美孕交vivoestv另类 | 国产黑丝一区二区 | 精品一二三四在线 | 在线精品国产 | 婷婷在线视频观看 | 免费看黄色毛片 | 99久热在线精品视频观看 | 日韩三级不卡 | 91 在线视频播放 | 一色屋精品视频在线观看 | 美女网站在线看 | 色综合久久88色综合天天 | 亚洲清纯国产 | 欧美激情视频在线观看免费 | 狠狠干2018 | av在线播放不卡 | 成人久久视频 | 免费h视频 | 免费毛片aaaaaa | 欧洲在线免费视频 | 欧美污污视频 | 精品女同一区二区三区在线观看 | 在线观看国产成人av片 | 欧美人体xx | 91麻豆文化传媒在线观看 | 久久人人爽人人爽人人片av软件 | 久久久久亚洲国产 | 超碰公开在线观看 | 激情综合五月天 | 亚洲女在线 | 五月婷久久 | 免费成人结看片 | 日本在线观看一区二区 | 波多野结衣视频网址 | 99精品视频免费全部在线 | 青青色影院| 久久五月天综合 | 亚洲狠狠婷婷综合久久久 | 午夜精品影院 | 日韩一级成人av | 久久久久久久久久久综合 | 日韩理论在线 | 国产精品一区二区无线 | 日韩一级成人av | 在线观看www视频 | 99免费观看视频 | 亚洲激情影院 | 国产在线观看av | 国产 成人 久久 | 亚洲91中文字幕无线码三区 | 日韩精品首页 | 国产成人精品综合久久久久99 | 成人精品99 | 精品国产一二三四区 | 国产视频一区精品 | 91传媒在线| 欧美一区二区精品在线 | 中文字幕久久亚洲 | 国产精品 日韩 | 9在线观看免费 | 99九九热只有国产精品 | aaa日本高清在线播放免费观看 | 国产日韩精品在线观看 | 亚洲国产精品电影在线观看 | 爱射综合 | 少妇搡bbbb搡bbb搡忠贞 | av中文在线观看 | 五月花丁香婷婷 | 午夜av电影院 | 欧美a视频在线观看 | 青青草国产在线 | 欧美日韩国产综合一区二区 | 青青草视频精品 | 俺要去色综合狠狠 | 狠狠狠色丁香综合久久天下网 | 日本精品一区二区三区在线播放视频 | 精品一区二区免费视频 | 国产精品video爽爽爽爽 | 久久综合色播五月 | 中文字幕一区二区三区久久 | 久久99精品视频 | 国产精品18p| 中文字幕 国产专区 | 成人av在线直播 | 欧美在线不卡一区 | 大胆欧美gogo免费视频一二区 | 综合亚洲视频 | 一区二区三区四区免费视频 | 成年人在线播放视频 | 精品国产伦一区二区三区观看说明 | 色偷偷88888欧美精品久久 | 99久久这里只有精品 | 成人片在线播放 | 精品国产乱子伦一区二区 | 午夜色婷婷 | 久久综合中文字幕 | 97精品国产97久久久久久春色 | 久久99亚洲网美利坚合众国 | 国产精品久久久久毛片大屁完整版 | 国产一区二区高清 | 欧美aaa大片| 国产日韩视频在线 | 久久久久久久久久国产精品 | 色偷偷88欧美精品久久久 | 精品一区二区在线免费观看 | 色在线网站 | 91丨九色丨高潮丰满 | 精品久久亚洲 | 亚洲国产精品女人久久久 | 中文一二区 | 美女视频永久黄网站免费观看国产 | 91在线精品一区二区 | 国产小视频在线看 | 日韩av三区 | 日韩在线大片 | 成人久久精品 | 国产午夜精品一区二区三区嫩草 | 97日日碰人人模人人澡分享吧 | 亚洲男男gⅴgay双龙 | 欧美精品久久久久久久免费 | 国内亚洲精品 | 国产精品99久久久精品 | 欧美在线视频免费 | 国产精品18videosex性欧美 | 成年人在线视频观看 | 国产只有精品 | 91精品国产一区二区三区 | 久久国产精品色婷婷 | 久久精品免费电影 | www.久久婷婷 | 六月婷婷色| 午夜免费福利视频 | 免费看毛片网站 | 国产精品一区二区三区免费视频 | 免费www视频 | 久久精品二区 | 99久高清在线观看视频99精品热在线观看视频 | 久久高清av | 免费黄色在线网址 | 视频国产区| 亚洲一区视频免费观看 | 免费看网站在线 | 99精品欧美一区二区蜜桃免费 | 免费精品在线视频 | 国产亚洲精品久久久久久电影 | 国产精品久久久久久麻豆一区 | 国产日韩欧美在线免费观看 | 五月婷久 | 色婷婷成人网 | 天天干人人插 | 国产91精品在线播放 | 国产中文字幕在线观看 | 天堂av在线免费观看 | 国产精品1000| 99免在线观看免费视频高清 | 五月婷婷六月丁香在线观看 | 天天激情综合网 | 亚洲第一区在线播放 | 免费观看一区二区 | 国产精品久久一区二区三区, | 美女国产免费 | 国产中文视 | 中文在线免费看视频 | 国产精品一区在线观看你懂的 | 亚洲人在线视频 | 国产一级在线 | 国产精彩在线视频 | 天天躁日日躁狠狠躁av麻豆 | 精品一区二区三区四区在线 | 亚洲精品在线观看av | 777奇米四色 | 国产 在线 日韩 | 久久综合久久综合久久综合 | 亚洲www天堂com | 999在线视频| www.夜夜骑.com| av最新资源 | 黄色1级毛片 | 一区二区网| 国产大片免费久久 | 成av人电影 | 成人影片在线免费观看 | 99精品国产免费久久久久久下载 | 国产成人精品久 | 亚洲一级影院 | 亚洲精品综合久久 | 久久永久免费 | www最近高清中文国语在线观看 | 精久久久久 | 天天摸天天舔 | 色久综合 | 国产 欧美 日韩 | 色偷偷av男人天堂 | 国产精品视频99 | 9992tv成人免费看片 | 欧美日韩中文字幕综合视频 | 成人一区不卡 | 人人射av| 日韩欧美一区二区三区免费观看 | 国产精品青青 | 99精品欧美一区二区三区黑人哦 | www免费黄色 | 日韩欧美在线高清 | 精品少妇一区二区三区在线 | 日韩精品第1页 | 中文字幕免费高清在线观看 | 亚洲国产成人在线观看 | 日本午夜在线亚洲.国产 | 成人国产精品一区 | 正在播放 国产精品 | 久久久男人的天堂 | 免费在线观看中文字幕 | 日韩欧美视频一区二区三区 | 精壮的侍卫呻吟h | 国产精品女| 久久久久国产精品免费免费搜索 | 色综合久久综合 | 色五月成人| 国产色a在线观看 | 天操夜夜操 | 人人爽人人香蕉 | 国产剧情久久 | 九九精品毛片 | 国产电影黄色av | 色吊丝av中文字幕 | 久久久免费高清视频 | 91在线亚洲 | 最新av在线播放 | 99久久久久免费精品国产 | 日韩av在线资源 | av成人黄色| 狠狠色丁香| 婷婷亚洲五月色综合 | 天天色天天综合网 | 九色视频网 | 人人爽久久涩噜噜噜网站 | 一区三区视频在线观看 | 三级黄免费看 | 久草av在线播放 | 成人在线观看影院 | 在线超碰av | 色吊丝在线永久观看最新版本 | 亚洲国产视频网站 | 欧美一级黄色网 | 久久男人免费视频 | 香蕉影视 | 黄色网www | 国产玖玖视频 | 麻花豆传媒mv在线观看 | 国产婷婷视频在线 | 成人国产一区 | 不卡的一区二区三区 | 最近久乱中文字幕 | 国产一区二区中文字幕 | 天天操夜操视频 | 韩国在线视频一区 | 91视频麻豆视频 | 久草视频一区 | 成片视频免费观看 | 不卡电影一区二区三区 | 在线观看黄色免费视频 | 亚洲一区精品人人爽人人躁 | 中文字幕麻豆 | 在线观看激情av | av丝袜制服 | 2024av| 天干啦夜天干天干在线线 | 久草在线观 | 中文区中文字幕免费看 | 久久人人爽人人爽人人片 | 福利二区视频 | 欧美色图一区 | 99久久久久久国产精品 | 丁香花在线观看视频在线 | 亚洲人成人天堂h久久 | 久久 一区 | 狠狠躁夜夜躁人人爽超碰91 | 色综合婷婷 | 免费在线观看av网站 | 精品久久精品久久 | 国产98色在线 | 日韩 | 亚洲区精品 | 最新日韩中文字幕 | 五月婷婷毛片 | 亚洲一区二区精品视频 | 欧美精品在线观看 | av在线影片 | 欧美日韩精品影院 | 日本系列中文字幕 | 久久久久国产精品视频 | 奇米影视8888在线观看大全免费 | 黄色影院在线免费观看 | 手机在线看永久av片免费 | 狠狠色噜噜狠狠狠狠2021天天 | 色婷婷精品 | 精品在线视频观看 | 中文字幕成人 | 亚洲丝袜一区 | 亚洲综合成人专区片 | 玖玖爱国产在线 | 国产在线欧美日韩 | 96av麻豆蜜桃一区二区 | 亚洲国产网站 | 九九免费在线观看视频 | 国产91成人 | 欧美日韩久久不卡 | 麻豆视频在线播放 | 涩涩网站在线看 | av色一区 | 91精品久久久久久久99蜜桃 | 久av在线| 天天搞天天干 | 亚洲国产日韩欧美 |