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

鴻蒙的驅動子系統-4-驅動配置文件的分析

系統
前文《小型系統驅動示例程序的編譯和驗證》提到,以UART驅動實例程序為例,可將示驅動程序分為三部分,本文將基于Hi3516平臺詳細分析第一部分驅動的配置文件的相關要點。

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

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

https://harmonyos.51cto.com

前文《小型系統驅動示例程序的編譯和驗證》提到,以UART驅動實例程序為例,可將示驅動程序分為三部分:

1. 設備樹的描述文件及驅動的配置描述文件(.hcs)

2. 驅動程序的內核空間部分的實現和編譯腳本

3. 驅動程序的用戶空間部分的實現和編譯腳本

本文將基于Hi3516平臺詳細分析第一部分驅動的配置文件的相關要點。

在項目根目錄執行:find ./ -name *.hcs

  1.   ./device/hisilicon/hispark_aries/sdk_liteos/config/hdf.hcs 
  2.       ...... 
  3.       ./device/hisilicon/hispark_aries/sdk_liteos/config/watchdog/watchdog_config.hcs 
  4.  
  5. ./device/hisilicon/hispark_taurus/sdk_liteos/config/hdf.hcs 
  6. ./device/hisilicon/hispark_taurus/sdk_liteos/config/sdio/sdio_config.hcs 
  7. ./device/hisilicon/hispark_taurus/sdk_liteos/config/input/input_config.hcs 
  8. ./device/hisilicon/hispark_taurus/sdk_liteos/config/spi/spi_config.hcs 
  9. ./device/hisilicon/hispark_taurus/sdk_liteos/config/emmc/emmc_config.hcs 
  10. ./device/hisilicon/hispark_taurus/sdk_liteos/config/device_info/device_info.hcs 
  11. ./device/hisilicon/hispark_taurus/sdk_liteos/config/gpio/gpio_config.hcs 
  12. ./device/hisilicon/hispark_taurus/sdk_liteos/config/rtc/rtc_config.hcs 
  13. ./device/hisilicon/hispark_taurus/sdk_liteos/config/i2c/i2c_config.hcs 
  14. ./device/hisilicon/hispark_taurus/sdk_liteos/config/lcd/lcd_config.hcs 
  15. ./device/hisilicon/hispark_taurus/sdk_liteos/config/uart/uart_config.hcs 
  16. ./device/hisilicon/hispark_taurus/sdk_liteos/config/wifi/wlan_platform.hcs 
  17. ./device/hisilicon/hispark_taurus/sdk_liteos/config/wifi/wlan_chip_hi3881.hcs 
  18. ./device/hisilicon/hispark_taurus/sdk_liteos/config/usb/usb_config.hcs 
  19. ./device/hisilicon/hispark_taurus/sdk_liteos/config/watchdog/watchdog_config.hcs 
  20. ./device/hisilicon/hispark_taurus/sdk_liteos/config/pwm/pwm_config.hcs 
  21. ./device/hisilicon/hispark_taurus/sdk_liteos/config/dmac/dmac_config.hcs 
  22.  
  23.       ./device/qemu/arm_virt/config/hdf.hcs 
  24.       ...... 
  25.       ./device/qemu/arm_virt/config/cfiflash/cfi_config.hcs 
  26. ./vendor/huawei/hdf/sample/config/spi/spi_config.hcs 
  27. ./vendor/huawei/hdf/sample/config/device_info/device_info.hcs 
  28. ./vendor/huawei/hdf/sample/config/gpio/gpio_config.hcs 
  29. ./vendor/huawei/hdf/sample/config/uart/uart_config.hcs 
  30.  
  31.       ./vendor/hisilicon/hispark_aries/config/hdf.hcs 
  32.       ...... 
  33.       ./vendor/hisilicon/hispark_aries/config/wifi/wlan_chip_hi3881.hcs 
  34.  
  35. ./vendor/hisilicon/hispark_taurus/config/hdf.hcs 
  36. ./vendor/hisilicon/hispark_taurus/config/input/input_config.hcs 
  37. ./vendor/hisilicon/hispark_taurus/config/device_info/device_info.hcs 
  38. ./vendor/hisilicon/hispark_taurus/config/hdf_test/emmc_test_config.hcs 
  39. ./vendor/hisilicon/hispark_taurus/config/hdf_test/sdio_test_config.hcs 
  40. ./vendor/hisilicon/hispark_taurus/config/hdf_test/pwm_test_config.hcs 
  41. ./vendor/hisilicon/hispark_taurus/config/hdf_test/hdf_test_manager/device_info.hcs 
  42. ./vendor/hisilicon/hispark_taurus/config/hdf_test/hdf_test.hcs 
  43. ./vendor/hisilicon/hispark_taurus/config/hdf_test/gpio_test_config.hcs 
  44. ./vendor/hisilicon/hispark_taurus/config/hdf_test/spi_test_config.hcs 
  45. ./vendor/hisilicon/hispark_taurus/config/hdf_test/uart_test_config.hcs 
  46. ./vendor/hisilicon/hispark_taurus/config/hdf_test/i2c_test_config.hcs 
  47. ./vendor/hisilicon/hispark_taurus/config/hdf_test/hdf_config_test.hcs 
  48. ./vendor/hisilicon/hispark_taurus/config/lcd/lcd_config.hcs 
  49. ./vendor/hisilicon/hispark_taurus/config/sensor/sensor_config.hcs 
  50. ./vendor/hisilicon/hispark_taurus/config/sensor/accel/bmi160_config.hcs 
  51. ./vendor/hisilicon/hispark_taurus/config/sensor/accel/accel_config.hcs 
  52. ./vendor/hisilicon/hispark_taurus/config/wifi/wlan_platform.hcs 
  53. ./vendor/hisilicon/hispark_taurus/config/wifi/wlan_chip_hi3881.hcs 
  54.  
  55.       ./drivers/adapter/khdf/liteos/test/tools/hc-gen/test/unittest/02_empty_root_ei/case.hcs 
  56.  
  57.       ...... 
  58.       ./drivers/adapter/khdf/liteos/test/tools/hc-gen/test/unittest/30_include_order/base2.hcs 

