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

移植案例與原理 - startup子系統(tǒng)之syspara_lite系統(tǒng)屬性部件

原創(chuàng)
系統(tǒng) OpenHarmony
本文介紹了startup子系統(tǒng)之syspara系統(tǒng)屬性部件的移植適配案例及原理。

??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

系統(tǒng)屬性部件syspara_lite負(fù)責(zé)提供獲取與設(shè)置操作系統(tǒng)相關(guān)的系統(tǒng)屬性,包括默認(rèn)系統(tǒng)屬性、OEM廠商系統(tǒng)屬性和自定義系統(tǒng)屬性。為滿足OpenHarmony產(chǎn)品兼容性規(guī)范,產(chǎn)品解決方案需要實(shí)現(xiàn)獲取設(shè)備信息的接口,如:產(chǎn)品名、品牌名、廠家名等,同時(shí)提供設(shè)置/讀取系統(tǒng)屬性的接口。本文介紹下移植開發(fā)板時(shí)如何適配系統(tǒng)屬性部件syspara_lite,并介紹下相關(guān)的運(yùn)行機(jī)制原理。系統(tǒng)屬性部件syspara_lite包含系統(tǒng)參數(shù)特性syspara_lite和token。系統(tǒng)屬性部件syspara_lite定義在build\lite\components\startup.json。源代碼目錄如下:

base/startup/syspara_lite/    # 系統(tǒng)屬性部件
├── frameworks # 系統(tǒng)屬性部件源文件目錄
├── hals # 系統(tǒng)屬性部件硬件抽象層頭文件目錄
└── interfaces # 系統(tǒng)屬性部件對(duì)外接口目錄

1、系統(tǒng)參數(shù)syspara適配

