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

在 OpenHarmony 開發板上運行 WasmEdge

開發 前端
WasmEdge 目前已經支持了 Linux、macOS、Windows 與 實時操作系統 seL4。添加 OpenHarmony 的支持,將豐富 WasmEdge 的生態。

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

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

https://harmonyos.51cto.com

Why

移動與 IoT 設備的特點是資源受限,軟硬件不統一,用戶體驗卻要求很高。設備要能安全,跨平臺地運行第三方開發者提供的軟件應用(例如,應用商店),因而直接原生編譯的軟件應用(Native Client, or NaCl)并不主流。鴻蒙與安卓這樣的主流操作系統一般提供基于 Java 或者 JavaScript 的軟件執行沙盒,來支持第三方應用。但是這樣的軟件執行沙盒有幾個大問題:

  • 支持的編程語言很有限
  • 支持的語言有 IP 與法律風險
  • 性能一般
  • 資源開銷大
  • 無法支持實時系統
  • 安全性一般(所以應用商店需要審查制)

而 WebAssembly 作為一個多語言,跨平臺,高性能,輕量級,安全的軟件執行環境,能讓開發者兼得性能,可移植性,與安全性。WebAssembly 是移動與 IoT 設備上系統中間件的最佳選擇。

WasmEdge 是由 CNCF 托管的輕量級、高性能和可擴展的 WebAssembly runtime,適用于云原生、邊緣和去中心化應用程序。WasmEdge 可以運行 C/C++、Rust、Swift、AssemblyScript 或 Kotlin 等語言編譯的標準 WebAssembly 字節碼程序。

OpenHarmony 是由開放原子開源基金會(OpenAtom Foundation)孵化及運營的開源項目,目標是面向全場景、全連接、全智能時代,基于開源的方式,搭建一個智能終端設備操作系統的框架和平臺,促進萬物互聯產業的繁榮發展。

WasmEdge 為 OpenHarmony 提供了一個與 JVM 與 JS engine 同級的 runtime,但是比 JVM、JS engine 更安全、更快、更小、更易于管理。通過 WasmEdge,可以在設備上安全地運行第三方開發者用 C、C++、Rust 等語言編寫的 Wasm 程序,擴大 OpenHarmony 的開發者群體。 WasmEdge 相當于 OpenHarmony 的一個完全開源的開發執行環境。社區開發者可以方便地運行編譯好的 WebAssembly 程序,降低門檻。

WasmEdge 目前已經支持了 Linux、macOS、Windows 與 實時操作系統 seL4。添加 OpenHarmony 的支持,將豐富 WasmEdge 的生態。

介紹完畢 ,下面進入編程時間。請參考下面的教程從源碼在 OpenHarmony 開發板中構建和測試 WasmEdge。

1. 全量編譯 OpenHarmony OS

2. 獲取 WasmEdge 源碼

3. 修改 OpenHarmony 標準系統配置文件

4. 構建 WasmEdge 與 OpenHarmony

5. 燒錄到開發板

6. 運行 WasmEdge 提供的測試用例

配合視頻觀看,效果更佳。

環境準備

OpenHarmony 標準系統

OpenHarmony 標準系統為開發者提供的 Docker 環境封裝了對應的編譯工具鏈,本文檔主要介紹在 Docker 環境下構建 WasmEdge 的步驟。

OpenHarmony 源碼的獲取與編譯可以參考 Open Harmony 提供的文檔 搭建Ubuntu環境-Docker方式。

請注意,在構建 WasmEdge 前需要將 Openharmony 進行一次全量編譯以便后續 WasmEdge 的交叉編譯過程。

  1. # 獲取到 docker 鏡像后 
  2. $ docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.5 
  3. $ ./build.sh --product-name Hi3516DV300 

獲取 WasmEdge 源碼

OpenHarmony 將第三方庫項目放在了 third_party 文件夾下,因此我們需要在 third_party 文件夾下獲取 WasmEdge 源碼。

這之后,用戶可以根據需要更改路徑并修改相關配置文件中的路徑。

  1. $ docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.5 
  2. $ cd third_party 
  3. $ git clone https://github.com/WasmEdge/WasmEdge.git 
  4. $ cd WasmEdge 

 修改 OpenHarmony 標準系統配置文件

