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

Hi3861的SAMGR--系統服務框架子系統-1

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

[[403501]]

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

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

https://harmonyos.51cto.com

1. 初步了解

先看README文檔,位于LTS/foundation/distributedschedule/samgr_lite/README_zh.md。

我們對其中的部分內容先做一下初步的理解。

系統服務框架[system ability (SA) framework],是為了屏蔽不同的硬件架構、不同的平臺資源、不同的運行形態等軟硬件差異,而提供的統一的系統服務開發框架。

根據處理器的不同架構,如RISC-V架構(基于精簡指令集RISC的開源架構)、ARM架構(如ARM的Cortex-M/Cortex-A等)、x86架構(主要用于PC市場,目前鴻蒙暫不支持,但指不定哪天就宣布支持了)等,目前分為兩類硬件平臺,以下簡稱M核(平臺)、A核(平臺)。

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

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

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

依賴關系上:

  • M核:系統依賴bootstrap服務,在系統啟動函數中調用HOS_SystemInit()函數。
  • A核:系統依賴samgr庫,在main函數中調用SAMGR_Bootstrap()函數。

我的簡單理解:

  • samgr是一個系統服務開發框架,開發者可以根據這里規定的規則,開發自定義的服務和功能(service+feature)、接口等等。

示例程序在Hi3861/applications/sample/wifi-iot/app/samgr/,打開BUILD.gn的編譯規則即可參與編譯。

示例程序可能會有編譯錯誤,可以獲取gitee上的最新代碼對比著進行修改,或者參考《WiFi IoT 編譯samgr模塊》 進行修改。

編譯出來的程序可能會出現kernel panic,我估計很大的原因是一次性注冊和啟動的service/feature/task太多了,導致系統資源耗盡引起的,所以最好還是只編譯部分需要驗證的示例程序,不要一次全部編譯完。我后面附上的log,就是只編譯了service_example.c和feature_example.c抓取的。

  • samgr提供了對所有service、feature、接口的統一管理,包含了跨設備的service/feature的管理和調度,這是鴻蒙系統非常核心的特性之一。

2. 代碼目錄結構

先看一下LTS/foundation/distributedschedule/samgr_lite/ 的代碼結構:

看上去相當復雜。

再看對應的Hi3861/foundation/distributedschedule/ 代碼結構:

兩相對比,其實大致上是一樣的。

去 Hi3861/foundation/distributedschedule/service/samgr_lite/ 目錄下看BUILD.gn文件的構建規則,把只在A核上編譯的部分灰化,如上表,剩下的基本上就是M核要用到的了。

本文先只從Hi3861工程的角度來看samgr子系統,所以代碼基本上只需要看:

  1. Hi3861/foundation/distributedschedule/service/samgr_lite/communication/broadcast/ 
  2.  
  3. Hi3861/foundation/distributedschedule/service/samgr_lite/samgr/source/ 

 因為samgr“依賴bootstrap服務”,所以連帶也要看 Hi3861/base/startup/services/bootstrap_lite/ 的代碼。

至于:

  1. Hi3861/foundation/distributedschedule/service/samgr_lite/samgr/adapter/ 

這是對調用者屏蔽了平臺差異性的統一接口的聲明和實現,暫不進一步深究。

  1. Hi3861/foundation/distributedschedule/service/samgr_lite/samgr/registry/ 

這里定義了三個弱引用的API:

  1. SAMGR_RegisterServiceApi() 
  2.  
  3. SAMGR_FindServiceApi() 
  4.  
  5. SAMGR_RegisterFactory() 

 它們在/samgr_server/source/ samgr_server.c 中有實現,估計和跨設備的服務調用有關,但是M核不編譯samgr_server,所以,M核的上述三個API其實沒做什么工作,這里也暫不進一步深究。

這樣清理一下相關代碼和模塊關系就會發現簡單很多,入手也會相對容易一些,下面我們就開始“Read the f**king source code :)”。

3. 大概流程