適配啟動(dòng)恢復(fù)子系統(tǒng)startup的syspara_lite部件的一個(gè)實(shí)例vendor\bestechnic\display_demo\config.json的代碼片段如下,⑴處的配置項(xiàng)enable_ohos_startup_syspara_lite_use_posix_file_api設(shè)置為true,下文通過分析syspara_lite部件的代碼來解釋。

  {
"product_name": "display_demo",
......
"subsystems": [
{
......
{
"subsystem": "startup",
"components": [
{
"component": "bootstrap_lite"
},
{
"component": "syspara_lite",
"features": [
⑴ "enable_ohos_startup_syspara_lite_use_posix_file_api = true"
]
}
]
},
......
],
"vendor_adapter_dir": "",
"product_adapter_dir": "http://vendor/bestechnic/display_demo/hals",
......
}

我們知道,syspara_lite部件支持獲取和設(shè)置操作系統(tǒng)的參數(shù),當(dāng)設(shè)置系統(tǒng)參數(shù)時(shí),系統(tǒng)參數(shù)會(huì)最終寫到文件中進(jìn)行持久化保存。在輕量系統(tǒng)中,文件操作相關(guān)接口有POSIX接口與HalFiles接口這兩套實(shí)現(xiàn)。POSIX文件系統(tǒng)接口代碼位置kernel\liteos_m\kal\libc\musl\fs.c,HalFiles文件系統(tǒng)接口位置為utils\native\lite\file\src\file_impl_hal\file.c。當(dāng)對(duì)接內(nèi)核的文件系統(tǒng),采用POSIX相關(guān)的接口時(shí),需要在features字段中需要增加enable_ohos_startup_syspara_lite_use_posix_file_api = true。如果對(duì)接HalFiles相關(guān)的接口,則無須修改。enable_ohos_startup_syspara_lite_use_posix_file_api默認(rèn)為false,定義在文件base\startup\syspara_lite\frameworks\parameter\config.gni。我們通過看下編譯配置文件來了解下實(shí)現(xiàn)的原理機(jī)制,打開文件base\startup\syspara_lite\frameworks\parameter\src\BUILD.gn,片段如下。

⑴處解釋了上文的配置參數(shù)enable_ohos_startup_syspara_lite_use_posix_file_api。⑵處依賴產(chǎn)品解決方案中的適配的sys_param實(shí)現(xiàn)代碼。ohos_product_adapter_dir是產(chǎn)品解決方案config.json中的配置項(xiàng),該配置項(xiàng)一遍設(shè)置為"hals"。sys_param實(shí)現(xiàn)代碼文件的路徑一遍為"hals/utils/sys_paramn/hal_sys_param.c",并且同級(jí)目錄的BUILD.gn文件中的靜態(tài)庫(kù)名稱必須為hal_sysparam。⑶處表示如果需要使用安全函數(shù),則需要配置項(xiàng)enable_ohos_startup_syspara_lite_use_thirdparty_mbedtls設(shè)置為true。⑷處設(shè)置一些配置項(xiàng)宏,這些屬于構(gòu)建類別的參數(shù)。

if (ohos_kernel_type == "liteos_m") {
static_library("sysparam") {
include_dirs = [
"http://base/startup/syspara_lite/interfaces/kits",
"http://utils/native/lite/include",
"http://base/startup/syspara_lite/frameworks/parameter/src",
"http://base/startup/syspara_lite/hals",
"http://third_party/mbedtls/include",
]
sources = [ "parameter_common.c" ]
⑴ if (enable_ohos_startup_syspara_lite_use_posix_file_api) {
sources += [ "param_impl_posix/param_impl_posix.c" ]
} else {
sources += [ "param_impl_hal/param_impl_hal.c" ]
}

⑵ deps = [ "$ohos_product_adapter_dir/utils/sys_param:hal_sysparam" ]
⑶ if (enable_ohos_startup_syspara_lite_use_thirdparty_mbedtls) {
deps += [ "http://third_party/mbedtls:mbedtls" ]
}

if (enable_ohos_startup_syspara_lite_use_posix_file_api) {
deps += [ "http://third_party/bounds_checking_function:libsec_static" ]
}
defines = [
⑷ "INCREMENTAL_VERSION=\"${ohos_version}\"",
"BUILD_TYPE=\"${ohos_build_type}\"",
"BUILD_USER=\"${ohos_build_user}\"",
"BUILD_TIME=\"${ohos_build_time}\"",
"BUILD_HOST=\"${ohos_build_host}\"",
"BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
"USE_MBEDTLS",
"DATA_PATH=\"${config_ohos_startup_syspara_lite_data_path}\"",
]
}
}

看個(gè)產(chǎn)品解決方案的實(shí)際例子,vendor\bestechnic\display_demo\hals\utils\sys_param\BUILD.gn的代碼如下,⑴處的靜態(tài)庫(kù)的名字是不能隨意更改的,見上文解釋。

⑴  static_library("hal_sysparam") {
sources = [ "hal_sys_param.c" ]
include_dirs = [ "http://base/startup/syspara_lite/hals" ]
defines = [
"INCREMENTAL_VERSION=\"${ohos_version}\"",
"BUILD_TYPE=\"${ohos_build_type}\"",
"BUILD_USER=\"${ohos_build_user}\"",
"BUILD_TIME=\"${ohos_build_time}\"",
"BUILD_HOST=\"${ohos_build_host}\"",
"BUILD_ROOTHASH=\"${ohos_build_roothash}\"",
]
}

文件vendor\bestechnic\display_demo\hals\utils\sys_param\hal_sys_param.c實(shí)現(xiàn)接口文件base\startup\syspara_lite\hals\hal_sys_param.h中聲明的函數(shù),如下所示,主要包含設(shè)備廠商信息,軟件版本信息,構(gòu)建信息等。

const char* HalGetDeviceType(void);
const char* HalGetManufacture(void);
const char* HalGetBrand(void);
const char* HalGetMarketName(void);
const char* HalGetProductSeries(void);
const char* HalGetProductModel(void);
const char* HalGetSoftwareModel(void);
const char* HalGetHardwareModel(void);
const char* HalGetHardwareProfile(void);
const char* HalGetSerial(void);
const char* HalGetBootloaderVersion(void);
const char* HalGetAbiList(void);
const char* HalGetDisplayVersion(void);
const char* HalGetIncrementalVersion(void);
const char* HalGetBuildType(void);
const char* HalGetBuildUser(void);
const char* HalGetBuildHost(void);
const char* HalGetBuildTime(void);
int HalGetFirstApiVersion(void);

在適配HalGetSerial接口時(shí),開發(fā)板不像產(chǎn)線生產(chǎn)過程那樣,會(huì)寫入一個(gè)具體的序列號(hào)Serial Number,因而需要確定一個(gè)數(shù)據(jù)對(duì)開發(fā)板進(jìn)行唯一標(biāo)識(shí)。vendor\bestechnic\display_demo\hals\utils\sys_param\hal_sys_param.c中提供了一種方法,采用WiFi Mac地址進(jìn)行適配。

const char* HalGetSerial(void)
{
char macAddr[ETH_ALEN];
// as devboard has no production serial number, we just
// use wifi mac address as device serial number.
if (serialNumber[0] == STR_END_FLAG) {
extern int bwifi_get_own_mac(u8 *addr);
bwifi_get_own_mac(macAddr);
int j = 0;
for (int i = 0; i < ETH_ALEN; i++) {
u8 lowFour, highFour;
highFour = (macAddr[i] & MAC_HIGH_MASK) >> MAC_BITS;
serialNumber[j] = Hex2Char(highFour);
j++;
lowFour = macAddr[i] & MAC_LOW_MASK;
serialNumber[j] = Hex2Char(lowFour);
j++;
}
}
return serialNumber;
}

2、Token令牌適配

在文件base\startup\syspara_lite\hals\hal_token.h中定義令牌相關(guān)的接口聲明,包含寫令牌,獲取AcKey,獲取產(chǎn)品編碼和產(chǎn)品鍵值。在移植開發(fā)板時(shí),需要實(shí)現(xiàn)這些接口。

在base\startup\syspara_lite\frameworks\token\BUILD.gn文件中,查看令牌如何編譯的,以LiteOS-M為例,片段為:

⑴處可以看出編譯使用的源文件是"src/token_impl_hal/token.c",對(duì)于linux和liteos-a內(nèi)核使用的源文件是"src/token_impl_posix/token.c"。"token.c"文件代碼很簡(jiǎn)單,判斷下參數(shù)然后調(diào)用產(chǎn)品解決方案中的適配函數(shù),比如函數(shù)ReadToken()會(huì)調(diào)用HalReadToken()函數(shù)。

⑵處需要注意,這里依賴的就是產(chǎn)品解決方案適配的token實(shí)現(xiàn)代碼。ohos_product_adapter_dir是產(chǎn)品解決方案config.json中的配置項(xiàng),該配置項(xiàng)一遍設(shè)置為"hals"。token實(shí)現(xiàn)代碼文件的路徑一遍為"hals/utils/token/hal_token.c",并且同級(jí)目錄的BUILD.gn文件中的靜態(tài)庫(kù)名稱必須為hal_token_static。⑶處表示token部件由特性token_static組成。

  if (ohos_kernel_type == "liteos_m") {
static_library("token_static") {
⑴ sources = [ "src/token_impl_hal/token.c" ]

include_dirs = [
"http://base/startup/syspara_lite/interfaces/kits",
"http://utils/native/lite/include",
"http://base/hiviewdfx/hilog_lite/interfaces/native/kits/hilog_lite",
"http://base/startup/syspara_lite/hals",
]

⑵ deps = [ "$ohos_product_adapter_dir/utils/token:hal_token_static" ]
}
}

lite_component("token") {
features = []
if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") {
features += [ ":token_shared" ]
}
if (ohos_kernel_type == "liteos_m") {
⑶ features += [ ":token_static" ]
}
}

