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

Hi3861_WiFi IoT工程:理解啟動恢復子系統

系統
文章由鴻蒙社區產出,想要了解更多內容請前往:51CTO和華為官方戰略合作共建的鴻蒙技術社區https://harmonyos.51cto.com

[[396833]]

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

Hi3861_WiFiIoT工程的一點理解

目錄

  • 1.關于工程本身
  • 2.ohos_bundles
  • 3.工程的目錄結構
  • 4.理解IoT外設控制模塊
  • 4.1 BUILD.gn 的展開
  • 4.2 led_example.c 的展開
  • 4.3 IoT外設控制模塊的整體理解
  • 5.理解啟動恢復子系統
  • 5.1 #A分析SYS_INIT(service)
  • 5.2 #B分析MODULE_INIT(run)
  • 5.3 #C分析SAMGR_Bootstrap()
  • X.總結:

更新記錄:

  • 說明:本文是 "Hi3861_WiFi IoT工程的一點理解" 的新增章節,版本升級到v1.6.
  • 前面章節見:
  • Hi3861_WiFi IoT工程的一點理解v1.0
  • Hi3861_WiFi IoT工程:理解IoT外設控制模塊

5.理解啟動恢復子系統

這是一個非常重要的子系統,我在之前《鴻蒙系統的啟動流程》一文中做過一些簡單的分析,建議先去看一下《鴻蒙系統的啟動流程v3.0》Part 1/2的3/4章節。這里就先到鴻蒙系統來整體看一下它具體是怎么回事,然后再回到本工程來對比看hpm的裁剪給我們留下了什么。

仍然是先看官方readme 和重新整理目錄結構。

  1. 啟動恢復子系統負責從內核啟動之后到應用啟動之前的系統關鍵服務進程的啟動過程以及設備恢復出廠設置的功能。涉及以下組件: 
  2.  
  3. init啟動引導組件 
  4. init啟動引導組件對應的進程為init進程,是內核完成初始化后啟動的第一個用戶態進程。init進程啟動之后,讀取init.cfg配置文 件,根據解析結果,執行相應命令并依次啟動各關鍵系統服務進程,在啟動系統服務進程的同時設置其對應權限。 
  5.  
  6. appspawn應用孵化組件 
  7. 負責接收用戶程序框架的命令孵化應用進程,設置新進程的權限,并調用應用程序框架的入口函數。 
  8.  
  9. bootstrap服務啟動組件 
  10. 提供了各服務和功能的啟動入口標識。在SAMGR啟動時,會調用boostrap標識的入口函數,并啟動系統服務。 
  11.  
  12. syspara系統屬性組件 
  13. 系統屬性組件,根據HarmonyOS產品兼容性規范提供獲取設備信息的接口,如:產品名、品牌名、廠家名等,同時提供設置/讀 取系統屬性的接口。 
  14.  
  15. startup啟動組件 
  16. 負責提供大型系統(參考內存≥1GB)獲取與設置操作系統相關的系統屬性。 
  17.  
  18. 大型系統支持的系統屬性包括:設備信息如設備類型、產品名稱等,系統信息如系統版本、API版本等默認系統屬性。 

兩相比較就可以看到Hi3861工程相對于完整系統裁剪掉了appspawn_lite 和 init_lite兩個組件(先灰化掉了),因為啟動方式/流程上有比較大的差別,裁掉init_lite其實很容易理解,但為什么裁掉appspawn_lite我還沒仔細研究。

這里就只分析Hi3861的bootstrap_lite,至于syspara_lite比較簡單,看官方文檔照著上表右邊的調用順序就可以獲取屬性信息了。appspawn_lite 和 init_lite兩個組件,待我把相關細節搞清楚了,再完善到《鴻蒙系統的啟動流程》的更新版本中,或者單獨寫一個理解總結出來。

下面的文字,其實也算是《鴻蒙系統的啟動流程v3.0》Part 2的“4.第四階段:鴻蒙系統框架層的啟動”的完整分析版本。