Hi3861平臺在啟動到HOS_SystemInit()時,

  1. void HOS_SystemInit(void) 
  2.     ...... 
  3.     printf("[system_init] [7-4]: SYS_INIT(service)=====================\n"); 
  4.     SYS_INIT(service); 
  5.  
  6.     printf("[system_init] [7-5]: SYS_INIT(feature)=====================\n"); 
  7.     SYS_INIT(feature); 
  8.     ...... 
  9.     printf("[system_init] [7-7]: SAMGR_Bootstrap()=====================\n"); 
  10.     SAMGR_Bootstrap(); 

 會分別通過上面三步來:向samgr注冊系統服務(service)、注冊系統服務提供的功能(feature)、通過samgr啟動并開始管理系統服務和功能。

從抓回來的log看:

  1. [system_init] [7-4]: SYS_INIT(service)===================== 
  2.  
  3. [bootstrap_service] SYS_SERVICE_INIT(Init): Bootstrap 
  4.  
  5. [samgr_lite] SAMGR_GetInstance(mutex=NULL): NO SAMGR instance, Init() to create ONE 
  6.  
  7. [samgr_lite] Init. g_samgrImpl 
  8.  
  9. [samgr_lite] Init. mutex[956036]. sharedPool[0-8] reset to 0. status=0[BOOT_SYS] 
  10.  
  11. [samgr_lite] SAMGR_GetInstance(mutex=956036) 
  12.  
  13. [samgr_lite] RegisterService(Name:Bootstrap)->Sid[0] 
  14.  
  15.   
  16.  
  17. [broadcast_service] SYS_SERVICE_INIT(Init): Broadcast 
  18.  
  19. [samgr_lite] RegisterService(Name:Broadcast)->Sid[1] 
  20.  
  21.   
  22.  
  23. [hiview_service] SYS_SERVICE_INIT(Init): hiview 
  24.  
  25. [samgr_lite] RegisterService(Name:hiview)->Sid[2] 
  26.  
  27. [samgr_lite] RegisterFeatureApi(serviceName[hiview], feature[(null)]) 
  28.  
  29. [hiview_service] Init.InitHiviewComponent. 
  30.  
  31.   
  32.  
  33. [system_init] [7-5]: SYS_INIT(feature)===================== 
  34.  
  35. [pub_sub_feature] Init. SYS_FEATURE_INIT(Init) g_broadcastFeature: Provider and subscriber 
  36.  
  37. [samgr_lite] RegisterFeature(serviceName:Broadcast, featureName:Provider and subscriber)->Fid[0] 
  38.  
  39. [pub_sub_implement] BCE_CreateInstance: set g_pubSubImplement.feature = &g_broadcastFeature 
  40.  
  41. [samgr_lite] RegisterFeatureApi(serviceName[Broadcast], feature[Provider and subscriber]) 

會注冊三個系統服務和一個系統feature。

第一個注冊的系統服務是Bootstrap,這個時候samgr還沒有實例,所以需要先初始化samgr的全局實例g_samgrImpl,然后才能通過RegisterService((Service *)&bootstrap)來向g_samgrImpl注冊bootstrap服務。這時候g_samgrImpl會通過SAMGR_CreateServiceImpl()來為bootstrap創建一個ServiceImpl 對象,將該對象加入g_samgrImpl.services向量中,并返回它在向量中的位置[0],以此作為bootstrap 的ServiceID[0](文中或log中簡寫為Sid,同樣FeatureID簡寫為Fid,QueueID簡寫為Qid)。

接下來注冊的第二個服務broadcast和第三個服務hiview,就可以直接通過RegisterService((Service *)Xxx)記錄進g_samgrImpl.services向量里了,Sid分別是[1]/[2]。

接下來再注冊broadcast service的feature:PUB_SUB_FEATURE。feature的注冊和運行需要依賴于對應的service,一個service可以有0個、1個或多個feature。通過RegisterFeature(service, feature)的調用,samgr也會先生成一個FeatureImpl對象,再將該對象加入到 g_samgrImpl.services向量中對應的service 的ServiceImpl 對象的向量features中去,以完成feature的注冊。這一句看起來比較繞,簡單來說,就是g_samgrImpl的services向量管理著所有登記在冊的services的ServiceImpl ,而每個ServiceImpl又通過自己的features向量管理自己所有的features。【更具體的實現過程,后面會有詳細的代碼分析。】