看個(gè)產(chǎn)品解決方案的實(shí)際例子,vendor\bestechnic\display_demo\hals\utils\token\BUILD.gn的代碼如下,⑴處的靜態(tài)庫(kù)的名字是不能隨意更改的,見上文解釋。

⑴  static_library("hal_token_static") {
sources = [ "hal_token.c" ]

include_dirs = [
"http://base/startup/syspara_lite/hals",
"http://utils/native/lite/include",
]
deps = []
}

文件vendor\bestechnic\display_demo\hals\utils\token\hal_token.c中的令牌實(shí)現(xiàn)代碼片段如下,當(dāng)前均為空實(shí)現(xiàn),沒有實(shí)際使用起來。

static int OEMReadToken(char *token, unsigned int len)
{
// OEM need add here, read token from device
(void)(token);
(void)(len);
return EC_SUCCESS;
}
......
int HalReadToken(char *token, unsigned int len)
{
if (token == NULL) {
return EC_FAILURE;
}

return OEMReadToken(token, len);
}

小結(jié)

本文介紹了startup子系統(tǒng)之syspara系統(tǒng)屬性部件的移植適配案例及原理。

??想了解更多內(nèi)容,請(qǐng)?jiān)L問:??

??51CTO和華為官方合作共建的鴻蒙技術(shù)社區(qū)??