添加 WasmEdge 子系統配置

修改 OpenHarmony 的 build 目錄下的 subsystem_config.json 文件,如下添加 wasmedge 子系統。

  1.   ... 
  2.    
  3.   "wasmedge": { 
  4.     "path""third_party/WasmEdge"
  5.     "name""wasmedge" 
  6.   }, 
  7.    
  8.   ... 

 將組件添加到產品配置中

修改 OpenHarmony 產品配置文件,標準系統對應的配置文件為:productdefine/common/products/Hi3516DV300.json。

在該配置文件中添加 "wasmedge:wasmedge":{},表示該產品會編譯并打包 wasmedge 子系統下的 wasmedge 模塊到版本中。

  1.   ... 
  2.   "parts":{ 
  3.     ... 
  4.     "wasmedge:wasmedge":{} 
  5.   } 

構建 WasmEdge 與 OpenHarmony

說明

在 OpenHarmony 中構建的 WasmEdge 目前僅支持 wasmedge,即 wasm 的通用運行時。

wasmedge 可以在解釋器模式下執行一個 WASM 文件, 也可以執行從 WASM 文件 AOT 預編譯產生的機器碼二進制格式文件。但目前還不支持在 OpenHarmony 中對 WASM 文件進行 AOT 預編譯 。

執行構建腳本

執行 WasmEdge 源碼下的 utils/build_for_ohos.sh 命令行腳本,將自動執行以下工作:

將 .gn 等 OpenHarmony 需要的構建配置文件移動到 WasmEdge 項目根目錄;

使用 OpenHarmony 的編譯工具鏈進行交叉編譯構建 WasmEdge;

運行 OpenHarmony 的構建腳本 build.sh 進行全量編譯,該步驟將 wasmedge 添加進 OpenHarmony OS;

  1. $ docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.5 
  2. $ cd third_party/WasmEdge/utils/ohos 
  3. $ ./build_for_ohos.sh /home/openharmony 

 當 terminal 顯示以下信息時,表明編譯完成。

  1. ... 
  2.  
  3. post_process 
  4. =====build Hi3516DV300 successful. 
  5. 2021-12-15 03:18:50 
  6. ++++++++++++++++++++++++++++++++++++++++ 

 檢查 wasmedge 是否編譯打包進 OpenHarmony OS。

  1. $ cd /home/openharmony/out/ohos-arm-release/packages/phone/system/bin 
  2. $ ls  

當輸出的文件名中存在 wasmedge 時,就表明 WasmEdge 已經成功導入到 OpenHarmony OS。

測試

燒錄鏡像

將重新編譯后的 OpenHarmony 標準系統鏡像燒錄進開發板,具體見 OpenHarmony 提供的文檔 Hi3516DV300 開發板燒錄。

運行應用

WasmEdge 在 tools/wasmedge/examples/ 文件夾提供了測試樣例。在 OpenHarmony 標準系統中,這些樣例寫入了 system 鏡像中,依然可以進行測試。通過串口工具連接上開發板并啟動OpenHarmony 標準系統后,我們就可以進行以下的測試。

  1. # cd /system/usr/wasmedge_example 
  2. # wasmedge hello.wasm 1 2 3 
  3. hello 
  4. # wasmedge --reactor add.wasm add 2 2 
  5. # wasmedge --reactor fibonacci.wasm fib 8 
  6. 34 
  7. # wasmedge --reactor factorial.wasm fac 12 
  8. 479001600 
  9. # cd js 
  10. # wasmedge --dir .:. qjs.wasm hello.js 1 2 3 
  11. Hello 1 2 3 

下一步

接下來,你可以參考 WasmEdge Book 在 OpenHarmony 標準系統中使用 WasmEdge Runtime 來運行你自己的 WebAssembly 應用。

移植過程踩過的坑

最后和大家分享一下,在移植 WasmEdge 到 OpenHarmony OS 過程出現的一些問題與值得注意的地方。

交叉編譯

