精品欧美一区二区三区在线观看 _久久久久国色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| 日韩精品xxxx| 国产免费视频一区二区三区| 高清精品视频| 欧美日韩美女视频| 久久99精品久久久久久久久久| 青青草原网站在线观看| 亚洲综合精品在线| 欧美日一区二区三区在线观看国产免| 日韩亚洲欧美在线| 日韩av在线播放不卡| 天天影院图片亚洲| 蜜臀久久99精品久久久画质超高清 | 欧美 日韩 国产 高清| www香蕉视频| 林ゆな中文字幕一区二区| 日韩欧美综合在线视频| 天堂一区二区三区| 国产激情视频在线播放| 国产亚洲在线| 中文字幕亚洲一区在线观看| 久久久精品视频国产| 99re6在线精品视频免费播放| 国产精品亚洲综合色区韩国| 亚洲人成欧美中文字幕| 自拍偷拍21p| 青草影视电视剧免费播放在线观看| 免费在线观看精品| 上原亚衣av一区二区三区| 蜜桃视频无码区在线观看| 中文在线а√在线8| 国产精品久久久久久久久久久免费看| dy888夜精品国产专区| 亚洲精品成人在线视频| 国产精品vip| 一区二区av在线| 国产精品果冻传媒| 99久久伊人| 亚洲6080在线| 免费成人深夜夜行网站视频| 五月婷婷伊人网| 天天综合网91| 亚洲欧洲成视频免费观看| 五月婷婷之婷婷| 天天干在线视频论坛| 国产色一区二区| 国产精品青青草| 97视频免费在线| 久久精品一区二区国产| 萌白酱国产一区二区| 性久久久久久久久久久| 亚洲精品tv| 日本韩国精品一区二区在线观看| 成年人深夜视频| 欧美日韩xx| 亚洲精品国产精品久久| 97免费在线观看视频| 91成人网在线观看| 在线视频日本亚洲性| 欧美多人猛交狂配| 嫩草一区二区三区| 亚洲性av网站| 91pony九色| 91精品麻豆| 日韩视频免费直播| 美女黄色一级视频| 色吊丝一区二区| 亚洲欧美色图片| www.亚洲自拍| 深夜av在线| 欧美性猛交xxxx免费看漫画| 日韩久久一级片| 99热播精品免费| 在线综合视频播放| 无码人妻h动漫| 3d欧美精品动漫xxxx无尽| 亚洲人123区| 人人妻人人澡人人爽欧美一区| 性国产高清在线观看| 亚洲第一精品在线| 欧美激情国产精品日韩| 99re久久| 欧美v国产在线一区二区三区| 北条麻妃视频在线| 欧美性aaa| 精品福利av导航| 男女黄床上色视频| 国产精品久久天天影视| 久久久久久综合网天天| 男操女视频网站| 国产精品99久久久| 麻豆久久久9性大片| www.成人免费视频| 26uuu色噜噜精品一区| 亚洲高清乱码| av电影院在线看| 欧美午夜精品理论片a级按摩| 992tv人人草| 日韩电影不卡一区| 久久久999精品视频| 日韩无码精品一区二区三区| 奇米888四色在线精品| 99精品在线直播| 高清性色生活片在线观看| 亚洲精品久久久久久国产精华液| 无遮挡又爽又刺激的视频| 欧美不卡在线观看| 亚洲图片制服诱惑| 精品无码久久久久久久| 麻豆成人av在线| 久久99热只有频精品91密拍| 黄色动漫在线观看| 色婷婷激情一区二区三区| 4438x全国最大成人| 欧洲杯足球赛直播| 777777777亚洲妇女| a级片免费视频| 国产精品理论在线观看| 国产91在线视频观看| 日本精品一区二区三区在线观看视频| 亚洲色图15p| 激情五月色婷婷| 国产精品18久久久久| 一区二区三区国产福利| 欧美日韩精品免费观看视完整| 亚洲第一综合天堂另类专| 久久久久亚洲AV成人网人人小说| 精品一区二区三区在线| 欧美一区第一页| 亚洲欧美日韩激情| 成人激情小说网站| 国产精品无码电影在线观看 | 欧美中文在线视频| 性中国古装videossex| 国产精品国产精品国产专区不片| 日韩欧美精品在线观看视频| 国产一区二区在线视频你懂的| 久久国产精品久久久久久| 中文字幕+乱码+中文| 99精品一区二区三区| 丰满的少妇愉情hd高清果冻传媒| 一区在线不卡| 久久精品电影网站| 国产人妻精品一区二区三| 国产精品成人一区二区艾草| 三级在线视频观看| 日韩在线综合| 成人激情免费在线| 免费在线观看av| 欧美电影一区二区| 国产精品国产三级国产传播| 精品一区二区久久| 国产91色在线|亚洲| 中文字幕在线观看播放| 日韩欧美国产麻豆| 久久香蕉精品视频| a级精品国产片在线观看| 成人免费播放器| 青青操综合网| 日韩免费观看视频| 69久久久久| 欧美巨大另类极品videosbest | 亚洲女同ⅹxx女同tv| 日本一二三区在线| 在线精品一区| 国产日韩精品在线| 欧美一级淫片aaaaaa| 国产欧美精品区一区二区三区| 日韩精品一区二区三区色欲av| 亚洲免费毛片| 欧美日本高清视频| 欧美视频xxx| 黑人精品xxx一区一二区| 精品欧美一区二区久久久| 蜜臀av一区二区在线观看| 一区二区日本伦理| 大型av综合网站| 日韩av色在线| bt在线麻豆视频| 亚洲激情自拍图| 亚洲女人久久久| 国产v日产∨综合v精品视频| 国产原创popny丨九色| 国产精品欧美三级在线观看| 国产欧美一区二区三区四区| av在线app| 国产视频精品免费播放| 日本老熟俱乐部h0930| 性欧美xxxx大乳国产app| 亚洲一区久久久| 嗯啊主人调教在线播放视频| 欧美一区二区三区在线观看视频| 激情视频在线播放| 久久视频一区二区| 天美一区二区三区| 一本一本久久| 黄瓜视频免费观看在线观看www| 99精品在免费线中文字幕网站一区 | 国产精品免费不| 不卡视频一区| 国产成人a视频高清在线观看| 欧美黑人巨大xxx极品| 日韩欧美电影在线观看| 欧美老肥妇做.爰bbww| 免费看日韩毛片| 怡红院av一区二区三区| 成人性生交大免费看| 国产精一品亚洲二区在线视频| 国产男女在线观看| 国产精品地址| 亚洲电影免费| 日韩深夜影院| 69堂成人精品视频免费| 国产成人精品一区二区三区免费 | 免费日韩一级片| 亚洲免费观看高清在线观看| 色欲AV无码精品一区二区久久 | 久久久久久久久久久一区| 国产精品成人**免费视频| 国产成人精品午夜| 婷婷综合激情网| 欧美精品xxxxbbbb| 无码任你躁久久久久久久| 亚洲二区视频在线| 欧美性生给视频| 国产日韩精品久久久| 午夜男人的天堂| 成人性生交大合| 被黑人猛躁10次高潮视频| 免费av成人在线| 在线免费视频a| 久久国产精品99国产| 久久久久久久9| 欧美日韩国产高清| 四虎4hu永久免费入口| 99精品在线| 一区在线电影| 久久香蕉国产| 无遮挡亚洲一区| 欧美天天综合| 91久久精品www人人做人人爽| 黑人一区二区三区| 欧美激情2020午夜免费观看| a视频在线观看免费| 美女性感视频久久久| 国产精品实拍| www.欧美精品| 少妇高潮一区二区三区69| 精品国产人成亚洲区| 亚洲精品综合久久| 亚洲精品一区二区三区精华液| 亚洲大尺度视频| 精品久久久久久久久久久久久久久久久| 国产伦子伦对白视频| 91麻豆精品国产无毒不卡在线观看| 一级欧美一级日韩| 欧美高清hd18日本| 亚洲自拍第二页| 91精品国产麻豆国产自产在线| 国产毛片在线视频| 欧美成人精精品一区二区频| 欧美一级片免费| 亚洲精品自拍第一页| 欧美日韩免费做爰大片| 中文字幕在线看视频国产欧美在线看完整| 午夜激情视频在线观看| 欧美成aaa人片免费看| 成年人视频免费在线播放| 91精品国产91久久久久久最新| 亚洲人成午夜免电影费观看| 国产激情久久久久| 亚洲欧美专区| 国产视频一区二区不卡| 精品久久91| 成人短视频在线看| 99综合在线| 亚洲欧洲日本精品| 成人毛片在线观看| xxx在线播放| 亚洲精品自拍动漫在线| 国产成人愉拍精品久久| 欧洲视频一区二区| 国内老熟妇对白xxxxhd| 日韩精品中文字幕在线观看| 婷婷免费在线视频| 久久久久久亚洲| 91另类视频| 国产福利久久精品| 波多野结衣的一区二区三区| 小泽玛利亚av在线| 国产精品一区毛片| 色呦色呦色精品| 久久女同互慰一区二区三区| 99久久99久久精品国产| 欧美日韩国产在线| www.色呦呦| 中国人与牲禽动交精品| 免费看电影在线| 国产精品自拍偷拍视频| 欧美片第1页| 亚洲一区美女视频在线观看免费| 全国精品免费看| 最新视频 - x88av| 日韩精品福利网| 成人午夜精品无码区| 国产精品初高中害羞小美女文| 国产小视频在线免费观看| 欧美一级黄色片| aiai在线| 日本久久精品视频| 国产精品久久久久av蜜臀| 一本色道久久99精品综合| 国产视频亚洲| 国产情侣久久久久aⅴ免费| 国产精品久久午夜| 精品视频一二三区| 日韩高清欧美高清| 91超碰在线播放| 91视频在线免费观看| 91久久夜色精品国产按摩| 日日碰狠狠躁久久躁婷婷| 成人动漫一区二区| 青草草在线视频| 91精品国产全国免费观看| 欧美极品视频| 国产欧美精品va在线观看| 九九亚洲视频| aa在线免费观看| 91免费精品国自产拍在线不卡| 日本网站免费观看| 精品国产乱码久久| 三级资源在线| 2019国产精品视频| 欧美高清不卡| 国产精品日日摸夜夜爽| 一区二区三区在线观看国产| 精品人妻一区二区三区麻豆91| 久久精品国产91精品亚洲| 国产精品诱惑| 在线精品日韩| 韩国av一区二区三区在线观看| 日本黄色录像视频| 8x8x8国产精品| 成人av福利| 97人人模人人爽人人少妇| 你懂的一区二区| 国产大学生av| 亚洲v日本v欧美v久久精品| 欧日韩在线视频| 2019中文字幕在线免费观看| 午夜先锋成人动漫在线| 黑鬼大战白妞高潮喷白浆| 久久久午夜精品| 久久久久精彩视频| 4438x成人网最大色成网站| 男人的天堂在线视频免费观看 | 精品大片一区二区| 日本激情综合网| 最新不卡av在线| 亚洲高清视频网站| 91精品国产高清自在线看超| 蜜乳av综合| 91制片厂毛片| 亚洲精品乱码久久久久久久久| 午夜老司机福利| 2019中文在线观看| 青青草成人影院| 69久久精品无码一区二区| 天天做天天摸天天爽国产一区| 裸体xxxx视频在线| 成人亚洲欧美一区二区三区| 欧美日韩亚洲一区| 天天躁日日躁aaaa视频| 欧美美女视频在线观看| 国产盗摄一区二区| 欧美在线3区| 99re国产精品| 亚洲精品色午夜无码专区日韩| 欧美男男青年gay1069videost| 深夜国产在线播放| 欧美久久电影| 一本久道久久久| 日本理论中文字幕| 日韩欧美国产精品一区| 日韩精品99| 99热这里只有精品免费| 久久久久久久久99精品| 国产精品久久久国产盗摄| 久久久之久亚州精品露出| jvid福利在线一区二区| 日韩精品国产一区| 欧美性xxxxxx少妇| 密臀av在线| 日韩免费三级| 成人国产一区二区三区精品| 午夜一级黄色片| 97视频在线看| 亚洲色图网站| 国产精品20p| 亚洲成在人线av|