??https://harmonyos.51cto.com??

責(zé)任編輯:jianghua 來源: 鴻蒙社區(qū)
相關(guān)推薦

2022-01-26 15:16:24

utilsOpenHarmon鴻蒙

2022-02-16 15:39:30

ACTS應(yīng)用XTS子系統(tǒng)鴻蒙

2022-02-16 15:48:26

ACTS應(yīng)用XTS子系統(tǒng)鴻蒙

2022-11-01 15:29:03

移植案例hb命令

2022-10-31 15:40:22

移植案例鴻蒙

2023-03-09 15:15:21

鴻蒙模塊編譯

2021-12-27 16:20:45

鴻蒙HarmonyOS應(yīng)用

2011-01-25 10:27:12

Linux 文件系統(tǒng)屬

2009-12-22 13:26:03

Linux sysfs

2022-05-12 12:47:07

SPI主設(shè)備通信

2022-05-15 22:34:32

SPI 控制器SPI 子系統(tǒng)

2014-09-22 13:31:46

Linux

2023-04-12 15:31:11

系統(tǒng)服務(wù)管理鴻蒙

2021-06-07 08:13:11

LinuxIDLE 子系統(tǒng)

2009-10-21 17:29:34

Oracle管理系統(tǒng)

2023-02-26 23:13:24

存儲(chǔ)LinuxRAID

2020-11-08 16:16:12

Linux硬盤RAID

2022-03-18 16:07:04

Graphic子系統(tǒng)鴻蒙

2015-11-10 16:55:00

性能IO子系統(tǒng)Linux

2016-10-17 08:49:15

WindowsLinuxArch Linux
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