在接下來的系統運行中,serviceName/serviceID(Sid) 和featureName/featureID(Fid) 都是非常重要的信息,samgr可以通過它們來找到對應的ServiceImpl/FeatureImpl對象,并提供相應的服務/功能。

  1. [system_init] [7-7]: SAMGR_Bootstrap()===================== 
  2.  
  3. [samgr_lite] SAMGR_Bootstrap. Begin:    size=3 
  4.  
  5.         InitializeAllServices: size=3 
  6.  
  7.         Add service: Bootstrap   to TaskPool: 0x0... 
  8.  
  9.                                                    TaskPool: 0xfa448... 
  10.  
  11.                                                            Qid: 956360... 
  12.  
  13.         Add service: Broadcast   to TaskPool: 0x0... 
  14.  
  15.                                                    TaskPool: 0xfaab8... 
  16.  
  17.                                                            Qid: 956404... 
  18.  
  19.         Add service: hiview      to TaskPool: 0x0... 
  20.  
  21.                                                  TaskPool: 0xfac78... 
  22.  
  23.                                                          Qid: 956448... 
  24.  
  25. [task_manager] SAMGR_StartTaskPool: 
  26.  
  27.         CreateTask[Bootstrap(Tid: 0xe8780), size(8192), Prio(25)]-OK! 
  28.  
  29. [task_manager] SAMGR_StartTaskPool: 
  30.  
  31.         CreateTask[Broadcast(Tid: 0xe871c), size(4096), Prio(32)]-OK! 
  32.  
  33. [task_manager] SAMGR_StartTaskPool: 
  34.  
  35.         CreateTask[hiview(Tid: 0xe87e4), size(2048), Prio(24)]-OK! 
  36.  
  37. [samgr_lite] SAMGR_Bootstrap. End

 這里就是samgr開始為各個登記在g_samgrImpl.services向量里的service創建Queue和TaskPool這些運行環境了,在SAMGR_StartTaskPool() 這一步依次創建和啟動service任務/線程,線程入口是TaskEntry()函數,位于Hi3861/foundation/distributedschedule/services/samgr_lite/samgr/source/task_manager.c 文件內。

各個服務的TaskEntry線程,監控著各自的消息隊列Queue,從中檢出消息,獲取Exchange封裝的數據,根據里面的相關標記調用相關的msg handler來進行對應的處理。

上面的流程僅僅是啟動了用SYS_SERVICE_INIT()和SYS_FEATURE_INIT() 標記的service和feature,而通過SYSEX_SERVICE_INIT/APP_SERVICE_INIT/ SYSEX_FEATURE_INIT/APP_FEATURE_INIT 標記的service和feature(如在前面提到的示例程序samgr里定義的一部分service和feature),則會在系統啟動到 BOOT_APP 這一步時,通過發送消息BOOT_SYS_COMPLETED到Bootstrap的消息隊列中,讓Bootstrap調用MessageHandle()來處理該消息:通過調用INIT_APP_CALL(service)和INIT_APP_CALL(feature)來完成APP service和Feature的啟動,從而提供用戶定義的服務和功能。

上面是service/feature的注冊和啟動的大概過程,主要的工作都是samgr來實現的,這就是samgr_lite組件的基礎代碼部分所提供的功能。

log和簡單的步驟描述,見附件log。

接下來我會對一些重要的結構體進行分解,對部分流程進行詳細的分析。

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

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

https://harmonyos.51cto.com

 

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

2021-06-18 10:02:10

鴻蒙HarmonyOS應用

2021-06-10 09:25:39

鴻蒙HarmonyOS應用

2021-06-18 15:23:59

鴻蒙HarmonyOS應用

2021-07-08 16:16:59

鴻蒙HarmonyOS應用

2021-07-07 09:45:20

鴻蒙HarmonyOS應用

2021-07-05 09:35:36

鴻蒙HarmonyOS應用

2021-07-12 09:50:39

鴻蒙HarmonyOS應用

2022-03-15 15:00:59

Hi3861Pin接口鴻蒙

2020-10-16 09:50:37

Hi3861WiFi熱點

2023-05-26 16:07:14

Hi3861Wifi模塊

2021-04-30 09:43:27

鴻蒙HarmonyOS應用

2020-11-03 11:39:22

wifi小車

2020-10-14 09:41:02

Hi3861GPIO點燈

2022-03-07 15:05:58

HTTPHi3861數據解析

2021-07-01 14:21:58

鴻蒙HarmonyOS應用

2020-10-30 09:41:44

鴻蒙Hi3861WiFi小車