把hispark_aries、qemu/arm_virt、test/unittest這些關系不大的先去掉,剩下的整理成表格如下:

鴻蒙的驅動子系統-4-驅動配置文件的分析-鴻蒙HarmonyOS技術社區

PartA灰色部分由 //drivers/adapter/khdf/liteos/hdf_lite.mk 文件內對 HAVE_VENDOR_CONFIG 的判斷決定了不編譯它,又由 LOSCFG_DRIVERS_HDF_TEST 決定編譯入口在 PartB/hdf_test/Makefile,而不是PartB/Makefile。

PartB/PartC的藍色部分,可以由開發者自行配置是否編譯,PartB/hdf_test 不編譯的話,那編譯入口就是PartB/Makefile。

更詳細的編譯路徑分析,見前文《驅動相關模塊的編譯》。

上表的文件可分為三類:

【3-1】Makefile:編譯 hcs文件的入口。簡單,下面不再詳細分析。

  1. LITEOSTOPDIR = //kernel/liteos_a/  
  2.  
  3. HDF_DRIVER = //adapter/khdf/liteos/hdf_driver.mk   【定義在//drivers/adapter/khdf/liteos/lite.mk:61】 

【3-2】device_info.hcs:這是整個平臺所有設備信息的配置匯總,設備信息可以分布在不同路徑下的若干個device_info.hcs文件中,最終會被hc-gen整合在一起。

device_info.hcs 包含了HDF框架加載驅動所需要的基本信息,基于HDF框架開發的驅動,必須要在device_info.hcs文件中添加對應的設備描述。