欧美精品一区二区在线观看| 久久久噜噜噜久久中文字幕色伊伊| www.欧美精品一二三区| 另类小说第一页| www久久日com| 不卡视频在线观看| 国产精品激情av电影在线观看 | 日韩伦理一区二区三区| 欧美综合欧美视频| 欧美激情亚洲天堂| 狠狠狠综合7777久夜色撩人| 激情综合色播五月| 欧美亚洲日本网站| 日日噜噜夜夜狠狠久久波多野| 噜噜噜狠狠夜夜躁精品仙踪林| 欧美色电影在线| 日本天堂免费a| 国产一区二区三区福利| 国产v综合v亚洲欧| 国产精品免费在线免费| 国产香蕉在线视频| 99久久99视频只有精品| 亚洲老头同性xxxxx| 久久无码人妻一区二区三区| 日韩在线免费| 精品国产91久久久久久| 黄黄视频在线观看| 1769视频在线播放免费观看| 波多野结衣在线aⅴ中文字幕不卡| 国产日韩av在线| www.久久久久久久| 亚洲深夜av| 久久免费少妇高潮久久精品99| 午夜黄色福利视频| 欧美日韩激情在线一区二区三区| 亚洲第一区在线| 99热这里只有精品2| 精品久久福利| 欧美影视一区二区三区| www国产精品内射老熟女| 影音先锋男人资源在线| 亚洲天堂av老司机| 国产精品av免费| 在线视频三区| 国产精品美女久久久久av爽李琼| 欧美性xxxx69| 精品推荐蜜桃传媒| 久久影院午夜片一区| 久久99欧美| 深夜福利视频一区| 91蝌蚪porny| 欧美日韩一区在线观看视频| 亚洲欧美日韩成人在线| www.性欧美| 精品婷婷色一区二区三区蜜桃| 六月丁香综合网| 福利一区二区在线| 国产精品.com| 神马一区二区三区| 成人高清在线视频| 精品欧美国产| 欧美女v视频| 成人激情视频网站| 国产区一区二区| 天堂在线一二区| 久久久久久久久久久黄色| 日本免费高清一区二区| jizz视频在线观看| 国产精品久久久久久久久免费丝袜| 午夜免费电影一区在线观看| 男人资源在线播放| 亚洲欧美激情插| 美女扒开大腿让男人桶| 最近高清中文在线字幕在线观看1| 色狠狠色狠狠综合| 日本中文字幕精品—区二区| 精品国产乱码一区二区三区| 精品国产乱码久久| 国产特级黄色录像| 999国产精品永久免费视频app| 久久天堂av综合合色| 久草中文在线视频| 99热这里只有精品8| 国产成人精品免费视频| 亚洲网站免费观看| 成人免费毛片片v| 日韩欧美在线一区二区| 黄色成年人视频在线观看| 亚洲午夜精品17c| 国语对白做受xxxxx在线中国 | 在线观看国产91| 欧美视频亚洲图片| 猫咪成人在线观看| 日韩在线视频网| 日本三级免费看| 日本美女视频一区二区| 91传媒视频免费| 激情小视频在线观看| 伊人一区二区三区| 国产黄色特级片| 成人搞黄视频| 色妞色视频一区二区三区四区| 欧美日韩亚洲国产另类| 久久中文精品| 国产福利久久| 尤物网在线观看| 欧美日韩免费观看中文| 亚洲天堂av一区二区三区| 欧美91在线| 久久国产精品久久国产精品| 日本免费精品视频| 成人综合在线视频| 亚洲在线不卡| 欧美大电影免费观看| 精品国产91久久久久久久妲己| 亚洲天堂精品一区| 亚洲影院一区| 国产一区二区精品在线| 国产精品实拍| 欧美日韩综合一区| 国产制服丝袜在线| 国产精品www.| 亚洲www视频| 人人干在线视频| 日本精品一级二级| 成人手机在线免费视频| 国产精品mm| 91理论片午午论夜理片久久| 国内在线免费高清视频| 午夜精品久久久久久| 亚洲欧美激情一区二区三区| 999久久久亚洲| 国产精品久久精品| 国产视频三级在线观看播放| 粉嫩av一区二区三区免费野| 日本国产在线视频| 欧美激情偷拍| 亚洲综合在线播放| 国产网友自拍视频导航网站在线观看| 欧美视频在线观看一区| 精品人妻无码一区| 一区二区福利| 久久天堂国产精品| 国产精品迅雷| 亚洲欧美在线一区二区| 婷婷激情五月网| 2014亚洲片线观看视频免费| 久久国产亚洲精品无码| 另类图片第一页| 97在线视频精品| 香蕉视频911| 色猫猫国产区一区二在线视频| 大又大又粗又硬又爽少妇毛片 | 香蕉久久久久久av成人| 欧美日韩亚洲三区| 国产精品视频一区二区三区经| 国产蜜臀在线| 日韩精品中文字幕视频在线| www.国产com| 国产女人水真多18毛片18精品视频| 动漫av免费观看| 色天天久久综合婷婷女18| 国产精品久久在线观看| 天堂аⅴ在线地址8| 在线不卡a资源高清| 日本黄色小说视频| 成人福利在线看| 国产精品50p| 精品视频亚洲| 91pron在线| 超碰91在线观看| 伊人亚洲福利一区二区三区| 91黄色在线视频| 亚洲一二三区视频在线观看| 久久久精品人妻无码专区| 日韩一区精品视频| 久久99国产精品一区| 久久动漫网址| 国产精品免费视频久久久| 中文国产字幕在线观看| 日韩经典第一页| 中国老头性行为xxxx| 亚洲一区二区三区国产| 男女做爰猛烈刺激| 国产另类ts人妖一区二区| 久久视频这里有精品| 精品国产一区二区三区久久久樱花 | 久久久久久久久久一区二区三区| 91首页免费视频| 日韩中文字幕a| 日韩视频三区| 中文字幕一区二区三区四区五区 | 欧美高清视频一区二区三区在线观看| 久久精品黄色| 久久久免费观看| 中文字幕日本在线观看| 亚洲高清一区二| 中文字幕在线日亚洲9| 亚洲影院在线观看| 九九九视频在线观看| 国产成人av福利| 91福利国产成人精品播放| 黄色亚洲在线| 中文字幕一区二区三区精彩视频| 日韩美脚连裤袜丝袜在线| 亚洲xxxx18| 欧美日韩尤物久久| 久久噜噜噜精品国产亚洲综合 | 亚洲男人的天堂av| 欧美偷拍一区二区三区| 国产凹凸在线观看一区二区| 中文字幕永久有效| 性8sex亚洲区入口| 国产一二三区在线播放| 五月天久久777| 日韩欧美国产二区| 卡通动漫国产精品| 69174成人网| 国产精品1区在线| 国产精品无av码在线观看| 婷婷电影在线观看| 欧美极度另类性三渗透| av网站在线看| 日韩在线免费av| 亚洲成人三级| 国产一区二区三区在线观看视频| 完全免费av在线播放| 久久精品最新地址| jizzjizz在线观看| 国产亚洲精品va在线观看| 午夜小视频免费| 亚洲国产成人久久综合| 波多野结衣网页| 国产午夜在线观看| 精品久久99ma| 成人福利小视频| 91精品国产高清一区二区三区蜜臀| 久久午夜鲁丝片| 在线一区二区三区四区五区| 日韩 欧美 综合| 亚洲影院在线观看| 久久免费视频播放| 亚洲曰韩产成在线| 精品无码久久久久久久| 亚洲精品v日韩精品| 欧美风情第一页| ●精品国产综合乱码久久久久| 欧美丰满老妇熟乱xxxxyyy| 久久久精品人体av艺术| 亚洲色成人网站www永久四虎 | caoporn免费在线| 日韩一中文字幕| 久蕉在线视频| 亚洲人成电影网站色xx| 国产黄在线播放| 中文字幕不卡av| 日本三级视频在线播放| 日韩一中文字幕| 人人超在线公开视频| 国产做受高潮69| 男女羞羞在线观看| 国产成人精彩在线视频九色| 国产精品99| 91国产丝袜在线放| 里番精品3d一二三区| 欧美一区二区三区电影在线观看| 精品国产乱码久久久久久1区2匹| 亚洲欧洲精品一区二区三区波多野1战4 | 国产乱妇无码大片在线观看| 中文字幕人妻一区| 久久蜜桃av一区精品变态类天堂| 欧美人妻一区二区三区| 国产精品免费看片| 午夜免费激情视频| 夜夜爽夜夜爽精品视频| 国产午夜免费福利| 欧美在线观看视频一区二区| 国产精品视频在线观看免费| 欧美xxx久久| 国产在线网站| 伦理中文字幕亚洲| 精品三级久久| 国产日韩精品视频| 国产成人久久精品一区二区三区| 国产精品区一区| 成人国产精品一级毛片视频| 久久福利一区二区| 性欧美长视频| 天天操夜夜操很很操| 2017欧美狠狠色| 久久精品亚洲a| 欧美日韩免费网站| 91麻豆国产在线| 亚洲精品美女免费| 无遮挡的视频在线观看| 51色欧美片视频在线观看| 视频欧美精品| 欧美精品二区三区四区免费看视频| 无需播放器亚洲| 欧美精品第三页| av中文字幕亚洲| 麻豆精品国产免费| 色天使久久综合网天天| 国内精品偷拍视频| 在线看日韩欧美| 周于希免费高清在线观看| 亚洲xxxx做受欧美| 成人3d精品动漫精品一二三| 男的插女的下面视频| 久久99精品久久久久久| 玖草视频在线观看| 亚洲精品福利视频网站| 精品乱码一区内射人妻无码| 日韩精品视频免费在线观看| 国产视频一区二区| 国产精品自产拍在线观| 综合综合综合综合综合网| 麻豆视频传媒入口| 日本欧美一区二区在线观看| 午夜久久久久久久| 一区二区三区高清| 国产精品一区二区黑人巨大| 亚洲天堂视频在线观看| 碰碰在线视频| 国产精品区一区| 午夜日本精品| 日本网站在线看| 国产精品久久国产精麻豆99网站| 少妇高潮av久久久久久| 亚洲激情第一页| 丁香花在线观看完整版电影| 亚洲一区二区三区久久| 日韩一区二区在线| 香蕉视频禁止18| 日本一区二区三区视频视频| 日韩 国产 欧美| 国产一区二区三区毛片| 欧美精品高清| 日本在线观看一区| 丝袜美腿亚洲一区| 亚洲人成人无码网www国产| 色婷婷综合久久久| 免费在线黄色网址| 日本欧美黄网站| 国产麻豆精品久久| 91激情视频在线| 国产三区在线成人av| 亚洲精品毛片一区二区三区| 亚洲色图美腿丝袜| 日韩一区精品| 在线无限看免费粉色视频| 精品亚洲aⅴ乱码一区二区三区| 蜜桃视频最新网址| 欧美一级二级三级乱码| 亚洲无线看天堂av| 国产伦理一区二区三区| 中文一区在线| 国产性猛交xx乱| 69久久夜色精品国产69蝌蚪网| 黄网址在线观看| 97免费高清电视剧观看| 伊人久久婷婷| 少妇真人直播免费视频| 色老汉av一区二区三区| 亚洲1卡2卡3卡4卡乱码精品| 51国偷自产一区二区三区| 欧美三级不卡| 特大黑人巨人吊xxxx| 91福利小视频| а√中文在线8| 国产区一区二区三区| 久久一区激情| 少妇人妻丰满做爰xxx| 精品成人佐山爱一区二区| 在线中文字幕播放| 亚洲一区精品视频| 粉嫩嫩av羞羞动漫久久久| 欧美日韩综合在线观看| 在线观看国产精品淫| 日韩在线亚洲| 免费观看精品视频| 亚洲少妇中出一区| 视频在线不卡| 91欧美日韩一区| 亚洲综合激情| 国产女人被狂躁到高潮小说| 国产手机视频精品| 亚洲伊人伊成久久人综合网| 精品少妇在线视频| 国产精品久久影院| 日本高清视频在线| 国产精品自在线| 在线不卡视频| 后入内射无码人妻一区| 亚洲精品一区二区三区香蕉| 国产成人精品一区二三区在线观看 | 91在线三级| 亚洲乱码一区二区三区三上悠亚 | 日本污视频网站| 亚洲成人黄色网址|