cmake 項目進行交叉編譯需要配置工具鏈,官方的交叉編譯配置給出了參考,但需要在此基礎上細化,如指明 Clang 及 Clang++ 的位置。此外,標準版 sysroot 的路徑也有所不同,具體可以參考 WasmEdge 中的配置:

  1. set(TOOLSCHAIN_PATH "${OHOS_DIR_PATH}/prebuilts/clang/ohos/linux-x86_64/llvm"
  2. set(TOOLCHAIN_HOST "${TOOLSCHAIN_PATH}/bin"
  3. set(OHOS_SYSROOT_PATH "${OHOS_DIR_PATH}/out/ohos-arm-release/obj/third_party/musl"
  4. set(CMAKE_SYSROOT ${OHOS_SYSROOT_PATH}) 
  5. set(CMAKE_CROSSCOMPILING TRUE
  6. set(CMAKE_SYSTEM_NAME "Generic"
  7. set(CMAKE_CXX_COMPILER_ID Clang) 
  8. set(CMAKE_TOOLCHAIN_PREFIX llvm-) 
  9. set(LLVM_PATH "${OHOS_DIR_PATH}/prebuilts/clang/ohos/linux-x86_64/llvm"
  10. include_directories(${LLVM_PATH}/include/c++/v1) 
  11. include_directories(${OHOS_SYSROOT_PATH}/usr/include/arm-linux-ohosmusl) 
  12. link_directories(${OHOS_SYSROOT_PATH}/usr/lib/arm-linux-ohosmusl) 
  13. set(TOOLCHAIN_CC "${TOOLCHAIN_HOST}/clang"
  14. set(TOOLCHAIN_CXX "${TOOLCHAIN_HOST}/clang++"
  15. set(CMAKE_C_COMPILER ${TOOLCHAIN_CC}) 
  16. set(CMAKE_C_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -mfpu=neon -mthumb -w --sysroot=${OHOS_SYSROOT_PATH}"
  17. set(CMAKE_CXX_COMPILER ${TOOLCHAIN_CXX}) 
  18. set(CMAKE_CXX_FLAGS "--target=arm-linux-ohosmusl -D__clang__ -march=armv7-a -mfloat-abi=softfp -mtune=generic-armv7-a -mfpu=neon -mthumb -w --sysroot=${OHOS_SYSROOT_PATH}"
  19. set(MY_LINK_FLAGS "--target=arm-linux-ohosmusl --sysroot=${OHOS_SYSROOT_PATH}"
  20. set(CMAKE_LINKER clang) 
  21. set(CMAKE_CXX_LINKER clang++) 
  22. set(CMAKE_C_LINKER clang) 
  23. set(CMAKE_C_LINK_EXECUTABLE "${CMAKE_C_LINKER} ${MY_LINK_FLAGS} <FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"
  24. set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_LINKER} ${MY_LINK_FLAGS} <FLAGS> <LINK_FLAGS> <OBJECTS> -o <TARGET> <LINK_LIBRARIES>"

編譯工具鏈

OpenHarmony OS 使用 gn+ninja 進行編譯。對于 cmake 組織編譯的項目來說,官方提供的 cmake 項目移植文檔給出的案例是基于輕量級系統的,并不完全適用于標準版系統上的移植。要想將項目寫入 OpenHarmony OS 編譯生成的鏡像燒錄到開發板上,需要編寫 gn 腳本參與進 OpenHarmony OS 的編譯過程。

在 WasmEdge 編譯過程中,需要使用到 spqlog 項目,構建過程中存在 spdlog 項目拉取及編譯生成 sqdlog 靜態庫的動作,這意味著只將 WasmEdge 相關庫的編譯過程改寫為 gn 腳本是不夠的,還需要對 spdlog 的編譯過程進行改寫,使得工作量急劇增加。

那么對于項目所依賴但并不屬于 OpenHarmony OS 中的靜態庫模塊,編譯過程中要如何將這一模塊引入 OpenHarmony OS 呢?

OpenHarmony OS 提供的 gn 編寫模板中有 ohos_copy ,它可以將生成的靜態庫移至生成的目標文件夾。這樣在真正編譯需要鏈接時,就能將這一靜態庫視為 OpenHarmony OS 的原生模塊而不是查無此庫。在 WasmEdge 的移植過程中,所執行的編譯腳本便是事先進行一遍交叉編譯,生成需要 copy 的 spdlog 靜態庫,然后再執行 OpenHarmony OS 的編譯腳本,從而按照項目目錄下的 BUILD.gn 內的定義組織編譯。

在 WasmEdge 的 BUILD.gn 中,關于 spdlog 靜態庫的描述如下:

  1. ohos_copy("spdlog"){ 
  2.     sources = [ 
  3.         "$WASMEDGE_ROOT_DIR/build/_deps/spdlog-build/libspdlog.a"
  4.     ] 
  5.     outputs = [ 
  6.         target_out_dir + "/lib/libspdlog.a" 
  7.     ] 
  8.     module_install_name = "" 

標準 C 庫

平時我們常用的標準 C 庫是 GNU 發布的 libc 庫,而 OpenHarmony 中使用的是 Musl-libc,因此如果需要移植的項目代碼中使用了 glibc 的宏變量的代碼,那么需要進行修改或者在開頭重新定義為 Musl-libc 中的宏變量。

鏈接項

  1. ../../third_party/WasmEdge/lib/system/allocator.cpp:64:40: error: unused variable 'k4G' [-Werror,-Wunused-const-variable] 
  2. static inline constexpr const uint64_t k4G = UINT64_C(0x100000000); 
  3.                                        ^ 
  4. ../../third_party/WasmEdge/lib/system/allocator.cpp:65:40: error: unused variable 'k12G' [-Werror,-Wunused-const-variable] 
  5. static inline constexpr const uint64_t k12G = UINT64_C(0x300000000); 
  6.                                        ^ 
  7. 1 warning and 2 errors generated. 

 諸如這類報錯,在 BUILD.gn 中使用到該源碼的模塊中添加 cflags.例如,對上面的報錯,可以添加如下的 cflags :

  1. cflags = [ 
  2.   ... 
  3.   "-Wno-unused-const-variable"
  4.   ... 

 如果出現下面的 C++ 的鏈接編譯報錯,

  1. ../../third_party/WasmEdge/lib/host/wasi/inode-linux.cpp:745:3: error: cannot use 'try' with exceptions disabled 
  2.   try { 
  3.   ^ 

 則添加 cflags_cc:

  1. # BUILD.gn 使用到該源碼的相應模塊 
  2.   ... 
  3.   cflags_cc = [  
  4.     ... 
  5.     "-fexceptions"
  6.     ... 
  7.   ] 

 移植過程中還有許多諸如此類的編譯報錯,在此不進行一一列舉。

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

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

https://harmonyos.51cto.com

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

2022-04-01 15:54:01

DHCP網絡協議開發板

2022-10-14 15:55:24

環境搭建鴻蒙

2021-10-11 14:14:42

鴻蒙HarmonyOS應用

2020-11-24 11:41:30

websocket

2021-09-10 10:01:04

鴻蒙HarmonyOS應用

2021-12-16 15:14:54

鴻蒙HarmonyOS應用

2022-03-03 19:21:50

Harmony鴻蒙操作系統

2022-02-24 16:39:41

OpenHarmonNiobe開發鴻蒙

2021-09-13 10:03:35

鴻蒙HarmonyOS應用

2021-06-25 15:32:13

鴻蒙HarmonyOS應用

2020-12-29 09:59:01

鴻蒙HarmonyOS智能家居

2022-06-06 10:44:10

C++語言鴻蒙

2020-10-30 09:48:03

Hi3861開發板get請求

2020-12-16 10:05:48

鴻蒙開發板Onenet平臺

2021-09-08 15:44:56

鴻蒙HarmonyOS應用

2020-10-30 17:12:05

Hi3861

2022-08-19 10:54:47

操作系統鴻蒙

2022-04-14 11:44:25

LiteOS線程鴻蒙

2023-03-07 15:54:45

鴻蒙Mesa庫
點贊
收藏

51CTO技術棧公眾號

欧美日韩亚洲一区二区三区在线| 亚洲精品一区三区三区在线观看| 成人性色生活片免费看爆迷你毛片| 欧美国产日本高清在线| 精品熟女一区二区三区| 亚洲www免费| 一区二区三区小说| 蜜桃传媒视频麻豆第一区免费观看 | 日韩精品久久久久久免费| 成人一区二区| 欧美精品一区二区在线播放 | 国产精品九九九九九九| 欧美黑人做爰爽爽爽| 欧美性xxxxxx少妇| 浴室偷拍美女洗澡456在线| 天天操天天干天天干| 免费观看在线色综合| 国内精品久久久久久影视8| 久久国产柳州莫菁门| 北条麻妃在线一区二区免费播放 | 好男人免费精品视频| 国产成人在线视频免费播放| 国产97在线观看| 久久久久人妻一区精品色欧美| 欧美日韩在线二区| 日韩成人在线观看| www日本在线观看| 欧洲亚洲精品久久久久| 色天使色偷偷av一区二区| 波多野结衣av一区二区全免费观看| 国产大学生校花援交在线播放| av中文字幕在线不卡| 国产欧美日韩中文| 日本黄色中文字幕| 1024精品一区二区三区| 欧美精品免费看| 午夜精品久久久久99蜜桃最新版| 亚洲老女人视频免费| 欧美精品一区二区三区一线天视频| 91亚洲精品久久久蜜桃借种| 桃色一区二区| 色综合久久久网| www国产精品内射老熟女| 欧美高清另类hdvideosexjaⅴ| 国产精品久久久久久久岛一牛影视| 久久这里精品国产99丫e6| 黄色一级a毛片| 国产91丝袜在线观看| 亚洲xxxx在线| 精品黑人一区二区三区在线观看 | 亚洲调教欧美在线| 视频一区中文字幕精品| 日韩欧美一卡二卡| 国产成人精品综合久久久久99 | 青青草视频一区| 国产成人久久久| 天天射天天干天天| 日日夜夜精品视频天天综合网| 日产精品99久久久久久| 日韩精品成人免费观看视频| 久久亚洲精选| 国产精品久久久久久久久影视 | 日韩一级片网址| 日批视频在线看| 亚洲精品国产九九九| 精品日韩成人av| 男人网站在线观看| 首页亚洲中字| 中文字幕日韩欧美在线视频| 国产传媒在线看| 久久久久久久久国产一区| 欧美精品少妇videofree| 久久久久成人网站| 一道本一区二区| 日本一区二区在线免费播放| 中国一区二区视频| 国产另类ts人妖一区二区| 福利精品视频| 亚洲人妻一区二区| 欧美精彩视频一区二区三区| 一级日韩一区在线观看| 少女频道在线观看高清 | 免费精品一区二区| 激情综合色播激情啊| av成人综合网| 深夜视频在线免费| 中文字幕一区二区日韩精品绯色| 天堂av在线中文| 蜜桃视频www网站在线观看| 在线欧美日韩精品| 91亚洲一区二区| 成人香蕉社区| 国产亚洲视频在线| 欧美三级在线免费观看| 国产精品女主播一区二区三区 | 亚洲精品不卡在线观看| 亚洲精品资源美女情侣酒店| 天堂av网手机版| 亚洲激情精品| 国产精品直播网红| 亚洲欧美激情在线观看| 国产亚洲短视频| 日本福利视频在线观看| 成人影院av| 日韩欧美综合在线| 双性尿奴穿贞c带憋尿| 久久久久免费av| 庆余年2免费日韩剧观看大牛| 国产一区二区三区中文字幕| 99v久久综合狠狠综合久久| 亚洲欧洲免费无码| 亚洲欧美韩国| 精品久久久久久久久久久久包黑料| 99久久人妻无码精品系列| 欧美精品偷拍| 91精品国产自产在线| 五月天婷婷在线播放| 亚洲欧美经典视频| 日韩av片网站| 亚洲最好看的视频| 亚州av一区二区| 性猛交xxxx乱大交孕妇印度| 欧美激情中文字幕一区二区| 欧美久久久久久久久久久久久| 亚洲资源在线| 中文字幕在线精品| 日批视频免费在线观看| av不卡免费电影| 91精品国产毛片武则天| 不卡亚洲精品| 日韩禁在线播放| 日本三级午夜理伦三级三| 国产一区二区看久久| 亚洲欧洲另类精品久久综合| 日本少妇一区| 亚洲日本aⅴ片在线观看香蕉| 亚洲国产精品成人无久久精品| 久久99九九99精品| 亚洲看片网站| 精品欧美日韩精品| 亚洲欧美中文在线视频| 中文字幕视频网站| 91亚洲精华国产精华精华液| 欧美久久久久久久久久久久久久| 精品国产乱码一区二区三区| 久久精品最新地址| 国产欧美日韩综合精品一区二区三区| 国产精品久久久久一区二区三区 | 日韩一区二区高清视频| 国产精品毛片aⅴ一区二区三区| 久久精品91久久久久久再现| 91麻豆一区二区| 亚洲欧洲日产国产综合网| 亚州精品一二三区| 天天精品视频| 亚洲最大av在线| 青春草视频在线| 精品久久五月天| 日本中文在线播放| 久久久蜜桃精品| www欧美激情| 亚洲色图网站| 国产精华一区| 成人美女大片| 中文综合在线观看| 精品人妻无码一区二区 | 国内av在线播放| 国产精品久久久久国产精品日日| 一区二区成人网| 中文字幕一区二区三区欧美日韩| av在线亚洲男人的天堂| 91禁在线看| 亚洲午夜精品视频| 国产精品久久久久久久久毛片 | 日本免费网站在线观看| 欧美日韩视频免费播放| 女人十八毛片嫩草av| 国内国产精品久久| 久久亚洲中文字幕无码| 欧美日韩在线播放视频| www.成人三级视频| 黑人巨大亚洲一区二区久| 日韩中文在线中文网三级| 国内老熟妇对白hdxxxx| 懂色av影视一区二区三区| 日本一二三不卡视频| 国产成人综合亚洲网站| 日韩精品一区二区三区不卡| 国产精品国产三级国产在线观看| 超碰在线97av| 三上悠亚一区二区| 欧美精品在线免费播放| 青青久在线视频免费观看| 在线综合+亚洲+欧美中文字幕| 日本在线观看中文字幕| 欧美国产精品中文字幕| 欧美激情一区二区三区p站| 首页亚洲欧美制服丝腿| 亚洲精品国产suv一区88| 亚洲系列另类av| 91久久国产自产拍夜夜嗨| 久久毛片亚洲| 久久久久久国产精品三级玉女聊斋 | 亚洲视频在线观看| 精品国产99久久久久久宅男i| 狠狠干狠狠久久| 久久久精品视频免费观看| 国产亚洲一区二区三区在线观看| 午夜免费视频网站| 免费高清在线视频一区·| 国产精品后入内射日本在线观看| 亚洲va在线| 日本婷婷久久久久久久久一区二区| 欧美激情精品| 国产区亚洲区欧美区| 日韩精品av| 欧美精品激情在线观看| 国产美女在线观看| 综合欧美国产视频二区| 青青草在线播放| 亚洲高清福利视频| 精品国产区一区二| 91精品久久久久久久91蜜桃 | 日韩视频永久免费| 亚洲熟妇无码久久精品| 色偷偷久久人人79超碰人人澡| 久久久久久久久久久久久久久久久 | 国产亚洲二区| 91综合精品国产丝袜长腿久久| 国产在线a不卡| 成人一区视频| 国产精品久久电影观看| 欧美free嫩15| 国产精品精品视频| 日韩三区在线| 国产成人在线精品| 国产伦精品一区二区三区视频金莲| 久久久久这里只有精品| 日本动漫同人动漫在线观看| 欧美成人剧情片在线观看| 黄网站在线免费| 欧美成aaa人片免费看| 蜜桃视频在线观看免费视频网站www| 在线观看免费高清视频97| 国产尤物视频在线| 这里只有精品丝袜| 在线日本中文字幕| 久久精品国产欧美激情| 欧美性猛交xxx乱大交3蜜桃| www.99久久热国产日韩欧美.com| 色综合久久影院| 久久夜色撩人精品| 中文字幕在线播放网址| 欧美大片在线免费观看| 538在线观看| 55夜色66夜色国产精品视频 | 福利视频导航一区| 影音先锋在线国产| 日本道精品一区二区三区| 久久久久精彩视频| 91麻豆精品国产91久久久使用方法 | 亚洲欧美日本国产专区一区| 色欲av无码一区二区人妻| 丝袜美腿亚洲综合| 亚洲一区二区三区四区五区| 国内成人免费视频| 日韩精品人妻中文字幕有码| 2023国产精品自拍| 91禁男男在线观看| 一区二区三区日韩欧美精品 | 欧美在线视频不卡| 亚洲在线视频播放| 日韩精品一区二| 亚洲日本中文字幕在线| 一区二区三区国产视频| 超鹏97在线| 68精品久久久久久欧美| 日韩av一级| 91免费观看| 网友自拍一区| 天天成人综合网| 亚洲精品一二| 深夜黄色小视频| 国产ts人妖一区二区| 一区二区三区伦理片| 最新中文字幕一区二区三区| 免费在线不卡视频| 欧美精品久久天天躁| 图片区 小说区 区 亚洲五月| 一区二区三区黄色| 91豆花视频在线播放| 国产精品久久久久久久久| 日韩精品成人在线观看| 欧美一区二区三区四区夜夜大片| **女人18毛片一区二区| av观看免费在线| 国产精品香蕉一区二区三区| 美女爆乳18禁www久久久久久| 亚洲男人的天堂一区二区| 中文字幕精品无码一区二区| 日韩欧美一级二级三级| 国产天堂在线| 性欧美xxxx视频在线观看| 福利一区视频| 久久久久久国产精品mv| 自拍偷拍欧美专区| 国产无套粉嫩白浆内谢的出处| 国产成人激情av| 人与动物性xxxx| 色婷婷亚洲综合| 高潮一区二区三区乱码| 日韩在线视频国产| 国模套图日韩精品一区二区| 国产v亚洲v天堂无码| 久久综合电影| 91国产精品视频在线观看| 久久综合色之久久综合| 国产无遮挡aaa片爽爽| 欧美一区二区三区免费在线看| 国产私拍精品| 国产va免费精品高清在线| 国产精品玖玖玖在线资源| 一区二区免费在线视频| 噜噜噜久久亚洲精品国产品小说| 中国免费黄色片| 一区二区国产视频| 国产富婆一级全黄大片| 久久亚洲电影天堂| 欧美日韩卡一| 亚洲成人一区二区三区| 日韩经典中文字幕一区| 中日韩精品一区二区三区| 午夜激情一区二区| 国产成人无码www免费视频播放| 欧美美最猛性xxxxxx| 精品网站999| 99热都是精品| 国产麻豆成人精品| 欧美人妻精品一区二区三区| 欧美一激情一区二区三区| 黄色网址在线免费| 亚洲qvod图片区电影| 911精品美国片911久久久| 男生操女生视频在线观看| 亚洲欧洲成人自拍| 国产一区二区在线播放视频| 久久精视频免费在线久久完整在线看| 亚洲男人在线| 日本黄xxxxxxxxx100| 国产精品夜夜嗨| 精品无码av在线| 日韩www在线| 欧美色999| 亚洲一区3d动漫同人无遮挡 | 精久久久久久| 亚洲中文字幕一区| 色综合久久久久网| 国产三级电影在线| 国产精品综合网站| 一区二区三区午夜视频| 丰满少妇中文字幕| 婷婷久久综合九色综合伊人色| 亚洲av激情无码专区在线播放| 日本在线观看天堂男亚洲| 日本欧美肥老太交大片| 看看黄色一级片| 亚洲综合激情小说| 午夜小视频在线播放| 国产精品成人一区二区三区吃奶| 久久中文视频| 国产午夜在线一区二区三区| 欧美性xxxxxxx| 日韩欧美小视频| 超碰97网站| 日韩精品高清不卡| 青草草在线视频| 日韩精品免费在线视频观看| 久久久久久久性潮| 欧美亚洲黄色片| 国产亚洲女人久久久久毛片| 国产又黄又大又爽| 午夜精品福利在线观看| 成人激情在线| 日批免费观看视频| 欧美亚洲国产一区二区三区va | 4438全国成人免费| 999国产精品永久免费视频app| 99热这里只有精品2| 色婷婷综合久久久中文字幕| 成人影院在线看| 免费一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 午夜亚洲视频| 免费成人深夜夜行网站| 亚洲黄色www网站| 99久久久成人国产精品| 成年人免费在线播放| 亚洲免费av观看| 国产高清视频在线播放| 国严精品久久久久久亚洲影视|