官方readme 對bootstrap服務啟動組件的描述就兩句話,該怎么理解:

“提供了各服務和功能的啟動入口標識。” 就是指在//base/startup/services/bootstrap_lite/source/core_main.h 頭文件中定義的宏:SYS_INIT(name)和MODULE_INIT(name)。

“在SAMGR啟動時,會調用boostrap標識的入口函數,并啟動系統服務。”就是指在system_init.c文件中的HOS_SystemInit()函數調用 SAMGR_Bootstrap(); 去啟動系統服務了。什么是“boostrap標識的入口函數”,我們在下面會解釋。

  1. void HOS_SystemInit(void) 
  2.  
  3.  
  4.     MODULE_INIT(bsp);       
  5.  
  6.     MODULE_INIT(device); 
  7.  
  8.     MODULE_INIT(core); 
  9.  
  10.     SYS_INIT(service);     //#A 
  11.  
  12.     SYS_INIT(feature); 
  13.  
  14.     MODULE_INIT(run);   //#B 
  15.  
  16.     SAMGR_Bootstrap();   //#C 
  17.  

灰掉部分目前我還未涉足,先跳過,但要是理解了下面的內容,灰掉部分也就基本上理解了。

5.1 #A分析SYS_INIT(service)

打開//base/startup/services/bootstrap_lite/source/core_main.h 文件,工程編譯是使用gcc編譯器的,所以__GNUC__是有定義的。

把service代進去展開一下:

  1. #define SYS_INIT(service)     \ 
  2.     do {                   \ 
  3.         SYS_CALL(service, 0); \ 
  4.     } while (0) 
  5.  
  6. #define SYS_CALL(service, 0)                              \ 
  7.     do {                                              \ 
  8.         InitCall *initcall = (InitCall *)(SYS_BEGIN(service, 0));   \ 
  9.         InitCall *initend = (InitCall *)(SYS_END(service, 0));    \ 
  10.         for (; initcall < initend; initcall++) {                  \ 
  11.             (*initcall)();                                \ 
  12.         }                                            \ 
  13.     } while (0) 

SYS_BEGIN和SYS_END就不展開了,重點在for循環,可能還是不太好理解,我再把它翻譯成大白話:

  1. for循環就是從 initcall 地址開始,到 initend地址(不含)結束, 
  2.  
  3. 依次調用*initcall內的地址所指向的函數,執行函數內的指令。 
  4.  
  5. initcall 是一個指針,其內容 *initcall是符號__zinitcall_sys_service_start的地址,即 &__zinitcall_sys_service_start, 
  6.  
  7. initend 是一個指針,其內容 *initend 是符號__zinitcall_sys_service_end的地址,即 &__zinitcall_sys_service_end 

Hi3516/Hi3518平臺工程,打開 build\lite\platform\......\link.ld

Hi3861工程則是 vendor\hisi\hi3861\hi3861\build\link\link.ld.S

可以看到上面的 start/end 符號,但估計你打開文件,看到里面的東西,心里還是會有很大的問號。

那就直接去看編譯后輸出的map文件:out\wifiiot\Hi3861_wifiiot_app.map,文本編輯器打開該文件,搜索一下:

這里有三個service 要 init,從抓回來的log看,確實如此:

這下應該夠清楚了吧?

SYS_INIT(service) 是調用端的宏,對應的,定義端也有一個對應的宏SYS_SERVICE_INIT(xxx)。

工程代碼全局搜索一下“SYS_SERVICE_INIT”,把沒什么用的 sample和 .h中的先去掉,就得到四個:

前三個就是上面的三個service。

第四個“SYS_SERVICE_INIT(InitializeRegistry);”在

foundation\distributedschedule\services\samgr_lite\samgr_server\source\samgr_server.c 文件中,

看它的 BUILD.gn 文件“shared_library("server")”,再到上級目錄查看BUILD.gn,

  1. if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux"){ 
  2.     features += [ 
  3.         "samgr_server:server"
  4.         "samgr_client:client"
  5.     ] 

