精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

交100部在线观看| 进去里视频在线观看| 女同另类激情重口| 欧美专区日韩专区| 青青视频免费在线| 你懂的视频在线| 国产米奇在线777精品观看| 97人人爽人人喊人人模波多 | 91在线视频播放| 国产精品福利网| 久久久久久蜜桃| 欧美影院三区| 亚洲精品98久久久久久中文字幕| 91国产精品视频在线观看| 激情图片在线观看高清国产| 国产日韩欧美精品在线| 国产精品免费一区二区三区| 在线观看毛片视频| 国产精品呻吟| 欧美黑人巨大xxx极品| 久久久精品成人| 日韩高清成人在线| 精品国产免费一区二区三区香蕉| 五月天中文字幕在线| 性感女国产在线| 亚洲一区二区三区视频在线播放 | 欧美午夜精品电影| 亚洲熟妇av一区二区三区漫画| 成码无人av片在线观看网站| 国产欧美日韩在线看| 久久99国产精品99久久| a毛片在线免费观看| 麻豆精品在线视频| 国产精品久久久久秋霞鲁丝| 国语对白永久免费| 亚洲一区日韩在线| 992tv成人免费视频| 久一区二区三区| 欧美日本中文| 欧美大肥婆大肥bbbbb| 欧美一级特黄高清视频| 精品视频黄色| 亚洲天堂视频在线观看| 三上悠亚ssⅰn939无码播放 | 国产福利精品一区二区| 成人午夜在线观看| 91亚洲欧美激情| 麻豆精品精品国产自在97香蕉 | 久章草在线视频| 青青青免费在线视频| 午夜a成v人精品| 和岳每晚弄的高潮嗷嗷叫视频| 手机电影在线观看| 亚洲国产欧美一区二区三区丁香婷| 永久免费看av| 黄页网站在线观看免费| 亚洲高清免费观看 | 波多野结衣三级在线| 2019中文字幕在线视频| 国产精品免费看片| 老司机av福利| 在线视频中文字幕第一页| 一区二区三区在线看| 300部国产真实乱| caoporn-草棚在线视频最| 图片区小说区区亚洲影院| 欧美s码亚洲码精品m码| 日本在线视频一区二区| 欧美三级日韩三级| 久久无码人妻一区二区三区| 亚洲精品18| 亚洲精品视频免费在线观看| 蜜桃传媒一区二区亚洲| 婷婷综合伊人| 国色天香2019中文字幕在线观看| 国产精品免费精品一区| 免费成人av资源网| 超碰97在线资源| 欧美女v视频| 国产精品人成在线观看免费| 免费的av在线| 在线黄色的网站| 欧美色欧美亚洲另类二区| wwwxxxx在线观看| 神马久久影院| 久久天天躁狠狠躁夜夜躁| 国产性生活网站| 日韩和欧美一区二区三区| 91久久国产婷婷一区二区| 手机看片福利在线| 国产精品你懂的在线| 国产精品久久..4399| 电影亚洲一区| 亚洲激情在线观看视频免费| 欧美88888| 99综合精品| 国产综合香蕉五月婷在线| 少妇高潮一区二区三区69| 国产精品久久久一区麻豆最新章节| 国产一区 在线播放| 日韩av超清在线观看| 精品三级在线观看| 色屁屁草草影院ccyy.com| 激情视频一区二区三区| 成人h视频在线| 可以免费看污视频的网站在线| 亚洲女女做受ⅹxx高潮| 国产精品亚洲二区在线观看| 中文字幕日韩在线| 日韩在线www| 伦av综合一区| 成人h动漫精品一区二区| 亚洲精品国产精品国自产观看| 999av小视频在线| 制服视频三区第一页精品| 精品人妻互换一区二区三区| 亚洲激情成人| 3d精品h动漫啪啪一区二区| 国产三级电影在线观看| 午夜婷婷国产麻豆精品| 无码人妻一区二区三区在线视频| 成人嫩草影院| 国产成人精品电影| 香蕉视频网站在线| 午夜国产不卡在线观看视频| 国产ts在线观看| 中文在线播放一区二区| 成人在线精品视频| 黄色视屏免费在线观看| 欧美日韩一区成人| 免费观看a级片| 久久一区亚洲| 欧美中日韩免费视频| 忘忧草在线日韩www影院| 亚洲精品久久久久久久久久久 | 很黄的网站在线观看| 欧美系列一区二区| 国产伦精品一区二区三区视频女| 校园激情久久| 免费精品视频一区二区三区| 国产高潮在线| 精品亚洲va在线va天堂资源站| 五月天婷婷丁香| av激情亚洲男人天堂| 日韩国产一级片| 日韩欧美黄色| 国产成+人+综合+亚洲欧洲| 免费在线黄色电影| 在线观看日韩精品| 日韩一区二区三区四区视频| 欧美久久精品| 久久伊人精品视频| 91精品视频免费在线观看 | 午夜精品视频在线观看| 亚洲AV成人精品| 怡红院精品视频在线观看极品| 成人黄色在线免费观看| av美女在线观看| 亚洲国产精品热久久| 国产a∨精品一区二区三区仙踪林| av激情综合网| 成人黄色一区二区| 区一区二视频| 91久久爱成人| 欧美aaaaaaa| 亚洲精美色品网站| 国产一区免费看| 中文字幕亚洲电影| 69xxx免费视频| 国产精品美女久久久| 欧美一区国产一区| 亚洲爽爆av| 久久青草精品视频免费观看| 天堂在线一二区| 在线亚洲精品福利网址导航| 啪啪一区二区三区| 国产成人h网站| 精品一区二区中文字幕| 日韩欧美精品一区| 666精品在线| 日本午夜大片a在线观看| 伊人久久男人天堂| 国产情侣激情自拍| 欧美日韩精品在线播放| 国产精品免费无码| 国产麻豆成人精品| 精品中文字幕av| 91日韩欧美| 国产精品三区在线| 8av国产精品爽爽ⅴa在线观看| 欧美成年人视频| 免费黄网站在线观看| 91精品国产麻豆| 中文字幕av影院| 亚洲美女淫视频| 无码国产69精品久久久久同性| 激情综合亚洲精品| 无码aⅴ精品一区二区三区浪潮| 99热在线成人| 明星裸体视频一区二区| 久久伦理中文字幕| 国产福利精品在线| 欧美xxxxhdvideosex| 中文字幕日韩欧美在线 | 欧美视频二区欧美影视| 日本久久亚洲电影| free性欧美16hd| 久久精品亚洲精品| 第九色区av在线| 亚洲大胆人体在线| 国产精品久久久久毛片| 色播五月激情综合网| 懂色av.com| 亚洲猫色日本管| gv天堂gv无码男同在线观看| 91在线免费播放| 在线播放av网址| 国产中文一区二区三区| 国产成人黄色网址| 免费日韩精品中文字幕视频在线| 2022中文字幕| 99久久www免费| 亚洲春色综合另类校园电影| 丝袜久久网站| 激情久久av| 88久久精品| 成人h在线播放| 国产精品久久久久久久久久辛辛 | 久久久久国产精品麻豆ai换脸 | 97超碰中文字幕| 欧美亚洲国产一卡| 欧美日韩一级黄色片| 黄网动漫久久久| 国产稀缺真实呦乱在线| 亚洲一区在线观看免费 | 国产精品一区亚洲| www.国产在线视频| 国产精品s色| 欧美中文字幕在线观看视频| 五月综合激情| 自拍偷拍视频在线| 欧美日韩爆操| 国产成人一区二区三区别| 国产综合网站| heyzo亚洲| 国产精品一区毛片| 日韩精品一区二区三区色欲av| 亚洲欧美日韩国产一区二区| 国产精品丝袜久久久久久消防器材| 激情欧美一区二区三区| 青青青免费在线| 一本久道久久久| 男人靠女人免费视频网站| 西西人体一区二区| 杨幂毛片午夜性生毛片| 日本欧美一区二区在线观看| 三上悠亚av一区二区三区| 久久激情五月激情| 视频区 图片区 小说区| 国产成人在线观看免费网站| 中文字幕a在线观看| 91在线播放网址| 亚洲a v网站| 国产精品丝袜一区| 国产十六处破外女视频| 亚洲一区二区三区视频在线| 国产午夜在线播放| 欧美又粗又大又爽| 国产又大又黑又粗| 亚洲国产91色在线| 黄色在线免费观看大全| 日韩中文字幕国产| 欧美人体视频xxxxx| 日本午夜人人精品| 欧美性aaa| 国产精品国产三级国产专区53| 色狼人综合干| 亚洲三区视频| 亚洲激情av| 欧美成人三级在线播放| 国产激情一区二区三区| aaaaa一级片| 1000精品久久久久久久久| 日本在线视频免费观看| 欧美三级韩国三级日本一级| www日本视频| 亚洲欧美另类自拍| 国产在线观看a| 欧美亚洲激情视频| 精品国产亚洲日本| 欧美久久在线| 欧美 日韩 国产 一区| 亚洲国产精品久久久久婷蜜芽 | 欧亚乱熟女一区二区在线| 亚洲国产精品成人综合| 久青草视频在线观看| 欧美色图12p| 天堂av资源在线| 久久亚洲欧美日韩精品专区| 国产精品专区免费| 91丨九色丨国产| 日韩欧美高清在线播放| 免费成人午夜视频| 国产一区二区三区香蕉| 日韩在线免费观看av| 亚洲专区一二三| 亚洲天堂网在线观看视频| 亚洲韩国欧洲国产日产av| 国产最新在线| 国产精品直播网红| 九九久久婷婷| 久久久久久免费看| 国产一区二区久久| wwwww黄色| 在线观看视频一区| 色视频在线观看| 久久久久久久久91| 99热这里有精品| 亚洲精品影院| 日韩精彩视频在线观看| 亚洲乱码国产乱码精品精大量| 亚洲综合精品自拍| 国产精品无码久久av| 一区二区三区久久精品| 北岛玲heyzo一区二区| 国产一级精品aaaaa看| 欧美精品激情| 三级黄色片免费看| 中文字幕在线免费不卡| 中文 欧美 日韩| 一区二区三区亚洲| 日韩电影av| 欧美成ee人免费视频| 国产精品毛片| 三级电影在线看| 欧美视频不卡中文| 偷拍25位美女撒尿视频在线观看| 久久久久亚洲精品国产| 最新国产一区二区| 99在线观看视频免费| 国产成人啪午夜精品网站男同| 少妇人妻丰满做爰xxx| 91精品国产丝袜白色高跟鞋| 欧美性videos| 91久久精品美女高潮| 亚洲精品a级片| 污视频在线观看免费网站| 亚洲三级久久久| 国产成人三级在线播放| 久久久久久伊人| 久久大胆人体视频| 免费午夜视频在线观看| 国产欧美精品区一区二区三区| 国产偷人爽久久久久久老妇app| 一本色道久久综合亚洲精品小说 | 国产精品影视网| 欧美日韩在线观看免费| 欧美成人女星排名| 国模精品视频| 欧美男人的天堂| 美女久久久精品| 青青青在线免费观看| 精品成人一区二区三区| 国产自产自拍视频在线观看| 欧美裸体网站| 国内一区二区视频| 久久综合激情网| 亚洲午夜色婷婷在线| 95精品视频| 免费不卡av在线| 国产欧美综合在线| 国产成人毛毛毛片| 5252色成人免费视频| jlzzjlzz亚洲女人| 成年人看片网站| 激情成人中文字幕| 阿v免费在线观看| 97av自拍| 日韩高清在线观看| 五月婷婷一区二区| 亚洲精品一区二区三区婷婷月| 国产成人久久精品麻豆二区| 黄色三级中文字幕| 国产日韩欧美精品综合| 国产熟女精品视频| 欧美尤物巨大精品爽| 99精品视频在线| 丰满少妇在线观看资源站| 欧美另类久久久品| 波多野一区二区| 中文字幕精品—区二区日日骚| 不卡一区二区在线| 亚洲性在线观看| 97香蕉久久超级碰碰高清版| 欧美高清视频在线观看mv| 日本五十肥熟交尾| 欧美美女一区二区在线观看| 九色porny丨国产首页在线| 一本久久a久久精品vr综合| 波多野结衣亚洲一区|