官方文檔已經對該文件結構已經有很詳細的解釋了:

  1. root { 
  2.     device_info { 
  3.         match_attr = "hdf_manager"
  4.         template host {            // host模板,繼承該模板的節點(如下sample_host)如果使用模板中的默認值,則節點字段可以缺省 
  5.         //...... 
  6.         } 
  7.  
  8.         sample_host :: host{ 
  9.             hostName = "host0";              // host名稱,host節點是用來存放某一類驅動的容器 
  10.             priority = 100;                  // host啟動優先級(0-200),值越大優先級越低,建議默認配100,優先級相同則不保證host的加載順序 
  11.             device_sample :: device {        // sample設備節點 
  12.                 device0 :: deviceNode {      // sample驅動的DeviceNode節點 
  13.                     policy = 1;              // policy字段是驅動服務發布的策略,在驅動服務管理章節有詳細介紹 
  14.                     priority = 100;          // 驅動啟動優先級(0-200),值越大優先級越低,建議默認配100,優先級相同則不保證device的加載順序 
  15.                     preload = 0;             // 驅動按需加載字段,在本章節最后的說明有詳細介紹 
  16.                     permission = 0664;       // 驅動創建設備節點權限 
  17.                     moduleName = "sample_driver";   // 驅動名稱,該字段的值必須和驅動入口結構的moduleName值一致 
  18.                     serviceName = "sample_service";    // 驅動對外發布服務的名稱,必須唯一 
  19.                     deviceMatchAttr = "sample_config"; // 驅動私有數據匹配的關鍵字,必須和驅動私有數據配置表中的match_attr值相等 
  20.                 } 
  21.             } 
  22.         } 
  23.     } 

這里僅增加我自己的一些粗淺理解:

host + hostName:一個host,就是同一類設備驅動的容器。如下面的平臺類host,就包含了常見的i2c/gpio/uart/sdio等等,

  1. platform :: host { 
  2.  
  3.           hostName = "platform_host"
  4.  
  5.           ........ 
  6.  
  7.       } 

 還有外設類的host,包括了dipsplay類、input類、network類等等:

  1. //vendor/hisilicon/hispark_taurus/config/device_info/device_info.hcs  
  2. Line 19:          platform :: host { 
  3. Line 204:         display :: host { 
  4. Line 245:         input :: host { 
  5. Line 337:         network :: host { 
  6. Line 360:         sensor :: host { 
  7. Line 384:         storage :: host { 
  8. Line 387:         media :: host { 
  • device: 具備相同屬性的某一類具體的設備,比如I2C設備、uart設備,
  • deviceNode : 某一類具體設備的某些具體的設備節點,如I2C總線上掛著設備0,設備1,它們分別有各自的驅動配置
  1. device_i2c :: device { 
  2.               device0 :: deviceNode { 
  3.                   ...... 
  4.               } 
  5.               device1 :: deviceNode { 
  6.                   ...... 
  7.               } 
  8.           } 
  9.           device_uart :: device { 
  10.               device0 :: deviceNode { 
  11.                   ...... 
  12.               } 
  13.               device1 :: deviceNode { 
  14.  
  15.                   ...... 
  16.               } 
  17.  
  18.           } 

 接下來就是具體的deviceNode的各個字段了,以前文提到的uart驅動示例程序的deviceNode為例,配置見 //vendor/huawei/hdf/sample/config/device_info/device_info.hcs

  1. device5 :: deviceNode { 
  2.                    policy = 2; 
  3.                    priority = 10; 
  4.                    permission = 0660; 
  5.                    moduleName = "UART_SAMPLE";                   //uart_sample_driver 
  6.                    serviceName = "HDF_PLATFORM_UART_5";  //uart_sample_service 
  7.                    deviceMatchAttr = "sample_uart_5";              //uart_sample_config 
  8.                } 
  • policy:驅動服務發布的策略,官方文檔《驅動服務管理》章節有非常詳細的解釋。
  • priority :驅動啟動優先級(0-200),值越大優先級越低: 0~ 49板級驅動,50~149設備驅動,150~200 接口拔插類設備驅動
  • preload :驅動加載方式,支持按需加載和按序加載兩種方式,官方文檔《驅動開發》章節也有非常詳細的解釋。
  • permission :驅動創建設備節點權限,默認是0666
  • moduleName = "UART_SAMPLE":驅動名稱,該字段的值必須和驅動入口結構的moduleName值一致。

本文開頭的“2. 驅動程序的內核空間部分的實現和編譯腳本”中的內核實現部分代碼中的驅動入口結構 g_sampleUartDriverEntry,代碼見 //vendor/huawei/hdf/sample/platform/uart/src/uart_sample.c 文件:

  1. struct HdfDriverEntry g_sampleUartDriverEntry = { 
  2.     .moduleVersion = 1, 
  3.     .moduleName    = "UART_SAMPLE",      //uart_sample_driver 
  4.     .Bind    = SampleUartDriverBind, 
  5.     .Init    = SampleUartDriverInit, 
  6.     .Release = SampleUartDriverRelease, 
  7. }; 
  8.  
  9. HDF_INIT(g_sampleUartDriverEntry); 

serviceName = "HDF_PLATFORM_UART_5":驅動對外發布服務的名稱,必須唯一,這是調用者找到驅動服務的憑證,要完全匹配才能找到并使用對應的驅動服務。

本文開頭的“3. 驅動程序的用戶空間部分的實現和編譯腳本”中的實現部分代碼://vendor/huawei/hdf/sample/platform/uart/dispatch/uart_if.c 中

  1. #define UART_DEV_SERVICE_NAME_PREFIX "HDF_PLATFORM_UART_%d"           //uart_sample_service 
  2.  
  3. struct DevHandle *UartOpen(uint32_t port)    //sample code,port=5 
  4.     ...... 
  5.     ret = snprintf_s(serviceName, MAX_DEV_NAME_SIZE + 1, 
  6.  
  7.                              MAX_DEV_NAME_SIZE, UART_DEV_SERVICE_NAME_PREFIX, port); 
  8.     ...... 

deviceMatchAttr = "sample_uart_5":驅動私有數據匹配的關鍵字,必須和驅動私有數據配置表中的match_attr值相等

這是 device_info.hcs 設備信息與下面的 xxx_config.hcs 中設備專屬資源描述掛鉤的憑證,device_info.hcs是設備樹的樹干和樹枝,xxx_config.hcs 內的節點就是一片片樹葉,deviceMatchAttr 就是樹枝和葉片之間的葉柄。

【3-3】xxx_config.hcs:這是對特定設備專屬資源的分別描述,不同類別的設備,各自使用的資源肯定也不同,會有自己的特定描述信息。

例如,//vendor/huawei/hdf/sample/config/uart/uart_config.hcs 文件對該設備節點的描述,上面的 deviceMatchAttr 必須與這里的 match_attr 匹配。

  1. uart_sample { 
  2.          num = 5; 
  3.          base = 0x120a0000;   
  4.          irqNum = 38; 
  5.          baudrate = 115200; 
  6.          uartClk = 24000000;  
  7.          wlen = 0x60;        
  8.          parity = 0; 
  9.          stopBit = 0; 
  10.          match_attr = "sample_uart_5";    //uart_sample_config 
  11.      } 

uart_sample 的其他字段則是對這個設備節點的一些資源的初始化/默認配置了。

這些配置在 HdfDeviceObject 結構體中,通過 property 指向的樹形結構來保存:

  1. /** Pointer to the property of the device, which is read by the HDF from the configuration file and 
  2.   transmitted to the driver. */ 
  3.   const struct DeviceResourceNode *property; 

在 SampleUartDriverInit(struct HdfDeviceObject *device)中調用 AttachUartDevice() 再調用GetUartDeviceResource()來讀取property樹形結構,從中解析出相關字段和值,保存在 struct UartDevice *uartDevice 結構體中,以供調用:

  1. struct UartResource { 
  2.     uint32_t num;        /* UART port num */ 
  3.     uint32_t base;       /* UART PL011 base address */ 
  4.     uint32_t irqNum;     /* UART PL011 IRQ num */ 
  5.     uint32_t baudrate;   /* Default baudrate */ 
  6.     uint32_t wlen;       /* Default word length */ 
  7.     uint32_t parity;     /* Default parity */ 
  8.     uint32_t stopBit;    /* Default stop bits */ 
  9.     uint32_t uartClk;    /* UART clock */ 
  10.     unsigned long physBase; 
  11. }; 
  12.  
  13. struct UartDevice { 
  14.     struct IDeviceIoService ioService; 
  15.     struct UartResource resource; 
  16.     enum UartDeviceState state;     /* UART State */ 
  17.     uint32_t uartClk;               /* UART clock */ 
  18.     uint32_t baudrate;              /* Baudrate */ 
  19.     struct BufferFifo rxFifo; 
  20. }; 

其他類型的設備節點專屬資源,有各自定義的API和相關結構體做類似的事情。

對驅動配置文件的更多詳情,還是請去官方文檔仔細研讀,比如驅動服務的管理、消息機制的管理和HCS的語法等等。

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

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

https://harmonyos.51cto.com

 

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

2021-08-17 14:39:00

鴻蒙HarmonyOS應用

2021-08-10 11:30:30

Linux代碼中斷控制器

2021-08-03 15:10:26

Linux代碼驅動

2021-08-31 11:53:38

Linux inputLinux 系統

2021-12-15 10:02:25

鴻蒙HarmonyOS應用

2021-05-13 21:51:38

鴻蒙HarmonyOS應用

2021-06-18 15:23:59

鴻蒙HarmonyOS應用

2015-10-19 17:36:19

MOST內核Linux

2010-01-12 16:53:23

Fedora Core

2010-02-25 18:02:06

2011-02-25 13:34:33

Proftpd結構

2011-03-25 17:13:37

Nagios配置文件

2011-02-25 16:39:34

proftpd配置文件

2023-04-28 08:42:08

Linux內核SPI驅動

2025-03-18 07:21:07

2023-10-04 08:40:23

微軟Windows 11

2021-09-07 15:48:28

鴻蒙HarmonyOS應用

2009-08-04 10:46:04

2009-07-20 13:58:07

MySQL JDBC驅

2021-10-08 06:50:32

Linux驅動掛載
點贊
收藏

51CTO技術棧公眾號

在线精品播放av| 依依成人精品视频| 国产91色在线|免| 奇米网一区二区| 中文字幕成人| 亚洲成人av中文| 日本10禁啪啪无遮挡免费一区二区| 国产精品国产精品国产| 午夜久久一区| 国产亚洲精品高潮| 亚洲一区二区三区三州| 日产福利视频在线观看| 国产精品久久99| 国内精品国语自产拍在线观看| 久久精品国产亚洲av麻豆蜜芽| 亚洲欧美亚洲| 中文字幕亚洲欧美一区二区三区| 中文字幕乱妇无码av在线| 我爱我色成人网| 亚洲午夜私人影院| 日本免费在线视频观看| 免费毛片在线| 国产高清在线观看免费不卡| 国产成人亚洲综合| 日韩三级av在线| 亚洲国产一区二区三区在线播放 | 国产精品理论片在线观看| 国产99在线免费| 91超薄丝袜肉丝一区二区| 亚洲欧美日韩视频二区| 欧美放荡办公室videos4k| 日韩av毛片在线观看| 色天天色综合| 欧美精品一区二区三区在线| 手机av在线网| 免费污视频在线一区| 欧美日韩免费在线| 99热这里只有精品7| youjizz在线播放| 久久伊人中文字幕| 极品尤物一区二区三区| 亚洲国产综合网| 国内成+人亚洲+欧美+综合在线| 国产精品观看在线亚洲人成网| 成人免费视频毛片| 亚洲久久一区二区| 久久频这里精品99香蕉| 成人免费看片98| 欧美久久99| 欧美韩国理论所午夜片917电影| 中文字幕五月天| 天天影视欧美综合在线观看| 精品国偷自产在线视频| 亚洲人与黑人屁股眼交| 99tv成人| 久久中文字幕在线视频| 黄色a级片在线观看| 欧美 日韩 国产 一区| 欧美精品一区三区| 国产亚洲欧美久久久久| 亚洲三级免费| 2019中文字幕在线观看| 极品国产91在线网站| 日韩国产欧美在线视频| 国产精品视频内| 国产绿帽刺激高潮对白| 国产成人在线免费| 精品1区2区| 狠狠狠综合7777久夜色撩人| 国产视频一区二区在线| 一本久道久久综合| av在线免费网站| 亚洲aaa精品| 午夜肉伦伦影院| 国产亚洲人成a在线v网站| 555www色欧美视频| 99久久久无码国产精品性波多| 国产一区二区三区亚洲| 亚洲精品在线91| 毛片久久久久久| 欧美va天堂在线| 欧美在线视频观看免费网站| 青青视频在线免费观看| 精品亚洲免费视频| 国产视频一区二区不卡| 成年午夜在线| 曰韩精品一区二区| 毛片一区二区三区四区| 懂色av色香蕉一区二区蜜桃| 欧美精品一区二区三区视频| 亚洲av无码一区二区三区人| 亚洲成人av| 欧美一区二区三区精品电影| 亚洲图片视频小说| 9色porny自拍视频一区二区| 色狠狠久久av五月综合|| 1区2区在线观看| 欧美特黄级在线| www.国产福利| 免费观看久久av| 欧美另类在线观看| 凹凸精品一区二区三区| 成人综合在线视频| 亚洲精品一区二区毛豆| av女在线播放| 911精品国产一区二区在线| 精品国产一区在线| 亚洲精品国产首次亮相| 国产成人精品一区| 亚洲风情第一页| 国产精品欧美极品| 91国视频在线| 日韩一区二区三区色| 亚洲亚裔videos黑人hd| 日本少妇吞精囗交| 国产原创一区二区三区| 美女主播视频一区| 欧美韩日亚洲| 欧美放荡的少妇| 极品人妻videosss人妻| 亚洲专区一区| 国产精品一区二区免费看| 黄色免费在线网站| 欧美特级限制片免费在线观看| 熟女人妻在线视频| 狠狠噜噜久久| 91在线视频九色| av在线1区2区| 在线亚洲精品福利网址导航| 国产精品探花一区二区在线观看| 欧美日韩第一区| 成人免费看黄网站| 在线免费av网站| 欧美午夜视频网站| 微拍福利一区二区| 视频一区二区三区入口| 欧美一区1区三区3区公司| av资源中文在线| 亚洲国产欧美久久| 国产在线拍揄自揄拍| 国产精品亚洲а∨天堂免在线| 亚洲图片都市激情| 韩国精品视频在线观看 | 浪潮av一区| 欧美三级在线播放| 97人妻精品一区二区免费| 国产精品嫩草99av在线| 久久国产一区| 成人香蕉视频| 国产亚洲激情在线| 日本一区二区三区久久| 国产精品色一区二区三区| 五月婷婷狠狠操| 国产一区二区三区站长工具| 国产成人精品一区二区三区| 猫咪在线永久网站| 91福利精品第一导航| 欧美丰满美乳xxⅹ高潮www| 青青草伊人久久| 在线视频不卡国产| 91麻豆精品| 欧美精品www| 五月婷婷在线播放| 一本到三区不卡视频| 极品蜜桃臀肥臀-x88av| 另类小说一区二区三区| 男人草女人视频| 久久99国产精品久久99大师| 26uuu另类亚洲欧美日本老年| 美女欧美视频在线观看免费 | 国产亚洲视频一区| 亚洲欧美综合国产精品一区| 国产精品.com| 欧美韩国亚洲| 不卡av日日日| 日批视频在线播放| 欧美怡红院视频| 欧美人禽zoz0强交| 成人激情视频网站| 日本黄网站免费| 99热国内精品| 国产一区二区久久久| 在线观看精品| 欧美日本亚洲视频| 久久av少妇| 欧美一区二区三区在线观看| 日产精品久久久久久久| 欧美国产一区视频在线观看| 亚洲天堂一区二区在线观看| 国产视频一区三区| 五月天色婷婷综合| 欧美调教网站| 成人精品久久久| 中文字幕在线直播| 精品国产依人香蕉在线精品| 欧美一区二区公司| 欧美日韩精品一区二区天天拍小说 | 成人av一级片| 五月精品视频| 欧美色欧美亚洲另类七区| 精品一区二区三区在线观看视频| 欧美整片在线观看| 中文字幕在线观看网站| 一本大道亚洲视频| www国产一区| 欧美在线观看你懂的| 日本一本高清视频| 1024成人网色www| 国产女主播喷水高潮网红在线| 国产一区二区在线影院| 久久久久久久久久福利| 亚洲无线一线二线三线区别av| 亚洲激情啪啪| 在线日本制服中文欧美| 国产精品yjizz| 国产午夜久久av| 国产精品一区专区欧美日韩| 精品人人视频| 欧美黄色片在线观看| 欧美一级二级三级区| 亚洲午夜国产成人av电影男同| 污污网站在线免费观看| 日韩一区二区免费视频| 一区二区三区在线免费观看视频 | 在线观看日批视频| 色综合久久中文字幕| 日本视频www| 樱桃视频在线观看一区| 欧美三级黄色大片| 国产精品久久久久久久久免费丝袜 | 加勒比久久高清| 成人免费视频网站| 日本伊人久久| 97超碰人人看人人| 日韩精品一级| 99久久无色码| 日韩影片在线观看| 97免费资源站| 日韩一区二区三区色| av一区二区三区免费| 视频在线亚洲| 懂色一区二区三区av片| 亚洲综合网站| 国产无套精品一区二区| 欧美交a欧美精品喷水| 精品人伦一区二区三区| 欧美成人一区在线观看| 久久久久久久久久久久久久久久av | 亚洲春色综合另类校园电影| 久久av综合| 日韩aⅴ视频一区二区三区| 国产一区二区三区日韩精品| 欧美亚洲另类久久综合| 国产一区日韩| 制服国产精品| 在线中文字幕亚洲| 欧美日韩dvd| 精品av久久久久电影| 狠狠干 狠狠操| 亚洲欧美日韩一区在线观看| 任你操这里只有精品| 免费成人在线观看| 中文字幕剧情在线观看| 国产99精品国产| 波多野结衣视频播放| 久久午夜羞羞影院免费观看| 色一情一交一乱一区二区三区| 国产精品网曝门| 波多野结衣亚洲一区二区| 亚洲一区二区三区视频在线| 久久国产精品系列| 在线亚洲高清视频| 国产探花精品一区二区| 亚洲福利在线观看| 黄色大片在线看| 另类专区欧美制服同性| 麻豆网站免费在线观看| 国产精品久久久久久久久久久久 | 精品国产精品国产精品| 精品福利在线看| 中文 欧美 日韩| 欧美成人精品高清在线播放 | 91成人精品在线| 欧美日韩一区二区三区免费| 天天射成人网| 亚洲中文字幕无码中文字| 另类人妖一区二区av| 久久久久亚洲AV成人无码国产| 国产欧美日本一区视频| 亚洲国产成人精品综合99| 欧美日韩亚洲国产一区| 国产影视一区二区| 日韩精品黄色网| 国产激情小视频在线| 日本高清视频精品| 国产亚洲精aa在线看| 欧美日韩精品中文字幕一区二区| 91精品观看| 国产成人精品视频ⅴa片软件竹菊| 国产九色精品成人porny| 亚洲精品成人无码| 亚洲综合区在线| 一级做a爱片性色毛片| 亚洲国产精品高清久久久| 麻豆视频免费在线观看| 日本高清久久天堂| 大伊香蕉精品在线品播放| 一区二区三区在线观看www| 国产精品毛片| 亚洲精品乱码久久久久久9色| 国产欧美日韩视频在线观看| 日韩av片在线播放| 欧美一区二区三区爱爱| freemovies性欧美| 欧日韩不卡在线视频| caoporn成人| 日本免费在线视频观看| 日韩和欧美一区二区| 懂色av粉嫩av蜜乳av| 一区二区欧美视频| 国产孕妇孕交大片孕| 在线观看国产精品淫| av综合电影网站| 国产一区免费在线观看| 欧美天堂亚洲电影院在线观看| 中文字幕在线观看日| 中文字幕在线一区| 波多野结衣在线观看一区| 精品在线小视频| 深夜av在线| 精品久久久久久一区| 国内成人在线| 日本少妇一级片| 一区二区欧美精品| 国产偷拍一区二区| 麻豆乱码国产一区二区三区| 天天综合91| 26uuu成人| 国产一区二区三区不卡在线观看 | 在线观看国产精品入口| 涩涩网站在线看| 1000部国产精品成人观看| 一级日韩一级欧美| 久久视频在线播放| 欧美一区一区| 日韩久久久久久久久久久久| 国产精品一级片| 久久精品国产亚洲AV无码男同 | 国产综合精品久久久久成人av| 色婷婷国产精品久久包臀| 牛牛澡牛牛爽一区二区| 国产极品jizzhd欧美| 成人影院天天5g天天爽无毒影院| 成人黄色一区二区| 国产精品毛片久久久久久久| 亚洲综合免费视频| 九九热这里只有精品免费看| 99re91这里只有精品| 男女超爽视频免费播放| xnxx国产精品| 中文字幕精品无码亚| xxav国产精品美女主播| 日韩在线成人| www.中文字幕在线| 欧美国产日产图区| 88av在线视频| 久久久久久久久国产精品| 亚洲精华一区二区三区| 四季av一区二区| 亚洲精品免费在线观看| 日本精品久久久久久| 国产成人拍精品视频午夜网站| 无码一区二区三区视频| 大尺度做爰床戏呻吟舒畅| 色婷婷久久99综合精品jk白丝| 9i精品一二三区| 国产精品12| 日日夜夜一区二区| 波多野结衣不卡视频| 亚洲精品久久久久久久久久久久久| 丝袜美腿一区| 久久久久久久久影视| 99精品视频免费在线观看| 中文字幕在线观看国产| 欧美国产日本高清在线| 国产一区二区三区日韩精品 | 夜夜骚av一区二区三区| 欧美高清在线视频观看不卡| 色婷婷精品视频| caoporm在线视频| 欧美日韩中文字幕综合视频| 欧美性天天影视| 裸模一区二区三区免费| 国产最新精品精品你懂的| 国产污污视频在线观看| 久久精品国产一区二区三区 | 亚洲午夜性刺激影院| 亚洲精品一二三**| 最新中文字幕免费视频| 亚洲va欧美va国产va天堂影院|