這是LiteOS_A或Linux內核的平臺才會有的,所以Hi3861平臺的log上看不到這個server的log。

上面的三個service使用的宏SYS_SERVICE_INIT(Init),我們也一步一步展開,

  1. #define SYS_SERVICE_INIT(func)  LAYER_INITCALL_DEF(func, sys_service, "sys.service"
  2. #define LAYER_INITCALL_DEF(func, layer, clayer) \ 
  3.     LAYER_INITCALL(func, layer, clayer, 2)         //默認優先級 2 
  4. #define LAYER_INITCALL(func, layer, clayer, priority)            \ 
  5.     static const InitCall USED_ATTR __zinitcall_##layer##_##func \ 
  6.         __attribute__((section(".zinitcall." clayer #priority ".init"))) = func 

__attribute__((section(“section_name”))) 其作用是將函數或數據放入指定名為"section_name"對應的段中。

最后分別得到:

  1. //.zinitcall.sys.service2.init = Init  //bootstrap_service 的Init 
  2.  
  3. //.zinitcall.sys.service2.init = Init  //broadcast_service 的Init 
  4.  
  5. //.zinitcall.sys.service2.init = Init  //hiview_service 的Init 

編譯器根據attribute+section關鍵字,就把三個Init函數全都編譯鏈接到了 .zinitcall.sys.service2.init 對應的段中,

結果就是上面Hi3861_wifiiot_app.map文件截圖的樣子。

5.2 #B分析MODULE_INIT(run)

對于MODULE_INIT(Xxx) 和對應的SYS_RUN(Xxx)的分析,和上面沒什么差別,只是編譯鏈接的時候,將函數放到不同的段中去而已。

我在應用層放了兩個APP,分別是helloworld和led_example,log中也看到對應的log了。

5.3 #C分析SAMGR_Bootstrap()

SAMGER:system ability manager。系統服務框架子系統,這是一個非常核心的子系統了,我會另開一章來分析。不過這里還是先簡單了解一下它在這一步,做了些什么事情。

先看官方文檔:

由于平臺資源有限,且硬件平臺多樣,因此需要屏蔽不同硬件架構和平臺資源的不同、以及運行形態的不同,提供統一化的系統服務開發框架[system ability (SA) framework]。根據RISC-V、Cortex-M、Cortex-A不同硬件平臺,分為兩種硬件平臺,以下簡稱M核、A核。

  • M核:處理器架構為Cortex-M或同等處理能力的硬件平臺,系統內存一般低于512KB,無文件系統或者僅提供一個可有限使用的輕量級文件系統,遵循CMSIS接口規范。
  • A核:處理器架構為Cortex-A或同等處理能力的硬件平臺,內存資源大于512KB,文件系統完善,可存儲大量數據,遵循POSIX接口規范。

系統服務框架基于面向服務的架構,提供了服務開發、服務的子功能開發、對外接口的開發、以及多服務共進程、進程間服務調用等開發能力。其中:

  • M核:包含服務開發、服務的子功能開發、對外接口的開發以及多服務共進程的開發框架。
  • A核:在M核能力基礎之上,包含了進程間服務調用、進程間服務調用權限控制、進程間服務接口的開發等能力。

約束

  • 系統服務開發框架統一使用C開發。
  • 同進程內服務間調用統一使用IUnknown接口對外象,消息接口統一由IUnknown接口傳遞給本服務。
  • 服務名和功能名必需使用常量字符串且長度小于16個字節。
  • M核:系統依賴上bootstrap服務,在系統啟動函數中調用OHOS_SystemInit()函數。
  • A核:系統依賴samgr庫,在main函數中調用SAMGR_Bootstrap()函數。

再看一個完整一點的log:

看log,在 SYS_INIT(service) 這一步,bootstrap_service 首先init,

打開 base\startup\services\bootstrap_lite\source\bootstrap_service.c 查看它的 Init 函數,

  1. static void Init(void) 
  2.     static Bootstrap bootstrap; 
  3.     bootstrap.GetName            = GetName; 
  4.     bootstrap.Initialize              = Initialize; 
  5.     bootstrap.MessageHandle  = MessageHandle; 
  6.     bootstrap.GetTaskConfig    = GetTaskConfig; 
  7.     bootstrap.flag = FALSE
  8.     printf("[bootstrap_service] SYS_SERVICE_INIT(Init).\n"); 
  9.  
  10.     SAMGR_GetInstance()->RegisterService((Service *)&bootstrap); 

它會先去get一個SAMGR的instance實例,向這個實例注冊bootstrap服務。

進入SAMGR_GetInstance(),在 foundation\distributedschedule\services\samgr_lite\samgr\source\samgr_lite.c文件中:

bootstrap_service 是第一個調用SAMGR_GetInstance() 的服務,這時候全局變量g_samgrImpl還沒有初始化,所以就要先init,然后就可以返回instance給Bootstrap 注冊服務用了,后面的broadcast_service、hiview_service在 init時,直接就可以拿到instance去注冊了。

全局變量g_samgrImpl記錄了向它注冊的所有服務的信息,包括了一組四個函數:

GetName/Initialize/MessageHandle/GetTaskConfig,這就是上面提到的“boostrap標識的入口函數”。

bootstrap_service、broadcast_service、hiview_service在SYS_INIT(service)這一步只能做很簡單的注冊服務的事情,否則會導致后面的INIT受阻。

在SAMGR_Bootstrap(); 這一步時,SAMGR才會真正根據注冊在g_samgrImpl的信息,逐一為已注冊的服務創建和分配資源,InitializeAllServices,AddTaskPool,SAMGR_StartTaskPool,SAMGR_SendSharedDirectRequest等待系統調度,然后在HandleInitRequest中才真正調用各自serveice注冊的Initialize接口去完成服務的啟動,為系統提供服務。

想了解更多內容,請訪問:

51CTO和華為官方合作共建的鴻蒙技術社區

https://harmonyos.51cto.com

 

責任編輯:jianghua 來源: 鴻蒙社區
相關推薦

2021-04-29 09:52:25

鴻蒙HarmonyOS應用

2021-04-26 15:19:02

鴻蒙HarmonyOS應用

2020-10-16 09:50:37

Hi3861WiFi熱點

2021-06-18 10:02:10

鴻蒙HarmonyOS應用

2021-06-10 09:25:39

鴻蒙HarmonyOS應用

2021-06-03 14:21:44

鴻蒙HarmonyOS應用

2021-02-02 15:52:17

鴻蒙HarmonyOS應用開發

2021-12-31 15:07:00

鴻蒙HarmonyOS應用

2020-11-03 11:39:22

wifi小車

2020-10-30 09:41:44

鴻蒙Hi3861WiFi小車

2021-06-18 15:23:59

鴻蒙HarmonyOS應用

2020-11-23 13:09:42

HI3861

2022-09-06 15:25:22

Wifi設備開發

2021-07-05 09:35:36

鴻蒙HarmonyOS應用

2021-09-30 10:11:05

鴻蒙HarmonyOS應用

2023-05-26 16:07:14

Hi3861Wifi模塊

2022-03-15 15:00:59

Hi3861Pin接口鴻蒙

2022-08-19 10:54:47

操作系統鴻蒙

2020-10-14 09:41:02

Hi3861GPIO點燈

2023-05-09 15:17:42

Hi3861鴻蒙
點贊
收藏

51CTO技術棧公眾號

免费超爽大片黄| 国产精品一区电影| 青青草视频成人| ww久久综合久中文字幕| 亚洲美女淫视频| 精品国产一区二区三区麻豆小说| 国产91精品看黄网站在线观看| 手机在线电影一区| 亚洲成年人在线播放| 日本www高清视频| 乱人伦中文视频在线| 白白色亚洲国产精品| 国产精品久久久久久搜索| 欧美爱爱小视频| 国产一区二区三区四区| 精品美女在线观看| 亚洲天堂2018av| 九色porny丨入口在线| 国产精品免费久久久久| 精品综合久久久| 国产视频在线观看视频| 天堂av在线一区| 久久久久久91| 男人av资源站| 国际精品欧美精品| 亚洲第一视频在线观看| 不卡中文字幕在线观看| 欧美大片高清| 午夜精品爽啪视频| 黄色一级视频播放| 香蕉视频在线播放| 久久亚洲春色中文字幕久久久| 亚洲最大成人免费视频| 中文字幕在线观看精品| 性色一区二区三区| 性欧美激情精品| 欧美日韩国产精品综合 | 蜜桃麻豆www久久国产精品| 国产视频在线一区| 麻豆极品一区二区三区| 国产va免费精品高清在线观看 | 国产精品sm| 神马久久久久久| 中文字幕 自拍| 亚洲素人在线| 精品亚洲va在线va天堂资源站| 亚洲一区二区三区黄色| 免费看日产一区二区三区 | 亚洲毛片在线播放| 韩国成人在线视频| 91九色国产视频| 一级久久久久久久| 麻豆精品一区二区三区| 国产欧美一区二区三区久久| 国产又粗又猛又黄视频| 天堂影院一区二区| 国产精品99久久久久久白浆小说| 久草视频一区二区| 久久精品国产清高在天天线| 日本不卡高字幕在线2019| 国产乱国产乱老熟| 鲁大师影院一区二区三区| 538国产精品一区二区免费视频| 日本在线免费观看| 国产亚洲精品久久久久婷婷瑜伽| 91精品国产91久久久久久久久| 日本熟妇色xxxxx日本免费看| 亚洲高清毛片| 日本不卡高字幕在线2019| 天天干天天操天天爱| 天堂成人国产精品一区| 国产主播精品在线| wwwav在线播放| av男人天堂一区| 日本不卡免费新一二三区| 99re在线视频| 亚洲欧美日韩系列| 三上悠亚久久精品| 视频二区不卡| 欧美顶级少妇做爰| 在线观看一区二区三区四区| 欧美综合精品| 中文字幕亚洲情99在线| 色婷婷在线视频观看| 激情久久婷婷| 国产精品高清网站| 国产丰满果冻videossex| 99热在这里有精品免费| 日韩福利影院| 污污视频在线看| 欧美视频第一页| 日韩一区二区三区不卡视频| 视频在线观看免费影院欧美meiju| 欧美成人vps| 中文字幕第4页| 欧美一区二区| 欧美一区三区三区高中清蜜桃| 在线免费av片| 本田岬高潮一区二区三区| 日韩高清在线播放| 色呦呦在线资源| 日本韩国一区二区三区| wwwxxx色| 第一会所亚洲原创| 欧美精品激情视频| 夜夜躁狠狠躁日日躁av| av在线综合网| 大桥未久一区二区| 欧美香蕉视频| 亚洲精品一线二线三线| 自拍偷拍第9页| 中文高清一区| 91成人免费观看| 国产成人天天5g影院在线观看| 一区二区欧美精品| 亚洲人成色77777| 中文字幕一区二区三区中文字幕 | 国产精久久一区二区三区| 欧美99在线视频观看| 国产精品va在线播放| 黄色小视频免费观看| 国产精品久久久久久一区二区三区| 999一区二区三区| 亚洲精品大全| 伊人久久久久久久久久| 日韩在线观看第一页| 国产精品一区免费视频| 亚洲一区二区在线观| 国产超碰精品| 国产视频久久久久久久| 日本网站免费观看| 成人性生交大片免费看中文| 亚洲免费视频播放| 电影中文字幕一区二区| 色综合影院在线| 免费av中文字幕| 26uuu欧美| 少妇无码av无码专区在线观看| 欧美精品影院| 久久五月情影视| 亚洲一区二区三区高清视频| 欧美国产禁国产网站cc| 日批视频在线免费看| 香蕉久久夜色精品国产使用方法 | 亚洲日本欧美在线| 99精品国自产在线| 国产亚洲精品久久久优势| 视频一区二区三区四区五区| 不卡的av在线| 欧美 国产 日本| 欧美亚视频在线中文字幕免费| 97精品国产aⅴ7777| 韩国av永久免费| 亚洲一区二区影院| 国产十八熟妇av成人一区| 亚洲福利精品| 精品欧美一区二区在线观看视频| 超碰在线99| 精品亚洲一区二区三区四区五区| 性无码专区无码| 久久久精品免费免费| 久久精品网站视频| 日本不卡电影| 成人网欧美在线视频| 超碰公开在线| 精品国产乱码久久久久久久久| 五月天综合在线| 91麻豆精品视频| 手机视频在线观看| 欧美jjzz| 精品综合在线| 99九九久久| 九九热这里只有精品免费看| 欧美熟妇乱码在线一区| 日韩欧中文字幕| 18啪啪污污免费网站| 国产一区二区精品久久| 激情伊人五月天| 国产成人精品999在线观看| 国产精品一区二区三| av在线官网| 日韩成人免费视频| 在线播放一级片| 一区二区三区四区在线播放| 日本黄色免费观看| 免费在线观看视频一区| 69精品丰满人妻无码视频a片| 久久亚洲黄色| 国产日韩av在线播放| 免费男女羞羞的视频网站在线观看 | 欧美精品色婷婷五月综合| 日韩大片在线| 国产精品嫩草在线观看| 精品国产欧美日韩一区二区三区| 欧美成人激情视频免费观看| 日韩国产福利| 91精品蜜臀在线一区尤物| 国产精品视频久久久久久久| 亚洲欧美中日韩| 久久精品女同亚洲女同13| 久久精品av麻豆的观看方式| 国产九色porny| 日韩中文字幕高清在线观看| 国产区二精品视| 亚洲影视资源| 国产成人av网址| 天堂av资源在线观看| 在线播放国产一区二区三区| 蜜臀av中文字幕| 欧美美女直播网站| 国产成人一级片| 一区二区免费视频| 极品美妇后花庭翘臀娇吟小说| 91免费观看国产| 免费黄色av网址| 久久91精品久久久久久秒播| 日韩欧美国产免费| 国内一区二区三区| 在线视频不卡一区二区| 神马影视一区二区| 国产欧美一区二区三区不卡高清| 天天综合在线观看| 国产精品久久国产精品99gif| 国产在线xxx| 久久av资源网站| 日本视频在线播放| 国产一级揄自揄精品视频| 色网站免费观看| 欧美xxxxx牲另类人与| 国产精品一区二区免费视频| 欧美系列一区二区| 中文字幕免费观看| 欧美特黄级在线| 日韩女同强女同hd| 亚洲图片欧美色图| 清纯粉嫩极品夜夜嗨av| 亚洲免费电影在线| 成年人二级毛片| 国产精品第13页| 91香蕉国产视频| 欧美国产精品一区二区三区| 国产伦理片在线观看| 久久色在线视频| 亚洲码无人客一区二区三区| 久久蜜桃av一区精品变态类天堂| 精品人妻一区二区免费视频| www.av精品| 丰满大乳奶做爰ⅹxx视频| 99国产欧美另类久久久精品| 国产又黄又粗又猛又爽的视频| 成人精品免费网站| 精品久久久久一区二区| 99精品黄色片免费大全| 中文字幕xxx| 久久精品一区二区三区av| 日韩精品无码一区二区三区久久久 | 91久久精品国产91性色tv| 中文字幕精品无码一区二区| 91国偷自产一区二区开放时间 | 蜜臀久久久99精品久久久久久| 国产福利一区视频| 日本vs亚洲vs韩国一区三区| 中文字幕在线综合| 国产乱码一区二区三区| 91精品人妻一区二区三区四区| 成人一道本在线| 成人性生活免费看| 国产亚洲女人久久久久毛片| 性爱在线免费视频| 亚洲在线视频免费观看| 日韩网红少妇无码视频香港| 色94色欧美sute亚洲13| 亚洲在线精品视频| 日韩天堂在线观看| 亚州视频一区二区三区| 在线免费看av不卡| av在线播放观看| 2020国产精品视频| jizz久久久久久| 福利视频一区二区三区| 久久av电影| 在线观看成人免费| 鲁大师影院一区二区三区| 亚洲xxx在线观看| 粉嫩一区二区三区性色av| 亚洲av综合一区二区| 亚洲精品乱码久久久久久黑人| 欧美一级片免费在线观看| 欧美久久久久久久久久| 天堂中文在线观看视频| 色噜噜国产精品视频一区二区| 欧美人动性xxxxz0oz| 亲子乱一区二区三区电影 | 久久久久久久波多野高潮日日| 伊人影院综合在线| 99久久久无码国产精品| 成人18视频免费69| 精品日本美女福利在线观看| 一级久久久久久久| 亚洲欧美激情精品一区二区| 成人免费观看视频大全| 国产ts一区二区| 一区二区三区国产好| 一区二区免费在线观看| 亚洲视频二区| 日本亚洲一区二区三区| 久久精品一区二区三区不卡| 豆国产97在线 | 亚洲| 欧美日韩一区二区在线视频| 天天爽夜夜爽夜夜爽| 欧美成人午夜影院| 亚洲精品555| 久久资源亚洲| 国内精品久久久久久久影视麻豆| 亚洲色图38p| 国产91在线观看丝袜| 中文字幕av久久爽一区| 欧美日韩免费在线观看| 丰满肉嫩西川结衣av| 久久午夜a级毛片| 欧美free嫩15| 欧美日韩精品免费看| 在线欧美一区| 国产成人精品一区二区三区在线观看 | 国产三区在线观看| 国产精品看片资源| 综合亚洲自拍| 大j8黑人w巨大888a片| 成人综合激情网| 欧美色图亚洲视频| 欧美日韩成人在线| 1pondo在线播放免费| 国产成人精品久久| 亚洲盗摄视频| 欧美 日韩 激情| 北条麻妃国产九九精品视频| 国产一级片播放| 欧美不卡在线视频| 18加网站在线| 91九色在线观看| 欧美福利一区| 免费观看污网站| 亚洲国产精品影院| 日韩在线一区二区三区四区| 韩日精品中文字幕| 伦理一区二区| 中国丰满人妻videoshd| 99re成人精品视频| 国产成人免费观看视频| 日韩精品丝袜在线| 亚洲精品一区| 日韩精品一区二区三区外面 | 中文字幕一二三| 一区二区三区在线影院| 刘亦菲久久免费一区二区| 国内自拍欧美激情| 亚洲三级网址| 欧美一级裸体视频| 亚洲欧洲日韩av| aaa一区二区三区| 亚州欧美日韩中文视频| 亚洲免费福利一区| 99热手机在线| 日韩理论片一区二区| 亚洲精品中文字幕成人片 | 日日夜夜一区| 成年在线观看视频| 91亚洲午夜精品久久久久久| 午夜精品一区二| 日韩一区二区三区在线播放| 国产午夜亚洲精品一级在线| 中国丰满熟妇xxxx性| 91论坛在线播放| 在线观看毛片视频| 久久999免费视频| 首页亚洲中字| the porn av| 亚洲自拍另类综合| 日韩资源在线| 成人黄在线观看| 日韩香蕉视频| 蜜桃av免费观看| 欧美videossexotv100| 最近高清中文在线字幕在线观看1| 水蜜桃一区二区| 成人一区二区在线观看| 日本黄色一级视频| 欧美激情va永久在线播放| 久久99免费视频| 台湾佬美性中文| 在线亚洲免费视频| 欧美xxxx免费虐| 日韩精品伦理第一区| 国产成人av电影在线播放| 免费看日批视频| 久久91亚洲精品中文字幕| 精品国产一区二区三区小蝌蚪| 在线观看中文av| 日本精品一区二区三区四区的功能| 在线电影福利片|