2021-04-23 10:13:05

鴻蒙HarmonyOS應用

2021-02-02 15:52:17

鴻蒙HarmonyOS應用開發

2022-04-12 11:07:11

Hi3861鴻蒙操作系統

2022-05-30 15:21:27

Hi3861TCP通信
點贊
收藏

51CTO技術棧公眾號

chinese国产精品| 欧美xxxxx少妇| 久久久久久国产精品免费无遮挡| 美女精品自拍一二三四| 欧美成人全部免费| 亚洲色图14p| 日日夜夜综合| 精品久久久久久久久久久久久久| 日韩在线国产| 韩国av免费在线| 日本欧美加勒比视频| 欧美人在线观看| 久久中文字幕精品| 国产精品欧美大片| 欧美日韩一区二区在线观看视频| 蜜臀精品一区二区| 男人资源在线播放| 久久久久亚洲综合| 99久久伊人精品影院| 久久久精品毛片| 在线看片一区| 久热精品视频在线| 日本理论中文字幕| 欧美久久精品| 日韩欧美123| 91系列在线播放| 欧美久久久久久久久久久久久久| 深夜视频在线免费| 国产精一区二区三区| 日本亚洲欧洲色| 日韩欧美性视频| 午夜精品久久久久99热蜜桃导演 | 五月婷在线视频| 国产一区二区福利视频| 国产精品视频精品视频| 中文字幕亚洲精品在线| 黄色av一区| 欧美成人午夜激情在线| 熟女av一区二区| 波多野结衣的一区二区三区| 亚洲免费电影在线观看| 亚洲精品乱码久久久久久久| **爰片久久毛片| 日韩一区二区免费高清| 亚洲一区二区三区观看| 久久人体av| 欧洲人成人精品| 国产免费人做人爱午夜视频| xxxxx性欧美特大| 岛国精品视频在线播放| 免费观看亚洲视频| 国产精品186在线观看在线播放| 亚洲男人天堂一区| 可以免费看的黄色网址| 伊人影院蕉久影院在线播放| 日韩毛片高清在线播放| 天天综合中文字幕| 国产福利视频在线观看| 亚洲精品自拍动漫在线| 日本大胆人体视频| 免费电影视频在线看| 亚洲一卡二卡三卡四卡| 欧美大片在线播放| 亚洲精品国产精品国产| 在线亚洲高清视频| 爱爱爱爱免费视频| 欧美专区视频| 日韩免费一区二区三区在线播放| 国产伦理在线观看| 国产精品videossex| 日韩精品极品在线观看| brazzers精品成人一区| 成人一二三区| 欧美精品在线看| 国产福利拍拍拍| 香蕉国产精品偷在线观看不卡| 国产精品白嫩初高中害羞小美女| 瑟瑟视频在线免费观看| 国产一区中文字幕| 激情视频在线观看一区二区三区| 久热av在线| 国产精品久久久久婷婷二区次| 91免费国产精品| 成人福利av| 91.麻豆视频| 99re久久精品国产| 四虎成人精品永久免费av九九| 久久精品亚洲国产| 日本少妇xxxx动漫| 免费久久99精品国产| 91嫩草在线| 九色蝌蚪在线| 亚洲在线成人精品| 男人舔女人下面高潮视频| 国产成人免费av一区二区午夜 | 日韩欧美国产免费播放| 午夜视频在线网站| 噜噜噜狠狠夜夜躁精品仙踪林| 在线一区二区日韩| 久久中文字幕在线观看| 日韩激情中文字幕| 国产传媒欧美日韩| 91在线播放网站| 欧美日韩中文在线| 国产一级片中文字幕| 在线日韩网站| 久久99精品久久久久久青青91| 色av性av丰满av| 国产成人免费高清| 亚洲视频精品一区| 天堂中文av在线资源库| 91精品国产一区二区三区香蕉| 短视频在线观看| 中文一区一区三区免费在线观看| 日韩av免费在线| 欧美 日韩 中文字幕| 国产精品久久久久久妇女6080| 日韩av在线第一页| av一级亚洲| 久久精品在线视频| 最新中文字幕在线观看视频| av网站免费线看精品| 性做爰过程免费播放| 四虎4545www国产精品| 日韩h在线观看| 久久久久久久九九九九| 精品一区二区在线观看| 日韩电影大全在线观看| 在线观看网站免费入口在线观看国内 | 久久精品亚洲一区二区三区浴池| 免费超爽大片黄| 视频一区中文字幕精品| 久久综合色影院| 一级黄色大片网站| 中文字幕av一区二区三区| 国产成人在线免费看| 91蝌蚪精品视频| 欧美丰满少妇xxxxx做受| 97精品人妻一区二区三区| 国产精品色哟哟网站| 国产成人精品无码播放| 狠狠色狠狠色综合婷婷tag| 91av在线不卡| 外国精品视频在线观看| 香蕉久久一区二区不卡无毒影院 | 久久久99精品免费观看不卡| 自慰无码一区二区三区| 亚洲第一福利社区| 欧美在线免费看| 久色视频在线| 在线观看亚洲精品视频| 国产视频不卡在线| 久久精品国产**网站演员| 亚洲日本欧美在线| 欧美美女被草| 欧美成人精品激情在线观看 | 精品国产一区二区三区久久久狼 | av黄色在线播放| 久久影院午夜论| 国产嫩草在线观看| 99久久夜色精品国产亚洲狼| 91中文字幕在线| 日本无删减在线| 亚洲精品第一国产综合精品| 日韩精品成人一区| 久久久激情视频| 91精品无人成人www| 亚洲精品2区| av在线不卡观看| 日本乱码一区二区三区不卡| 亚洲天堂第一页| 亚洲自拍偷拍另类| 伊人色综合久久天天| 性色av蜜臀av浪潮av老女人| 久久动漫亚洲| 在线播放 亚洲| 亚洲亚洲一区二区三区| 4388成人网| 精品久久av| 777欧美精品| 丰满少妇乱子伦精品看片| 久久精品视频一区| 在线观看网站黄| 美女日韩在线中文字幕| 亚洲电影网站| 国产精品视频3p| 国产精品无码专区在线观看| 羞羞视频在线免费国产| 日韩精品在线免费播放| 亚洲天堂狠狠干| 性做久久久久久免费观看| 亚洲一二三精品| 成人毛片视频在线观看| 亚洲77777| 亚洲深爱激情| 特级黄色录像片| 猛男gaygay欧美视频| 亚洲伊人久久综合| 欧美日韩在线精品一区二区三区激情综合 | 日韩av综合中文字幕| 国产精品久久婷婷| 黑人巨大精品欧美一区免费视频 | 亚洲第一精品久久忘忧草社区| 自拍偷拍校园春色| 亚洲高清不卡在线| 久久国产高清视频| 久久久久久久久一| 无码国产精品一区二区免费式直播| 日韩国产在线观看一区| www.av片| 欧美精品一线| 制服诱惑一区| 精品久久久亚洲| 久久riav| 精品久久ai电影| 91黄色精品| 亚洲aⅴ网站| 国产精品高清在线观看| 鲁鲁在线中文| 孩xxxx性bbbb欧美| 影音先锋男人在线资源| 北条麻妃一区二区三区中文字幕| 国产毛片av在线| 日韩精品日韩在线观看| 亚洲欧美激情另类| 日韩欧美美女一区二区三区| 91精品国产色综合久久不8| 日本精品视频一区二区三区| 一级片中文字幕| 午夜精品久久久久久久| 欧美日韩三级在线观看| 亚洲天堂精品视频| 潘金莲一级黄色片| 中文字幕一区二区三区av| jizzjizzjizz国产| 亚洲国产精品ⅴa在线观看| 女同毛片一区二区三区| 97久久精品人人做人人爽 | 欧美**vk| 欧美伦理一区二区| 久久91麻豆精品一区| 久久精品国产精品青草色艺| 美国成人xxx| 狠狠色狠狠色综合人人| 欧美一区自拍| 蜜桃av久久久亚洲精品| 亚洲精品国模| 日本欧洲国产一区二区| 欧美三级伦理在线| 一区二区欧美日韩| 香蕉久久网站| 久久精品在线免费视频| 伊人久久综合| 黄色动漫网站入口| 日日嗨av一区二区三区四区| 午夜激情福利在线| 精品综合免费视频观看| 欧美精品 - 色网| 国产jizzjizz一区二区| 中文字幕人妻一区二区三区| 99国产精品久久久久久久久久| 黑人巨大精品欧美| 国产日韩欧美精品在线| 97精品在线播放| 亚洲综合无码一区二区| 日韩av大片在线观看| 在线观看不卡一区| 99久久久国产精品无码网爆| 日韩精品专区在线影院重磅| 天天干在线观看| 一个色综合导航| free性欧美hd另类精品| 亚洲3p在线观看| 欧美中文字幕精在线不卡| 91精品国产自产在线观看永久| 一本一道久久a久久| 久久精品ww人人做人人爽| 久久免费精品视频在这里| 粉嫩av一区二区三区天美传媒| 亚洲精品色图| 久久国产激情视频| 国产成人精品免费视频网站| 麻豆精品免费视频| 自拍偷拍欧美精品| 91av在线免费视频| 51精品秘密在线观看| 亚洲欧美日韩综合在线| 日韩中文字幕在线精品| 黄视频网站在线观看| 国产日韩精品在线播放| 粉嫩av一区二区| 亚洲高清精品中出| 亚洲精选91| 99久久99精品| 久久影院午夜论| 18精品爽视频在线观看| 欧美性猛交xxxxxxxx| 蜜臀久久久久久999| 中文字幕少妇一区二区三区| 2018av在线| 91网在线免费观看| 欧美一区2区| 黄www在线观看| 国产精品一二三区在线| 精品成人无码一区二区三区| 亚洲国产va精品久久久不卡综合| 波多野结衣绝顶大高潮| 亚洲国产一区二区三区四区| free性欧美hd另类精品| 国产精品视频免费在线| 日韩成人午夜| 国产一级做a爰片久久毛片男| 麻豆91在线观看| 蜜桃精品一区二区| 亚洲成人动漫一区| 精品人妻无码一区二区| 中文字幕综合一区| 黄色精品视频| 欧美精品一区三区在线观看| 在线欧美三区| 久久久久亚洲av无码网站| 综合久久久久久| 亚洲一级在线播放| 夜夜嗨av一区二区三区免费区| 中文字幕乱码在线播放| 极品日韩久久| 在线看片一区| 国产 xxxx| 亚洲成人777| 深爱激情五月婷婷| 欧美激情一级欧美精品| 精品国产亚洲日本| 免费看av软件| 韩国一区二区三区| 日韩精品一区二区亚洲av性色| 91成人在线精品| 国产乱视频在线观看| 国产精品福利网站| 精品国产91乱码一区二区三区四区 | 日本在线高清| 看欧美日韩国产| 国产亚洲精品自拍| 亚洲av片不卡无码久久| 色综合天天视频在线观看| 蜜桃视频在线播放| 国产精品第一视频| 日韩精品免费一区二区三区| 黄色三级视频在线| 日韩一区中文字幕| 国产乱淫av免费| 欧美激情视频网址| 欧美成人专区| 成年人视频在线免费| 国产精品热久久久久夜色精品三区| 日本妇乱大交xxxxx| 久久亚洲成人精品| 日韩最新av| 欧美黑人经典片免费观看| xnxx国产精品| 看黄色一级大片| 久久久国产一区二区三区| 日韩欧美一级| 日韩精品xxxx| 国产精品三级视频| www.日本在线观看| 97视频在线观看免费| 曰本一区二区三区视频| 午夜视频在线网站| 亚洲国产精品久久不卡毛片| 欧美日本网站| 91精品久久久久久久久中文字幕| 你懂的一区二区| 一区二区视频观看| 欧美日韩国产中文| 懂色av一区| 色综合影院在线观看| 国产精品一区二区在线观看不卡 | 久久精品女人毛片国产| 亚洲男人av电影| 成人自拍视频| 男人揉女人奶房视频60分| 国产精品毛片无遮挡高清| 丰满岳乱妇国产精品一区| 国产91网红主播在线观看| 亚洲激情中文在线| 精品无码人妻一区| 欧美一区二区三区影视| 亚洲伊人av| 国产一级大片免费看| 久久久精品一品道一区| 国产黄色免费大片| 国产精品美乳在线观看| 欧美日韩一区二区高清| 久久久久亚洲AV成人无在| 亚洲精品在线观看视频| 免费视频观看成人| 欧美亚洲另类色图| 一区二区三区中文字幕精品精品| 久久综合九色综合久| 国产九色91|